diff --git a/ChangeLog b/ChangeLog
index 981d021..8e6536b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,9466 @@
-=== release 0.11.1 ===
+=== release 0.11.90 ===
 
-2011-09-29  Wim Taymans <wim.taymans@collabora.co.uk>
+2012-04-12  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 0.11.1, "Sweet New Blossom"
+	  releasing 0.11.90, "And all with pearl and ruby glowing was the fair palace door"
+
+2012-04-11 13:20:18 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix merge error
+
+2012-04-11 12:58:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/queue2.c:
+	  queue2: set buffer to NULL before pull
+
+2012-04-11 12:54:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/queue2.c:
+	  tests: port queue2 tests to 0.11
+
+2012-04-11 12:50:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  gst/gsttoc.c
+	  plugins/elements/gstqueue2.c
+
+2012-04-11 12:34:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: signal delete before waiting
+	  When we don't have the requested data in the ringbuffer and we move our read
+	  pointer to the requested position, signal the delete cond to inform the writer
+	  that we changed the current fill level. If we don't, the writer might stay
+	  blocked and we might wait forever.
+
+2012-04-11 12:15:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/queue2.c:
+	  queue2: add test for ringbuffer deadlock
+
+2012-04-11 12:02:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: update current read position before waiting
+	  When we don't have enough bytes in the ringbuffer to satisfy the current
+	  request, first update the current read position before waiting. If we don't do
+	  that, the ringbuffer might appear full and the writer will never write more
+	  bytes to wake us up.
+
+2012-04-11 12:00:10 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: add range only on sinkpad
+	  Only add the range when we receive a segment event on the sinkpad. The add_range
+	  method will modify the write position, which only makes sense to do on the
+	  sinkpad.
+
+2012-04-11 11:55:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix debug message
+	  We're not writing to the offset of the buffer
+
+2012-04-11 11:55:28 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: add_range already updates the level
+
+2012-04-10 14:11:26 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gsttoc.c:
+	  toc: fix memory leaks while copying content
+
+2012-04-10 14:18:48 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/gst/gsttocsetter.c:
+	  tocsetter: fix memory leaks in unit test
+
+2012-04-10 14:16:50 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/gst/gsttoc.c:
+	  toc: fix memory leaks in unit test
+
+2012-04-10 14:18:48 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/gst/gsttocsetter.c:
+	  tocsetter: fix memory leaks in unit test
+
+2012-04-10 14:16:50 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/gst/gsttoc.c:
+	  toc: fix memory leaks in unit test
+
+2012-04-10 14:11:26 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gsttoc.c:
+	  toc: fix memory leaks while copying content
+
+2012-04-10 19:39:58 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* gst/gstbuffer.c:
+	  buffer: Clean up header files
+
+2012-04-10 16:07:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
+2012-04-10 16:04:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: clear seeking flag in all cases
+	  Also clear the seeking flag when downstream is in pull mode.
+
+2012-04-10 12:55:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  gst/gst.c
+	  plugins/elements/gstqueue2.c
+
+2012-04-10 12:49:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: add toc entry ref/unref
+
+2012-04-10 12:09:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: set seeking flag with the queue lock
+
+2012-04-10 11:20:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	  queue2: Keep track of the seeking state
+	  Set the seeking flag right before we send a seek event upstream and discard all
+	  data untill we see a flush-stop again. We need to do this because we activate
+	  the range that we seek to immediately after sending the seek event and it is
+	  possible that we receive data in our chain function from before the seek
+	  which would then be added to the wrong range resulting in data corruption.
+
+2012-04-10 11:16:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: make range on newsegment for ringbuffer
+	  When using the ringbuffer, handle the newsegment event like we handle it when
+	  using the temp-file mode: create a new range for the new byte segment. The new
+	  segment should normally already be created when we do a seek.
+
+2012-04-09 16:42:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
+2012-04-09 16:40:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Don't use buffer after pushing it downstream
+
+2012-04-09 16:04:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
+2012-04-09 15:58:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: Fail if a pad for a non-request template is requested
+
+2012-04-09 13:40:35 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  element: use quarks when storing standard metadata in structures
+
+2012-04-09 13:05:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesrc.c:
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gstvalve.c:
+	  plugins: use new gst_element_class_set_static_metadata()
+
+2012-04-09 12:47:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* win32/common/libgstreamer.def:
+	  element: add gst_element_class_{set,add}_static_metadata()
+	  Add gst_element_class_{add,set}_metadata() variants for static strings,
+	  so we can avoid unnecessary g_strdup()s.
+	  API: gst_element_class_add_static_metadata()
+	  API: gst_element_class_set_static_metadata()
+
+2012-04-08 21:17:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttask.c:
+	* gst/gsttask.h:
+	* tests/examples/streams/stream-status.c:
+	  task: remove gst_task_set_priority()
+	  It doesn't actually do anything.
+
+2012-01-14 00:31:32 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* win32/vs10/Common.props:
+	* win32/vs10/Library.props:
+	* win32/vs10/Plugin.props:
+	* win32/vs10/ReadMe.txt:
+	* win32/vs10/Tool.props:
+	* win32/vs10/base/base.vcxproj:
+	* win32/vs10/base/base.vcxproj.filters:
+	* win32/vs10/controller/controller.vcxproj:
+	* win32/vs10/controller/controller.vcxproj.filters:
+	* win32/vs10/generated/generated.vcxproj:
+	* win32/vs10/generated/generated.vcxproj.filters:
+	* win32/vs10/gst-inspect/gst-inspect.vcxproj:
+	* win32/vs10/gst-inspect/gst-inspect.vcxproj.filters:
+	* win32/vs10/gst-launch/gst-launch.vcxproj:
+	* win32/vs10/gst-launch/gst-launch.vcxproj.filters:
+	* win32/vs10/gst-typefind/gst-typefind.vcxproj:
+	* win32/vs10/gst-typefind/gst-typefind.vcxproj.filters:
+	* win32/vs10/gstcoreelements/gstcoreelements.vcxproj:
+	* win32/vs10/gstcoreelements/gstcoreelements.vcxproj.filters:
+	* win32/vs10/gstreamer.sln:
+	* win32/vs10/gstreamer/gstreamer.vcxproj:
+	* win32/vs10/gstreamer/gstreamer.vcxproj.filters:
+	* win32/vs10/net/net.vcxproj:
+	* win32/vs10/net/net.vcxproj.filters:
+	  win32: add VS 10 Project files
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666219
+
+2012-04-08 18:25:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  win32: update for version changes
+
+2012-04-07 16:35:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+
+2012-04-07 16:06:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: add new TOC API to libgstreamer.def
+	  Fixes 'make check'.
+
+2012-04-07 16:05:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/.gitignore:
+	  tests: add new toc test binaries to .gitignore
+
+2012-04-07 16:04:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gst_private.h:
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquery.c:
+	* gst/gsttoc.c:
+	  gst: don't export private TOC functions
+
+2012-04-07 15:42:08 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  gst/gstatomicqueue.c
+
+2012-02-24 15:24:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix race
+	  After a writer has written to its reserved write location, it can only make the
+	  location available for reading if all of the writers with lower locations have
+	  finished.
+
+2012-02-24 12:51:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix subtle race
+	  Fix a race where the reader would see the updated the tail pointer before the
+	  write could write the data into the queue. Fix this by having a separate reader
+	  tail pointer that is only incremented after the writer wrote the data.
+
+2012-04-07 15:20:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: set default block size from local define
+	  Doesn't actually change the default value, just makes use of the
+	  define there is. Superficial testing with fakesink and jpegdec did
+	  not reveal improved performance for bigger block sizes, so leave
+	  default as it is.
+
+2012-04-06 16:46:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: don't update the current reading_pos in flush
+	  A flush from the upstream element should not make buffering go to 0, the next
+	  pull request might be inside a range that we have and then we don't need to
+	  buffer at all. If the next pull is outside anything we have, buffering will
+	  happen as usual anyway.
+
+2012-04-06 12:42:39 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix for merged changes
+
+2012-04-06 12:37:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch '0.10'
+
+2012-04-06 12:32:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: check the pad mode on the right pad
+
+2012-04-06 12:24:22 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: forward flush events correctly
+	  We want to forward the flush events received on the sinkpad whenever the srcpad
+	  is activated in pushmode, which can also happen when using the RINGBUFFER or
+	  DOWNLOAD mode and downstream failed to activate us in pull mode.
+
+2012-04-05 21:56:05 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	  controlbinding: chain up on dispose and finalize
+
+2012-04-05 21:55:07 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	  gstobject: unparent the controlbinding on dispose
+
+2012-04-05 21:07:55 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstargbcontrolbinding.c:
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	  controller: dup the objects to avoid premature frees
+
+2012-04-05 21:06:14 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcontroller.c:
+	  controller: add a finalizer for the test controlbindings
+	  No idea why valgrind still inists that there are leaks.
+
+2012-04-05 18:42:30 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 7fda524 to 464fe15
+
+2012-04-05 14:17:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/pwg/building-boiler.xml:
+	* gst/gstplugin.h:
+	* plugins/elements/gstelements.c:
+	  gst: Change name parameter of GST_PLUGIN_DEFINE() to not take a string anymore
+	  This will be needed when we later add support for static linking
+	  of plugins without introducing new API or changing existing API.
+
+2012-04-05 13:23:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	* gst/gstpluginfeature.c:
+	  gstplugin: Add hack for handling 0.11.9X and 0.11.89.X with X>0 the same as 1.0.0
+	  Also update the version number to 0.11.89.1
+
+2012-04-05 12:22:11 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gsttocsetter.c:
+	  tocsetter: clear mutex upon free
+
+2012-04-05 10:56:22 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstregistrybinary.h:
+	  registry: Set registry version to 1.0.0 too
+
+2012-04-05 10:36:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch '0.10'
+	  Conflicts:
+	  plugins/elements/gstqueue2.c
+
+2012-04-05 10:03:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: stop waiting for more data after EOS
+	  When we have EOS, read the remaining bytes in the buffer and make sure we don't
+	  wait for more data. Also clip the output buffer to the amount of remaining
+	  bytes.
+
+2012-04-05 09:56:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: check for filled buffer correctly
+	  When using the ringbuffer mode, the buffer is filled when we reached the
+	  max_level.bytes mark or the total size of the ringbuffer, whichever is smaller.
+
+2012-04-04 13:07:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: avoid waiting for a filled buffer
+	  Use a threshold variable to hold the maximum distance from the current position
+	  for with we will wait instead of doing a seek.
+	  When using the ringbuffer and the requested offset is not available, avoid
+	  waiting until the complete ringbuffer is filled but instead do a seek when the
+	  requested data is further than the threshold.
+	  Avoid doing the seek twice in the ringbuffer case.
+	  Use the same threshold for ringbuffer and download buffering.
+
+2012-04-05 09:07:18 +0200  Alessandro Decina <alessandro.d@gmail.com>
+
+	* gst/gstbuffer.c:
+	  gstbuffer: fix compile warning
+
+2012-04-04 13:13:52 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* Makefile.am:
+	* configure.ac:
+	* docs/faq/developing.xml:
+	* docs/gst/Makefile.am:
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/running.xml:
+	* docs/libs/Makefile.am:
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/manual/basics-helloworld.xml:
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gstreamer-plugins-docs.sgml:
+	* docs/random/autotools:
+	* docs/version.entities.in:
+	* gst-element-check.m4.in:
+	* gst/Makefile.am:
+	* gst/gstplugin.c:
+	* gst/gstpreset.c:
+	* gst/gstregistry.c:
+	* gst/gstversion.h.in:
+	* gstreamer.spec.in:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/helpers/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	* pkgconfig/Makefile.am:
+	* pkgconfig/gstreamer-base-uninstalled.pc.in:
+	* pkgconfig/gstreamer-base.pc.in:
+	* pkgconfig/gstreamer-check-uninstalled.pc.in:
+	* pkgconfig/gstreamer-check.pc.in:
+	* pkgconfig/gstreamer-controller-uninstalled.pc.in:
+	* pkgconfig/gstreamer-controller.pc.in:
+	* pkgconfig/gstreamer-net-uninstalled.pc.in:
+	* pkgconfig/gstreamer-net.pc.in:
+	* pkgconfig/gstreamer-uninstalled.pc.in:
+	* pkgconfig/gstreamer.pc.in:
+	* plugins/elements/Makefile.am:
+	* tests/benchmarks/Makefile.am:
+	* tests/check/Makefile.am:
+	* tests/check/gst/gstpreset.c:
+	* tests/examples/adapter/Makefile.am:
+	* tests/examples/controller/Makefile.am:
+	* tests/examples/manual/Makefile.am:
+	* tools/Makefile.am:
+	* tools/gst-launch.1.in:
+	* tools/gstreamer-completion:
+	* win32/common/config.h:
+	  gst: Change versioning
+	  Remove GST_MAJORMINOR and replace it by GST_API_VERSION
+	  Also set GST_VERSION_{MAJOR,MINOR,MICRO,NANO} explicitely
+	  now.
+	  All versions are at 1.0.0 now for the release soon but
+	  API/ABI can still change until the 1.0.0 release.
+	  Next release versions until 1.0.0 will be 0.10.9X and
+	  these will be release candidates. GST_VERSION_* will
+	  nonetheless stay at 1.0.0.0.
+
+2012-04-04 12:25:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  docs/gst/gstreamer-sections.txt
+	  gst/Makefile.am
+	  gst/gst.c
+	  gst/gst.h
+	  gst/gstevent.c
+	  gst/gstevent.h
+	  gst/gstmessage.c
+	  gst/gstmessage.h
+	  gst/gstquark.c
+	  gst/gstquark.h
+	  gst/gstquery.c
+	  gst/gstquery.h
+	  gst/gsttoc.c
+	  gst/gsttoc.h
+	  gst/gsttocsetter.c
+	  tests/check/Makefile.am
+	  tests/check/gst/gsttoc.c
+	  tests/check/gst/gsttocsetter.c
+
+2012-04-03 16:51:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: improve _set_size()
+
+2012-04-03 16:44:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* win32/common/libgstreamer.def:
+	  buffer: make get_sizes and _resize with ranges
+	  Make the _get_sizes and _resize methods work on a range of memory to make them
+	  more powerfull.
+
+2012-04-03 18:25:40 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	  consistencychecker: allow some more events before a segment event
+
+2012-04-03 15:46:29 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gsttocsetter.c:
+	  tocsetter: use new glib mutex api
+
+2012-04-02 23:17:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  tools: fix compiler warning
+	  gst-launch.c: In function ‘print_toc_entry’:
+	  gst-launch.c:446:3: error: the size of array ‘spc’ can’t be evaluated [-Werror=vla]
+	  gst-launch.c:446:3: error: variable-sized object may not be initialized
+
+2012-04-02 23:29:24 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/.gitignore:
+	  tests: add new unit test binaries to .gitignore
+
+2012-04-02 23:28:15 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: ref new entry enum types
+	  Fixes 'make check', again.
+
+2012-04-02 23:24:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: add new API to .def file
+	  Fixes 'make check'.
+
+2012-04-02 23:23:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquery.c:
+	* gst/gsttoc.c:
+	  toc: don't export private functions
+
+2012-04-02 23:17:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  tools: fix compiler warning
+	  gst-launch.c: In function ‘print_toc_entry’:
+	  gst-launch.c:446:3: error: the size of array ‘spc’ can’t be evaluated [-Werror=vla]
+	  gst-launch.c:446:3: error: variable-sized object may not be initialized
+
+2012-04-02 23:16:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	  po: update for new translatable strings
+
+2012-04-02 23:01:17 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	  Merge remote-tracking branch 'origin/master'
+
+2012-04-02 22:09:07 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquery.c:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	* tests/check/gst/gsttoc.c:
+	* tests/check/gst/gsttocsetter.c:
+	  toc: port to 0.11
+
+2012-03-22 08:36:02 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tools/gst-launch.c:
+	  gst-launch: add -c, --toc to print the toc
+	  Print the nested chapter and edition structure of the chapters message.
+
+2012-03-28 23:15:41 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* docs/design/Makefile.am:
+	* docs/design/part-toc.txt:
+	  docs: add overview of GstToc usage
+
+2012-03-14 21:14:23 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	  docs: Add GstToc and GstTocSetter sections with related functions
+
+2012-03-14 21:13:22 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gsttocsetter.c:
+	  gstchecks: Add unit test for the GstTocSetter
+
+2012-03-14 21:12:22 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gsttoc.c:
+	  gstchecks: Add unit test for the GstToc
+
+2012-03-14 20:45:35 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/Makefile.am:
+	* gst/gst.h:
+	* gst/gsttocsetter.c:
+	* gst/gsttocsetter.h:
+	  Add new GstTocSetter interface
+
+2012-03-14 20:42:56 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	  Add new TOC query
+
+2012-03-14 20:41:48 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	  Add new TOC message
+
+2012-03-14 20:40:32 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  Add new TOC and TOC select events
+
+2012-03-14 20:01:51 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gst_private.h:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	  Add generic table of contents (TOC) support
+
+2012-04-02 21:15:09 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	  Merge branch '0.10'
+	  Conflicts:
+	  docs/gst/gstreamer-sections.txt
+	  gst/Makefile.am
+	  gst/gst.c
+	  gst/gst.h
+	  gst/gstevent.c
+	  gst/gstevent.h
+	  gst/gstmessage.h
+	  gst/gstquark.c
+	  gst/gstquark.h
+	  gst/gstquery.c
+	  gst/gstquery.h
+	  tests/check/Makefile.am
+
+2012-04-02 15:30:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  libs/gst/base/gstbaseparse.c
+
+2012-04-02 15:13:24 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: always attempt to push if not-linked
+	  This avoids ending up with plenty of pending data (since we'll only
+	  try to parse/push one frame from the incoming buffer).
+	  Fixes increasing memory consumption when parsers aren't linked
+	  Conflicts:
+	  libs/gst/base/gstbaseparse.c
+
+2012-04-02 15:13:24 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: always attempt to push if not-linked
+	  This avoids ending up with plenty of pending data (since we'll only
+	  try to parse/push one frame from the incoming buffer).
+	  Fixes increasing memory consumption when parsers aren't linked
+
+2012-04-01 03:30:51 +0400  Руслан Ижбулатов <lrn1986@gmail.com>
+
+	* plugins/elements/gstfdsrc.c:
+	  Timeout is not used on W32
+	  Fixes #673267
+
+2012-04-02 11:09:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  trans: add transform_ip_on_passthrough
+	  Add an option to control if transform_ip is called in passthrough mode or not.
+	  for elements that don't want to look at the data in passthrough mode, this can
+	  avoid some extra processing, mostly in subclasses.
+
+2012-03-22 08:36:02 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tools/gst-launch.c:
+	  gst-launch: add -c, --toc to print the toc
+	  Print the nested chapter and edition structure of the chapters message.
+
+2012-03-28 23:15:41 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* docs/design/Makefile.am:
+	* docs/design/part-toc.txt:
+	  docs: add overview of GstToc usage
+
+2012-03-14 21:14:23 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	  docs: Add GstToc and GstTocSetter sections with related functions
+
+2012-03-14 21:13:22 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gsttocsetter.c:
+	  gstchecks: Add unit test for the GstTocSetter
+
+2012-03-14 21:12:22 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gsttoc.c:
+	  gstchecks: Add unit test for the GstToc
+
+2012-03-14 20:45:35 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/Makefile.am:
+	* gst/gst.h:
+	* gst/gsttocsetter.c:
+	* gst/gsttocsetter.h:
+	  Add new GstTocSetter interface
+
+2012-03-14 20:42:56 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	  Add new TOC query
+
+2012-03-14 20:41:48 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	  Add new TOC message
+
+2012-03-14 20:40:32 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  Add new TOC and TOC select events
+
+2012-03-14 20:01:51 +0400  Alexander Saprykin <xelfium@gmail.com>
+
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gst_private.h:
+	* gst/gsttoc.c:
+	* gst/gsttoc.h:
+	  Add generic table of contents (TOC) support
+
+2012-04-01 12:01:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: reuse more code
+
+2012-04-01 11:42:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* tests/check/gst/gstbuffer.c:
+	* win32/common/libgstreamer.def:
+	  buffer: make function to find memory in a buffer
+	  Make a function to find the memory blocks for a region in a buffer.
+
+2012-03-31 21:26:22 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstchildproxy.c:
+	  childproxy: fix more missing GST_OBJECT -> G_OBJECT use
+
+2012-03-31 18:34:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: use buffer_wrap
+
+2012-03-31 17:10:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* win32/common/libgstreamer.def:
+	  buffer: add peek_memory method
+	  Add a peerk_memory method that simply fetches the memory at an offset without
+	  refcounting or merging.
+
+2012-03-31 12:00:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/parse/grammar.y:
+	  grammar.y: fix childproxy code
+	  It takes GObject and not GstObject now
+
+2012-03-30 22:46:02 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbin.c:
+	* gst/gstchildproxy.c:
+	* gst/gstchildproxy.h:
+	  childproxy: include the child name in the signal
+
+2012-03-30 22:44:31 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/parse/grammar.y:
+	  parser: update for childproxy api changes
+
+2012-03-30 22:36:35 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstchildproxy.c:
+	  childproxy: fix signal parameter types
+
+2012-03-30 22:17:09 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbin.c:
+	* gst/gstchildproxy.c:
+	* gst/gstchildproxy.h:
+	* tests/check/gst/gstchildproxy.c:
+	  childproxy: use GObject instead of GstObject
+	  This makes it prossible to be used more widely. Fix implementations for the API
+	  change.
+
+2012-03-30 22:01:55 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstchildproxy.c:
+	* gst/gstchildproxy.h:
+	  childproxy: make get_child_by_name virtual
+	  Allows implementations to use custom name->object mappings.
+
+2012-03-30 22:01:26 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstchildproxy.c:
+	  childproxy: fix indentation
+
+2012-03-30 18:04:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-buffer.txt:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstbytewriter.c:
+	* plugins/elements/gstfakesrc.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/libs/bitreader.c:
+	* tests/check/libs/bytereader.c:
+	* tests/check/libs/typefindhelper.c:
+	* win32/common/libgstreamer.def:
+	  buffer: improve the buffer memory methods
+	  gst_buffer_take_memory -> gst_buffer_insert_memory because insert is what the
+	  method does.
+	  Make all methods deal with ranges so that we can replace, merge, remove and map
+	  a certain subset of the memory in a buffer. With the new methods we can make
+	  some code nicer and reuse more code. Being able to deal with a subset of the
+	  buffer memory allows us to optimize more cases later (most notably RTP headers
+	  and payload that could be in different memory objects).
+	  Make some more convenient macros that call the more generic range methods.
+
+2012-03-30 16:53:09 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefindelement: plug caps leaks
+
+2012-03-30 16:53:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gsttypefindhelper.c:
+	  typefindhelper: also unmap collected mapped buffers
+
+2012-03-30 16:53:00 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: plug caps leak
+
+2012-03-30 11:58:20 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: Rename ::event() to ::sink_event() for consistency
+
+2012-03-30 11:49:16 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.h:
+	  basesink: lower GST_BASE_SRC_FLAG_LAST
+	  It wouldn't leave that much room for subclass users
+
+2012-03-30 08:55:33 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  win32: Update defs file
+
+2012-03-29 18:03:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbytewriter.c:
+	  bytewriter: Actually commit the .c file changes too
+
+2012-03-29 17:59:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbytewriter.h:
+	  bytewriter: Add unchecked/inline variant of gst_byte_writer_put_buffer()
+
+2012-03-29 17:53:47 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  gstquery: Fix annotation
+
+2012-03-29 17:44:02 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: Flush the internal queue when we see GST_FLOW_FLUSHING
+	  Ensures that we don't end up with stale contents (like GstQuery) in
+	  the internal GQueue after any blocking upstream thread returns.
+
+2012-03-29 17:43:17 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: Don't unref GstQuery travelling through the queue
+	  Unlike events and buffers, the reference is not given to us
+
+2012-03-29 17:08:49 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: parsing allocation query need not provide reffed caps
+	  ... in line with other query parsing function.
+
+2012-03-29 15:45:00 +0200  Fabrizio (Misto) Milo <mistobaan@gmail.com>
+
+	* gst/gstcaps.c:
+	  caps: spelling fixes
+
+2012-03-29 15:28:44 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstelement.h:
+	  gstelement: lower GST_ELEMENT_FLAG_LAST
+	  It wouldn't leave that much room for subclass users
+
+2012-03-29 15:18:33 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/gstbuffer.c:
+	  gstbuffer: Fix unitialized variable
+	  gcc 4.5 complains otherwise :(
+
+2012-03-29 14:54:53 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/0.10'
+	  Conflicts:
+	  plugins/elements/gstmultiqueue.c
+
+2012-03-29 14:45:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Wake up all not-linked streams when a stream switches from linked to not-linked
+	  We reset all the waiting streams, let them push another buffer to
+	  see if they're now active again. This allows faster switching
+	  between streams and prevents deadlocks if downstream does any
+	  waiting too.
+	  Also improve locking a bit, srcresult must be protected by the
+	  multiqueue lock too because it's used/set from random threads.
+
+2012-03-29 14:32:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Recompute high-time too when flushing, not only high-id
+
+2012-03-29 13:39:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Only wait until the active pad's running time is reached if the active pad already saw data
+	  Otherwise we might block forever because upstream (e.g. multiqueue) is waiting
+	  for the previously active stream to return forever (which is waiting here
+	  in inputselector) before pushing something on the newly selected stream.
+
+2012-03-29 13:34:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.h:
+	* gst/gstbufferlist.c:
+	* gst/gstclock.c:
+	* gst/gstelementfactory.c:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstiterator.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* gst/gstmessage.c:
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* gst/gstminiobject.c:
+	* gst/gstminiobject.h:
+	* gst/gstobject.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstpadtemplate.c:
+	* gst/gstpipeline.c:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* gst/gstregistry.c:
+	* gst/gstsample.c:
+	* gst/gstsegment.c:
+	* gst/gststructure.c:
+	* gst/gsttask.c:
+	* gst/gsttrace.c:
+	* gst/gsturi.c:
+	* gst/gstvalue.c:
+	  docs: update more documentation
+
+2012-03-28 18:12:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/pwg/advanced-events.xml:
+	* gst/gstbin.c:
+	* gst/gstbuffer.c:
+	* gst/gstbufferlist.c:
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	* gst/gstbus.c:
+	* gst/gstcaps.c:
+	* gst/gstclock.c:
+	* gst/gstelement.c:
+	* gst/gstevent.c:
+	* gst/gstminiobject.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasesrc.h:
+	  review some docs
+
+2012-03-28 16:44:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: simplify and refactor _span and _merge
+	  Unify the _span and _merge code paths and simplify now that we only use this
+	  internally.
+
+2012-03-28 15:16:01 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: we always call _span with the buffer size
+
+2012-03-28 15:12:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: move some code around
+
+2012-03-28 15:08:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: we call _span always with 0 offset
+
+2012-03-28 13:08:59 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: remove always FALSE function argument
+
+2012-03-28 16:39:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: delay buffer unref until buffer no longer needed
+
+2012-03-28 12:44:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstadapter.c:
+	* tests/check/gst/gstbuffer.c:
+	* win32/common/libgstreamer.def:
+	  buffer: unify buffer merge methods
+	  Add gst_buffer_append() which appends the memory blocks from one buffer to
+	  another. Remove the old inefficient _merge() and _join() methods which forced a
+	  premature memcpy in most cases.
+	  Remove the _is_span() and _span() methods they are not needed anymore now that
+	  we can _append(). Merging and spanning will be delayed until mapping or maybe
+	  not at all when the element can deal with the different memory blocks.
+
+2012-03-27 15:24:49 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/gstghostpad.c:
+	  gstpad: Fix typo in docstring
+
+2012-03-27 15:24:49 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/gstghostpad.c:
+	  gstpad: Fix typo in docstring
+
+2012-03-27 15:16:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: re-enable _span offset calculations
+	  when we _span two complete buffers, we can copy offsets and timestamps.
+
+2012-03-27 15:00:38 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttrace.c:
+	  trace: add refcount to trace debug
+
+2012-03-27 14:59:06 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: add more _is_writable checks
+	  Add some checks to assert on writability for functions that modify metadata.
+
+2012-03-27 12:40:36 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	  bufferpool: remove const from get/set_param
+	  Remove the const from the GstCaps in get/set_param. set_param modifies
+	  the refcount of the caps.
+	  Don't increment the refcount of the caps result of get_param like we
+	  do with other objects.
+	  Update some annotiations.
+
+2012-03-27 12:39:53 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: fix annotation for _release
+	  _release takes ownership of the buffer
+
+2012-03-27 12:31:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	  bus: Change the timeout argument type of gst_bus_poll() from GstClockTimeDiff to GstClockTime
+	  This is more consistent with the other GstBus methods that have a timeout.
+
+2012-03-26 19:13:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: remove old code
+	  Remove attempt to delay _make_writable
+
+2012-03-26 18:07:35 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: ensure writable caps prior to modification
+
+2012-03-26 17:38:50 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: check min/max_buffers
+
+2012-03-26 17:35:18 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query:fix copy-and-paste problem
+
+2012-03-26 11:54:59 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Replace master with 0.11
+
+2012-03-23 18:51:52 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: add and improve debug messages
+	  ... so they end up in a more expected debug category rather than oblivion.
+
+2012-03-22 15:54:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* configure.ac:
+	  back to devel
+
+2012-03-22 15:49:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gstreamer-plugins.args:
+	* docs/plugins/inspect-build.stamp:
+	* docs/plugins/inspect.stamp:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* gstreamer.doap:
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  Release 0.11.3
+
+2012-03-22 15:22:57 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: remove automatic and undocumented setting of always_in_place
+	  ... which controls how to (forcibly) deal with (non-)writable data and
+	  is not necessarily related to identical caps.
+	  In particular, it is also not so helpful anymore with a more advanced
+	  GstVideoFilter subclass which always has a transform_ip method currently,
+	  even though its subclass may not have a corresponding _ip method.
+
+2012-03-22 10:45:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  configure.ac
+
+2012-03-22 08:35:25 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tools/gst-launch.c:
+	  gst-launch: don't shadow global variable
+
+2012-03-21 12:10:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/Makefile.am:
+	  dist net directory only once
+
+2012-03-21 09:00:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: Only allow fixed caps in the accept-caps query
+
+2012-03-20 17:08:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: do queries more directly
+	  Just call our internal query function instead of going through the pad and the
+	  query handler etc.
+
+2012-03-20 17:08:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: add some performance debug
+
+2012-03-20 13:14:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* libs/gst/base/gstbasesrc.c:
+	* plugins/elements/gstqueue2.c:
+	  pad: improve docs of get/pull_range
+	  Improve the docs of the get/pull_range functions, define the lifetime of the
+	  buffer in case of errors and short reads.
+	  Make sure the code does what the docs say.
+
+2012-03-20 10:20:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* tests/check/gst/gstevent.c:
+	  buffer: improve gst_buffer_new_wrapped_full()
+	  Make it possible to wrap all kinds of memory by exposing all properties to
+	  gst_buffer_new_wrapped_full(). This makes it possible to also create writable
+	  memory without a free function or memory with extra padding.
+
+2012-03-19 11:45:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: handle serialized queries
+
+2012-03-16 22:51:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: make more stuff private
+
+2012-03-16 22:25:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: small cleanups
+
+2012-03-16 21:37:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gsttypefindelement.c:
+	* tests/check/elements/filesrc.c:
+	  pad: change the semantics of get/pull_range a little
+	  Make it so that one can specify a buffer for get/pull_range where the downstream
+	  element should write into. When passing NULL, upstream should allocate a buffer,
+	  like in 0.10.
+	  We also need to change the probes a little because before the pull probe, there
+	  could already be a buffer passed. This then allows us to use the same PROBE
+	  macro for before and after pulling.
+	  While we're at the probes, make the query probe more powerful by handling the
+	  GST_PAD_PROBE_DROP return value. Returning _DROP from a query probe will now
+	  return TRUE upstream and will not forward the probe to the peer or handler.
+	  Also handle _DROP for get/pull_range properly by not dispatching to the
+	  peer/handler or by generating EOS when the probe returns DROP and no buffer.
+	  Make filesrc handle the non-NULL buffer passed in the get_range function and
+	  skip the allocation in that case, writing directly into the downstream provided
+	  buffer.
+	  Update tests because now we need to make sure to not pass a random value in the
+	  buffer pointer to get/pull_range
+
+2012-03-16 21:36:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: proxy allocation query
+
+2012-03-16 18:39:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: fix docs a little, alloc_buffer is gone
+
+2012-03-15 22:09:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	* gst/gstmemory.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* win32/common/libgstreamer.def:
+	  bufferpool: split bufferpool configuration
+	  Make separate methods to control the bufferpool and the allocator used by the
+	  bufferpool.
+	  Make it possible to change the allocator of a pool.
+
+2012-03-15 20:23:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* win32/common/libgstreamer.def:
+	  query: rework the ALLOCATION query
+	  Separate the bufferpool and allocator hints in the allocation query, some
+	  of the values don't always make sense together.
+	  Keep the bufferpool and its configuration together.
+	  Keep the allocator and its parameters together.
+	  Allow for multiple bufferpool configurations in the query.
+
+2012-03-15 16:50:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: comment and debug improvement
+
+2012-03-15 16:49:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: improve debug
+	  also fix a potential memory leak
+
+2012-03-15 14:28:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2012-03-15 14:01:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	  GstBufferPoolParams -> GstBufferPoolAcquireParams
+	  Because those flags are not from the bufferpool but for the acquire function.
+
+2012-03-15 13:28:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstbufferpool.c:
+	* gst/gstcompat.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* gst/gstvalue.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstqueue2.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	* win32/common/libgstreamer.def:
+	  memory: group allocation parameters in a struct
+	  Group the extra allocation parameters in a GstAllocationParams structure to make
+	  it easier to deal with them and so that we can extend them later if needed.
+	  Make gst_buffer_new_allocate() take the GstAllocationParams for added
+	  functionality.
+	  Add boxed type for GstAllocationParams.
+
+2012-03-15 00:25:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: only update buffer size on short read
+
+2012-03-15 00:24:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: fix copy function
+	  Copy the structure too.
+
+2012-03-15 00:23:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: fix maxsize after align
+	  when we align the data pointer, make sure to update the maxsize.
+	  Add some more debug
+
+2012-03-14 22:58:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queue: remove useless PROXY_ALLOCATION flag
+
+2012-03-14 21:32:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbufferpool.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: Add 0 padding
+	  Change gst_allocator_alloc() so that we can also spicify flags and padding.
+	  Add 2 new flags to mark the memory 0 prefixed/padded. This allows us to
+	  remove some resizes in the base classes.
+	  When allocating memory, memset prefix and padding with 0 when the flags tell
+	  us to.
+	  On resize, clear the zero padding flags if we can't guarantee the memory is
+	  still 0 filled.
+	  Update tests.
+
+2012-03-14 19:37:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	  query: also include padding in ALLOCATION query
+	  Negotiating padding is needed on second thought so include it in the
+	  ALLOCATION query.
+	  Make the bufferpool take padding into account when allocating.
+	  Make basesrc take padding into account.
+	  Use padding and prefix when allocating in basetransform.
+
+2012-03-14 18:45:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: take prefix into account when allocating
+	  Take into account the prefix that we received from the allocation query and use
+	  it to allocate and resize a larger buffer.
+
+2012-03-14 17:16:36 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: free owned discarded pool config
+
+2012-03-14 16:27:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* libs/gst/base/gstbasesink.c:
+	  pad: implement DRAIN handling
+	  When we forward the DRAIN query and there is nothing to forward it to, assume we
+	  are drained.
+	  When a basesink receives a drain query, reply with TRUE.
+
+2012-03-14 16:14:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* win32/common/libgstreamer.def:
+	  query: add new drain query
+	  With the new serialized downstream queries we can implement a drain query that
+	  makes an element waits until a downstream element replies to the query.
+
+2012-03-14 16:01:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: make serialized queries push sticky events first
+	  Before we can proceed with a serialized query, we need to be sure that all
+	  sticky events were pushed.
+
+2012-03-14 15:42:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queues: warn when receiving a serialized event
+	  .. until we implement it.
+
+2012-03-14 15:42:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	  queue: add support for serialized queries
+
+2012-03-14 15:29:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: take stream lock on serialized queries
+
+2012-03-14 15:16:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: enforce correct query direction
+
+2012-03-14 14:51:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* win32/common/libgstreamer.def:
+	  query: register queries like events
+	  Also register queries with a QueryType that allows us to check if the event is
+	  sent in the right direction. Add a serialized query type because we will need
+	  this for the allocation query.
+	  Remove the QueryTypeDefinition stuff, it is not used anymore and we now use
+	  custom queries and separate API for them.
+	  Update defs.
+
+2012-03-14 12:42:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: add more debug
+
+2012-03-13 15:40:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: remove old compat mode
+
+2012-03-13 15:40:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: small docs update
+
+2012-03-13 10:04:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: remove gst_caps_union()
+	  Remove gst_caps_union(), use gst_caps_merge(). This function was not used
+	  anymore and it is unclear what the difference is with _merge().
+
+2012-03-12 23:05:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: bump AS_LIBTOOL version
+	  API was added to collectpads2
+
+2012-03-12 23:02:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: backport AS_LIBTOOL version from 0.10.36 release
+	  Might fix issues with missing symbols for people who install GStreamer
+	  from source and at some point jumped back and forth between git master
+	  and the 0.10.36 release (or 0.10. branch).
+
+2012-03-12 23:08:00 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  docs: fix function name and typo
+
+2012-03-12 19:52:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: get template caps only once
+	  Get the template caps of the pads only once, avoids unecessary ref
+	  and unrefs.
+
+2012-03-12 18:34:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: delay _make_writable() until needed in _normalize()
+	  Delay _make_writable() until we actually found a list and need to update the
+	  caps.
+
+2012-03-12 18:25:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: shortcut simplify earlier
+	  A simple caps is already simplified, no need to check for fixedness.
+
+2012-03-12 18:22:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: small cleanup, remove const
+
+2012-03-12 18:02:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: small cleanups
+
+2012-03-12 16:40:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: small doc improvement
+
+2012-03-12 16:18:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* configure.ac:
+	  configure.ac: bump required GLib to 2.31.14
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=671911
+
+2012-03-12 13:50:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: update porting-to-0.11.txt a little
+
+2012-03-12 12:35:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: fix some 0.11 FIXMEs
+
+2012-03-12 12:21:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* tests/check/gst/gstcaps.c:
+	  caps: make _normalize take ownership of input
+	  Make gst_caps_normalize() take ownership of the input so that it can more
+	  intelligently decide when to copy or not.
+
+2012-03-12 11:38:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* gst/gstquery.c:
+	* gst/gstregistrychunks.c:
+	* plugins/elements/gstcapsfilter.c:
+	* tests/check/gst/gstcaps.c:
+	* win32/common/libgstreamer.def:
+	  caps: _do_simplify() -> _simplify()
+	  Rename _do_simplify() to _simplify(). The name was introduced as a replacement
+	  method for a deprecated method but we can now rename it again.
+	  Fix some docs.
+
+2012-03-12 10:42:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstregistrychunks.c:
+	* plugins/elements/gstcapsfilter.c:
+	* tests/check/gst/gstcaps.c:
+	  caps: improve _do_simplify
+	  Make gst_caps_do_simplify() take ownership of the input caps and produce a
+	  simplified output caps. This removes the requirement of having writable input
+	  caps and the method can make the caps writable only when needed.
+
+2012-03-12 10:41:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: fix unit test
+	  with the new caps API, there is more sharing and less copying going on so the
+	  unit test refcounts are different.
+
+2012-03-12 09:03:42 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+	* docs/faq/general.xml:
+	  update license link to point to 2.1 license, instead of just generic lgpl file, which is always the latest and thus not correct for gstreamer
+
+2012-03-11 18:57:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/manual/advanced-autoplugging.xml:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstpadtemplate.c:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasesrc.h:
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/gst/gstcaps.c:
+	  caps: avoid using in-place oprations
+	  Rework some caps operations so they don't rely on writable caps but instead take
+	  ownership of the input caps and do _make_writable() only when needed.
+	  Remove some const from caps functions, it does not make much sense for
+	  refcounted objects and does not allow us to return a refcount to the const input
+	  caps.
+	  Rework the base classes fixate vmethods to not operate on the caps in-place.
+	  All this saves us around 30% of caps and structure copy and new operations.
+
+2012-03-11 17:22:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: add allocation debug
+
+2012-03-10 09:25:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttypefind.c:
+	* gst/gsttypefind.h:
+	* libs/gst/base/gsttypefindhelper.c:
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gsttypefindelement.h:
+	  typefind: remove const from refcounted GstCaps
+	  Having const on refcounted objects require us to make copies instead of simply
+	  taking a ref, don't do that.
+
+2012-03-10 09:15:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstregistrychunks.c:
+	  registry: avoid copy when caps are fixed
+	  Avoid doing a useless copy when the caps are fixed and simplify will not do
+	  anything.
+
+2012-03-09 16:14:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: small optimizations
+	  shortcut heavy work when buffer_resize does nothing.
+	  Avoid an extra _ref when mapping a buffer.
+	  Add some G_LIKELY.
+
+2012-03-09 15:03:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-bufferpool.txt:
+	  bufferpool: fix array types
+
+2012-03-09 14:30:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-buffer.txt:
+	* docs/design/part-bufferpool.txt:
+	* docs/design/part-memory.txt:
+	* docs/design/part-meta.txt:
+	* docs/design/part-overview.txt:
+	* docs/design/part-scheduling.txt:
+	  docs: update docs
+
+2012-03-09 11:53:54 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: also push sticky events on new event
+	  Make a helper function check_sticky to check and push pending sticky events.
+	  Move the handling of the result of pushing the sticky event inside the
+	  push_event function, we need to mark the event as received when it was pushed
+	  correctly.
+	  Move the sticky events code outside of gst_pad_push_event_unchecked and
+	  make it purely handle sending the event to the peer.
+	  when pushing a sticky event, first store it on the pad. Then check and push any
+	  pending sticky events when we get a serialized or sticky event on a srcpad. This
+	  fixes the issue where sticky events are not pushed when an event is pushed.
+
+2012-03-09 11:52:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: store the received result from _foreach
+	  If the foreach function changes the received state of the sticky event, make
+	  sure we remember that.
+
+2012-03-09 11:52:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: add comment
+
+2012-03-09 11:49:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  test: add test to check sticky events order
+	  Sticky events pushed on an unlinked pad should be stored on the pad. When the
+	  pad is then linked and an event is pushed, the event should be merged with the
+	  already existing sticky events and then the sticky events should be pushed in
+	  the order that they were originally pushed.
+
+2012-03-09 11:48:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstutils.c:
+	  test: fix typo in comment
+
+2012-03-08 20:08:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/pipelines/seek.c:
+	  tests: port pipeline/seek test to 0.11
+	  Doesn't fail in 0.11 of course, at least not on my machine.
+
+2012-03-08 19:55:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  common
+	  gst/gstpad.h
+	  gst/gsttask.c
+	  libs/gst/base/gstcollectpads2.h
+
+2012-03-08 16:30:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gsttask.c:
+	  pad, task: improve debug logging
+
+2012-03-08 16:26:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpad.h:
+	* libs/gst/base/gstcollectpads2.h:
+	  pads, collectpads2: get rid of superfluous brackets around static rec mutex calls
+	  Makes it possible to define those calls to something for tracing.
+
+2012-03-08 16:25:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  common: update common module
+	  For make foo/bar.check-norepeat target.
+
+2012-03-08 15:23:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/pipelines/.gitignore:
+	* tests/check/pipelines/seek.c:
+	  tests: add minimal basesrc ! sink seeking unit test
+	  Should reproduce 'GStreamer-WARNING **: wrong STREAM_LOCK count 0'
+	  warnings (with make pipelines/seek.torture or pipelines/seek.forever
+	  anyway, since it appears to be racy).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=670846
+
+2011-12-26 00:18:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* win32/common/libgstreamer.def:
+	  value: remove gst_value_register_{subtract,union,intersect}_func() API
+	  There isn't really any need to provide public API for that. It's not
+	  used anywhere in practice, and we aim to provide an API that works
+	  for GstCaps, not some kind of generic set manipulation API based on
+	  GValue. Making this private also makes it easier to optimise this
+	  later. We can always put it back if someone actually needs it.
+
+2012-03-08 10:47:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttee.c:
+	  tee: fix refcount error
+
+2012-03-08 09:45:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* tests/check/gst/gstpad.c:
+	  pad: return ANY for a pad without template
+	  Because gst_pad_get_pad_template_caps() returns ANY when there is no template,
+	  the query caps function should also return ANY when there is no template (and no
+	  pad current caps) instead of EMPTY.
+
+2012-03-08 09:44:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: small cleanup
+
+2012-03-07 15:34:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: add comment
+
+2012-03-08 10:32:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Fix merge mistake
+
+2012-03-08 10:19:52 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbaseparse.c
+	  libs/gst/base/gstbasetransform.c
+	  plugins/elements/gsttee.c
+
+2012-03-07 11:23:56 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: arrange for properly disjoint frame flags
+
+2012-03-06 15:17:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: delay pool activation
+	  Delay the activation of the bufferpool until we actually need a buffer from the
+	  pool.
+
+2012-03-06 12:28:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Fix 'self-comparison always evaluates to true'
+	  This was really a bug.
+
+2012-03-06 12:24:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttee.c:
+	  tee: Fix 'use of logical '&&' with constant operand' compiler warning
+	  This is actually a real bug.
+
+2012-03-06 12:23:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fix 'equality comparison with extraneous parentheses' compiler warning
+
+2012-03-06 12:16:19 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: Fix 'comparison of unsigned enum expression >= 0 is always true' compiler warning
+
+2012-03-05 15:23:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: don't propose_allocation before negotiation
+	  Answer the allocation query with FALSE when we are not negotiated yet because at
+	  that point we have no idea if we need to proxy the allocation query or not.
+
+2012-03-05 14:41:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Fix handling of multiple newsegment events
+	  Previously only the last would be pushed, which would cause
+	  invalid running times downstream. This also fixes the handling
+	  of update newsegment events.
+
+2012-03-05 14:25:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Also flush the close_segment
+	  Pushing this after flushing will confuse downstream.
+
+2012-03-05 14:23:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Remove obsolete code and move gap handling to the correct place
+	  The segment start adjustment code in pull mode should never trigger
+	  anymore because the bisection code earlier would have already made
+	  sure that we're at the desired position.
+	  Also move the gap handling some lines below after sending the currently
+	  configured segments. Otherwise we might fill gaps in a segment that is
+	  not configured downstream yet.
+
+2012-03-05 13:12:18 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Clear some more state when receiving FLUSH_STOP
+	  Like pending serialized events and the currently cached buffer.
+
+2012-03-05 13:00:38 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Only queue serialized events for sending them later
+
+2012-03-05 00:34:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/check/Makefile.am:
+	  libgstcheck: export gst_consistency_checker_add_pad()
+	  Fix build of the adder unit test in -base again.
+
+2012-03-02 17:32:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: refine metadata filter and transform
+	  Add a vmethod to filter metadata that should be passed upstream. By default,
+	  don't pass anything.
+	  Add a vmethod to transform metadata from the input buffer to the output buffer.
+	  By default, nothing is transformed or copied.
+
+2012-03-02 17:04:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.h:
+	  gst: include gstmeta.h
+
+2012-03-02 17:03:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: add more debug info
+
+2012-03-02 13:02:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2012-03-02 13:02:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstmeta.c:
+	  tests: improve metadata test
+
+2012-03-02 12:45:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmeta.h:
+	  meta: add boolean to signal a region copy
+	  Add a boolean to the metadata copy transform that signals if a only a
+	  region is copied.
+
+2012-03-02 12:16:03 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	  consitencychecker: don't fail on multiple flush_start events
+	  This seems to be okay after a irc discussion.
+
+2012-03-02 11:57:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	  meta: transform docs
+	  Use gst- prefix for metadata transform types.
+
+2012-03-02 11:04:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetrans: fix comment
+
+2012-03-02 11:05:48 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* Android.mk:
+	* Makefile.am:
+	* docs/gst/Makefile.am:
+	* gst/Makefile.am:
+	* gst/gst.h:
+	* gst/gstbin.c:
+	* gst/gstbus.c:
+	* gst/gstchildproxy.c:
+	* gst/gstelement.c:
+	* gst/gstmarshal.list:
+	* gst/gstobject.c:
+	* gst/gstpad.c:
+	* gst/gstpadtemplate.c:
+	* gst/gstregistry.c:
+	* gst/gsturi.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstindex.c:
+	* libs/gst/base/gstpushsrc.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gsttypefindelement.c:
+	* win32/common/gstmarshal.c:
+	* win32/common/gstmarshal.h:
+	  gst: Remove gstmarshal.[ch] completely and use the generic marshaller
+	  Fixes bug #671130.
+
+2012-03-02 10:51:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/Makefile.am:
+	  gst: Don't install gstmarshal.h
+	  The generic, FFI based marshaller should be used instead of these
+	  and we definitely shouldn't export the marshallers in our public API.
+
+2012-03-01 17:39:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstinfo.c:
+	* gst/gstmeta.c:
+	  meta: improve debugging
+	  Add category for metadata debug
+
+2012-03-01 17:38:54 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: improve debugging
+
+2012-03-01 17:38:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: improve debugging
+
+2012-03-01 15:18:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: remove metadata tagged with the memory tag
+	  Remove metadata that describes the particular memory of the buffer it is
+	  attached to. We need to do this because in non-passthrough mode we will allocate
+	  new memory for our output buffer.
+
+2012-03-01 15:17:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	  meta: add tag for memory metadata
+
+2012-03-01 14:49:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	  query: add method to remove allocation_meta
+	  Also g_return_if_fail for out-of-bounds access instead of silently failing.
+
+2012-03-01 14:30:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: improve propose_allocation
+	  Improve the propose allocation vmethod by passing the downstream allocation
+	  query to it. This way the vmethod implementation can use properties of the
+	  downstream allocation to generate the upstream query result. If there is no
+	  downstream quety, it means that the element is working in passthrough mode.
+	  Implement a default decide_allocation.
+
+2012-03-01 11:11:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: clear allocation parameters in passthrough
+	  Clear the allocation parameters when we operate in passthrough.
+
+2012-03-01 11:06:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/capsfilter.c:
+	* tests/check/elements/tee.c:
+	* tests/check/elements/valve.c:
+	* tests/check/gst/capslist.h:
+	* tests/check/gst/gstelementfactory.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/pipelines/parse-launch.c:
+	* tests/check/pipelines/queue-error.c:
+	  tests: fix old caps in tests now that core warns
+
+2012-03-01 14:51:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/check/gstconsistencychecker.c:
+	  libs: Fix some merge mistakes
+
+2012-03-01 14:43:01 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstcollectpads2.c
+	  libs/gst/check/gstconsistencychecker.c
+
+2012-02-28 12:03:46 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix some debug message typos
+
+2012-02-29 21:57:00 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	* libs/gst/check/gstconsistencychecker.h:
+	  consitencychecker: add handling for sink-pads
+	  Add a pad-probe for sink-pads. One can now add extra pads (belonging to the same
+	  element) to a checker. This allows us to extend the checks.
+
+2012-02-29 17:20:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* libs/gst/net/gstnetaddressmeta.h:
+	* tests/check/gst/gstmeta.c:
+	* win32/common/libgstnet.def:
+	* win32/common/libgstreamer.def:
+	  meta: split registration of API and implementation
+	  Split out the registration of the metadata API and its implementation. Make a
+	  GType for each metadata API. This allows us to store extra information with the
+	  API type such as the tags.
+	  Change the buffer API so that we can get the metadata using the API GType.
+	  Change the query API so that we use the metadata API GType in the allocation
+	  query instead of a string.
+	  Update netaddress and unit tests
+
+2012-02-29 16:00:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstminiobject.h:
+	  minobject: small .h indent fix
+
+2012-02-29 12:41:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: print a g_warning() if someone tries to construct 0.10-style raw audio/video caps
+
+2012-02-29 08:44:04 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	  consistencychecker: also check for duplicated flush_starts
+
+2012-02-28 20:36:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: add more logging
+
+2012-02-28 16:17:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.h:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* tests/check/gst/gstmeta.c:
+	  meta: add return vale to transform
+	  Add a boolean return value so that we can see when a transform fails.
+
+2012-02-28 12:52:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* win32/common/libgstreamer.def:
+	  meta: add method to check for a tag
+
+2012-02-28 12:51:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstmeta.c:
+	  tests: fix unit test
+
+2012-02-28 11:34:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* libs/gst/net/gstnetaddressmeta.c:
+	  meta: add support to tagging the metadata
+	  Add support for adding tags to the metadata. with some standard keys, this
+	  should make it possible to describe what the metadata refers to. We should be
+	  able to use this information to decide if a transformation destroys the metadata
+	  or not.
+
+2012-02-27 13:35:10 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstquery.c:
+	* tools/gst-inspect.c:
+	  Suppress deprecation warnings in selected files, for g_value_array_* mostly
+
+2012-02-27 11:46:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstbus.c:
+	  tests: increase bus test timeout
+
+2012-02-21 20:43:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstdatetime.c:
+	  tests: make datetime test more reliably when comparing two almost identical nows
+	  Account for rounding errors in some places, and that two nows are
+	  not always entirely identical, so allow some leeway when comparing
+	  microseconds and seconds. Ran into this too often, esp. when the
+	  system is under load.
+
+2012-02-27 09:48:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.h:
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	  remove some useless includes in .h
+
+2012-02-27 09:02:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* gst/gstsystemclock.c:
+	* libs/gst/net/gstnetclientclock.c:
+	* tests/check/gst/gstsystemclock.c:
+	* win32/common/libgstreamer.def:
+	  clock: make more stuff private
+	  Expose methods to get and set the timeout because subclasses uses this.
+
+2012-02-26 20:45:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsystemclock.c:
+	* gst/gstsystemclock.h:
+	  systemclock: make more stuff private
+
+2012-02-26 20:44:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	  bufferpool: make more stuff private
+
+2012-02-26 16:32:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	  bus: make more fields private
+
+2012-02-27 00:09:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfdsink.c:
+	  fdsink: fix compilation after merge
+
+2012-02-27 00:08:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  NEWS
+	  RELEASE
+	  configure.ac
+	  docs/plugins/gstreamer-plugins.hierarchy
+	  docs/plugins/inspect/plugin-coreelements.xml
+	  libs/gst/base/gstcollectpads.c
+	  libs/gst/base/gstcollectpads2.c
+	  plugins/elements/gstfdsink.c
+	  win32/common/config.h
+	  win32/common/gstenumtypes.c
+	  win32/common/gstversion.h
+
+2012-02-26 23:11:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: rescue the annotation from collectpads
+
+2012-02-26 23:10:58 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/base/gstcollectpads.c:
+	  docs: fix a typo in comment
+
+2012-02-26 22:57:02 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: move "MT save" tags to doc body
+	  It is not useful to have "MT safe" tags randomly in body, returns or since paragraphs.
+
+2012-02-25 15:18:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfdsink.c:
+	  fdsink: implement GstBaseSink::query instead of messing with the pad
+
+2012-02-25 15:08:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsink.h:
+	  fdsink: implement SEEKING query
+	  We may or may not support seeking. stdout to a
+	  terminal doesn't support seeking, for example, but
+	  ... ! fdsink > file.foo just might.
+
+2012-02-25 15:07:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesink.c:
+	  filesink: implement SEEKING query
+	  We may or may not do seeking, depends on the
+	  output file/device really, it doesn't have to
+	  be a file after all.
+
+2012-02-25 15:07:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: answer SEEKING query
+	  We don't do seeking, in case anyone wants to know.
+
+2012-02-24 23:39:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistrybinary.c:
+	  registry: fix lseek() return code handling
+	  lseek() returns the offset if successful, and this is != 0 and
+	  does not indicate an error. And if it does actually fail, don't
+	  return FALSE (0) as an int, but -1. None of these things are
+	  likely to have made a difference, ever. I don't think the offset
+	  seek can ever actually happen, the current file position and the
+	  current offset should always be increased in lock step, unless
+	  there was an error in which case we'd just error out.
+
+2012-02-24 23:19:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistrybinary.c:
+	  registry: don't forget to clean up registry temp file in another error case
+	  Also clean up temp file if we get an error during write() rather
+	  than just when doing fsync() or close().
+
+2012-02-24 15:24:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix race
+	  After a writer has written to its reserved write location, it can only make the
+	  location available for reading if all of the writers with lower locations have
+	  finished.
+
+2012-02-24 12:51:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix subtle race
+	  Fix a race where the reader would see the updated the tail pointer before the
+	  write could write the data into the queue. Fix this by having a separate reader
+	  tail pointer that is only incremented after the writer wrote the data.
+
+2012-02-24 11:00:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	* plugins/elements/gstcapsfilter.c:
+	* win32/common/libgstbase.def:
+	  basetransform: fix reconfigure methods
+	  Rename gst_base_transform_suggest to gst_base_transform_reconfigure_sink because
+	  that is what it does. Also remove the caps and size because that is not needed.
+	  Rename gst_base_transform_reconfigure to gst_base_transform_reconfigure_src.
+	  Remove some old unused code in capsfilter.
+
+2012-02-24 10:23:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* tests/check/gst/gstmeta.c:
+	* win32/common/libgstreamer.def:
+	  meta: flesh out the metadata transform
+	  Flesh out the transform method. Add a type and extra info to the transform
+	  function so that implementation can transform the metadata.
+	  Remove the copy function and replace with the more generic transform.
+
+2012-02-24 10:23:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-meta.txt:
+	  docs: update docs
+
+2012-02-23 08:48:22 -0800  David Schleef <ds@schleef.org>
+
+	* tests/check/Makefile.am:
+	  Fix gap in Makefile
+
+2012-02-23 08:48:10 -0800  David Schleef <ds@schleef.org>
+
+	* gst/gstmemory.c:
+	  spelling fix
+
+2011-12-26 16:45:20 -0800  David Schleef <ds@schleef.org>
+
+	* gst/gstpoll.c:
+	  poll: fix spelling of writable
+
+2012-02-23 15:32:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.h:
+	  memory: add user_data to GstMapInfo
+	  Add extra pointers to GstMapInfo so that implementations can use these to store
+	  extra info.
+
+2012-02-23 15:32:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.h:
+	  bufferpool: improve docs
+
+2012-02-23 12:09:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* NEWS:
+	* RELEASE:
+	  Update NEWS and RELEASE as well
+
+2012-02-23 11:59:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	  docs: remove transform lock
+
+2012-02-23 10:36:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* docs/plugins/gstreamer-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstversion.h:
+	  Bump version after releases
+
+2012-02-23 11:08:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: remove transform lock
+	  This is not needed anymore by the baseclass. subclasses should do their own
+	  locking when needed.
+
+2012-02-23 10:12:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetrans: cleanups
+	  Clean up the setcaps function.
+	  The passthrough variable is protected with the object lock.
+
+2012-02-22 15:26:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: improve propose_allocation
+	  Always call the propose_allocation method and provide a default implementation
+	  that passes the query on in passthrough mode so that subclasses can also call
+	  this. Also pass if the transform is in passthrough mode so that the
+	  implementation can adjust its algorithm.
+
+2012-02-22 12:24:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetrans: improve fixate_caps function
+	  Make it possible to also implement non-inplace fixate functions. Let the fixate
+	  function make the caps writable when needed because some fixate functions might
+	  not need to modify the caps.
+
+2012-02-22 02:02:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbytewriter.c:
+	* plugins/elements/gstfakesrc.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	* tests/check/libs/bitreader.c:
+	* tests/check/libs/bytereader.c:
+	* tests/check/libs/typefindhelper.c:
+	  memory: make _new_wrapped take user_data and notify
+	  Make it possible to configure a GDestroyNotify and user_data for
+	  gst_memory_new_wrapped() this allows for more flexible wrapping of foreign
+	  memory blocks.
+
+2012-02-02 13:45:25 -0500  Ryan Lortie <desrt@desrt.ca>
+
+	* autogen.sh:
+	  build: avoid touching .po files during 'make'
+	  A simple workaround to deal with GNU gettext automake integration
+	  failing to deal with git.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=669207
+
+2012-02-21 21:06:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  input-selector: default to sync-streams=true
+	  I think this is the expected behaviour, and we couldn't do this
+	  in 0.10 for backwards-compatibility reasons, so change it now.
+
+2012-02-21 16:39:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/queue.c:
+	  tests: fix queue unit test after queue changes
+
+2012-02-21 16:38:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: remove some old code
+
+2012-02-21 16:37:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: handle NULL callbacks
+	  When we have a matching NULL callback, also consider the 'callback' marshalled,
+	  this way blocking probes with a NULL callback actually work.
+
+2012-02-21 12:52:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: remove weird link behaviour
+	  Remove the link functions and always start the pad task on the srcpad. If
+	  applications need to autoplug they can put a blocking probe on the srcpad like
+	  they would with any other element.
+
+2012-02-21 12:52:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfakesrc.c:
+	  fakesrc: handle pts/dts
+
+2012-02-21 12:46:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: remove custom marshaller
+
+2012-02-21 12:43:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: also debug dts/pts
+
+2012-02-21 12:13:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: debug pts and dts
+
+2012-02-21 12:12:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: remove custom marshaller
+
+2011-11-24 18:40:40 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* tests/check/gst/gstpad.c:
+	  Unit test for queue src caps notification
+
+2012-02-20 14:37:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstsegment.c:
+	  tests: fix useless segment test
+
+2012-02-20 14:29:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsegment.c:
+	  segment: don't use duration in clipping
+	  Don't use the duration in the segment for calculating clipping values.
+	  The duration is expressed in stream time and clipping is done on unrelated
+	  timestamp values.
+	  This used to be interesting for elements that used the segment structure to
+	  implement seeking because then they would use stream-time for the segment
+	  start/stop values and the duration could be used as a fallback when the stop
+	  position was not set. Now that the complete segment event is passed between
+	  elements we cannot do this anymore because some elements might store the
+	  duration and start/stop values with different time bases in the segment.
+
+2012-02-20 14:22:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	  info: debug segment duration as well
+
+2012-02-20 11:46:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: copy metadata when using a pool
+	  also copy the metadata when we allocated a new buffer from a pool
+
+2012-01-26 03:02:48 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* libs/gst/net/gstnettimepacket.c:
+	  nettimepacket: fix printf format warning in debug message
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664491
+
+2012-02-18 01:04:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: fix more docs
+
+2012-02-17 15:53:58 -0800  Edward Hervey <edward@collabora.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstevent.h:
+	* gst/gstmemory.h:
+	  doc fixups
+
+2012-02-17 15:09:56 -0800  Edward Hervey <edward@collabora.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Move variable and assignment to where it's needed
+
+2012-02-17 15:09:06 -0800  Edward Hervey <edward@collabora.com>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Handle return value of decide_allocation vmethod
+	  If it fails, properly propagate the error
+
+2012-02-17 15:08:32 -0800  Edward Hervey <edward@collabora.com>
+
+	* gst/gstvalue.c:
+	  gstvalue: Remove useless assignment
+
+2012-02-17 15:07:56 -0800  Edward Hervey <edward@collabora.com>
+
+	* gst/gstvalue.c:
+	  gstvalue: Gracefully handle NULL Gvalue
+	  Avoids unreferencing NULL pointer
+
+2012-02-18 00:03:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: make some errors critical
+	  When we have no chain function or when we are operating the pad in the wrong
+	  mode, emit a critical instead of posting an error message. This is certainly a
+	  programming error and we cannot always post a message (like when the pad has no
+	  parent)
+
+2012-02-18 00:03:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	  info: also debug position of segment
+
+2012-02-17 23:59:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  win32: back to development
+
+2012-02-17 11:02:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* configure.ac:
+	  configure: back to development
+
+=== release 0.11.2 ===
+
+2012-02-17 11:01:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gstreamer-plugins.args:
+	* docs/plugins/gstreamer-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* gstreamer.doap:
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstversion.h:
+	  RELEASE 0.11.2
+
+2012-02-15 17:12:09 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: tweak some documentation
+
+2012-02-15 17:11:54 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: simplify and improve frame state handling
+	  Use a frame flag to signal to subclass it should reset any retained
+	  state w.r.t. frame parsing since the frame being passed is 'new',
+	  i.e. not related to previously passed and processed data.
+
+2012-02-15 13:15:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: don't leak event
+	  In the unlikely case where the subclass set the event function to NULL, don't
+	  leak the event.
+
+2012-02-15 12:19:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: make activation code more like other
+	  Make the pad activation code look more like other activation code.
+	  Only start the sinkpad task when we decide to activate in pull mode, when we
+	  later add srcpad pullmode this will be needed.
+
+2012-02-15 12:18:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttask.c:
+	  task: add more debug
+
+2012-02-15 11:11:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: add some more debug
+
+2012-02-15 10:58:08 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: track consumed input size
+	  ... as used by subsequent input data rate estimation (and seeking).
+
+2012-02-15 10:11:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: chain up to parent for defaults
+	  Chain up to the parent instead of using the FALSE return value from the event
+	  function (because it's otherwise impossible to return an error).
+
+2012-02-15 10:10:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: don't ignore return value when starting a task
+
+2012-02-14 20:17:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Revert "baseparse: really provide upstream ts to subclass"
+	  This reverts commit 2363490ef5a9fe8d414369d24fcaa65a9dfa83ac.
+
+2012-02-14 19:33:50 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: remove dead code and superfluous loop level
+
+2012-02-14 19:33:46 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: modify reverse playback handling
+	  ... so as to allow the push-mode case to provide data to subclass
+	  on a buffer by buffer basis (as in regular forward case), rather
+	  than all buffers of a fragment chucked together.
+	  Also refactor buffer handling some more, and add some debug.
+
+2012-02-14 19:33:33 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: really provide upstream ts to subclass
+
+2012-02-14 13:24:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: clean up src query handler
+
+2012-02-14 12:57:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: pass results from activation
+
+2012-02-14 10:35:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-02-14 10:30:40 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  defs: update
+
+2012-02-13 18:22:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: modify API to a _finish_frame based approach
+	  ... which aligns it with other baseclass in the wild, and should give
+	  converter parsers a bit cleaner freedom.
+
+2012-02-13 18:09:51 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: fix reverse playback
+	  ... especially for all-keyframe (audio) cases.
+
+2012-02-13 16:33:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	* win32/common/libgstreamer.def:
+	  memory: more work on refcount and writability
+	  Rename _is_writable() with _is_exclusive because the writability does not depend
+	  on the amount of references to the memory object anymore.
+	  Add accessor macros for the memory flags.
+	  Rename the GstBuffer _peek_memory() method to _get_memory() and return a
+	  reference to the memory now that we can do this without affecting writability
+	  of the memory object. Make it possible to also make this function merge the
+	  buffer memory.
+	  Add methods to replace memory in a buffer. Make some convience macros for the
+	  buffer memory functions.
+	  Fix unit tests.
+
+2012-02-13 17:22:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  def: update
+
+2012-02-13 15:18:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.h:
+	  meta: fix typos
+
+2012-02-12 21:17:41 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/design/part-events.txt:
+	  docs: add a paragraph about the STREAM CONFIG event to the design docs
+
+2012-02-12 21:04:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	  event: make _parse_nth_stream_config_header() and _parse_setup_data() return a boolean
+	  As they can fail (only one of stream headers or setup data
+	  is usually present).
+
+2012-02-12 20:51:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* tests/check/gst/gstevent.c:
+	  event: rename gst_event_{set,parse}_stream_config_codec_data() to _setup_data()
+	  More generic.
+
+2012-02-10 15:03:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-02-10 14:58:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquery.c:
+	  clean up object init
+	  Make an _init method where the parent mini-object and other fields are
+	  initialized.
+	  Check that the passed structure doesn't already have a parent.
+	  Use the _new_custom () constructors
+
+2012-02-07 11:28:41 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: bitrate mechanics should not deal with duration update
+	  ... since that is already handled by _update_duration, or should not be done
+	  altogether if the duration is determined by non-estimated means.
+	  Fixes #669502.
+
+2012-02-10 12:45:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/design/part-events.txt:
+	  docs: push_event doesn't return a flow value after all
+
+2012-02-10 12:05:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: silence probe debug a litte
+
+2012-02-10 11:24:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: implement faster ACCEPT_CAPS query
+
+2012-02-10 11:09:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstpad.c:
+	  gst: add some performance logging
+	  Add some performance logging for caps copy and the slow default acceptcaps
+	  implementation
+
+2012-01-14 19:16:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/draft-metadata.txt:
+	* docs/design/part-TODO.txt:
+	* docs/design/part-bufferpool.txt:
+	* docs/design/part-element-transform.txt:
+	* docs/design/part-events.txt:
+	* docs/design/part-latency.txt:
+	* docs/design/part-meta.txt:
+	* docs/design/part-negotiation.txt:
+	* docs/design/part-probes.txt:
+	* docs/design/part-query.txt:
+	* docs/design/part-segments.txt:
+	* docs/design/part-streams.txt:
+	* gst/gstquery.c:
+	  docs: update and improve docs
+
+2012-02-09 00:14:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* win32/common/libgstreamer.def:
+	  utils: remove gst_element_class_install_std_props()
+	  It's only used in one place (rtmp), and there not very well.
+
+2012-02-08 23:47:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstidentity.c:
+	  fakesrc, identity, fakesink: do not generate last-message updates by default
+	  Default to not creating lots of overhead by doing a couple of
+	  g_strdup_printf()/g_free() per buffer or event just to generate
+	  a last-message update that rarely anyone listens to. This means
+	  that you need to enable silent=true explicitly in order to get
+	  last-message dumps in gst-launch -v now. On the upside, people
+	  won't inadvertently end up benchmarking g_strdup_printf()
+	  performance instead of gstreamer data handling performance any
+	  more.
+	  Maybe the silent property should be renamed to enable-last-message
+	  or something like that?
+
+2012-02-08 15:16:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstelement.h:
+	* gst/gstevent.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasesrc.h:
+	* libs/gst/base/gstcollectpads2.c:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* tests/check/elements/fakesink.c:
+	* tests/check/elements/tee.c:
+	* tests/check/gst/gstpad.c:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstmarshal.c:
+	* win32/common/gstmarshal.h:
+	  GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
+
+2012-02-08 15:34:28 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: use default query function to optionally forward query
+	  ... rather than querying peer unconditionally with possibly undesirable
+	  outcome in case of e.g. SCHEDULING query.
+
+2012-02-08 15:03:56 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: clean up a few minor extraneous tokens
+
+2012-02-07 12:48:50 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: remove closing segment handling
+
+2012-02-08 14:45:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-02-08 14:32:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: fix race in pad mode change
+	  Fixes #668909 and presumably also #669483
+
+2012-02-08 12:57:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: error when activation mode is wrong
+	  Post an error when we try to push on a pad activated in pull mode and pull on a
+	  pad in push mode.
+
+2012-02-08 09:30:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstclock.c:
+	  clock: remove method declaration too
+
+2012-02-07 13:41:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	  clock: remove unimplemented stats property while we can
+
+2012-02-07 10:44:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfakesrc.c:
+	  fakesrc: remove custom marshaller
+	  Remove our custom marshaller.
+	  Make the buffer in the handoff signal static_scope so that it is actually
+	  writable.
+
+2012-02-06 09:46:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstminiobject.c:
+	* gst/gstpad.c:
+	  gst: improve debugging
+
+2012-01-04 17:10:15 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* gst/gstregistry.c:
+	  registry: fix compilation with --disable-registry
+	  __registry_reuse_plugin_scanner is only defined when
+	  GST_DISABLE_REGISTRY is not defined.
+	  gstregistry.c: In function 'gst_registry_scan_plugin_file':
+	  gstregistry.c:1131:8: error: '__registry_reuse_plugin_scanner' undeclared (first use in this function)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667284
+
+2012-02-02 17:18:22 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: reset the EOS detection machinery after sending an EOS message
+	  This will allow detecting further EOS, for instance after looping
+	  a stream without changing states.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=668289
+
+2012-01-07 23:00:12 -0500  Ryan Lortie <desrt@desrt.ca>
+
+	* autogen.sh:
+	  autogen.sh: allow calling from out-of-tree
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667664
+
+2012-02-02 16:59:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttrace.c:
+	  trace: print caps in dump
+
+2012-02-02 16:04:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2012-02-02 15:57:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: add debug and trace for GstMemory
+
+2012-02-02 15:55:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstobject.c:
+	* gst/gsttrace.c:
+	  trace: don't check random pointers for objects
+	  Only see if the traced pointer is a GObject when it was registered with the
+	  special offset of -2.
+
+2012-02-02 15:54:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstinfo.c:
+	  Update debug categories
+	  Remove some categories marked for deletion.
+	  Add a category for GstMemory.
+
+2012-02-02 15:52:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.h:
+	* gst/gstbufferpool.h:
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* gst/gstevent.h:
+	* gst/gstmessage.h:
+	* gst/gstmeta.h:
+	* gst/gstsample.h:
+	  remove TRACE_NAME from headers
+
+2012-02-02 13:17:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstbuffer.c:
+	  buffer: add new test
+
+2012-02-02 13:15:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  dentity: remove prepare_output_buffer
+	  Correctly mark passthrough on the baseclass so that it can correctly do the
+	  allocation of the output buffers.
+	  Remove our custom prepare_output_buffer function now that the baseclass is
+	  smarter.
+
+2012-02-02 13:10:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: improve prepare_output_buffer
+	  Clean up the prepare_output_buffer function.
+	  Reuse the input buffer when it is writable and when doing an
+	  in-place but non-passthrough transform.
+	  Move the copy-metadata function call to the prepare_output_buffer default
+	  function. If subclasses implement a custom prepare_output_buffer, they must also
+	  copy the metadata themselves.
+	  Remove a useless memory copy because prepare_output_buffer already did that.
+
+2012-02-02 12:32:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: only map when using the memory
+
+2012-02-02 12:32:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  plugins: proxy allocation query
+
+2012-02-02 12:30:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: simplify code
+	  We already checked passthrough a few lines above.
+
+2012-02-02 12:07:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmemory.c:
+	  memory: add some performce debug info
+	  Add some PERFORMANCE debug lines where we copy and do other suboptimal things.
+
+2012-02-02 12:05:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: add flag to proxy allocation query
+	  Add a flag to force the default query handler to forward the allocation query
+	  instead of discarding it.
+	  Reorder the pad flags a bit.
+
+2012-02-02 01:30:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttypefind.c:
+	* gst/gsttypefind.h:
+	* tests/check/libs/typefindhelper.c:
+	  typefind: pass extensions as comma-separated list in a simple string
+	  Fix annoying gst_type_find_register() function signature. A simple
+	  string with comma-separated extensions works just as well and saves
+	  lines of code, casts, relocations and ultimately kittens.
+
+2012-01-31 17:41:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: fix race in startup
+	  Mark renegotiate before starting the pushing thread.
+	  Do also check if we are starting in the get_range function.
+
+2012-01-31 16:27:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: don't crash on missing template
+	  Some request pads don't have a padtemplate (mostly those from encodebin). Avoid
+	  crashing in this case.
+
+2012-01-31 12:20:41 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.h:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	* libs/gst/controller/gsttriggercontrolsource.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	* tests/examples/controller/text-color-example.c:
+	  controller: constructures for control sources return GstControlSource
+	  Don't return the specific types. In most cases there is no specific api there
+	  anyway.
+
+2012-01-31 12:10:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gsttypefindhelper.c:
+	  don't do logic in g_assert...
+
+2012-01-30 19:17:00 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstargbcontrolbinding.c:
+	* libs/gst/controller/gstargbcontrolbinding.h:
+	* libs/gst/controller/gstcontrolbindingargb.c:
+	* libs/gst/controller/gstcontrolbindingargb.h:
+	* libs/gst/controller/gstcontrolbindingdirect.c:
+	* libs/gst/controller/gstcontrolbindingdirect.h:
+	* libs/gst/controller/gstdirectcontrolbinding.c:
+	* libs/gst/controller/gstdirectcontrolbinding.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	* tests/examples/controller/text-color-example.c:
+	* win32/common/libgstcontroller.def:
+	  controller: rename control-bindings
+	  gst_control_binding_xxx -> gst_xxx_control_binding for consistency.
+
+2012-01-30 14:48:44 -0200  João Paulo Pizani Flor <joaopizani@gmail.com>
+
+	* gst/gstpreset.h:
+	  Fixes the lack of an include directive in gst/gstpreset.h
+	  It blocked the build of external libraries depending on gstreamer-core (namely, gstreamermm).
+	  Complete bug report at https://bugzilla.gnome.org/show_bug.cgi?id=669036
+
+2012-01-30 18:17:34 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolsource.c:
+	  controlsource: sink the floating ref
+	  control sources can be used on several control bindings.
+
+2012-01-30 17:15:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer; remove IN_CAPS buffer flag
+	  The IN_CAPS buffer flag is deprecated and should be replaced with the HEADER
+	  flag.
+
+2012-01-30 16:09:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs; update for new api
+
+2012-01-30 15:59:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	  query: pass allocator in query
+	  Place the allocator object in the ALLOCATION query instead of the name. This
+	  allows us to exchange allocators that are not in the global pool of allocators.
+	  Update elements for the new api
+
+2012-01-30 15:57:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  memory: add memory type
+	  Add memory type when registering memory allocators. Add getter for the memory
+	  type.
+
+2012-01-29 22:58:51 +0000  Olivier Crête <olivier.crete@collabora.com>
+
+	* plugins/elements/gstvalve.c:
+	* plugins/elements/gstvalve.h:
+	  valve: Repush sticky events after disabling dropping
+
+2012-01-30 13:28:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  memory: add boxed GType for the allocator
+
+2012-01-30 13:02:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* win32/common/libgstreamer.def:
+	  memory: make the allocator refcounted
+	  Add refcounting to the GstAllocator object.
+	  Remove const from functions because the allocator is refcounted now.
+	  Rename the vmethods for consistency
+	  Expose the constructor for GstAllocator and add a destroy notify for the
+	  user_data. This should make it possible to create allocators that are not
+	  registered and shared globally along with the possibility to destroy them
+	  properly.
+	  Update defs with new symbols.
+
+2012-01-30 10:30:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update for gap event
+
+2012-01-30 10:07:51 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/gst.c:
+	* gst/gst.h:
+	  core: don't ship gsttrace.h private header
+	  Include it explicitely in gst.c and no longer include it in gst.h.
+	  That header was made private in 1969b94267b4f377ea2663876ae8720717889693.
+
+2012-01-28 18:50:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: require a valid duration for the GAP event
+
+2012-01-28 18:49:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: ref new enum type in gst_init()
+
+2012-01-27 18:57:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  docs: add some (out) annotations for stream config parser functions
+
+2012-01-27 18:56:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* tests/check/gst/gstevent.c:
+	  event: add constructor and parse function for new GAP event
+	  (Whatever you do, don't mention the filler event.)
+
+2012-01-27 18:37:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.h:
+	  docs: GST_EVENT_STREAM_CONFIG is implemented now
+
+2012-01-27 17:57:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: mention codec data / stream header change in porting docs
+
+2012-01-28 14:35:51 +0000  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/gstcaps.c:
+	* gst/gstiterator.c:
+	* gst/gstpadtemplate.c:
+	* gst/gstparse.c:
+	* gst/gstsegment.c:
+	* gst/gsttaglist.c:
+	* gst/gsttypefind.c:
+	* gst/gstvalue.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstindex.c:
+	  Use macros to register boxed types thread safely
+
+2012-01-28 08:38:03 +0100  Olivier Crête <olivier.crete@collabora.com>
+
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	  check: Update gst_check_element_push_buffer to 0.11 style caps
+	  Pass the desired caps explicitely
+
+2012-01-27 19:00:03 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: Fix memory leak
+
+2012-01-27 18:53:45 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: Don't unref plugin features multiple times
+	  gst_plugin_feature_list_free() unrefs them too.
+
+2012-01-27 17:50:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: add new stream config functions to docs
+
+2012-01-27 17:49:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/pipelines/simple-launch-lines.c:
+	  tests: fix simple-launch-lines compilation
+	  Don't use removed API.
+
+2012-01-27 18:46:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstsegment.h:
+	  segment: Add padding to the public struct
+
+2012-01-27 17:45:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: don't ref GType for private enum for which there's no GType any more
+
+2012-01-27 17:45:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: update .def for new and removed API
+
+2012-01-27 17:39:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* tests/check/gst/gstevent.c:
+	  event: add construct and parse API for the new STREAM CONFIG event
+	  codec data and stream headers don't belong into caps, since they
+	  are not negotiated. We signal them using the STREAM CONFIG event
+	  instead.
+
+2012-01-27 18:24:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/Makefile.am:
+	  trace: remove from public headers
+
+2012-01-27 12:16:05 +0100  Andoni Morales Alastruey <amorales@flumotion.com>
+
+	* gst/gstcaps.c:
+	  caps: fix documenation typo
+
+2012-01-27 17:50:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gstcaps.c:
+	* gst/gstclock.c:
+	* gst/gstminiobject.c:
+	* gst/gstobject.c:
+	* gst/gsttrace.c:
+	* gst/gsttrace.h:
+	* tools/gst-launch.c:
+	  trace: rework alloc tracing
+	  Remove trace, we use debug log for that
+	  Make alloc trace simpler, removing some methods.
+	  Activate alloc trace with a GST_TRACE=3 environment variable.
+	  Dump leaked objects atexit.
+	  Provide an offset in the object where the GType can be found so that more
+	  verbose info can be given for objects.
+	  Remove -T option from gst-launch because tracing is now triggered with the
+	  environment variable.
+
+2012-01-25 12:35:43 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: answer caps queries with our typefound caps
+	  This avoids merely forwarding the event to the sink, and getting
+	  something useless such as ANY.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667571
+
+2012-01-27 16:18:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gsttypefindelement.h:
+	  typefind: Do typefinding from a separate thread and not from the state change function
+
+2012-01-27 15:32:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix memory leak
+	  unmap the buffer memory on errors.
+
+2012-01-27 15:32:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gst_private.h:
+	* gst/gstminiobject.c:
+	  trace: make alloc trace work for miniobject again
+
+2012-01-27 15:09:35 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstcollectpads2.c
+	  libs/gst/base/gstcollectpads2.h
+
+2012-01-27 15:02:52 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: Move private fields from the public structs to private structs
+	  Fixes bug #668764.
+
+2012-01-27 13:05:48 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstcontrolbindingargb.c:
+	* libs/gst/controller/gstcontrolbindingdirect.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  controller: no fancy utf8 chars in the gi annotations
+
+2012-01-27 12:50:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstdebugutils.c:
+	* gst/gstutils.c:
+	* libs/gst/base/gstbaseparse.c:
+	* tests/check/libs/adapter.c:
+	  tests: fix some more leaks
+
+2012-01-27 12:33:32 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	  queue2: Fix handling of the new stream-start event
+
+2012-01-27 11:32:12 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstplugin.c:
+	  gstplugin: add a few consts to read only data
+
+2012-01-27 12:22:48 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstcontrolbindingargb.c:
+	* libs/gst/controller/gstcontrolbindingdirect.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  controller: add gi annotations
+
+2012-01-27 12:14:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstutils.c:
+	  utils: Fix unit test
+
+2012-01-27 12:10:09 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstvalue.c:
+	  tests: fix leaks
+
+2012-01-27 11:40:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  memory: avoid memory leak
+	  Unref the old memory in make_mapped.
+	  Add some debug info
+
+2012-01-27 11:40:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: avoid caps leak
+
+2012-01-27 11:01:27 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstidentity.c:
+	  identity/fake{src,sink}: Include event type name in the debug output
+
+2012-01-27 10:54:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	  event: Mark the new GAP event as non-sticky
+
+2012-01-27 10:46:02 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: Drop the stream-start and stream-config events by default
+
+2012-01-27 10:42:09 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event rebase
+
+2012-01-27 10:41:07 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Send the stream-start event as first event ever
+
+2012-01-27 10:30:43 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* win32/common/libgstreamer.def:
+	  event: Add constructor and docs for the new STREAM_START event
+
+2012-01-26 19:28:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: add user data to chain functions
+
+2012-01-26 18:56:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix typo
+
+2012-01-26 18:22:29 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	  taglist: restore date/time type to GstDateTime
+	  The change to GDateTime was apparently accidental, and
+	  breaks plugins trying to feed a GstDateTime to the taglist APi.
+
+2012-01-26 19:12:16 +0200  Peteris Krisjanis <pecisk@gmail.com>
+
+	* gst/gstparse.c:
+	  gst: gst_parse_launch now returns a floating reference
+
+2012-01-26 18:53:51 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  gststructure: Set "transfer none" to return values that shouldn't be freed
+
+2010-12-04 18:53:55 -0800  David Schleef <ds@schleef.org>
+
+	* gst/gstelement.c:
+	  element: call ->release_pad() to clean up pad
+	  https://bugzilla.gnome.org/show_bug.cgi?id=636011
+	  https://bugzilla.gnome.org/show_bug.cgi?id=402562
+
+2012-01-26 16:31:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	  event: add some more events
+	  Add some more new events that we want to implement later.
+
+2012-01-26 15:15:21 +0100  Andoni Morales Alastruey <amorales@flumotion.com>
+
+	* gst/gstmemory.c:
+	  gstmemory: add missing parameter
+
+2012-01-26 14:57:14 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Fix compiler warning
+
+2012-01-26 14:55:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: Use correct size for caps allocation
+
+2012-01-26 14:45:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: Make GstCaps public struct more opaque by moving the private pointer into the implementation
+
+2012-01-26 14:33:12 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* gst/gstelementfactory.c:
+	* gst/gstregistrychunks.c:
+	  caps: Store a pointer to GstCaps in GstStaticCaps
+	  ...instead of using hackish subclass of GstCaps, which also
+	  had some thread-safety problems.
+
+2012-01-26 13:24:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstpad.c:
+	  event: remove the sticky event index
+	  We don't use the sticky event index anymore, ordering of the events are how they
+	  were sent initially.
+	  Add some more padding between the event numbers so that we can insert new events
+	  later.
+
+2012-01-26 10:48:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/libs/gstreamer-libs.types:
+	* tests/check/libs/.gitignore:
+	  docs: remove collectpads from docs, fix build
+
+2012-01-26 10:22:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: use GstValueArray instead of GValueArray for storing options in the config
+	  Since GValueArray is deprecated. It's all only internal anywhere here,
+	  but if we use GstValueArray the option strings get serialized nicely
+	  in the debug logs at least.
+
+2012-01-26 09:26:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  tools: gst-inspect: suppress deprecation warnings for G_TYPE_VALUE_ARRAY
+	  For now anyway.
+
+2012-01-26 11:42:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	  collectpads2: Unit test is valgrind clean now
+
+2012-01-26 11:40:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/libs/collectpads2.c:
+	  collectpads2: Fix unit test to actually work again
+
+2012-01-26 11:38:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/libs/collectpads.c:
+	* tests/check/libs/collectpads2.c:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/check/libs/libsabi.c:
+	  collectpads2: Port collectpads unit test to collectpads2
+	  Currently fails but really shouldn't.
+
+2012-01-26 11:01:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: add probe id to the info
+
+2012-01-26 10:48:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads.h:
+	* win32/common/libgstbase.def:
+	  collectpads: Remove old collectpads
+	  Still have to rename collectpads2 to collectpads before the 1.0 release.
+
+2012-01-26 10:30:25 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: Don't forward CAPS event automatically
+
+2012-01-25 18:49:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: Fix handling of the event function and document it
+	  The event function is supposed to forward/drop the event in any case
+	  now and takes ownership of the event.
+
+2012-01-25 18:36:42 +0100  Jason DeRose <jderose@novacut.com>
+
+	* gst/gstpadtemplate.c:
+	  gst_pad_template_new() now returns a floating reference
+
+2012-01-25 19:41:03 +0200  Peteris Krisjanis <pecisk@gmail.com>
+
+	* gst/gstpipeline.c:
+	  gst_pipeline_new now returns a floating reference.
+
+2012-01-25 17:27:40 +0200  Peteris Krisjanis <pecisk@gmail.com>
+
+	* gst/gstutils.c:
+	  gst: gst_parse_bin_from_description returns a new reference
+
+2012-01-25 15:14:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: use GArray for internal arrays instead of the now-deprecated GValueArray
+
+2012-01-25 16:01:02 +0200  Peteris Krisjanis <pecisk@gmail.com>
+
+	* gst/gstbin.c:
+	* gst/gstghostpad.c:
+	* gst/gstpad.c:
+	  gst: Changed introspection transfer flag to (transfer floating)
+	  for gst_pad_new, gst_ghost_pad_new and gst_bin_new constuctors. Fixes
+	  segfaults due of transfer full and floating ref problem.
+
+2012-01-25 13:46:13 +0100  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+	* common:
+	  Automatic update of common submodule
+	  From c463bc0 to 7fda524
+
+2012-01-24 14:37:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  memory: add flags to the mapinfo
+
+2012-01-20 16:10:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: make guint8 * for easy usage
+
+2012-01-20 14:56:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* win32/common/libgstreamer.def:
+	  memory: add method to create mapped memory
+	  Add a method to create a GstMemory with the desired mapping. Makes a copy of the
+	  memory if it is currently in use.
+
+2012-01-20 14:23:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/manual/advanced-dataaccess.xml:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* gst/gstvalue.c:
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gsttypefindhelper.c:
+	* libs/gst/check/gstcheck.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesrc.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstqueue2.c:
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/filesrc.c:
+	* tests/check/elements/identity.c:
+	* tests/check/elements/multiqueue.c:
+	* tests/check/gst/gstbuffer.c:
+	* tests/check/gst/gstmemory.c:
+	* tests/check/gst/gstmeta.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/gst/gstvalue.c:
+	* tests/check/libs/adapter.c:
+	* tests/check/libs/bitreader.c:
+	* tests/check/libs/bytereader.c:
+	* tests/examples/adapter/adapter_test.c:
+	  Add new GstMapInfo
+	  Use a structure to hold info about the mapping. The application then keeps track
+	  of this state and we can use it to unmap the memory again later.
+
+2012-01-25 11:49:50 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstcontrolbinding.h:
+	  controlbindings: name is not a const
+	  It gets modified during the life of the object. Fixes build.
+
+2012-01-25 11:43:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-01-25 11:37:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 2a59016 to c463bc0
+
+2012-01-24 21:53:14 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* libs/gst/controller/gstcontrolbindingargb.c:
+	* libs/gst/controller/gstcontrolbindingdirect.c:
+	* libs/gst/controller/gstcontrolbindingdirect.h:
+	* tests/check/gst/gstcontroller.c:
+	* win32/common/libgstcontroller.def:
+	  controller: cleanup the control-binding construction
+	  This is now bindings firendly as _new is just a classic c convenience and all
+	  the work is done in a constructor. As a side effect _new never fails.
+	  Fix the tests.
+
+2012-01-24 14:40:33 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  gstvalue: handle NULL dest in bitmask/bitmask intersection
+
+2011-12-01 12:43:03 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tests/check/gst/gstvalue.c:
+	  tests: add basic tests for new stepped ranges
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665294
+
+2011-11-30 14:45:12 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* win32/common/libgstreamer.def:
+	  gstvalue: add stepped ranges
+	  int and int64 ranges can now have an optional step (defaulting to 1).
+	  Members of the range are those values within the min and max bounds
+	  which are a multiple of this step.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665294
+
+2011-11-30 17:58:07 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	  gstutils: add a 64 bit version of GCD calculation
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665294
+
+2011-11-04 18:26:15 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  gstvalue: enforce identical basic types in lists, arrays
+	  https://bugzilla.gnome.org/show_bug.cgi?id=322587
+
+2012-01-23 10:32:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/benchmarks/controller.c:
+	  benchmarks: add missing include
+
+2012-01-23 11:03:09 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	  object: register all properties in one go
+
+2012-01-23 11:02:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/part-controller.txt:
+	  docs: update controller api design
+
+2012-01-21 20:03:52 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* gst/gstobject.c:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstcontrolbindingargb.c:
+	* libs/gst/controller/gstcontrolbindingargb.h:
+	* libs/gst/controller/gstcontrolbindingdirect.c:
+	* libs/gst/controller/gstcontrolbindingdirect.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/.gitignore:
+	* tests/examples/controller/Makefile.am:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	* tests/examples/controller/text-color-example.c:
+	* win32/common/libgstreamer.def:
+	  controller: allow different controlbindings
+	  Make controlbinding an abstract baseclass. Move implementation to control-
+	  binding-direct and add a control-binding-argb. Add an example.
+
+2012-01-22 22:44:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstformat.c:
+	* gst/gstinfo.c:
+	* gst/gstplugin.c:
+	* gst/gstquery.c:
+	* gst/gstregistry.c:
+	* gst/gstsystemclock.c:
+	* gst/gsttask.c:
+	* tests/check/elements/multiqueue.c:
+	  Replace deprecated GStaticMutex with GMutex
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662207
+
+2012-01-22 15:23:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  tools: fix typo in gst-inspect debug message
+
+2012-01-22 01:39:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gst.c:
+	* gst/gsterror.c:
+	* gst/gsterror.h:
+	* gst/gstmessage.c:
+	* tests/check/gst/gststructure.c:
+	* win32/common/libgstreamer.def:
+	  Use GLib's type for GError instead of our own
+	  We introduced our own when GLib didn't want to add a GType
+	  for GError. But now that there is one, we can use GLib's
+	  unconditionally and remove our version.
+
+2012-01-22 01:27:42 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.h:
+	  multiqueue: fix size of atomic counter
+
+2012-01-22 01:25:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/glib-compat-private.h:
+	* gst/gst.c:
+	* gst/gstatomicqueue.c:
+	* gst/gstbufferpool.c:
+	* gst/gstbus.c:
+	* gst/gstdatetime.c:
+	* gst/gstelementfactory.c:
+	* gst/gsterror.c:
+	* gst/gstpoll.c:
+	* gst/gstsystemclock.c:
+	* gst/gsttaglist.c:
+	* gst/gsttagsetter.c:
+	* gst/gsttask.c:
+	* gst/gstutils.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/helpers/gst-plugin-scanner.c:
+	* libs/gst/net/gstnetclientclock.c:
+	* libs/gst/net/gstnettimeprovider.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfakesink.h:
+	* plugins/elements/gstfakesrc.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstidentity.h:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gsttee.c:
+	* tests/benchmarks/gstbufferstress.c:
+	* tests/benchmarks/gstclockstress.c:
+	* tests/benchmarks/gstpollstress.c:
+	* tools/gst-inspect.c:
+	* tools/gst-launch.c:
+	* tools/gst-typefind.c:
+	  Use recent GLib API unconditionally now that we depend on the latest GLib
+
+2012-01-22 00:42:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gsttrace.c:
+	* gst/gsttrace.h:
+	  trace: don't use deprecated GStaticMutex API in (still) public header
+
+2012-01-21 12:56:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* scripts/gst-uninstalled:
+	  scripts: set GI_TYPELIB_PATH in gst-uninstalled
+	  So pygi finds/uses the local g-i files.
+
+2012-01-20 18:06:04 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/check/libcheck/check.h.in:
+	  libcheck: make the definition of fail not fail with non GCC compilers
+
+2012-01-20 14:42:31 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	* win32/common/libgstreamer.def:
+	  controller: improve control binding handling
+	  Change _set_control_binding to _add_control_binding and take ownership. Add a
+	  _remove_control_binding function.
+
+2012-01-20 08:27:57 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	* win32/common/libgstreamer.def:
+	  controller: remove convenience api for control sources
+	  This is needed to support multiple kinds of control-bindings.
+
+2012-01-19 15:17:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: handle NULL from getcaps
+	  If the getcaps functions returns NULL, return FALSE from the CAPS query.
+
+2012-01-19 15:17:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: handle lists correctly
+
+2012-01-17 16:23:33 -0500  Colin Walters <walters@verbum.org>
+
+	* common:
+	* configure.ac:
+	  build: add --disable-fatal-warnings configure option
+	  It's reasonable to build from git, but not want to turn all compiler
+	  warnings into fatal errors.  For example, GNOME's jhbuild helps people
+	  get newer versions of software than came from their distribution, but
+	  they may not necessarily want to hack on it.
+
+2012-01-19 12:57:48 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* tests/benchmarks/gstclockstress.c:
+	  tests: clockstress: perform sanity check on thread number argument
+
+2012-01-19 09:12:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* tests/check/gst/gstmemory.c:
+	  memory improvements
+	  Make the memory object simply manage the data pointer and the maxsize and move
+	  the offset and size handling to common functionality.
+	  Use the READONLY flag to set a readonly lock.
+	  Remove the data and size fields from the unmap method. We need an explicit
+	  resize operation instead of using the unmap function.
+	  Make internal helper lock and unlock functions.
+	  Update unit test and users of the old API.
+
+2012-01-19 11:43:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  docs: fix typo in bus docs
+
+2012-01-13 17:45:17 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* .gitignore:
+	  .gitignore: add visual studio IDE files and OS X .DS_Store files
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667899
+
+2012-01-19 09:27:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/glib-compat-private.h:
+	* gst/gstbin.c:
+	* gst/gstbufferpool.c:
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstmemory.c:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstmeta.c:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstpoll.c:
+	* gst/gsttask.c:
+	* gst/gsttask.h:
+	* gst/gstutils.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasesrc.h:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads.h:
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.h:
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	* libs/gst/controller/gsttimedvaluecontrolsource.h:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	* plugins/elements/gstdataqueue.c:
+	* plugins/elements/gstdataqueue.h:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstinputselector.h:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttee.h:
+	* tests/benchmarks/gstbufferstress.c:
+	* tests/benchmarks/gstpollstress.c:
+	* tests/check/gst/gsttask.c:
+	  Update for new gthread API
+
+2012-01-18 16:52:55 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  configure.ac: GIO check is now in gst-glib2.m4
+
+2012-01-18 16:45:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 0807187 to 2a59016
+
+2012-01-18 16:14:51 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	  configure.ac: Require GLib 2.31.10 and improve GIO check
+
+2012-01-18 12:07:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstbasetransform.h:
+	  basetransform: Always call ::propose_allocation vfunc
+	  And only forward the allocation query if we're working in
+	  passthrough mode if no ::propose_allocation is implemented.
+	  In place buffer transformations will change the buffer
+	  content and require explicit handling of all metas.
+
+2012-01-18 11:37:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Don't forward the allocation query by default
+	  This has to be handled explicitely by elements to
+	  make sure that they support all the metas passed
+	  in the allocation query.
+	  Metas have to supported explicitely, otherwise the
+	  query will fail. All elements in a chain need to
+	  support a specific meta to allow its usage.
+
+2012-01-18 01:31:56 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstmemory.c:
+	* gst/gstmeta.c:
+	  gst: suppress some more deprecated thread api until we fix it up
+	  Which should be soon, since we already depend on an unstable glib for -base.
+
+2012-01-18 01:18:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstnet.def:
+	* win32/common/libgstreamer.def:
+	  win32: update .def files for api changes
+
+2012-01-17 23:57:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* libs/gst/Makefile.am:
+	  configure: remove  --disable-net option and always build libgstnet
+	  It should work everywhere now, and -base and -good depend on
+	  the GstNetMeta API.
+
+2012-01-17 23:52:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* libs/gst/net/Makefile.am:
+	  configure: remove some socket cruft
+
+2010-05-05 16:33:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* libs/gst/net/Makefile.am:
+	* libs/gst/net/gstnetclientclock.c:
+	* libs/gst/net/gstnetclientclock.h:
+	* libs/gst/net/gstnettimepacket.c:
+	* libs/gst/net/gstnettimepacket.h:
+	* libs/gst/net/gstnettimeprovider.c:
+	* libs/gst/net/gstnettimeprovider.h:
+	* tests/check/Makefile.am:
+	* tests/check/libs/gstnettimeprovider.c:
+	  net: port to use gio's networking API
+	  Some warts still, but it's a start.
+
+2012-01-17 16:50:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/net/Makefile.am:
+	  net: Add GIO to the gi-scanner packages
+
+2012-01-16 13:34:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* configure.ac:
+	* libs/gst/net/Makefile.am:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* libs/gst/net/gstnetaddressmeta.h:
+	* pkgconfig/gstreamer-net-uninstalled.pc.in:
+	* pkgconfig/gstreamer-net.pc.in:
+	  netaddressmeta: Use GSocketAddress instead of our own wrapper type
+
+2012-01-16 15:57:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* tests/check/gst/gstmemory.c:
+	  memory: make writability check into a method
+	  Use a method to check for writability instead of a macro so that we can change
+	  the implementation more easily.
+
+2012-01-16 12:24:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstmemory.c:
+	  tests: improve memory test
+
+2012-01-16 12:24:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: improve docs
+
+2012-01-11 10:59:53 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: ensure automagic _unmap in some more cases
+
+2011-11-15 17:42:56 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: automatically unmap on clearing
+	  When _clear gets called between _map and _unmap, buffers
+	  will be unreffed. If the adapter was mapped, memory leaks
+	  may occur.
+	  While calling _clear between _map and _unmap does not seem
+	  like such a great idea, this is possible in the audio
+	  encoder base class, as _clear may be called in _finish_frame.
+	  Since the audio encoder relies on flushing to keep track of
+	  timestamps, delaying flushing till after handle_frame seems
+	  dangerous.
+	  So, we unmap on clear, as the next unmap will do nothing.
+	  This makes _clear safe to call between _map and _unmap,
+	  while avoiding leaking the mapped buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664133
+
+2012-01-13 14:20:33 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: prevent unlikely caps leak
+
+2012-01-13 10:43:12 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: plug factory leak on error
+
+2012-01-13 00:22:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  tools/gst-inspect.c
+
+2012-01-12 20:46:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstcaps.c:
+	* gst/gststructure.c:
+	* gst/gsttaglist.c:
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	* tests/check/gst/gstvalue.c:
+	* win32/common/libgstreamer.def:
+	  Remove GST_TYPE_DATE, our own GDate type
+	  Which we had to add because GLib didn't have it
+	  back in the day. Port everything to plain old
+	  G_TYPE_DATE, which is also a boxed type. Ideally
+	  we'd just use GDateTime for everything, but it
+	  doesn't support not setting some of the fields
+	  unfortuntely (which would be very useful for
+	  tag handling in general, if we could express
+	  2012-01 for example).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666351
+
+2012-01-12 19:53:11 +0000  Antoine Tremblay <hexa00@gmail.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: clear adapter in reset so baseparse is reusable
+	  GstBaseParse was not clearing its adapter on reset causing
+	  problems when a pipeline went for example from PLAYING to NULL
+	  state and then back to PLAYING again. The data from the last
+	  stream would be used in the parser.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667444
+
+2012-01-12 15:50:53 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gstinspect: fix features and list leaks
+
+2012-01-12 11:03:10 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: add new API to .def file
+
+2012-01-11 12:19:20 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  gststructure: clarify _get docs about the returned reference
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667689
+
+2012-01-10 13:00:07 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2012-01-06 16:39:04 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: Send caps again after activation
+	  Avoids ending up in cases where typefind gets activated in pull-mode
+	  and caps never get sent.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667337
+
+2012-01-09 15:59:09 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+	* gstreamer.spec.in:
+	  Add latest specfile changes
+
+2012-01-09 15:58:45 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+	* gst/gstdebugutils.h:
+	  Also add headerfile
+
+2012-01-09 15:57:51 +0000  Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+	* gst/gstdebugutils.c:
+	  Fix dotfile API to be exported since macros can't be GI bound
+
+2012-01-09 13:19:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/.gitignore:
+	  tests: ignore new memory test binary
+
+2012-01-09 03:14:41 -0500  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstmemory.c:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  Fix printf format build warnings
+
+2012-01-09 13:10:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	  po: update translations for new strings
+
+2012-01-06 15:01:24 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  gstvalue: Allow NULL dest when subtracting bitmask
+	  Happens when checking for subsets of caps
+
+2012-01-06 13:32:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: ensure writable memory in memset
+
+2012-01-06 13:10:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-memory.txt:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	* tests/check/gst/gstmemory.c:
+	  memory: check semantics of nested mappings
+	  Count how many mappings are currently active and also with what access pattern.
+	  Update the design doc with restrictions on the access patterns for nested
+	  mappings.
+	  Check if nested mappings obey the access mode restrictions of the design doc.
+	  Add various unit tests to check the desired behaviour.
+
+2012-01-06 13:06:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: unmap with the right data pointer
+	  Use the original data pointer to unmap the buffer memory.
+
+2012-01-06 10:39:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	  docs: improve memory docs
+
+2012-01-06 07:02:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: handle -1 size in unmap
+	  handle -1 in unmap correctly when the offset is modified.
+
+2012-01-06 06:43:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: improve semantics of unmap
+	  Make an unmap call with a different data pointer than the map call update the
+	  offset field. This allows for both offset and size adjustements in the unmap
+	  call.
+
+2011-11-29 14:22:44 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: don't compensate for render-delay twice
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667298
+
+2012-01-05 18:15:20 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: add more checks
+	  Add check for mapping and resizing
+
+2012-01-05 17:28:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-memory.txt:
+	* gst/gstmemory.c:
+	* tests/check/gst/gstmemory.c:
+	  memory: take offset into account
+	  Take the offset into account whem mapping and unmapping the buffer.
+
+2012-01-05 17:02:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-memory.txt:
+	  docs: clarify resize and current mappings
+
+2012-01-05 16:41:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-memory.txt:
+	* tests/check/gst/gstmemory.c:
+	  memory: clarify nested mappings, add unit test
+
+2012-01-05 12:30:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: add new API to .def file
+
+2012-01-05 13:22:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstmemory.c:
+	  tests: add more memory unit tests
+	  Check for unmap with invalid size
+
+2012-01-05 13:11:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* tests/check/Makefile.am:
+	* tests/check/gst/gstmemory.c:
+	  tests: add unit test for GstMemory
+	  Add a GstMemory unit test
+	  Add some more asserts in GstMemory to catch invalid cases.
+
+2012-01-05 13:09:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.h:
+	  check: add macro to check for memory refcount
+
+2012-01-05 12:39:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-memory.txt:
+	  improve docs a little
+
+2011-12-16 13:11:36 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstvalue.c:
+	  value: Add tests for the bitmask type
+
+2011-12-16 12:39:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: Add "bitmask" as alias for (GstBitmask) when (de-)serializing values
+
+2011-12-16 12:32:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	* gst/gstvalue.h:
+	  value: Add 64-bit bitmask type
+
+2012-01-01 16:32:27 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+	* autogen.sh:
+	  build: don't output configure options via autogen if $NOCONFIGURE is set
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667296
+
+2012-01-05 00:30:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst-i18n-app.h:
+	* gst/gst-i18n-lib.h:
+	  gst: include locale.h before any other i18n headers
+	  This is also how we do it in -base.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667290
+
+2012-01-01 16:46:04 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+	* gst/gst_private.h:
+	* gst/gstconfig.h.in:
+	  gstconfig.h: adds and uses SunPro visibility attribute for proper function exports
+	  Define GST_EXPORT for SunPro.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667289
+
+2012-01-01 16:47:14 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstinputselector.c:
+	  plugins: explicitly cast initialization values to the correct type
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667288
+
+2012-01-01 20:17:41 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+	* gst/gstpoll.c:
+	  poll: include correct poll.h based on autoconf test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667286
+
+2012-01-04 23:46:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: check for sys/poll.h
+	  https://bugzilla.gnome.org/show_bug.cgi?id=667286
+
+2012-01-04 19:50:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From a62f3d4 to 0807187
+
+2012-01-04 10:04:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: only reserve 6 extra flags
+	  Only reserve 6 extra flags instead of 10 so that more media specific flags
+	  are available.
+
+2012-01-03 15:25:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcompat.h:
+	* libs/gst/base/gstcollectpads2.c:
+	  GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
+
+2012-01-03 15:05:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcompat.h:
+	  compat: restore UNEXPECTED
+
+2012-01-03 15:03:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcompat.h:
+	* gst/gstelement.h:
+	* gst/gstmemory.c:
+	* gst/gstregistry.c:
+	* gst/gstsample.c:
+	  docs: fix some docs
+
+2012-01-03 14:45:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2012-01-03 14:43:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: avoid exposing the lists in tags
+
+2012-01-03 13:42:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: add missing functions
+	  Add missing and essential functions now that we can't directly use GstStructure
+	  methods on the taglist anymore.
+
+2012-01-03 10:42:31 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstvalue.h:
+	  value: add macro to check if a gvalue holds a sample
+
+2012-01-02 15:47:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/manual/advanced-autoplugging.xml:
+	  docs: fix build of docs examples
+	  Update for registry method rename
+
+2012-01-02 15:39:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: turn assert into a real error
+	  Post a real error instead of just asserting.
+
+2012-01-02 15:38:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: handle latency event
+
+2012-01-02 02:32:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	* gst/gstregistry.h:
+	* tests/check/gst/gstplugin.c:
+	* win32/common/libgstreamer.def:
+	  registry: get rid of gst_default_registry_*() convenience macros
+	  They're not really worth it: hardly save any typing, and aren't
+	  great for bindings or gobject-introspection.
+
+2012-01-02 02:22:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gst.c:
+	* gst/gstelementfactory.c:
+	* gst/gstplugin.c:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginloader.c:
+	* gst/gstregistry.c:
+	* gst/gstregistry.h:
+	* gst/gsttypefind.c:
+	* gst/gsttypefindfactory.c:
+	* gst/gsturi.c:
+	* libs/gst/check/gstcheck.c:
+	* tests/check/generic/states.c:
+	* tests/check/gst/gstplugin.c:
+	* tests/check/gst/gstregistry.c:
+	* tools/gst-inspect.c:
+	* win32/common/libgstreamer.def:
+	  registry: rename gst_registry_get_default() to gst_registry_get()
+	  It's not really a default if there is only one that can't be changed.
+	  Should we return a ref like e.g. g_volume_monitor_get() does?
+
+2012-01-02 02:21:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gsttaglist.c
+	  plugins/elements/gstoutputselector.c
+
+2012-01-02 00:17:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  tags: add GST_TAG_LANGUAGE_NAME
+	  API: GST_TAG_LANGUAGE_NAME
+
+2012-01-01 20:59:22 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/part-controller.txt:
+	  docs: update controller design doc
+
+2012-01-01 20:57:34 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	  controller: rename some tests
+
+2012-01-01 20:55:20 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	* tests/check/libs/controller.c:
+	  controller: support control mapping for enums
+	  Add a mapping for enum types (supporting sparse enums). Add a test.
+
+2012-01-01 20:43:51 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/control-sources.c:
+	  controller: remove nonsense parts from test object property descriptions
+
+2012-01-01 18:54:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  interpolationcontrolsource: fix cubic interpolation for arrays
+
+2012-01-01 18:50:55 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/examples/controller/control-sources.c:
+	  audio-example: also plot reverse-saw
+
+2012-01-01 18:43:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstlfocontrolsource.c:
+	  lfocontrolsource: cleanups and fix triangle calculations
+
+2012-01-01 18:34:12 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/examples/controller/audio-example.c:
+	  audio-example: fix the example
+	  We need to scale the frequency values.
+
+2012-01-01 15:16:06 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* tests/examples/controller/control-sources.c:
+	  lfocontrolsource: make chainable
+	  Now the properties of this controlsource are in turn controlable. Add an example
+	  to show the usage.
+
+2012-01-01 15:01:22 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  controller: add logging and fix array functions
+
+2012-01-01 14:55:35 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	  controller: cleanup the tests
+
+2012-01-01 14:28:54 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolbinding.c:
+	  controller: add more debug logging
+
+2011-12-31 17:37:20 -0800  David Schleef <ds@schleef.org>
+
+	* tests/check/Makefile.am:
+	  convert Makefile spaces to tabs
+
+2011-12-31 15:52:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/examples/controller/control-sources.c:
+	  controller: also test array functions
+	  Improve the example to also collect value arrays and plot them.
+
+2011-12-31 15:26:26 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	  controller: remove obsolete FIXME comment
+
+2011-12-31 09:56:53 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	  controller: fix tests
+	  Set a defined value to check for no-change.
+
+2011-12-30 18:35:40 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	  control-sources: turn into GstObjects
+	  This is a preparation for chaining them.
+
+2011-12-30 19:37:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstmarshal.list:
+	* gst/gstregistry.c:
+	* gst/gstregistry.h:
+	  registry: remove padding and signal vfuncs
+	  And fix signal GTypes and marshaller. No one will ever
+	  need to subclass our registry, so just remove the padding
+	  and the signal vfuncs.
+
+2011-12-30 15:39:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	  tests: disable GstIndex unit test
+
+2011-12-30 15:31:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstindex.c:
+	* libs/gst/base/gstindex.h:
+	* libs/gst/base/gstmemindex.c:
+	  index: rename GstAssocFlags to GstIndexAssociationFlags
+	  Just in case we resurrect this later.
+
+2011-12-30 15:24:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstindex.c:
+	* libs/gst/base/gstindex.h:
+	* libs/gst/base/gstmemindex.c:
+	  base: disable unused index API and make functions static
+	  It's simply private helper API for now, until someone
+	  fixes up GstBaseParse not to need it any more.
+
+2011-12-30 15:24:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: remove index API from .def file
+
+2011-12-30 15:06:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelement.h:
+	  element: add LARGE padding to class structure
+	  Four slots for expansion is not a lot.
+
+2011-12-30 15:03:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/gst/gstreamer.types.in:
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstindex.c:
+	* gst/gstindex.h:
+	* gst/gstindexfactory.c:
+	* gst/gstindexfactory.h:
+	* gst/gstregistrybinary.c:
+	* gst/gstregistrychunks.c:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstindex.c:
+	* libs/gst/base/gstindex.h:
+	* libs/gst/base/gstmemindex.c:
+	* plugins/Makefile.am:
+	* plugins/indexers/.gitignore:
+	* plugins/indexers/Makefile.am:
+	* plugins/indexers/gstfileindex.c:
+	* plugins/indexers/gstindexers.c:
+	* plugins/indexers/gstindexers.h:
+	* plugins/indexers/gstmemindex.c:
+	* tools/gst-inspect.c:
+	* tools/gst-launch.c:
+	  index: remove GstIndex and GstIndexFactory for now
+	  There are many good use cases for GstIndex and we want
+	  to add it back again in some form, but possibly not with
+	  the current API, which is very powerful (maybe too powerful),
+	  but also a bit confusing. At the very least we'd need to
+	  make the API bindings-friendly.
+
+2011-12-30 17:57:41 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gst.c:
+	  gst: unref the two cotnroller types in _deinit()
+
+2011-12-30 17:51:01 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcontroller.c:
+	  controller: add more tests to core controller suite
+	  Extend the dummy control-source to allow testing the sync code path. Add test
+	  for 1:1 and 2:1 value <-> control-source sync.
+
+2011-12-30 13:52:08 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcontroller.c:
+	  controller: add a test for bindings control sources multiple times
+
+2011-12-30 12:59:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/math-compat.h:
+	  math-compat: move static variable for NAN into #ifndef NAN block
+	  And use G_GNUC_UNUSED instead of __attribute_used__
+
+2011-12-30 13:32:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/math-compat.h:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  controller: use NAN instead of FP_NAN (which is the class)
+	  Also add a fallback define to math-compat.h.
+	  Fixes #666887
+
+2011-12-29 16:56:46 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* plugins/elements/gstoutputselector.c:
+	  output-selector: Do not false warn about unlinked pad
+	  When output-selector didn't receive a newsegment event it would
+	  warn about pad being unlinked when switching pads. Making the logs
+	  wrong and misleading.
+
+2011-12-29 16:49:39 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-12-28 15:13:09 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: Fix leak in pad check
+
+2011-12-28 14:51:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: deinit meta flags too
+
+2011-12-28 12:25:59 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: Initialize new GstMetaFlags in init_post()
+
+2011-12-01 19:05:59 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  gstquery: Small doc fixups
+
+2011-12-16 02:20:27 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstbuffer.h:
+	* gst/gstbufferlist.h:
+	* gst/gstcaps.h:
+	* gst/gstevent.h:
+	* gst/gstinfo.h:
+	* gst/gstmemory.h:
+	* gst/gstsample.h:
+	* gst/gststructure.h:
+	* gst/gsttrace.h:
+	  win32: fix exported variables for VS 2010
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666219
+
+2011-12-27 13:48:36 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  triggercontrolsource: fix control reaches end of non-void function
+	  Return NAN and check the value further up.
+	  Fixes #666890
+
+2011-12-27 11:40:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	  controller: quick-fix compiler warning breaking the build
+	  This is likely not the proper fix.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666890
+
+2011-12-27 11:35:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstplugin.c:
+	  tests: can't access private registry structure members directly any longer
+
+2011-12-27 11:24:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  controller: fix compiler warning in interpolation control source
+	  gstinterpolationcontrolsource.c:54: warning: type qualifiers ignored
+	  on function return type
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666890
+
+2011-12-26 18:44:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: remove "fd" property
+	  It's no longer useful, since we don't use mmap any more anyway,
+	  and we might use a different API for I/O in future (such as GIO).
+
+2011-12-26 18:41:13 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstplugin.c:
+	* gst/gstregistry.c:
+	* gst/gstregistry.h:
+	* gst/gstregistrybinary.c:
+	  registry: move private bits into private struct
+
+2011-12-26 11:26:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  value: micro-optimisation: avoid some unnecessary g_value_unset()
+	  We know there's nothing to do here and can save us the function
+	  calls and GValueTable lookups.
+
+2011-12-25 23:41:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* Android.mk:
+	* configure.ac:
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* gstreamer.spec.in:
+	* libs/gst/Makefile.am:
+	* libs/gst/dataprotocol/.gitignore:
+	* libs/gst/dataprotocol/Makefile.am:
+	* libs/gst/dataprotocol/dataprotocol.c:
+	* libs/gst/dataprotocol/dataprotocol.h:
+	* libs/gst/dataprotocol/dp-private.h:
+	* pkgconfig/Makefile.am:
+	* pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in:
+	* pkgconfig/gstreamer-dataprotocol.pc.in:
+	* scripts/gst-uninstalled:
+	* tests/check/Makefile.am:
+	* tests/check/gst/.gitignore:
+	* tests/check/libs/gdp.c:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/check/libs/libsabi.c:
+	* win32/MANIFEST:
+	* win32/vs6/gstreamer.dsw:
+	* win32/vs6/libgstdataprotocol.dsp:
+	  libs: remove gdp dataprotocol library
+	  Made private and moved to gdp plugin in -base for
+	  the time being, until we figure out what we do with
+	  gdp and 0.11.
+
+2011-12-25 21:02:41 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/benchmarks/controller.c:
+	  tests: fix unused-variable compiler warning
+
+2011-12-25 21:01:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstcontroller.def:
+	* win32/common/libgstreamer.def:
+	  win32: update exports for new API
+
+2011-12-25 20:49:41 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/design/part-controller.txt:
+	  docs: add the start of a design document for controller
+
+2011-12-25 18:49:01 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/gstcontroller.c:
+	* tests/check/libs/controller.c:
+	  controller: split and cleanup the tests
+	  The controller object was once copied from buzztards unit tests. Change
+	  TestMonoSource to TestObj as it is not a full fledged element. Split the tests
+	  into a core and library test suite.
+
+2011-12-22 23:48:30 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstinterpolation.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsourceprivate.h:
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	* libs/gst/controller/gsttimedvaluecontrolsource.h:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/examples/controller/.gitignore:
+	* tests/examples/controller/Makefile.am:
+	* tests/examples/controller/audio-example.c:
+	* tests/examples/controller/control-sources.c:
+	  controller: move GValue handling from control-sources to -binding
+	  ControlSources are now gdouble based. A control source is mapped to a
+	  particullar GObject property using a ControlBinding.
+
+2011-12-20 22:36:18 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/gst/gstreamer.types.in:
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gstcontrolbinding.c:
+	* gst/gstcontrolbinding.h:
+	* gst/gstcontrolsource.c:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	* tests/check/libs/controller.c:
+	  controller: move GstControlledProperty into a separate class
+	  Add a GstControlBinding class. This is a preparation for making the
+	  controlsources generate double valued control curves and do the gparamspec
+	  mapping in the control binding. Now the API in GstObject is again mostly
+	  for convenience.
+
+2011-12-25 12:47:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  plugins/elements/gstfilesrc.c
+
+2011-12-25 12:39:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: return any remaining data on EOS before returning FLOW_UNEXPECTED
+
+2011-12-25 12:29:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: minor cosmetic changes
+	  Rename woffset variable, maintain separate bytes_read in addition
+	  to length variable.
+
+2011-12-25 12:13:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: fix up compilation after merge
+
+2011-12-25 11:58:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbasetransform.c
+	  libs/gst/controller/gstinterpolationcontrolsource.c
+	  libs/gst/controller/gstlfocontrolsource.c
+	  plugins/elements/gstfilesrc.c
+	  Dit not merge controller or basetransform changes.
+
+2011-12-24 14:59:16 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* docs/random/porting-to-0.11.txt:
+	  porting: update porting-to-0.11
+	  Update gst_pad_get_caps -> gst_pad_query_caps change
+
+2011-12-23 15:37:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	* gst/gstbufferpool.h:
+	  bufferpool: cleanup metadata in reset_buffer
+	  Use the reset_buffer vmethod to remove the unpooled metadata from the buffer.
+
+2011-12-22 16:00:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  def: update for new symbols
+
+2011-12-22 15:55:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  bufferpool: handle metadata in the pool
+	  Mark all metadata on the allocated buffers with a POOLED flag. When a buffer
+	  returns to the pool, remove all metadata that did not have the POOLED flag. This
+	  makes sure that we never leave unknown metadata to the buffers in the pool.
+
+2011-12-22 15:54:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	  buffer: add foreach function for the metadata
+
+2011-12-22 15:53:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferlist.c:
+	  bufferlist: small doc fix
+
+2011-12-22 15:52:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstmeta.h:
+	  meta: add metadata flags
+	  Add metadata flags so that we can set extra properties of the metadata
+
+2011-12-02 14:10:32 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstpipeline.c:
+	  pipeline: only have a top-level pipeline do pipeline management
+	  Fixes #665390.
+
+2011-12-22 11:08:42 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  controller: fix GType name of interpolation mode enum
+
+2011-12-21 11:13:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  def: update
+
+2011-12-21 11:08:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: rename variable for consistency
+	  Rename the variable for GST_CAPS_NONE to _gst_caps_none for consistency and to
+	  hie the fact that NONE caps are also accidentally empty caps.
+
+2011-12-19 14:27:47 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: If the filtered peer caps are already empty error out early
+
+2011-12-20 13:21:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  def: update defs
+
+2011-12-20 13:14:07 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: add ANY and EMPTY singletons
+	  Add a singleton for ANY and EMPTY caps and make the GST_CAPS_ANY and
+	  GST_CAPS_NONE point to them. This makes the API more consistent now
+	  that the macro does not magically create a ref. It also solves some leaks in
+	  places where the macro was used to register a padtemplate.
+
+2011-12-20 13:13:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttypefind.c:
+	* gst/gsttypefind.h:
+	  remove const in gst_type_find_register()
+	  Remove the const from the GstCaps in gst_type_find_register() because the
+	  function takes a ref to the caps.
+
+2011-12-20 12:59:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstcontroller.def:
+	  defs: update
+
+2011-12-20 11:38:19 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolsource.c:
+	  controller: remove unused parent_class varriable from controlsource
+
+2011-12-19 23:32:57 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstobject.c:
+	* libs/gst/controller/gstinterpolation.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	  controller: cleanup interpolation modes
+	  Remove deprecated/unimplemented modes. Turn interpolation mode into a gobject
+	  property. Update docs and examples.
+
+2011-12-19 11:13:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/libs/gstreamer-libs.types:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstobject.c:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstinterpolation.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
+	* libs/gst/controller/gsttimedvaluecontrolsource.c:
+	* libs/gst/controller/gsttimedvaluecontrolsource.h:
+	* libs/gst/controller/gsttriggercontrolsource.c:
+	* libs/gst/controller/gsttriggercontrolsource.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	  controlsources: refactor interpolation control source
+	  Move most of the code to a GstTimedValueControlSource. Split out the trigger
+	  'interpolation mode' to a new control source class. Move tests and examples to
+	  new api. Update docs.
+	  Fixes #610338
+
+2011-12-19 22:01:02 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstlfocontrolsource.c:
+	  controlsource: clean up lfo control source
+	  Remove parent_class and use var from G_DEFINE_TYPE macro. Remove unused dispose
+	  implementation.
+
+2011-12-19 20:57:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  win32: add new collectpads2 function to .def file
+
+2011-12-16 17:59:22 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: add convenience clipping function
+	  ... which also converts to running time; useful for typical muxer.
+
+2011-12-19 17:38:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: do not delay sparse stream newsegment updates
+
+2011-12-19 17:00:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmemory.h:
+	  memory: make subclasses add other flags
+	  Add GST_MAP_FLAG_LAST so that implementations can add additional flags when
+	  mapping memory.
+
+2011-12-19 12:33:18 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: suggestion compatible with upstream is not much of a suggestion
+	  ... in that upstream is already complying with that suggestion.
+	  Fixes #666174.
+
+2011-12-15 14:31:05 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: delay collecting buffer if a pad newly set waiting
+	  ... as commented; make code correspond to it (again).
+
+2011-12-15 16:06:30 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	  controller: user the parent_class vars from G_DEFINE_TYPE
+
+2011-12-14 12:13:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  pad: allow NULL as filter caps argument with query_caps()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=666154
+
+2011-12-12 13:05:36 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: do not mistake short reads for EOS
+	  While local filesystems will usually not cause short reads,
+	  this may happen on seekable files on some remote filesystems.
+	  Instead, loop till we get the requested amount of data, or
+	  an actual EOS (ie, 0 bytes).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665921
+
+2011-11-14 02:26:31 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Clear queued frames with other queues
+
+2011-12-12 12:11:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* gst/gstelementfactory.c:
+	  elementfactory: use new 'transfer floating' annotation for gst_element_factory_make()
+	  Requires gobject-introspection 1.31.1 (older versions will
+	  error out with that).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664099
+
+2011-12-12 12:09:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* po/cs.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/sr.po:
+	  po: update languages
+
+2011-12-12 12:00:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-12-12 11:54:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/glib-compat-private.h:
+	* gst/glib-compat.c:
+	  glib-compat: Add license boilerplate for LGPL
+
+2011-12-10 01:16:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* po/LINGUAS:
+	* po/cs.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/gl.po:
+	* po/sl.po:
+	* po/sr.po:
+	* po/uk.po:
+	  po: update translations
+
+2011-12-10 11:08:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: say we handle RECONFIGURE event
+	  We handle the RECONFIGURE event so return TRUE from the event handler.
+
+2011-12-10 11:07:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: don't forward on NULL pads
+	  The iterator can return NULL in some cases, avoid pushing on those
+	  NULL pads.
+
+2011-12-07 16:01:07 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpreset.c:
+	* gst/gstpreset.h:
+	* win32/common/libgstreamer.def:
+	  preset: allow applications to specify an extra preset dir
+	  An extra application preset dir help to organize presets created for special
+	  purposes. Fixes #660760
+	  API: gst_preset_set_app_dir(), gst_preset_get_app_dir()
+
+2011-12-09 10:01:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: stop when negotiation fails
+
+2011-12-08 17:32:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-12-08 18:00:00 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fix code path to come up with possible caps if incompatible caps are provided to buffer_alloc()
+	  Previous code could almost never work and this should be slightly
+	  better.
+
+2011-12-08 17:21:30 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fall back to upstream provided caps if suggested caps are not supported by the sinkpad
+
+2011-12-08 17:07:05 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fall back to upstream provided caps if fixation of suggested caps failed
+
+2011-12-08 17:02:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Refactor gst_base_transform_buffer_alloc() code
+	  Don't check if upstream provided caps are compatible with upstream
+	  and don't try to fixate these caps. They must be fixated in any case.
+
+2011-12-08 00:49:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	* win32/common/libgstreamer.def:
+	  win32: update .def files for latest API additions
+
+2011-12-08 00:47:46 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/selector.c:
+	  tests: fix up selector test after merge
+
+2011-12-08 00:39:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gstindexfactory.c
+	  libs/gst/base/gstbasetransform.c
+	  plugins/elements/gstfakesink.c
+	  plugins/elements/gstfakesrc.c
+	  plugins/elements/gstidentity.c
+	  plugins/elements/gstinputselector.c
+	  plugins/elements/gstoutputselector.c
+	  Note: did not merge any of the basetransform changes from 0.10.
+
+2011-12-07 17:57:49 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: do not use a byte value instead of a time value when bisecting
+	  This fixes FLAC seeking on some FLAC files.
+
+2011-12-07 11:04:42 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/selector.c:
+	  selector: Push newsegment events before any buffers are pushed in the unit test
+
+2011-12-07 11:01:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Don't send a NEWSEGMENT event if a buffer arrived before the segment was configured
+
+2011-12-07 11:01:31 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstoutputselector.c:
+	  outputselector: Don't send last segment/buffer when no segment was configured yet
+
+2011-12-07 09:50:40 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: If suggested caps are not compatible with upstream try to come up with compatible caps
+	  Fixes bug #662199.
+
+2011-12-06 23:52:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstindexfactory.c:
+	  indexfactory: fix memory leak
+	  Introduced by commit bd302bb6 pluginfeature: avoid duplicating feature->name
+	  https://bugzilla.gnome.org/show_bug.cgi?id=459466
+	  https://bugzilla.gnome.org/show_bug.cgi?id=665703
+
+2011-12-06 18:09:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: put new event probe type next to other event types
+
+2011-12-05 21:20:52 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  Add GST_PAD_PROBE_TYPE_HANDLE_FLUSH
+
+2011-12-06 14:55:15 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: Make event/buffer verbose output consistent with identity
+
+2011-12-06 14:55:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: Print buffer flags in the verbose output
+
+2011-12-06 14:53:47 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfakesrc.c:
+	  fakesrc: Make event/buffer verbose output consistent with identity and print buffer flags
+
+2011-12-06 14:46:46 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gstpad.c:
+	  tests: don't include glib/gthread.h directly
+	  The g_thread functions are available after including glib.h as per docs.
+
+2011-12-06 14:23:39 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	  controller: port the test to new api as well
+
+2011-12-06 14:23:12 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	  controller: fix gpointer vs. gpointer* mess up
+
+2011-12-06 14:24:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* tests/check/gst/gstpad.c:
+	  pad: remove GST_FLOW_RESEND
+	  It is unused and undefined.
+
+2011-12-06 14:01:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasesrc.h:
+	* plugins/elements/gstfakesrc.c:
+	  basesrc: add async start option
+	  Add a method to enable async start behaviour. The subclass can then complete the
+	  start operation from any other thread by caling gst_base_src_start_complete().
+	  The base class can wait for the start to complete with
+	  gst_base_src_start_wait().
+
+2011-12-06 13:58:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/controller.c:
+	  fix compilation
+
+2011-12-06 13:47:29 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: cleanup error path
+
+2011-12-06 13:39:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/controller/gstinterpolation.c:
+	  fix compilation
+
+2011-12-06 08:48:57 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	  controller: use _OBJECT logging variants more
+
+2011-12-06 08:35:57 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* libs/gst/controller/gstinterpolation.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* tests/benchmarks/controller.c:
+	  controller: remove GstValueArray
+	  Instead pass the values as arguments. This simplifies that code and helps
+	  bindings.
+
+2011-12-06 08:35:10 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	  controller: remove gst_object_get_value_arrays
+	  One can easilly loop over the controlled properties manually. This is step 1 in
+	  removing GstValueArray.
+
+2011-12-04 07:33:32 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstpad.c:
+	  correct return value in gst_push_sticky
+
+2011-12-05 11:07:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmessage.h:
+	* gst/gstquery.h:
+	  make some macros into inline functions
+
+2011-12-05 10:24:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.h:
+	* gst/gstevent.h:
+	* libs/gst/base/gsttypefindhelper.c:
+	  make some more macros as inline functions
+	  Make some macros as inline functions for added type checking.
+	  USe new gst_caps_take() in typefind
+
+2011-12-05 10:23:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove some old methods
+
+2011-12-04 21:19:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.h:
+	  check: allow non-joinable threads in private g_thread_create() copy
+	  Looks like some tests use non-joinable threads after all.
+
+2011-12-04 15:42:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove removed tag list functions from docs as well
+
+2011-12-04 15:38:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gstobject.h
+	  libs/gst/check/gstcheck.h
+	  libs/gst/controller/gstcontroller.c
+	  plugins/elements/gstidentity.c
+	  tools/gst-xmlinspect.c
+
+2011-12-04 14:38:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* gst/gstpad.c:
+	* gst/gsttask.c:
+	* gst/gstutils.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstcollectpads2.c:
+	* plugins/elements/gstmultiqueue.c:
+	  Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
+	  GStaticRecMutex is part of our API/ABI, not much we can do here in 0.10.
+
+2011-12-04 13:35:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/glib-compat-private.h:
+	* gst/gstbus.c:
+	* gst/gstclock.c:
+	* gst/gstelement.c:
+	* gst/gstobject.h:
+	* gst/gsttask.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstdataqueue.c:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/controller/gstcontroller.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	  Work around deprecated thread API in glib master
+	  Add private replacements for deprecated functions such as
+	  g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
+	  to avoid the deprecation warnings. We can't change most of
+	  these in 0.10 because they're part of our API and ABI.
+
+2011-12-04 13:09:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/benchmarks/gstbufferstress.c:
+	* tests/benchmarks/gstclockstress.c:
+	* tests/benchmarks/gstpollstress.c:
+	  benchmarks: g_thread_create() is deprecated in GLib master, use g_thread_try_new() instead
+
+2011-12-04 13:04:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/net/gstnetclientclock.c:
+	* libs/gst/net/gstnettimeprovider.c:
+	  net: initialise GError variables to NULL
+
+2011-12-04 11:43:10 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* win32/common/libgstreamer.def:
+	  win32: Update defs files
+
+2011-12-04 11:42:39 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/gstquery.c:
+	  gstquery: Fix unitialized variable
+
+2011-12-04 11:32:57 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/gstsegment.c:
+	  gstsegment: Initialize with proper type
+
+2011-12-03 17:40:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	* libs/gst/helpers/gst-plugin-scanner.c:
+	* tools/gst-inspect.c:
+	* tools/gst-launch.c:
+	* tools/gst-typefind.c:
+	* tools/gst-xmlinspect.c:
+	  g_thread_init() is deprecated in glib master
+	  It's not needed any longer.
+
+2011-12-03 16:02:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttagsetter.c:
+	  tagsetter: update for thread API deprecations in glib master
+
+2011-12-03 15:36:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	  taglist: update for thread API deprecations in glib master
+
+2011-12-03 15:18:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: remove gst_tag_list_get_{char,uchar}
+	  Those are unused and should never be used anywhere anyway
+	  really.
+
+2011-12-03 14:06:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove some macros that no longer exist
+
+2011-12-03 13:58:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstsystemclock.c:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/net/gstnetclientclock.c:
+	* libs/gst/net/gstnettimeprovider.c:
+	  g_thread_create() is deprecated in GLib master, use g_thread_try_new() instead
+
+2011-12-03 07:06:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: use dts and pts for sync
+	  First use DTS, then fall back to PTS for synchronization.
+
+2011-12-03 07:01:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: small cleanups
+
+2011-12-03 06:45:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: merge preroll functions
+	  Inline a function that is only called from one place to make things a little
+	  easier to follow.
+
+2011-12-03 06:29:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: more cleanups
+	  Don't pass around the object type, we can find that very efficiently from the
+	  object itself now.
+
+2011-12-02 23:13:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: clean up method names
+
+2011-12-02 22:50:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: merge render_object into chain
+	  Merge the render_object code with the chain method. It is only called from there
+	  and there are quite a few variables that can be reused to makes things less
+	  confusing.
+
+2011-12-02 22:36:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: remove obsolete code
+	  Remove some more code now that the render_object ethod is only
+	  called with buffers or bufferlsts.
+
+2011-12-02 22:20:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfilesink.c:
+	  basesink: clean up event handling
+	  Add new wait_eos vmethod to wait for the eos timeout before posting the EOS
+	  message on the bus.
+	  Add default event handler. Move the default event actions in there. Call the
+	  event vmethod from the pad event handler. Subclasses are now supposed to chain
+	  up to the parent event handler or unref the event and do their own thing.
+	  Avoid passing unused parameters to functions.
+
+2011-12-02 13:19:38 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: unlock clock wait when appropriate
+	  ... notably FLUSH and state change to READY.
+
+2011-12-02 13:35:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: small cleanup
+	  Avoid passing around the segment.
+
+2011-12-02 13:28:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	  basesink: remove clip_segment
+	  We only need one segment now that the preroll queue is gone.
+
+2011-12-02 12:42:50 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: more cleanups
+	  Remove some unneeded functions, inline the code.
+	  Remove the queue_object functions, we can proceed with the rendering
+	  immediately.
+
+2011-12-02 12:20:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	  basesink: remove obsolete code
+	  Remove the preroll queue and proceed directly to the rendering of objects.
+
+2011-12-01 23:35:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gstbus.c
+	  gst/gstevent.c
+	  libs/gst/base/gstbasetransform.c
+
+2011-12-01 18:50:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: make some tags of type GstSample
+	  Make the image and attachment tags of type GstSample so that we can include
+	  extra caps and info along with the buffer data.
+
+2011-12-01 18:49:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsample.c:
+	* gst/gstsample.h:
+	  sample: remove const
+	  The writability of the structure is ensured by the refcount of the parent
+	  miniobject and we're fine if the parent is writable.
+
+2011-12-01 16:46:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* tests/check/libs/basesink.c:
+	* win32/common/libgstbase.def:
+	  basesink: last-buffer -> last-sample
+	  Rename the last-buffer property to last-sample and make it return the new
+	  GstSample type so that we can include caps and timing info in one nice bundle.
+
+2011-12-01 16:37:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gst.h:
+	* gst/gst_private.h:
+	* gst/gstsample.c:
+	* gst/gstsample.h:
+	* win32/common/libgstreamer.def:
+	  sample: add new sample miniobject
+	  Add a new simple miniobject that is a combination of a GstBuffer, GstCaps,
+	  GstSegment and other arbitrary info organized in a GstStructure. This object can
+	  be used to exchange samples between an element and the application or for
+	  storing album art in tags etc.
+
+2011-12-01 16:25:07 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbus.c:
+	  bus: use GST_MESSAGE_SOURCE_NAME() which also takes care of src=NULL.
+
+2011-12-01 15:35:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetrans: add some more debug
+
+2011-12-01 15:35:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: add some more debug
+
+2011-12-01 15:34:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	  buffer: add copy flag for meta
+	  Add a flag to control if the meta should be copied or not instead of always
+	  copying.
+
+2011-11-29 19:08:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: remove old property
+
+2011-11-30 13:59:46 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Always intersect the suggested sink caps with the peer caps
+	  This makes sure that we get correct and complete caps. The suggested caps
+	  could be incomplete, e.g. video/x-raw-rgb without any fields, and by
+	  intersecting with the peer caps we get something usable.
+	  Fixes bug #662199.
+
+2011-11-30 12:39:34 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstinfo.h:
+	  info: move FIXME log level after WARNING
+	  So it's now ERROR < WARNING < FIXME < INFO and *:5 becomes *:6.
+
+2011-11-30 00:24:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: warn and fail instead of creating newsegment events in GST_FORMAT_UNDEFINED
+
+2011-11-29 15:53:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: keep the element flags up-to-date
+	  Keep the require/provide_clock flags up to date.
+
+2011-11-29 11:47:34 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	  queue: source and sink pads proxy caps
+
+2011-11-28 21:15:31 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-28 18:23:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  update for indexable change
+
+2011-11-28 18:12:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* tools/gst-inspect.c:
+	* win32/common/libgstreamer.def:
+	  element: add indexable flag
+	  Remove the is_indexable method check and use an element flag to check if the
+	  element can use an index.
+
+2011-11-28 17:50:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2011-11-28 17:22:44 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* tools/gst-inspect.c:
+	  element: use flags for require/provide clock
+	  Remove the _require/_provide_clock() methods and use element flags to mark
+	  elements instead of looking at the implementation of the vmethod.
+
+2011-11-28 16:54:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* tests/check/gst/gstbin.c:
+	  element: clean up element flags
+	  Clean up the element flags
+
+2011-11-28 15:35:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: add sticky custom quark
+
+2011-11-28 14:24:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: _CAPS_FLAGS_ -> CAPS_FLAG_
+
+2011-11-28 12:30:15 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* win32/common/libgstreamer.def:
+	  gstelement: add gst_element_class_add_pad_template_from_static
+	  This function helps ensure the pad template is unreffed
+	  without having to complicate the calling code.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662664
+
+2011-11-28 13:54:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Handle sticky event errors
+	  Use GstFlowReturn to internally pass events between pads.
+	  When we sticky events cause an error, translate this error into a GstFlowReturn.
+	  Caps events will, for example, generate a NOT_NEGOTIATED return when the event
+	  function returns an error.
+	  This allows us then to refuse sending buffers if one of the sticky events is
+	  refused and generate a correct error return value.
+
+2011-11-28 13:52:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/fakesrc.c:
+	* tests/check/elements/fdsrc.c:
+	  tests: don't return FALSE from events
+	  Returning FALSE from the event handler shuts down the sender.
+
+2011-11-28 13:51:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  test: fix refcount error
+
+2011-11-28 11:15:27 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	  gstmeta: Some more docs
+
+2011-11-28 10:55:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.h:
+	  event: add custom downstream sticky event
+
+2011-11-28 01:12:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix up comment after merge from 0.10
+
+2011-11-28 01:11:47 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-28 01:10:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix refactoring of draining-on-eos, munge flow return to FLOW_OK
+
+2011-11-28 01:00:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix up new bufferlist code for 0.11
+
+2011-11-28 00:40:55 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  plugins/elements/gstqueue2.c
+
+2011-11-03 10:34:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: add bufferlist support
+	  We want to maintain buffer lists if possible.
+
+2011-11-03 13:02:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: split out draining of queue on FLOW_UNEXPECTED into separate function
+
+2011-11-03 08:55:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: pass item type enum to _enqueue instead of simple isbuffer boolean
+	  Avoids some unnecessary GST_IS_EVENT()
+
+2011-11-27 20:32:14 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstcaps.h:
+	  caps: fix compilation warning
+	  GST_STATIC_CAPS is missing initializer for GstMiniObject's n_weak_refs and
+	  weak_refs resulting in compilation warning (llvm-gcc  -Wall)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664927
+
+2011-11-27 22:26:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-27 20:36:31 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	* tools/gst-inspect.c:
+	* tools/gst-xmlinspect.c:
+	  warnings: avoid set-but-unused warnings with load-save disabled
+
+2011-11-26 17:34:12 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: fix broken default caps query
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664880
+
+2011-11-26 19:51:37 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-26 19:45:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsturi.h:
+	  uri: fix wrong G_GNUC_MALLOC
+	  _get_protocols() points to const memory in 0.10
+	  despite the non-const return value.
+
+2011-11-26 19:44:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gstbuffer.h
+	  gst/gstbufferlist.h
+	  gst/gstcaps.h
+	  gst/gstdatetime.h
+	  gst/gstelementfactory.h
+	  gst/gstevent.h
+	  gst/gstghostpad.h
+	  gst/gstindexfactory.h
+	  gst/gstiterator.h
+	  gst/gstmessage.h
+	  gst/gstminiobject.h
+	  gst/gstpipeline.h
+	  gst/gstquery.h
+	  gst/gstsegment.h
+	  gst/gststructure.h
+	  gst/gsttaglist.h
+	  gst/gsturi.h
+	  gst/gstvalue.h
+	  libs/gst/base/gstbitreader.h
+	  libs/gst/base/gstbytereader.h
+	  libs/gst/base/gstbytewriter.h
+	  Note: can't use G_GNUC_MALLOC with GstCaps return
+	  values in 0.11 because of the EMPTY+ANY singletons.
+
+2011-11-26 18:58:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.h:
+	* libs/gst/base/gstbitreader.h:
+	* libs/gst/base/gstbytereader.h:
+	* libs/gst/base/gstbytewriter.h:
+	* libs/gst/base/gstdataqueue.h:
+	  libs: sprinkle some G_GNUC_MALLOC
+	  Maybe gcc can do something clever with that, or at least
+	  warn us if we don't save the return value somewhere.
+
+2011-11-26 18:57:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstatomicqueue.h:
+	* gst/gstbuffer.h:
+	* gst/gstbufferlist.h:
+	* gst/gstcaps.h:
+	* gst/gstdatetime.h:
+	* gst/gstelementfactory.h:
+	* gst/gstevent.h:
+	* gst/gstghostpad.h:
+	* gst/gstindexfactory.h:
+	* gst/gstiterator.h:
+	* gst/gstmessage.h:
+	* gst/gstminiobject.h:
+	* gst/gstpadtemplate.h:
+	* gst/gstparamspecs.h:
+	* gst/gstparse.h:
+	* gst/gstpipeline.h:
+	* gst/gstpluginfeature.h:
+	* gst/gstpoll.h:
+	* gst/gstpreset.h:
+	* gst/gstquery.h:
+	* gst/gstsegment.h:
+	* gst/gststructure.h:
+	* gst/gsttaglist.h:
+	* gst/gsturi.h:
+	* gst/gstvalue.h:
+	  gst: sprinkle some G_GNUC_MALLOC
+	  Maybe gcc can do something clever with that, or at least
+	  warn us if we don't save the return value somewhere.
+
+2011-11-25 23:54:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-11-25 23:15:23 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: update porting docs.
+
+2011-11-16 01:04:45 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* tests/check/gst/gstbuffer.c:
+	* win32/common/libgstreamer.def:
+	  buffer: add gst_buffer_{set,get}_qdata()
+	  Allows people/us to attach arbitrary metadata to buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664720
+	  API: gst_buffer_set_qdata()
+	  API: get_buffer_get_qdata()
+
+2011-11-25 07:11:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* tests/check/gst/gstpad.c:
+	  pad: fix blocking probe emission
+	  If we are dealing with a blocking probe, only then check if one the
+	  blocking flags of the hook matches.
+	  Add some more debug.
+	  Make the pad unit test less racy.
+
+2011-11-24 17:47:09 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* tests/check/gst/gstpad.c:
+	  Add test for PAD_PROBE_TYPE_BLOCK and PAD_PROBE_TYPE_BLOCKING
+
+2011-11-25 05:54:09 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: fix debug of query result
+
+2011-11-24 22:52:19 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: fix typo in doc
+	  Causes a warning from the introspection scanner.
+
+2011-11-24 21:36:12 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	* tests/check/elements/capsfilter.c:
+	* tests/check/elements/fakesrc.c:
+	* tests/check/elements/fdsrc.c:
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/filesrc.c:
+	* tests/check/elements/identity.c:
+	* tests/check/elements/queue.c:
+	* tests/check/elements/selector.c:
+	  check: drop caps argument from gst_check_setup_{src,sink}_pad
+	  Calling set_caps at that point is not useful in 0.10 (FIXME comment!), and in
+	  0.11 it is totally pointless: the caps event doesn't stick to a flushing pad.
+
+2011-11-24 14:07:14 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  defs: update for byte_writer_put_buffer
+
+2011-11-24 11:23:07 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstpad.c
+	  libs/gst/base/gstbaseparse.c
+
+2011-11-24 11:15:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Remove g_warning() if pad accepted caps that are not a subset of the pad caps
+	  This check is correct but unfortunately it's impossible to implement
+	  in a threadsafe way because the caps could have changed in the meantime.
+	  Fixes bug #659606.
+
+2011-10-03 12:34:20 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: check filled state of queues even if another one is empty
+	  This will avoid a case where overrun is never signalled if some
+	  stream never produces any data, causing playbin2 to not end preroll.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660778
+
+2011-11-24 09:31:14 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: Check for dataflow with incompatible caps
+	  This test currently fails, but is there to ensure we fix this issue
+	  and keep it fixed, since it completely breaks delayed negotiation
+	  use-cases.
+	  This behaviour started breaking since
+	  dd65aae9a177f7b11dcef0f690a78d698f667cd4
+
+2011-11-24 09:31:02 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: Add comments to gstpad tests
+
+2011-11-24 09:30:14 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: Remove "#if 0" block for behaviour that now works
+
+2011-11-24 09:28:32 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: Remove commented block
+	  This behaviour is actually tested in test_push_unlinked
+
+2011-11-24 01:06:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  tools: make gst-inspect print a nasty debug message for non-grata property type
+	  Try to eradicate properties of long/ulong/char/uchar type.
+
+2011-11-23 17:50:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gsttee.c:
+	  event: add STICKY_MULTY events
+	  Add a new event flag for sticky events so that multiple events of that type can
+	  be stored on a pad at the same time. Change the _get_sticky_event() function to
+	  loop over the multiple events of a type.
+	  Change the foreach function to make it possible to removed and modify the sticky
+	  events on a pad.
+	  Use an variable size array now to store the events. This could later be
+	  optimized some more.
+
+2011-11-23 17:39:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: handle NULL message src in debug
+
+2011-11-23 17:38:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferlist.c:
+	  bufferlist: avoid reading past the array
+	  When the foreach function told us to remove the buffer from the list, decrease
+	  the length of the array or else we might read past the last item in the array.
+
+2011-11-23 13:42:56 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Return template caps instead of other side's peer caps if get_sink_caps vfunc is not implemented
+	  Using gst_pad_proxy_get_caps() breaks backwards compatibility with old
+	  parsers because it will propagate the other side's fields like "parsed"
+	  and "framed" and also breaks parser/converters.
+	  Fixes bug #664221.
+
+2011-11-23 11:03:19 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/base/gstbytewriter.c:
+	* libs/gst/base/gstbytewriter.h:
+	  bytewriter: add method to write out a buffer
+	  In 0.10, this can be done with a one-liner by using GST_BUFFER_DATA/SIZE with
+	  put_data. A 0.11 user has to resort to gst_buffer_map, which is less convenient
+	  and might require a memcpy internally.
+	  API: gst_byte_writer_put_buffer()
+
+2011-11-23 08:17:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: take peerpad correctly
+	  Don't take the peerpad too early, it might change because of the
+	  probes.
+
+2011-11-22 18:32:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: rework sticky events
+	  Rewrite sticky events, trying to make it a bit more simple.
+	  When sticky events are pushed on a srcpad, store them in the sticky event
+	  array and mark the event with received = FALSE.
+	  When the sticky event is successfully sent to the peer pad, make
+	  received = TRUE.
+	  Keep a PENDING_EVENTS pad flag that is set when one of the events is in
+	  the received = FALSE state for some reason.
+	  when activating a sinkpad, mark all events received = FALSE on the peer
+	  srcpad.
+	  When pushing a buffer, check the PENDING_EVENTS flag and if it is set, push all
+	  events to the peer pad first.
+
+2011-11-22 18:32:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: also let caps events go through
+
+2011-11-22 16:43:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: add new flags
+
+2011-11-21 18:56:19 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	  adapter: fix return type of _map() to gconstpointer
+	  Fixes compiler warnings on OSX:
+	  gstadapter.h:82: warning: type qualifiers ignored on function return type
+	  gstadapter.c:412: warning: type qualifiers ignored on function return type
+	  const gpointer is not the same as gconstpointer or const void *.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664491
+
+2011-11-22 12:46:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	* win32/common/libgstreamer.def:
+	  defs: update defs files
+
+2011-11-22 12:45:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	* gst/gstevent.h:
+	  padd return value from _mini_object_replace()
+
+2011-11-21 18:56:19 +0100  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/gstutils.c:
+	* libs/gst/base/gstbasesrc.c:
+	* plugins/elements/gstqueue2.c:
+	  Fix printf format compiler warnings on OSX/64bit
+	  https://bugzilla.gnome.org/show_bug.cgi?id=664491
+
+2011-11-21 17:46:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: improve pad tests
+
+2011-11-21 17:43:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix locking order error
+
+2011-11-21 17:43:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	  ghostpad: fix print format
+
+2011-11-21 15:47:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: Add destroy notify to pad functions
+	  Add _full variants of the pad function setters that take a destroy notify.
+	  Make some macros that make the old method name pass NULL to this new
+	  function.
+
+2011-11-21 13:29:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttypefindelement.c:
+	* tests/check/elements/filesrc.c:
+	  pad: Merge pad mode activation functions
+	  Add the pad mode to the activate function so that we can reuse the same function
+	  for all activation modes. This makes the core logic smaller and allows for some
+	  elements to make their activation code easier. It would allow us to add more
+	  scheduling modes later without having to add more activate functions.
+
+2011-11-18 18:08:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-scheduling.txt:
+	* gst/gstquery.c:
+	  docs: update design doc
+	  also fix default alignment value (0 == no-alignment)
+
+2011-11-18 17:27:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstpushsrc.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttypefindelement.c:
+	  query: improve scheduling query
+	  Turns some boolean arguments in the scheduling query to flags, which are easier
+	  to extend and makes the code easier to read.
+	  Make extra methods for configuring and querying the supported scheduling modes.
+	  This should make it easier to add new modes later.
+
+2011-11-18 14:08:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquery.h:
+	  query: move flags closer to buffering query
+
+2011-11-18 13:46:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttypefindelement.c:
+	  pad: add parent to activate functions
+
+2011-11-18 12:35:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gst.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttee.h:
+	  pad: fix scheduling mode enums
+	  GstPadActivateMode -> GstPadMode
+	  GST_PAD_ACTIVATE_* -> GST_PAD_MODE_*
+
+2011-11-17 16:14:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gsttypefindhelper.c:
+	* libs/gst/base/gsttypefindhelper.h:
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: fix for new getrange method signature
+	  gst_type_find_helper_get_range_ext -> gst_type_find_helper_get_range
+
+2011-11-17 12:40:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/check/gstcheck.c:
+	* libs/gst/check/gstcheck.h:
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gstvalve.c:
+	* tests/check/elements/fakesrc.c:
+	* tests/check/elements/fdsrc.c:
+	* tests/check/elements/filesrc.c:
+	* tests/check/elements/funnel.c:
+	* tests/check/elements/identity.c:
+	* tests/check/elements/multiqueue.c:
+	* tests/check/elements/queue.c:
+	* tests/check/elements/tee.c:
+	* tests/check/elements/valve.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/libs/test_transform.c:
+	  pad: add parent to other functions
+	  Add parent to chain, chain_list, getrange and event functions.
+
+2011-11-17 08:21:05 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstcollectpads.c:
+	* libs/gst/base/gstcollectpads.h:
+	* tests/check/libs/collectpads.c:
+	  collectpads: move fields out of reserved and restore padding
+	  Do the 0.11 ABI changes. Add extra fields for destroy_notify and drop the qdata
+	  hack. Rename _add_pad_full to _add_pad and remove the old _add_pad.
+
+2011-11-16 17:49:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	  add parent to internal links
+
+2011-11-16 17:22:56 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttypefindelement.c:
+	* plugins/elements/gstvalve.c:
+	* tests/check/elements/multiqueue.c:
+	  pad: add parent to the query function
+
+2011-11-16 12:36:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstdebugutils.c:
+	* gst/gstelement.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstutils.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	  GstPadFlags: rename flags GST_PAD_* -> GST_PAD_FLAG_*
+
+2011-11-16 12:10:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gstvalve.c:
+	  plugins: remove obsolete parent checks
+
+2011-11-16 12:08:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: keep the parent alive when requested
+	  Add a new pad flag NEED_PARENT that ensures that the parent of a pad is
+	  reffed and not NULL when the event, query and internal links functions
+	  are called.
+	  When a pad is added to an element automatically make sure the NEED_PARENT flag
+	  is enabled.
+
+2011-11-16 10:29:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  don't require parent element to proxy
+
+2011-11-16 10:16:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  update porting doc
+
+2011-11-15 18:16:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	  pad: move query convenience functions together
+	  Move the caps convenience functions to the other query functions.
+
+2011-11-15 17:50:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* plugins/elements/gstqueue2.c:
+	  _query_peer_*() -> _peer_query_*()
+
+2011-11-15 17:40:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstcapsfilter.c:
+	  _accept_caps() -> _query_accept_caps()
+
+2011-11-15 17:11:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/elements/selector.c:
+	  _peer_get_caps() -> peer_query_caps()
+
+2011-11-15 16:46:37 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/manual/advanced-autoplugging.xml:
+	* docs/manual/highlevel-components.xml:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/elements/selector.c:
+	* tests/check/elements/valve.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstutils.c:
+	  pad: _get_caps() -> _query_caps()
+
+2011-11-15 16:16:53 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: fix docs
+
+2011-11-15 16:13:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: fix the proxy functions
+	  fix the proxy functions for query_accept_caps and query_caps to use the pad
+	  forward helper functions which correctly forwards on the internally linked pads.
+
+2011-11-15 16:13:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.h:
+	  pad: improve some flag macros
+
+2011-11-15 16:13:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix debug line
+
+2011-11-15 11:20:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstdebugutils.c:
+	* gst/gstelement.c:
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstobject.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gstvalve.c:
+	* tests/check/elements/multiqueue.c:
+	* tests/check/gst/gstutils.c:
+	* tools/gst-inspect.c:
+	  pad: remove getcaps and use caps query
+	  Remove the getcaps function on the pad and use the CAPS query for
+	  the same effect.
+	  Add PROXY_CAPS to the pad flags. This instructs the default caps event and query
+	  handlers to pass on the CAPS related queries and events. This simplifies a lot
+	  of elements that passtrough caps negotiation.
+	  Make two utility functions to proxy caps queries and aggregate the result. Needs
+	  to use the pad forward function instead later.
+	  Make the _query_peer_ utility functions use the gst_pad_peer_query() function to
+	  make sure the probes are emited properly.
+
+2011-11-14 11:26:17 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	  query: add caps query
+
+2011-11-14 09:57:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstquery.h:
+	  query: remove GST_QUERY_LAST
+
+2011-11-14 10:27:01 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbufferpool.h:
+	* gst/gstmemory.h:
+	* gst/gstmeta.h:
+	* gst/gstpad.h:
+	* gst/gstquery.h:
+	  fix docs
+
+2011-11-12 10:29:30 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	  controller: remove functions to add/remove controlled properties
+	  Make that implizit with attaching/detaching controlsources. This is a lot easier
+	  and has less invalid state (controlled property without control source).
+
+2011-11-13 23:25:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesrc.c:
+	* tools/gst-inspect.c:
+	  plugins, tools: update for get_protocols() return value change
+
+2011-11-13 23:14:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsturi.h:
+	  uri: clean up header files
+	  Tabs to spaces.
+
+2011-11-13 23:07:58 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	* gst/gstelementfactory.h:
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	  urihandler: fix return type of get_protocols()
+
+2011-11-13 20:56:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	* gst/gstelementfactory.h:
+	* gst/gsturi.h:
+	  urihandler: fix return type of _get_uri_type()
+	  Return a GstURIType and not a plain guint.
+
+2011-11-13 17:45:19 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/filesrc.c:
+	  tests: update unit tests for URI handler API changes
+
+2011-11-13 17:44:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfdsink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesrc.c:
+	  elements: update fd + file sources and sinks for GstUriHandler changes
+
+2011-11-13 17:44:06 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gst.c:
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	* win32/common/libgstreamer.def:
+	  urihandler: pass GError argument to gst_uri_handler_set_uri()
+	  Also let gst_uri_handler_set_uri check already if the protocol
+	  is supported, so that not every uri handler has to do that
+	  itself.
+
+2011-11-13 15:51:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	  urihandler: make _get_uri() return a copy
+	  For thread-safety.
+
+2011-11-13 15:37:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	* plugins/elements/gstfilesrc.c:
+	  urihandler: remove "new-uri" signal
+	  No one but filesrc used that API. Should probably be replaced by
+	  requiring an "uri" property instead, and then objects can do a
+	  notify on that. Also removed interface structure padding, it's
+	  not needed.
+
+2011-11-13 13:23:09 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  tools/gst-inspect.c
+
+2011-11-12 16:42:14 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: print current value as default value
+	  Instead of printing separate 'Current' and 'Default' values
+	  (the former obtained via g_object_get() and the latter from
+	  the property GParamSpec), simply print the Current value as
+	  the Default value. This is the right thing to do for almost
+	  all elements and avoids confusion if a subclass of a base
+	  class chooses a different default than the base class.
+
+2011-11-12 14:55:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	* gst/gstparse.c:
+	* gst/gstplugin.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  gst, controller: replace g_list_prepend + reverse with GQueue
+
+2011-11-12 14:04:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  docs: fix typo in buffer docs
+
+2011-11-12 01:54:44 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix caps unref in transform_caps filter subset check
+	  I did not test this, but the code looked very wrong.
+
+2011-11-12 01:51:11 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  query: do not return a ref from parse_accept_caps
+	  Makes this exactly like gst_event_parse_caps. This is what current code
+	  expects, so it fixes some leaks.
+
+2011-11-11 17:17:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	* libs/gst/base/gstbitreader-docs.h:
+	* libs/gst/base/gstbitreader.h:
+	* libs/gst/base/gstbytereader-docs.h:
+	* libs/gst/base/gstbytereader.h:
+	* libs/gst/base/gstbytewriter.h:
+	* libs/gst/base/gstcollectpads.h:
+	* libs/gst/base/gstcollectpads2.h:
+	* libs/gst/check/gstbufferstraw.h:
+	* libs/gst/check/gstcheck.h:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* libs/gst/controller/gstinterpolationcontrolsourceprivate.h:
+	* libs/gst/controller/gstlfocontrolsource.h:
+	* libs/gst/controller/gstlfocontrolsourceprivate.h:
+	* libs/gst/dataprotocol/dataprotocol.h:
+	* libs/gst/net/gstnetaddressmeta.h:
+	* libs/gst/net/gstnetclientclock.h:
+	* libs/gst/net/gstnettimepacket.h:
+	* libs/gst/net/gstnettimeprovider.h:
+	  .h: fix header files
+	  Ensure correct indentation and retab
+	  Make sure all structure have padding
+
+2011-11-11 16:52:41 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.h:
+	* gst/gstbufferpool.h:
+	* gst/gstbus.h:
+	* gst/gstchildproxy.h:
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* gst/gstcontrolsource.h:
+	* gst/gstdatetime.h:
+	* gst/gstelement.h:
+	* gst/gstelementfactory.h:
+	* gst/gstformat.h:
+	* gst/gstghostpad.h:
+	* gst/gstindex.h:
+	* gst/gstindexfactory.h:
+	* gst/gstiterator.h:
+	* gst/gstmemory.h:
+	* gst/gstmeta.h:
+	* gst/gstminiobject.h:
+	* gst/gstobject.h:
+	* gst/gstpad.h:
+	* gst/gstpadtemplate.h:
+	* gst/gstparamspecs.h:
+	* gst/gstpipeline.h:
+	* gst/gstplugin.h:
+	* gst/gstpluginfeature.h:
+	* gst/gstpluginloader.h:
+	* gst/gstpreset.h:
+	* gst/gstregistry.h:
+	* gst/gsttagsetter.h:
+	* gst/gsttask.h:
+	* gst/gsttaskpool.h:
+	* gst/gsttrace.h:
+	* gst/gsttypefindfactory.h:
+	* gst/gstutils.h:
+	* gst/gstvalue.h:
+	  .h: fix header files
+	  Ensure correct indentation and :retab.
+	  Make sure all structures have padding
+	  Fix up some old ABI additions.
+
+2011-11-11 17:04:52 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.c:
+	  docs: fix invalid xml
+
+2011-11-11 10:00:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: avoid < -1 sizes
+
+2011-11-11 01:47:30 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  buffer, memory: make size arguments where -1 is allowed signed
+
+2011-11-11 01:44:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: update .def file for latest API changes
+
+2011-11-10 19:37:28 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/gst/gstreamer.types.in:
+	* docs/random/porting-to-0.11.txt:
+	* gst/Makefile.am:
+	* gst/gst.h:
+	* gst/gstcontroller.c:
+	* gst/gstcontroller.h:
+	* gst/gstcontrolsource.c:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* tests/benchmarks/controller.c:
+	* tests/check/libs/controller.c:
+	* tests/examples/controller/audio-example.c:
+	  controller: merge controller into gstobject
+	  This make the controller even more lightweight (no extra object, no extra lock,
+	  less indirections). For object that don't use the controller the only 'overhead'
+	  is a 3 unused fields in the gst_object structure.
+
+2011-11-10 18:58:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/net/gstnetaddressmeta.c:
+	* libs/gst/net/gstnetaddressmeta.h:
+	  netmeta: avoid using g[u]long in headers
+
+2011-11-10 18:18:24 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	* libs/gst/base/gstbaseparse.c:
+	* plugins/elements/gsttypefindelement.c:
+	* tests/check/libs/adapter.c:
+	  adapter: remove flush from _unmap
+
+2011-11-10 16:02:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: implement a default get_caps function
+	  Don't rely on the return value of a vmethod to trigger the default
+	  implementation but make a real defaul implementation of the method that the
+	  subclass can chain up to.
+
+2011-11-10 14:13:54 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  gstbuffer: remove incorrect assertion
+	  Offset and sizes have no bearing on each other here.
+
+2011-11-10 13:59:28 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* win32/common/libgstcontroller.def:
+	* win32/common/libgstreamer.def:
+	  win32: Update def files
+
+2011-11-10 13:53:33 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbufferpool.c:
+	* gst/gstmemory.c:
+	  gst: More introspection annotations
+
+2011-11-10 13:51:28 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstmemory.c:
+	* gst/gstmemory.h:
+	  gstmemory: Register a GBoxed GType
+	  Allows using it from g-i
+
+2011-11-10 13:50:23 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/Makefile.am:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	  introspection: Add --warn-all to introspection scanner
+	  ... and let's get fixing all those docs !
+
+2011-11-10 13:38:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix vmethods
+	  Make a default implementation of the transform_caps vmethod so that subclasses
+	  can call into it.
+	  Make a default implementation of transform_size.
+	  Avoid doing something in the vmethod trampoline.
+
+2011-11-10 13:37:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/libs/test_transform.c:
+	  tests: only override when != NULL
+	  Only override the methods in the unit tests when != NULL otherwise we might
+	  override the default implementation.
+
+2011-11-10 13:36:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstpushsrc.c:
+	* libs/gst/base/gstpushsrc.h:
+	  pushsrc: make alloc method a vmethod
+
+2011-11-10 12:33:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: reorder vmethod according to .h file
+
+2011-11-10 12:33:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.h:
+	  basesink: improve comments
+
+2011-11-10 12:33:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: don't do things in the vmethod trampoline
+
+2011-11-10 12:09:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	  element: add a default set_clock implementation
+	  Add a default set_clock implementation and avoid doing work in the vmethod
+	  trampoline. This requires subclasses to chain up.
+
+2011-11-10 12:08:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: don't do anything in the vmethod trampoline
+	  Avoid doing stuff in the vmethod trampoline, just let the default
+	  implementation of the method take care of things.
+
+2011-11-10 12:08:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: fix some docs
+
+2011-11-10 11:42:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	  adapter: use gpointer for return types
+
+2011-11-10 11:12:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  porting: update doc
+
+2011-11-10 10:58:42 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/gst/gstpad.c:
+	* tools/gst-inspect.c:
+	  pad: remove GstPadFixateCapsFunction
+	  The fixate caps function was not used externally and we have vmethods in the
+	  base classes where it is needed.
+	  Update some docs.
+	  simplify some fixate functions in the base classes. Also pass the untruncated
+	  caps to the vmethod.
+
+2011-11-09 17:43:49 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: don't store events on flushing pads
+	  check the flushing state of the pad before storing the event.
+
+2011-11-09 17:36:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* tools/gst-inspect.c:
+	  pad: make an ACCEPT_CAPS query
+	  Replace the acceptcaps function with a query.
+
+2011-11-09 17:25:30 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* plugins/elements/gsttypefindelement.c:
+	  pad: refuse events in flushing
+	  when we are flushing, don't store the event on the pad but simply return FALSE.
+	  Don't deactivate the srcpad, we need it to be active in order to push the
+	  caps. Downstream can change the scheduling mode of an active pad.
+
+2011-11-09 17:19:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.h:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	  element: remove more query_types
+
+2011-11-09 11:05:59 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* Android.mk:
+	* tests/examples/controller/Makefile.am:
+	  Android: build audio controller example
+	  Add buildsystem hooks for building the audiocontroller example
+	  with the NDK.
+	  Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+2011-11-09 12:21:17 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: pad: add tests for sticky caps handling
+	  test_sticky_caps_flushing is currently failing.
+
+2011-11-09 12:12:26 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* common:
+	  update common
+
+2011-11-09 12:03:28 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-11-09 12:02:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  porting: update porting doc
+
+2011-11-09 11:47:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstghostpad.c:
+	* gst/gstghostpad.h:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasetransform.c:
+	* tools/gst-inspect.c:
+	  remove query types
+	  It was not really useful
+
+2011-11-08 18:09:28 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	  gstvalue: consider lists and ranges equal if they hold the same set
+	  This fixes caps operations when different elements advertise some
+	  of their caps' properties differently (eg, for audio channels, either
+	  a range from 1 to 2, or a list of 1 and 2).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663643
+
+2011-11-09 11:24:26 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/gst/gststructure.c:
+	  tests: add a subset test for structure
+
+2011-11-09 11:22:36 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	  pad: add more queries
+	  Add more query functions to prepare for doing more with queries
+
+2011-10-28 13:39:58 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/manual/advanced-dparams.xml:
+	  docs: also fix wrong call order for controller in manual
+
+2011-11-08 17:32:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-probes.txt:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: install query probes
+	  Fire query probes according to updated design doc.
+
+2011-11-08 15:51:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.h:
+	  pad: remove lock/unlock_full versions of stream-lock
+
+2011-11-08 15:48:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.h:
+	  pad: add defines for query probes
+
+2011-11-08 13:30:18 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  pad: fix unit test
+
+2011-11-08 13:13:55 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: update docs
+
+2011-11-08 13:02:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  test: port to 0.11
+
+2011-11-08 12:54:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstelement.h
+	  gst/gstghostpad.c
+	  gst/gstminiobject.c
+
+2011-11-08 12:47:33 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-probes.txt:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	  pad: add pull mode probes
+	  Allow probes to inspect the offset and size from a probe in pull mode and allow
+	  the probe to modify the buffer.
+	  Update design doc a little.
+
+2011-11-08 12:22:21 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* tests/check/gst/gstpad.c:
+	  tests: pad: add test to verify flushing behaviour
+	  Seems like a trivial case, but this was actually broken in 0.11 recently.
+
+2011-11-08 11:04:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/check/gstbufferstraw.c:
+	* libs/gst/check/gstconsistencychecker.c:
+	* tests/check/elements/selector.c:
+	* tests/check/generic/sinks.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/libs/basesrc.c:
+	* tests/check/pipelines/queue-error.c:
+	  pad: Add GstPadProbeInfo
+	  Make a new GstPadProbeInfo structure and pass this in the probe callback. This
+	  allows us to add more things later and also allow the callback to replace or
+	  modify the passed object.
+
+2011-11-08 08:26:29 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstevent.c:
+	  event: log creation of qos events at LOG level instead at INFO
+
+2011-11-07 16:57:37 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbuffer.c:
+	  buffer: improve parameter docs
+
+2011-11-08 00:32:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstelement.h:
+	* gst/gstghostpad.c:
+	* gst/gstminiobject.c:
+	* gst/gststructure.c:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesrc.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	  docs: fix Since: markers for API added after 0.10.35
+
+2011-11-08 00:15:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: update .def file for new API
+	  API: gst_caps_is_strictly_equal()
+
+2011-11-07 17:17:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstvalue.c
+
+2011-11-07 17:04:13 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/check/gstconsistencychecker.c:
+	* tests/check/elements/selector.c:
+	* tests/check/generic/sinks.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/libs/basesrc.c:
+	* tests/check/pipelines/queue-error.c:
+	  pad: rework pad probes
+	  Make a separate cookie to detect chancges in the list of probes and keeping
+	  track of what hooks have been invoked yet.
+	  Remove the requirement to have probes on srcpads in push mode and sinkpads in
+	  pull mode.
+	  Add some more debug.
+	  Keep track of what callbacks got executed. If no callback is called and we are a
+	  blocking pad, let the item pass. This allows you to block pads on selected
+	  items only.
+	  Explicitly have an UPSTREAM and DOWNSTREAM PadProbeType. This allows you to only
+	  block the pad on upstream or downstream items.
+	  Add convenience macros to only block on downstream/upstream items.
+
+2011-10-27 12:59:57 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  gstcaps: remove unneeded use of gint64
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-10-27 12:24:13 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	* gst/gstvalue.c:
+	  gstvalue: quicker version of intersection when we do not need the result
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-10-27 12:02:43 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  gststructure: simplify return statement in gst_structure_can_intersect
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-10-27 11:41:30 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  gststructure: early out when we know a value cannot be a subset
+	  If two values can be ordered, but are unequal, they are
+	  necessarily distinct, thus one cannot be a subset of the other.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-10-27 10:35:53 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	* gst/gstvalue.c:
+	  gstvalue: quicker test for substraction emptiness
+	  When we do not care about the actual resulting set,
+	  but only whether it is empty of not, we can skip a fair bit
+	  of GValue juggling.
+	  Add a function that does so, since we cannot just pass NULL
+	  to the existing API as it may be part of the API contract.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-10-27 09:45:41 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  gststructure: rejig test ordering for speed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662777
+
+2011-11-07 12:28:22 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: mention more api changes in the porting guide
+
+2011-11-07 10:40:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: fix compilation
+
+2011-11-07 10:01:27 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbasetransform.c
+
+2011-11-06 00:07:10 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstcontroller.c:
+	  Revert "controller: fix g_return statement"
+	  This reverts commit 593d2b297bd7b5ce9dbcdf2f1ae2b7624d94d6ae.
+	  gst_controller_set_disabled () returns a void.
+
+2011-11-05 12:10:29 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove refs to removed API
+
+2011-11-04 21:37:45 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontroller.c:
+	* gst/gstobject.c:
+	  controller: the object needs a ref to the controller for the convenience api
+	  Add a hack to ensure the object will have a ref to the controller once we
+	  create it. Fixes the audio example (that uses the controller api directly).
+
+2011-11-04 21:37:21 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontroller.c:
+	  controller: fix g_return statement
+
+2011-11-04 21:35:55 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstcontroller.c:
+	  controller: logging tweaks
+	  Don't log in _new before we have the log category. Use _OBJECT variants.
+
+2011-11-05 01:27:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstcontroller.c:
+	* gst/gstobject.c:
+	  gst: fix some compiler warnings
+	  gstobject.c: In function 'gst_object_has_active_automation':
+	  gstobject.c:1076:3: error: 'return' with no value, in function returning non-void
+	  gstcontroller.c: In function 'gst_controller_is_active':
+	  gstcontroller.c:509:3: error: 'return' with no value, in function returning non-void
+
+2011-11-04 20:50:58 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstcontroller.c:
+	* gst/gstcontroller.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	  controller: add api to check for active controllers (needed for e.g. volume)
+
+2011-11-04 20:32:32 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstobject.h:
+	  controller: remove obsolete comments from api transition
+
+2011-11-04 14:00:24 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/check/libs/controller.c:
+	* tests/check/libs/gstlibscpp.cc:
+	  controller: fix tests after move and API changes
+
+2011-11-04 11:42:34 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* tests/benchmarks/controller.c:
+	* tests/examples/controller/audio-example.c:
+	* tools/gst-inspect.c:
+	  controller: port to new controller api
+
+2011-11-04 11:39:25 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/gst/gstreamer.types.in:
+	* docs/libs/Makefile.am:
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/libs/gstreamer-libs.types:
+	  controller: update docs for controller move
+
+2011-11-04 11:34:11 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/Makefile.am:
+	* gst/gst.h:
+	* gst/gstclock.h:
+	* gst/gstcontroller.c:
+	* gst/gstcontroller.h:
+	* gst/gstcontrolsource.c:
+	* gst/gstcontrolsource.h:
+	* gst/gstobject.c:
+	* gst/gstobject.h:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/controller/gstcontroller.c:
+	* libs/gst/controller/gstcontroller.h:
+	* libs/gst/controller/gstcontrollerprivate.h:
+	* libs/gst/controller/gstcontrolsource.c:
+	* libs/gst/controller/gstcontrolsource.h:
+	* libs/gst/controller/gsthelper.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.h:
+	* libs/gst/controller/gstlfocontrolsource.c:
+	* libs/gst/controller/gstlfocontrolsource.h:
+	* libs/gst/controller/lib.c:
+	  controller: move to core/gstobject
+	  Move the controller to gstobject as a simple delegate. The controller and
+	  controlsource are not classes in core. The controlsources stay separate as a lib
+	  for now. This way we can avoid the qdata lookups.
+	  Also remove controller_init(). There is no more need to link to controller for
+	  elements.
+	  Also sanitize the API. We now have functions to add properties like we had
+	  methods to remove that. That avoids then ref count hacks we had in _new.
+
+2011-11-03 18:23:13 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: small clarification
+
+2011-11-03 18:22:16 +0100  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: missing rename iface->interface in the docs
+
+2011-11-04 19:17:06 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: fix the iterator copy
+
+2011-11-04 19:11:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstbin.c
+
+2011-11-03 15:36:59 +0000  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Only use the cached transform on strictly equal caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=663333
+
+2011-11-03 15:35:32 +0000  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: Add gst_caps_is_strictly_equal
+
+2011-11-04 18:47:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/generic/sinks.c:
+	* tests/check/gst/gstevent.c:
+	  tests: fix tests
+	  Since blocks are not on both directions, we need to check in the block callback
+	  if we are not blocking on an upstream event and let it pass.
+
+2011-11-04 18:19:14 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-probes.txt:
+	* gst/gstpad.c:
+	  pad: make probes work on all pads
+	  fixes #644907
+
+2011-10-15 22:52:25 +0300  Peteris Krisjanis <pecisk@gmail.com>
+
+	* gst/gstclock.h:
+	  introspection: add Value annotations for GST_SECOND, GST_MSECOND, GST_USECOND, GST_NSECOND constants
+	  gobject-introspection won't parse them properly otherwise.
+	  Still need to force the right type though (either GstClockTime or
+	  guint64), but Type: xyz has no effect for me here, so someone with
+	  a newer g-i needs to test this.
+	  Some other defines are also missing, e.g. GST_CLOCK_TIME_NONE.
+
+2011-11-04 00:03:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: suppress unused variable warnings if gst debugging is disabled
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662952
+
+2011-11-04 00:02:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	  configure: fix typo around GLIB_EXTRA_CFLAGS in GST_ALL_CXXFLAGS
+
+2011-11-03 23:08:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue.h:
+	  queue: use statically allocated GQueue
+
+2011-11-03 22:58:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: use statically allocated GQueue
+	  Because we can.
+
+2011-11-03 22:51:57 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: use flags enum instead of guint in structure
+
+2011-11-03 08:47:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	  queue2: use statically allocated GQueue
+
+2011-11-03 17:49:45 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttee.h:
+	* tests/check/elements/funnel.c:
+	* tests/check/elements/multiqueue.c:
+	* tests/check/elements/selector.c:
+	* tests/check/elements/tee.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/pipelines/parse-launch.c:
+	  fix request pad
+	  Make all request pads take _%u in the template.
+	  Fix up unit tests.
+
+2011-11-03 16:49:48 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstnet.def:
+	  def: update defs
+
+2011-11-03 16:46:35 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* common:
+	* libs/gst/net/Makefile.am:
+	* libs/gst/net/gstnetaddressmeta.c:
+	* libs/gst/net/gstnetaddressmeta.h:
+	  net: add net address metadata
+
+2011-11-03 14:26:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/net/gstnettimeprovider.c:
+	* libs/gst/net/gstnettimeprovider.h:
+	  nettime: clean up header
+
+2011-11-03 14:14:54 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gsttask.c:
+	  task: don't use lock/unlock_full
+
+2011-11-03 11:30:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstghostpad.c
+
+2011-11-02 12:37:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: small cleanup
+
+2011-10-25 17:26:50 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/gstghostpad.c:
+	* tests/check/gst/gstghostpad.c:
+	  ghostpad: Don't cache internal proxy pad target
+	  The internal proxy pad target is simply a cache of the internal proxy pad
+	  peer. This patch uses the well implement GstPad peer handling to obtain the
+	  target. This fixes issues with target not being set in both direction when
+	  two ghostpads are linked together (empty bin).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=658517
+
+2011-11-02 12:06:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* libs/gst/base/gstbaseparse.c:
+	* tests/check/gst/gstutils.c:
+	* win32/common/libgstreamer.def:
+	  utils: remove _found_tags_ API
+	  remove gst_element_found_tags() and gst_element_found_tags_for_pad(), they are
+	  nothing more than a wrapper around gst_pad_push_event()
+
+2011-11-02 10:29:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  common
+	  configure.ac
+
+2011-10-30 21:33:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: improve docs
+
+2011-10-29 09:43:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	  event: make GstSegment argument const
+
+2011-10-29 09:41:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove metatiming from docs
+
+2011-10-29 09:26:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstpad.c:
+	* gst/gsttask.c:
+	* gst/gsttask.h:
+	* tests/check/gst/gstmessage.c:
+	* tests/check/gst/gsttask.c:
+	* win32/common/libgstreamer.def:
+	  task: api cleanup
+	  gst_task_create() -> gst_task_new()
+
+2011-10-29 09:02:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstbufferpool.c:
+	* gst/gstcaps.c:
+	* gst/gstelement.c:
+	* gst/gstevent.c:
+	* gst/gstmessage.c:
+	* gst/gstquery.c:
+	* gst/gststructure.c:
+	* gst/gststructure.h:
+	* gst/gsttaglist.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstiterator.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	* win32/common/libgstreamer.def:
+	  structure: cleanup API
+	  gst_structure_empty_new() -> gst_structure_new_empty()
+	  gst_structure_id_empty_new() -> gst_structure_new_id_empty()
+	  gst_structure_id_new() -> gst_structure_new_id()
+
+2011-10-29 08:38:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmeta.c:
+	* gst/gstmeta.h:
+	  meta: remove timing metadata
+	  This is now on buffers by default
+
+2011-10-29 08:24:12 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstbufferlist.c:
+	* gst/gstbufferlist.h:
+	* gst/gstpad.c:
+	* libs/gst/base/gstbasesink.c:
+	* plugins/elements/gstmultiqueue.c:
+	* tests/check/gst/gstbufferlist.c:
+	* win32/common/libgstreamer.def:
+	  bufferlist: clean up API
+	  gst_buffer_list_len() -> gst_buffer_list_length()
+	  gst_buffer_list_sized_new() -> gst_buffer_list_new_sized()
+
+2011-11-01 14:17:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	  adapter: simplify gst_adapter_take_list()
+	  Use a stack-allocated GQueue to assemble our GList.
+
+2011-11-01 10:56:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  docs: mention GstActivateMode rename in porting doc
+
+2011-11-01 00:25:02 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gst.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	* plugins/elements/gsttee.c:
+	* plugins/elements/gsttee.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/libgstreamer.def:
+	  pad: rename GstActivateMode to GstPadActivateMode
+	  These might be useful:
+	  sed -i -e 's/GstActivateMode/GstPadActivateMode/g' `git grep GstActivateMode | sed -e 's/:.*//' | sort -u`
+	  sed -i -e 's/GST_ACTIVATE_/GST_PAD_ACTIVATE_/g'    `git grep GST_ACTIVATE_   | sed -e 's/:.*//' | sort -u`
+
+2011-11-01 00:13:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/design/part-probes.txt:
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gst.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/check/gstbufferstraw.c:
+	* libs/gst/check/gstconsistencychecker.c:
+	* tests/check/elements/selector.c:
+	* tests/check/generic/sinks.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gstpipeline.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/libs/basesrc.c:
+	* tests/check/pipelines/queue-error.c:
+	* win32/common/gstenumtypes.c:
+	* win32/common/libgstreamer.def:
+	  pad: rename GstProbeType and GstProbeReturn to GstPadProbe{Type,Return}
+	  Better now than later in the cycle. These might come in handy:
+	  sed -i -e 's/GstProbeReturn/GstPadProbeReturn/g'   `git grep GstProbeReturn  | sed -e 's/:.*//' | sort -u`
+	  sed -i -e 's/GST_PROBE_/GST_PAD_PROBE_/g'          `git grep GST_PROBE_      | sed -e 's/:.*//' | sort -u`
+	  sed -i -e 's/GstProbeType/GstPadProbeType/g'       `git grep GstProbeType    | sed -e 's/:.*//' | sort -u`
+
+2011-10-31 23:32:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* win32/common/libgstreamer.def:
+	  taglist: remove gst_tag_list_get_*long*()
+	  No one uses this or should ever need to use it, since
+	  the size is architecture-specific anyway. If normal
+	  integers don't do, one should use 64-bit integers.
+
+2011-10-31 19:04:20 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  Update .def file for removed/changed API
+
+2011-10-31 19:23:41 +0100  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix crash/warning in find_transform when pad is unlinked
+	  Looks like the revert conflict in commit a44271 was resolved incorrectly.
+
+2011-10-31 17:45:44 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	* configure.ac:
+	  configure: make GLIB_EXTRA_CFLAGS overwritable
+	  Make 'make GLIB_EXTRA_CFLAGS=...' work.
+
+2011-10-31 14:16:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/Makefile.am:
+	* gst/gstfilter.c:
+	* gst/gstfilter.h:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* gst/gstregistry.c:
+	  filter: remove gst_filter_run() and deprecated filter func
+	  If someone wants to resurrect this, please use a less
+	  generic name space for it.
+
+2011-10-31 14:03:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+	  Conflicts:
+	  gst/gstpluginfeature.c
+
+2011-10-30 10:26:11 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/random/porting-to-0.11.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* gst/gsttagsetter.c:
+	* libs/gst/base/gstbaseparse.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstmessage.c:
+	* tests/check/gst/gsttag.c:
+	* tests/check/gst/gsttagsetter.c:
+	* tests/check/gst/gstutils.c:
+	  taglist: rename _new() to _new_empty() and new_full*() to new*()
+
+2011-10-30 21:54:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstfilter.c:
+	* gst/gstfilter.h:
+	  filter: deprecate gst_filter_run()
+	  It's not really used outside of core at all, and has
+	  serious namespace issues. If anyone feels the need to
+	  revive this one, please use a less generic name space.
+	  API: deprecate gst_filter_run()
+	  API: deprecate GstFilterFunc
+
+2011-10-30 21:39:36 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  registry: don't use soon-to-be-deprecated gst_filter_run()
+	  Lines-of-code savings are negligible anyway.
+
+2011-10-30 21:21:59 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* gst/gstregistry.c:
+	* tests/check/gst/struct_x86_64.h:
+	  pluginfeature: deprecate gst_plugin_feature_type_name_filter()
+	  It's only used internally anyway and the helper struct
+	  has namespace issues.
+	  API: deprecated gst_plugin_feature_type_name_filter()
+	  API: deprecated GstTypeNameData
+
+2011-10-30 10:05:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: make opaque
+	  Hide the fact that it's just a GstStructure from the API. We
+	  may want to change this in future (e.g. to add refcounting).
+	  Also, it caused problems for bindings (though that's mostly
+	  the way we typedefed it to GstStructure).
+
+2011-10-30 10:00:28 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-10-30 09:58:16 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* tests/check/gst/gsttag.c:
+	* win32/common/libgstreamer.def:
+	  taglist: add to_string and new_from_string functions
+	  We want to make GstTagList opaque and not have people use
+	  GstStructure API on it.
+	  API: gst_tag_list_to_string()
+	  API: gst_tag_list_new_from_string()
+
+2011-10-30 09:31:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into 0.11
+
+2011-10-30 01:46:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.c:
+	  taglist: avoid pointless tag name -> quark lookups
+	  We never get a tag name quark from a caller, it's always a
+	  string, from which we'll try to look up our tag info in the
+	  hash table, so change the hash table key from quark to string.
+	  Avoids a bunch of pointless string => quark lookup in the
+	  global quark table. We need to do an extra string => quark
+	  conversion now when we copy a taglist, but in that case we're
+	  in a slow path anyway.
+
+2011-10-30 00:44:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	* tests/check/gst/gsttag.c:
+	* win32/common/libgstreamer.def:
+	  taglist: add gst_tag_list_is_equal()
+	  API: gst_tag_list_is_equal()
+
+2011-10-29 23:52:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: identical structures are definitely equal
+
+2011-10-29 20:06:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttaglist.h:
+	  taglist: fix string for GST_TAG_ARTIST_SORTNAME
+	  For historical reasons it was mapped to a musicbrainz prefix,
+	  but it's not really musicbrainz-specific at all.
+
+2011-10-29 19:59:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstelementfactory.h:
+	  elementfactory: move private functions for registry to private header
+
+2011-10-28 21:40:47 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix invalid access to unreffed allocation query
+
+2011-10-28 16:45:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: fix docs some more
+
+2011-10-28 16:27:43 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbasetransform.c
+
+2011-10-28 16:08:37 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstsegment.c:
+	  tests: fix segment check
+
+2011-10-28 15:52:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstsegment.c:
+	* gst/gstsegment.h:
+	  segment: remove GST_SEEK_TYPE_CUR
+
+2011-10-28 15:52:41 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: improve docs
+
+2011-10-28 13:02:26 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbytewriter.h:
+	  bytewriter: Add padding
+
+2011-10-28 13:02:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbitreader.h:
+	  bitreader: Add padding
+
+2011-10-28 13:02:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbytereader.h:
+	  bytereader: Add padding
+
+2011-10-28 12:31:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	  porting: update
+
+2011-10-28 12:28:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/libs/gstreamer-libs-sections.txt:
+	  docs: update
+
+2011-10-28 12:27:43 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  defs: update for new api
+
+2011-10-28 12:17:58 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	  check: also debug the DTS
+
+2011-10-28 12:16:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstadapter.c:
+	* libs/gst/base/gstadapter.h:
+	  adapter: use pts/dts on buffers
+
+2011-10-28 12:24:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcompat.h:
+	  compat: add timestamp compat defines
+
+2011-10-28 12:15:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* gst/gstbufferpool.c:
+	* gst/gstinfo.c:
+	  buffer: add pts/dts to buffers
+
+2011-10-28 11:53:32 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Also fush the cache when changing the upstream caps suggestion
+
+2011-10-28 11:50:23 +0200  Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Add debug output when returning a cached transform
+
+2011-10-28 11:33:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-10-28 11:30:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  coolectpads2: port to 0.11
+
+2011-10-28 11:13:55 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-10-28 10:54:19 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: Fix refcount handling if a buffer was dropped due to clipping
+
+2011-10-28 10:37:21 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	* win32/common/libgstbase.def:
+	  collectpads2: Merge the clip and prepare_buffer function into one
+
+2011-10-28 10:17:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  collectpads2: Merge clipping API from old collectpads
+
+2011-10-28 09:19:29 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: make default query function name show up in gst-inspect
+
+2011-09-27 15:48:52 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: avoid hanging in case of sparse newsegment events
+	  ... in the extent that a non-waiting pad (so indicated by newsegment)
+	  turns out to provide the best buffer, which is then forced to waiting
+	  for book-keeping purposes, but that should only be temporary.
+	  See bug #415754.
+
+2011-10-28 09:38:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstcollectpads2.c:
+	  collectpads2: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
+
+2011-10-28 09:35:50 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	  collectpads2: Add to the documentation
+
+2011-10-28 09:26:11 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  win32: Add new collectpads2 API
+
+2011-10-28 09:18:55 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/gstcollectpads2.c:
+	* libs/gst/base/gstcollectpads2.h:
+	  base: Add collectpads2
+	  This handles muxing of sparse/subtitle streams and has
+	  lots of cleanup. Still missing is special support for
+	  live streams but this can be added later without breaking
+	  API/ABI.
+	  Based on the version from the videomixer plugin.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=415754
+
+2011-10-27 17:09:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/elements/funnel.c:
+	* tests/check/elements/selector.c:
+	* tests/check/elements/tee.c:
+	* tests/check/gst/gstbufferlist.c:
+	* tests/check/gst/gstelementfactory.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/libs/transform1.c:
+	* tests/check/pipelines/queue-error.c:
+	  tests: fix compilation
+
+2011-10-27 17:09:34 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: update
+
+2011-10-27 17:09:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	  caps: add empty_simple variants
+
+2011-10-27 16:51:16 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstiterator.c:
+	* tests/check/gst/gststructure.c:
+	* tests/check/pipelines/simple-launch-lines.c:
+	  tests: fix compilation
+
+2011-10-27 14:56:24 +0100  Johan Boulé <bohan.gnome@retropaganda.info>
+
+	* gst/gstcaps.h:
+	  caps: use G_GNUC_NULL_TERMINATED for gst_caps_new_simple() and gst_caps_new_full()
+	  If you get warnings, use gst_caps_new_empty().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=343346
+
+2011-10-27 15:27:19 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbasetransform.c
+
+2011-10-27 13:25:08 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gststructure.h:
+	  structure: use G_GNUC_NULL_TERMINATED for gst_structure_new()
+	  If you get a warning, use gst_structure_empty_new().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=343346
+
+2011-10-27 23:08:14 +1100  Jan Schmidt <thaytan@noraisin.net>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fix refcount leak
+	  Don't leak peercaps and a ref to the basetransform when returning
+	  the cached caps.
+
+2011-10-27 10:38:10 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstcontroller.c:
+	  controller: fix wrong order of calls in the docs.
+
+2011-10-26 12:23:07 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstevent.c:
+	  event: clarify docs for step event
+
+2011-10-18 23:19:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  registry: add support for GST_REGISTRY_REUSE_PLUGIN_SCANNER=no
+	  This will make sure we spawn a new plugin scanner helper for each plugin
+	  to be introspected, which helps with making sure we don't load too many
+	  shared objects (libs, plugins) at the same time on systems where there
+	  is a hard limit like on Android.
+	  A better version might re-use the scanner for up to N times, though
+	  it's not clear whether that would actually improve things dramatically.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662091
+
+2011-10-21 10:23:04 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/gstcaps.c:
+	  caps: No need to require writable caps for _append/_merge second caps
+	  The second caps ownership is transfered, no need to require it to
+	  be writable from the caller function. Instead, _append and _merge
+	  make it writable on their own.
+	  Discovered because of an assertion on encoding-profile.c in
+	  _get_input_caps using _merge but not passing writable caps.
+
+2011-10-21 14:20:40 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gsttagsetter.c:
+	* gst/gsttagsetter.h:
+	* tests/check/gst/struct_arm.h:
+	* tests/check/gst/struct_hppa.h:
+	* tests/check/gst/struct_i386.h:
+	* tests/check/gst/struct_ppc32.h:
+	* tests/check/gst/struct_ppc64.h:
+	* tests/check/gst/struct_sparc.h:
+	* tests/check/gst/struct_x86_64.h:
+	  interfaces: clean up the use of iface and class/klass
+
+2011-10-21 11:15:11 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/random/porting-to-0.11.txt:
+	* docs/random/status-0.11-14-jun-2011.txt:
+	* gst/gstquery.c:
+	  docs: spelling and formatting fixes
+
+2011-10-21 10:52:46 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	  Merging origin/master
+	  Conflicts:
+	  gst/gstbin.c
+	  gst/gstbus.c
+	  gst/gstdebugutils.c
+	  gst/gstpad.c
+	  libs/gst/base/gstbaseparse.c
+	  libs/gst/base/gstbasesrc.c
+
+2011-10-20 16:59:01 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: Fix documentation, it's pre_push_frame and not pre_push_buffer
+
+2011-10-20 14:02:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: cache transformed caps where appropriate
+	  Speeds up negotiation a fair bit on a contrived pipeline
+	  with a dozen colorspace conversions.
+	  Hopefully clears out the cache every time it ought to.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=662291
+
+2011-10-20 10:45:30 -0300  Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+	* Android.mk:
+	  Fix broken android building due to name change in 01d87250a845e55d6
+
+2011-10-20 08:31:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  basebarse: Add detect vfunc to allow subclasses to do format detection before anything else
+	  API: GstBaseParseClass::detect()
+	  This is called with the first buffers until the subclass has finished detection
+	  and only afterwards the original buffers are handled as before. The vfunc allows
+	  detection of the stream format without breaking the upstream framing.
+
+2011-10-20 08:57:57 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstpad.c:
+	  pad: not only describe conditions in the docs, also check them in the code
+	  When blocking pads, check if the pad is in the rigt direction. Log some info
+	  for the developer and return FALSE, instead of just locking up.
+
+2011-10-19 23:07:46 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstpluginfeature.h:
+	* gst/gstregistry.c:
+	* tests/check/generic/states.c:
+	* tests/check/gst/gstregistry.c:
+	  Revert gst_plugin_feature_get_name to const string return
+	  Returning a newly allocated string makes no sense. It's unexpected for a
+	  getter, and also this behaves differently in 0.10, so it would make future
+	  merges harder.
+	  Except for these two places here in core which were updated for the new
+	  semantic, the return value is getting leaked all over the place.
+
+2011-10-19 12:12:36 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstobject.c:
+	  gstobject: Add (skip) annotation to gst_object_ref_sink
+
+2011-10-19 11:59:29 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstiterator.c:
+	  gstiterator: Add skip annotation for creating GstIterator
+	  Not really useful for bindings
+
+2011-08-29 13:56:19 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gstpoll.c:
+	  introspection: Skip gst_poll apis
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:55:13 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gstvalue.c:
+	  introspection: Skip GType and GValue transform apis
+	  These do not make sense to expose to language bindings
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:54:21 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gst.c:
+	  introspection: Skip gst_init_get_option_group
+	  It uses GOptionGroup which is not wrappable
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:53:39 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gstbufferpool.c:
+	* gst/gstparamspecs.c:
+	  introspection: Add missing annotations
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:52:26 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gstbus.c:
+	  introspection: Rename gst_bus_add_watch_full to gst_bus_add_watch
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:50:40 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gstindex.h:
+	  Sync documentation arguments
+	  The introspection scanner warns if the header and the source
+	  uses mismatching parameter names.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-08-29 13:50:02 -0300  Johan Dahlin <johan@gnome.org>
+
+	* gst/gststructure.c:
+	* gst/gststructure.h:
+	* win32/common/libgstreamer.def:
+	  Add gst_structure_get_type
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657640
+
+2011-10-18 19:21:58 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/gstmessage.c:
+	  message: protect against null message sources
+	  Message sources can be null, check if it is before trying to
+	  access its name.
+
+2011-10-18 08:48:37 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add since doc to new getcaps function
+
+2011-10-18 14:08:19 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbin.c:
+	* gst/gstbus.c:
+	* gst/gstmessage.c:
+	* libs/gst/base/gstbasesink.c:
+	  logging: more logging and prefer human readable details over memory locations
+
+2011-10-18 14:05:37 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstdebugutils.c:
+	  debugutils: improve display of ghost- and proxypads
+	  Handle virtual links between ghost and proxypads when iterating pads instead of
+	  when linking. Besides using less code this provides a more accurate picture.
+
+2011-10-18 13:54:52 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/controller/gstcontroller.c:
+	* libs/gst/controller/gsthelper.c:
+	* libs/gst/controller/gstinterpolationcontrolsource.c:
+	  controller: Add g-i annotations and remove "Since:" markers
+
+2011-10-17 14:42:08 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add getcaps function
+	  Adds a getcaps function to the sink pad to make parsers propagate
+	  downstream caps restrictions to upstream.
+	  The pipeline "audiotestsrc num-buffers=100 ! faac ! aacparse !
+	  "audio/mpeg, version=(int)4, stream-format=(string)adts" ! filesink"
+	  wouldn't work because aacparse wouldn't propagate the adts restriction
+	  upstream to faac.
+	  This patch adds a default getcaps to the sink pad to simply proxy
+	  downstream caps and also adds a 'get_sink_caps' function pointer
+	  to GstBaseParseClass for subclasses that need more refined getcaps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=661874
+
+2011-10-18 12:39:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: also update the stream time
+
+2011-10-18 10:58:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Fix handling of queued frames
+	  gst_base_parse_push_frame() already frees the frame, no need to
+	  do it another time again.
+
+2011-10-17 21:38:56 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* tests/check/elements/selector.c:
+	  tests: fix padtemplate leak in selector test
+	  In 0.11, gst_pad_get_pad_template returns a reference.
+
+2011-10-17 21:37:17 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: fix buffer/event leak when pad is flushing
+	  Apparently this got lost while refactoring probes.
+
+2011-10-17 17:00:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: remove the memory from the tmpbuf
+	  We use a tmpbuf to hold a temporary pointer to the adapter memory. We need to
+	  remove that memory when we no longer need it.
+
+2011-10-17 13:55:35 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstcaps.c:
+	  caps: fix race condition and memory leak in gst_static_caps_get
+	  This was leaking the PtrArray from caps->priv, as set up by the other call to
+	  gst_caps_init. Also, the thread safety issue presented in the comment above was
+	  not taken care of anymore. We now zero the refcount again when publishing the
+	  structure.
+	  Fixes #661629.
+
+2011-10-17 09:28:43 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.h:
+	  gstcheck: Make ASSERT_MINI_OBJECT_REFCOUNT more useful
+	  knowing which miniobject failed helps us locate it in debug logs
+
+2011-10-17 09:28:24 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.c:
+	  gstcheck: Make _check_buffer_data a bit more verbose
+
+2011-10-17 09:27:49 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/gst/gstregistry.c:
+	  check: Don't leak the feature name
+
+2011-10-17 09:27:26 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  gstregistry: Don't leak feature name
+
+2011-10-16 21:12:07 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: give watch source a name
+	  Give our GSource a meaningful name. Source names can be
+	  used for debugging and profiling, for example with
+	  systemtap or gdb.
+
+2011-10-14 09:35:09 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  gstbuffer: Add transfer annotations for gst_buffer_join()
+
+2011-10-16 17:42:22 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-16 17:03:27 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-16 17:00:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update porting list
+
+2011-10-16 14:45:03 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbus.c:
+	* gst/gstclock.c:
+	* gst/gstindex.c:
+	* gst/gstindexfactory.c:
+	* gst/gstregistry.c:
+	* gst/gstsystemclock.c:
+	* gst/gsttypefindfactory.c:
+	  fix more parent_class
+
+2011-10-16 14:20:33 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstevent.h
+
+2011-10-16 14:17:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpadtemplate.c:
+	  padtemplate: clean up parent_class
+
+2011-10-14 12:57:38 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: clean up parent_class handling
+
+2011-10-14 09:35:09 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  gstbuffer: Add transfer annotations for gst_buffer_join()
+
+2011-10-14 09:27:38 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  gst-inspect: Don't leak plugin feature list
+
+2011-10-13 17:33:06 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbus.c:
+	  bus: fix typo in the docs
+
+2011-10-13 16:48:02 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstdebugutils.c:
+	  debugutils: show if an element is state-locked
+
+2011-10-13 16:42:10 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/gstbin.c:
+	  logging: use _OBJECT variants more
+
+2011-10-13 12:23:59 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: fix caps leak
+
+2011-10-13 10:19:34 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	  buffer: Use an inline function instead of a macro for gst_buffer_replace()
+	  This gives us type checks by the compiler and more useful compiler errors.
+
+2011-10-13 10:18:51 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstevent.h:
+	  event: Use an inline function instead of a macro for gst_event_replace()
+	  This gives us type checks by the compiler and more useful compiler errors.
+
+2011-10-13 08:51:42 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstutils.c
+	  libs/gst/base/gstbasesrc.c
+
+2011-10-12 18:14:00 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/gstghostpad.c:
+	  ghostpad: Do not unref the internal pad twice
+	  g_value_unset should already unref the internal proxypad, no
+	  need to do it again
+
+2011-10-12 17:17:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: properly adjust start time
+	  When we do a non-flushing seek and closed the current segment,
+	  make sure that we open the next segment from where we closed.
+
+2011-10-12 14:37:31 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: add transfer type for gst_event_new_caps argument
+	  These annotations are useful to humans as well...
+
+2011-10-12 14:34:24 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	  capsfilter: fix caps leak
+	  gst_event_new_caps does not steal a reference to the caps.
+
+2011-10-12 13:31:48 +0200  René Stadler <rene.stadler@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  event: fix gst_event_new_segment transfer type
+
+2011-10-11 13:54:45 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* tests/check/generic/states.c:
+	* tests/check/gst/gstevent.c:
+	* tests/check/gst/gstghostpad.c:
+	* tests/check/gst/gstpad.c:
+	* tests/check/gst/gstutils.c:
+	* tests/check/gst/gstvalue.c:
+	  tests: Fix more leaks
+
+2011-10-11 13:53:39 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* plugins/elements/gstcapsfilter.c:
+	  capsfilter: Don't leak caps
+
+2011-10-11 13:51:54 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Fix a caps leak and move a codeblock
+	  The result from the block of code that was moved would only have
+	  been used if 'peercaps' was present.
+
+2011-10-11 13:51:37 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstpadtemplate.c:
+	* gst/gstvalue.c:
+	  gst: More 'transfer' annotations
+
+2011-10-10 19:41:33 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: catch invalid instance sizes in gst_type_register_static_full()
+	  Add guards to catch overly large instance sizes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660955
+
+2011-10-10 19:30:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* win32/common/libgstreamer.def:
+	  utils: remove gst_type_register_static_full()
+	  It was only really used by GST_BOILERPLATE, and that is no more.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=660955
+
+2011-10-10 11:47:42 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: avoid trying to alloc enormous buffer
+	  If a class extending basesrc doesn't set blocksize, basesrc
+	  would try to allocate a (guint)-1 sized buffer, which is enormous
+	  and likely would fail.
+	  Avoid it and error out.
+
+2011-10-10 17:17:37 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 17:04:39 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	  ghostpad: If we don't control a pad/template, return proper caps
+	  If there's a filter, we can return that in _get_caps()
+
+2011-10-10 16:52:43 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  gstpad: Specify transfer full for gst_pad_get_caps()
+	  It increments the reference count of the returned caps.
+
+2011-10-10 11:02:08 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  gstpad: Add debug to know what events are transferred between pads
+
+2011-10-10 10:38:12 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  gstpad: Unset EOS event on FLUSH_STOP
+
+2011-10-07 11:49:19 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  gstpad: Don't ignore downstream FlowReturn with IDLE probes
+	  If pushgin downstream returned a non-ok value (like GST_FLOW_WRONG_STATE),
+	  we don't want to end up returning a different value (GST_FLOW_OK in this
+	  case) if IDLE probes are present.
+
+2011-10-10 13:23:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 12:54:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 12:38:35 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 12:27:52 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 11:49:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-10 11:36:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstcompat.h:
+	  compat: add compat define for UNEXPECTED
+
+2011-10-10 11:33:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/porting-to-0.11.txt:
+	* gst/gstbufferpool.c:
+	* gst/gstpad.c:
+	* gst/gstpad.h:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstcollectpads.c:
+	* plugins/elements/gstfakesink.c:
+	* plugins/elements/gstfdsrc.c:
+	* plugins/elements/gstfilesrc.c:
+	* plugins/elements/gstidentity.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttee.c:
+	* tests/check/elements/fakesink.c:
+	* tests/check/elements/filesrc.c:
+	* tests/check/gst/gstpad.c:
+	  pad: GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
+
+2011-10-10 11:30:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-09 11:49:45 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* tests/check/elements/tee.c:
+	  tests: tee: Remember to initialize variables to NULL
+	  app_thread needs to be initialized to NULL, otherwise tests
+	  will try to use it and crash
+
+2011-10-08 20:56:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Update common for check-exports script changes
+
+2011-10-08 20:46:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstelementfactory.c:
+	* win32/common/libgstreamer.def:
+	  elementfactory: don't export private _gst_elementclass_factory quark
+
+2011-10-08 20:15:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gst_private.h:
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	  info: make _gst_debug_init() private for now
+	  This was a FIXME for 0.11. I guess a case could be made to keep it around
+	  separately for apps or libraries that only want to use GStreamer's debugging
+	  system, but it seems more likely they'd just copy the two source files into
+	  their own tree if the case. Also, things like types wouldn't be initialised
+	  without gst_init(). We can still make it public again if anyone needs it,
+	  but then we should make it a proper function and not hide it behind
+	  underscores.
+
+2011-10-08 19:54:06 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	  Merge remote-tracking branch 'origin/master' into symbol-exports
+
+2011-10-08 14:17:25 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstparse.c:
+	* gst/parse/.gitignore:
+	* gst/parse/Makefile.am:
+	* gst/parse/grammar.y:
+	* gst/parse/types.h:
+	  gstparse: prefix generated parser functions so they don't get exported
+	  Don't export those 35-something random _gst_parse_yy* symbols. These were
+	  never in any header files and also blacklisted from our .def files, in
+	  case anyone wonders.
+
+2011-10-08 13:37:09 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	* gst/gstobject.c:
+	* win32/common/libgstreamer.def:
+	  info: rename __gst_debug_* to _gst_debug_* and fix symbol export regexp
+	  Only export GStreamer symbols with one leading underscore, not two
+	  or more leading underscores.
+	  Requires a rebuild of the entire stack, sorry.
+
+2011-10-08 15:16:59 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update doc
+
+2011-10-08 14:25:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-10-08 14:23:30 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update
+
+2011-10-08 12:08:49 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: upate porting list
+
+2011-10-08 09:41:54 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	  info: port to 0.11
+
+2011-10-08 09:28:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  gst/gstpad.c
+
+2011-10-07 09:45:20 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/gstpipeline.c:
+	  pipeline: Use pipeline category for one more log message
+	  Makes debugging easier.
+
+2011-10-07 16:36:10 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	* gst/gstpad.c:
+	  GST_PTR_FORMAT: Add GstBuffer ptr format and use in GST_SCHEDULING
+	  GstBuffer pointers can now be printed using GST_PTR_FORMAT. This is used
+	  in the very useful GST_SCHEDULING debug logs in gstpad.c and allows for
+	  easier and more information tracking of buffer progress through a
+	  pipeline with just debug logging.
+
+2011-10-07 13:55:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/generic/sinks.c:
+	  tests: fix compiler warnings in sinks test
+
+2011-10-07 13:54:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/base/gstdataqueue.c:
+	* libs/gst/base/gstdataqueue.h:
+	* plugins/elements/Makefile.am:
+	* plugins/elements/gstdataqueue.c:
+	* plugins/elements/gstdataqueue.h:
+	* plugins/elements/gstmultiqueue.h:
+	* tests/check/libs/gstlibscpp.cc:
+	* tests/check/libs/libsabi.c:
+	* win32/common/libgstbase.def:
+	  base: make GstDataQueue private API for multiqueue
+	  There's no code that uses it other than multiqueue, so make it private
+	  to multiqueue for now. That way we can also do optimisations that
+	  require API/ABI breaks. If anyone ever wants to use it, we can still
+	  make it public again.
+
+2011-10-06 17:27:47 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-10-06 17:26:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update list
+
+2011-10-06 14:34:09 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: send duration message when updating internal duration
+
+2011-10-06 14:04:05 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update list
+
+2011-10-06 10:59:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  update porting list
+
+2011-10-05 20:06:51 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update list
+
+2011-10-05 13:43:46 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  porting: update porting status
+
+2011-10-05 11:20:37 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstbufferpool.c:
+	  gstbufferpool: Use glib compat macros for atomic pointers
+
+2011-10-04 18:55:20 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  update porting list
+
+2011-10-04 18:55:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: improve docs
+
+2011-10-04 17:39:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+
+2011-10-04 17:36:26 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  update porting list
+
+2011-10-04 15:55:05 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  gstevent: specify (transfer) for gst_event_new_segment
+
+2011-10-04 13:16:14 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/wtay/porting-list-0.11.txt:
+	  add porting list
+
+2011-09-26 14:36:46 +0400  Stas Sergeev <stsp@users.sourceforge.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Return success if optional start/stop method is not provided
+	  This allows to not implement the optional start/stop methods.
+
+2011-10-03 10:06:17 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	  Merge branch 'master' into 0.11
+	  Conflicts:
+	  libs/gst/base/gstbaseparse.c
+
+2011-10-03 09:29:10 +0200  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstquery.c:
+	  gstquery: Make debugging message more informative
+	  For all the newcomers out there who still don't know the values of
+	  GstQueryType enum by heart...
+	  ... and old-timers who've got better things to do :)
+
+2011-09-30 15:25:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: make estimating the position in query handler actually work
+	  No point estimating if we don't set the result afterwards.
+
+2011-09-26 13:14:42 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: answer position query in stream time and try upstream first
+	  Let the demuxer have first say as well.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=659485
+
+2011-09-30 14:52:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst.h:
+	  gst.h: include header for atomic queue
+
+2011-09-30 14:50:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/.gitignore:
+	* tests/check/gst/gstatomicqueue.c:
+	  tests: add minimal test for GstAtomicQueue
+	  Just new + free.
+
+2011-09-29 18:06:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/random/release:
+	  update release notes
+	  Change the mail addresses to the freedesktop ones
+
+2011-09-29 17:04:57 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* configure.ac:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  back to development
+
+=== release 0.11.1 ===
+
+2011-09-29 16:50:21 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* gstreamer.doap:
+	* po/af.po:
+	* po/az.po:
+	* po/be.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  RELEASE 0.11.1
 
 2011-09-28 18:46:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
diff --git a/Makefile.am b/Makefile.am
index f6ddc4a..671aec1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,7 @@
 ACLOCAL_AMFLAGS = -I m4 -I common/m4
 
 aclocaldir = $(datadir)/aclocal
-aclocal_DATA = gst-element-check-@GST_MAJORMINOR@.m4
+aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
 
 SUBDIRS = pkgconfig \
 	gst libs plugins tools tests \
@@ -32,7 +32,7 @@
 	scripts/gst-uninstalled \
 	$(win32)
 
-CLEANFILES = gst-element-check-@GST_MAJORMINOR@.m4
+CLEANFILES = gst-element-check-@GST_API_VERSION@.m4
 
 DISTCLEANFILES = _stdint.h
 
@@ -96,12 +96,10 @@
 # FIXME: this target should be run every time we do "make release"
 # find a way of automating that
 win32-update:
-	for f in gstversion.h gstenumtypes.c gstenumtypes.h gstmarshal.c gstmarshal.h; do \
+	for f in gstversion.h gstenumtypes.c gstenumtypes.h; do \
 		cp $(top_builddir)/gst/$$f win32/common; done
 	$(top_srcdir)/tools/gst-indent win32/common/gstenumtypes.c
 	$(top_srcdir)/tools/gst-indent win32/common/gstenumtypes.c
-	$(top_srcdir)/tools/gst-indent win32/common/gstmarshal.c
-	$(top_srcdir)/tools/gst-indent win32/common/gstmarshal.c
 	cp $(top_builddir)/win32/common/config.h-new \
 		$(top_srcdir)/win32/common/config.h
 
@@ -150,8 +148,8 @@
 
 check: $(CHECK_EXPORTS) check-enum-gettypes
 
-gst-element-check-@GST_MAJORMINOR@.m4: gst-element-check.m4
-	$(AM_V_GEN)cp gst-element-check.m4 gst-element-check-@GST_MAJORMINOR@.m4
+gst-element-check-@GST_API_VERSION@.m4: gst-element-check.m4
+	$(AM_V_GEN)cp gst-element-check.m4 gst-element-check-@GST_API_VERSION@.m4
 
 # cruft: plugins that have been merged or moved or renamed
 
@@ -200,4 +198,4 @@
 
 include $(top_srcdir)/common/cruft.mak
 
-all-local: gst-element-check-@GST_MAJORMINOR@.m4 check-cruft
+all-local: gst-element-check-@GST_API_VERSION@.m4 check-cruft
diff --git a/Makefile.in b/Makefile.in
index e85d449..b307364 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -27,6 +27,23 @@
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -100,11 +117,11 @@
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = stamp.h gst-element-check.m4 gstreamer.spec
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -115,6 +132,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -136,6 +158,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(aclocaldir)"
 DATA = $(aclocal_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
@@ -149,9 +177,11 @@
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -180,6 +210,8 @@
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 
@@ -236,10 +268,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -252,10 +286,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -269,7 +303,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -286,6 +319,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -301,7 +338,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -334,6 +370,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -389,6 +426,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -422,7 +460,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -445,7 +482,7 @@
 top_srcdir = @top_srcdir@
 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-docbook
 aclocaldir = $(datadir)/aclocal
-aclocal_DATA = gst-element-check-@GST_MAJORMINOR@.m4
+aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
 SUBDIRS = pkgconfig \
 	gst libs plugins tools tests \
 	docs \
@@ -483,7 +520,7 @@
 	scripts/gst-uninstalled \
 	$(win32)
 
-CLEANFILES = gst-element-check-@GST_MAJORMINOR@.m4
+CLEANFILES = gst-element-check-@GST_API_VERSION@.m4
 DISTCLEANFILES = _stdint.h
 
 # make bz2 as well
@@ -542,7 +579,7 @@
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
 	@:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps)
 	@for dep in $?; do \
@@ -567,6 +604,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -578,10 +616,8 @@
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-	@if test ! -f $@; then \
-	  rm -f stamp-h1; \
-	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-	else :; fi
+	@if test ! -f $@; then rm -f stamp-h1; else :; fi
+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
@@ -610,8 +646,11 @@
 	-rm -f libtool config.lt
 install-aclocalDATA: $(aclocal_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(aclocaldir)" || $(MKDIR_P) "$(DESTDIR)$(aclocaldir)"
 	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(aclocaldir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -625,9 +664,7 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(aclocaldir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(aclocaldir)" && rm -f $$files
+	dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -798,13 +835,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -838,7 +872,11 @@
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 	$(am__remove_distdir)
 dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
 	$(am__remove_distdir)
 
 dist-lzma: distdir
@@ -846,7 +884,7 @@
 	$(am__remove_distdir)
 
 dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__remove_distdir)
 
 dist-tarZ: distdir
@@ -864,7 +902,7 @@
 
 dist dist-all: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
 	$(am__remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
@@ -878,6 +916,8 @@
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
 	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
@@ -898,6 +938,7 @@
 	  && am__cwd=`pwd` \
 	  && $(am__cd) $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -926,8 +967,16 @@
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@$(am__cd) '$(distuninstallcheck_dir)' \
-	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
 	          echo "  (check DESTDIR support)"; \
@@ -961,10 +1010,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1054,8 +1108,8 @@
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am all-local am--refresh check check-am clean \
 	clean-generic clean-libtool ctags ctags-recursive dist \
-	dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \
-	dist-tarZ dist-xz dist-zip distcheck distclean \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-lzma \
+	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
 	distclean-generic distclean-hdr distclean-libtool \
 	distclean-tags distcleancheck distdir distuninstallcheck dvi \
 	dvi-am html html-am info info-am install install-aclocalDATA \
@@ -1098,7 +1152,7 @@
 	@fail=0 ; \
 	for l in $(win32defs); do \
 	  libbase=`basename "$$l" ".def"`; \
-	  libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so" | grep -v /_build/ | head -n1`; \
+	  libso=`find "$(top_builddir)" -name "$$libbase-@GST_API_VERSION@.so" | grep -v /_build/ | head -n1`; \
 	  libdef="$(top_srcdir)/win32/common/$$libbase.def"; \
 	  if test "x$$libso" != "x"; then \
 	    echo Checking symbols in $$libso; \
@@ -1200,12 +1254,10 @@
 # FIXME: this target should be run every time we do "make release"
 # find a way of automating that
 win32-update:
-	for f in gstversion.h gstenumtypes.c gstenumtypes.h gstmarshal.c gstmarshal.h; do \
+	for f in gstversion.h gstenumtypes.c gstenumtypes.h; do \
 		cp $(top_builddir)/gst/$$f win32/common; done
 	$(top_srcdir)/tools/gst-indent win32/common/gstenumtypes.c
 	$(top_srcdir)/tools/gst-indent win32/common/gstenumtypes.c
-	$(top_srcdir)/tools/gst-indent win32/common/gstmarshal.c
-	$(top_srcdir)/tools/gst-indent win32/common/gstmarshal.c
 	cp $(top_builddir)/win32/common/config.h-new \
 		$(top_srcdir)/win32/common/config.h
 
@@ -1282,8 +1334,8 @@
 
 check: $(CHECK_EXPORTS) check-enum-gettypes
 
-gst-element-check-@GST_MAJORMINOR@.m4: gst-element-check.m4
-	$(AM_V_GEN)cp gst-element-check.m4 gst-element-check-@GST_MAJORMINOR@.m4
+gst-element-check-@GST_API_VERSION@.m4: gst-element-check.m4
+	$(AM_V_GEN)cp gst-element-check.m4 gst-element-check-@GST_API_VERSION@.m4
 
 check-cruft:
 	@cruft_files=""; cruft_dirs=""; \
@@ -1335,7 +1387,7 @@
 #
 # all-local: check-cruft
 
-all-local: gst-element-check-@GST_MAJORMINOR@.m4 check-cruft
+all-local: gst-element-check-@GST_API_VERSION@.m4 check-cruft
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/NEWS b/NEWS
index 24a61f4..d09aec1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,48 @@
-This is GStreamer 0.11.1 "Sweet New Blossom"
+This is GStreamer 0.11.90 "And all with pearl and ruby glowing was the fair palace door"
 
-New featues in 0.11.1:
+New features in 0.11.90:
+
+      * Lots of bugfixes, cleanup and other improvements
+      * Improvements to the buffer and memory managment API
+      * A new GstTOC interface, e.g. for handling chapters
+      * The GstChildProxy interface works with any GObject now
+
+New features in 0.11.3:
+
+      * Various bug fixes and improvements
+      * Input-selector defaults to sync-streams=true
+      * Queue don't just start the thread on linking
+      * Add user_data and notify to gst_memory_new_wrapped()
+      * Rework caps function for performance
+      * Improve basetransform allocator handling
+      * Implement metadata transforms
+      * Metadata registration improvements
+      * Use generic marshallers everywhere
+      * Push Sticky events in more cases
+      * Register queries like events
+      * Add DRAIN serialized query
+      * Add 0-padding and prefix to GstMemory
+      * Rework the ALLOCATION query
+      * Allow setting the allocator in a bufferpool
+      * Improve pull/get_range
+
+New features in 0.11.2:
 
       * Parallel installability with 0.10.x series
-      * Remove negotiation from state change in GstBaseSrc
-      * Removed our custom FOURCC type
-      * Updates to the base classes
+      * Added pts/dts to buffers
+      * Moved controller into core
+      * Pad probe rewrite
+      * AcceptCaps and GetCaps made as queries
+      * Added parent to pad functions
+      * Sticky events rewrite
+      * New GstSample object
+      * Asynchronous state change support for basesrc
+      * Added new bitmask type
+      * GstMemory updates
+      * Port to gio
+      * Port to newest glib
+      * Add stepped ranges
+      * Do typefind in separate thread
+      * Rework alloc tracing
+      * Added STREAM_CONFIG, GAP and STREAM_START events
+      * Various cleanups and leak fixes
diff --git a/RELEASE b/RELEASE
index dc1c808..3ad52ad 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer 0.11.1 "Sweet New Blossom"
+Release notes for GStreamer 0.11.90 "And all with pearl and ruby glowing was the fair palace door"
         
 
 
@@ -8,7 +8,8 @@
 core of the GStreamer streaming media framework.
 
 
-The 0.11.x series is an unstable series targeted at developers
+The 0.11.x series is an unstable series targeted at developers and will
+eventually lead up to the stable 1.0 series.
 It is not API or ABI compatible with the stable 0.10.x series.
 It is, however, parallel installable with the 0.10.x series.
 
@@ -17,6 +18,7 @@
 various cleanups and enhancements.
 
 
+
 This module, gstreamer, only contains core functionality.
 For actual media playback, you will need other modules.
 
@@ -37,10 +39,10 @@
 
 Features of this release
     
-      * Parallel installability with 0.10.x series
-      * Remove negotiation from state change in GstBaseSrc
-      * Removed our custom FOURCC type
-      * Updates to the base classes
+      * Lots of bugfixes, cleanup and other improvements
+      * Improvements to the buffer and memory managment API
+      * A new GstTOC interface, e.g. for handling chapters
+      * The GstChildProxy interface works with any GObject now
 There were no bugs fixed in this release
     
 
@@ -69,30 +71,26 @@
         
 Applications
 
-No applications are ported to 0.11 as of yet. We are looking for more people to
-port plugins and applications.
+Various applications have early ports to GStreamer 0.11 including Totem, RhythmBox,
+Webkit, Jokosher, Transmageddon and others. We're working on porting more applications.
 
   
 Contributors to this release
     
+      * Alessandro Decina
+      * Alexander Saprykin
+      * Christian Fredrik Kalager Schaller
       * David Schleef
       * Edward Hervey
       * Fabrizio (Misto) Milo
-      * Guillaume Desmottes
-      * Josep Torra
       * Mark Nauwelaerts
-      * Nicolas Dufresne
-      * Peteris Krisjanis
-      * Piotr Fusik
-      * Raimo Järvi
+      * Matej Knopp
+      * Olivier Crête
+      * Ryan Lortie
       * Sebastian Dröge
-      * Shaun Hoopes
-      * Sjoerd Simons
-      * Stas Sergeev
-      * Stefan Kost
+      * Sreerenj Balachandran
       * Stefan Sauer
-      * Thomas Vander Stichele
       * Tim-Philipp Müller
-      * Vincent Penquerc'h
       * Wim Taymans
+      * Руслан Ижбулатов
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 058d28b..49a8d86 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.4 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,18 +14,21 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
-[m4_warning([this file was generated for autoconf 2.67.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -34,7 +38,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.11.4], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +54,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.4])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -79,12 +83,14 @@
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -166,14 +172,14 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
+# serial 12
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -213,6 +219,7 @@
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -277,7 +284,7 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -342,10 +349,13 @@
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -579,12 +589,15 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -624,8 +637,8 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -645,7 +658,7 @@
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -791,12 +804,15 @@
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_MKDIR_P
 # ---------------
 # Check for `mkdir -p'.
@@ -819,13 +835,14 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -833,13 +850,13 @@
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -915,13 +932,13 @@
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2009  Free Software Foundation, Inc.
+# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# serial 2
 
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
@@ -936,18 +953,50 @@
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
+dnl
+dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
@@ -970,13 +1019,13 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -985,13 +1034,13 @@
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1013,10 +1062,11 @@
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
 m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
      [m4_case([$1], [ustar],, [pax],,
               [m4_fatal([Unknown tar format])])
 AC_MSG_CHECKING([how to create a $1 tar archive])
diff --git a/autogen.sh b/autogen.sh
index c0cd19e..b2e9ee4 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,6 +1,12 @@
 #!/bin/sh
 # Run this to generate all the initial makefiles, etc.
 
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
+
+olddir=`pwd`
+cd "$srcdir"
+
 DIE=0
 package=gstreamer
 srcfile=gst/gst.c
@@ -29,7 +35,9 @@
     ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit
 fi
 
-
+# GNU gettext automake support doesn't get along with git.
+# https://bugzilla.gnome.org/show_bug.cgi?id=661128
+touch -t 200001010000 po/gstreamer-0.10.pot
 
 CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-failing-tests --enable-poisoning --enable-gtk-doc --enable-docbook'
 
@@ -56,7 +64,7 @@
 die_check $DIE
 
 # if no arguments specified then this will be printed
-if test -z "$*"; then
+if test -z "$*" && test -z "$NOCONFIGURE"; then
   echo "+ checking for autogen.sh options"
   echo "  This autogen script will automatically run ./configure as:"
   echo "  ./configure $CONFIGURE_DEF_OPT"
@@ -97,13 +105,15 @@
   exit 0
 }
 
+cd "$olddir"
+
 echo "+ running configure ... "
 test ! -z "$CONFIGURE_DEF_OPT" && echo "  ./configure default flags: $CONFIGURE_DEF_OPT"
 test ! -z "$CONFIGURE_EXT_OPT" && echo "  ./configure external flags: $CONFIGURE_EXT_OPT"
 echo
 
-echo ./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
-./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || {
+echo "$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT
+"$srcdir/configure" $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT || {
         echo "  configure failed"
         exit 1
 }
diff --git a/common/Makefile.in b/common/Makefile.in
index e786866..e45e7cd 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,11 +94,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -92,6 +109,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -179,10 +201,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -195,10 +219,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -212,7 +236,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -229,6 +252,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -244,7 +271,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -277,6 +303,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -332,6 +359,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -365,7 +393,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -615,13 +642,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -656,10 +680,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/common/check-exports b/common/check-exports
index c6d3eca..ee01ff7 100755
--- a/common/check-exports
+++ b/common/check-exports
@@ -25,29 +25,11 @@
   NMARGS=-p
 fi
 
-# FIXME 0.11: in 0.11, we should change the export filter to only export
-# _gst_foo, but not __gst_foo (we can't change this now, since we added
-# __gst_debug_min and __gst_debug_enabled at some point and need to keep
-# ABI compatibility).  So below we special-case some symbols that shouldn't
-# really be exported, either because we're too lazy to rename them to something
-# that's not exported (like the _gst_parse_* stuff) or because we had them in
-# public headers at some point although they shouldn't be and so we need to
-# keep them exported now (like _gst_debug_init,
-# __gst_element_factory_add_interface or
-# __gst_element_factory_add_static_pad_template).  We suppress them here to
-# make sure they're at least not exported in the windows msvc build (they
-# were never in the .def file, so they never got exported).
 # _end is special cased because for some reason it is reported as an exported
 # BSS symbol, unlike on linux where it's a local absolute symbol.
 nm $NMARGS $lib_path | awk \
 	'{
-		if ($3 !~ /^_gst_parse_yy/ && \
-		    $3 !~ /^_gst_[a-z]*_init/ && \
-		    $3 !~ /^_gst_parse_launch/ && \
-		    $3 !~ /^__gst_element_details_/ && \
-		    $3 !~ /^__gst_element_factory_add_/ && \
-		    $3 !~ /^gst_interfaces_marshal/ && \
-		    $3 ~ /^[_]*(gst_|Gst|GST_).*/)
+		if ($3 ~ /^[_]?(gst_|Gst|GST_).*/)
 		{
 			if ($2 ~ /^[BSDG]$/)
 				print "\t" $3 " DATA"
diff --git a/common/check.mak b/common/check.mak
index 30487f1..0aec843 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -24,6 +24,12 @@
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
+# just like 'check', but don't run it again if it fails (useful for debugging)
+%.check-norepeat: %
+	@$(TESTS_ENVIRONMENT)					\
+	CK_DEFAULT_TIMEOUT=20					\
+	$*
+
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
@@ -140,7 +146,7 @@
 	fi
 
 # inspect every plugin feature
-GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_MAJORMINOR)
+GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
 inspect:
 	@echo "Inspecting features ..."
 	@for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 	\
@@ -152,7 +158,8 @@
 	@echo
 	@echo "make check                         -- run all checks"
 	@echo "make torture                       -- run all checks $(LOOPS) times"
-	@echo "make (dir)/(test).check            -- run the given check once"
+	@echo "make (dir)/(test).check            -- run the given check once, repeat with GST_DEBUG=*:2 if it fails"
+	@echo "make (dir)/(test).check-norepeat   -- run the given check once, but don't run it again if it fails"
 	@echo "make (dir)/(test).forever          -- run the given check forever"
 	@echo "make (dir)/(test).torture          -- run the given check $(LOOPS) times"
 	@echo
diff --git a/common/gst.supp b/common/gst.supp
index c10005f..d7f8961 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -915,7 +915,7 @@
    fun:*alloc
    ...
    fun:g_type_init*
-   fun:init_pre
+   fun:init_pre*
 }
 
 {
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 5b13352..b0699c7 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -142,6 +142,9 @@
 $ntypes = @types + @impl_types + 1;
 
 print OUTPUT <<EOT;
+
+/* file generated by common/gstdoc-scangobj */
+
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -182,7 +185,9 @@
 static gint
 gst_feature_sort_compare (gconstpointer a, gconstpointer b)
 {
-  return strcmp (((GstPluginFeature *)a)->name, ((GstPluginFeature *)b)->name);
+  const gchar *name_a = gst_plugin_feature_get_name ((GstPluginFeature *) a);
+  const gchar *name_b = gst_plugin_feature_get_name ((GstPluginFeature *) b);
+  return strcmp (name_a, name_b);
 }
 
 static gint
@@ -216,7 +221,7 @@
     gboolean reinspect;
 
     /* get a list of features from plugins in our source module */
-    plugins = gst_registry_get_plugin_list (gst_registry_get_default());
+    plugins = gst_registry_get_plugin_list (gst_registry_get ());
 
     xmlstr = g_string_new ("");
 
@@ -267,7 +272,7 @@
       }
 
       features =
-          gst_registry_get_feature_list_by_plugin (gst_registry_get_default (),
+          gst_registry_get_feature_list_by_plugin (gst_registry_get (),
           plugin->desc.name);
 
       /* sort factories by feature->name */
@@ -287,7 +292,7 @@
           const gchar *pad_pres[] = { "always","sometimes","request" };
           GList *pads, *pad;
 
-          $debug_log ("  feature: %s", feature->name);
+          $debug_log ("  feature: %s", gst_plugin_feature_get_name (feature));
 
           factory = GST_ELEMENT_FACTORY (feature);
           factories = g_list_prepend (factories, factory);
@@ -295,7 +300,7 @@
           if (reinspect) {
             /* output element data */
             fputs ("    <element>\\n", inspect);
-            fputs (xmlprint(6, "name", feature->name),inspect);
+            fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect);
             fputs (xmlprint(6, "longname", gst_element_factory_get_longname (factory)),inspect);
             fputs (xmlprint(6, "class", gst_element_factory_get_klass (factory)),inspect);
             fputs (xmlprint(6, "description", gst_element_factory_get_description (factory)),inspect);
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index 8cc42e7..f7c05ed 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -13,8 +13,7 @@
 	@echo
 
 # update the stuff maintained by doc maintainers
-update:
-	$(MAKE) scanobj-update
+update: scanobj-update
 	$(MAKE) check-outdated-docs
 
 # We set GPATH here; this gives us semantics for GNU make
@@ -25,7 +24,7 @@
 GPATH = $(srcdir)
 
 # thomas: make docs parallel installable
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_API_VERSION@
 
 MAINTAINER_DOC_STAMPS =			\
 	scanobj-build.stamp
@@ -130,7 +129,7 @@
 	    --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) &&		\
 	    echo "  DOC   Merging introspection data" && \
 	    $(PYTHON)						\
-	    $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE);	\
+	    $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE) || exit 1;	\
 	if test x"$(srcdir)" != x. ; then				\
 	    for f in $(SCANOBJ_FILES);					\
 	    do								\
@@ -225,7 +224,7 @@
 	fi; \
 	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
 	@mv html/index.sgml html/index.sgml.bak
-	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
 	@rm -f html/index.sgml.bak
 	@rm -f html/$(DOC_MAIN_SGML_FILE)
 	@rm -rf html/xml
@@ -293,7 +292,7 @@
 	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
 	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
 	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
-	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
+	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  (which gtkdoc-rebase >/dev/null && \
 	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index dd2b5a5..31b56f9 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -12,7 +12,7 @@
 GPATH = $(srcdir)
 
 # thomas: make docs parallel installable
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_API_VERSION@
 
 EXTRA_DIST = 				\
 	$(content_files)		\
@@ -132,7 +132,7 @@
 	fi; \
 	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 	@mv html/index.sgml html/index.sgml.bak
-	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
 	@rm -f html/index.sgml.bak
 	@rm -rf html/xml
 	@rm -f version.entities
@@ -192,7 +192,7 @@
 	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
 	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
 	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
-	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
+	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  (which gtkdoc-rebase >/dev/null && \
 	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index fd1c868..999f436 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -479,10 +506,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4
index d16fa79..2dc0184 100644
--- a/common/m4/gst-args.m4
+++ b/common/m4/gst-args.m4
@@ -19,6 +19,7 @@
 dnl AG_GST_ARG_ENABLE_EXPERIMENTAL
 dnl AG_GST_ARG_ENABLE_BROKEN
 
+dnl AG_GST_ARG_DISABLE_FATAL_WARNINGS
 AC_DEFUN([AG_GST_ARG_DEBUG],
 [
   dnl debugging stuff
@@ -333,3 +334,20 @@
       AC_MSG_NOTICE([not building broken plug-ins])
     ])
 ])
+
+dnl allow people (or build tools) to override default behaviour
+dnl for fatal compiler warnings
+AC_DEFUN([AG_GST_ARG_DISABLE_FATAL_WARNINGS],
+[
+  AC_ARG_ENABLE(fatal-warnings,
+    AC_HELP_STRING([--disable-fatal-warnings],
+                   [Don't turn compiler warnings into fatal errors]),
+    [
+      case "${enableval}" in
+        yes) FATAL_WARNINGS=yes ;;
+        no)  FATAL_WARNINGS=no ;;
+        *)   AC_MSG_ERROR(bad value ${enableval} for --disable-fatal-warnings) ;;
+      esac
+    ],
+    [FATAL_WARNINGS=$GST_GIT]) dnl Default value
+])
diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4
index 3fd3acf..cba7e96 100644
--- a/common/m4/gst-check.m4
+++ b/common/m4/gst-check.m4
@@ -10,8 +10,8 @@
 dnl AG_GST_CHECK_GST([MAJMIN], [MINVER], [REQUIRED])
 dnl   also sets/ACSUBSTs GST_TOOLS_DIR and GST_PLUGINS_DIR
 dnl AG_GST_CHECK_GST_BASE([MAJMIN], [MINVER], [REQUIRED])
-dnl AG_GST_CHECK_GST_GDP([MAJMIN], [MINVER], [REQUIRED])
 dnl AG_GST_CHECK_GST_CONTROLLER([MAJMIN], [MINVER], [REQUIRED])
+dnl AG_GST_CHECK_GST_NET([MAJMIN], [MINVER], [REQUIRED])
 dnl AG_GST_CHECK_GST_CHECK([MAJMIN], [MINVER], [REQUIRED])
 dnl AG_GST_CHECK_GST_PLUGINS_BASE([MAJMIN], [MINVER], [REQUIRED])
 dnl   also sets/ACSUBSTs GSTPB_PLUGINS_DIR
@@ -98,18 +98,18 @@
     [GStreamer Base Libraries], [$3])
 ])
 
-AC_DEFUN([AG_GST_CHECK_GST_GDP],
-[
-  AG_GST_CHECK_MODULES(GST_GDP, gstreamer-dataprotocol-[$1], [$2],
-    [GStreamer Data Protocol Library], [$3])
-])
-
 AC_DEFUN([AG_GST_CHECK_GST_CONTROLLER],
 [
   AG_GST_CHECK_MODULES(GST_CONTROLLER, gstreamer-controller-[$1], [$2],
     [GStreamer Controller Library], [$3])
 ])
 
+AC_DEFUN([AG_GST_CHECK_GST_NET],
+[
+  AG_GST_CHECK_MODULES(GST_NET, gstreamer-net-[$1], [$2],
+    [GStreamer Network Library], [$3])
+])
+
 AC_DEFUN([AG_GST_CHECK_GST_CHECK],
 [
   AG_GST_CHECK_MODULES(GST_CHECK, gstreamer-check-[$1], [$2],
@@ -117,7 +117,39 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_BASE([GST-MAJORMINOR], [MIN-VERSION], [REQUIRED])
+dnl AG_GST_CHECK_UNINSTALLED_SETUP([ACTION-IF-UNINSTALLED], [ACTION-IF-NOT])
+dnl
+dnl ACTION-IF-UNINSTALLED  (optional) extra actions to perform if the setup
+dnl                        is an uninstalled setup
+dnl ACTION-IF-NOT          (optional) extra actions to perform if the setup
+dnl                        is not an uninstalled setup
+dnl ===========================================================================
+AC_DEFUN([AG_GST_CHECK_UNINSTALLED_SETUP],
+[
+  AC_MSG_CHECKING([whether this is an uninstalled GStreamer setup])
+  AC_CACHE_VAL(gst_cv_is_uninstalled_setup,[
+    gst_cv_is_uninstalled_setup=no
+    if (set -u; : $GST_PLUGIN_SYSTEM_PATH) 2>/dev/null ; then
+      if test -z "$GST_PLUGIN_SYSTEM_PATH" \
+           -a -n "$GST_PLUGIN_SCANNER"     \
+           -a -n "$GST_PLUGIN_PATH"        \
+           -a -n "$GST_REGISTRY"           \
+           -a -n "$DYLD_LIBRARY_PATH"      \
+           -a -n "$LD_LIBRARY_PATH"; then
+        gst_cv_is_uninstalled_setup=yes;
+      fi
+    fi
+  ])
+  AC_MSG_RESULT($gst_cv_is_uninstalled_setup)
+  if test "x$gst_cv_is_uninstalled_setup" = "xyes"; then
+    ifelse([$1], , :, [$1])
+  else
+    ifelse([$2], , :, [$2])
+  fi
+])
+
+dnl ===========================================================================
+dnl AG_GST_CHECK_GST_PLUGINS_BASE([GST-API_VERSION], [MIN-VERSION], [REQUIRED])
 dnl
 dnl Sets GST_PLUGINS_BASE_CFLAGS and GST_PLUGINS_BASE_LIBS.
 dnl
@@ -150,7 +182,7 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_GOOD([GST-MAJORMINOR], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_GOOD([GST-API_VERSION], [MIN-VERSION])
 dnl
 dnl Will set GST_PLUGINS_GOOD_DIR for use in Makefile.am. Note that this will
 dnl only be set in an uninstalled setup, since -good ships no .pc file and in
@@ -178,7 +210,7 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_UGLY([GST-MAJORMINOR], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_UGLY([GST-API_VERSION], [MIN-VERSION])
 dnl
 dnl Will set GST_PLUGINS_UGLY_DIR for use in Makefile.am. Note that this will
 dnl only be set in an uninstalled setup, since -bad ships no .pc file and in
@@ -206,7 +238,7 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_BAD([GST-MAJORMINOR], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_BAD([GST-API_VERSION], [MIN-VERSION])
 dnl
 dnl Will set GST_PLUGINS_BAD_DIR for use in Makefile.am. Note that this will
 dnl only be set in an uninstalled setup, since -ugly ships no .pc file and in
@@ -234,7 +266,7 @@
 ])
 
 dnl ===========================================================================
-dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-MAJORMINOR], [MIN-VERSION])
+dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-API_VERSION], [MIN-VERSION])
 dnl
 dnl Will set GST_PLUGINS_FFMPEG_DIR for use in Makefile.am. Note that this will
 dnl only be set in an uninstalled setup, since -ffmpeg ships no .pc file and in
diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4
index 6521097..871c346 100644
--- a/common/m4/gst-doc.m4
+++ b/common/m4/gst-doc.m4
@@ -5,7 +5,7 @@
   then
     AC_MSG_ERROR([Internal error - PACKAGE_TARNAME not set])
   fi
-  docdir="\$(datadir)/doc/$PACKAGE_TARNAME-$GST_MAJORMINOR"
+  docdir="\$(datadir)/doc/$PACKAGE_TARNAME-$GST_API_VERSION"
 
   dnl enable/disable docbook documentation building
   AC_ARG_ENABLE(docbook,
diff --git a/common/m4/gst-feature.m4 b/common/m4/gst-feature.m4
index 7f684b0..6da0940 100644
--- a/common/m4/gst-feature.m4
+++ b/common/m4/gst-feature.m4
@@ -224,7 +224,38 @@
   AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML)
 ])
 
+dnl AG_GST_CHECK_GST_DEBUG_DISABLED(ACTION-IF-DISABLED, ACTION-IF-NOT-DISABLED)
+dnl
+dnl Checks if the GStreamer debugging system is disabled in the core version
+dnl we are compiling against (by checking gstconfig.h)
+dnl
+AC_DEFUN([AG_GST_CHECK_GST_DEBUG_DISABLED],
+[
+  AC_REQUIRE([AG_GST_CHECK_GST])
 
+  AC_MSG_CHECKING([whether the GStreamer debugging system is enabled])
+  AC_LANG_PUSH([C])
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$GST_CFLAGS $CFLAGS"
+  AC_COMPILE_IFELSE([
+    AC_LANG_SOURCE([[
+      #include <gst/gstconfig.h>
+      #ifdef GST_DISABLE_GST_DEBUG
+      #error "debugging disabled, make compiler fail"
+      #endif]])], [ debug_system_enabled=yes], [debug_system_enabled=no])
+  CFLAGS="$save_CFLAGS"
+  AC_LANG_POP([C])
+
+  AC_MSG_RESULT([$debug_system_enabled])
+
+  if test "x$debug_system_enabled" = "xyes" ; then
+    $2
+    true
+  else
+    $1
+    true
+  fi
+])
 
 dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES,
 dnl GST_PLUGINS_NO, and BUILD_EXTERNAL
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index bafba41..b141bee 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -70,4 +70,22 @@
 
   dnl for the poor souls who for example have glib in /usr/local
   AS_SCRUB_INCLUDE(GLIB_CFLAGS)
+
+  AC_SUBST(GLIB_EXTRA_CFLAGS)
+
+  dnl Now check for GIO
+  PKG_CHECK_MODULES(GIO, gio-2.0 >= $GLIB_REQ)
+  if test "x$HAVE_GIO" = "xno"; then
+    AC_MSG_ERROR([This package requires GIO >= $GLIB_REQ to compile.])
+  fi
+  
+  GIO_MODULE_DIR="`$PKG_CONFIG --variable=giomoduledir gio-2.0`"
+  AC_DEFINE_UNQUOTED(GIO_MODULE_DIR, "$GIO_MODULE_DIR",
+      [The GIO modules directory.])
+  GIO_LIBDIR="`$PKG_CONFIG --variable=libdir gio-2.0`"
+  AC_DEFINE_UNQUOTED(GIO_LIBDIR, "$GIO_LIBDIR",
+      [The GIO library directory.])
+  AC_SUBST(GIO_CFLAGS)
+  AC_SUBST(GIO_LIBS)
+  AC_SUBST(GIO_LDFLAGS)
 ])
diff --git a/common/m4/gst-plugindir.m4 b/common/m4/gst-plugindir.m4
index 09989d0..c9e1301 100644
--- a/common/m4/gst-plugindir.m4
+++ b/common/m4/gst-plugindir.m4
@@ -6,12 +6,12 @@
 AC_DEFUN([AG_GST_SET_PLUGINDIR],
 [
   dnl define location of plugin directory
-  AS_AC_EXPAND(PLUGINDIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
+  AS_AC_EXPAND(PLUGINDIR, ${libdir}/gstreamer-$GST_API_VERSION)
   AC_DEFINE_UNQUOTED(PLUGINDIR, "$PLUGINDIR",
     [directory where plugins are located])
   AC_MSG_NOTICE([Using $PLUGINDIR as the plugin install location])
 
   dnl plugin directory configure-time variable for use in Makefile.am
-  plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
+  plugindir="\$(libdir)/gstreamer-$GST_API_VERSION"
   AC_SUBST(plugindir)
 ])
diff --git a/common/win32.mak b/common/win32.mak
index 94afaec..c343a04 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -39,7 +39,7 @@
 	@fail=0 ; \
 	for l in $(win32defs); do \
 	  libbase=`basename "$$l" ".def"`; \
-	  libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so" | grep -v /_build/ | head -n1`; \
+	  libso=`find "$(top_builddir)" -name "$$libbase-@GST_API_VERSION@.so" | grep -v /_build/ | head -n1`; \
 	  libdef="$(top_srcdir)/win32/common/$$libbase.def"; \
 	  if test "x$$libso" != "x"; then \
 	    echo Checking symbols in $$libso; \
diff --git a/compile b/compile
index c0096a7..b1f4749 100755
--- a/compile
+++ b/compile
@@ -1,10 +1,10 @@
 #! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2009-10-06.20; # UTC
+scriptversion=2012-01-04.17; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009  Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
+# Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -29,21 +29,186 @@
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l*)
+	  lib=${1#-l}
+	  found=no
+	  save_IFS=$IFS
+	  IFS=';'
+	  for dir in $lib_path $LIB
+	  do
+	    IFS=$save_IFS
+	    if $shared && test -f "$dir/$lib.dll.lib"; then
+	      found=yes
+	      set x "$@" "$dir/$lib.dll.lib"
+	      break
+	    fi
+	    if test -f "$dir/$lib.lib"; then
+	      found=yes
+	      set x "$@" "$dir/$lib.lib"
+	      break
+	    fi
+	  done
+	  IFS=$save_IFS
+
+	  test "$found" != yes && set x "$@" "$lib.lib"
+	  shift
+	  ;;
+	-L*)
+	  func_file_conv "${1#-L}"
+	  if test -z "$lib_path"; then
+	    lib_path=$file
+	  else
+	    lib_path="$lib_path;$file"
+	  fi
+	  linker_opts="$linker_opts -LIBPATH:$file"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: compile [--help] [--version] PROGRAM [ARGS]
 
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
 arguments, and rename the output as expected.
 
 If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -53,11 +218,13 @@
     echo "compile $scriptversion"
     exit $?
     ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
 esac
 
 ofile=
 cfile=
-eat=
 
 for arg
 do
@@ -66,8 +233,8 @@
   else
     case $1 in
       -o)
-	# configure might choose to run compile as `compile cc -o foo foo.c'.
-	# So we strip `-o arg' only if arg is an object.
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
 	eat=1
 	case $2 in
 	  *.o | *.obj)
@@ -94,10 +261,10 @@
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-  # If no `-o' option was seen then we might have been invoked from a
+  # If no '-o' option was seen then we might have been invoked from a
   # pattern rule where we don't need one.  That is ok -- this is a
   # normal compilation that the losing compiler can handle.  If no
-  # `.c' file was seen then we are probably linking.  That is also
+  # '.c' file was seen then we are probably linking.  That is also
   # ok.
   exec "$@"
 fi
@@ -106,7 +273,7 @@
 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
diff --git a/config.guess b/config.guess
index c2246a4..d622a44 100755
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2009-12-30'
+timestamp='2012-02-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -17,9 +17,7 @@
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -57,8 +55,8 @@
 
 Originally written by Per Bothner.
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -145,7 +143,7 @@
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
 	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
 	# switched to ELF, *-*-netbsd* would select the old
 	# object file format.  This provides both forward
@@ -181,7 +179,7 @@
 		fi
 		;;
 	    *)
-	        os=netbsd
+		os=netbsd
 		;;
 	esac
 	# The OS release
@@ -224,7 +222,7 @@
 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
 		;;
 	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
 		;;
 	esac
 	# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -270,7 +268,10 @@
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit ;;
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
     Alpha\ *:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# Should we change UNAME_MACHINE based on the output of uname instead
@@ -296,7 +297,7 @@
 	echo s390-ibm-zvmoe
 	exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+	echo powerpc-ibm-os400
 	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
@@ -395,23 +396,23 @@
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+	exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
     m68k:machten:*:*)
 	echo m68k-apple-machten${UNAME_RELEASE}
 	exit ;;
@@ -481,8 +482,8 @@
 	echo m88k-motorola-sysv3
 	exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
 	then
 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -495,7 +496,7 @@
 	else
 	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
- 	exit ;;
+	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
 	exit ;;
@@ -552,7 +553,7 @@
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[4567])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -595,52 +596,52 @@
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
+		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		      532)                      # CPU_PA_RISC2_0
+			case "${sc_kernel_bits}" in
+			  32) HP_ARCH="hppa2.0n" ;;
+			  64) HP_ARCH="hppa2.0w" ;;
 			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
+			esac ;;
+		    esac
 		fi
 		if [ "${HP_ARCH}" = "" ]; then
 		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
+		    sed 's/^		//' << EOF >$dummy.c
 
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
+		#define _HPUX_SOURCE
+		#include <stdlib.h>
+		#include <unistd.h>
 
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
+		int main ()
+		{
+		#if defined(_SC_KERNEL_BITS)
+		    long bits = sysconf(_SC_KERNEL_BITS);
+		#endif
+		    long cpu  = sysconf (_SC_CPU_VERSION);
 
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
+		    switch (cpu)
+			{
+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+			case CPU_PA_RISC2_0:
+		#if defined(_SC_KERNEL_BITS)
+			    switch (bits)
+				{
+				case 64: puts ("hppa2.0w"); break;
+				case 32: puts ("hppa2.0n"); break;
+				default: puts ("hppa2.0"); break;
+				} break;
+		#else  /* !defined(_SC_KERNEL_BITS) */
+			    puts ("hppa2.0"); break;
+		#endif
+			default: puts ("hppa1.0"); break;
+			}
+		    exit (0);
+		}
 EOF
 		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -731,22 +732,22 @@
 	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit ;;
+	exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit ;;
+	exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit ;;
+	exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit ;;
+	exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit ;;
+	exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
@@ -770,14 +771,14 @@
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -789,13 +790,12 @@
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit ;;
     *:FreeBSD:*:*)
-	case ${UNAME_MACHINE} in
-	    pc98)
-		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case ${UNAME_PROCESSOR} in
 	    amd64)
 		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
 	    *)
-		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
 	esac
 	exit ;;
     i*:CYGWIN*:*)
@@ -804,15 +804,18 @@
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
+    i*:MSYS*:*)
+	echo ${UNAME_MACHINE}-pc-msys
+	exit ;;
     i*:windows32*:*)
-    	# uname -m includes "-pc" on this system.
-    	echo ${UNAME_MACHINE}-mingw32
+	# uname -m includes "-pc" on this system.
+	echo ${UNAME_MACHINE}-mingw32
 	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
     *:Interix*:*)
-    	case ${UNAME_MACHINE} in
+	case ${UNAME_MACHINE} in
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
@@ -858,6 +861,13 @@
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    aarch64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    aarch64_be:Linux:*:*)
+	UNAME_MACHINE=aarch64_be
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
 	  EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -867,7 +877,7 @@
 	  EV6)   UNAME_MACHINE=alphaev6 ;;
 	  EV67)  UNAME_MACHINE=alphaev67 ;;
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
+	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
@@ -879,20 +889,29 @@
 	then
 	    echo ${UNAME_MACHINE}-unknown-linux-gnu
 	else
-	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    else
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
-	echo cris-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-gnu
 	exit ;;
     crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    hexagon:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	LIBC=gnu
@@ -934,7 +953,7 @@
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     padre:Linux:*:*)
 	echo sparc-unknown-linux-gnu
@@ -960,7 +979,7 @@
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -968,14 +987,17 @@
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    tile*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -984,11 +1006,11 @@
 	echo i386-sequent-sysv4
 	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+	# Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
 	exit ;;
     i*86:OS/2:*:*)
@@ -1020,7 +1042,7 @@
 	fi
 	exit ;;
     i*86:*:5:[678]*)
-    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
@@ -1048,13 +1070,13 @@
 	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
 	# Note: whatever this is, it MUST be the same as what config.sub
 	# prints for the "djgpp" host, or else GDB configury will decide that
 	# this is a cross-build.
 	echo i586-pc-msdosdjgpp
-        exit ;;
+	exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
 	exit ;;
@@ -1089,8 +1111,8 @@
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
 	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4; exit; } ;;
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
 	OS_REL='.3'
 	test -r /etc/.relid \
@@ -1133,10 +1155,10 @@
 		echo ns32k-sni-sysv
 	fi
 	exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+			# says <Richard.M.Bartel@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes@openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
@@ -1162,11 +1184,11 @@
 	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
+		echo mips-nec-sysv${UNAME_RELEASE}
 	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
+		echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit ;;
+	exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
 	exit ;;
@@ -1231,6 +1253,9 @@
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk${UNAME_RELEASE}
+	exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
@@ -1276,13 +1301,13 @@
 	echo pdp10-unknown-its
 	exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+	echo mips-sei-seiux${UNAME_RELEASE}
 	exit ;;
     *:DragonFly:*:*)
 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit ;;
     *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
 	case "${UNAME_MACHINE}" in
 	    A*) echo alpha-dec-vms ; exit ;;
 	    I*) echo ia64-dec-vms ; exit ;;
@@ -1300,6 +1325,9 @@
     i*86:AROS:*:*)
 	echo ${UNAME_MACHINE}-pc-aros
 	exit ;;
+    x86_64:VMkernel:*:*)
+	echo ${UNAME_MACHINE}-unknown-esx
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1322,11 +1350,11 @@
 #include <sys/param.h>
   printf ("m68k-sony-newsos%s\n",
 #ifdef NEWSOS4
-          "4"
+	"4"
 #else
-	  ""
+	""
 #endif
-         ); exit (0);
+	); exit (0);
 #endif
 #endif
 
diff --git a/config.h.in b/config.h.in
index 9396dc7..1c3e844 100644
--- a/config.h.in
+++ b/config.h.in
@@ -16,6 +16,15 @@
 /* gettext package name */
 #undef GETTEXT_PACKAGE
 
+/* The GIO library directory. */
+#undef GIO_LIBDIR
+
+/* The GIO modules directory. */
+#undef GIO_MODULE_DIR
+
+/* GStreamer API Version */
+#undef GST_API_VERSION
+
 /* data dir */
 #undef GST_DATADIR
 
@@ -43,9 +52,6 @@
 /* GStreamer license */
 #undef GST_LICENSE
 
-/* library major.minor version */
-#undef GST_MAJORMINOR
-
 /* package name in plugins */
 #undef GST_PACKAGE_NAME
 
@@ -160,15 +166,6 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
@@ -241,6 +238,9 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#undef HAVE_SYS_POLL_H
+
 /* Define to 1 if you have the <sys/prctl.h> header file. */
 #undef HAVE_SYS_PRCTL_H
 
@@ -314,9 +314,6 @@
 /* Memory alignment by pagesize */
 #undef MEMORY_ALIGNMENT_PAGESIZE
 
-/* Define if you have no native inet_aton() function. */
-#undef NO_INET_ATON
-
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
 #undef NO_MINUS_C_MINUS_O
 
diff --git a/config.sub b/config.sub
index c2d1257..c894da4 100755
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2010-01-22'
+timestamp='2012-02-10'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,9 +21,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -76,8 +74,8 @@
 GNU config.sub ($timestamp)
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -124,13 +122,18 @@
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
   *)
     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     if [ $basic_machine != $1 ]
@@ -157,8 +160,8 @@
 		os=
 		basic_machine=$1
 		;;
-        -bluegene*)
-	        os=-cnk
+	-bluegene*)
+		os=-cnk
 		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
@@ -174,10 +177,10 @@
 		os=-chorusos
 		basic_machine=$1
 		;;
- 	-chorusrdb)
- 		os=-chorusrdb
+	-chorusrdb)
+		os=-chorusrdb
 		basic_machine=$1
- 		;;
+		;;
 	-hiux*)
 		os=-hiuxwe2
 		;;
@@ -246,17 +249,22 @@
 	# Some are omitted here because they have special meanings below.
 	1750a | 580 \
 	| a29k \
+	| aarch64 | aarch64_be \
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
 	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+        | be32 | be64 \
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
+	| epiphany \
 	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| hexagon \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
 	| maxq | mb | microblaze | mcore | mep | metag \
@@ -282,29 +290,39 @@
 	| moxie \
 	| mt \
 	| msp430 \
+	| nds32 | nds32le | nds32be \
 	| nios | nios2 \
 	| ns16k | ns32k \
+	| open8 \
 	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
-	| rx \
+	| rl78 | rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| spu | strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
+	| spu \
+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
 	| ubicom32 \
-	| v850 | v850e \
+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
 	| we32k \
-	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| x86 | xc16x | xstormy16 | xtensa \
 	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-		# Motorola 68HC11/12.
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
@@ -314,6 +332,21 @@
 		basic_machine=mt-unknown
 		;;
 
+	strongarm | thumb | xscale)
+		basic_machine=arm-unknown
+		;;
+	xgate)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	xscaleeb)
+		basic_machine=armeb-unknown
+		;;
+
+	xscaleel)
+		basic_machine=armel-unknown
+		;;
+
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
@@ -328,21 +361,25 @@
 	# Recognize the basic CPU types with company name.
 	580-* \
 	| a29k-* \
+	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
+	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| hexagon-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@@ -368,26 +405,29 @@
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
+	| nds32-* | nds32le-* | nds32be-* \
 	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
+	| open8-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
 	| pyramid-* \
-	| romp-* | rs6000-* | rx-* \
+	| rl78-* | romp-* | rs6000-* | rx-* \
 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+	| tahoe-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile-* | tilegx-* \
+	| tile*-* \
 	| tron-* \
 	| ubicom32-* \
-	| v850-* | v850e-* | vax-* \
+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+	| vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* \
 	| xstormy16-* | xtensa*-* \
 	| ymp-* \
 	| z8k-* | z80-*)
@@ -412,7 +452,7 @@
 		basic_machine=a29k-amd
 		os=-udi
 		;;
-    	abacus)
+	abacus)
 		basic_machine=abacus-unknown
 		;;
 	adobe68k)
@@ -482,11 +522,20 @@
 		basic_machine=powerpc-ibm
 		os=-cnk
 		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
 		;;
-        cegcc)
+	cegcc)
 		basic_machine=arm-unknown
 		os=-cegcc
 		;;
@@ -518,7 +567,7 @@
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16)
+	cr16 | cr16-*)
 		basic_machine=cr16-unknown
 		os=-elf
 		;;
@@ -676,7 +725,6 @@
 	i370-ibm* | ibm*)
 		basic_machine=i370-ibm
 		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
 	i*86v32)
 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
 		os=-sysv32
@@ -734,7 +782,7 @@
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-        microblaze)
+	microblaze)
 		basic_machine=microblaze-xilinx
 		;;
 	mingw32)
@@ -773,10 +821,18 @@
 	ms1-*)
 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
 		;;
+	msys)
+		basic_machine=i386-pc
+		os=-msys
+		;;
 	mvs)
 		basic_machine=i370-ibm
 		os=-mvs
 		;;
+	nacl)
+		basic_machine=le32-unknown
+		os=-nacl
+		;;
 	ncr3000)
 		basic_machine=i486-ncr
 		os=-sysv4
@@ -841,6 +897,12 @@
 	np1)
 		basic_machine=np1-gould
 		;;
+	neo-tandem)
+		basic_machine=neo-tandem
+		;;
+	nse-tandem)
+		basic_machine=nse-tandem
+		;;
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
@@ -923,9 +985,10 @@
 		;;
 	power)	basic_machine=power-ibm
 		;;
-	ppc)	basic_machine=powerpc-unknown
+	ppc | ppcbe)	basic_machine=powerpc-unknown
 		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ppc-* | ppcbe-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
 	ppcle | powerpclittle | ppc-le | powerpc-little)
 		basic_machine=powerpcle-unknown
@@ -1019,6 +1082,9 @@
 		basic_machine=i860-stratus
 		os=-sysv4
 		;;
+	strongarm-* | thumb-*)
+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	sun2)
 		basic_machine=m68000-sun
 		;;
@@ -1075,25 +1141,8 @@
 		basic_machine=t90-cray
 		os=-unicos
 		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-        # This must be matched before tile*.
-        tilegx*)
-		basic_machine=tilegx-unknown
-		os=-linux-gnu
-		;;
 	tile*)
-		basic_machine=tile-unknown
+		basic_machine=$basic_machine-unknown
 		os=-linux-gnu
 		;;
 	tx39)
@@ -1163,6 +1212,9 @@
 	xps | xps100)
 		basic_machine=xps100-honeywell
 		;;
+	xscale-* | xscalee[bl]-*)
+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		;;
 	ymp)
 		basic_machine=ymp-cray
 		os=-unicos
@@ -1260,11 +1312,11 @@
 if [ x"$os" != x"" ]
 then
 case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
+	# First match some system type aliases
+	# that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
-        -auroraux)
-	        os=-auroraux
+	-auroraux)
+		os=-auroraux
 		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1300,8 +1352,9 @@
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* | -cegcc* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1348,7 +1401,7 @@
 	-opened*)
 		os=-openedition
 		;;
-        -os400*)
+	-os400*)
 		os=-os400
 		;;
 	-wince*)
@@ -1397,7 +1450,7 @@
 	-sinix*)
 		os=-sysv4
 		;;
-        -tpf*)
+	-tpf*)
 		os=-tpf
 		;;
 	-triton*)
@@ -1442,8 +1495,8 @@
 	-dicos*)
 		os=-dicos
 		;;
-        -nacl*)
-	        ;;
+	-nacl*)
+		;;
 	-none)
 		;;
 	*)
@@ -1466,10 +1519,10 @@
 # system, and we'll never get to this point.
 
 case $basic_machine in
-        score-*)
+	score-*)
 		os=-elf
 		;;
-        spu-*)
+	spu-*)
 		os=-elf
 		;;
 	*-acorn)
@@ -1481,8 +1534,17 @@
 	arm*-semi)
 		os=-aout
 		;;
-        c4x-* | tic4x-*)
-        	os=-coff
+	c4x-* | tic4x-*)
+		os=-coff
+		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
@@ -1502,14 +1564,11 @@
 		;;
 	m68000-sun)
 		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
 		;;
 	m68*-cisco)
 		os=-aout
 		;;
-        mep-*)
+	mep-*)
 		os=-elf
 		;;
 	mips*-cisco)
@@ -1536,7 +1595,7 @@
 	*-ibm)
 		os=-aix
 		;;
-    	*-knuth)
+	*-knuth)
 		os=-mmixware
 		;;
 	*-wec)
diff --git a/configure b/configure
index f886595..30aef90 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for GStreamer 0.11.1.
+# Generated by GNU Autoconf 2.68 for GStreamer 0.11.90.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -91,6 +91,7 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -173,6 +174,14 @@
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
 test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
@@ -216,11 +225,18 @@
   # We cannot yet assume a decent shell, so we have to provide a
 	# neutralization value for shells without unset; and this also
 	# works around shells that cannot unset nonexistent variables.
+	# Preserve -v and -x to the replacement shell.
 	BASH_ENV=/dev/null
 	ENV=/dev/null
 	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
 	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+	case $- in # ((((
+	  *v*x* | *x*v* ) as_opts=-vx ;;
+	  *v* ) as_opts=-v ;;
+	  *x* ) as_opts=-x ;;
+	  * ) as_opts= ;;
+	esac
+	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -529,155 +545,8 @@
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-
-
-# Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "$0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
 exec 6>&1
@@ -702,8 +571,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer'
 PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='0.11.1'
-PACKAGE_STRING='GStreamer 0.11.1'
+PACKAGE_VERSION='0.11.90'
+PACKAGE_STRING='GStreamer 0.11.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -783,12 +652,13 @@
 HAVE_CHECK_FALSE
 HAVE_CHECK_TRUE
 GLIB_PREFIX
-GLIB_ONLY_LIBS
-GLIB_ONLY_CFLAGS
+GIO_LDFLAGS
+GIO_LIBS
+GIO_CFLAGS
+GLIB_EXTRA_CFLAGS
 GLIB_LIBS
 GLIB_CFLAGS
 GLIB_REQ
-INET_ATON_LIBS
 GST_USING_PRINTF_EXTENSION_DEFINE
 GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE
 GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE
@@ -936,9 +806,6 @@
 GST_DISABLE_PLUGIN_FALSE
 GST_DISABLE_PLUGIN_TRUE
 GST_DISABLE_PLUGIN_DEFINE
-GST_DISABLE_NET_FALSE
-GST_DISABLE_NET_TRUE
-GST_DISABLE_NET_DEFINE
 GST_REGISTRY_DOC_TYPES
 GST_DISABLE_REGISTRY_FALSE
 GST_DISABLE_REGISTRY_TRUE
@@ -984,8 +851,9 @@
 LIPO
 NMEDIT
 DSYMUTIL
-lt_ECHO
+MANIFEST_TOOL
 RANLIB
+ac_ct_AR
 AR
 LN_S
 NM
@@ -999,6 +867,7 @@
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -1021,9 +890,15 @@
 GST_AGE
 GST_REVISION
 GST_CURRENT
-GST_MAJORMINOR
+GST_API_VERSION
+GST_VERSION_NANO
+GST_VERSION_MICRO
+GST_VERSION_MINOR
+GST_VERSION_MAJOR
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 host_os
 host_vendor
 host_cpu
@@ -1112,6 +987,7 @@
 enable_fast_install
 enable_dependency_tracking
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
 with_autoconf
 with_autoheader
@@ -1121,13 +997,13 @@
 enable_rpath
 with_libiconv_prefix
 with_libintl_prefix
+enable_fatal_warnings
 enable_gst_debug
 enable_parse
 enable_option_parsing
 enable_trace
 enable_alloc_trace
 enable_registry
-enable_net
 enable_plugin
 enable_debug
 enable_profiling
@@ -1171,8 +1047,8 @@
 CXXCPP
 GLIB_CFLAGS
 GLIB_LIBS
-GLIB_ONLY_CFLAGS
-GLIB_ONLY_LIBS'
+GIO_CFLAGS
+GIO_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1577,7 +1453,7 @@
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1715,7 +1591,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer 0.11.1 to adapt to many kinds of systems.
+\`configure' configures GStreamer 0.11.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1785,7 +1661,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 0.11.1:";;
+     short | recursive ) echo "Configuration of GStreamer 0.11.90:";;
    esac
   cat <<\_ACEOF
 
@@ -1806,6 +1682,8 @@
   --disable-libtool-lock  avoid locking (might break parallel builds)
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
+  --disable-fatal-warnings
+                          Don't turn compiler warnings into fatal errors
   --disable-gst-debug     disable debugging subsystem
   --disable-parse         disable command-line parser
   --disable-option-parsing
@@ -1813,7 +1691,6 @@
   --disable-trace         disable tracing subsystem
   --disable-alloc-trace   disable allocation tracing
   --disable-registry      disable plugin registry
-  --disable-net           disable network distribution
   --disable-plugin        disable plugin
   --disable-debug         disable addition of -g debugging info
   --enable-profiling      adds -pg to compiler commandline, for profiling
@@ -1839,9 +1716,11 @@
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
   --with-autoconf         use a different autoconf for regeneration of
                           Makefiles
   --with-autoheader       use a different autoheader for regeneration of
@@ -1882,10 +1761,8 @@
   CXXCPP      C++ preprocessor
   GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
   GLIB_LIBS   linker flags for GLIB, overriding pkg-config
-  GLIB_ONLY_CFLAGS
-              C compiler flags for GLIB_ONLY, overriding pkg-config
-  GLIB_ONLY_LIBS
-              linker flags for GLIB_ONLY, overriding pkg-config
+  GIO_CFLAGS  C compiler flags for GIO, overriding pkg-config
+  GIO_LIBS    linker flags for GIO, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1953,8 +1830,8 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 0.11.1
-generated by GNU Autoconf 2.67
+GStreamer configure 0.11.90
+generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -2000,7 +1877,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -2046,7 +1923,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -2060,7 +1937,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2078,7 +1955,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -2114,7 +1991,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -2156,7 +2033,7 @@
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -2169,7 +2046,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2224,7 +2101,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
@@ -2239,7 +2116,7 @@
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
 $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2270,7 +2147,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_decl
 
@@ -2307,7 +2184,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_compile
@@ -2344,7 +2221,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_cpp
@@ -2390,7 +2267,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_link
@@ -2403,10 +2280,10 @@
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -2473,7 +2350,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2482,7 +2359,7 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -2495,7 +2372,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -2536,7 +2413,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 
@@ -2713,7 +2590,7 @@
 rm -f conftest.val
 
   fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_compute_int
@@ -2721,8 +2598,8 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer $as_me 0.11.1, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+It was created by GStreamer $as_me 0.11.90, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -2980,7 +2857,7 @@
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -3125,7 +3002,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3212,11 +3089,11 @@
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
+    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
 esac
 
 # Do `set' in a subshell so we don't clobber the current shell's
@@ -3302,7 +3179,7 @@
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -3342,7 +3219,7 @@
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -3395,7 +3272,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3446,7 +3323,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -3486,7 +3363,7 @@
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3544,7 +3421,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='0.11.1'
+ VERSION='0.11.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3574,11 +3451,11 @@
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
@@ -3586,9 +3463,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 0.11.1 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 0.11.1 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 0.11.1 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 0.11.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 0.11.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 0.11.90 | cut -d'.' -f3)
 
 
 
@@ -3599,7 +3476,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 0.11.1 | cut -d'.' -f4)
+  NANO=$(echo 0.11.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -3657,7 +3534,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -3673,7 +3550,7 @@
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -3691,7 +3568,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -3706,7 +3583,7 @@
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -3733,23 +3610,58 @@
 no)  AM_DEFAULT_VERBOSITY=1;;
 *)   AM_DEFAULT_VERBOSITY=0;;
 esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
 AM_BACKSLASH='\'
 
 
-GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
-GST_MAJORMINOR=0.11
+GST_VERSION_MAJOR=1
+GST_VERSION_MINOR=0
+GST_VERSION_MICRO=0
+GST_VERSION_NANO=0
+
+
+
+
+
+GST_API_VERSION=1.0
 
 
 cat >>confdefs.h <<_ACEOF
-#define GST_MAJORMINOR "$GST_MAJORMINOR"
+#define GST_API_VERSION "$GST_API_VERSION"
 _ACEOF
 
 
 
-  GST_CURRENT=31
+  GST_CURRENT=0
   GST_REVISION=0
   GST_AGE=0
-  GST_LIBVERSION=31:0:0
+  GST_LIBVERSION=0:0:0
 
 
 
@@ -3772,13 +3684,13 @@
 enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
+if ${ac_cv_prog_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AS"; then
@@ -3818,7 +3730,7 @@
 set dummy as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AS"; then
@@ -3870,7 +3782,7 @@
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DLLTOOL"; then
@@ -3910,7 +3822,7 @@
 set dummy dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DLLTOOL"; then
@@ -3962,7 +3874,7 @@
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -4002,7 +3914,7 @@
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -4080,8 +3992,8 @@
 
 
 
-macro_version='2.2.6b'
-macro_revision='1.3017'
+macro_version='2.4.2'
+macro_revision='1.3337'
 
 
 
@@ -4097,6 +4009,75 @@
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 DEPDIR="${am__leading_dot}deps"
 
 ac_config_commands="$ac_config_commands depfiles"
@@ -4149,6 +4130,7 @@
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -4169,7 +4151,7 @@
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4209,7 +4191,7 @@
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4262,7 +4244,7 @@
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4302,7 +4284,7 @@
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4361,7 +4343,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4405,7 +4387,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4460,7 +4442,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4575,7 +4557,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -4618,7 +4600,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4677,7 +4659,7 @@
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -4688,7 +4670,7 @@
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4729,7 +4711,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4739,7 +4721,7 @@
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4776,7 +4758,7 @@
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -4854,7 +4836,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -4953,7 +4935,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4962,6 +4944,7 @@
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -5021,7 +5004,7 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -5078,7 +5061,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -5160,7 +5143,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5223,7 +5206,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5290,7 +5273,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -5421,7 +5404,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -5461,7 +5444,7 @@
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -5488,7 +5471,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
+if ${lt_cv_path_NM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -5541,14 +5524,17 @@
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -5586,13 +5572,13 @@
 fi
 if test -z "$DUMPBIN"; then
   ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+  for ac_prog in dumpbin "link -dump"
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -5641,6 +5627,15 @@
   fi
 fi
 
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
 
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -5655,18 +5650,18 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
+if ${lt_cv_nm_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5663: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5666: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5669: output\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -5690,7 +5685,7 @@
 # find the maximum length of command line arguments
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -5723,6 +5718,11 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -5748,6 +5748,11 @@
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -5787,8 +5792,8 @@
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -5830,8 +5835,8 @@
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -5880,9 +5885,83 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
+if ${lt_cv_ld_reload_flag+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
@@ -5896,6 +5975,11 @@
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -5918,7 +6002,7 @@
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -5958,7 +6042,7 @@
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -6014,7 +6098,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
+if ${lt_cv_deplibs_check_method+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -6056,16 +6140,18 @@
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -6095,6 +6181,10 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -6103,11 +6193,11 @@
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -6128,7 +6218,7 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -6210,6 +6300,21 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -6225,12 +6330,163 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -6243,7 +6499,7 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6263,14 +6519,18 @@
 fi
 
 
+    test -n "$AR" && break
+  done
 fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
   ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -6283,7 +6543,7 @@
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
+    ac_cv_prog_ac_ct_AR="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6302,6 +6562,10 @@
 $as_echo "no" >&6; }
 fi
 
+
+  test -n "$ac_ct_AR" && break
+done
+
   if test "x$ac_ct_AR" = x; then
     AR="false"
   else
@@ -6313,12 +6577,10 @@
 esac
     AR=$ac_ct_AR
   fi
-else
-  AR="$ac_cv_prog_AR"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+: ${AR=ar}
+: ${AR_FLAGS=cru}
 
 
 
@@ -6330,12 +6592,70 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -6375,7 +6695,7 @@
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -6434,7 +6754,7 @@
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -6474,7 +6794,7 @@
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -6536,15 +6856,27 @@
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
 
 
 
@@ -6591,7 +6923,7 @@
 # Check for command to grab the raw symbol name followed by C symbol from nm.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6652,8 +6984,8 @@
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -6677,6 +7009,7 @@
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -6689,6 +7022,7 @@
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -6714,8 +7048,8 @@
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
@@ -6730,6 +7064,18 @@
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -6741,7 +7087,7 @@
 	  cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -6767,8 +7113,8 @@
 _LT_EOF
 	  # Now try linking the two files.
 	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -6778,8 +7124,8 @@
   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
 	else
 	  echo "cannot find nm_test_func in $nlist" >&5
 	fi
@@ -6816,6 +7162,12 @@
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
 
 
 
@@ -6838,6 +7190,48 @@
 
 
 
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
@@ -6869,7 +7263,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6872 "configure"' > conftest.$ac_ext
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -6963,7 +7357,7 @@
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
+if ${lt_cv_cc_needs_belf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -7004,7 +7398,7 @@
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -7015,7 +7409,20 @@
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -7031,6 +7438,123 @@
 
 need_locks="$enable_libtool_lock"
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
 
   case $host_os in
     rhapsody* | darwin*)
@@ -7039,7 +7563,7 @@
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -7079,7 +7603,7 @@
 set dummy dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -7131,7 +7655,7 @@
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -7171,7 +7695,7 @@
 set dummy nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -7223,7 +7747,7 @@
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
+if ${ac_cv_prog_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -7263,7 +7787,7 @@
 set dummy lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -7315,7 +7839,7 @@
 set dummy ${ac_tool_prefix}otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
+if ${ac_cv_prog_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -7355,7 +7879,7 @@
 set dummy otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -7407,7 +7931,7 @@
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -7447,7 +7971,7 @@
 set dummy otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -7522,7 +8046,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -7538,7 +8062,13 @@
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&5
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&5
@@ -7549,9 +8079,10 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
@@ -7581,6 +8112,41 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -7608,7 +8174,7 @@
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -7628,7 +8194,7 @@
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -7744,7 +8310,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -7756,7 +8322,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7887,7 +8453,7 @@
 do :
   ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_DLFCN_H 1
 _ACEOF
@@ -7898,6 +8464,8 @@
 
 
 
+
+
 # Set options
 
 
@@ -7969,7 +8537,22 @@
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -8046,6 +8629,11 @@
 
 
 
+
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -8067,7 +8655,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
+if ${lt_cv_objdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -8095,19 +8683,6 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 case $host_os in
 aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
@@ -8120,23 +8695,6 @@
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -8165,7 +8723,7 @@
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
 # Only perform the check for file, if the check method requires it
@@ -8175,7 +8733,7 @@
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8241,7 +8799,7 @@
   if test -n "$ac_tool_prefix"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8374,11 +8932,16 @@
 lt_prog_compiler_no_builtin_flag=
 
 if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -8394,15 +8957,15 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8397: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8401: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
@@ -8431,8 +8994,6 @@
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -8480,6 +9041,12 @@
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -8522,6 +9089,15 @@
       lt_prog_compiler_pic='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -8584,7 +9160,13 @@
 	lt_prog_compiler_pic='--shared'
 	lt_prog_compiler_static='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	lt_prog_compiler_wl='-Wl,-Wl,,'
+	lt_prog_compiler_pic='-PIC'
+	lt_prog_compiler_static='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	lt_prog_compiler_wl='-Wl,'
@@ -8596,25 +9178,40 @@
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	lt_prog_compiler_wl='-Wl,'
 	lt_prog_compiler_pic='-qpic'
 	lt_prog_compiler_static='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
 	  lt_prog_compiler_wl='-Wl,'
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
+        *Intel*\ [CF]*Compiler*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fPIC'
+	  lt_prog_compiler_static='-static'
+	  ;;
+	*Portland\ Group*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fpic'
 	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
 	  ;;
 	esac
 	;;
@@ -8646,7 +9243,7 @@
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	lt_prog_compiler_wl='-Qoption ld ';;
       *)
 	lt_prog_compiler_wl='-Wl,';;
@@ -8703,13 +9300,17 @@
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
 
-
-
-
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
@@ -8717,7 +9318,7 @@
 if test -n "$lt_prog_compiler_pic"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -8733,15 +9334,15 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8736: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8740: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
@@ -8770,13 +9371,18 @@
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -8789,7 +9395,7 @@
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
@@ -8819,7 +9425,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -8838,16 +9444,16 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8841: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8845: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -8874,7 +9480,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -8893,16 +9499,16 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8896: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8900: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -8968,7 +9574,6 @@
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -9012,13 +9617,39 @@
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
+  linux* | k*bsd*-gnu | gnu*)
     link_all_deplibs=no
     ;;
   esac
 
   ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -9052,11 +9683,12 @@
 	ld_shlibs=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -9092,10 +9724,12 @@
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -9113,6 +9747,11 @@
       fi
       ;;
 
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
@@ -9138,15 +9777,16 @@
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -9157,13 +9797,17 @@
 	lf95*)				# Lahey Fortran 8.1
 	  whole_archive_flag_spec=
 	  tmp_sharedflag='--shared' ;;
-	xl[cC]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  compiler_needs_object=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  compiler_needs_object=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
@@ -9179,17 +9823,16 @@
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -9203,8 +9846,8 @@
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -9222,8 +9865,8 @@
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -9269,8 +9912,8 @@
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	ld_shlibs=no
       fi
@@ -9310,8 +9953,10 @@
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
@@ -9399,7 +10044,13 @@
 	allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9412,25 +10063,32 @@
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
@@ -9439,7 +10097,13 @@
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	 if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -9452,30 +10116,42 @@
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
 	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  no_undefined_flag=' ${wl}-bernotok'
 	  allow_undefined_flag=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec='$convenience'
+	  fi
 	  archive_cmds_need_lc=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -9507,20 +10183,64 @@
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	always_export_symbols=yes
+	file_list_spec='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+	enable_shared_with_static_runtimes=yes
+	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	old_postinstall_cmds='chmod 644 $oldlib'
+	postlink_cmds='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	old_archive_from_new_cmds='true'
+	# FIXME: Should let the user specify the lib program.
+	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	enable_shared_with_static_runtimes=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -9530,7 +10250,12 @@
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec=''
+  fi
   link_all_deplibs=yes
   allow_undefined_flag="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -9538,7 +10263,7 @@
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -9556,10 +10281,6 @@
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -9572,7 +10293,7 @@
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -9581,7 +10302,7 @@
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -9589,7 +10310,7 @@
 
     hpux9*)
       if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -9604,14 +10325,13 @@
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
 	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
 	hardcode_libdir_separator=:
 	hardcode_direct=yes
 	hardcode_direct_absolute=yes
@@ -9623,16 +10343,16 @@
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
 	case $host_cpu in
 	hppa*64*)
 	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
@@ -9644,7 +10364,46 @@
 	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
 	  ;;
 	esac
       fi
@@ -9672,26 +10431,39 @@
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	# This should be the same for all languages, so no per-tag cache variable.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void) {}
+int foo (void) { return 0; }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
       else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -9753,17 +10525,17 @@
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
 	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -9773,13 +10545,13 @@
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
 	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
 	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	hardcode_libdir_flag_spec='-rpath $libdir'
@@ -9792,9 +10564,9 @@
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
 	wlarc='${wl}'
-	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
@@ -9982,44 +10754,50 @@
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-	pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl
+	  pic_flag=$lt_prog_compiler_pic
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag
+	  allow_undefined_flag=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
+	  then
+	    lt_cv_archive_cmds_need_lc=no
+	  else
+	    lt_cv_archive_cmds_need_lc=yes
+	  fi
+	  allow_undefined_flag=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
   fi
@@ -10177,11 +10955,6 @@
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -10190,16 +10963,23 @@
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -10212,7 +10992,7 @@
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -10232,7 +11012,13 @@
   if (lt_foo != "") { lt_freq[lt_foo]++; }
   if (lt_freq[lt_foo] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -10258,7 +11044,7 @@
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -10267,7 +11053,7 @@
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -10320,7 +11106,7 @@
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -10332,7 +11118,7 @@
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -10351,8 +11137,9 @@
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -10373,36 +11160,83 @@
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -10423,7 +11257,7 @@
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -10431,10 +11265,6 @@
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -10442,7 +11272,7 @@
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -10460,7 +11290,7 @@
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -10480,12 +11310,26 @@
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -10531,12 +11375,14 @@
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -10552,7 +11398,7 @@
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -10589,9 +11435,9 @@
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -10599,12 +11445,17 @@
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10617,13 +11468,17 @@
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -10632,7 +11487,7 @@
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -10676,7 +11531,7 @@
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -10745,7 +11600,7 @@
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -10770,7 +11625,7 @@
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -10794,7 +11649,7 @@
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -10825,7 +11680,7 @@
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -10835,7 +11690,7 @@
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -10947,6 +11802,11 @@
 
 
 
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
@@ -11019,7 +11879,7 @@
   # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11053,7 +11913,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
@@ -11067,12 +11927,12 @@
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+if ${ac_cv_lib_dld_shl_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11106,16 +11966,16 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11149,12 +12009,12 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+if ${ac_cv_lib_svld_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11188,12 +12048,12 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+if ${ac_cv_lib_dld_dld_link+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -11227,7 +12087,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -11268,7 +12128,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
+if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -11277,7 +12137,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11280 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11318,7 +12178,13 @@
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -11327,7 +12193,11 @@
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -11364,7 +12234,7 @@
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
+if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -11373,7 +12243,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11376 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11414,7 +12284,13 @@
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -11423,7 +12299,11 @@
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -11592,6 +12472,8 @@
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -11717,7 +12599,7 @@
 set dummy msgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -11758,7 +12640,7 @@
 set dummy gmsgfmt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -11840,7 +12722,7 @@
 set dummy xgettext; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -11918,7 +12800,7 @@
 set dummy msgmerge; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -12040,7 +12922,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -12077,7 +12959,7 @@
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -12097,7 +12979,7 @@
 
                                                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
 $as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12611,7 +13493,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -12645,7 +13527,7 @@
   fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -12721,7 +13603,7 @@
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 $as_echo_n "checking for GNU gettext in libc... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then :
+if eval \${$gt_func_gnugettext_libc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -12784,7 +13666,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 $as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12841,7 +13723,7 @@
   if test "$am_cv_func_iconv" = yes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 $as_echo_n "checking for working iconv... " >&6; }
-if test "${am_cv_func_iconv_works+set}" = set; then :
+if ${am_cv_func_iconv_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13392,7 +14274,7 @@
 
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then :
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
@@ -13569,7 +14451,7 @@
 
 
   if test "$USE_NLS" = "yes"; then
-    GETTEXT_PACKAGE=gstreamer-$GST_MAJORMINOR
+    GETTEXT_PACKAGE=gstreamer-$GST_API_VERSION
   else
     GETTEXT_PACKAGE=NULL
   fi
@@ -13617,6 +14499,21 @@
 
 
 
+  # Check whether --enable-fatal-warnings was given.
+if test "${enable_fatal_warnings+set}" = set; then :
+  enableval=$enable_fatal_warnings;
+      case "${enableval}" in
+        yes) FATAL_WARNINGS=yes ;;
+        no)  FATAL_WARNINGS=no ;;
+        *)   as_fn_error $? "bad value ${enableval} for --disable-fatal-warnings" "$LINENO" 5 ;;
+      esac
+
+else
+  FATAL_WARNINGS=$GST_GIT
+fi
+
+
+
 
 
   # Check whether --enable-gst-debug was given.
@@ -13625,7 +14522,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_GST_DEBUG=no ;;
         no) GST_DISABLE_GST_DEBUG=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-gst-debug" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-gst-debug" "$LINENO" 5 ;;
        esac
 
 else
@@ -13659,7 +14556,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_PARSE=no ;;
         no) GST_DISABLE_PARSE=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-parse" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-parse" "$LINENO" 5 ;;
        esac
 
 else
@@ -13698,7 +14595,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_OPTION_PARSING=no ;;
         no) GST_DISABLE_OPTION_PARSING=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-option-parsing" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-option-parsing" "$LINENO" 5 ;;
        esac
 
 else
@@ -13737,7 +14634,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_TRACE=no ;;
         no) GST_DISABLE_TRACE=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-trace" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-trace" "$LINENO" 5 ;;
        esac
 
 else
@@ -13771,7 +14668,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_ALLOC_TRACE=no ;;
         no) GST_DISABLE_ALLOC_TRACE=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-alloc-trace" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-alloc-trace" "$LINENO" 5 ;;
        esac
 
 else
@@ -13805,7 +14702,7 @@
       case "${enableval}" in
         yes) GST_DISABLE_REGISTRY=no ;;
         no) GST_DISABLE_REGISTRY=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-registry" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-registry" "$LINENO" 5 ;;
        esac
 
 else
@@ -13840,47 +14737,13 @@
 
 
 
-  # Check whether --enable-net was given.
-if test "${enable_net+set}" = set; then :
-  enableval=$enable_net;
-      case "${enableval}" in
-        yes) GST_DISABLE_NET=no ;;
-        no) GST_DISABLE_NET=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-net" "$LINENO" 5  ;;
-       esac
-
-else
-  GST_DISABLE_NET=no
-fi
-
-  if test x$GST_DISABLE_NET = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: disabled subsystem network distribution" >&5
-$as_echo "$as_me: disabled subsystem network distribution" >&6;}
-    GST_DISABLE_NET_DEFINE="#define GST_DISABLE_NET 1"
-  else
-    GST_DISABLE_NET_DEFINE="/* #undef GST_DISABLE_NET */"
-  fi
-
-
-
- if test "x$GST_DISABLE_NET" = "xyes"; then
-  GST_DISABLE_NET_TRUE=
-  GST_DISABLE_NET_FALSE='#'
-else
-  GST_DISABLE_NET_TRUE='#'
-  GST_DISABLE_NET_FALSE=
-fi
-
-
-
-
   # Check whether --enable-plugin was given.
 if test "${enable_plugin+set}" = set; then :
   enableval=$enable_plugin;
       case "${enableval}" in
         yes) GST_DISABLE_PLUGIN=no ;;
         no) GST_DISABLE_PLUGIN=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-plugin" "$LINENO" 5  ;;
+        *) as_fn_error $? "bad value ${enableval} for --enable-plugin" "$LINENO" 5 ;;
        esac
 
 else
@@ -13913,7 +14776,7 @@
       case "${enableval}" in
         yes) USE_DEBUG=yes ;;
         no)  USE_DEBUG=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;;
       esac
 
 else
@@ -13927,7 +14790,7 @@
       case "${enableval}" in
         yes) USE_PROFILING=yes ;;
         no)  USE_PROFILING=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;;
       esac
 
 else
@@ -13942,7 +14805,7 @@
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -13985,7 +14848,7 @@
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_PKG_CONFIG in
@@ -14057,7 +14920,7 @@
       case "${enableval}" in
         yes) USE_VALGRIND="$USE_DEBUG" ;;
         no)  USE_VALGRIND=no ;;
-        *)   as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5  ;;
+        *)   as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;;
       esac
 
 else
@@ -14275,7 +15138,7 @@
         case "${enableval}" in
           yes) BUILD_EXAMPLES=yes ;;
           no)  BUILD_EXAMPLES=no ;;
-          *)   as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5  ;;
+          *)   as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;;
         esac
 
 else
@@ -14309,8 +15172,8 @@
 if test "${with_package_name+set}" = set; then :
   withval=$with_package_name;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;;
         *)   GST_PACKAGE_NAME="${withval}" ;;
       esac
 
@@ -14352,8 +15215,8 @@
 if test "${with_package_origin+set}" = set; then :
   withval=$with_package_origin;
       case "${withval}" in
-        yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5  ;;
-        no)  as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5  ;;
+        yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;;
+        no)  as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;;
         *)   GST_PACKAGE_ORIGIN="${withval}" ;;
       esac
 
@@ -14469,7 +15332,7 @@
     case "${enableval}" in
       yes) BUILD_TESTS=yes ;;
       no)  BUILD_TESTS=no ;;
-      *)   as_fn_error $? "bad value ${enableval} for --disable-tests" "$LINENO" 5  ;;
+      *)   as_fn_error $? "bad value ${enableval} for --disable-tests" "$LINENO" 5 ;;
     esac
 
 else
@@ -14490,7 +15353,7 @@
     case "${enableval}" in
       yes) BUILD_FAILING_TESTS=yes ;;
       no)  BUILD_FAILING_TESTS=no ;;
-      *)   as_fn_error $? "bad value ${enableval} for --disable-failing-tests" "$LINENO" 5  ;;
+      *)   as_fn_error $? "bad value ${enableval} for --disable-failing-tests" "$LINENO" 5 ;;
     esac
 
 else
@@ -14518,7 +15381,7 @@
     case "${enableval}" in
       yes) USE_POISONING=yes ;;
       no)  USE_POISONING=no ;;
-      *)   as_fn_error $? "bad value ${enableval} for --enable-poisoning" "$LINENO" 5  ;;
+      *)   as_fn_error $? "bad value ${enableval} for --enable-poisoning" "$LINENO" 5 ;;
     esac
 
 else
@@ -14539,14 +15402,14 @@
       case $host_os in
          solaris*)
             ac_fn_c_check_decl "$LINENO" "__i386" "ac_cv_have_decl___i386" "$ac_includes_default"
-if test "x$ac_cv_have_decl___i386" = x""yes; then :
+if test "x$ac_cv_have_decl___i386" = xyes; then :
   I386_ABI="yes"
 else
   I386_ABI="no"
 fi
 
             ac_fn_c_check_decl "$LINENO" "__amd64" "ac_cv_have_decl___amd64" "$ac_includes_default"
-if test "x$ac_cv_have_decl___amd64" = x""yes; then :
+if test "x$ac_cv_have_decl___amd64" = xyes; then :
   AMD64_ABI="yes"
 else
   AMD64_ABI="no"
@@ -14651,7 +15514,7 @@
 
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -14870,7 +15733,7 @@
      ;; #(
    *)
      as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5  ;;
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
 
@@ -15018,7 +15881,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -15169,7 +16032,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
@@ -15220,7 +16083,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -15289,7 +16152,7 @@
   if test $ac_cv_sys_file_offset_bits = unknown; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -15370,7 +16233,7 @@
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15410,7 +16273,7 @@
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -15463,7 +16326,7 @@
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15503,7 +16366,7 @@
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15562,7 +16425,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -15606,7 +16469,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -15661,7 +16524,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -15690,7 +16553,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15727,7 +16590,7 @@
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -15805,7 +16668,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -15904,7 +16767,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -15913,6 +16776,7 @@
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -15972,7 +16836,7 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -16033,7 +16897,7 @@
   *) :
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
-if test "${ac_cv_prog_cc_c99+set}" = set; then :
+if ${ac_cv_prog_cc_c99+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c99=no
@@ -16208,7 +17072,7 @@
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -16304,7 +17168,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
-  if test "${ac_cv_prog_cc_stdc+set}" = set; then :
+  if ${ac_cv_prog_cc_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 
@@ -16330,7 +17194,7 @@
 fi
 set dummy $CC; ac_cc=`$as_echo "$2" |
 		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then :
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16459,7 +17323,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -16468,6 +17332,7 @@
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -16525,7 +17390,7 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -16597,7 +17462,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
+if ${ac_cv_prog_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
@@ -16641,7 +17506,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
@@ -16719,7 +17584,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16756,7 +17621,7 @@
 ac_save_CXXFLAGS=$CXXFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
+if ${ac_cv_prog_cxx_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
@@ -16842,7 +17707,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -16851,6 +17716,7 @@
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -16910,7 +17776,7 @@
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -16966,391 +17832,16 @@
 
 
 
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
+func_stripname_cnf ()
 {
-#ifndef __GNUC__
-       choke me
-#endif
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX"  am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
-
-  am_cv_CXX_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
-  fi
-  am__universal=false
-  case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac
-
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+      if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
     ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
     (test "X$CXX" != "Xg++"))) ; then
   ac_ext=cpp
@@ -17361,7 +17852,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
 $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+  if ${ac_cv_prog_CXXCPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CXXCPP needs to be expanded
@@ -17476,7 +17967,8 @@
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-_lt_caught_CXX_error=yes; }
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -17489,9 +17981,6 @@
   _lt_caught_CXX_error=yes
 fi
 
-
-
-
 ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -17507,7 +17996,6 @@
 hardcode_direct_CXX=no
 hardcode_direct_absolute_CXX=no
 hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
 hardcode_libdir_separator_CXX=
 hardcode_minus_L_CXX=no
 hardcode_shlibpath_var_CXX=unsupported
@@ -17517,6 +18005,8 @@
 module_expsym_cmds_CXX=
 link_all_deplibs_CXX=unknown
 old_archive_cmds_CXX=$old_archive_cmds
+reload_flag_CXX=$reload_flag
+reload_cmds_CXX=$reload_cmds
 no_undefined_flag_CXX=
 whole_archive_flag_spec_CXX=
 enable_shared_with_static_runtimes_CXX=no
@@ -17572,6 +18062,7 @@
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -17589,6 +18080,7 @@
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   compiler_CXX=$CC
   for cc_temp in $compiler""; do
@@ -17599,7 +18091,7 @@
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
   if test -n "$compiler"; then
@@ -17662,7 +18154,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -17702,7 +18194,7 @@
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -17728,8 +18220,8 @@
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -17761,7 +18253,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -17871,7 +18363,13 @@
           allow_undefined_flag_CXX='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+          if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -17884,26 +18382,33 @@
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
 
           hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
 	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
@@ -17912,7 +18417,13 @@
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	    if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -17925,30 +18436,42 @@
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
 
 	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
 	    # Warning - without using the other run time loading flags,
 	    # -berok will link without error, but may produce a broken library.
 	    no_undefined_flag_CXX=' ${wl}-bernotok'
 	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec_CXX='$convenience'
+	    if test "$with_gnu_ld" = yes; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      whole_archive_flag_spec_CXX='$convenience'
+	    fi
 	    archive_cmds_need_lc_CXX=yes
 	    # This is similar to how AIX traditionally builds its shared
 	    # libraries.
@@ -17978,28 +18501,75 @@
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-        # as there is no search path for DLLs.
-        hardcode_libdir_flag_spec_CXX='-L$libdir'
-        allow_undefined_flag_CXX=unsupported
-        always_export_symbols_CXX=no
-        enable_shared_with_static_runtimes_CXX=yes
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  hardcode_libdir_flag_spec_CXX=' '
+	  allow_undefined_flag_CXX=unsupported
+	  always_export_symbols_CXX=yes
+	  file_list_spec_CXX='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=".dll"
+	  # FIXME: Setting linknames here is a bad hack.
+	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	  archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	    else
+	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	    fi~
+	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	    linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
+	  enable_shared_with_static_runtimes_CXX=yes
+	  # Don't use ranlib
+	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
+	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
+	    lt_tool_outputfile="@TOOL_OUTPUT@"~
+	    case $lt_outputfile in
+	      *.exe|*.EXE) ;;
+	      *)
+		lt_outputfile="$lt_outputfile.exe"
+		lt_tool_outputfile="$lt_tool_outputfile.exe"
+		;;
+	    esac~
+	    func_to_tool_file "$lt_outputfile"~
+	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	      $RM "$lt_outputfile.manifest";
+	    fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
+	  allow_undefined_flag_CXX=unsupported
+	  always_export_symbols_CXX=no
+	  enable_shared_with_static_runtimes_CXX=yes
 
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          ld_shlibs_CXX=no
-        fi
-        ;;
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file (1st line
+	    # is EXPORTS), use it as is; otherwise, prepend...
+	    archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      cp $export_symbols $output_objdir/$soname.def;
+	    else
+	      echo EXPORTS > $output_objdir/$soname.def;
+	      cat $export_symbols >> $output_objdir/$soname.def;
+	    fi~
+	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    ld_shlibs_CXX=no
+	  fi
+	  ;;
+	esac
+	;;
       darwin* | rhapsody*)
 
 
@@ -18007,7 +18577,12 @@
   hardcode_direct_CXX=no
   hardcode_automatic_CXX=yes
   hardcode_shlibpath_var_CXX=unsupported
-  whole_archive_flag_spec_CXX=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec_CXX=''
+  fi
   link_all_deplibs_CXX=yes
   allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -18015,7 +18590,7 @@
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -18049,7 +18624,7 @@
         esac
         ;;
 
-      freebsd[12]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
 	# switch to ELF
         ld_shlibs_CXX=no
@@ -18068,6 +18643,11 @@
       gnu*)
         ;;
 
+      haiku*)
+        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        link_all_deplibs_CXX=yes
+        ;;
+
       hpux9*)
         hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
         hardcode_libdir_separator_CXX=:
@@ -18092,11 +18672,11 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               ld_shlibs_CXX=no
@@ -18157,7 +18737,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test "$GXX" = yes; then
@@ -18167,10 +18747,10 @@
 	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	        esac
 	      fi
@@ -18200,7 +18780,7 @@
         case $cc_basename in
           CC*)
 	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -18211,9 +18791,9 @@
           *)
 	    if test "$GXX" = yes; then
 	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	      else
-	        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
 	      fi
 	    fi
 	    link_all_deplibs_CXX=yes
@@ -18242,7 +18822,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
 	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
 	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -18279,26 +18859,26 @@
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
 	    case `$CC -V` in
-	    *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
 	      prelink_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      old_archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
 		$RANLIB $oldlib'
 	      archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
-	    *) # Version 6 will use weak symbols
+	    *) # Version 6 and above use weak symbols
 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
@@ -18306,7 +18886,7 @@
 
 	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
 	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
 	  cxx*)
 	    # Compaq C++
@@ -18325,9 +18905,9 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
 	    ;;
-	  xl*)
+	  xl* | mpixl* | bgxl*)
 	    # IBM XL 8.0 on PPC, with GNU ld
 	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
 	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -18347,13 +18927,13 @@
 	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
 	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	      compiler_needs_object_CXX=yes
 
 	      # Not sure whether something based on
 	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
 	      # would be better.
-	      output_verbose_link_cmd='echo'
+	      output_verbose_link_cmd='func_echo_all'
 
 	      # Archives containing C++ object files must be created using
 	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -18422,7 +19002,7 @@
 	    export_dynamic_flag_spec_CXX='${wl}-E'
 	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
 	  fi
-	  output_verbose_link_cmd=echo
+	  output_verbose_link_cmd=func_echo_all
 	else
 	  ld_shlibs_CXX=no
 	fi
@@ -18457,15 +19037,15 @@
 	    case $host in
 	      osf3*)
 	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
 		;;
 	      *)
 	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
 	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
 	          $RM $lib.exp'
 	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
 		;;
@@ -18481,17 +19061,17 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
 	  *)
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
 	      case $host in
 	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	        *)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	      esac
 
@@ -18501,7 +19081,7 @@
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -18537,7 +19117,7 @@
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
             archive_cmds_need_lc_CXX=yes
 	    no_undefined_flag_CXX=' -zdefs'
@@ -18558,7 +19138,7 @@
 	    esac
 	    link_all_deplibs_CXX=yes
 
-	    output_verbose_link_cmd='echo'
+	    output_verbose_link_cmd='func_echo_all'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -18578,14 +19158,14 @@
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
 	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      else
 	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
 	        # platform.
@@ -18596,7 +19176,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      fi
 
 	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
@@ -18650,6 +19230,10 @@
           CC*)
 	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
+	      '"$old_archive_cmds_CXX"
+	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
+	      '"$reload_cmds_CXX"
 	    ;;
 	  *)
 	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -18711,6 +19295,14 @@
 };
 _LT_EOF
 
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -18724,7 +19316,7 @@
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -18733,13 +19325,22 @@
           test $p = "-R"; then
 	 prev=$p
 	 continue
-       else
-	 prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
+	 case ${prev} in
+	 -L | -R)
 	   # Internal compiler library paths should come after those
 	   # provided the user.  The postdeps already come after the
 	   # user supplied libs so there is no need to process them.
@@ -18759,8 +19360,10 @@
 	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
 	 fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -18796,6 +19399,7 @@
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 case $host_os in
@@ -18831,7 +19435,7 @@
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -18896,8 +19500,6 @@
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -18947,6 +19549,11 @@
       # DJGPP does not support shared libraries at all
       lt_prog_compiler_pic_CXX=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static_CXX=
+      ;;
     interix[3-9]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -18996,6 +19603,11 @@
 	  ;;
 	esac
 	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+	;;
       dgux*)
 	case $cc_basename in
 	  ec++*)
@@ -19085,8 +19697,8 @@
 	    lt_prog_compiler_pic_CXX=
 	    lt_prog_compiler_static_CXX='-non_shared'
 	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
+	  xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
 	    lt_prog_compiler_wl_CXX='-Wl,'
 	    lt_prog_compiler_pic_CXX='-qpic'
 	    lt_prog_compiler_static_CXX='-qstaticlink'
@@ -19148,7 +19760,7 @@
 	;;
       solaris*)
 	case $cc_basename in
-	  CC*)
+	  CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
 	    lt_prog_compiler_pic_CXX='-KPIC'
 	    lt_prog_compiler_static_CXX='-Bstatic'
@@ -19213,10 +19825,17 @@
     lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
 
 #
 # Check to make sure the PIC flag actually works.
@@ -19224,7 +19843,7 @@
 if test -n "$lt_prog_compiler_pic_CXX"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works_CXX=no
@@ -19240,15 +19859,15 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19243: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19247: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works_CXX=yes
@@ -19274,13 +19893,15 @@
 
 
 
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works_CXX=no
@@ -19293,7 +19914,7 @@
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works_CXX=yes
@@ -19320,7 +19941,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -19339,16 +19960,16 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19342: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19346: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_CXX=yes
@@ -19372,7 +19993,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -19391,16 +20012,16 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19394: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19398: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o_CXX=yes
@@ -19451,30 +20072,40 @@
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   case $host_os in
   aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
+    case $cc_basename in
+    cl*)
+      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+      ;;
+    esac
+    ;;
+  linux* | k*bsd*-gnu | gnu*)
     link_all_deplibs_CXX=no
-  ;;
+    ;;
   *)
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
@@ -19506,44 +20137,50 @@
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-	pic_flag=$lt_prog_compiler_pic_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl_CXX
+	  pic_flag=$lt_prog_compiler_pic_CXX
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+	  allow_undefined_flag_CXX=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+	  then
+	    lt_cv_archive_cmds_need_lc_CXX=no
+	  else
+	    lt_cv_archive_cmds_need_lc_CXX=yes
+	  fi
+	  allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
+      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
       ;;
     esac
   fi
@@ -19611,8 +20248,6 @@
 
 
 
-
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -19638,7 +20273,7 @@
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -19647,7 +20282,7 @@
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -19700,7 +20335,7 @@
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -19712,7 +20347,7 @@
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -19731,8 +20366,9 @@
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -19753,36 +20389,82 @@
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -19802,7 +20484,7 @@
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -19810,10 +20492,6 @@
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -19821,7 +20499,7 @@
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -19839,7 +20517,7 @@
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -19859,12 +20537,26 @@
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -19910,12 +20602,14 @@
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -19931,7 +20625,7 @@
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -19968,9 +20662,9 @@
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -19978,12 +20672,17 @@
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -19996,13 +20695,17 @@
 _ACEOF
 if ac_fn_cxx_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -20011,7 +20714,7 @@
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -20055,7 +20758,7 @@
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -20124,7 +20827,7 @@
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -20149,7 +20852,7 @@
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -20173,7 +20876,7 @@
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -20204,7 +20907,7 @@
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -20214,7 +20917,7 @@
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -20275,6 +20978,8 @@
 
 
 
+
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_CXX=
@@ -20322,6 +21027,7 @@
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -20383,7 +21089,7 @@
 set dummy perl; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL_PATH+set}" = set; then :
+if ${ac_cv_path_PERL_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PERL_PATH in
@@ -20430,7 +21136,7 @@
 set dummy bison; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_BISON_PATH+set}" = set; then :
+if ${ac_cv_path_BISON_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $BISON_PATH in
@@ -20488,7 +21194,7 @@
 set dummy flex; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_FLEX_PATH+set}" = set; then :
+if ${ac_cv_path_FLEX_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $FLEX_PATH in
@@ -20557,7 +21263,7 @@
 set dummy valgrind; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_VALGRIND_PATH+set}" = set; then :
+if ${ac_cv_path_VALGRIND_PATH+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $VALGRIND_PATH in
@@ -20633,20 +21339,20 @@
   as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
 fi
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.8\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.8") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.31.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.31.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   found_introspection=yes
 else
-  as_fn_error $? "You need to have gobject-introspection >= 0.6.8 installed to build GStreamer" "$LINENO" 5
+  as_fn_error $? "You need to have gobject-introspection >= 1.31.1 installed to build GStreamer" "$LINENO" 5
 fi
      ;; #(
       auto) :
             if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.8\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.8") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 1.31.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 1.31.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
@@ -20702,7 +21408,7 @@
   then
     as_fn_error $? "Internal error - PACKAGE_TARNAME not set" "$LINENO" 5
   fi
-  docdir="\$(datadir)/doc/$PACKAGE_TARNAME-$GST_MAJORMINOR"
+  docdir="\$(datadir)/doc/$PACKAGE_TARNAME-$GST_API_VERSION"
 
     # Check whether --enable-docbook was given.
 if test "${enable_docbook+set}" = set; then :
@@ -20720,7 +21426,7 @@
 set dummy docbook2ps; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_DOCBOOK2PS+set}" = set; then :
+if ${ac_cv_prog_HAVE_DOCBOOK2PS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_DOCBOOK2PS"; then
@@ -20758,7 +21464,7 @@
 set dummy docbook2html; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_DOCBOOK2HTML+set}" = set; then :
+if ${ac_cv_prog_HAVE_DOCBOOK2HTML+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_DOCBOOK2HTML"; then
@@ -20796,7 +21502,7 @@
 set dummy jadetex; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_JADETEX+set}" = set; then :
+if ${ac_cv_prog_HAVE_JADETEX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_JADETEX"; then
@@ -20834,7 +21540,7 @@
 set dummy ps2pdf; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_PS2PDF+set}" = set; then :
+if ${ac_cv_prog_HAVE_PS2PDF+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_PS2PDF"; then
@@ -20920,7 +21626,7 @@
 set dummy xsltproc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_XSLTPROC+set}" = set; then :
+if ${ac_cv_prog_XSLTPROC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$XSLTPROC"; then
@@ -20993,7 +21699,7 @@
 set dummy dvips; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_DVIPS+set}" = set; then :
+if ${ac_cv_prog_HAVE_DVIPS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_DVIPS"; then
@@ -21031,7 +21737,7 @@
 set dummy xmllint; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_XMLLINT+set}" = set; then :
+if ${ac_cv_prog_HAVE_XMLLINT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_XMLLINT"; then
@@ -21070,7 +21776,7 @@
 set dummy fig2dev; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_FIG2DEV+set}" = set; then :
+if ${ac_cv_prog_HAVE_FIG2DEV+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_FIG2DEV"; then
@@ -21135,7 +21841,7 @@
 set dummy pngtopnm; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_PNGTOPNM+set}" = set; then :
+if ${ac_cv_prog_HAVE_PNGTOPNM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_PNGTOPNM"; then
@@ -21173,7 +21879,7 @@
 set dummy pnmtops; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_PNMTOPS+set}" = set; then :
+if ${ac_cv_prog_HAVE_PNMTOPS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_PNMTOPS"; then
@@ -21211,7 +21917,7 @@
 set dummy epstopdf; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_EPSTOPDF+set}" = set; then :
+if ${ac_cv_prog_HAVE_EPSTOPDF+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_EPSTOPDF"; then
@@ -21367,7 +22073,7 @@
     if test -z "$SED"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -21448,7 +22154,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then :
+if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $GTKDOC_CHECK in
@@ -21530,7 +22236,7 @@
 set dummy $python_candidate; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then :
+if ${ac_cv_path_PYTHON+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $PYTHON in
@@ -21657,13 +22363,13 @@
 
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
 $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
-if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then :
+if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -21697,13 +22403,13 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5
 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
-if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then :
+if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
   LIBM="-lmw"
 fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
 $as_echo_n "checking for cos in -lm... " >&6; }
-if test "${ac_cv_lib_m_cos+set}" = set; then :
+if ${ac_cv_lib_m_cos+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -21737,7 +22443,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
-if test "x$ac_cv_lib_m_cos" = x""yes; then :
+if test "x$ac_cv_lib_m_cos" = xyes; then :
   LIBM="$LIBM -lm"
 fi
 
@@ -21745,7 +22451,7 @@
 *)
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
 $as_echo_n "checking for cos in -lm... " >&6; }
-if test "${ac_cv_lib_m_cos+set}" = set; then :
+if ${ac_cv_lib_m_cos+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -21779,7 +22485,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
-if test "x$ac_cv_lib_m_cos" = x""yes; then :
+if test "x$ac_cv_lib_m_cos" = xyes; then :
   LIBM="-lm"
 fi
 
@@ -21792,7 +22498,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21906,7 +22612,7 @@
 for ac_header in ucontext.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default"
-if test "x$ac_cv_header_ucontext_h" = x""yes; then :
+if test "x$ac_cv_header_ucontext_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_UCONTEXT_H 1
 _ACEOF
@@ -21919,7 +22625,7 @@
 for ac_header in sys/socket.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_socket_h" = x""yes; then :
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_SOCKET_H 1
 _ACEOF
@@ -21940,7 +22646,7 @@
 for ac_header in sys/times.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/times.h" "ac_cv_header_sys_times_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_times_h" = x""yes; then :
+if test "x$ac_cv_header_sys_times_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_TIMES_H 1
 _ACEOF
@@ -21952,7 +22658,7 @@
 for ac_header in unistd.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
-if test "x$ac_cv_header_unistd_h" = x""yes; then :
+if test "x$ac_cv_header_unistd_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_UNISTD_H 1
 _ACEOF
@@ -21973,7 +22679,7 @@
 for ac_header in process.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "process.h" "ac_cv_header_process_h" "$ac_includes_default"
-if test "x$ac_cv_header_process_h" = x""yes; then :
+if test "x$ac_cv_header_process_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PROCESS_H 1
 _ACEOF
@@ -21986,7 +22692,7 @@
 for ac_header in sys/utsname.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_utsname_h" = x""yes; then :
+if test "x$ac_cv_header_sys_utsname_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_UTSNAME_H 1
 _ACEOF
@@ -21999,7 +22705,7 @@
 for ac_header in stdio_ext.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "stdio_ext.h" "ac_cv_header_stdio_ext_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdio_ext_h" = x""yes; then :
+if test "x$ac_cv_header_stdio_ext_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDIO_EXT_H 1
 _ACEOF
@@ -22012,7 +22718,7 @@
 for ac_header in pthread.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = x""yes; then :
+if test "x$ac_cv_header_pthread_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PTHREAD_H 1
 _ACEOF
@@ -22033,7 +22739,7 @@
 for ac_header in sys/prctl.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_prctl_h" = x""yes; then :
+if test "x$ac_cv_header_sys_prctl_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_PRCTL_H 1
 _ACEOF
@@ -22046,7 +22752,7 @@
 for ac_header in valgrind/valgrind.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default"
-if test "x$ac_cv_header_valgrind_valgrind_h" = x""yes; then :
+if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_VALGRIND_VALGRIND_H 1
 _ACEOF
@@ -22059,7 +22765,7 @@
 for ac_header in winsock2.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = x""yes; then :
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
@@ -22085,7 +22791,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init_set_d in -lgmp" >&5
 $as_echo_n "checking for __gmpz_init_set_d in -lgmp... " >&6; }
-if test "${ac_cv_lib_gmp___gmpz_init_set_d+set}" = set; then :
+if ${ac_cv_lib_gmp___gmpz_init_set_d+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -22119,7 +22825,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init_set_d" >&5
 $as_echo "$ac_cv_lib_gmp___gmpz_init_set_d" >&6; }
-if test "x$ac_cv_lib_gmp___gmpz_init_set_d" = x""yes; then :
+if test "x$ac_cv_lib_gmp___gmpz_init_set_d" = xyes; then :
   HAVE_GMP=yes
 else
   HAVE_GMP=no
@@ -22127,7 +22833,7 @@
 
   if test "x$HAVE_GMP" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_gmp_h" = x""yes; then :
+if test "x$ac_cv_header_gmp_h" = xyes; then :
   :
 else
   HAVE_GMP=no
@@ -22152,7 +22858,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gsl_rng_uniform_int in -lgsl" >&5
 $as_echo_n "checking for gsl_rng_uniform_int in -lgsl... " >&6; }
-if test "${ac_cv_lib_gsl_gsl_rng_uniform_int+set}" = set; then :
+if ${ac_cv_lib_gsl_gsl_rng_uniform_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -22186,7 +22892,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsl_gsl_rng_uniform_int" >&5
 $as_echo "$ac_cv_lib_gsl_gsl_rng_uniform_int" >&6; }
-if test "x$ac_cv_lib_gsl_gsl_rng_uniform_int" = x""yes; then :
+if test "x$ac_cv_lib_gsl_gsl_rng_uniform_int" = xyes; then :
   HAVE_GSL=yes
 else
   HAVE_GSL=no
@@ -22194,7 +22900,7 @@
 
   if test "x$HAVE_GSL" = "xyes"; then
     ac_fn_c_check_header_mongrel "$LINENO" "gsl/gsl_rng.h" "ac_cv_header_gsl_gsl_rng_h" "$ac_includes_default"
-if test "x$ac_cv_header_gsl_gsl_rng_h" = x""yes; then :
+if test "x$ac_cv_header_gsl_gsl_rng_h" = xyes; then :
   :
 else
   HAVE_GSL=no
@@ -22223,7 +22929,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __uint128_t" >&5
 $as_echo_n "checking for __uint128_t... " >&6; }
-if test "${gst_cv_uint128_t+set}" = set; then :
+if ${gst_cv_uint128_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22298,7 +23004,7 @@
 for ac_func in gmtime_r
 do :
   ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
-if test "x$ac_cv_func_gmtime_r" = x""yes; then :
+if test "x$ac_cv_func_gmtime_r" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GMTIME_R 1
 _ACEOF
@@ -22309,7 +23015,7 @@
 for ac_func in localtime_r
 do :
   ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
-if test "x$ac_cv_func_localtime_r" = x""yes; then :
+if test "x$ac_cv_func_localtime_r" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LOCALTIME_R 1
 _ACEOF
@@ -22320,7 +23026,7 @@
 for ac_func in sigaction
 do :
   ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction"
-if test "x$ac_cv_func_sigaction" = x""yes; then :
+if test "x$ac_cv_func_sigaction" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SIGACTION 1
 _ACEOF
@@ -22331,7 +23037,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_source+set}" = set; then :
+if ${ac_cv_sys_largefile_source+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -22400,7 +23106,7 @@
 for ac_func in ftello
 do :
   ac_fn_c_check_func "$LINENO" "ftello" "ac_cv_func_ftello"
-if test "x$ac_cv_func_ftello" = x""yes; then :
+if test "x$ac_cv_func_ftello" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_FTELLO 1
 _ACEOF
@@ -22412,7 +23118,7 @@
 for ac_func in fgetpos
 do :
   ac_fn_c_check_func "$LINENO" "fgetpos" "ac_cv_func_fgetpos"
-if test "x$ac_cv_func_fgetpos" = x""yes; then :
+if test "x$ac_cv_func_fgetpos" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_FGETPOS 1
 _ACEOF
@@ -22423,7 +23129,7 @@
 for ac_func in fsetpos
 do :
   ac_fn_c_check_func "$LINENO" "fsetpos" "ac_cv_func_fsetpos"
-if test "x$ac_cv_func_fsetpos" = x""yes; then :
+if test "x$ac_cv_func_fsetpos" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_FSETPOS 1
 _ACEOF
@@ -22435,7 +23141,7 @@
 for ac_func in poll
 do :
   ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
-if test "x$ac_cv_func_poll" = x""yes; then :
+if test "x$ac_cv_func_poll" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_POLL 1
 _ACEOF
@@ -22446,7 +23152,7 @@
 for ac_func in ppoll
 do :
   ac_fn_c_check_func "$LINENO" "ppoll" "ac_cv_func_ppoll"
-if test "x$ac_cv_func_ppoll" = x""yes; then :
+if test "x$ac_cv_func_ppoll" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PPOLL 1
 _ACEOF
@@ -22457,7 +23163,7 @@
 for ac_func in pselect
 do :
   ac_fn_c_check_func "$LINENO" "pselect" "ac_cv_func_pselect"
-if test "x$ac_cv_func_pselect" = x""yes; then :
+if test "x$ac_cv_func_pselect" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PSELECT 1
 _ACEOF
@@ -22466,6 +23172,19 @@
 done
 
 
+for ac_header in sys/poll.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_poll_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll" >&5
 $as_echo_n "checking for broken poll... " >&6; }
@@ -22536,7 +23255,7 @@
 for ac_func in getpagesize
 do :
   ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = x""yes; then :
+if test "x$ac_cv_func_getpagesize" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GETPAGESIZE 1
 _ACEOF
@@ -22546,7 +23265,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
 $as_echo_n "checking for working mmap... " >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
+if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then :
@@ -22722,7 +23441,7 @@
 for ac_func in posix_memalign
 do :
   ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign"
-if test "x$ac_cv_func_posix_memalign" = x""yes; then :
+if test "x$ac_cv_func_posix_memalign" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_POSIX_MEMALIGN 1
 _ACEOF
@@ -22733,7 +23452,7 @@
 for ac_func in getpagesize
 do :
   ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = x""yes; then :
+if test "x$ac_cv_func_getpagesize" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GETPAGESIZE 1
 _ACEOF
@@ -22745,7 +23464,7 @@
 for ac_func in clock_gettime
 do :
   ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
-if test "x$ac_cv_func_clock_gettime" = x""yes; then :
+if test "x$ac_cv_func_clock_gettime" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_CLOCK_GETTIME 1
 _ACEOF
@@ -22754,7 +23473,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
 $as_echo_n "checking for clock_gettime in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then :
+if ${ac_cv_lib_rt_clock_gettime+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -22788,7 +23507,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5
 $as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
-if test "x$ac_cv_lib_rt_clock_gettime" = x""yes; then :
+if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then :
 
     $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
 
@@ -22803,7 +23522,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix timers" >&5
 $as_echo_n "checking for posix timers... " >&6; }
-if test "${gst_cv_posix_timers+set}" = set; then :
+if ${gst_cv_posix_timers+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22861,7 +23580,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for monotonic clock" >&5
 $as_echo_n "checking for monotonic clock... " >&6; }
-if test "${gst_cv_monotonic_clock+set}" = set; then :
+if ${gst_cv_monotonic_clock+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22920,7 +23639,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __PRETTY_FUNCTION__" >&5
 $as_echo_n "checking whether $CC implements __PRETTY_FUNCTION__... " >&6; }
-  if test "${gst_cv_have_pretty_function+set}" = set; then :
+  if ${gst_cv_have_pretty_function+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -22955,7 +23674,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __FUNCTION__" >&5
 $as_echo_n "checking whether $CC implements __FUNCTION__... " >&6; }
-  if test "${gst_cv_have_function+set}" = set; then :
+  if ${gst_cv_have_function+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -22990,7 +23709,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __func__" >&5
 $as_echo_n "checking whether $CC implements __func__... " >&6; }
-  if test "${gst_cv_have_func+set}" = set; then :
+  if ${gst_cv_have_func+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -23076,7 +23795,7 @@
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr in -ldl" >&5
 $as_echo_n "checking for dladdr in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dladdr+set}" = set; then :
+if ${ac_cv_lib_dl_dladdr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -23110,7 +23829,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dladdr" >&5
 $as_echo "$ac_cv_lib_dl_dladdr" >&6; }
-if test "x$ac_cv_lib_dl_dladdr" = x""yes; then :
+if test "x$ac_cv_lib_dl_dladdr" = xyes; then :
 
 $as_echo "#define HAVE_DLADDR 1" >>confdefs.h
 
@@ -23119,264 +23838,8 @@
 
 CFLAGS="$save_cflags"
 
-ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
-if test "x$ac_cv_func_socket" = x""yes; then :
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
-$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_socket=yes
-else
-  ac_cv_lib_socket_socket=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
-$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-fi
-
-fi
-
-ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = x""yes; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
-$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  ac_cv_lib_nsl_gethostbyname=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
-$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-fi
-
-fi
-
-
-save_libs="$LIBS"
-ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton"
-if test "x$ac_cv_func_inet_aton" = x""yes; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lnsl" >&5
-$as_echo_n "checking for inet_aton in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_inet_aton+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_aton ();
-int
-main ()
-{
-return inet_aton ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_inet_aton=yes
-else
-  ac_cv_lib_nsl_inet_aton=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_inet_aton" >&5
-$as_echo "$ac_cv_lib_nsl_inet_aton" >&6; }
-if test "x$ac_cv_lib_nsl_inet_aton" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lsocket" >&5
-$as_echo_n "checking for inet_aton in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_inet_aton+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_aton ();
-int
-main ()
-{
-return inet_aton ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_inet_aton=yes
-else
-  ac_cv_lib_socket_inet_aton=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_inet_aton" >&5
-$as_echo "$ac_cv_lib_socket_inet_aton" >&6; }
-if test "x$ac_cv_lib_socket_inet_aton" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5
-$as_echo_n "checking for inet_aton in -lresolv... " >&6; }
-if test "${ac_cv_lib_resolv_inet_aton+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inet_aton ();
-int
-main ()
-{
-return inet_aton ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_resolv_inet_aton=yes
-else
-  ac_cv_lib_resolv_inet_aton=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5
-$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; }
-if test "x$ac_cv_lib_resolv_inet_aton" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-else
-
-$as_echo "#define NO_INET_ATON 1" >>confdefs.h
-
-fi
-
-fi
-
-fi
-
-fi
-
-INET_ATON_LIBS=$LIBS
-
-LIBS="$save_libs"
-
-
-GLIB_REQ=2.26
-
+GLIB_REQ=2.31.14
 
 
 
@@ -23546,21 +24009,22 @@
 
 
 
+
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB_ONLY" >&5
-$as_echo_n "checking for GLIB_ONLY... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO" >&5
+$as_echo_n "checking for GIO... " >&6; }
 
 if test -n "$PKG_CONFIG"; then
-    if test -n "$GLIB_ONLY_CFLAGS"; then
-        pkg_cv_GLIB_ONLY_CFLAGS="$GLIB_ONLY_CFLAGS"
+    if test -n "$GIO_CFLAGS"; then
+        pkg_cv_GIO_CFLAGS="$GIO_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= \$GLIB_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= $GLIB_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GLIB_ONLY_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQ" 2>/dev/null`
+  pkg_cv_GIO_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= $GLIB_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -23569,16 +24033,16 @@
 	pkg_failed=untried
 fi
 if test -n "$PKG_CONFIG"; then
-    if test -n "$GLIB_ONLY_LIBS"; then
-        pkg_cv_GLIB_ONLY_LIBS="$GLIB_ONLY_LIBS"
+    if test -n "$GIO_LIBS"; then
+        pkg_cv_GIO_LIBS="$GIO_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQ\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQ") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= \$GLIB_REQ\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= $GLIB_REQ") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_GLIB_ONLY_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQ" 2>/dev/null`
+  pkg_cv_GIO_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= $GLIB_REQ" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -23597,22 +24061,22 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GLIB_ONLY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= $GLIB_REQ"`
+	        GIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gio-2.0 >= $GLIB_REQ"`
         else
-	        GLIB_ONLY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= $GLIB_REQ"`
+	        GIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gio-2.0 >= $GLIB_REQ"`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$GLIB_ONLY_PKG_ERRORS" >&5
+	echo "$GIO_PKG_ERRORS" >&5
 
-	as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQ) were not met:
+	as_fn_error $? "Package requirements (gio-2.0 >= $GLIB_REQ) were not met:
 
-$GLIB_ONLY_PKG_ERRORS
+$GIO_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables GLIB_ONLY_CFLAGS
-and GLIB_ONLY_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables GIO_CFLAGS
+and GIO_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " "$LINENO" 5
 elif test $pkg_failed = untried; then
@@ -23622,19 +24086,39 @@
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables GLIB_ONLY_CFLAGS
-and GLIB_ONLY_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables GIO_CFLAGS
+and GIO_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
-	GLIB_ONLY_CFLAGS=$pkg_cv_GLIB_ONLY_CFLAGS
-	GLIB_ONLY_LIBS=$pkg_cv_GLIB_ONLY_LIBS
+	GIO_CFLAGS=$pkg_cv_GIO_CFLAGS
+	GIO_LIBS=$pkg_cv_GIO_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 	:
 fi
+  if test "x$HAVE_GIO" = "xno"; then
+    as_fn_error $? "This package requires GIO >= $GLIB_REQ to compile." "$LINENO" 5
+  fi
+
+  GIO_MODULE_DIR="`$PKG_CONFIG --variable=giomoduledir gio-2.0`"
+
+cat >>confdefs.h <<_ACEOF
+#define GIO_MODULE_DIR "$GIO_MODULE_DIR"
+_ACEOF
+
+  GIO_LIBDIR="`$PKG_CONFIG --variable=libdir gio-2.0`"
+
+cat >>confdefs.h <<_ACEOF
+#define GIO_LIBDIR "$GIO_LIBDIR"
+_ACEOF
+
+
+
+
+
 
 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
 
@@ -23645,7 +24129,7 @@
     case "${enableval}" in
       yes) BUILD_CHECK=yes ;;
       no)  BUILD_CHECK=no ;;
-      *)   as_fn_error $? "bad value ${enableval} for --disable-check" "$LINENO" 5  ;;
+      *)   as_fn_error $? "bad value ${enableval} for --disable-check" "$LINENO" 5 ;;
     esac
 
 else
@@ -23815,7 +24299,7 @@
 
 
   EXP_VAR=PLUGINDIR
-  FROM_VAR=${libdir}/gstreamer-$GST_MAJORMINOR
+  FROM_VAR=${libdir}/gstreamer-$GST_API_VERSION
 
     prefix_save=$prefix
   exec_prefix_save=$exec_prefix
@@ -23849,13 +24333,18 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: Using $PLUGINDIR as the plugin install location" >&5
 $as_echo "$as_me: Using $PLUGINDIR as the plugin install location" >&6;}
 
-    plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
+    plugindir="\$(libdir)/gstreamer-$GST_API_VERSION"
 
 
 
 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-no-export-2.0, gthread-2.0"
 
 
+NO_WARNINGS=""
+if test "x${GST_DISABLE_GST_DEBUG}" = "xyes"; then
+  NO_WARNINGS="-Wno-unused"
+fi
+
 
 
 
@@ -24011,7 +24500,7 @@
 $as_echo "$flag_ok" >&6; }
 
 
-    if test "x$GST_GIT" != "xno"
+    if test "x$FATAL_WARNINGS" != "xno"
   then
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Werror" >&5
@@ -24184,10 +24673,10 @@
     fi
   fi
 
-  if test "x-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs" != "x"
+  if test "x-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs $NO_WARNINGS" != "x"
   then
     UNSUPPORTED=""
-    list="-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs"
+    list="-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs $NO_WARNINGS"
     for each in $list
     do
 
@@ -24279,8 +24768,8 @@
 
 
 
-GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
-GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS)"
+GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
+GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS)"
 
 GST_ALL_LIBS="$GLIB_LIBS $LTLIBINTL \$(GCOV_LIBS)"
 
@@ -24294,12 +24783,12 @@
 
 
 
-GST_LIB_LDFLAGS="-export-symbols-regex \^_*\(gst_\|Gst\|GST_\).*"
+GST_LIB_LDFLAGS="-export-symbols-regex \^_?\(gst_\|Gst\|GST_\).*"
 
 
 GST_OBJ_CFLAGS="\$(GST_ALL_CFLAGS)"
 GST_OBJ_CXXFLAGS="\$(GST_ALL_CXXFLAGS)"
-GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la \$(GST_ALL_LIBS)"
+GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_API_VERSION.la \$(GST_ALL_LIBS)"
 
 
 
@@ -24310,7 +24799,7 @@
 
 
   EXP_VAR=GST_PLUGIN_SCANNER_INSTALLED
-  FROM_VAR=${libexecdir}/gstreamer-$GST_MAJORMINOR/gst-plugin-scanner
+  FROM_VAR=${libexecdir}/gstreamer-$GST_API_VERSION/gst-plugin-scanner
 
     prefix_save=$prefix
   exec_prefix_save=$exec_prefix
@@ -24374,7 +24863,7 @@
 for ac_func in localtime_r
 do :
   ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
-if test "x$ac_cv_func_localtime_r" = x""yes; then :
+if test "x$ac_cv_func_localtime_r" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LOCALTIME_R 1
 _ACEOF
@@ -24390,7 +24879,7 @@
 ac_stdint_h=`echo _stdint.h`
 # try to shortcircuit - if the default include path of the compiler
 # can find a "stdint.h" header then we assume that all compilers can.
-if test "${ac_cv_header_stdint_t+set}" = set; then :
+if ${ac_cv_header_stdint_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -24465,7 +24954,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5
 $as_echo_n "checking for stdint uintptr_t... " >&6; }
-if test "${ac_cv_header_stdint_x+set}" = set; then :
+if ${ac_cv_header_stdint_x+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -24478,7 +24967,7 @@
    unset ac_cv_type_uint64_t
    ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <$i>
 "
-if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+if test "x$ac_cv_type_uintptr_t" = xyes; then :
   ac_cv_header_stdint_x=$i
 else
   continue
@@ -24486,7 +24975,7 @@
 
    ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i>
 "
-if test "x$ac_cv_type_uint64_t" = x""yes; then :
+if test "x$ac_cv_type_uint64_t" = xyes; then :
   and64="/uint64_t"
 else
   and64=""
@@ -24507,7 +24996,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5
 $as_echo_n "checking for stdint uint32_t... " >&6; }
-if test "${ac_cv_header_stdint_o+set}" = set; then :
+if ${ac_cv_header_stdint_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -24520,7 +25009,7 @@
    unset ac_cv_type_uint64_t
    ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <$i>
 "
-if test "x$ac_cv_type_uint32_t" = x""yes; then :
+if test "x$ac_cv_type_uint32_t" = xyes; then :
   ac_cv_header_stdint_o=$i
 else
   continue
@@ -24528,7 +25017,7 @@
 
    ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i>
 "
-if test "x$ac_cv_type_uint64_t" = x""yes; then :
+if test "x$ac_cv_type_uint64_t" = xyes; then :
   and64="/uint64_t"
 else
   and64=""
@@ -24552,7 +25041,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5
 $as_echo_n "checking for stdint u_int32_t... " >&6; }
-if test "${ac_cv_header_stdint_u+set}" = set; then :
+if ${ac_cv_header_stdint_u+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -24564,7 +25053,7 @@
    unset ac_cv_type_u_int64_t
    ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <$i>
 "
-if test "x$ac_cv_type_u_int32_t" = x""yes; then :
+if test "x$ac_cv_type_u_int32_t" = xyes; then :
   ac_cv_header_stdint_u=$i
 else
   continue
@@ -24572,7 +25061,7 @@
 
    ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include<$i>
 "
-if test "x$ac_cv_type_u_int64_t" = x""yes; then :
+if test "x$ac_cv_type_u_int64_t" = xyes; then :
   and64="/u_int64_t"
 else
   and64=""
@@ -24603,7 +25092,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
 $as_echo_n "checking size of char... " >&6; }
-if test "${ac_cv_sizeof_char+set}" = set; then :
+if ${ac_cv_sizeof_char+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char"        "$ac_includes_default"; then :
@@ -24613,7 +25102,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (char)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_char=0
    fi
@@ -24636,7 +25125,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
 $as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then :
+if ${ac_cv_sizeof_short+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short"        "$ac_includes_default"; then :
@@ -24646,7 +25135,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (short)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_short=0
    fi
@@ -24669,7 +25158,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
 $as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then :
+if ${ac_cv_sizeof_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
@@ -24679,7 +25168,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (int)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_int=0
    fi
@@ -24702,7 +25191,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
 $as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then :
+if ${ac_cv_sizeof_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
@@ -24712,7 +25201,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (long)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_long=0
    fi
@@ -24735,7 +25224,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5
 $as_echo_n "checking size of void*... " >&6; }
-if test "${ac_cv_sizeof_voidp+set}" = set; then :
+if ${ac_cv_sizeof_voidp+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp"        "$ac_includes_default"; then :
@@ -24745,7 +25234,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (void*)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_voidp=0
    fi
@@ -24814,19 +25303,19 @@
 unset ac_cv_type_int_fast32_t
 ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_int_least32_t" = x""yes; then :
+if test "x$ac_cv_type_int_least32_t" = xyes; then :
 
 fi
 
 ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include<$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_int_fast32_t" = x""yes; then :
+if test "x$ac_cv_type_int_fast32_t" = xyes; then :
 
 fi
 
 ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "#include <$ac_cv_header_stdint>
 "
-if test "x$ac_cv_type_intmax_t" = x""yes; then :
+if test "x$ac_cv_type_intmax_t" = xyes; then :
 
 fi
 
@@ -24872,7 +25361,7 @@
 
 
 
-ac_config_files="$ac_config_files Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/libcheck/check.h libs/gst/controller/Makefile libs/gst/dataprotocol/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/indexers/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/launch/Makefile tests/examples/manual/Makefile tests/examples/metadata/Makefile tests/examples/queue/Makefile tests/examples/streams/Makefile tests/examples/typefind/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-dataprotocol.pc pkgconfig/gstreamer-dataprotocol-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gst-element-check.m4 gstreamer.spec"
+ac_config_files="$ac_config_files Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/libcheck/check.h libs/gst/controller/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/launch/Makefile tests/examples/manual/Makefile tests/examples/metadata/Makefile tests/examples/queue/Makefile tests/examples/streams/Makefile tests/examples/typefind/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gst-element-check.m4 gstreamer.spec"
 
 
 sed \
@@ -24881,7 +25370,7 @@
     -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
     -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
     -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
-    -e 's/.* GST_MAJORMINOR$/#define GST_MAJORMINOR "'$GST_MAJORMINOR'"/' \
+    -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
     -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
     -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
     -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
@@ -24905,7 +25394,7 @@
     -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
     -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
     -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
-    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
+    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-1.0"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-1.0"\n#endif/' \
     -e 's/.* GST_PLUGIN_SCANNER_INSTALLED$/#define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\\\gst-plugin-scanner"/' \
     -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
     config.h.in >win32/common/config.h-new
@@ -24974,10 +25463,21 @@
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -25052,10 +25552,6 @@
   as_fn_error $? "conditional \"GST_DISABLE_REGISTRY\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GST_DISABLE_NET_TRUE}" && test -z "${GST_DISABLE_NET_FALSE}"; then
-  as_fn_error $? "conditional \"GST_DISABLE_NET\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${GST_DISABLE_PLUGIN_TRUE}" && test -z "${GST_DISABLE_PLUGIN_FALSE}"; then
   as_fn_error $? "conditional \"GST_DISABLE_PLUGIN\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25145,10 +25641,6 @@
   as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${HAVE_CXX_TRUE}" && test -z "${HAVE_CXX_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_CXX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -25226,7 +25718,7 @@
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -25327,6 +25819,7 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -25633,8 +26126,8 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer $as_me 0.11.1, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+This file was extended by GStreamer $as_me 0.11.90, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -25699,8 +26192,8 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer config.status 0.11.1
-configured by $0, generated by GNU Autoconf 2.67,
+GStreamer config.status 0.11.90
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -25828,186 +26321,212 @@
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
-predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
+reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
+reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
-for var in SED \
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
 GREP \
 EGREP \
 FGREP \
@@ -26019,8 +26538,12 @@
 reload_flag \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -26030,14 +26553,14 @@
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -26051,9 +26574,7 @@
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -26061,6 +26582,7 @@
 libname_spec \
 library_names_spec \
 soname_spec \
+install_override_mode \
 finish_eval \
 old_striplib \
 striplib \
@@ -26071,10 +26593,11 @@
 postdeps \
 compiler_lib_search_path \
 LD_CXX \
+reload_flag_CXX \
 compiler_CXX \
 lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_wl_CXX \
 lt_prog_compiler_pic_CXX \
+lt_prog_compiler_wl_CXX \
 lt_prog_compiler_static_CXX \
 lt_cv_prog_compiler_c_o_CXX \
 export_dynamic_flag_spec_CXX \
@@ -26084,9 +26607,7 @@
 allow_undefined_flag_CXX \
 no_undefined_flag_CXX \
 hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_flag_spec_ld_CXX \
 hardcode_libdir_separator_CXX \
-fix_srcfile_path_CXX \
 exclude_expsyms_CXX \
 include_expsyms_CXX \
 file_list_spec_CXX \
@@ -26096,9 +26617,9 @@
 predeps_CXX \
 postdeps_CXX \
 compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -26120,11 +26641,13 @@
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 sys_lib_dlsearch_path_spec \
+reload_cmds_CXX \
 old_archive_cmds_CXX \
 old_archive_from_new_cmds_CXX \
 old_archive_from_expsyms_cmds_CXX \
@@ -26133,10 +26656,11 @@
 module_cmds_CXX \
 module_expsym_cmds_CXX \
 export_symbols_cmds_CXX \
-prelink_cmds_CXX; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+prelink_cmds_CXX \
+postlink_cmds_CXX; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -26144,12 +26668,6 @@
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
 ac_aux_dir='$ac_aux_dir'
 xsi_shell='$xsi_shell'
 lt_shell_append='$lt_shell_append'
@@ -26222,11 +26740,9 @@
     "libs/gst/check/libcheck/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/check/libcheck/Makefile" ;;
     "libs/gst/check/libcheck/check.h") CONFIG_FILES="$CONFIG_FILES libs/gst/check/libcheck/check.h" ;;
     "libs/gst/controller/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/controller/Makefile" ;;
-    "libs/gst/dataprotocol/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/dataprotocol/Makefile" ;;
     "libs/gst/helpers/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/helpers/Makefile" ;;
     "libs/gst/net/Makefile") CONFIG_FILES="$CONFIG_FILES libs/gst/net/Makefile" ;;
     "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
-    "plugins/indexers/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/indexers/Makefile" ;;
     "plugins/elements/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/elements/Makefile" ;;
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
     "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
@@ -26270,14 +26786,12 @@
     "pkgconfig/gstreamer-check-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-check-uninstalled.pc" ;;
     "pkgconfig/gstreamer-controller.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-controller.pc" ;;
     "pkgconfig/gstreamer-controller-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-controller-uninstalled.pc" ;;
-    "pkgconfig/gstreamer-dataprotocol.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-dataprotocol.pc" ;;
-    "pkgconfig/gstreamer-dataprotocol-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-dataprotocol-uninstalled.pc" ;;
     "pkgconfig/gstreamer-net.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-net.pc" ;;
     "pkgconfig/gstreamer-net-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-net-uninstalled.pc" ;;
     "gst-element-check.m4") CONFIG_FILES="$CONFIG_FILES gst-element-check.m4" ;;
     "gstreamer.spec") CONFIG_FILES="$CONFIG_FILES gstreamer.spec" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -26300,9 +26814,10 @@
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -26310,12 +26825,13 @@
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -26337,7 +26853,7 @@
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -26365,7 +26881,7 @@
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -26413,7 +26929,7 @@
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = ""
 
@@ -26445,7 +26961,7 @@
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -26479,7 +26995,7 @@
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -26491,8 +27007,8 @@
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -26593,7 +27109,7 @@
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -26612,7 +27128,7 @@
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 	 # because $ac_f cannot contain `:'.
@@ -26621,7 +27137,7 @@
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -26647,8 +27163,8 @@
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -26784,21 +27300,22 @@
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -26809,20 +27326,20 @@
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
+      mv "$ac_tmp/config.h" "$ac_file" \
 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
@@ -26984,7 +27501,8 @@
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -27017,13 +27535,13 @@
 # ### BEGIN LIBTOOL CONFIG
 
 # Assembler program.
-AS=$AS
+AS=$lt_AS
 
 # DLL creation program.
-DLLTOOL=$DLLTOOL
+DLLTOOL=$lt_DLLTOOL
 
 # Object dumper program.
-OBJDUMP=$OBJDUMP
+OBJDUMP=$lt_OBJDUMP
 
 # Which release of libtool.m4 was used?
 macro_version=$macro_version
@@ -27041,6 +27559,15 @@
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -27090,20 +27617,36 @@
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -27112,6 +27655,9 @@
 old_postinstall_cmds=$lt_old_postinstall_cmds
 old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
 # A C compiler.
 LTCC=$lt_CC
 
@@ -27130,21 +27676,24 @@
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
 # The name of the directory that contains temporary libtool files.
 objdir=$objdir
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
-
 # Used to examine libraries when file_magic_cmd begins with "file".
 MAGIC_CMD=$MAGIC_CMD
 
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -27201,6 +27750,9 @@
 # The coded name of the library, if different from the real name.
 soname_spec=$lt_soname_spec
 
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
 # Command to use after installation of a shared archive.
 postinstall_cmds=$lt_postinstall_cmds
 
@@ -27240,6 +27792,10 @@
 # The linker used to build libraries.
 LD=$lt_LD
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds
 
@@ -27252,12 +27808,12 @@
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -27307,10 +27863,6 @@
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -27344,9 +27896,6 @@
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -27362,6 +27911,9 @@
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
@@ -27408,212 +27960,169 @@
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
 
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
 
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
 
-  mv -f "$cfgfile" "$ofile" ||
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -27625,6 +28134,10 @@
 # The linker used to build libraries.
 LD=$lt_LD_CXX
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_CXX
+reload_cmds=$lt_reload_cmds_CXX
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds_CXX
 
@@ -27637,12 +28150,12 @@
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic_CXX
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static_CXX
 
@@ -27692,10 +28205,6 @@
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
@@ -27729,9 +28238,6 @@
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs_CXX
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_CXX
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols_CXX
 
@@ -27747,6 +28253,9 @@
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds_CXX
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_CXX
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec_CXX
 
@@ -28394,7 +28903,6 @@
 if test "x${GST_DISABLE_ALLOC_TRACE}" = "xno"; then enable_alloc_trace="yes"; fi
 if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi
 if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi
-if test "x${GST_DISABLE_NET}" = "xno"; then enable_net="yes"; fi
 
 echo "
 
@@ -28416,7 +28924,6 @@
 	Allocation tracing         : ${enable_alloc_trace}
 	Plugin registry            : ${enable_registry}
 	Plugin support	           : ${enable_plugin}
-	Network support            : ${enable_net}
 	Unit testing support       : ${BUILD_CHECK}
 
 	Debug                      : ${USE_DEBUG}
diff --git a/configure.ac b/configure.ac
index 9eb6606..2e2580a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT(GStreamer, 0.11.1,
+AC_INIT(GStreamer, 0.11.90,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gstreamer)
 AG_GST_INIT
@@ -34,13 +34,27 @@
   [AM_DEFAULT_VERBOSITY=1
    AC_SUBST(AM_DEFAULT_VERBOSITY)])
 
-dnl our libraries and install dirs use major.minor as a version
-GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
-dnl we override it here for release candidates for a new series
-GST_MAJORMINOR=0.11
-AC_SUBST(GST_MAJORMINOR)
-AC_DEFINE_UNQUOTED(GST_MAJORMINOR, "$GST_MAJORMINOR",
-  [library major.minor version])
+dnl GStreamer versioning, this is mostly informational
+dnl GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
+dnl GST_VERSION_MINOR=$PACKAGE_VERSION_MINOR
+dnl GST_VERSION_MICRO=$PACKAGE_VERSION_MICRO
+dnl GST_VERSION_NANO=$PACKAGE_VERSION_NANO
+dnl Change this to the above for non-pre
+GST_VERSION_MAJOR=1
+GST_VERSION_MINOR=0
+GST_VERSION_MICRO=0
+GST_VERSION_NANO=0
+AC_SUBST(GST_VERSION_MAJOR)
+AC_SUBST(GST_VERSION_MINOR)
+AC_SUBST(GST_VERSION_MICRO)
+AC_SUBST(GST_VERSION_NANO)
+
+dnl our libraries and install dirs use GST_API_VERSION in the filename
+dnl to allow side-by-side installation of different API versions
+GST_API_VERSION=1.0
+AC_SUBST(GST_API_VERSION)
+AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
+  [GStreamer API Version])
 
 dnl CURRENT, REVISION, AGE
 dnl - library source changed -> increment REVISION
@@ -48,7 +62,7 @@
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 31, 0, 0)
+AS_LIBTOOL(GST, 0, 0, 0)
 
 dnl FIXME: this macro doesn't actually work;
 dnl the generated libtool script has no support for the listed tags.
@@ -70,10 +84,12 @@
 dnl the version check needs to stay here because autopoint greps for it
 AM_GNU_GETTEXT_VERSION([0.17])
 AM_GNU_GETTEXT([external])
-AG_GST_GETTEXT([gstreamer-$GST_MAJORMINOR])
+AG_GST_GETTEXT([gstreamer-$GST_API_VERSION])
 
 dnl *** check for arguments to configure ***
 
+AG_GST_ARG_DISABLE_FATAL_WARNINGS
+
 dnl subsystems - can influence other decisions so needs to be high up
 dnl we need to AM_CONDITIONAL them here for automake 1.6.x compatibility
 AG_GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
@@ -104,8 +120,6 @@
   GST_REGISTRY_DOC_TYPES=
 fi
 AC_SUBST(GST_REGISTRY_DOC_TYPES)
-AG_GST_CHECK_SUBSYSTEM_DISABLE(NET,[network distribution])
-AM_CONDITIONAL(GST_DISABLE_NET, test "x$GST_DISABLE_NET" = "xyes")
 AG_GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin])
 AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes")
 
@@ -244,7 +258,7 @@
 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 
 dnl check for gobject-introspection
-GOBJECT_INTROSPECTION_CHECK([0.6.8])
+GOBJECT_INTROSPECTION_CHECK([1.31.1])
 
 dnl check for documentation tools
 AG_GST_DOCBOOK_CHECK
@@ -380,6 +394,8 @@
 AC_CHECK_FUNCS([ppoll])
 AC_CHECK_FUNCS([pselect])
 
+AC_CHECK_HEADERS([sys/poll.h])
+
 dnl ****************************************
 dnl *** GLib POLL* compatibility defines ***
 dnl ****************************************
@@ -508,30 +524,12 @@
    LIBS="$LIBS -ldl")
 CFLAGS="$save_cflags"
 
-dnl *** checks for socket and nsl libraries ***
-AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
-AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
-
-dnl check for inet_aton()
-save_libs="$LIBS"
-AC_CHECK_FUNC(inet_aton, ,
-   AC_CHECK_LIB(nsl, inet_aton, ,
-      AC_CHECK_LIB(socket, inet_aton, ,
-         AC_CHECK_LIB(resolv, inet_aton, ,[AC_DEFINE(NO_INET_ATON, 1, [Define if you have no native inet_aton() function.])]))))
-INET_ATON_LIBS=$LIBS
-AC_SUBST(INET_ATON_LIBS)
-LIBS="$save_libs"
-
 dnl *** checks for dependency libraries ***
 
 dnl GLib
-GLIB_REQ=2.26
-
+GLIB_REQ=2.31.14
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
-dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
-PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB_REQ)
-
 dnl Check for documentation xrefs
 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
 AC_SUBST(GLIB_PREFIX)
@@ -610,8 +608,14 @@
 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-no-export-2.0, gthread-2.0"
 AC_SUBST(GST_PKG_DEPS)
 
+dnl make sure it doesn't complain about unused variables if debugging is disabled
+NO_WARNINGS=""
+if test "x${GST_DISABLE_GST_DEBUG}" = "xyes"; then
+  NO_WARNINGS="-Wno-unused"
+fi
+
 dnl define an ERROR_CFLAGS Makefile variable
-AG_GST_SET_ERROR_CFLAGS($GST_GIT, [-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs])
+AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs $NO_WARNINGS])
 
 dnl define correct level for debugging messages
 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
@@ -658,8 +662,10 @@
 dnl CFLAGS:
 dnl - src and build dirs need to be added because every piece that gets built
 dnl   will need the GStreamer source and generated headers
-GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
-GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS)"
+dnl LIBS: XML doesn't need to be added because we don't explicitly use symbols
+dnl       from LibXML except for in the core library
+GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
+GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS)"
 
 dnl FIXME: check if LTLIBINTL is needed everywhere
 dnl I presume it is given that it contains the symbols that _() stuff maps to
@@ -680,7 +686,7 @@
 dnl GST_LIB_LDFLAGS
 dnl linker flags shared by all libraries
 dnl LDFLAGS modifier defining exported symbols from built libraries
-GST_LIB_LDFLAGS="-export-symbols-regex \^[_]*\(gst_\|Gst\|GST_\).*"
+GST_LIB_LDFLAGS="-export-symbols-regex \^[_]?\(gst_\|Gst\|GST_\).*"
 AC_SUBST(GST_LIB_LDFLAGS)
 
 dnl GST_OBJ_*
@@ -688,7 +694,7 @@
 dnl includes GST_ALL_*
 GST_OBJ_CFLAGS="\$(GST_ALL_CFLAGS)"
 GST_OBJ_CXXFLAGS="\$(GST_ALL_CXXFLAGS)"
-GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la \$(GST_ALL_LIBS)"
+GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_API_VERSION.la \$(GST_ALL_LIBS)"
 AC_SUBST(GST_OBJ_CFLAGS)
 AC_SUBST(GST_OBJ_CXXFLAGS)
 AC_SUBST(GST_OBJ_LIBS)
@@ -699,7 +705,7 @@
 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
 
 dnl plugin scanner locations
-AS_AC_EXPAND(GST_PLUGIN_SCANNER_INSTALLED,${libexecdir}/gstreamer-$GST_MAJORMINOR/gst-plugin-scanner)
+AS_AC_EXPAND(GST_PLUGIN_SCANNER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-plugin-scanner)
 AC_DEFINE_UNQUOTED(GST_PLUGIN_SCANNER_INSTALLED,
     "$GST_PLUGIN_SCANNER_INSTALLED", [location of the installed gst-plugin-scanner])
 AC_SUBST(GST_PLUGIN_SCANNER_INSTALLED)
@@ -721,11 +727,9 @@
 libs/gst/check/libcheck/Makefile
 libs/gst/check/libcheck/check.h
 libs/gst/controller/Makefile
-libs/gst/dataprotocol/Makefile
 libs/gst/helpers/Makefile
 libs/gst/net/Makefile
 plugins/Makefile
-plugins/indexers/Makefile
 plugins/elements/Makefile
 po/Makefile.in
 tests/Makefile
@@ -769,8 +773,6 @@
 pkgconfig/gstreamer-check-uninstalled.pc
 pkgconfig/gstreamer-controller.pc
 pkgconfig/gstreamer-controller-uninstalled.pc
-pkgconfig/gstreamer-dataprotocol.pc
-pkgconfig/gstreamer-dataprotocol-uninstalled.pc
 pkgconfig/gstreamer-net.pc
 pkgconfig/gstreamer-net-uninstalled.pc
 gst-element-check.m4
@@ -785,7 +787,7 @@
     -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
     -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
     -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
-    -e 's/.* GST_MAJORMINOR$/#define GST_MAJORMINOR "'$GST_MAJORMINOR'"/' \
+    -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
     -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
     -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
     -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
@@ -809,7 +811,7 @@
     -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
     -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
     -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
-    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
+    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-1.0"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-1.0"\n#endif/' \
     -e 's/.* GST_PLUGIN_SCANNER_INSTALLED$/#define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\\\gst-plugin-scanner"/' \
     -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
     config.h.in >win32/common/config.h-new
@@ -824,7 +826,6 @@
 if test "x${GST_DISABLE_ALLOC_TRACE}" = "xno"; then enable_alloc_trace="yes"; fi
 if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi
 if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi
-if test "x${GST_DISABLE_NET}" = "xno"; then enable_net="yes"; fi
 
 echo "
 
@@ -846,7 +847,6 @@
 	Allocation tracing         : ${enable_alloc_trace}
 	Plugin registry            : ${enable_registry}
 	Plugin support	           : ${enable_plugin}
-	Network support            : ${enable_net}
 	Unit testing support       : ${BUILD_CHECK}
 
 	Debug                      : ${USE_DEBUG}
diff --git a/depcomp b/depcomp
index df8eea7..bd0ac08 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-12-04.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
   object      Object file output by `PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputing dependencies.
+  tmpdepfile  Temporary file to use when outputting dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
@@ -90,10 +90,18 @@
    # This is just like msvisualcpp but w/o cygpath translation.
    # Just convert the backslash-escaped backslashes to single forward
    # slashes to satisfy depend.m4
-   cygpath_u="sed s,\\\\\\\\,/,g"
+   cygpath_u='sed s,\\\\,/,g'
    depmode=msvisualcpp
 fi
 
+if test "$depmode" = msvc7msys; then
+   # This is just like msvc7 but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u='sed s,\\\\,/,g'
+   depmode=msvc7
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -158,10 +166,12 @@
 ' < "$tmpdepfile" |
 ## Some versions of gcc put a space before the `:'.  On the theory
 ## that the space means something, we add a space to the output as
-## well.
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+      | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -405,6 +415,52 @@
    rm -f "$tmpdepfile"
    ;;
 
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test "$stat" = 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/	\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/	/
+  G
+  p
+}' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 #nosideeffect)
   # This comment above is used by automake to tell side-effect
   # dependency tracking mechanisms from slower ones.
@@ -503,7 +559,9 @@
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
   sed '1,2d' "$tmpdepfile" | tr ' ' '
 ' | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 5d57733..14612de 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -78,11 +95,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -93,6 +110,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -179,10 +201,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -195,10 +219,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -212,7 +236,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -229,6 +252,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -244,7 +271,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -277,6 +303,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -332,6 +359,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -365,7 +393,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -608,13 +635,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -651,10 +675,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/design/Makefile.am b/docs/design/Makefile.am
index 64875c9..60bd86b 100644
--- a/docs/design/Makefile.am
+++ b/docs/design/Makefile.am
@@ -42,6 +42,7 @@
 	part-stream-status.txt \
 	part-streams.txt \
 	part-synchronisation.txt \
+	part-toc.txt \
 	part-TODO.txt \
 	part-trickmodes.txt
 
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index f383551..9e94c62 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -389,6 +416,7 @@
 	part-stream-status.txt \
 	part-streams.txt \
 	part-synchronisation.txt \
+	part-toc.txt \
 	part-TODO.txt \
 	part-trickmodes.txt
 
@@ -483,10 +511,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/design/part-TODO.txt b/docs/design/part-TODO.txt
index 9cb8f0c..e370158 100644
--- a/docs/design/part-TODO.txt
+++ b/docs/design/part-TODO.txt
@@ -51,7 +51,7 @@
     and another a push, the push might be busy while the block callback is done.
   * maybe this name is overloaded. We need to look at some more use cases before
     trying to fix this.
-  FIXED in 0.11 with BLOCKING probes. Not everything is implemented yet, though.
+  FIXED in 0.11 with BLOCKING probes.
 
 - rethink the way we do upstream renegotiation. Currently it's done with
   pad_alloc but this has many issues such as only being able to suggest 1 format
@@ -61,7 +61,7 @@
   This could, for example, easily be triggered with a RENEGOTIATE event.
   FIXED in 0.11 with RECONFIGURE events.
 
-- Remove the result format value in queries.
+- Remove the result format value in queries. FIXED in 0.11
 
 - Try to minimize the amount of acceptcaps calls when pushing buffers around.
   The element pushing the buffer usually negotiated already and decided on the
diff --git a/docs/design/part-element-transform.txt b/docs/design/part-element-transform.txt
index e3c11b8..2afe8c1 100644
--- a/docs/design/part-element-transform.txt
+++ b/docs/design/part-element-transform.txt
@@ -273,7 +273,7 @@
 ~~~~~~~~~~
 
 After the transform element is configured with caps, a bufferpool needs to be
-negotiated to perform the allocation of buffers. We habe 2 cases:
+negotiated to perform the allocation of buffers. We have 2 cases:
 
   - The element is operating in passthrough we don't need to allocate a buffer
     in the transform element.
diff --git a/docs/design/part-events.txt b/docs/design/part-events.txt
index 3193698..c8ffde6 100644
--- a/docs/design/part-events.txt
+++ b/docs/design/part-events.txt
@@ -13,6 +13,7 @@
   GST_EVENT_FLUSH_START:   data is to be discarded
   GST_EVENT_FLUSH_STOP:    data is allowed again
   GST_EVENT_CAPS:          Format information about the following buffers
+  GST_EVENT_STREAM_CONFIG: Stream config: stream headers and codec setup data
   GST_EVENT_SEGMENT:       Timing information for the following buffers
   GST_EVENT_TAG:           Stream metadata.
   GST_EVENT_BUFFERSIZE:    Buffer size requirements
@@ -34,27 +35,23 @@
 src pads
 --------
 
-A gst_pad_push_event() on a srcpad will first store the event in the sticky
-array before sending the event to the peer pad. If there is no peer pad, the
-gst_pad_push_event() function returns NOT_LINKED.
+A gst_pad_push_event() on a srcpad will first store the sticky event in the
+sticky array before sending the event to the peer pad. If there is no peer pad
+and the event was not stored in the sticky array, FALSE is returned.
 
-Note that the behaviour is not influenced by a flushing pad.
+Flushing pads will refuse the events and will not store the sticky events.
 
-FLUSH_START and FLUSH_STOP events are dropped on blocked pads.
 
 sink pads
 ---------
 
-A gst_pad_send_event() on a sinkpad will check the new event against the
-existing event. If they are different, the new event is stored as a pending
-event. If the events are the same, nothing changes.
+A gst_pad_send_event() on a sinkpad will call the event function on the pad. If
+the event function returns success, the sticky event is stored in the sticky
+event array and the event is marked for update.
 
-When the pad is flushing, the _send_event() function returns WRONG_STATE
-immediately.
+When the pad is flushing, the _send_event() function returns FALSE immediately.
 
-The event function is then called for all pending events. If the function
-returns success, the pending event is copied to the active events, else the
-pending event is removed and the current active event is unchanged.
+When the next data item is pushed, the pending events are pushed first.
 
 This ensures that the event function is never called for flushing pads and that
 the sticky array only contains events for which the event function returned
@@ -64,9 +61,9 @@
 pad link
 --------
 
-When linking pads, all the sticky events from the srcpad are copied to the
-pending array on the sinkpad. The pending events will be sent to the event
-function of the sinkpad on the next event or buffer.
+When linking pads, the srcpad sticky events are marked for update when they are
+different from the sinkpad events. The next buffer push will push the events to
+the sinkpad.
 
 
 FLUSH_START/STOP
@@ -112,8 +109,6 @@
 source element when it has finished sending data. This event is mainly sent
 in the streaming thread but can also be sent from the application thread.
 
-An EOS event sent on a srcpad returns GST_FLOW_UNEXPECTED.
-
 The downstream element should forward the EOS event to its downstream peer
 elements. This way the event will eventually reach the sinks which should
 then post an EOS message on the bus when in PLAYING.
@@ -131,7 +126,7 @@
 Sometimes the EOS event is generated by another element than the source, for 
 example a demuxer element can generate an EOS event before the source element.
 This is not a problem, the demuxer does not send an EOS event to the upstream
-element but returns GST_FLOW_UNEXPECTED, causing the source element to stop
+element but returns GST_FLOW_EOS, causing the source element to stop
 sending data.
 
 An element that sends EOS on a pad should stop sending data on that pad. Source
@@ -147,6 +142,26 @@
 A FLUSH_STOP event on an element flushes the EOS state and all pending EOS messages.
 
 
+GST_EVENT_STREAM_CONFIG
+~~~~~~~~~~~~~~~~~~~~~~~
+
+A stream config event is sent downstream by an element to pass stream headers
+or codec/stream setup data to elements downstream.
+
+Stream headers are buffers that are to be pre-pended to a stream to create
+a valid decodable bitstream. This is useful for e.g. network elements who
+will send such stream headers first when a new client connects in the middle
+of a streaming session. The stream headers and the current data will then
+create a valid decodable stream. Stream headers are usually also sent as
+buffers at the beginning of a stream in addition to the rest of the stream
+data.
+
+Setup data is codec config data that must be communicated outside of the
+data stream and is required by the consumer / downstream element in order
+to interpret the data stream correctly. Prepending it to the data stream is
+usually not allowed and will not yield a valid stream.
+
+
 SEGMENT
 ~~~~~~~
 
diff --git a/docs/design/part-latency.txt b/docs/design/part-latency.txt
index 7b58b10..315c756 100644
--- a/docs/design/part-latency.txt
+++ b/docs/design/part-latency.txt
@@ -220,6 +220,31 @@
 PAUSED->PLAYING in a non-live pipeline).
 
 
+Query
+~~~~~
+
+The pipeline latency is queried with the LATENCY query.
+
+ (out) "live", G_TYPE_BOOLEAN (default FALSE)
+        - if a live element is found upstream
+
+ (out) "min-latency", G_TYPE_UINT64 (default 0)
+        - the minimum latency in the pipeline
+
+ (out) "max-latency", G_TYPE_UINT64 (default 0)
+        - the maximum latency in the pipeline
+
+
+Event
+~~~~~
+
+The latency in the pipeline is configured with the LATENCY event, which contains
+the following fields:
+
+      "latency", G_TYPE_UINT64
+        - the configured latency in the pipeline
+
+
 Latency compensation
 ~~~~~~~~~~~~~~~~~~~~
 
diff --git a/docs/design/part-negotiation.txt b/docs/design/part-negotiation.txt
index 2a5f4be..89ae38b 100644
--- a/docs/design/part-negotiation.txt
+++ b/docs/design/part-negotiation.txt
@@ -8,10 +8,65 @@
 flexible, constrained by those parts of the pipeline that are not
 flexible.
 
+
+Basic rules
+~~~~~~~~~~~
+
+The simple rules must be followed:
+
+ 1) downstream suggests formats
+ 2) upstream decides on format
+
+There are 4 queries/events used in caps negotiation:
+
+ 1) GST_QUERY_CAPS        : get possible formats
+ 2) GST_QUERY_ACCEPT_CAPS : check if format is possible
+ 3) GST_EVENT_CAPS        : configure format (downstream)
+ 4) GST_EVENT_RECONFIGURE : inform upstream of possibly new caps
+
+
+Queries
+-------
+
+A pad can ask the peer pad for its supported GstCaps. It does this with
+the CAPS query. The list of supported caps can be used to choose an
+appropriate GstCaps for the data transfer.
+
+ (in) "filter", GST_TYPE_CAPS (default NULL)
+       - a GstCaps to filter the results against
+
+ (out) "caps", GST_TYPE_CAPS (default NULL)
+       - the result caps
+
+
+A pad can ask the peer pad if it supports a given caps. It does this with
+the ACCEPT_CAPS query.
+
+ (in) "caps", GST_TYPE_CAPS
+       - a GstCaps to check
+
+ (out) "result", G_TYPE_BOOLEAN (default FALSE)
+       - TRUE if the caps are accepted
+
+
+Events
+~~~~~~
+
+When a media format is negotiated, peer elements are notified of the GstCaps
+with the CAPS event. The caps must be fixed.
+
+    "caps", GST_TYPE_CAPS
+       - the negotiated GstCaps
+
+
+Operation
+~~~~~~~~~
+
 GStreamer's two scheduling modes, push mode and pull mode, lend
 themselves to different mechanisms to achieve this goal. As it is more
 common we describe push mode negotiation first.
 
+
 Push-mode negotiation
 ~~~~~~~~~~~~~~~~~~~~~
 
@@ -31,9 +86,9 @@
 
  - An element should reconfigure itself to the new format received as a CAPS
    event before processing the following buffers. If the data type in the
-   caps event is not acceptable, the element should refuse the buffer by 
-   returning an appropriate GST_FLOW_NOT_NEGOTIATED return value from the
-   chain function.
+   caps event is not acceptable, the element should refuse the event. The
+   element should also refuse the next buffers by returning an appropriate
+   GST_FLOW_NOT_NEGOTIATED return value from the chain function.
 
  - Downstream elements can request a format change of the stream by sending a
    RECONFIGURE event upstream. Upstream elements will renegotiate a new format
@@ -43,11 +98,18 @@
 
              src              sink
               |                 |
-              |  accepts?       |
-  type A      |---------------->|
-              |      yes        |
-              |< - - - - - - - -|
-              |                 |
+              |  querycaps?     |
+              |---------------->|
+              |     caps        |
+ select caps  |< - - - - - - - -|
+ from the     |                 |
+ candidates   |                 |
+              |                 |-.
+              |  accepts?       | |
+  type A      |---------------->| | optional
+              |      yes        | |
+              |< - - - - - - - -| |
+              |                 |-'
               |  send_event()   |
  send CAPS    |---------------->| Receive type A, reconfigure to
  event A      |                 | process type A.
@@ -61,9 +123,9 @@
  [element wants to create a buffer]
  if not format
    # see what we can do
-   ourcaps = gst_pad_get_caps (srcpad)
+   ourcaps = gst_pad_query_caps (srcpad)
    # see what the peer can do filtered against our caps
-   candidates = gst_pad_peer_get_caps (srcpad, ourcaps)
+   candidates = gst_pad_peer_query_caps (srcpad, ourcaps)
 
    foreach candidate in candidates
      # make sure the caps is fixed
@@ -100,7 +162,7 @@
   mark      .-|<----------------| send RECONFIGURE event
  renegotiate| |                 |
             '>|                 |
-              |   get_caps()    |
+              |  querycaps()    |
  renegotiate  |---------------->| 
               |  suggest B      |
               |< - - - - - - - -|
@@ -121,7 +183,7 @@
 
   1) Who decides what format to use?
    - src pad always decides, by convention. sinkpad can suggest a format
-     by putting it high in the getcaps function GstCaps. 
+     by putting it high in the caps query result GstCaps. 
    - since the src decides, it can always choose something that it can do,
      so this step can only fail if the sinkpad stated it could accept
      something while later on it couldn't.
@@ -143,11 +205,11 @@
    - src receives the RECONFIGURE event and marks renegotiation
    - On the next buffer push, the source renegotiates the caps and the
      bufferpool. The sink will put the new new prefered format high in the list
-     of caps it returns from its getcaps function.
+     of caps it returns from its caps query.
 
 videotestsrc ! queue ! xvimagesink
 
-  - queue proxies all accept and getcaps to the other peer pad.
+  - queue proxies all accept and caps queries to the other peer pad.
   - queue proxies the bufferpool
   - queue proxies the RECONFIGURE event
   - queue stores CAPS event in the queue. This means that the queue can contain
@@ -230,15 +292,15 @@
 doing a SCHEDULING query.
 
 The sink initiates the negotiation process by intersecting the results
-of gst_pad_get_caps() on its sink pad and its peer src pad. This is the
+of gst_pad_query_caps() on its sink pad and its peer src pad. This is the
 operation performed by gst_pad_get_allowed_caps(). In the simple
-passthrough case, the peer pad's getcaps() function should return the
+passthrough case, the peer pad's caps query should return the
 intersection of calling get_allowed_caps() on all of its sink pads. In
 this way the sink element knows the capabilities of the entire pipeline.
 
 The sink element then fixates the resulting caps, if necessary,
-resulting in the flow caps.  From now on, the getcaps function
-of the sinkpad will only return these fixed caps meaning that upstream elements
+resulting in the flow caps.  From now on, the caps query of the sinkpad
+will only return these fixed caps meaning that upstream elements
 will only be able to produce this format.
 
 If the sink element could not set caps on its sink pad, it should post
@@ -255,3 +317,25 @@
 the sink. This is needed to provide a consistent API to the applications that
 expect ASYNC return values from sinks but it also allows us to perform the
 remainder of the negotiation outside of the context of the pulling thread.
+
+
+Patterns
+~~~~~~~~
+
+We can identify 3 patterns in negotiation:
+
+ 1) Fixed : Can't choose the output format
+      - Caps encoded in the stream
+      - A video/audio decoder
+      - usually uses gst_pad_use_fixed_caps()
+
+ 2) Passthrough
+      - Caps not modified
+      - can do caps transform based on element property
+      - videobox
+
+ 3) Dynamic : can choose output format 
+      - A converter element
+      - depends on downstream caps, needs to do a CAPS query to find
+        transform.
+      - usually prefers to use the identity transform
diff --git a/docs/design/part-overview.txt b/docs/design/part-overview.txt
index a51471a..ddc9757 100644
--- a/docs/design/part-overview.txt
+++ b/docs/design/part-overview.txt
@@ -186,8 +186,8 @@
 circumstances by demuxer elements. The pull model can also be used by low latency
 audio applications.
 
-The data passed between pads is encapsulated in Buffers. The buffer contains a
-pointer to the actual data and also metadata describing the data. This metadata
+The data passed between pads is encapsulated in Buffers. The buffer contains 
+pointers to the actual memory and also metadata describing the memory. This metadata
 includes:
  
   - timestamp of the data, this is the time instance at which the data was captured
@@ -208,8 +208,7 @@
 can understand the buffer contents.  It does this by querying the peer element
 for the supported formats and by selecting a suitable common format. The selected
 format is then first sent to the peer element with a CAPS event before pushing
-the buffer.
-
+the buffer (see part-negotiation.txt).
 
 When an element pad receives a CAPS event, it has to check if it understand the
 media type. The element must refuse following buffers if the media type
diff --git a/docs/design/part-query.txt b/docs/design/part-query.txt
index 4973c21..b81773e 100644
--- a/docs/design/part-query.txt
+++ b/docs/design/part-query.txt
@@ -1,44 +1,12 @@
 Query
 -----
 
-NOTE: this is implemented as proposed
-
 Purpose
 ~~~~~~~
 
 Queries are used to get information about the stream. 
 A query is started on a specific pad and travels up or downstream.
 
-Types of queries
-~~~~~~~~~~~~~~~~
-
-  - get length of stream
-  - get position in stream
-  - get seeking capabilities
-  - get latency
-  - convert one value to another
-  - query supported formats
-  - query internal links.
-
-Current implementation
-~~~~~~~~~~~~~~~~~~~~~~
-
-  The current implementation of query requires pads to implement the 
-  following functions:
-
-     gboolean                (*GstPadConvertFunction)        (GstPad *pad,
-                                                              GstFormat src_format,  gint64  src_value,
-                                                              GstFormat *dest_format, gint64 *dest_value);
-     gboolean                (*GstPadQueryFunction)          (GstPad *pad, GstQueryType type,
-                                                              GstFormat *format, gint64  *value);
-     GList*                  (*GstPadIntLinkFunction)        (GstPad *pad);
-     const GstFormat*        (*GstPadFormatsFunction)        (GstPad *pad);
-     const GstEventMask*     (*GstPadEventMaskFunction)      (GstPad *pad);
-     const GstQueryType*     (*GstPadQueryTypeFunction)      (GstPad *pad);
-
-  Most of these functions are not very extensible in particular,
-  the queryfunction can only return one value.
-
 
 Requirements
 ~~~~~~~~~~~~
@@ -47,29 +15,23 @@
   - one pad function to perform the query
   - extensible queries.
 
-Proposition
-~~~~~~~~~~~
+Implementation
+~~~~~~~~~~~~~~
 
-  - define GstQuery extending GstMiniObject and containing a GstStructure (see GstMessage)
-  - define standard query types (see proposed types)
-  - define methods to create a parse the results in the GstQuery.
+  - GstQuery extends GstMiniObject and contains a GstStructure (see GstMessage)
+  - some standard query types are defined below
+  - methods to create and parse the results in the GstQuery.
   - define pad method:
 
-     gboolean                (*GstPadQueryFunction)          (GstPad *pad, GstQuery *query);
+     gboolean                (*GstPadQueryFunction)          (GstPad    *pad,
+                                                              GstObject *parent,
+                                                              GstQuery  *query);
 
     pad returns result in query structure and TRUE as result or FALSE when
     query is not supported.
 
-Proposed types
-~~~~~~~~~~~~~~
-
- - GST_QUERY_SEEKING:
-   
-     get info on how seeking can be done 
-       - getrange, with/without offset/size
-       - ranges where seeking is efficient (for caching network sources)
-       - flags describing seeking behaviour (forward, backward, segments,
-	             play backwards, ...)
+Query types
+~~~~~~~~~~~
 
  - GST_QUERY_POSITION:
   
@@ -81,7 +43,19 @@
  
  - GST_QUERY_LATENCY:
 
-     get amount of latency introduced in the pipeline. 
+     get amount of latency introduced in the pipeline. (See part-latency.txt)
+
+ - GST_QUERY_RATE:
+
+     get the current playback rate of the pipeline
+
+ - GST_QUERY_SEEKING:
+   
+     get info on how seeking can be done 
+       - getrange, with/without offset/size
+       - ranges where seeking is efficient (for caching network sources)
+       - flags describing seeking behaviour (forward, backward, segments,
+	             play backwards, ...)
 
  - GST_QUERY_SEGMENT:
 
@@ -95,3 +69,32 @@
 
      return list of supported formats that can be used for GST_QUERY_CONVERT.
 
+ - GST_QUERY_BUFFERING:
+
+     query available media for efficient seeking (See part-buffering.txt)
+
+ - GST_QUERY_CUSTOM:
+
+     a custom query, the name of the query defines the properties of the query.
+
+ - GST_QUERY_URI:
+
+     query the uri of the source or sink element
+
+ - GST_QUERY_ALLOCATION:
+
+     the buffer allocation properties (See part-bufferpool.txt)
+
+ - GST_QUERY_SCHEDULING:
+
+     the scheduling properties (See part-scheduling.txt)
+
+ - GST_QUERY_ACCEPT_CAPS:
+
+     check if caps are supported (See part-negotiation.txt)
+
+ - GST_QUERY_CAPS:
+
+     get the possible caps (See part-negotiation.txt)
+    
+
diff --git a/docs/design/part-scheduling.txt b/docs/design/part-scheduling.txt
index e3fc9ec..a4fbdb7 100644
--- a/docs/design/part-scheduling.txt
+++ b/docs/design/part-scheduling.txt
@@ -60,18 +60,25 @@
 this with the SCHEDULING query.
 
 
- (out) "pull-mode", G_TYPE_BOOLEAN (default FALSE)
-       - if the pad can operate in pull mode, if this flag is not set the pad
-         will operate in push mode.
+ (out) "modes", G_TYPE_ARRAY (default NULL)
+       - an array of GST_TYPE_PAD_MODE enums. Contains all the supported
+         scheduling modes.
 
- (out) "random-access", G_TYPE_BOOLEAN (default FALSE)
+ (out) "flags", GST_TYPE_SCHEDULING_FLAGS (default 0)
+
+     typedef enum {
+       GST_SCHEDULING_FLAG_SEEKABLE      = (1 << 0),
+       GST_SCHEDULING_FLAG_SEQUENTIAL    = (1 << 1)
+     } GstSchedulingFlags;
+
+   _SEEKABLE:
        - the offset of a pull operation can be specified, if this flag is false,
          the offset should be -1,
-
- (out) "sequential", G_TYPE_BOOLEAN (default TRUE)
-       - suggest sequential access to the data. If random-access is specified,
+ 
+   _SEQUENTIAL:
+       - suggest sequential access to the data. If _SEEKABLE is specified,
          seeks are allowed but should be avoided. This is common for network
-         streams. (
+         streams.
 
  (out) "minsize", G_TYPE_INT (default 1)
        - the suggested minimum size of pull requests
@@ -79,7 +86,7 @@
  (out) "maxsize", G_TYPE_INT (default -1, unlimited)
        - the suggested maximum size of pull requests
 
- (out) "align", G_TYPE_INT (default 1)
+ (out) "align", G_TYPE_INT (default 0)
        - the suggested alignment for the pull requests.
 
 
diff --git a/docs/design/part-segments.txt b/docs/design/part-segments.txt
index e05ec5b..21926ae 100644
--- a/docs/design/part-segments.txt
+++ b/docs/design/part-segments.txt
@@ -90,7 +90,7 @@
     segment, the decoder knows it should not send the P frame.
 
     Avidemux stops sending data after pushing a frame with timestamp 5 and
-    returns GST_FLOW_UNEXPECTED from the chain function to make the upstream
+    returns GST_FLOW_EOS from the chain function to make the upstream
     elements perform the EOS logic.
 
 
diff --git a/docs/design/part-streams.txt b/docs/design/part-streams.txt
index 119921d..ebc33d2 100644
--- a/docs/design/part-streams.txt
+++ b/docs/design/part-streams.txt
@@ -64,7 +64,7 @@
 
   3) EOS
      - marks the end of data, nothing is to be expected after EOS, elements
-       should refuse more data and return GST_FLOW_UNEXPECTED. A FLUSH_STOP
+       should refuse more data and return GST_FLOW_EOS. A FLUSH_STOP
        event clears the EOS state of an element.
 
 
diff --git a/docs/design/part-toc.txt b/docs/design/part-toc.txt
new file mode 100644
index 0000000..73231da
--- /dev/null
+++ b/docs/design/part-toc.txt
@@ -0,0 +1,89 @@
+Implementing GstToc support in GStreamer elements
+
+1. General info about GstToc structure
+
+GstToc introduces a general way to handle chapters within multimedia
+formats. GstToc can be represented as tree structure with arbitrary
+hierarchy. Tree item can be either of two types: chapter or edition.
+Chapter acts like a part of the media data, for example audio track
+in CUE sheet, or part of the movie. Edition acts like some kind of
+alternative way to process media content, for example DVD angles.
+GstToc has one limitation on tree structure: on the same level of
+hierarchy there couldn't be items of different type, i.e. you shouldn't
+have editions and chapters mixed together. Here is an example of right TOC:
+
+  -------  TOC  -------
+           /  \
+   edition1    edition2
+   |           |
+   -chapter1   -chapter3
+   -chapter2       
+
+Here are two editions, the first contains two chapters, and the second
+has only one chapter. And here is an example of invalid TOC:
+
+  -------  TOC  -------
+           /  \
+   edition1    chapter1
+   |                 
+   -chapter1
+   -chapter2    
+ 
+Here you have edition1 and chapter1 mixed on the same level of hierarchy,
+and such TOC will be considered broken.
+
+GstToc has 'entries' field of GList type which consists of children items.
+Each item is of type GstTocEntry. Also GstToc has list of tags and
+GstStructure called 'info'. Please, use GstToc.info and GstTocEntry.info
+fields this way: create a GstStructure, put all info related to your element
+there and put this structure into the 'info' field under the name of your
+element. Some fields in the 'info' structure can be used for internal
+purposes, so you should use it in the way described above to not to
+overwrite already existent fields.
+
+Let's look at GstTocEntry a bit closer. One of the most important fields
+is 'uid', which must be unique for each item within the TOC. This is used
+to identify each item inside TOC, especially when element receives TOC
+select event with UID to seek on. Field 'subentries' of type GList contains
+children items of type GstTocEntry. Thus you can achieve arbitrary hierarchy
+level. Field 'type' can be either GST_TOC_ENTRY_TYPE_CHAPTER or
+GST_TOC_ENTRY_TYPE_EDITION which corresponds to chapter or edition type of
+item respectively. Field 'pads' of type GList contains list of GStreamer
+pads related to the item. It can be used for example to link a TOC with
+specific pad. Field 'tags' is a list of tags related to the item. And field
+'info' is similar to GstToc.info described above.
+
+So, a little more about managing GstToc. Use gst_toc_new() and gst_toc_free()
+to create/free it. GstTocEntry can be created using gst_toc_entry_new() and
+gst_toc_entry_new_with_pad(). The latter method used to create GstTocEntry
+linked to particular pad. While building GstToc you can set start and stop
+timestamps for each item using gst_toc_entry_set_start_stop().
+The best way to process already created GstToc is to recursively go through
+the 'entries' and 'subentries' fields.
+
+2. Working with GstQuery
+
+GstQuery with GstToc can be created using gst_query_new_toc(). Use
+gst_query_set_toc() to set TOC into the query and parse it with
+gst_query_parse_toc(). The 'extend_uid' parameter (0 for root level) in two
+last methods should be used for TOC extending: get GstTocEntry with
+gst_toc_find_entry() by given UID and use it to add your own chapters/editions.
+The common action on such query is to set TOC for it.
+
+3. Working with GstMessage
+
+GstMessage with GstToc can be created using gst_message_new_toc() and parsed
+with gst_message_parse_toc(). The 'updated' parameter in these methods indicates
+whether the TOC was just discovered (set to false) or TOC was already found and
+have been updated (set to true). The common usage for such message is to post it
+to pipeline in case you have discovered TOC data within your element.
+
+4. Working with GstEvent
+
+GstToc supports select event through GstEvent infrastructure. The idea is the
+following: when you receive TOC select event, parse it with
+gst_event_parse_toc_select() and seek stream (if it is not streamable) for
+specified TOC UID (you can use gst_toc_find_entry() to find entry in TOC by UID).
+To create TOC select event use gst_event_new_toc_select(). The common action on
+such event is to seek to specified UID within your element. 
+
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index 2fc3aa9..601dba1 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,23 @@
 # install directory trees :(
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -102,14 +119,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -131,6 +153,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(faqdir)"
 DATA = $(faq_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -187,10 +215,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -203,10 +233,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -220,7 +250,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -237,6 +266,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -252,7 +285,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -285,6 +317,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -340,6 +373,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -373,7 +407,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -496,6 +529,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(srcdir)/../manuals.mak $(top_srcdir)/common/upload-doc.mak $(srcdir)/../htmlinstall.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -513,8 +547,11 @@
 	-rm -rf .libs _libs
 install-faqDATA: $(faq_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(faqdir)" || $(MKDIR_P) "$(DESTDIR)$(faqdir)"
 	@list='$(faq_DATA)'; test -n "$(faqdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(faqdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(faqdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -528,9 +565,7 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(faq_DATA)'; test -n "$(faqdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(faqdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(faqdir)" && rm -f $$files
+	dir='$(DESTDIR)$(faqdir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -586,10 +621,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/faq/developing.xml b/docs/faq/developing.xml
index dafbc4c..b145989 100644
--- a/docs/faq/developing.xml
+++ b/docs/faq/developing.xml
@@ -19,12 +19,12 @@
 one-file program, pass the --cflags and --libs arguments to pkg-config.
 For example:
 <programlisting>
-$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_MAJORMINOR;` -o myprog myprog.c
+$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_API_VERSION;` -o myprog myprog.c
 </programlisting>
 would be sufficient for a gstreamer-only program. 
 If (for example) your app also used GTK+ 2.0, you could use
 <programlisting>
-$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_MAJORMINOR; gtk+-2.0` -o myprog myprog.c
+$ libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-&GST_API_VERSION; gtk+-2.0` -o myprog myprog.c
 </programlisting>
 Those are back-ticks (on the same key with the tilde on US keyboards), 
 not single quotes.
diff --git a/docs/faq/general.xml b/docs/faq/general.xml
index c6ccb6a..e85bec0 100644
--- a/docs/faq/general.xml
+++ b/docs/faq/general.xml
@@ -99,7 +99,7 @@
       <answer>
         <para>
 All of GStreamer, including our own plugin code, is licensed under the 
-<ulink url="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</ulink> license.
+<ulink url="http://www.gnu.org/licenses/lgpl-2.1.html">GNU LGPL 2.1</ulink> license.
 Some of the libraries we use for some of the plugins are however under the 
 GPL, which means that those plugins can not be used by a non-GPL-compatible 
 application. 
diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am
index a3bf560..23eac9f 100644
--- a/docs/gst/Makefile.am
+++ b/docs/gst/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
 # The name of the module, e.g. 'glib'.
-# DOC_MODULE=gstreamer-@GST_MAJORMINOR@
+# DOC_MODULE=gstreamer-@GST_API_VERSION@
 DOC_MODULE=gstreamer
 
 # don't want $(DOC_MODULE)-scan.c to be built with -Werror
@@ -45,7 +45,6 @@
 	gst-i18n-lib.h \
 	gst_private.h \
 	gstelementdetails.h \
-	gstmarshal.h \
 	gstmacros.h \
 	\
 	grammar.tab.h \
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index 12ca83e..cc68ada 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,6 +34,23 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -98,14 +115,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = gstreamer.types
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -162,10 +184,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -178,10 +202,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -195,7 +219,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -212,6 +235,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -227,7 +254,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -260,6 +286,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -315,6 +342,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -348,7 +376,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -371,7 +398,7 @@
 top_srcdir = @top_srcdir@
 
 # The name of the module, e.g. 'glib'.
-# DOC_MODULE=gstreamer-@GST_MAJORMINOR@
+# DOC_MODULE=gstreamer-@GST_API_VERSION@
 DOC_MODULE = gstreamer
 BUILT_SOURCES = gstreamer.types
 
@@ -414,7 +441,6 @@
 	gst-i18n-lib.h \
 	gst_private.h \
 	gstelementdetails.h \
-	gstmarshal.h \
 	gstmacros.h \
 	\
 	grammar.tab.h \
@@ -455,7 +481,7 @@
 GPATH = $(srcdir)
 
 # thomas: make docs parallel installable
-TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_API_VERSION@
 EXTRA_DIST = \
 	$(content_files)		\
 	$(extra_files)			\
@@ -515,6 +541,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -588,10 +615,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -824,7 +856,7 @@
 @ENABLE_GTK_DOC_TRUE@	fi; \
 @ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f version.entities
@@ -882,7 +914,7 @@
 	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
 	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
 	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
-	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
+	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  (which gtkdoc-rebase >/dev/null && \
 	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \
diff --git a/docs/gst/gst-universe.svg b/docs/gst/gst-universe.svg
index 9d9140d..9096ba4 100644
--- a/docs/gst/gst-universe.svg
+++ b/docs/gst/gst-universe.svg
@@ -4,290 +4,290 @@
 <!-- Generated by graphviz version 2.26.3 (20100126.1600)
  -->
 <!-- Title: pipeline Pages: 1 -->
-<svg width="710pt" height="644pt"
- viewBox="0.00 0.00 710.00 644.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 640)">
+<svg width="710pt" height="632pt"
+ viewBox="0.00 0.00 710.00 632.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 628)">
 <title>pipeline</title>
-<polygon fill="white" stroke="white" points="-4,5 -4,-640 707,-640 707,5 -4,5"/>
+<polygon fill="white" stroke="white" points="-4,5 -4,-628 707,-628 707,5 -4,5"/>
 <!-- application -->
 <g id="node1" class="node"><title>application</title>
-<polygon fill="#ffdddd" stroke="black" points="549,-636 481,-636 481,-600 549,-600 549,-636"/>
-<text text-anchor="middle" x="515" y="-615.9" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
+<polygon fill="#ffdddd" stroke="black" points="549,-624 481,-624 481,-588 549,-588 549,-624"/>
+<text text-anchor="middle" x="515" y="-603.4" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
 </g>
 <!-- bus -->
 <g id="node3" class="node"><title>bus</title>
 <a xlink:href="GstBus.html" xlink:title="bus" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="123,-472 69,-472 69,-436 123,-436 123,-472"/>
-<text text-anchor="middle" x="96" y="-451.9" font-family="Bitstream Vera Sans" font-size="9.00">bus</text>
+<polygon fill="#eeeeee" stroke="black" points="123,-464 69,-464 69,-428 123,-428 123,-464"/>
+<text text-anchor="middle" x="96" y="-443.4" font-family="Bitstream Vera Sans" font-size="9.00">bus</text>
 </a>
 </g>
 <!-- application&#45;&gt;bus -->
 <g id="edge48" class="edge"><title>application&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M480.882,-615.068C387.109,-606.683 130.706,-581.436 105,-554 87.3034,-535.112 87.1077,-504.493 90.0647,-482.105"/>
-<polygon fill="black" stroke="black" points="93.5309,-482.594 91.6499,-472.167 86.6183,-481.491 93.5309,-482.594"/>
-<text text-anchor="middle" x="121" y="-534.7" font-family="Bitstream Vera Sans" font-size="7.00">listen on</text>
+<path fill="none" stroke="black" d="M480.889,-603.237C387.135,-595.315 130.777,-571.331 105,-544 87.773,-525.735 87.3582,-496.146 90.1306,-474.254"/>
+<polygon fill="black" stroke="black" points="93.6146,-474.626 91.6879,-464.208 86.6972,-473.554 93.6146,-474.626"/>
+<text text-anchor="middle" x="121" y="-523.7" font-family="Bitstream Vera Sans" font-size="7.00">listen on</text>
 </g>
 <!-- event -->
 <g id="node9" class="node"><title>event</title>
 <a xlink:href="gstreamer-GstEvent.html" xlink:title="event" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="593,-308 539,-308 539,-272 593,-272 593,-308"/>
-<text text-anchor="middle" x="566" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">event</text>
+<polygon fill="#ddffdd" stroke="black" points="593,-304 539,-304 539,-268 593,-268 593,-304"/>
+<text text-anchor="middle" x="566" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">event</text>
 </a>
 </g>
 <!-- application&#45;&gt;event -->
 <g id="edge52" class="edge"><title>application&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M549.192,-609.322C583.091,-598.421 630,-576.092 630,-536 630,-536 630,-536 630,-372 630,-350.63 628.436,-343.379 616,-326 611.985,-320.389 606.819,-315.321 601.337,-310.877"/>
-<polygon fill="black" stroke="black" points="603.294,-307.97 593.177,-304.823 599.123,-313.592 603.294,-307.97"/>
-<text text-anchor="middle" x="639" y="-452.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M549.192,-597.789C583.091,-587.369 630,-565.765 630,-526 630,-526 630,-526 630,-366 630,-345.478 628.047,-338.613 616,-322 611.95,-316.415 606.766,-311.359 601.278,-306.92"/>
+<polygon fill="black" stroke="black" points="603.233,-304.012 593.115,-300.868 599.064,-309.635 603.233,-304.012"/>
+<text text-anchor="middle" x="639" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- pipeline -->
 <g id="node13" class="node"><title>pipeline</title>
 <a xlink:href="GstPipeline.html" xlink:title="pipeline" target="_top">
-<polygon fill="#ccccff" stroke="black" points="200,-554 146,-554 146,-518 200,-518 200,-554"/>
-<text text-anchor="middle" x="173" y="-533.9" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
+<polygon fill="#ccccff" stroke="black" points="200,-544 146,-544 146,-508 200,-508 200,-544"/>
+<text text-anchor="middle" x="173" y="-523.4" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
 </a>
 </g>
 <!-- application&#45;&gt;pipeline -->
 <g id="edge46" class="edge"><title>application&#45;&gt;pipeline</title>
-<path fill="none" stroke="black" d="M480.957,-609.838C416.487,-594.38 277.059,-560.95 210.214,-544.923"/>
-<polygon fill="black" stroke="black" points="210.671,-541.433 200.131,-542.505 209.039,-548.24 210.671,-541.433"/>
-<text text-anchor="middle" x="371.5" y="-575.7" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
+<path fill="none" stroke="black" d="M480.957,-598.037C416.487,-582.956 277.059,-550.341 210.214,-534.705"/>
+<polygon fill="black" stroke="black" points="210.665,-531.216 200.131,-532.346 209.071,-538.032 210.665,-531.216"/>
+<text text-anchor="middle" x="361.5" y="-563.7" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
 </g>
 <!-- query -->
 <g id="node16" class="node"><title>query</title>
 <a xlink:href="gstreamer-GstQuery.html" xlink:title="query" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="688,-308 634,-308 634,-272 688,-272 688,-308"/>
-<text text-anchor="middle" x="661" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">query</text>
+<polygon fill="#ddffdd" stroke="black" points="688,-304 634,-304 634,-268 688,-268 688,-304"/>
+<text text-anchor="middle" x="661" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">query</text>
 </a>
 </g>
 <!-- application&#45;&gt;query -->
 <g id="edge50" class="edge"><title>application&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M549.2,-608.845C598.582,-594.602 684,-565.677 684,-536 684,-536 684,-536 684,-372 684,-353.443 678.472,-333.372 672.836,-317.732"/>
-<polygon fill="black" stroke="black" points="676.014,-316.245 669.174,-308.155 669.476,-318.745 676.014,-316.245"/>
-<text text-anchor="middle" x="693" y="-452.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M549.2,-597.216C598.582,-583.512 684,-555.54 684,-526 684,-526 684,-526 684,-366 684,-347.981 678.544,-328.536 672.946,-313.329"/>
+<polygon fill="black" stroke="black" points="676.203,-312.047 669.304,-304.006 669.683,-314.594 676.203,-312.047"/>
+<text text-anchor="middle" x="693" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- bin -->
 <g id="node2" class="node"><title>bin</title>
 <a xlink:href="GstBin.html" xlink:title="bin" target="_top">
-<polygon fill="#ccccff" stroke="black" points="344,-472 290,-472 290,-436 344,-436 344,-472"/>
-<text text-anchor="middle" x="317" y="-451.9" font-family="Bitstream Vera Sans" font-size="9.00">bin</text>
+<polygon fill="#ccccff" stroke="black" points="344,-464 290,-464 290,-428 344,-428 344,-464"/>
+<text text-anchor="middle" x="317" y="-443.4" font-family="Bitstream Vera Sans" font-size="9.00">bin</text>
 </a>
 </g>
 <!-- element -->
 <g id="node7" class="node"><title>element</title>
 <a xlink:href="GstElement.html" xlink:title="element" target="_top">
-<polygon fill="#ccccff" stroke="black" points="380,-390 326,-390 326,-354 380,-354 380,-390"/>
-<text text-anchor="middle" x="353" y="-369.9" font-family="Bitstream Vera Sans" font-size="9.00">element</text>
+<polygon fill="#ccccff" stroke="black" points="380,-384 326,-384 326,-348 380,-348 380,-384"/>
+<text text-anchor="middle" x="353" y="-363.4" font-family="Bitstream Vera Sans" font-size="9.00">element</text>
 </a>
 </g>
 <!-- bin&#45;&gt;element -->
 <g id="edge2" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M314.385,-435.89C313.863,-427.147 314.36,-416.694 318,-408 319.467,-404.497 321.448,-401.144 323.725,-397.991"/>
-<polygon fill="black" stroke="black" points="326.558,-400.06 330.299,-390.148 321.193,-395.564 326.558,-400.06"/>
-<text text-anchor="middle" x="324.5" y="-411.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M314.473,-427.82C314.065,-419.637 314.632,-410.033 318,-402 319.468,-398.498 321.45,-395.145 323.729,-391.993"/>
+<polygon fill="black" stroke="black" points="326.562,-394.062 330.303,-384.15 321.197,-389.565 326.562,-394.062"/>
+<text text-anchor="middle" x="324.5" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- bin&#45;&gt;element -->
 <g id="edge24" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M324.99,-435.802C329.65,-425.185 335.624,-411.578 340.857,-399.66"/>
-<polygon fill="black" stroke="black" points="344.218,-400.711 345.033,-390.148 337.808,-397.897 344.218,-400.711"/>
-<text text-anchor="middle" x="348" y="-411.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M325.169,-427.847C329.772,-417.618 335.612,-404.64 340.752,-393.217"/>
+<polygon fill="black" stroke="black" points="343.951,-394.637 344.863,-384.081 337.568,-391.764 343.951,-394.637"/>
+<text text-anchor="middle" x="347" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- message -->
 <g id="node10" class="node"><title>message</title>
 <a xlink:href="gstreamer-GstMessage.html" xlink:title="message" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="130,-308 72,-308 72,-272 130,-272 130,-308"/>
-<text text-anchor="middle" x="101" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">message</text>
+<polygon fill="#ddffdd" stroke="black" points="130,-304 72,-304 72,-268 130,-268 130,-304"/>
+<text text-anchor="middle" x="101" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">message</text>
 </a>
 </g>
 <!-- bus&#45;&gt;message -->
 <g id="edge38" class="edge"><title>bus&#45;&gt;message</title>
-<path fill="none" stroke="black" d="M96.5542,-435.823C97.4214,-407.377 99.1062,-352.115 100.134,-318.39"/>
-<polygon fill="black" stroke="black" points="103.637,-318.361 100.443,-308.259 96.6401,-318.148 103.637,-318.361"/>
-<text text-anchor="middle" x="113" y="-370.7" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
+<path fill="none" stroke="black" d="M96.5638,-427.957C97.4266,-400.349 99.082,-347.375 100.109,-314.525"/>
+<polygon fill="black" stroke="black" points="103.616,-314.327 100.431,-304.223 96.6198,-314.108 103.616,-314.327"/>
+<text text-anchor="middle" x="113" y="-363.7" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
 </g>
 <!-- buffer -->
 <g id="node4" class="node"><title>buffer</title>
 <a xlink:href="gstreamer-GstBuffer.html" xlink:title="buffer" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="526,-254 472,-254 472,-218 526,-218 526,-254"/>
-<text text-anchor="middle" x="499" y="-233.9" font-family="Bitstream Vera Sans" font-size="9.00">buffer</text>
+<polygon fill="#ddffdd" stroke="black" points="526,-250 472,-250 472,-214 526,-214 526,-250"/>
+<text text-anchor="middle" x="499" y="-229.4" font-family="Bitstream Vera Sans" font-size="9.00">buffer</text>
 </a>
 </g>
 <!-- caps -->
 <g id="node5" class="node"><title>caps</title>
 <a xlink:href="gstreamer-GstCaps.html" xlink:title="caps" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="477,-118 423,-118 423,-82 477,-82 477,-118"/>
-<text text-anchor="middle" x="450" y="-97.9" font-family="Bitstream Vera Sans" font-size="9.00">caps</text>
+<polygon fill="#eeeeee" stroke="black" points="477,-116 423,-116 423,-80 477,-80 477,-116"/>
+<text text-anchor="middle" x="450" y="-95.4" font-family="Bitstream Vera Sans" font-size="9.00">caps</text>
 </a>
 </g>
 <!-- buffer&#45;&gt;caps -->
 <g id="edge20" class="edge"><title>buffer&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M492.897,-217.855C486.079,-197.759 474.605,-164.437 464,-136 462.989,-133.29 461.922,-130.472 460.846,-127.659"/>
-<polygon fill="black" stroke="black" points="464.09,-126.343 457.221,-118.276 457.56,-128.866 464.09,-126.343"/>
-<text text-anchor="middle" x="497" y="-180.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M492.897,-213.892C487.934,-199.296 480.682,-178.267 474,-160 469.747,-148.373 468.466,-145.547 464,-134 462.957,-131.303 461.868,-128.493 460.778,-125.684"/>
+<polygon fill="black" stroke="black" points="464.019,-124.363 457.135,-116.309 457.495,-126.898 464.019,-124.363"/>
+<text text-anchor="middle" x="497" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- structure -->
 <g id="node18" class="node"><title>structure</title>
 <a xlink:href="gstreamer-GstStructure.html" xlink:title="structure" target="_top">
 <polygon fill="#eeeeee" stroke="black" points="480,-36 420,-36 420,-1.77636e-14 480,-3.55271e-15 480,-36"/>
-<text text-anchor="middle" x="450" y="-15.9" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
+<text text-anchor="middle" x="450" y="-15.4" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
 </a>
 </g>
 <!-- caps&#45;&gt;structure -->
 <g id="edge22" class="edge"><title>caps&#45;&gt;structure</title>
-<path fill="none" stroke="black" d="M450,-81.8015C450,-71.3976 450,-58.1215 450,-46.3768"/>
-<polygon fill="black" stroke="black" points="453.5,-46.1476 450,-36.1476 446.5,-46.1476 453.5,-46.1476"/>
-<text text-anchor="middle" x="460" y="-57.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M450,-79.8468C450,-69.9251 450,-57.4167 450,-46.2492"/>
+<polygon fill="black" stroke="black" points="453.5,-46.0814 450,-36.0814 446.5,-46.0814 453.5,-46.0814"/>
+<text text-anchor="middle" x="460" y="-55.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- clock -->
 <g id="node6" class="node"><title>clock</title>
 <a xlink:href="GstClock.html" xlink:title="clock" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="202,-308 148,-308 148,-272 202,-272 202,-308"/>
-<text text-anchor="middle" x="175" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">clock</text>
+<polygon fill="#eeeeee" stroke="black" points="202,-304 148,-304 148,-268 202,-268 202,-304"/>
+<text text-anchor="middle" x="175" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">clock</text>
 </a>
 </g>
 <!-- element&#45;&gt;buffer -->
 <g id="edge34" class="edge"><title>element&#45;&gt;buffer</title>
-<path fill="none" stroke="black" d="M380.275,-353.991C388.855,-348.279 398.348,-341.911 407,-336 424.918,-323.758 431.543,-323.231 447,-308 460.734,-294.467 473.458,-276.976 482.882,-262.622"/>
-<polygon fill="black" stroke="black" points="485.859,-264.463 488.302,-254.154 479.963,-260.689 485.859,-264.463"/>
-<text text-anchor="middle" x="450.5" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
+<path fill="none" stroke="black" d="M380.397,-351.493C400.229,-340.184 426.959,-323.209 447,-304 460.92,-290.658 473.648,-273.171 483.028,-258.772"/>
+<polygon fill="black" stroke="black" points="486.019,-260.591 488.416,-250.27 480.106,-256.844 486.019,-260.591"/>
+<text text-anchor="middle" x="453.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
 </g>
 <!-- element&#45;&gt;clock -->
 <g id="edge14" class="edge"><title>element&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M325.855,-367.7C299.621,-362.753 259.355,-353.032 228,-336 217.836,-330.479 207.921,-322.726 199.469,-315.157"/>
-<polygon fill="black" stroke="black" points="201.851,-312.592 192.153,-308.326 197.074,-317.709 201.851,-312.592"/>
-<text text-anchor="middle" x="250.5" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">may provide</text>
+<path fill="none" stroke="black" d="M325.693,-361.348C299.743,-356.186 260.166,-346.35 229,-330 219.262,-324.891 209.628,-317.86 201.253,-310.916"/>
+<polygon fill="black" stroke="black" points="203.505,-308.236 193.647,-304.352 198.931,-313.535 203.505,-308.236"/>
+<text text-anchor="middle" x="251.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">may provide</text>
 </g>
 <!-- element_factory -->
 <g id="node8" class="node"><title>element_factory</title>
 <a xlink:href="GstElementFactory.html" xlink:title="element factory" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="310,-308 220,-308 220,-272 310,-272 310,-308"/>
-<text text-anchor="middle" x="265" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">element factory</text>
+<polygon fill="#eeeeee" stroke="black" points="310,-304 220,-304 220,-268 310,-268 310,-304"/>
+<text text-anchor="middle" x="265" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">element factory</text>
 </a>
 </g>
 <!-- element&#45;&gt;element_factory -->
 <g id="edge28" class="edge"><title>element&#45;&gt;element_factory</title>
-<path fill="none" stroke="black" d="M325.762,-363.328C311.405,-357.559 294.447,-348.679 283,-336 278.399,-330.904 274.915,-324.496 272.3,-318.095"/>
-<polygon fill="black" stroke="black" points="275.46,-316.528 268.869,-308.233 268.849,-318.828 275.46,-316.528"/>
-<text text-anchor="middle" x="311" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
+<path fill="none" stroke="black" d="M325.838,-357.258C311.504,-351.469 294.544,-342.591 283,-330 278.784,-325.401 275.488,-319.682 272.937,-313.905"/>
+<polygon fill="black" stroke="black" points="276.122,-312.433 269.315,-304.315 269.574,-314.907 276.122,-312.433"/>
+<text text-anchor="middle" x="311" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
 </g>
 <!-- element&#45;&gt;event -->
 <g id="edge32" class="edge"><title>element&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M380.199,-366.671C407.356,-360.87 449.978,-350.452 485,-336 500.329,-329.675 516.373,-321.036 530.1,-312.953"/>
-<polygon fill="black" stroke="black" points="531.988,-315.902 538.756,-307.751 528.382,-309.902 531.988,-315.902"/>
-<text text-anchor="middle" x="533.5" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
+<path fill="none" stroke="black" d="M380.142,-360.53C407.254,-354.621 449.843,-344.121 485,-330 500.082,-323.942 515.946,-315.766 529.598,-308.105"/>
+<polygon fill="black" stroke="black" points="531.72,-310.923 538.659,-302.916 528.242,-304.848 531.72,-310.923"/>
+<text text-anchor="middle" x="529.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
 </g>
 <!-- element&#45;&gt;message -->
 <g id="edge36" class="edge"><title>element&#45;&gt;message</title>
-<path fill="none" stroke="black" d="M325.931,-368.055C293.466,-362.847 237.703,-352.373 192,-336 174.029,-329.562 155.051,-320.385 139.103,-311.92"/>
-<polygon fill="black" stroke="black" points="140.555,-308.726 130.094,-307.044 137.223,-314.882 140.555,-308.726"/>
-<text text-anchor="middle" x="201" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M325.964,-361.631C294.115,-356.077 239.857,-345.332 195,-330 171.57,-321.992 165.056,-316.753 139.167,-304.146"/>
+<polygon fill="black" stroke="black" points="140.567,-300.936 130.035,-299.782 137.548,-307.252 140.567,-300.936"/>
+<text text-anchor="middle" x="204" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- pad -->
 <g id="node11" class="node"><title>pad</title>
 <a xlink:href="GstPad.html" xlink:title="pad" target="_top">
-<polygon fill="#ccccff" stroke="black" points="438,-308 384,-308 384,-272 438,-272 438,-308"/>
-<text text-anchor="middle" x="411" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">pad</text>
+<polygon fill="#ccccff" stroke="black" points="438,-304 384,-304 384,-268 438,-268 438,-304"/>
+<text text-anchor="middle" x="411" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">pad</text>
 </a>
 </g>
 <!-- element&#45;&gt;pad -->
 <g id="edge12" class="edge"><title>element&#45;&gt;pad</title>
-<path fill="none" stroke="black" d="M365.872,-353.802C373.606,-342.867 383.585,-328.759 392.191,-316.592"/>
-<polygon fill="black" stroke="black" points="395.247,-318.333 398.164,-308.148 389.532,-314.291 395.247,-318.333"/>
-<text text-anchor="middle" x="396" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M366.161,-347.847C373.799,-337.311 383.552,-323.859 392.01,-312.193"/>
+<polygon fill="black" stroke="black" points="394.855,-314.232 397.891,-304.081 389.188,-310.123 394.855,-314.232"/>
+<text text-anchor="middle" x="394" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pad_template -->
 <g id="node12" class="node"><title>pad_template</title>
 <a xlink:href="GstPadTemplate.html" xlink:title="pad template" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="414,-200 334,-200 334,-164 414,-164 414,-200"/>
-<text text-anchor="middle" x="374" y="-179.9" font-family="Bitstream Vera Sans" font-size="9.00">pad template</text>
+<polygon fill="#eeeeee" stroke="black" points="414,-196 334,-196 334,-160 414,-160 414,-196"/>
+<text text-anchor="middle" x="374" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">pad template</text>
 </a>
 </g>
 <!-- element&#45;&gt;pad_template -->
 <g id="edge10" class="edge"><title>element&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M352.343,-353.866C351.852,-333.779 351.74,-300.465 355,-272 357.392,-251.109 362.35,-227.899 366.602,-210.282"/>
-<polygon fill="black" stroke="black" points="370.115,-210.655 369.128,-200.107 363.321,-208.969 370.115,-210.655"/>
-<text text-anchor="middle" x="365" y="-288.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M352.357,-347.87C351.893,-328.148 351.819,-295.727 355,-268 357.397,-247.11 362.354,-223.9 366.605,-206.283"/>
+<polygon fill="black" stroke="black" points="370.118,-206.656 369.13,-196.107 363.324,-204.969 370.118,-206.656"/>
+<text text-anchor="middle" x="365" y="-283.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- element&#45;&gt;query -->
 <g id="edge30" class="edge"><title>element&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M380.065,-369.707C420.595,-365.751 499.124,-356.062 563,-336 584.225,-329.334 606.773,-318.998 624.884,-309.811"/>
-<polygon fill="black" stroke="black" points="626.645,-312.84 633.919,-305.137 623.429,-306.623 626.645,-312.84"/>
-<text text-anchor="middle" x="604" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">answers</text>
+<path fill="none" stroke="black" d="M380.078,-363.438C420.24,-359.164 497.668,-349.102 561,-330 582.749,-323.44 606.035,-313.388 624.659,-304.547"/>
+<polygon fill="black" stroke="black" points="626.19,-307.695 633.67,-300.192 623.144,-301.392 626.19,-307.695"/>
+<text text-anchor="middle" x="599" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">answers</text>
 </g>
 <!-- plugin_feature -->
 <g id="node15" class="node"><title>plugin_feature</title>
 <a xlink:href="GstPluginFeature.html" xlink:title="plugin feature" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="163,-200 81,-200 81,-164 163,-164 163,-200"/>
-<text text-anchor="middle" x="122" y="-179.9" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
+<polygon fill="#eeeeee" stroke="black" points="163,-196 81,-196 81,-160 163,-160 163,-196"/>
+<text text-anchor="middle" x="122" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
 </a>
 </g>
 <!-- element_factory&#45;&gt;plugin_feature -->
 <g id="edge44" class="edge"><title>element_factory&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M241.065,-271.923C217.246,-253.934 180.538,-226.21 154.178,-206.302"/>
-<polygon fill="black" stroke="black" points="156.102,-203.37 146.013,-200.136 151.884,-208.955 156.102,-203.37"/>
-<text text-anchor="middle" x="221.5" y="-234.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M241.065,-267.923C217.246,-249.934 180.538,-222.21 154.178,-202.302"/>
+<polygon fill="black" stroke="black" points="156.102,-199.37 146.013,-196.136 151.884,-204.955 156.102,-199.37"/>
+<text text-anchor="middle" x="221.5" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- pad&#45;&gt;caps -->
 <g id="edge16" class="edge"><title>pad&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M426.212,-271.967C430.042,-266.513 433.711,-260.293 436,-254 444.122,-231.669 447.706,-166.582 449.144,-128.55"/>
-<polygon fill="black" stroke="black" points="452.656,-128.262 449.509,-118.145 445.66,-128.016 452.656,-128.262"/>
-<text text-anchor="middle" x="458" y="-180.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M426.207,-267.966C430.037,-262.511 433.708,-256.291 436,-250 444.01,-228.018 447.63,-164.049 449.106,-126.47"/>
+<polygon fill="black" stroke="black" points="452.615,-126.299 449.483,-116.178 445.619,-126.044 452.615,-126.299"/>
+<text text-anchor="middle" x="458" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pad&#45;&gt;pad_template -->
 <g id="edge26" class="edge"><title>pad&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M391.451,-271.737C386.938,-266.462 382.679,-260.389 380,-254 374.298,-240.4 372.567,-224.106 372.364,-210.46"/>
-<polygon fill="black" stroke="black" points="375.866,-210.226 372.481,-200.187 368.867,-210.146 375.866,-210.226"/>
-<text text-anchor="middle" x="408" y="-234.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
+<path fill="none" stroke="black" d="M391.451,-267.737C386.938,-262.462 382.679,-256.389 380,-250 374.298,-236.4 372.567,-220.106 372.364,-206.46"/>
+<polygon fill="black" stroke="black" points="375.866,-206.226 372.481,-196.187 368.867,-206.146 375.866,-206.226"/>
+<text text-anchor="middle" x="408" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
 </g>
 <!-- pad_template&#45;&gt;caps -->
 <g id="edge18" class="edge"><title>pad_template&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M390.688,-163.58C398.365,-155.144 407.611,-145.034 416,-136 419.111,-132.649 422.398,-129.137 425.652,-125.675"/>
-<polygon fill="black" stroke="black" points="428.331,-127.935 432.643,-118.258 423.237,-123.134 428.331,-127.935"/>
-<text text-anchor="middle" x="426" y="-139.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M391.246,-159.847C401.449,-149.107 414.531,-135.336 425.76,-123.516"/>
+<polygon fill="black" stroke="black" points="428.473,-125.742 432.823,-116.081 423.398,-120.921 428.473,-125.742"/>
+<text text-anchor="middle" x="425" y="-135.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pipeline&#45;&gt;bin -->
 <g id="edge4" class="edge"><title>pipeline&#45;&gt;bin</title>
-<path fill="none" stroke="black" d="M200.085,-520.576C222.869,-507.602 255.644,-488.939 280.698,-474.672"/>
-<polygon fill="black" stroke="black" points="282.589,-477.623 289.547,-469.633 279.125,-471.54 282.589,-477.623"/>
-<text text-anchor="middle" x="260.5" y="-493.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M200.085,-510.953C222.869,-498.295 255.644,-480.087 280.698,-466.168"/>
+<polygon fill="black" stroke="black" points="282.505,-469.168 289.547,-461.252 279.105,-463.049 282.505,-469.168"/>
+<text text-anchor="middle" x="256.5" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- pipeline&#45;&gt;bus -->
 <g id="edge6" class="edge"><title>pipeline&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M145.839,-522.274C136.154,-516.403 125.739,-508.847 118,-500 113.301,-494.628 109.38,-488.077 106.212,-481.622"/>
-<polygon fill="black" stroke="black" points="109.366,-480.102 102.108,-472.384 102.969,-482.943 109.366,-480.102"/>
-<text text-anchor="middle" x="128" y="-493.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M145.922,-512.201C136.246,-506.322 125.816,-498.779 118,-490 113.602,-485.06 109.852,-479.083 106.76,-473.148"/>
+<polygon fill="black" stroke="black" points="109.88,-471.559 102.444,-464.011 103.551,-474.548 109.88,-471.559"/>
+<text text-anchor="middle" x="128" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
 </g>
 <!-- pipeline&#45;&gt;clock -->
 <g id="edge8" class="edge"><title>pipeline&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M172.029,-517.807C170.207,-482.678 166.341,-403.054 165,-336 164.911,-331.556 164.4,-330.404 165,-326 165.365,-323.321 165.877,-320.559 166.477,-317.814"/>
-<polygon fill="black" stroke="black" points="169.871,-318.667 168.939,-308.113 163.086,-316.945 169.871,-318.667"/>
-<text text-anchor="middle" x="178" y="-411.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M172.877,-507.895C172.648,-473.321 172.167,-395.504 172,-330 171.991,-326.444 171.852,-325.552 172,-322 172.101,-319.568 172.241,-317.046 172.404,-314.517"/>
+<polygon fill="black" stroke="black" points="175.913,-314.532 173.179,-304.296 168.933,-314.003 175.913,-314.532"/>
+<text text-anchor="middle" x="183" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
 </g>
 <!-- plugin -->
 <g id="node14" class="node"><title>plugin</title>
 <a xlink:href="GstPlugin.html" xlink:title="plugin" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="54,-308 2.13163e-14,-308 0,-272 54,-272 54,-308"/>
-<text text-anchor="middle" x="27" y="-287.9" font-family="Bitstream Vera Sans" font-size="9.00">plugin</text>
+<polygon fill="#eeeeee" stroke="black" points="54,-304 2.13163e-14,-304 0,-268 54,-268 54,-304"/>
+<text text-anchor="middle" x="27" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">plugin</text>
 </a>
 </g>
 <!-- plugin&#45;&gt;plugin_feature -->
 <g id="edge42" class="edge"><title>plugin&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M43.1155,-271.679C58.5624,-254.119 82.0245,-227.446 99.3485,-207.751"/>
-<polygon fill="black" stroke="black" points="102.146,-209.87 106.123,-200.05 96.8898,-205.247 102.146,-209.87"/>
-<text text-anchor="middle" x="99" y="-234.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M43.1155,-267.679C58.5624,-250.119 82.0245,-223.446 99.3485,-203.751"/>
+<polygon fill="black" stroke="black" points="102.146,-205.87 106.123,-196.05 96.8898,-201.247 102.146,-205.87"/>
+<text text-anchor="middle" x="99" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- registry -->
 <g id="node17" class="node"><title>registry</title>
 <a xlink:href="GstRegistry.html" xlink:title="registry" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="54,-390 2.13163e-14,-390 0,-354 54,-354 54,-390"/>
-<text text-anchor="middle" x="27" y="-369.9" font-family="Bitstream Vera Sans" font-size="9.00">registry</text>
+<polygon fill="#eeeeee" stroke="black" points="54,-384 2.13163e-14,-384 0,-348 54,-348 54,-384"/>
+<text text-anchor="middle" x="27" y="-363.4" font-family="Bitstream Vera Sans" font-size="9.00">registry</text>
 </a>
 </g>
 <!-- registry&#45;&gt;plugin -->
 <g id="edge40" class="edge"><title>registry&#45;&gt;plugin</title>
-<path fill="none" stroke="black" d="M27,-353.802C27,-343.398 27,-330.122 27,-318.377"/>
-<polygon fill="black" stroke="black" points="30.5001,-318.148 27,-308.148 23.5001,-318.148 30.5001,-318.148"/>
-<text text-anchor="middle" x="37" y="-329.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M27,-347.847C27,-337.925 27,-325.417 27,-314.249"/>
+<polygon fill="black" stroke="black" points="30.5001,-314.081 27,-304.081 23.5001,-314.081 30.5001,-314.081"/>
+<text text-anchor="middle" x="37" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 </g>
 </svg>
diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml
index 7f69328..1004509 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -8,9 +8,9 @@
 ]>
 <book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
   <bookinfo>
-    <title>GStreamer &GST_MAJORMINOR; Core Reference Manual</title>
+    <title>GStreamer &GST_API_VERSION; Core Reference Manual</title>
     <releaseinfo>
-      for GStreamer Core &GST_MAJORMINOR; (&GST_VERSION;)
+      for GStreamer Core &GST_API_VERSION; (&GST_VERSION;)
       The latest version of this documentation can be found on-line at
       <ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</ulink>.
     </releaseinfo>
@@ -50,7 +50,7 @@
     <title>GStreamer Core Library</title>
 
     <para>
-      libgstreamer-&GST_MAJORMINOR;.so provides all the core GStreamer services,
+      libgstreamer-&GST_API_VERSION;.so provides all the core GStreamer services,
       including initialization, plugin management and types,
       as well as the object hierarchy that defines elements and bins,
       along with some more specialized elements.
@@ -64,19 +64,19 @@
     <xi:include href="xml/gstbufferpool.xml" />
     <xi:include href="xml/gstbus.xml" />
     <xi:include href="xml/gstcaps.xml" />
+    <xi:include href="xml/gstsample.xml" />
     <xi:include href="xml/gstchildproxy.xml" />
     <xi:include href="xml/gstclock.xml" />
     <xi:include href="xml/gstconfig.xml" />
+    <xi:include href="xml/gstcontrolbinding.xml" />
+    <xi:include href="xml/gstcontrolsource.xml" />
     <xi:include href="xml/gstdatetime.xml" />
     <xi:include href="xml/gstelement.xml" />
     <xi:include href="xml/gstelementfactory.xml" />
     <xi:include href="xml/gsterror.xml" />
     <xi:include href="xml/gstevent.xml" />
-    <xi:include href="xml/gstfilter.xml" />
     <xi:include href="xml/gstformat.xml" />
     <xi:include href="xml/gstghostpad.xml" />
-    <xi:include href="xml/gstindex.xml" />
-    <xi:include href="xml/gstindexfactory.xml" />
     <xi:include href="xml/gstiterator.xml" />
     <xi:include href="xml/gstmemory.xml" />
     <xi:include href="xml/gstmessage.xml" />
@@ -101,6 +101,8 @@
     <xi:include href="xml/gsttagsetter.xml" />
     <xi:include href="xml/gsttask.xml" />
     <xi:include href="xml/gsttaskpool.xml" />
+    <xi:include href="xml/gsttoc.xml" />
+    <xi:include href="xml/gsttocsetter.xml" />
     <xi:include href="xml/gsttypefind.xml" />
     <xi:include href="xml/gsttypefindfactory.xml" />
     <xi:include href="xml/gsturihandler.xml" />
@@ -118,7 +120,6 @@
     </para>
 
     <xi:include href="xml/gstinfo.xml" />
-    <xi:include href="xml/gsttrace.xml" />
 
   </chapter>
 
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 76167b3..c66ccc1 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -36,6 +36,8 @@
 GstQuarkId
 GstPluginLoader
 GstPluginLoaderFuncs
+GstAllocTrace
+GstAllocTraceFlags
 </SECTION>
 
 <SECTION>
@@ -158,28 +160,25 @@
 <TITLE>GstBuffer</TITLE>
 GstBuffer
 GstBufferFlags
-GstBufferCopyFlags
 GST_BUFFER_FLAGS
 GST_BUFFER_FLAG_IS_SET
 GST_BUFFER_FLAG_SET
 GST_BUFFER_FLAG_UNSET
-GST_META_TIMING_INFO
-GstMetaTiming
 
-GST_BUFFER_TIMESTAMP
+GST_BUFFER_PTS
+GST_BUFFER_DTS
 GST_BUFFER_DURATION
 GST_BUFFER_OFFSET
 GST_BUFFER_OFFSET_END
 GST_BUFFER_OFFSET_NONE
 GST_BUFFER_DURATION_IS_VALID
-GST_BUFFER_TIMESTAMP_IS_VALID
+GST_BUFFER_PTS_IS_VALID
+GST_BUFFER_DTS_IS_VALID
 GST_BUFFER_OFFSET_IS_VALID
 GST_BUFFER_OFFSET_END_IS_VALID
 GST_BUFFER_IS_DISCONT
-GST_BUFFER_TRACE_NAME
 
 gst_buffer_new
-gst_buffer_new_and_alloc
 gst_buffer_new_allocate
 gst_buffer_new_wrapped
 gst_buffer_new_wrapped_full
@@ -193,13 +192,20 @@
 gst_buffer_set_size
 
 gst_buffer_n_memory
-gst_buffer_take_memory
-gst_buffer_peek_memory
-gst_buffer_remove_memory
+gst_buffer_insert_memory
+gst_buffer_replace_memory_range
+gst_buffer_get_memory_range
 gst_buffer_remove_memory_range
+gst_buffer_find_memory
 
-gst_buffer_join
-gst_buffer_merge
+gst_buffer_prepend_memory
+gst_buffer_append_memory
+gst_buffer_replace_memory
+gst_buffer_replace_all_memory
+gst_buffer_get_memory
+gst_buffer_get_all_memory
+gst_buffer_remove_memory
+gst_buffer_remove_all_memory
 
 gst_buffer_map
 gst_buffer_unmap
@@ -209,6 +215,7 @@
 gst_buffer_fill
 gst_buffer_memset
 
+GstBufferCopyFlags
 GST_BUFFER_COPY_METADATA
 GST_BUFFER_COPY_ALL
 gst_buffer_copy
@@ -219,17 +226,15 @@
 gst_buffer_make_writable
 gst_buffer_replace
 
-gst_buffer_is_span_fast
-gst_buffer_span
+gst_buffer_append
 
 gst_buffer_get_meta
 gst_buffer_add_meta
 gst_buffer_remove_meta
 gst_buffer_iterate_meta
+GstBufferForeachMetaFunc
+gst_buffer_foreach_meta
 
-gst_buffer_add_meta_timing
-gst_buffer_get_meta_timing
-gst_meta_timing_get_info
 <SUBSECTION Standard>
 GstBufferClass
 GST_BUFFER
@@ -242,20 +247,35 @@
 gst_buffer_get_type
 gst_buffer_flags_get_type
 gst_buffer_copy_flags_get_type
+GST_BUFFER_TIMESTAMP
+GST_BUFFER_TIMESTAMP_IS_VALID
 </SECTION>
 
 <SECTION>
 <FILE>gstmeta</FILE>
 <TITLE>GstMeta</TITLE>
 GstMeta
+GstMetaFlags
+GST_META_FLAGS
+GST_META_FLAG_IS_SET
+GST_META_FLAG_SET
+GST_META_FLAG_UNSET
 GstMetaInfo
-GST_META_TRACE_NAME
 GstMetaInitFunction
 GstMetaFreeFunction
-GstMetaCopyFunction
 GstMetaTransformFunction
+GstMetaTransformCopy
+GST_META_TRANSFORM_IS_COPY
+gst_meta_api_type_register
+gst_meta_api_type_has_tag
+GST_META_TAG_MEMORY
 gst_meta_register
 gst_meta_get_info
+<SUBSECTION Standard>
+GST_META_CAST
+<SUBSECTION Private>
+GST_TYPE_META_FLAGS
+gst_meta_flags_get_type
 </SECTION>
 
 
@@ -264,18 +284,19 @@
 <TITLE>GstBufferPool</TITLE>
 GstBufferPool
 GstBufferPoolClass
-GstBufferPoolFlags
 GST_BUFFER_POOL_IS_FLUSHING
-GstBufferPoolParams
 gst_buffer_pool_new
 
-gst_buffer_pool_config_get
-gst_buffer_pool_config_set
+gst_buffer_pool_config_get_params
+gst_buffer_pool_config_set_params
+gst_buffer_pool_config_get_allocator
+gst_buffer_pool_config_set_allocator
 
+gst_buffer_pool_config_n_options
 gst_buffer_pool_config_add_option
 gst_buffer_pool_config_get_option
 gst_buffer_pool_config_has_option
-gst_buffer_pool_config_n_options
+
 gst_buffer_pool_get_options
 gst_buffer_pool_has_option
 
@@ -285,19 +306,20 @@
 gst_buffer_pool_set_active
 gst_buffer_pool_is_active
 
+GstBufferPoolAcquireFlags
+GstBufferPoolAcquireParams
 gst_buffer_pool_acquire_buffer
 gst_buffer_pool_release_buffer
 <SUBSECTION Standard>
 GST_BUFFER_POOL_CLASS
 GST_BUFFER_POOL_CAST
-GST_BUFFER_POOL_TRACE_NAME
 GstBufferPoolPrivate
 GST_BUFFER_POOL
 GST_IS_BUFFER_POOL
 GST_TYPE_BUFFER_POOL
 gst_buffer_pool_get_type
-GST_TYPE_BUFFER_POOL_FLAGS
-gst_buffer_pool_flags_get_type
+GST_TYPE_BUFFER_POOL_ACQUIRE_FLAGS
+gst_buffer_pool_acquire_flags_get_type
 GST_IS_BUFFER_POOL_CLASS
 GST_BUFFER_POOL_GET_CLASS
 </SECTION>
@@ -308,8 +330,8 @@
 GstBufferList
 
 gst_buffer_list_new
-gst_buffer_list_sized_new
-gst_buffer_list_len
+gst_buffer_list_new_sized
+gst_buffer_list_length
 gst_buffer_list_add
 gst_buffer_list_insert
 gst_buffer_list_remove
@@ -355,6 +377,7 @@
 GST_CAPS_FLAG_UNSET
 
 gst_caps_new_empty
+gst_caps_new_empty_simple
 gst_caps_new_any
 gst_caps_new_simple
 gst_caps_new_full
@@ -380,23 +403,24 @@
 gst_caps_is_fixed
 gst_caps_is_equal
 gst_caps_is_equal_fixed
+gst_caps_is_strictly_equal
 gst_caps_is_always_compatible
 gst_caps_is_subset
 gst_caps_is_subset_structure
 gst_caps_can_intersect
 gst_caps_intersect
 gst_caps_intersect_full
-gst_caps_union
 gst_caps_normalize
-gst_caps_do_simplify
+gst_caps_simplify
 gst_caps_replace
+gst_caps_take
 gst_caps_to_string
 gst_caps_from_string
 gst_caps_subtract
 gst_caps_make_writable
-gst_caps_ref
 gst_caps_truncate
 gst_caps_fixate
+gst_caps_ref
 gst_caps_unref
 <SUBSECTION Standard>
 GST_CAPS
@@ -412,6 +436,25 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstsample</FILE>
+<TITLE>GstSample</TITLE>
+GstSample
+gst_sample_get_buffer
+gst_sample_get_caps
+gst_sample_get_info
+gst_sample_get_segment
+gst_sample_new
+gst_sample_ref
+gst_sample_unref
+<SUBSECTION Standard>
+GST_IS_SAMPLE
+GST_SAMPLE
+GST_TYPE_SAMPLE
+gst_sample_get_type
+GST_SAMPLE_CAST
+</SECTION>
+
+<SECTION>
 <FILE>gstchildproxy</FILE>
 <TITLE>GstChildProxy</TITLE>
 GstChildProxy
@@ -461,7 +504,6 @@
 GST_TIME_TO_TIMEVAL
 GST_TIMESPEC_TO_TIME
 GST_TIME_TO_TIMESPEC
-GST_CLOCK_ENTRY_TRACE_NAME
 GstClockEntry
 GstClockCallback
 GstClockEntryType
@@ -474,10 +516,6 @@
 GstClockReturn
 GstClockFlags
 GST_CLOCK_FLAGS
-GST_CLOCK_BROADCAST
-GST_CLOCK_COND
-GST_CLOCK_TIMED_WAIT
-GST_CLOCK_WAIT
 gst_clock_add_observation
 gst_clock_set_master
 gst_clock_get_master
@@ -493,6 +531,8 @@
 gst_clock_unadjust_unlocked
 gst_clock_get_calibration
 gst_clock_set_calibration
+gst_clock_get_timeout
+gst_clock_set_timeout
 gst_clock_id_get_time
 gst_clock_id_wait
 gst_clock_id_wait_async
@@ -535,9 +575,16 @@
 gst_element_factory_get_icon_name
 gst_element_factory_get_klass
 gst_element_factory_get_longname
+gst_pad_get_caps_reffed
+gst_pad_peer_get_caps_reffed
+gst_buffer_new_and_alloc
+GST_BUFFER_TIMESTAMP
+GST_BUFFER_TIMESTAMP_IS_VALID
+gst_adapter_prev_timestamp
 <SUBSECTION Private>
 </SECTION>
 
+
 <SECTION>
 <FILE>gstconfig</FILE>
 GST_DISABLE_GST_DEBUG
@@ -558,6 +605,52 @@
 GST_USING_PRINTF_EXTENSION
 </SECTION>
 
+
+<SECTION>
+<FILE>gstcontrolbinding</FILE>
+<TITLE>GstControlBinding</TITLE>
+GstControlBinding
+GstControlBindingClass
+GstControlBindingConvert
+gst_control_binding_sync_values
+gst_control_binding_get_value
+gst_control_binding_get_value_array
+gst_control_binding_set_disabled
+gst_control_binding_is_disabled
+<SUBSECTION Standard>
+GST_CONTROL_BINDING
+GST_IS_CONTROL_BINDING
+GST_CONTROL_BINDING_CLASS
+GST_IS_CONTROL_BINDING_CLASS
+GST_CONTROL_BINDING_GET_CLASS
+GST_TYPE_CONTROL_BINDING
+<SUBSECTION Private>
+gst_control_binding_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstcontrolsource</FILE>
+<TITLE>GstControlSource</TITLE>
+GstValueArray
+GstControlSource
+GstControlSourceClass
+GstControlSourceGetValue
+GstControlSourceGetValueArray
+GstTimedValue
+gst_control_source_get_value
+gst_control_source_get_value_array
+<SUBSECTION Standard>
+GST_CONTROL_SOURCE
+GST_IS_CONTROL_SOURCE
+GST_CONTROL_SOURCE_CLASS
+GST_IS_CONTROL_SOURCE_CLASS
+GST_CONTROL_SOURCE_GET_CLASS
+GST_TYPE_CONTROL_SOURCE
+<SUBSECTION Private>
+gst_control_source_get_type
+</SECTION>
+
+
 <SECTION>
 <FILE>gstelement</FILE>
 <TITLE>GstElement</TITLE>
@@ -603,9 +696,10 @@
 gst_element_class_add_pad_template
 gst_element_class_get_pad_template
 gst_element_class_get_pad_template_list
-gst_element_class_install_std_props
 gst_element_class_set_metadata
+gst_element_class_set_static_metadata
 gst_element_class_add_metadata
+gst_element_class_add_static_metadata
 
 <SUBSECTION element-pads>
 gst_element_add_pad
@@ -642,19 +736,14 @@
 gst_element_set_bus
 gst_element_get_bus
 gst_element_get_factory
-gst_element_set_index
-gst_element_get_index
-gst_element_is_indexable
 gst_element_set_name
 gst_element_get_name
 gst_element_set_parent
 gst_element_get_parent
 
 <SUBSECTION element-clocks>
-gst_element_requires_clock
 gst_element_set_clock
 gst_element_get_clock
-gst_element_provides_clock
 gst_element_provide_clock
 
 <SUBSECTION element-states>
@@ -670,16 +759,11 @@
 gst_element_sync_state_with_parent
 gst_element_change_state
 
-<SUBSECTION element-tags>
-gst_element_found_tags
-gst_element_found_tags_for_pad
-
 <SUBSECTION element-messages>
 gst_element_message_full
 gst_element_post_message
 
 <SUBSECTION element-query>
-gst_element_get_query_types
 gst_element_query
 gst_element_query_convert
 gst_element_query_position
@@ -709,7 +793,7 @@
 GST_STATE_UNLOCK_FULL
 GST_STATE_LOCK_FULL
 GST_STATE_WAIT
-GST_STATE_TIMED_WAIT
+GST_STATE_WAIT_UNTIL
 GST_STATE_SIGNAL
 GST_STATE_BROADCAST
 
@@ -808,13 +892,11 @@
 GST_ERROR_SYSTEM
 gst_error_get_message
 <SUBSECTION Standard>
-GST_TYPE_G_ERROR
 GST_TYPE_CORE_ERROR
 GST_TYPE_LIBRARY_ERROR
 GST_TYPE_RESOURCE_ERROR
 GST_TYPE_STREAM_ERROR
 <SUBSECTION Private>
-gst_g_error_get_type
 gst_core_error_get_type
 gst_library_error_get_type
 gst_resource_error_get_type
@@ -837,8 +919,6 @@
 
 GstEventType
 
-GST_EVENT_TRACE_NAME
-
 GST_EVENT_TYPE
 GST_EVENT_TYPE_NAME
 GST_EVENT_TIMESTAMP
@@ -877,6 +957,11 @@
 
 gst_event_new_eos
 
+gst_event_new_gap
+gst_event_parse_gap
+
+gst_event_new_stream_start
+
 gst_event_new_segment
 gst_event_parse_segment
 gst_event_copy_segment
@@ -911,6 +996,23 @@
 
 gst_event_new_caps
 gst_event_parse_caps
+
+GstStreamConfigFlags
+gst_event_new_stream_config
+gst_event_parse_stream_config
+
+gst_event_set_stream_config_setup_data
+gst_event_parse_stream_config_setup_data
+
+gst_event_add_stream_config_header
+gst_event_get_n_stream_config_headers
+gst_event_parse_nth_stream_config_header
+
+gst_event_new_toc
+gst_event_parse_toc
+
+gst_event_new_toc_select
+gst_event_parse_toc_select
 <SUBSECTION Standard>
 GstEventClass
 GST_EVENT
@@ -939,17 +1041,10 @@
 gst_seek_flags_get_type
 gst_qos_type_get_type
 gst_event_type_flags_get_type
+GST_TYPE_STREAM_CONFIG_FLAGS
+gst_stream_config_flags_get_type
 </SECTION>
 
-
-<SECTION>
-<FILE>gstfilter</FILE>
-<TITLE>GstFilter</TITLE>
-GstFilterFunc
-gst_filter_run
-</SECTION>
-
-
 <SECTION>
 <FILE>gstformat</FILE>
 <TITLE>GstFormat</TITLE>
@@ -990,24 +1085,18 @@
 
 gst_ghost_pad_unlink_default
 gst_ghost_pad_link_default
-gst_ghost_pad_activate_pull_default
-gst_ghost_pad_activate_push_default
+gst_ghost_pad_activate_mode_default
 
-gst_ghost_pad_internal_activate_push_default
-gst_ghost_pad_internal_activate_pull_default
+gst_ghost_pad_internal_activate_mode_default
 
 gst_proxy_pad_get_internal
 
-gst_proxy_pad_query_type_default
 gst_proxy_pad_event_default
 gst_proxy_pad_query_default
 gst_proxy_pad_iterate_internal_links_default
 gst_proxy_pad_chain_default
 gst_proxy_pad_chain_list_default
 gst_proxy_pad_getrange_default
-gst_proxy_pad_getcaps_default
-gst_proxy_pad_acceptcaps_default
-gst_proxy_pad_fixatecaps_default
 gst_proxy_pad_unlink_default
 <SUBSECTION Standard>
 GstGhostPadClass
@@ -1032,102 +1121,6 @@
 
 
 <SECTION>
-<FILE>gstindex</FILE>
-<TITLE>GstIndex</TITLE>
-GstIndex
-GstIndexEntry
-GstIndexGroup
-GstIndexCertainty
-GstIndexEntryType
-GstIndexLookupMethod
-GST_INDEX_NASSOCS
-GST_INDEX_ASSOC_FLAGS
-GST_INDEX_ASSOC_FORMAT
-GST_INDEX_ASSOC_VALUE
-GstIndexAssociation
-GstAssocFlags
-GST_INDEX_FORMAT_FORMAT
-GST_INDEX_FORMAT_KEY
-GST_INDEX_ID_INVALID
-GST_INDEX_ID_DESCRIPTION
-GstIndexFilter
-GstIndexResolverMethod
-GstIndexResolver
-GstIndexFlags
-GST_INDEX_IS_READABLE
-GST_INDEX_IS_WRITABLE
-gst_index_new
-gst_index_commit
-gst_index_get_group
-gst_index_new_group
-gst_index_set_group
-gst_index_set_certainty
-gst_index_get_certainty
-gst_index_set_filter
-gst_index_set_filter_full
-gst_index_set_resolver
-gst_index_set_resolver_full
-gst_index_get_writer_id
-gst_index_add_format
-gst_index_add_association
-gst_index_add_associationv
-gst_index_add_object
-gst_index_add_id
-gst_index_get_assoc_entry
-gst_index_get_assoc_entry_full
-gst_index_entry_copy
-gst_index_entry_free
-gst_index_entry_assoc_map
-<SUBSECTION Standard>
-GstIndexClass
-GST_INDEX
-GST_IS_INDEX
-GST_TYPE_INDEX
-GST_INDEX_CLASS
-GST_IS_INDEX_CLASS
-GST_INDEX_GET_CLASS
-GST_TYPE_INDEX_ENTRY
-GST_TYPE_ASSOC_FLAGS
-GST_TYPE_INDEX_CERTAINTY
-GST_TYPE_INDEX_ENTRY_TYPE
-GST_TYPE_INDEX_FLAGS
-GST_TYPE_INDEX_LOOKUP_METHOD
-GST_TYPE_INDEX_RESOLVER_METHOD
-<SUBSECTION Private>
-gst_index_get_type
-gst_assoc_flags_get_type
-gst_index_certainty_get_type
-gst_index_entry_get_type
-gst_index_entry_type_get_type
-gst_index_flags_get_type
-gst_index_lookup_method_get_type
-gst_index_resolver_method_get_type
-</SECTION>
-
-
-<SECTION>
-<FILE>gstindexfactory</FILE>
-<TITLE>GstIndexFactory</TITLE>
-GstIndexFactory
-gst_index_factory_new
-gst_index_factory_destroy
-gst_index_factory_find
-gst_index_factory_create
-gst_index_factory_make
-<SUBSECTION Standard>
-GstIndexFactoryClass
-GST_INDEX_FACTORY
-GST_IS_INDEX_FACTORY
-GST_INDEX_FACTORY_CLASS
-GST_IS_INDEX_FACTORY_CLASS
-GST_INDEX_FACTORY_GET_CLASS
-GST_TYPE_INDEX_FACTORY
-<SUBSECTION Private>
-gst_index_factory_get_type
-</SECTION>
-
-
-<SECTION>
 <FILE>gstinfo</FILE>
 <TITLE>GstInfo</TITLE>
 GstDebugLevel
@@ -1211,6 +1204,8 @@
 gst_debug_print_stack_trace
 GST_TIME_FORMAT
 GST_TIME_ARGS
+gst_debug_bin_to_dot_file
+gst_debug_bin_to_dot_file_with_ts
 <SUBSECTION Standard>
 GST_TYPE_DEBUG_COLOR_FLAGS
 GST_TYPE_DEBUG_LEVEL
@@ -1277,16 +1272,27 @@
 <SECTION>
 <FILE>gstmemory</FILE>
 <TITLE>GstMemory</TITLE>
-GstMemory
-GstMemoryInfo
-GstAllocator
-GST_MEMORY_IS_WRITABLE
+
+gst_memory_alignment
+
 GstMemoryFlags
+GST_MEMORY_FLAGS
+GST_MEMORY_FLAG_IS_SET
+GST_MEMORY_FLAG_UNSET
+GST_MEMORY_IS_READONLY
+GST_MEMORY_IS_ZERO_PADDED
+GST_MEMORY_IS_ZERO_PREFIXED
+
+GstMemory
+
 GstMapFlags
+GstMapInfo
+GST_MAP_INFO_INIT
 GST_MAP_READWRITE
-GstMemoryAllocFunction
-GstMemoryGetSizesFunction
-GstMemoryResizeFunction
+
+GstAllocationParams
+
+GstAllocatorAllocFunction
 GstMemoryMapFunction
 GstMemoryUnmapFunction
 GstMemoryFreeFunction
@@ -1294,17 +1300,37 @@
 GstMemoryShareFunction
 GstMemoryIsSpanFunction
 
-gst_memory_alignment
+GstMemoryInfo
+
+GstAllocator
+
+gst_allocator_new
+gst_allocator_get_memory_type
+gst_allocator_ref
+gst_allocator_unref
+
+GST_ALLOCATOR_SYSMEM
+gst_allocator_find
+gst_allocator_register
+gst_allocator_set_default
+
+gst_allocation_params_init
+gst_allocation_params_copy
+gst_allocation_params_free
 
 gst_allocator_alloc
+
 gst_memory_new_wrapped
 
 gst_memory_ref
 gst_memory_unref
 
+gst_memory_is_exclusive
+
 gst_memory_get_sizes
 gst_memory_resize
 
+gst_memory_make_mapped
 gst_memory_map
 gst_memory_unmap
 
@@ -1312,17 +1338,18 @@
 gst_memory_share
 
 gst_memory_is_span
-
-GST_ALLOCATOR_SYSMEM
-gst_allocator_find
-gst_allocator_register
-gst_allocator_set_default
 <SUBSECTION Standard>
-GST_MEMORY_TRACE_NAME
+GST_TYPE_MEMORY
+gst_memory_get_type
+GST_MEMORY_CAST
 GST_TYPE_MAP_FLAGS
-GST_TYPE_MEMORY_FLAGS
 gst_map_flags_get_type
+GST_TYPE_MEMORY_FLAGS
 gst_memory_flags_get_type
+GST_TYPE_ALLOCATION_PARAMS
+gst_allocation_params_get_type
+GST_TYPE_ALLOCATOR
+gst_allocator_get_type
 </SECTION>
 
 <SECTION>
@@ -1336,7 +1363,6 @@
 GST_MESSAGE_SEQNUM
 GST_MESSAGE_TYPE
 GST_MESSAGE_TYPE_NAME
-GST_MESSAGE_TRACE_NAME
 gst_message_type_to_quark
 gst_message_type_get_name
 gst_message_ref
@@ -1395,6 +1421,8 @@
 gst_message_parse_qos
 gst_message_parse_qos_values
 gst_message_parse_qos_stats
+gst_message_new_toc
+gst_message_parse_toc
 
 GstStructureChangeType
 gst_message_new_structure_change
@@ -1431,7 +1459,7 @@
 gst_structure_change_type_get_type
 gst_stream_status_type_get_type
 gst_progress_type_get_type
-GST_MESSAGE_COND
+GST_MESSAGE_GET_COND
 GST_MESSAGE_GET_LOCK
 GST_MESSAGE_LOCK
 GST_MESSAGE_SIGNAL
@@ -1521,6 +1549,20 @@
 gst_object_ref_sink
 gst_object_replace
 gst_object_get_path_string
+
+gst_object_suggest_next_sync
+gst_object_sync_values
+gst_object_has_active_control_bindings
+gst_object_set_control_bindings_disabled
+gst_object_set_control_binding_disabled
+gst_object_add_control_binding
+gst_object_get_control_binding
+gst_object_remove_control_binding
+gst_object_get_value
+gst_object_get_value_array
+gst_object_get_control_rate
+gst_object_set_control_rate
+
 <SUBSECTION Standard>
 GST_OBJECT
 GST_IS_OBJECT
@@ -1550,12 +1592,7 @@
 GstPadLinkCheck
 GST_PAD_LINK_CHECK_DEFAULT
 GstFlowReturn
-GstActivateMode
-GstProbeReturn
-GstProbeType
-GST_PROBE_TYPE_BLOCKING
-GST_PROBE_TYPE_DATA
-GST_PROBE_TYPE_SCHEDULING
+GstPadMode
 
 <SUBSECTION Application>
 gst_pad_get_name
@@ -1570,16 +1607,12 @@
 gst_pad_is_linked
 gst_pad_can_link
 
-gst_pad_get_caps
-gst_pad_get_caps_reffed
 gst_pad_get_allowed_caps
 gst_pad_get_current_caps
 gst_pad_get_pad_template_caps
 gst_pad_set_caps
 
 gst_pad_get_peer
-gst_pad_peer_get_caps
-gst_pad_peer_get_caps_reffed
 gst_pad_use_fixed_caps
 gst_pad_has_current_caps
 
@@ -1589,57 +1622,82 @@
 
 gst_pad_is_active
 
-gst_pad_is_blocked
-gst_pad_is_blocking
+<SUBSECTION probes>
+GstPadProbeReturn
+GstPadProbeType
+GST_PAD_PROBE_TYPE_BLOCKING
+GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM
+GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM
+GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM
+GST_PAD_PROBE_TYPE_DATA_UPSTREAM
+GST_PAD_PROBE_TYPE_DATA_BOTH
+GST_PAD_PROBE_TYPE_EVENT_BOTH
+GST_PAD_PROBE_TYPE_QUERY_BOTH
+GST_PAD_PROBE_TYPE_ALL_BOTH
+GST_PAD_PROBE_TYPE_SCHEDULING
+
+GstPadProbeInfo
+GST_PAD_PROBE_INFO_TYPE
+GST_PAD_PROBE_INFO_ID
+GST_PAD_PROBE_INFO_DATA
+
+GST_PAD_PROBE_INFO_BUFFER
+GST_PAD_PROBE_INFO_BUFFER_LIST
+GST_PAD_PROBE_INFO_EVENT
+GST_PAD_PROBE_INFO_QUERY
+
+GST_PAD_PROBE_INFO_OFFSET
+GST_PAD_PROBE_INFO_SIZE
 
 GstPadProbeCallback
 gst_pad_add_probe
 gst_pad_remove_probe
 
+gst_pad_is_blocked
+gst_pad_is_blocking
+
+<SUBSECTION offset>
 gst_pad_get_offset
 gst_pad_set_offset
+
 <SUBSECTION Element>
 gst_pad_new
 gst_pad_new_from_template
 gst_pad_new_from_static_template
 
 gst_pad_set_chain_function
+gst_pad_set_chain_function_full
 GstPadChainFunction
 
 gst_pad_set_chain_list_function
+gst_pad_set_chain_list_function_full
 GstPadChainListFunction
 
 gst_pad_get_range
 gst_pad_set_getrange_function
+gst_pad_set_getrange_function_full
 GstPadGetRangeFunction
 
 gst_pad_set_event_function
+gst_pad_set_event_function_full
 GstPadEventFunction
 
 gst_pad_set_link_function
+gst_pad_set_link_function_full
 GstPadLinkFunction
 gst_pad_set_unlink_function
+gst_pad_set_unlink_function_full
 GstPadUnlinkFunction
 
-gst_pad_accept_caps
-gst_pad_set_acceptcaps_function
-GstPadAcceptCapsFunction
-
-gst_pad_set_getcaps_function
-GstPadGetCapsFunction
-gst_pad_proxy_getcaps
-
-gst_pad_fixate_caps
-gst_pad_set_fixatecaps_function
-GstPadFixateCapsFunction
-
-gst_pad_peer_accept_caps
+gst_pad_proxy_query_caps
+gst_pad_proxy_query_accept_caps
 
 gst_pad_set_activate_function
+gst_pad_set_activate_function_full
 GstPadActivateFunction
 
-gst_pad_set_activatepush_function
-gst_pad_set_activatepull_function
+gst_pad_set_activatemode_function
+gst_pad_set_activatemode_function_full
 GstPadActivateModeFunction
 
 gst_pad_check_reconfigure
@@ -1649,28 +1707,32 @@
 gst_pad_push_event
 gst_pad_push_list
 gst_pad_pull_range
-gst_pad_activate_pull
-gst_pad_activate_push
+gst_pad_activate_mode
 gst_pad_send_event
 gst_pad_event_default
 
 gst_pad_query
 gst_pad_peer_query
+
 gst_pad_query_default
+
 gst_pad_query_position
 gst_pad_query_duration
 gst_pad_query_convert
-gst_pad_query_peer_position
-gst_pad_query_peer_duration
-gst_pad_query_peer_convert
-gst_pad_set_query_function
-GstPadQueryFunction
-gst_pad_set_query_type_function
-GstPadQueryTypeFunction
-gst_pad_get_query_types
-gst_pad_get_query_types_default
+gst_pad_query_accept_caps
+gst_pad_query_caps
 
+gst_pad_peer_query_position
+gst_pad_peer_query_duration
+gst_pad_peer_query_convert
+gst_pad_peer_query_accept_caps
+gst_pad_peer_query_caps
+
+gst_pad_set_query_function
+gst_pad_set_query_function_full
+GstPadQueryFunction
 gst_pad_set_iterate_internal_links_function
+gst_pad_set_iterate_internal_links_function_full
 GstPadIterIntLinkFunction
 gst_pad_iterate_internal_links
 gst_pad_iterate_internal_links_default
@@ -1692,10 +1754,8 @@
 
 GST_PAD_GET_STREAM_LOCK
 GST_PAD_STREAM_LOCK
-GST_PAD_STREAM_LOCK_FULL
 GST_PAD_STREAM_TRYLOCK
 GST_PAD_STREAM_UNLOCK
-GST_PAD_STREAM_UNLOCK_FULL
 
 <SUBSECTION Standard>
 GstPadClass
@@ -1710,10 +1770,10 @@
 GST_TYPE_PAD_LINK_RETURN
 GST_TYPE_PAD_LINK_CHECK
 GST_TYPE_PAD_PRESENCE
+GST_TYPE_PAD_MODE
 GST_TYPE_FLOW_RETURN
-GST_TYPE_ACTIVATE_MODE
-GST_TYPE_PROBE_RETURN
-GST_TYPE_PROBE_TYPE
+GST_TYPE_PAD_PROBE_RETURN
+GST_TYPE_PAD_PROBE_TYPE
 
 <SUBSECTION Private>
 gst_pad_get_type
@@ -1723,9 +1783,9 @@
 gst_pad_link_check_get_type
 gst_pad_presence_get_type
 gst_flow_return_get_type
-gst_activate_mode_get_type
-gst_probe_return_get_type
-gst_probe_type_get_type
+gst_pad_mode_get_type
+gst_pad_probe_return_get_type
+gst_pad_probe_type_get_type
 
 GST_PAD_NAME
 GST_PAD_PARENT
@@ -1737,8 +1797,15 @@
 GST_PAD_IS_SRC
 GST_PAD_IS_SINK
 GST_PAD_IS_FIXED_CAPS
-GST_PAD_NEEDS_EVENTS
 GST_PAD_NEEDS_RECONFIGURE
+GST_PAD_HAS_PENDING_EVENTS
+GST_PAD_IS_PROXY_ALLOCATION
+GST_PAD_IS_PROXY_CAPS
+GST_PAD_NEEDS_PARENT
+GST_PAD_SET_PROXY_ALLOCATION
+GST_PAD_UNSET_PROXY_ALLOCATION
+GST_PAD_SET_PROXY_CAPS
+GST_PAD_UNSET_PROXY_CAPS
 
 GST_PAD_IS_IN_GETCAPS
 GST_PAD_MODE_ACTIVATE
@@ -1747,7 +1814,7 @@
 GST_PAD_BLOCK_SIGNAL
 GST_PAD_BLOCK_WAIT
 GST_PAD_CAST
-GST_PAD_ACTIVATE_MODE
+GST_PAD_MODE
 GST_PAD_DO_BUFFER_SIGNALS
 GST_PAD_DO_EVENT_SIGNALS
 GST_PAD_IS_BLOCKED
@@ -1757,14 +1824,9 @@
 GST_PAD_TASK
 GST_PAD_UNSET_FLUSHING
 
-GST_PAD_GETCAPSFUNC
-GST_PAD_FIXATECAPSFUNC
-GST_PAD_ACCEPTCAPSFUNC
-
 GST_PAD_IS_ACTIVE
 GST_PAD_ACTIVATEFUNC
-GST_PAD_ACTIVATEPULLFUNC
-GST_PAD_ACTIVATEPUSHFUNC
+GST_PAD_ACTIVATEMODEFUNC
 
 GST_PAD_CHAINFUNC
 GST_PAD_CHAINLISTFUNC
@@ -1776,16 +1838,6 @@
 GST_PAD_UNLINKFUNC
 GST_PAD_QUERYFUNC
 GST_PAD_QUERYTYPEFUNC
-
-GST_PAD_PREROLL_BROADCAST
-GST_PAD_GET_PREROLL_COND
-GST_PAD_GET_PREROLL_LOCK
-GST_PAD_PREROLL_LOCK
-GST_PAD_PREROLL_SIGNAL
-GST_PAD_PREROLL_TIMED_WAIT
-GST_PAD_PREROLL_TRYLOCK
-GST_PAD_PREROLL_UNLOCK
-GST_PAD_PREROLL_WAIT
 </SECTION>
 
 
@@ -1982,11 +2034,9 @@
 <FILE>gstpluginfeature</FILE>
 <TITLE>GstPluginFeature</TITLE>
 GstPluginFeature
-GstTypeNameData
 GstPluginFeatureFilter
 GstRank
 
-gst_plugin_feature_type_name_filter
 gst_plugin_feature_set_rank
 gst_plugin_feature_set_name
 gst_plugin_feature_get_rank
@@ -2055,6 +2105,8 @@
 gst_preset_delete_preset
 gst_preset_set_meta
 gst_preset_get_meta
+gst_preset_set_app_dir
+gst_preset_get_app_dir
 <SUBSECTION Standard>
 GST_PRESET
 GST_IS_PRESET
@@ -2067,17 +2119,23 @@
 <FILE>gstquery</FILE>
 <TITLE>GstQuery</TITLE>
 GstQuery
-GstQueryType
-GST_QUERY_TYPE_NAME
-GstQueryTypeDefinition
 
+GstQueryTypeFlags
+GST_QUERY_TYPE_BOTH
+GST_QUERY_MAKE_TYPE
+
+GstQueryType
+
+GST_QUERY_TYPE
+GST_QUERY_TYPE_NAME
+
+GST_QUERY_IS_UPSTREAM
+GST_QUERY_IS_DOWNSTREAM
+GST_QUERY_IS_SERIALIZED
+
+gst_query_type_get_flags
 gst_query_type_get_name
 gst_query_type_to_quark
-gst_query_type_register
-gst_query_type_get_by_nick
-gst_query_types_contains
-gst_query_type_get_details
-gst_query_type_iterate_definitions
 
 gst_query_ref
 gst_query_unref
@@ -2120,6 +2178,17 @@
 gst_query_set_segment
 gst_query_parse_segment
 
+gst_query_new_caps
+gst_query_parse_caps
+gst_query_set_caps_result
+gst_query_parse_caps_result
+gst_query_intersect_caps_result
+
+gst_query_new_accept_caps
+gst_query_parse_accept_caps
+gst_query_set_accept_caps_result
+gst_query_parse_accept_caps_result
+
 GstBufferingMode
 gst_query_new_buffering
 gst_query_set_buffering_percent
@@ -2138,19 +2207,37 @@
 
 gst_query_new_allocation
 gst_query_parse_allocation
-gst_query_parse_allocation_params
-gst_query_parse_nth_allocation_memory
-gst_query_parse_nth_allocation_meta
-gst_query_set_allocation_params
-gst_query_add_allocation_memory
-gst_query_add_allocation_meta
-gst_query_has_allocation_meta
-gst_query_get_n_allocation_memories
-gst_query_get_n_allocation_metas
 
+gst_query_add_allocation_pool
+gst_query_get_n_allocation_pools
+gst_query_parse_nth_allocation_pool
+gst_query_set_nth_allocation_pool
+
+gst_query_add_allocation_param
+gst_query_get_n_allocation_params
+gst_query_parse_nth_allocation_param
+gst_query_set_nth_allocation_param
+
+gst_query_add_allocation_meta
+gst_query_get_n_allocation_metas
+gst_query_parse_nth_allocation_meta
+gst_query_remove_nth_allocation_meta
+gst_query_has_allocation_meta
+
+GstSchedulingFlags
 gst_query_new_scheduling
 gst_query_parse_scheduling
 gst_query_set_scheduling
+gst_query_add_scheduling_mode
+gst_query_get_n_scheduling_modes
+gst_query_parse_nth_scheduling_mode
+gst_query_has_scheduling_mode
+
+gst_query_new_drain
+
+gst_query_new_toc
+gst_query_parse_toc
+gst_query_set_toc
 <SUBSECTION Standard>
 GstQueryClass
 GST_QUERY
@@ -2161,12 +2248,16 @@
 GST_TYPE_QUERY
 GST_TYPE_QUERY_TYPE
 GST_QUERY_GET_CLASS
-GST_QUERY_TYPE
+GST_TYPE_QUERY_TYPE_FLAGS
+gst_query_type_flags_get_type
 GST_TYPE_BUFFERING_MODE
+gst_buffering_mode_get_type
+GST_TYPE_SCHEDULING_FLAGS
+gst_scheduling_flags_get_type
 <SUBSECTION Private>
+GST_QUERY_NUM_SHIFT
 gst_query_get_type
 gst_query_type_get_type
-gst_buffering_mode_get_type
 </SECTION>
 
 
@@ -2174,7 +2265,7 @@
 <FILE>gstregistry</FILE>
 <TITLE>GstRegistry</TITLE>
 GstRegistry
-gst_registry_get_default
+gst_registry_get
 gst_registry_get_feature_list
 gst_registry_get_feature_list_cookie
 gst_registry_get_feature_list_by_plugin
@@ -2192,16 +2283,7 @@
 gst_registry_lookup
 gst_registry_remove_feature
 gst_registry_add_feature
-<SUBSECTION Default Registry>
-gst_default_registry_check_feature_version
-gst_default_registry_get_path_list
-gst_default_registry_add_plugin
-gst_default_registry_add_path
-gst_default_registry_find_plugin
-gst_default_registry_find_feature
-gst_default_registry_get_plugin_list
-gst_default_registry_get_feature_list_cookie
-gst_default_registry_feature_filter
+gst_registry_check_feature_version
 <SUBSECTION Standard>
 GstRegistryClass
 GST_REGISTRY
@@ -2251,11 +2333,11 @@
 GstStructure
 GstStructureForeachFunc
 GstStructureMapFunc
-gst_structure_empty_new
-gst_structure_id_empty_new
+gst_structure_new_empty
+gst_structure_new_id_empty
 gst_structure_new
 gst_structure_new_valist
-gst_structure_id_new
+gst_structure_new_id
 gst_structure_copy
 gst_structure_free
 gst_structure_get_name
@@ -2402,6 +2484,7 @@
 GST_TAG_ALBUM_PEAK
 GST_TAG_REFERENCE_LEVEL
 GST_TAG_LANGUAGE_CODE
+GST_TAG_LANGUAGE_NAME
 GST_TAG_IMAGE
 GST_TAG_PREVIEW_IMAGE
 GST_TAG_ATTACHMENT
@@ -2442,15 +2525,20 @@
 gst_tag_get_flag
 gst_tag_is_fixed
 gst_tag_list_new
-gst_tag_list_new_full
-gst_tag_list_new_full_valist
+gst_tag_list_new_empty
+gst_tag_list_new_valist
+gst_tag_list_new_from_string
+gst_tag_list_to_string
 gst_is_tag_list
 gst_tag_list_is_empty
+gst_tag_list_is_equal
 gst_tag_list_copy
 gst_tag_list_insert
 gst_tag_list_merge
 gst_tag_list_free
 gst_tag_list_get_tag_size
+gst_tag_list_n_tags
+gst_tag_list_nth_tag_name
 gst_tag_list_add
 gst_tag_list_add_value
 gst_tag_list_add_values
@@ -2460,20 +2548,12 @@
 gst_tag_list_foreach
 gst_tag_list_get_value_index
 gst_tag_list_copy_value
-gst_tag_list_get_char
-gst_tag_list_get_char_index
-gst_tag_list_get_uchar
-gst_tag_list_get_uchar_index
 gst_tag_list_get_boolean
 gst_tag_list_get_boolean_index
 gst_tag_list_get_int
 gst_tag_list_get_int_index
 gst_tag_list_get_uint
 gst_tag_list_get_uint_index
-gst_tag_list_get_long
-gst_tag_list_get_long_index
-gst_tag_list_get_ulong
-gst_tag_list_get_ulong_index
 gst_tag_list_get_int64
 gst_tag_list_get_int64_index
 gst_tag_list_get_uint64
@@ -2512,7 +2592,7 @@
 <FILE>gsttagsetter</FILE>
 <TITLE>GstTagSetter</TITLE>
 GstTagSetter
-GstTagSetterIFace
+GstTagSetterInterface
 gst_tag_setter_reset_tags
 gst_tag_setter_merge_tags
 gst_tag_setter_add_tags
@@ -2526,7 +2606,7 @@
 <SUBSECTION Standard>
 GST_TAG_SETTER
 GST_IS_TAG_SETTER
-GST_TAG_SETTER_GET_IFACE
+GST_TAG_SETTER_GET_INTERFACE
 GST_TYPE_TAG_SETTER
 <SUBSECTION Private>
 gst_tag_setter_get_type
@@ -2570,9 +2650,8 @@
 GST_TASK_STATE
 GST_TASK_WAIT
 
-gst_task_create
+gst_task_new
 gst_task_set_lock
-gst_task_set_priority
 
 gst_task_set_pool
 gst_task_get_pool
@@ -2607,38 +2686,47 @@
 
 
 <SECTION>
-<FILE>gsttrace</FILE>
-<TITLE>GstTrace</TITLE>
-GstTrace
-gst_trace_new
-gst_trace_destroy
-gst_trace_flush
-gst_trace_text_flush
-gst_trace_add_entry
-gst_trace_get_size
-gst_trace_get_offset
-gst_trace_get_remaining
-gst_trace_set_default
-gst_trace_read_tsc
-GstAllocTraceFlags
-GstAllocTrace
-gst_alloc_trace_available
-gst_alloc_trace_list
-gst_alloc_trace_live_all
-gst_alloc_trace_print_all
-gst_alloc_trace_set_flags_all
-gst_alloc_trace_get
-gst_alloc_trace_print
-gst_alloc_trace_print_live
-gst_alloc_trace_set_flags
-gst_alloc_trace_register
-gst_alloc_trace_new
-gst_alloc_trace_free
+<FILE>gsttoc</FILE>
+<TITLE>GstToc</TITLE>
+GstToc
+GstTocEntry
+GstTocEntryType
+gst_toc_entry_new
+gst_toc_entry_new_with_pad
+gst_toc_entry_free
+gst_toc_new
+gst_toc_free
+gst_toc_entry_copy
+gst_toc_copy
+gst_toc_find_entry
+gst_toc_entry_get_start_stop
+gst_toc_entry_set_start_stop
 <SUBSECTION Standard>
-GST_TYPE_ALLOC_TRACE_FLAGS
-gst_alloc_trace_flags_get_type
+GST_TYPE_TOC_ENTRY_TYPE
 <SUBSECTION Private>
-GstTraceEntry
+gst_toc_entry_type_get_type
+</SECTION>
+
+
+<SECTION>
+<FILE>gsttocsetter</FILE>
+<TITLE>GstTocSetter</TITLE>
+GstTocSetter
+GstTocSetterIFace
+gst_toc_setter_get_toc
+gst_toc_setter_get_toc_copy
+gst_toc_setter_reset_toc
+gst_toc_setter_set_toc
+gst_toc_setter_get_toc_entry
+gst_toc_setter_get_toc_entry_copy
+gst_toc_setter_add_toc_entry
+<SUBSECTION Standard>
+GST_IS_TOC_SETTER
+GST_TOC_SETTER
+GST_TOC_SETTER_GET_IFACE
+GST_TYPE_TOC_SETTER
+<SUBSECTION Private>
+gst_toc_setter_get_type
 </SECTION>
 
 
@@ -2689,6 +2777,8 @@
 GstURIHandler
 GstURIHandlerInterface
 GstURIType
+GstURIError
+gst_uri_error_quark
 GST_URI_TYPE_IS_VALID
 gst_uri_protocol_is_valid
 gst_uri_protocol_is_supported
@@ -2703,13 +2793,15 @@
 gst_uri_handler_get_protocols
 gst_uri_handler_get_uri
 gst_uri_handler_set_uri
-gst_uri_handler_new_uri
 <SUBSECTION Standard>
 GST_URI_HANDLER
 GST_IS_URI_HANDLER
 GST_URI_HANDLER_GET_INTERFACE
 GST_TYPE_URI_HANDLER
 GST_TYPE_URI_TYPE
+gst_uri_error_get_type
+GST_TYPE_URI_ERROR
+GST_URI_ERROR
 <SUBSECTION Private>
 gst_uri_handler_get_type
 gst_uri_type_get_type
@@ -2777,7 +2869,6 @@
 gst_print_pad_caps
 gst_guint64_to_gdouble
 gst_gdouble_to_guint64
-gst_type_register_static_full
 gst_util_dump_mem
 gst_util_uint64_scale
 gst_util_uint64_scale_round
@@ -2786,6 +2877,7 @@
 gst_util_uint64_scale_int_round
 gst_util_uint64_scale_int_ceil
 gst_util_greatest_common_divisor
+gst_util_greatest_common_divisor_int64
 gst_util_fraction_to_double
 gst_util_double_to_fraction
 gst_util_fraction_multiply
@@ -2845,6 +2937,14 @@
 gst_value_set_int_range
 gst_value_get_int_range_min
 gst_value_get_int_range_max
+gst_value_set_int_range_step
+gst_value_get_int_range_step
+
+<SUBSECTION bitmask>
+GST_VALUE_HOLDS_BITMASK
+GST_TYPE_BITMASK
+gst_value_set_bitmask
+gst_value_get_bitmask
 
 <SUBSECTION int64range>
 GST_VALUE_HOLDS_INT64_RANGE
@@ -2852,6 +2952,8 @@
 gst_value_set_int64_range
 gst_value_get_int64_range_min
 gst_value_get_int64_range_max
+gst_value_set_int64_range_step
+gst_value_get_int64_range_step
 
 <SUBSECTION doublerange>
 GST_VALUE_HOLDS_DOUBLE_RANGE
@@ -2889,12 +2991,6 @@
 gst_value_get_fraction_range_max
 gst_value_set_fraction_range_full
 
-<SUBSECTION date>
-GST_VALUE_HOLDS_DATE
-GST_TYPE_DATE
-gst_value_set_date
-gst_value_get_date
-
 <SUBSECTION datetime>
 GST_VALUE_HOLDS_DATE_TIME
 
@@ -2914,6 +3010,12 @@
 gst_value_set_buffer
 gst_value_take_buffer
 
+<SUBSECTION sample>
+GST_VALUE_HOLDS_SAMPLE
+gst_value_get_sample
+gst_value_set_sample
+gst_value_take_sample
+
 <SUBSECTION>
 GST_VALUE_LESS_THAN
 GST_VALUE_EQUAL
@@ -2923,9 +3025,6 @@
 GstValueCompareFunc
 GstValueSerializeFunc
 GstValueDeserializeFunc
-GstValueUnionFunc
-GstValueIntersectFunc
-GstValueSubtractFunc
 GstValueTable
 
 gst_value_is_fixed
@@ -2937,13 +3036,11 @@
 gst_value_can_compare
 gst_value_union
 gst_value_can_union
-gst_value_register_union_func
 gst_value_subtract
 gst_value_can_subtract
-gst_value_register_subtract_func
 gst_value_intersect
 gst_value_can_intersect
-gst_value_register_intersect_func
+gst_value_is_subset
 gst_value_array_append_value
 gst_value_array_get_size
 gst_value_array_get_value
@@ -2961,6 +3058,7 @@
 gst_int64_range_get_type
 gst_value_array_get_type
 gst_value_list_get_type
+gst_bitmask_get_type
 </SECTION>
 
 <SECTION>
diff --git a/docs/gst/gstreamer.types b/docs/gst/gstreamer.types
index efd6e2d..d01b2dc 100644
--- a/docs/gst/gstreamer.types
+++ b/docs/gst/gstreamer.types
@@ -12,11 +12,11 @@
 gst_bus_get_type
 gst_child_proxy_get_type
 gst_clock_get_type
+gst_control_binding_get_type
+gst_control_source_get_type
 gst_element_factory_get_type
 gst_element_get_type
 gst_ghost_pad_get_type
-gst_index_factory_get_type
-gst_index_get_type
 gst_object_get_type
 gst_pad_get_type
 gst_pad_template_get_type
diff --git a/docs/gst/gstreamer.types.in b/docs/gst/gstreamer.types.in
index efd6e2d..d01b2dc 100644
--- a/docs/gst/gstreamer.types.in
+++ b/docs/gst/gstreamer.types.in
@@ -12,11 +12,11 @@
 gst_bus_get_type
 gst_child_proxy_get_type
 gst_clock_get_type
+gst_control_binding_get_type
+gst_control_source_get_type
 gst_element_factory_get_type
 gst_element_get_type
 gst_ghost_pad_get_type
-gst_index_factory_get_type
-gst_index_get_type
 gst_object_get_type
 gst_pad_get_type
 gst_pad_template_get_type
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index a7816c2..a4b5bc9 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstAtomicQueue.html" title="GstAtomicQueue">
 <link rel="next" href="gstreamer-GstBuffer.html" title="GstBuffer">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstAtomicQueue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstBuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -157,7 +157,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id472748"></a><h3>Notes</h3>
+<a name="idp9169136"></a><h3>Notes</h3>
 <p>
 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> internally intercepts every <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> posted by its children and
 implements the following default behaviour for each of them:
@@ -270,7 +270,7 @@
 <p>
 </p>
 <p>
-Last reviewed on 2006-04-28 (0.10.6)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -311,7 +311,7 @@
 <td>the list of children in this bin</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstBin-struct.children-cookie"></a>children_cookie</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstBin-struct.children-cookie"></a>children_cookie</code></em>;</span></p></td>
 <td>updated whenever <em class="parameter"><code>children</code></em> changes</td>
 </tr>
 <tr>
@@ -406,7 +406,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -677,7 +677,7 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_sinks               (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
 <p>
 Gets an iterator for all elements in the bin that have the
-<a class="link" href="GstElement.html#GST-ELEMENT-IS-SINK:CAPS"><span class="type">GST_ELEMENT_IS_SINK</span></a> flag set.
+<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS"><span class="type">GST_ELEMENT_FLAG_SINK</span></a> flag set.
 </p>
 <p>
 Each element yielded by the iterator will have its refcount increased, so
@@ -744,7 +744,7 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_sources             (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
 <p>
 Gets an iterator for all elements in the bin that have the
-<a class="link" href="GstElement.html#GST-ELEMENT-IS-SOURCE:CAPS"><span class="type">GST_ELEMENT_IS_SOURCE</span></a> flag set.
+<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS"><span class="type">GST_ELEMENT_FLAG_SOURCE</span></a> flag set.
 </p>
 <p>
 Each element yielded by the iterator will have its refcount increased, so
diff --git a/docs/gst/html/GstBus.html b/docs/gst/html/GstBus.html
index 9ed93da..35747cb 100644
--- a/docs/gst/html/GstBus.html
+++ b/docs/gst/html/GstBus.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBus</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstBufferPool.html" title="GstBufferPool">
 <link rel="next" href="gstreamer-GstCaps.html" title="GstCaps">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstBufferPool.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstCaps.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -98,7 +98,7 @@
 <span class="returnvalue">void</span>                <a class="link" href="GstBus.html#gst-bus-remove-signal-watch" title="gst_bus_remove_signal_watch ()">gst_bus_remove_signal_watch</a>         (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="GstBus.html#gst-bus-poll" title="gst_bus_poll ()">gst_bus_poll</a>                        (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> events</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> timeout</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -175,7 +175,7 @@
 from READY to NULL state.
 </p>
 <p>
-Last reviewed on 2006-03-12 (0.10.5)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -742,6 +742,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>The event source id.
+Rename to: gst_bus_add_watch
 MT safe.</td>
 </tr>
 </tbody>
@@ -943,8 +944,8 @@
 function is called.
 </p>
 <p>
-There can only be a single bus watch per bus, you most remove all signal watch
-before you can set another type of watch.
+There can only be a single bus watch per bus, you must remove any signal
+watch before you can set another type of watch.
 </p>
 <p>
 MT safe.
@@ -986,7 +987,7 @@
 <a name="gst-bus-poll"></a><h3>gst_bus_poll ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_bus_poll                        (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> events</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> timeout</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);</pre>
 <p>
 Poll the bus for messages. Will block while waiting for messages to come.
 You can specify a maximum time to poll with the <em class="parameter"><code>timeout</code></em> parameter. If
@@ -1040,7 +1041,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
-<td>the poll timeout, as a <a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a>, or -1 to poll
+<td>the poll timeout, as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>, or <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> to poll
 indefinitely.</td>
 </tr>
 <tr>
diff --git a/docs/gst/html/GstChildProxy.html b/docs/gst/html/GstChildProxy.html
index ed85c7d..c0cb6da 100644
--- a/docs/gst/html/GstChildProxy.html
+++ b/docs/gst/html/GstChildProxy.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstChildProxy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="gstreamer-GstCaps.html" title="GstCaps">
+<link rel="prev" href="gstreamer-GstSample.html" title="GstSample">
 <link rel="next" href="GstClock.html" title="GstClock">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gstreamer-GstCaps.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-GstSample.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstClock.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,36 +51,38 @@
                     <a class="link" href="GstChildProxy.html#GstChildProxy-struct" title="GstChildProxy">GstChildProxy</a>;
 struct              <a class="link" href="GstChildProxy.html#GstChildProxyInterface" title="struct GstChildProxyInterface">GstChildProxyInterface</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstChildProxy.html#gst-child-proxy-get-children-count" title="gst_child_proxy_get_children_count ()">gst_child_proxy_get_children_count</a>  (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>);
-<a class="link" href="GstObject.html" title="GstObject"><span class="returnvalue">GstObject</span></a> *         <a class="link" href="GstChildProxy.html#gst-child-proxy-get-child-by-name" title="gst_child_proxy_get_child_by_name ()">gst_child_proxy_get_child_by_name</a>   (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> *           <a class="link" href="GstChildProxy.html#gst-child-proxy-get-child-by-name" title="gst_child_proxy_get_child_by_name ()">gst_child_proxy_get_child_by_name</a>   (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a class="link" href="GstObject.html" title="GstObject"><span class="returnvalue">GstObject</span></a> *         <a class="link" href="GstChildProxy.html#gst-child-proxy-get-child-by-index" title="gst_child_proxy_get_child_by_index ()">gst_child_proxy_get_child_by_index</a>  (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> *           <a class="link" href="GstChildProxy.html#gst-child-proxy-get-child-by-index" title="gst_child_proxy_get_child_by_index ()">gst_child_proxy_get_child_by_index</a>  (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstChildProxy.html#gst-child-proxy-lookup" title="gst_child_proxy_lookup ()">gst_child_proxy_lookup</a>              (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstChildProxy.html#gst-child-proxy-lookup" title="gst_child_proxy_lookup ()">gst_child_proxy_lookup</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> **target</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> **target</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> **pspec</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-property" title="gst_child_proxy_get_property ()">gst_child_proxy_get_property</a>        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-property" title="gst_child_proxy_get_property ()">gst_child_proxy_get_property</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-valist" title="gst_child_proxy_get_valist ()">gst_child_proxy_get_valist</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-valist" title="gst_child_proxy_get_valist ()">gst_child_proxy_get_valist</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get" title="gst_child_proxy_get ()">gst_child_proxy_get</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get" title="gst_child_proxy_get ()">gst_child_proxy_get</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-property" title="gst_child_proxy_set_property ()">gst_child_proxy_set_property</a>        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-property" title="gst_child_proxy_set_property ()">gst_child_proxy_set_property</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-valist" title="gst_child_proxy_set_valist ()">gst_child_proxy_set_valist</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-valist" title="gst_child_proxy_set_valist ()">gst_child_proxy_set_valist</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set" title="gst_child_proxy_set ()">gst_child_proxy_set</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set" title="gst_child_proxy_set ()">gst_child_proxy_set</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-added" title="gst_child_proxy_child_added ()">gst_child_proxy_child_added</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *child</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-removed" title="gst_child_proxy_child_removed ()">gst_child_proxy_child_removed</a>       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *child</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-added" title="gst_child_proxy_child_added ()">gst_child_proxy_child_added</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-removed" title="gst_child_proxy_child_removed ()">gst_child_proxy_child_removed</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -94,7 +96,7 @@
 <a name="GstChildProxy.prerequisites"></a><h2>Prerequisites</h2>
 <p>
 GstChildProxy requires
- <a class="link" href="GstObject.html" title="GstObject">GstObject</a>.</p>
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
 </div>
 <div class="refsect1">
 <a name="GstChildProxy.implementations"></a><h2>Known Implementations</h2>
@@ -145,8 +147,9 @@
   GTypeInterface parent;
 
   /* methods */
-  GstObject *(*get_child_by_index) (GstChildProxy * parent, guint index);
-  guint (*get_children_count) (GstChildProxy * parent);
+  GObject * (*get_child_by_name)  (GstChildProxy * parent, const gchar * name);
+  GObject * (*get_child_by_index) (GstChildProxy * parent, guint index);
+  guint     (*get_children_count) (GstChildProxy * parent);
 };
 </pre>
 <p>
@@ -160,8 +163,12 @@
 <td>parent interface type.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstChildProxyInterface.get-child-by-name"></a>get_child_by_name</code></em> ()</span></p></td>
+<td>virtual method to fetch the child by name</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstChildProxyInterface.get-child-by-index"></a>get_child_by_index</code></em> ()</span></p></td>
-<td>virtual method to fetch the child</td>
+<td>virtual method to fetch the child by index</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstChildProxyInterface.get-children-count"></a>get_children_count</code></em> ()</span></p></td>
@@ -195,13 +202,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-child-by-name"></a><h3>gst_child_proxy_get_child_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="GstObject.html" title="GstObject"><span class="returnvalue">GstObject</span></a> *         gst_child_proxy_get_child_by_name   (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> *           gst_child_proxy_get_child_by_name   (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
 Looks up a child element by the given name.
 </p>
 <p>
-Implementors can use <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> together with <a class="link" href="GstObject.html#gst-object-get-name" title="gst_object_get_name ()"><code class="function">gst_object_get_name()</code></a>
+This virtual method has a default implementation that uses <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>
+together with <a class="link" href="GstObject.html#gst-object-get-name" title="gst_object_get_name ()"><code class="function">gst_object_get_name()</code></a>. If the interface is to be used with
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObjects</span></a>, this methods needs to be overridden.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -227,7 +236,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-child-by-index"></a><h3>gst_child_proxy_get_child_by_index ()</h3>
-<pre class="programlisting"><a class="link" href="GstObject.html" title="GstObject"><span class="returnvalue">GstObject</span></a> *         gst_child_proxy_get_child_by_index  (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> *           gst_child_proxy_get_child_by_index  (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
 <p>
 Fetches a child by its number.
@@ -256,9 +265,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-lookup"></a><h3>gst_child_proxy_lookup ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_child_proxy_lookup              (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_child_proxy_lookup              (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> **target</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> **target</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> **pspec</code></em>);</pre>
 <p>
 Looks up which object and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> would be effected by the given <em class="parameter"><code>name</code></em>.
@@ -276,7 +285,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
-<td>pointer to a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> that
+<td>pointer to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> that
 takes the real object to set property on. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -299,7 +308,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-property"></a><h3>gst_child_proxy_get_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_property        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_property        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
@@ -328,7 +337,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-valist"></a><h3>gst_child_proxy_get_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_valist          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_valist          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>
@@ -355,7 +364,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get"></a><h3>gst_child_proxy_get ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
@@ -382,7 +391,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set-property"></a><h3>gst_child_proxy_set_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_property        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_property        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
@@ -409,7 +418,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set-valist"></a><h3>gst_child_proxy_set_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_valist          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_valist          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>
@@ -436,7 +445,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set"></a><h3>gst_child_proxy_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
@@ -463,8 +472,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-child-added"></a><h3>gst_child_proxy_child_added ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_added         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *child</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_added         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
 Emits the "child-added" signal.
 </p>
@@ -479,14 +489,19 @@
 <td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
 <td>the newly added child</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the new child</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-child-removed"></a><h3>gst_child_proxy_child_removed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_removed       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *child</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_removed       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
 Emits the "child-removed" signal.
 </p>
@@ -501,6 +516,10 @@
 <td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
 <td>the removed child</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the old child</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -511,6 +530,7 @@
 <a name="GstChildProxy-child-added"></a><h3>The <code class="literal">"child-added"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *child_proxy,
                                                         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>       *object,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>         *name,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
 <p>
 Will be emitted after the <em class="parameter"><code>object</code></em> was added to the <em class="parameter"><code>child_proxy</code></em>.
@@ -528,6 +548,10 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> that was added</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the new child</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
@@ -539,6 +563,7 @@
 <a name="GstChildProxy-child-removed"></a><h3>The <code class="literal">"child-removed"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *child_proxy,
                                                         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>       *object,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>         *name,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
 <p>
 Will be emitted after the <em class="parameter"><code>object</code></em> was removed from the <em class="parameter"><code>child_proxy</code></em>.
@@ -556,6 +581,10 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> that was removed</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the old child</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data set when the signal handler was connected.</td>
 </tr>
diff --git a/docs/gst/html/GstClock.html b/docs/gst/html/GstClock.html
index ad84f5c..ca4dae0 100644
--- a/docs/gst/html/GstClock.html
+++ b/docs/gst/html/GstClock.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstChildProxy.html" title="GstChildProxy">
 <link rel="next" href="gstreamer-gstconfig.html" title="gstconfig">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstChildProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-gstconfig.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -67,7 +67,6 @@
 #define             <a class="link" href="GstClock.html#GST-TIMESPEC-TO-TIME:CAPS" title="GST_TIMESPEC_TO_TIME()">GST_TIMESPEC_TO_TIME</a>                (ts)
 #define             <a class="link" href="GstClock.html#GST-TIME-TO-TIMESPEC:CAPS" title="GST_TIME_TO_TIMESPEC()">GST_TIME_TO_TIMESPEC</a>                (t,
                                                          ts)
-#define             <a class="link" href="GstClock.html#GST-CLOCK-ENTRY-TRACE-NAME:CAPS" title="GST_CLOCK_ENTRY_TRACE_NAME">GST_CLOCK_ENTRY_TRACE_NAME</a>
 struct              <a class="link" href="GstClock.html#GstClockEntry" title="struct GstClockEntry">GstClockEntry</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstClock.html#GstClockCallback" title="GstClockCallback ()">*GstClockCallback</a>)                 (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
@@ -83,11 +82,6 @@
 enum                <a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn">GstClockReturn</a>;
 enum                <a class="link" href="GstClock.html#GstClockFlags" title="enum GstClockFlags">GstClockFlags</a>;
 #define             <a class="link" href="GstClock.html#GST-CLOCK-FLAGS:CAPS" title="GST_CLOCK_FLAGS()">GST_CLOCK_FLAGS</a>                     (clock)
-#define             <a class="link" href="GstClock.html#GST-CLOCK-BROADCAST:CAPS" title="GST_CLOCK_BROADCAST()">GST_CLOCK_BROADCAST</a>                 (clock)
-#define             <a class="link" href="GstClock.html#GST-CLOCK-COND:CAPS" title="GST_CLOCK_COND()">GST_CLOCK_COND</a>                      (clock)
-#define             <a class="link" href="GstClock.html#GST-CLOCK-TIMED-WAIT:CAPS" title="GST_CLOCK_TIMED_WAIT()">GST_CLOCK_TIMED_WAIT</a>                (clock,
-                                                         tv)
-#define             <a class="link" href="GstClock.html#GST-CLOCK-WAIT:CAPS" title="GST_CLOCK_WAIT()">GST_CLOCK_WAIT</a>                      (clock)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstClock.html#gst-clock-add-observation" title="gst_clock_add_observation ()">gst_clock_add_observation</a>           (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> slave</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> master</code></em>,
@@ -126,6 +120,9 @@
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> external</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> rate_num</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> rate_denom</code></em>);
+<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstClock.html#gst-clock-get-timeout" title="gst_clock_get_timeout ()">gst_clock_get_timeout</a>               (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstClock.html#gst-clock-set-timeout" title="gst_clock_set_timeout ()">gst_clock_set_timeout</a>               (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);
 <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstClock.html#gst-clock-id-get-time" title="gst_clock_id_get_time ()">gst_clock_id_get_time</a>               (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>);
 <a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstClock.html#gst-clock-id-wait" title="gst_clock_id_wait ()">gst_clock_id_wait</a>                   (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
@@ -156,8 +153,7 @@
 <div class="refsect1">
 <a name="GstClock.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="GstClock.html#GstClock--stats" title='The "stats" property'>stats</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstClock.html#GstClock--timeout" title='The "timeout" property'>timeout</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="GstClock.html#GstClock--timeout" title='The "timeout" property'>timeout</a>"                  <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="GstClock.html#GstClock--window-size" title='The "window-size" property'>window-size</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="GstClock.html#GstClock--window-threshold" title='The "window-threshold" property'>window-threshold</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
 </pre>
@@ -252,7 +248,7 @@
 defines the minimum number of samples before the calibration is performed.
 </p>
 <p>
-Last reviewed on 2009-05-21 (0.10.24)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -274,16 +270,16 @@
   /* vtable */
   GstClockTime          (*change_resolution)    (GstClock *clock,
                                                  GstClockTime old_resolution,
-						 GstClockTime new_resolution);
+                                                 GstClockTime new_resolution);
   GstClockTime          (*get_resolution)       (GstClock *clock);
 
-  GstClockTime		(*get_internal_time) (GstClock *clock);
+  GstClockTime          (*get_internal_time)    (GstClock *clock);
 
   /* waiting on an ID */
   GstClockReturn        (*wait)                 (GstClock *clock, GstClockEntry *entry,
-		                                 GstClockTimeDiff *jitter);
+                                                 GstClockTimeDiff *jitter);
   GstClockReturn        (*wait_async)           (GstClock *clock, GstClockEntry *entry);
-  void                  (*unschedule)		(GstClock *clock, GstClockEntry *entry);
+  void                  (*unschedule)           (GstClock *clock, GstClockEntry *entry);
 };
 </pre>
 <p>
@@ -330,7 +326,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstClockTime"></a><h3>GstClockTime</h3>
-<pre class="programlisting">typedef guint64 GstClockTime;
+<pre class="programlisting">typedef guint64 GstClockTime;
 </pre>
 <p>
 A datatype to hold a time, measured in nanoseconds.
@@ -357,7 +353,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-TIME-NONE:CAPS"></a><h3>GST_CLOCK_TIME_NONE</h3>
-<pre class="programlisting">#define GST_CLOCK_TIME_NONE		((GstClockTime) -1)
+<pre class="programlisting">#define GST_CLOCK_TIME_NONE             ((GstClockTime) -1)
 </pre>
 <p>
 Constant to define an undefined clock time.
@@ -366,7 +362,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-TIME-IS-VALID:CAPS"></a><h3>GST_CLOCK_TIME_IS_VALID()</h3>
-<pre class="programlisting">#define GST_CLOCK_TIME_IS_VALID(time) (((GstClockTime)(time)) != GST_CLOCK_TIME_NONE)
+<pre class="programlisting">#define GST_CLOCK_TIME_IS_VALID(time)   (((GstClockTime)(time)) != GST_CLOCK_TIME_NONE)
 </pre>
 <p>
 Tests if a given <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> represents a valid defined time.
@@ -387,6 +383,9 @@
 <p>
 Constant that defines one GStreamer second.
 </p>
+<p>
+Value: 1000000000
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -396,6 +395,9 @@
 <p>
 Constant that defines one GStreamer millisecond.
 </p>
+<p>
+Value: 1000000
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -405,6 +407,9 @@
 <p>
 Constant that defines one GStreamer microsecond.
 </p>
+<p>
+Value: 1000
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -414,6 +419,9 @@
 <p>
 Constant that defines one GStreamer nanosecond
 </p>
+<p>
+Value: 1
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -486,7 +494,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-DIFF:CAPS"></a><h3>GST_CLOCK_DIFF()</h3>
-<pre class="programlisting">#define GST_CLOCK_DIFF(s, e)		(GstClockTimeDiff)((e) - (s))
+<pre class="programlisting">#define GST_CLOCK_DIFF(s, e)            (GstClockTimeDiff)((e) - (s))
 </pre>
 <p>
 Calculate a difference between two clock times as a <a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a>.
@@ -509,7 +517,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-TIMEVAL-TO-TIME:CAPS"></a><h3>GST_TIMEVAL_TO_TIME()</h3>
-<pre class="programlisting">#define GST_TIMEVAL_TO_TIME(tv)		(GstClockTime)((tv).tv_sec * GST_SECOND + (tv).tv_usec * GST_USECOND)
+<pre class="programlisting">#define GST_TIMEVAL_TO_TIME(tv)         (GstClockTime)((tv).tv_sec * GST_SECOND + (tv).tv_usec * GST_USECOND)
 </pre>
 <p>
 Convert a <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> to a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>.
@@ -554,7 +562,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-TIMESPEC-TO-TIME:CAPS"></a><h3>GST_TIMESPEC_TO_TIME()</h3>
-<pre class="programlisting">#define GST_TIMESPEC_TO_TIME(ts) (GstClockTime)((ts).tv_sec * GST_SECOND + (ts).tv_nsec * GST_NSECOND)
+<pre class="programlisting">#define GST_TIMESPEC_TO_TIME(ts)        (GstClockTime)((ts).tv_sec * GST_SECOND + (ts).tv_nsec * GST_NSECOND)
 </pre>
 <p>
 Convert a struct timespec (see man pselect) to a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>.
@@ -590,18 +598,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-CLOCK-ENTRY-TRACE-NAME:CAPS"></a><h3>GST_CLOCK_ENTRY_TRACE_NAME</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_TRACE_NAME "GstClockEntry"
-</pre>
-<p>
-The name used for tracing clock entry allocations.
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstClockEntry"></a><h3>struct GstClockEntry</h3>
 <pre class="programlisting">struct GstClockEntry {
-  gint			refcount;
+  gint                  refcount;
 };
 </pre>
 <p>
@@ -685,7 +684,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY:CAPS"></a><h3>GST_CLOCK_ENTRY()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY(entry)		((GstClockEntry *)(entry))
+<pre class="programlisting">#define GST_CLOCK_ENTRY(entry)          ((GstClockEntry *)(entry))
 </pre>
 <p>
 Cast to a clock entry
@@ -701,7 +700,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY-CLOCK:CAPS"></a><h3>GST_CLOCK_ENTRY_CLOCK()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_CLOCK(entry) ((entry)-&gt;clock)
+<pre class="programlisting">#define GST_CLOCK_ENTRY_CLOCK(entry)    ((entry)-&gt;clock)
 </pre>
 <p>
 Get the owner clock of the entry
@@ -717,7 +716,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY-TYPE:CAPS"></a><h3>GST_CLOCK_ENTRY_TYPE()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_TYPE(entry) ((entry)-&gt;type)
+<pre class="programlisting">#define GST_CLOCK_ENTRY_TYPE(entry)     ((entry)-&gt;type)
 </pre>
 <p>
 Get the type of the clock entry
@@ -733,7 +732,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY-TIME:CAPS"></a><h3>GST_CLOCK_ENTRY_TIME()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_TIME(entry) ((entry)-&gt;time)
+<pre class="programlisting">#define GST_CLOCK_ENTRY_TIME(entry)     ((entry)-&gt;time)
 </pre>
 <p>
 Get the requested time of this entry
@@ -749,7 +748,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY-INTERVAL:CAPS"></a><h3>GST_CLOCK_ENTRY_INTERVAL()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_INTERVAL(entry) ((entry)-&gt;interval)
+<pre class="programlisting">#define GST_CLOCK_ENTRY_INTERVAL(entry) ((entry)-&gt;interval)
 </pre>
 <p>
 Get the interval of this periodic entry
@@ -765,7 +764,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-ENTRY-STATUS:CAPS"></a><h3>GST_CLOCK_ENTRY_STATUS()</h3>
-<pre class="programlisting">#define GST_CLOCK_ENTRY_STATUS(entry) ((entry)-&gt;status)
+<pre class="programlisting">#define GST_CLOCK_ENTRY_STATUS(entry)   ((entry)-&gt;status)
 </pre>
 <p>
 The status of the entry
@@ -782,14 +781,14 @@
 <div class="refsect2">
 <a name="GstClockReturn"></a><h3>enum GstClockReturn</h3>
 <pre class="programlisting">typedef enum {
-  GST_CLOCK_OK		=  0,
-  GST_CLOCK_EARLY =  1,
-  GST_CLOCK_UNSCHEDULED =  2,
-  GST_CLOCK_BUSY =  3,
-  GST_CLOCK_BADTIME =  4,
-  GST_CLOCK_ERROR =  5,
-  GST_CLOCK_UNSUPPORTED =  6,
-  GST_CLOCK_DONE =  7
+  GST_CLOCK_OK          =  0,
+  GST_CLOCK_EARLY       =  1,
+  GST_CLOCK_UNSCHEDULED =  2,
+  GST_CLOCK_BUSY        =  3,
+  GST_CLOCK_BADTIME     =  4,
+  GST_CLOCK_ERROR       =  5,
+  GST_CLOCK_UNSUPPORTED =  6,
+  GST_CLOCK_DONE        =  7
 } GstClockReturn;
 </pre>
 <p>
@@ -852,7 +851,7 @@
   GST_CLOCK_FLAG_CAN_SET_RESOLUTION     = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
   GST_CLOCK_FLAG_CAN_SET_MASTER         = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
   /* padding */
-  GST_CLOCK_FLAG_LAST		        = (GST_OBJECT_FLAG_LAST &lt;&lt; 8)
+  GST_CLOCK_FLAG_LAST                   = (GST_OBJECT_FLAG_LAST &lt;&lt; 8)
 } GstClockFlags;
 </pre>
 <p>
@@ -917,78 +916,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-CLOCK-BROADCAST:CAPS"></a><h3>GST_CLOCK_BROADCAST()</h3>
-<pre class="programlisting">#define GST_CLOCK_BROADCAST(clock)       g_cond_broadcast(GST_CLOCK_COND(clock))
-</pre>
-<p>
-Signal that the entries in the clock have changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>the clock to broadcast</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-CLOCK-COND:CAPS"></a><h3>GST_CLOCK_COND()</h3>
-<pre class="programlisting">#define GST_CLOCK_COND(clock)            (GST_CLOCK_CAST(clock)-&gt;entries_changed)
-</pre>
-<p>
-Gets the <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> that gets signalled when the entries of the clock
-changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>the clock to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-CLOCK-TIMED-WAIT:CAPS"></a><h3>GST_CLOCK_TIMED_WAIT()</h3>
-<pre class="programlisting">#define GST_CLOCK_TIMED_WAIT(clock,tv)   g_cond_timed_wait(GST_CLOCK_COND(clock),GST_OBJECT_GET_LOCK(clock),tv)
-</pre>
-<p>
-Wait on the clock until the entries changed or the specified timeout
-occurred.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>the clock to wait on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tv</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> to wait.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-CLOCK-WAIT:CAPS"></a><h3>GST_CLOCK_WAIT()</h3>
-<pre class="programlisting">#define GST_CLOCK_WAIT(clock)            g_cond_wait(GST_CLOCK_COND(clock),GST_OBJECT_GET_LOCK(clock))
-</pre>
-<p>
-Wait on the clock until the entries changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>the clock to wait on</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-clock-add-observation"></a><h3>gst_clock_add_observation ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_clock_add_observation           (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> slave</code></em>,
@@ -1549,6 +1476,52 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-clock-get-timeout"></a><h3>gst_clock_get_timeout ()</h3>
+<pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_clock_get_timeout               (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);</pre>
+<p>
+Get the amount of time that master and slave clocks are sampled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the interval between samples.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-clock-set-timeout"></a><h3>gst_clock_set_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_clock_set_timeout               (<em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);</pre>
+<p>
+Set the amount of time, in nanoseconds, to sample master and slave
+clocks
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
+<td>a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
+<td>a timeout</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-clock-id-get-time"></a><h3>gst_clock_id_get_time ()</h3>
 <pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_clock_id_get_time               (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>);</pre>
 <p>
@@ -1798,15 +1771,8 @@
 <div class="refsect1">
 <a name="GstClock.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GstClock--stats"></a><h3>The <code class="literal">"stats"</code> property</h3>
-<pre class="programlisting">  "stats"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>Enable clock stats (unimplemented).</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstClock--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting">  "timeout"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "timeout"                  <span class="type">guint64</span>               : Read / Write</pre>
 <p>The amount of time, in nanoseconds, to sample master and slave clocks.</p>
 <p>Default value: 100000000</p>
 </div>
diff --git a/docs/gst/html/GstControlBinding.html b/docs/gst/html/GstControlBinding.html
new file mode 100644
index 0000000..3ed254c
--- /dev/null
+++ b/docs/gst/html/GstControlBinding.html
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstControlBinding</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="gstreamer-gstconfig.html" title="gstconfig">
+<link rel="next" href="GstControlSource.html" title="GstControlSource">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-gstconfig.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="GstControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#GstControlBinding.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstControlBinding.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstControlBinding.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#GstControlBinding.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstControlBinding"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstControlBinding.top_of_page"></a>GstControlBinding</span></h2>
+<p>GstControlBinding — attachment for control source sources</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstControlBinding.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+struct              <a class="link" href="GstControlBinding.html#GstControlBinding-struct" title="struct GstControlBinding">GstControlBinding</a>;
+struct              <a class="link" href="GstControlBinding.html#GstControlBindingClass" title="struct GstControlBindingClass">GstControlBindingClass</a>;
+<span class="returnvalue">void</span>                (<a class="link" href="GstControlBinding.html#GstControlBindingConvert" title="GstControlBindingConvert ()">*GstControlBindingConvert</a>)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest_value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-sync-values" title="gst_control_binding_sync_values ()">gst_control_binding_sync_values</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> last_sync</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            <a class="link" href="GstControlBinding.html#gst-control-binding-get-value" title="gst_control_binding_get_value ()">gst_control_binding_get_value</a>       (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-get-value-array" title="gst_control_binding_get_value_array ()">gst_control_binding_get_value_array</a> (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *values</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstControlBinding.html#gst-control-binding-set-disabled" title="gst_control_binding_set_disabled ()">gst_control_binding_set_disabled</a>    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-is-disabled" title="gst_control_binding_is_disabled ()">gst_control_binding_is_disabled</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstControlBinding.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+               +----GstControlBinding
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstControlBinding.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="GstControlBinding.html#GstControlBinding--name" title='The "name" property'>name</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
+  "<a class="link" href="GstControlBinding.html#GstControlBinding--object" title='The "object" property'>object</a>"                   <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>*            : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstControlBinding.description"></a><h2>Description</h2>
+<p>
+A value mapping object that attaches control sources to gobject properties.
+</p>
+</div>
+<div class="refsect1">
+<a name="GstControlBinding.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstControlBinding-struct"></a><h3>struct GstControlBinding</h3>
+<pre class="programlisting">struct GstControlBinding {
+  gchar *name;                  /* name of the property */
+  GParamSpec *pspec;            /* GParamSpec for this property */
+};
+</pre>
+<p>
+The instance structure of <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstControlBinding-struct.name"></a>name</code></em>;</span></p></td>
+<td>name of the property of this binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *<em class="structfield"><code><a name="GstControlBinding-struct.pspec"></a>pspec</code></em>;</span></p></td>
+<td></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlBindingClass"></a><h3>struct GstControlBindingClass</h3>
+<pre class="programlisting">struct GstControlBindingClass {
+  GstObjectClass parent_class;
+
+  /* virtual methods */
+  gboolean (* sync_values) (GstControlBinding *self, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
+  GValue * (* get_value) (GstControlBinding *self, GstClockTime timestamp);
+  gboolean (* get_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
+};
+</pre>
+<p>
+The class structure of <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstControlBindingClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>Parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstControlBindingClass.sync-values"></a>sync_values</code></em> ()</span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstControlBindingClass.get-value"></a>get_value</code></em> ()</span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstControlBindingClass.get-value-array"></a>get_value_array</code></em> ()</span></p></td>
+<td></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlBindingConvert"></a><h3>GstControlBindingConvert ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstControlBindingConvert)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest_value</code></em>);</pre>
+<p>
+Function to map a control-value to the target GValue.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src_value</code></em> :</span></p></td>
+<td>the value returned by the cotnrol source</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest_value</code></em> :</span></p></td>
+<td>the target GValue</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-binding-sync-values"></a><h3>gst_control_binding_sync_values ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_sync_values     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> last_sync</code></em>);</pre>
+<p>
+Sets the property of the <em class="parameter"><code>object</code></em>, according to the <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSources</span></a> that
+handle them and for the given timestamp.
+</p>
+<p>
+If this function fails, it is most likely the application developers fault.
+Most probably the control sources are not setup correctly.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time that should be processed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>last_sync</code></em> :</span></p></td>
+<td>the last time this was called</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the controller value could be applied to the object
+property, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-binding-get-value"></a><h3>gst_control_binding_get_value ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            gst_control_binding_get_value       (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+<p>
+Gets the value for the given controlled property at the requested time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time the control-change should be read from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
+property isn't controlled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-binding-get-value-array"></a><h3>gst_control_binding_get_value_array ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_get_value_array (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *values</code></em>);</pre>
+<p>
+Gets a number of values for the given controllered property starting at the
+requested time. The array <em class="parameter"><code>values</code></em> need to hold enough space for <em class="parameter"><code>n_values</code></em> of
+the same type as the objects property's type.
+</p>
+<p>
+This function is useful if one wants to e.g. draw a graph of the control
+curve or apply a control curve sample by sample.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time that should be processed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
+<td>the time spacing between subsequent values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_values</code></em> :</span></p></td>
+<td>the number of values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>values</code></em> :</span></p></td>
+<td>array to put control-values in</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-binding-set-disabled"></a><h3>gst_control_binding_set_disabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_control_binding_set_disabled    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
+<p>
+This function is used to disable a control binding for some time, i.e.
+<a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> will do nothing.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td>
+<td>boolean that specifies whether to disable the controller
+or not.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-binding-is-disabled"></a><h3>gst_control_binding_is_disabled ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_is_disabled     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>);</pre>
+<p>
+Check if the control binding is disabled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the binding is inactive</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GstControlBinding.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstControlBinding--name"></a><h3>The <code class="literal">"name"</code> property</h3>
+<pre class="programlisting">  "name"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
+<p>The name of the property.</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlBinding--object"></a><h3>The <code class="literal">"object"</code> property</h3>
+<pre class="programlisting">  "object"                   <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a>*            : Read / Write / Construct Only</pre>
+<p>The object of the property.</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/GstControlSource.html b/docs/gst/html/GstControlSource.html
new file mode 100644
index 0000000..68c7982
--- /dev/null
+++ b/docs/gst/html/GstControlSource.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstControlSource</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="GstControlBinding.html" title="GstControlBinding">
+<link rel="next" href="gstreamer-GstDateTime.html" title="GstDateTime">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="GstControlBinding.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstDateTime.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#GstControlSource.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstControlSource.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstControlSource.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstControlSource"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstControlSource.top_of_page"></a>GstControlSource</span></h2>
+<p>GstControlSource — base class for control source sources</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstControlSource.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+                    <a class="link" href="GstControlSource.html#GstValueArray" title="GstValueArray">GstValueArray</a>;
+struct              <a class="link" href="GstControlSource.html#GstControlSource-struct" title="struct GstControlSource">GstControlSource</a>;
+struct              <a class="link" href="GstControlSource.html#GstControlSourceClass" title="struct GstControlSourceClass">GstControlSourceClass</a>;
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()">*GstControlSourceGetValue</a>)         (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()">*GstControlSourceGetValueArray</a>)    (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *values</code></em>);
+struct              <a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue">GstTimedValue</a>;
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()">gst_control_source_get_value</a>        (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()">gst_control_source_get_value_array</a>  (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *values</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+               +----GstControlSource
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstControlSource.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> is a base class for control value sources that could
+be used by <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstController.html"><span class="type">GstController</span></a> to get timestamp-value pairs.
+</p>
+<p>
+A <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> is used by first getting an instance, binding it to a
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> (for example by using <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstController.html#gst-controller-set-control-source"><code class="function">gst_controller_set_control_source()</code></a>) and
+then by having it used by the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstController.html"><span class="type">GstController</span></a> or calling
+<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()"><code class="function">gst_control_source_get_value()</code></a> or <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()"><code class="function">gst_control_source_get_value_array()</code></a>.
+</p>
+<p>
+For implementing a new <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> one has to implement a
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstControlSource.html#GstControlSourceBind"><span class="type">GstControlSourceBind</span></a> method, which will depending on the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> set up
+the control source for use and sets the <a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()"><span class="type">GstControlSourceGetValue</span></a> and
+<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()"><span class="type">GstControlSourceGetValueArray</span></a> functions. These are then used by
+<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()"><code class="function">gst_control_source_get_value()</code></a> or <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()"><code class="function">gst_control_source_get_value_array()</code></a>
+to get values for specific timestamps.
+</p>
+</div>
+<div class="refsect1">
+<a name="GstControlSource.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstValueArray"></a><h3>GstValueArray</h3>
+<pre class="programlisting">typedef struct _GstValueArray GstValueArray;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlSource-struct"></a><h3>struct GstControlSource</h3>
+<pre class="programlisting">struct GstControlSource {
+  GstControlSourceGetValue get_value;             /* Returns the value for a property at a given timestamp */
+  GstControlSourceGetValueArray get_value_array;  /* Returns values for a property in a given timespan */
+};
+</pre>
+<p>
+The instance structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()"><span class="type">GstControlSourceGetValue</span></a> <em class="structfield"><code><a name="GstControlSource-struct.get-value"></a>get_value</code></em>;</span></p></td>
+<td>Function for returning a value for a given timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()"><span class="type">GstControlSourceGetValueArray</span></a> <em class="structfield"><code><a name="GstControlSource-struct.get-value-array"></a>get_value_array</code></em>;</span></p></td>
+<td>Function for returning a <a class="link" href="GstControlSource.html#GstValueArray" title="GstValueArray"><span class="type">GstValueArray</span></a> for a given timestamp</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlSourceClass"></a><h3>struct GstControlSourceClass</h3>
+<pre class="programlisting">struct GstControlSourceClass {
+  GstObjectClass parent_class;
+};
+</pre>
+<p>
+The class structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a class="link" href="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstControlSourceClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>Parent class</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlSourceGetValue"></a><h3>GstControlSourceGetValue ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstControlSourceGetValue)         (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);</pre>
+<p>
+Function for returning a value for a given timestamp.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>timestamp for which a value should be calculated</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> which will be set to the result. It must be initialized to the correct type.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value was successfully calculated.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstControlSourceGetValueArray"></a><h3>GstControlSourceGetValueArray ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstControlSourceGetValueArray)    (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *values</code></em>);</pre>
+<p>
+Function for returning an array of values for starting at a given timestamp.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>timestamp for which a value should be calculated</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
+<td>the time spacing between subsequent values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_values</code></em> :</span></p></td>
+<td>the number of values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>values</code></em> :</span></p></td>
+<td>array to put control-values in</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values were successfully calculated.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTimedValue"></a><h3>struct GstTimedValue</h3>
+<pre class="programlisting">struct GstTimedValue {
+  GstClockTime timestamp;
+  gdouble      value;
+};
+</pre>
+<p>
+Structure for saving a timestamp and a value.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstTimedValue.timestamp"></a>timestamp</code></em>;</span></p></td>
+<td>timestamp of the value change</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstTimedValue.value"></a>value</code></em>;</span></p></td>
+<td>the corresponding value</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-source-get-value"></a><h3>gst_control_source_get_value ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_source_get_value        (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);</pre>
+<p>
+Gets the value for this <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> at a given timestamp.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time for which the value should be returned</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>the value</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if the value couldn't be returned, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-control-source-get-value-array"></a><h3>gst_control_source_get_value_array ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_source_get_value_array  (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *values</code></em>);</pre>
+<p>
+Gets an array of values for for this <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the first timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
+<td>the time steps</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_values</code></em> :</span></p></td>
+<td>the number of values to fetch</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
+<td>array to put control-values in</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index 5ec2914..332a2bf 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstElement</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstDateTime.html" title="GstDateTime">
 <link rel="next" href="GstElementFactory.html" title="GstElementFactory">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstDateTime.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstElementFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -100,24 +100,31 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstElement.html#gst-element-class-get-pad-template-list" title="gst_element_class_get_pad_template_list ()">gst_element_class_get_pad_template_list</a>
                                                         (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *element_class</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-install-std-props" title="gst_element_class_install_std_props ()">gst_element_class_install_std_props</a> (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_name</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()">gst_element_class_set_metadata</a>      (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-set-static-metadata" title="gst_element_class_set_static_metadata ()">gst_element_class_set_static_metadata</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-add-metadata" title="gst_element_class_add_metadata ()">gst_element_class_add_metadata</a>      (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-class-add-static-metadata" title="gst_element_class_add_static_metadata ()">gst_element_class_add_static_metadata</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
 
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()">gst_element_add_pad</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-create-all-pads" title="gst_element_create_all_pads ()">gst_element_create_all_pads</a>         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstElement.html#gst-element-get-compatible-pad" title="gst_element_get_compatible_pad ()">gst_element_get_compatible_pad</a>      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="returnvalue">GstPadTemplate</span></a> *    <a class="link" href="GstElement.html#gst-element-get-compatible-pad-template" title="gst_element_get_compatible_pad_template ()">gst_element_get_compatible_pad_template</a>
                                                         (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> *compattempl</code></em>);
@@ -182,10 +189,6 @@
                                                          <em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);
 <a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *            <a class="link" href="GstElement.html#gst-element-get-bus" title="gst_element_get_bus ()">gst_element_get_bus</a>                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="returnvalue">GstElementFactory</span></a> * <a class="link" href="GstElement.html#gst-element-get-factory" title="gst_element_get_factory ()">gst_element_get_factory</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-set-index" title="gst_element_set_index ()">gst_element_set_index</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);
-<a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          <a class="link" href="GstElement.html#gst-element-get-index" title="gst_element_get_index ()">gst_element_get_index</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-is-indexable" title="gst_element_is_indexable ()">gst_element_is_indexable</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 #define             <a class="link" href="GstElement.html#gst-element-set-name" title="gst_element_set_name()">gst_element_set_name</a>                (elem,
                                                          name)
 #define             <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()">gst_element_get_name</a>                (elem)
@@ -193,11 +196,9 @@
                                                          parent)
 #define             <a class="link" href="GstElement.html#gst-element-get-parent" title="gst_element_get_parent()">gst_element_get_parent</a>              (elem)
 
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-requires-clock" title="gst_element_requires_clock ()">gst_element_requires_clock</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()">gst_element_set_clock</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);
 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()">gst_element_get_clock</a>               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-provides-clock" title="gst_element_provides_clock ()">gst_element_provides_clock</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()">gst_element_provide_clock</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 
 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()">gst_element_set_state</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
@@ -220,12 +221,6 @@
 <a class="link" href="GstElement.html#GstStateChangeReturn" title="enum GstStateChangeReturn"><span class="returnvalue">GstStateChangeReturn</span></a> <a class="link" href="GstElement.html#gst-element-change-state" title="gst_element_change_state ()">gst_element_change_state</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a> transition</code></em>);
 
-<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-found-tags" title="gst_element_found_tags ()">gst_element_found_tags</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-found-tags-for-pad" title="gst_element_found_tags_for_pad ()">gst_element_found_tags_for_pad</a>      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-
 <span class="returnvalue">void</span>                <a class="link" href="GstElement.html#gst-element-message-full" title="gst_element_message_full ()">gst_element_message_full</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
@@ -238,35 +233,34 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()">gst_element_post_message</a>            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
 
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * <a class="link" href="GstElement.html#gst-element-get-query-types" title="gst_element_get_query_types ()">gst_element_get_query_types</a>        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()">gst_element_query</a>                   (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-convert" title="gst_element_query_convert ()">gst_element_query_convert</a>           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-position" title="gst_element_query_position ()">gst_element_query_position</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-query-duration" title="gst_element_query_duration ()">gst_element_query_duration</a>          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
 
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()">gst_element_send_event</a>              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-seek-simple" title="gst_element_seek_simple ()">gst_element_seek_simple</a>             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> seek_flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> seek_pos</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> seek_pos</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()">gst_element_seek</a>                    (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> cur</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -307,7 +301,7 @@
 applications in order to retain ABI compatibility.
 </p>
 <p>
-All elements have pads (of the type <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>).  These pads link to pads on
+Elements can have pads (of the type <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>).  These pads link to pads on
 other elements.  <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> flow between these linked pads.
 A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> has a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> structures for all their input (or sink)
 and output (or source) pads.
@@ -318,7 +312,7 @@
 An existing pad of an element can be retrieved by name with
 <a class="link" href="GstElement.html#gst-element-get-static-pad" title="gst_element_get_static_pad ()"><code class="function">gst_element_get_static_pad()</code></a>. A new dynamic pad can be created using
 <a class="link" href="GstElement.html#gst-element-request-pad" title="gst_element_request_pad ()"><code class="function">gst_element_request_pad()</code></a> with a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> or 
-<a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a> with the template name such as "src_%d".
+<a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()"><code class="function">gst_element_get_request_pad()</code></a> with the template name such as "src_%u".
 An iterator of all pads can be retrieved with <a class="link" href="GstElement.html#gst-element-iterate-pads" title="gst_element_iterate_pads ()"><code class="function">gst_element_iterate_pads()</code></a>.
 </p>
 <p>
@@ -342,11 +336,11 @@
 You can get and set a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> on an element using <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>
 and <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
 Some elements can provide a clock for the pipeline if
-<a class="link" href="GstElement.html#gst-element-provides-clock" title="gst_element_provides_clock ()"><code class="function">gst_element_provides_clock()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. With the
+the <a class="link" href="GstElement.html#GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS"><span class="type">GST_ELEMENT_FLAG_PROVIDE_CLOCK</span></a> flag is set. With the
 <a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()"><code class="function">gst_element_provide_clock()</code></a> method one can retrieve the clock provided by
 such an element.
-Not all elements require a clock to operate correctly. If
-<a class="link" href="GstElement.html#gst-element-requires-clock" title="gst_element_requires_clock ()"><code class="function">gst_element_requires_clock()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, a clock should be set on the
+Not all elements require a clock to operate correctly. If the
+#<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS"><code class="function">GST_ELEMENT_FLAG_REQUIRE_CLOCK()</code></a> flag is set, a clock should be set on the
 element with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.
 </p>
 <p>
@@ -355,7 +349,7 @@
 specific situations.
 </p>
 <p>
-Last reviewed on 2009-05-29 (0.10.24)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -363,10 +357,10 @@
 <div class="refsect2">
 <a name="GstElement-struct"></a><h3>struct GstElement</h3>
 <pre class="programlisting">struct GstElement {
-  GStaticRecMutex       state_lock;
+  GRecMutex             state_lock;
 
   /* element state */
-  GCond                *state_cond;
+  GCond                 state_cond;
   guint32               state_cookie;
   GstState              target_state;
   GstState              current_state;
@@ -399,16 +393,16 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> <em class="structfield"><code><a name="GstElement-struct.state-lock"></a>state_lock</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> <em class="structfield"><code><a name="GstElement-struct.state-lock"></a>state_lock</code></em>;</span></p></td>
 <td>Used to serialize execution of <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> *<em class="structfield"><code><a name="GstElement-struct.state-cond"></a>state_cond</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstElement-struct.state-cond"></a>state_cond</code></em>;</span></p></td>
 <td>Used to signal completion of a state change</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstElement-struct.state-cookie"></a>state_cookie</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElement-struct.state-cookie"></a>state_cookie</code></em>;</span></p></td>
 <td>Used to detect concurrent execution of
 <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a> and <a class="link" href="GstElement.html#gst-element-get-state" title="gst_element_get_state ()"><code class="function">gst_element_get_state()</code></a>
 </td>
@@ -456,7 +450,7 @@
 <td>the running_time of the last PAUSED state</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstElement-struct.numpads"></a>numpads</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numpads"></a>numpads</code></em>;</span></p></td>
 <td>number of pads of the element, includes both source and sink pads.</td>
 </tr>
 <tr>
@@ -464,7 +458,7 @@
 <td>list of pads</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstElement-struct.numsrcpads"></a>numsrcpads</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsrcpads"></a>numsrcpads</code></em>;</span></p></td>
 <td>number of source pads of the element.</td>
 </tr>
 <tr>
@@ -472,7 +466,7 @@
 <td>list of source pads</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstElement-struct.numsinkpads"></a>numsinkpads</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsinkpads"></a>numsinkpads</code></em>;</span></p></td>
 <td>number of sink pads of the element.</td>
 </tr>
 <tr>
@@ -480,7 +474,7 @@
 <td>list of sink pads</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstElement-struct.pads-cookie"></a>pads_cookie</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElement-struct.pads-cookie"></a>pads_cookie</code></em>;</span></p></td>
 <td>updated whenever the a pad is added or removed</td>
 </tr>
 </tbody>
@@ -525,14 +519,9 @@
   GstClock*             (*provide_clock)        (GstElement *element);
   gboolean              (*set_clock)            (GstElement *element, GstClock *clock);
 
-  /* index */
-  GstIndex*             (*get_index)            (GstElement *element);
-  void                  (*set_index)            (GstElement *element, GstIndex *index);
-
   /* query functions */
   gboolean              (*send_event)           (GstElement *element, GstEvent *event);
 
-  const GstQueryType*   (*get_query_types)      (GstElement *element);
   gboolean              (*query)                (GstElement *element, GstQuery *query);
 };
 </pre>
@@ -565,7 +554,7 @@
 <td>the number of padtemplates</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstElementClass.pad-templ-cookie"></a>pad_templ_cookie</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElementClass.pad-templ-cookie"></a>pad_templ_cookie</code></em>;</span></p></td>
 <td>changed whenever the padtemplates change</td>
 </tr>
 <tr>
@@ -590,7 +579,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.state-changed"></a>state_changed</code></em> ()</span></p></td>
-<td>called immediately after a new state was set. Since: 0.10.35.</td>
+<td>called immediately after a new state was set.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-bus"></a>set_bus</code></em> ()</span></p></td>
@@ -605,22 +594,10 @@
 <td>set the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> on the element</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.get-index"></a>get_index</code></em> ()</span></p></td>
-<td>set a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> on the element</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.set-index"></a>set_index</code></em> ()</span></p></td>
-<td>get the <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> of an element</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.send-event"></a>send_event</code></em> ()</span></p></td>
 <td>send a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to the element</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.get-query-types"></a>get_query_types</code></em> ()</span></p></td>
-<td>get the supported <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of this element</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstElementClass.query"></a>query</code></em> ()</span></p></td>
 <td>perform a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> on the element</td>
 </tr>
@@ -631,12 +608,15 @@
 <div class="refsect2">
 <a name="GstElementFlags"></a><h3>enum GstElementFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_ELEMENT_LOCKED_STATE      = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
-  GST_ELEMENT_IS_SINK           = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
-  GST_ELEMENT_UNPARENTING       = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
-  GST_ELEMENT_IS_SOURCE         = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_ELEMENT_FLAG_UNPARENTING    = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
+  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
+  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
+  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
+  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
+  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
   /* padding */
-  GST_ELEMENT_FLAG_LAST         = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
+  GST_ELEMENT_FLAG_LAST           = (GST_OBJECT_FLAG_LAST &lt;&lt; 10)
 } GstElementFlags;
 </pre>
 <p>
@@ -646,27 +626,42 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-ELEMENT-LOCKED-STATE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_LOCKED_STATE</code></span></p></td>
-<td>ignore state changes from parent
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ELEMENT-IS-SINK:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_IS_SINK</code></span></p></td>
-<td>the element is a sink
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ELEMENT-UNPARENTING:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_UNPARENTING</code></span></p></td>
+<td><p><a name="GST-ELEMENT-FLAG-UNPARENTING:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_UNPARENTING</code></span></p></td>
 <td>Child is being removed from the parent bin.
  <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> on a child already being removed immediately returns FALSE
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-ELEMENT-IS-SOURCE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_IS_SOURCE</code></span></p></td>
+<td><p><a name="GST-ELEMENT-FLAG-LOCKED-STATE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_LOCKED_STATE</code></span></p></td>
+<td>ignore state changes from parent
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-ELEMENT-FLAG-SINK:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_SINK</code></span></p></td>
+<td>the element is a sink
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-ELEMENT-FLAG-SOURCE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_SOURCE</code></span></p></td>
 <td>the element is a source. Since 0.10.31
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_PROVIDE_CLOCK</code></span></p></td>
+<td>the element can provide a clock
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_REQUIRE_CLOCK</code></span></p></td>
+<td>the element requires a clock
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-ELEMENT-FLAG-INDEXABLE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_INDEXABLE</code></span></p></td>
+<td>the element can use an index
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-ELEMENT-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_LAST</code></span></p></td>
 <td>offset to define more flags
 </td>
@@ -833,7 +828,7 @@
     Sinks unblock any <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> wait calls.
   </p></li>
 <li class="listitem"><p>
-    When a sink does not have a pending buffer to play, it returns 
+    When a sink does not have a pending buffer to play, it returns
     <a class="link" href="GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><code class="literal">GST_STATE_CHANGE_ASYNC</code></a> from this state change and completes the state
     change when it receives a new buffer or an <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS"><code class="literal">GST_EVENT_EOS</code></a>.
   </p></li>
@@ -859,7 +854,7 @@
     Elements unblock any waits on devices
   </p></li>
 <li class="listitem"><p>
-    Chain or get_range functions return <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><code class="literal">GST_FLOW_WRONG_STATE</code></a>.
+    Chain or get_range functions return <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><code class="literal">GST_FLOW_FLUSHING</code></a>.
   </p></li>
 <li class="listitem"><p>
     The element pads are deactivated so that streaming becomes impossible and
@@ -1117,7 +1112,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-STATE-GET-COND:CAPS"></a><h3>GST_STATE_GET_COND()</h3>
-<pre class="programlisting">#define GST_STATE_GET_COND(elem)               (GST_ELEMENT_CAST(elem)-&gt;state_cond)
+<pre class="programlisting">#define GST_STATE_GET_COND(elem)               (&amp;GST_ELEMENT_CAST(elem)-&gt;state_cond)
 </pre>
 <p>
 Get the conditional used to signal the completion of a state change.
@@ -1346,7 +1341,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-ELEMENT-IS-LOCKED-STATE:CAPS"></a><h3>GST_ELEMENT_IS_LOCKED_STATE()</h3>
-<pre class="programlisting">#define GST_ELEMENT_IS_LOCKED_STATE(elem)        (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_LOCKED_STATE))
+<pre class="programlisting">#define GST_ELEMENT_IS_LOCKED_STATE(elem)        (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_FLAG_LOCKED_STATE))
 </pre>
 <p>
 Check if the element is in the locked state and therefore will ignore state
@@ -1514,37 +1509,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-class-install-std-props"></a><h3>gst_element_class_install_std_props ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_install_std_props (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_name</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Adds a list of standardized properties with types to the <em class="parameter"><code>klass</code></em>.
-the id is for the property switch in your get_prop method, and
-the flags determine readability / writeability.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
-<td>the <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> to add the properties to.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>first_name</code></em> :</span></p></td>
-<td>the name of the first property.
-in a NULL terminated</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>the id and flags of the first property, followed by
-further 'name', 'id', 'flags' triplets and terminated by NULL.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-class-set-metadata"></a><h3>gst_element_class_set_metadata ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_metadata      (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
@@ -1590,6 +1554,58 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-element-class-set-static-metadata"></a><h3>gst_element_class_set_static_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_set_static_metadata
+                                                        (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longname</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *classification</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *author</code></em>);</pre>
+<p>
+Sets the detailed information for a <a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>This function is for use in _class_init functions only.</div>
+<p>
+</p>
+<p>
+Same as <a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()"><code class="function">gst_element_class_set_metadata()</code></a>, but <em class="parameter"><code>longname</code></em>, <em class="parameter"><code>classification</code></em>,
+<em class="parameter"><code>description</code></em>, and <em class="parameter"><code>author</code></em> must be static strings or inlined strings, as
+they will not be copied. (GStreamer plugins will be made resident once
+loaded, so this function can be used even from dynamically loaded plugins.)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
+<td>class to set metadata for</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>longname</code></em> :</span></p></td>
+<td>The long English name of the element. E.g. "File Sink"</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>classification</code></em> :</span></p></td>
+<td>String describing the type of element, as an unordered list
+separated with slashes ('/'). See draft-klass.txt of the design docs
+for more details and common types. E.g: "Sink/File"</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
+<td>Sentence describing the purpose of the element.
+E.g: "Write stream to a file"</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>author</code></em> :</span></p></td>
+<td>Name and contact details of the author(s). Use \n to separate
+multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-element-class-add-metadata"></a><h3>gst_element_class_add_metadata ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_add_metadata      (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
@@ -1617,6 +1633,40 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-element-class-add-static-metadata"></a><h3>gst_element_class_add_static_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_class_add_static_metadata
+                                                        (<em class="parameter"><code><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
+<p>
+Set <em class="parameter"><code>key</code></em> with <em class="parameter"><code>value</code></em> as metadata in <em class="parameter"><code>klass</code></em>.
+</p>
+<p>
+Same as <a class="link" href="GstElement.html#gst-element-class-add-metadata" title="gst_element_class_add_metadata ()"><code class="function">gst_element_class_add_metadata()</code></a>, but <em class="parameter"><code>value</code></em> must be a static string
+or an inlined string, as it will not be copied. (GStreamer plugins will
+be made resident once loaded, so this function can be used even from
+dynamically loaded plugins.)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
+<td>class to set metadata for</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the key to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>the value to set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-element-add-pad"></a><h3>gst_element_add_pad ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_add_pad                 (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
@@ -1681,7 +1731,7 @@
 <a name="gst-element-get-compatible-pad"></a><h3>gst_element_get_compatible_pad ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_element_get_compatible_pad      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Looks for an unlinked pad to which the given pad can link. It is not
 guaranteed that linking the pads will work, though it should work in most
@@ -1828,11 +1878,6 @@
 <a class="link" href="GstElementFactory.html#gst-element-factory-get-static-pad-templates" title="gst_element_factory_get_static_pad_templates ()"><code class="function">gst_element_factory_get_static_pad_templates()</code></a>.
 </p>
 <p>
-If the <em class="parameter"><code>caps</code></em> are specified and the element implements thew new
-request_new_pad_full virtual method, the element will use them to select
-which pad to create.
-</p>
-<p>
 The pad should be released with <a class="link" href="GstElement.html#gst-element-release-request-pad" title="gst_element_release_request_pad ()"><code class="function">gst_element_release_request_pad()</code></a>.
 </p>
 <div class="variablelist"><table border="0">
@@ -2626,79 +2671,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-set-index"></a><h3>gst_element_set_index ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_set_index               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);</pre>
-<p>
-Set <em class="parameter"><code>index</code></em> on the element. The refcount of the index
-will be increased, any previously set index is unreffed.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-element-get-index"></a><h3>gst_element_get_index ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          gst_element_get_index               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Gets the index from the element.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when no index was set on the
-element. unref after usage.
-MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-element-is-indexable"></a><h3>gst_element_is_indexable ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_is_indexable            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Queries if the element can be indexed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the element can be indexed.
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-set-name"></a><h3>gst_element_set_name()</h3>
 <pre class="programlisting">#define                 gst_element_set_name(elem,name) gst_object_set_name(GST_OBJECT_CAST(elem),name)
 </pre>
@@ -2792,29 +2764,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-requires-clock"></a><h3>gst_element_requires_clock ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_requires_clock          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Query if the element requires a clock.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element requires a clock
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-set-clock"></a><h3>gst_element_set_clock ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_set_clock               (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>);</pre>
@@ -2871,33 +2820,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-provides-clock"></a><h3>gst_element_provides_clock ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_provides_clock          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Query if the element provides a clock. A <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> provided by an
-element can be used as the global <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> for the pipeline.
-An element that can provide a clock is only required to do so in the PAUSED
-state, this means when it is fully negotiated and has allocated the resources
-to operate the clock.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the element provides a clock
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-provide-clock"></a><h3>gst_element_provide_clock ()</h3>
 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *          gst_element_provide_clock           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 <p>
@@ -3291,68 +3213,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-found-tags"></a><h3>gst_element_found_tags ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_found_tags              (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
-<p>
-Posts a message to the bus that new tags were found, and pushes an event
-to all sourcepads. Takes ownership of the <em class="parameter"><code>list</code></em>.
-</p>
-<p>
-This is a utility method for elements. Applications should use the
-<a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>element for which we found the tags.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>list of tags. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-element-found-tags-for-pad"></a><h3>gst_element_found_tags_for_pad ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_element_found_tags_for_pad      (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
-<p>
-Posts a message to the bus that new tags were found and pushes the
-tags as event. Takes ownership of the <em class="parameter"><code>list</code></em>.
-</p>
-<p>
-This is a utility method for elements. Applications should use the
-<a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>element for which to post taglist to bus.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>pad on which to push tag-event. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>the taglist to post on the bus and create event from. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-message-full"></a><h3>gst_element_message_full ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_element_message_full            (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
@@ -3456,31 +3316,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-element-get-query-types"></a><h3>gst_element_get_query_types ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * gst_element_get_query_types        (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Get an array of query types from the element.
-If the element doesn't implement a query types function,
-the query will be forwarded to the peer of a random linked sink pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>An array of <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> elements that should not
-be freed or modified.
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-element-query"></a><h3>gst_element_query ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query                   (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
@@ -3520,9 +3355,9 @@
 <a name="gst-element-query-convert"></a><h3>gst_element_query_convert ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_convert           (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
 <p>
 Queries an element to convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_format</code></em> to <em class="parameter"><code>dest_format</code></em>.
 </p>
@@ -3563,7 +3398,7 @@
 <a name="gst-element-query-position"></a><h3>gst_element_query_position ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_position          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);</pre>
 <p>
 Queries an element for the stream position. If one repeatedly calls this
 function one can also create and reuse it in <a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()"><code class="function">gst_element_query()</code></a>.
@@ -3597,7 +3432,7 @@
 <a name="gst-element-query-duration"></a><h3>gst_element_query_duration ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_query_duration          (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
 <p>
 Queries an element for the total stream duration.
 </p>
@@ -3665,7 +3500,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_element_seek_simple             (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> seek_flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> seek_pos</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> seek_pos</code></em>);</pre>
 <p>
 Simple API to perform a seek on the given element, meaning it just seeks
 to the given position relative to the start of the stream. For more complex
@@ -3726,9 +3561,9 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> cur</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
 <p>
 Sends a seek event to an element. See <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> for the details of
 the parameters. The seek event is sent to the element using
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index 55b914a..7e2127f 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstElementFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstElement.html" title="GstElement">
 <link rel="next" href="gstreamer-GstGError.html" title="GstGError">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstElement.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstGError.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -54,8 +54,8 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstElementFactory.html#gst-element-factory-get-num-pad-templates" title="gst_element_factory_get_num_pad_templates ()">gst_element_factory_get_num_pad_templates</a>
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-type" title="gst_element_factory_get_uri_type ()">gst_element_factory_get_uri_type</a>    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-protocols" title="gst_element_factory_get_uri_protocols ()">gst_element_factory_get_uri_protocols</a>
+<a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-type" title="gst_element_factory_get_uri_type ()">gst_element_factory_get_uri_type</a>    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-protocols" title="gst_element_factory_get_uri_protocols ()">gst_element_factory_get_uri_protocols</a>
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstElementFactory.html#gst-element-factory-has-interface" title="gst_element_factory_has_interface ()">gst_element_factory_has_interface</a>   (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interfacename</code></em>);
@@ -139,21 +139,40 @@
 <p>
 </p>
 <div class="example">
-<a name="id531644"></a><p class="title"><b>Example 6. Using an element factory</b></p>
-<div class="example-contents"><pre class="programlisting">
-  #include &lt;gst/gst.h&gt;
+<a name="idp13088976"></a><p class="title"><b>Example 6. Using an element factory</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
 
-  GstElement *src;
-  GstElementFactory *srcfactory;
+GstElement <span class="gtkdoc opt">*</span>src<span class="gtkdoc opt">;</span>
+GstElementFactory <span class="gtkdoc opt">*</span>srcfactory<span class="gtkdoc opt">;</span>
 
-  gst_init (&amp;argc, &amp;argv);
+<span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
 
-  srcfactory = gst_element_factory_find ("filesrc");
-  g_return_if_fail (srcfactory != NULL);
-  src = gst_element_factory_create (srcfactory, "src");
-  g_return_if_fail (src != NULL);
-  ...
-</pre></div>
+srcfactory <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElementFactory.html#gst-element-factory-find">gst_element_factory_find</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;filesrc&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-return-if-fail">g_return_if_fail</a></span> <span class="gtkdoc opt">(</span>srcfactory <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">);</span>
+src <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElementFactory.html#gst-element-factory-create">gst_element_factory_create</a></span> <span class="gtkdoc opt">(</span>srcfactory<span class="gtkdoc opt">,</span> <span class="string">&quot;src&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-return-if-fail">g_return_if_fail</a></span> <span class="gtkdoc opt">(</span>src <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -265,6 +284,28 @@
 <a name="gst-element-factory-get-metadata"></a><h3>gst_element_factory_get_metadata ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_element_factory_get_metadata    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
+<p>
+Get the metadata on <em class="parameter"><code>factory</code></em> with <em class="parameter"><code>key</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory,</code></em> :</span></p></td>
+<td>a <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the metadata with <em class="parameter"><code>key</code></em> on <em class="parameter"><code>factory</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there was no
+metadata with the given <em class="parameter"><code>key</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -292,7 +333,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-element-factory-get-uri-type"></a><h3>gst_element_factory_get_uri_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_element_factory_get_uri_type    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          gst_element_factory_get_uri_type    (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
 <p>
 Gets the type of URIs the element supports or <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS"><span class="type">GST_URI_UNKNOWN</span></a> if none.
 </p>
@@ -314,7 +355,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-element-factory-get-uri-protocols"></a><h3>gst_element_factory_get_uri_protocols ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            gst_element_factory_get_uri_protocols
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * gst_element_factory_get_uri_protocols
                                                         (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
 <p>
 Gets a NULL-terminated array of protocols this element supports or NULL if
@@ -394,7 +435,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or NULL if the element couldn't
-be created. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+be created. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -426,7 +467,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or NULL if unable to create element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>new <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> or NULL if unable to create element. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -694,7 +735,7 @@
 </p>
 <p>
 Note: Do not use this if you wish to not filter against any of the defined
-media types. If you wish to do this, simply don't specify any 
+media types. If you wish to do this, simply don't specify any
 GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
 </p>
 <p class="since">Since 0.10.31</p>
diff --git a/docs/gst/html/GstGhostPad.html b/docs/gst/html/GstGhostPad.html
index e26beb1..45c2f0d 100644
--- a/docs/gst/html/GstGhostPad.html
+++ b/docs/gst/html/GstGhostPad.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstGhostPad</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstFormat.html" title="GstFormat">
-<link rel="next" href="GstIndex.html" title="GstIndex">
+<link rel="next" href="gstreamer-GstIterator.html" title="GstIterator">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="gstreamer-GstFormat.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="GstIndex.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstIterator.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#GstGhostPad.synopsis" class="shortcut">Top</a>
@@ -61,38 +61,36 @@
 <span class="returnvalue">void</span>                <a class="link" href="GstGhostPad.html#gst-ghost-pad-unlink-default" title="gst_ghost_pad_unlink_default ()">gst_ghost_pad_unlink_default</a>        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="returnvalue">GstPadLinkReturn</span></a>    <a class="link" href="GstGhostPad.html#gst-ghost-pad-link-default" title="gst_ghost_pad_link_default ()">gst_ghost_pad_link_default</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *peer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-pull-default" title="gst_ghost_pad_activate_pull_default ()">gst_ghost_pad_activate_pull_default</a> (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-mode-default" title="gst_ghost_pad_activate_mode_default ()">gst_ghost_pad_activate_mode_default</a> (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-push-default" title="gst_ghost_pad_activate_push_default ()">gst_ghost_pad_activate_push_default</a> (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-push-default" title="gst_ghost_pad_internal_activate_push_default ()">gst_ghost_pad_internal_activate_push_default</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default" title="gst_ghost_pad_internal_activate_mode_default ()">gst_ghost_pad_internal_activate_mode_default</a>
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-pull-default" title="gst_ghost_pad_internal_activate_pull_default ()">gst_ghost_pad_internal_activate_pull_default</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a class="link" href="GstGhostPad.html#GstProxyPad"><span class="returnvalue">GstProxyPad</span></a> *       <a class="link" href="GstGhostPad.html#gst-proxy-pad-get-internal" title="gst_proxy_pad_get_internal ()">gst_proxy_pad_get_internal</a>          (<em class="parameter"><code><a class="link" href="GstGhostPad.html#GstProxyPad"><span class="type">GstProxyPad</span></a> *pad</code></em>);
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * <a class="link" href="GstGhostPad.html#gst-proxy-pad-query-type-default" title="gst_proxy_pad_query_type_default ()">gst_proxy_pad_query_type_default</a>   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-proxy-pad-event-default" title="gst_proxy_pad_event_default ()">gst_proxy_pad_event_default</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-proxy-pad-query-default" title="gst_proxy_pad_query_default ()">gst_proxy_pad_query_default</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default" title="gst_proxy_pad_iterate_internal_links_default ()">gst_proxy_pad_iterate_internal_links_default</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstGhostPad.html#gst-proxy-pad-chain-default" title="gst_proxy_pad_chain_default ()">gst_proxy_pad_chain_default</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstGhostPad.html#gst-proxy-pad-chain-list-default" title="gst_proxy_pad_chain_list_default ()">gst_proxy_pad_chain_list_default</a>    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstGhostPad.html#gst-proxy-pad-getrange-default" title="gst_proxy_pad_getrange_default ()">gst_proxy_pad_getrange_default</a>      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstGhostPad.html#gst-proxy-pad-getcaps-default" title="gst_proxy_pad_getcaps_default ()">gst_proxy_pad_getcaps_default</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-proxy-pad-acceptcaps-default" title="gst_proxy_pad_acceptcaps_default ()">gst_proxy_pad_acceptcaps_default</a>    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstGhostPad.html#gst-proxy-pad-fixatecaps-default" title="gst_proxy_pad_fixatecaps_default ()">gst_proxy_pad_fixatecaps_default</a>    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstGhostPad.html#gst-proxy-pad-unlink-default" title="gst_proxy_pad_unlink_default ()">gst_proxy_pad_unlink_default</a>        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 </pre>
 </div>
@@ -179,7 +177,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or NULL in case of an error. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or NULL in case of an error. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -389,7 +387,7 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to link.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -417,15 +415,17 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-ghost-pad-activate-pull-default"></a><h3>gst_ghost_pad_activate_pull_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_activate_pull_default (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a name="gst-ghost-pad-activate-mode-default"></a><h3>gst_ghost_pad_activate_mode_default ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_activate_mode_default (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>
-Invoke the default activate pull function of a ghost pad.
+Invoke the default activate mode function of a ghost pad.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -435,6 +435,14 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>the requested activation mode</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
 <td>whether the pad should be active or not.</td>
 </tr>
@@ -445,44 +453,17 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-ghost-pad-activate-push-default"></a><h3>gst_ghost_pad_activate_push_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_activate_push_default (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>
-Invoke the default activate push function of a ghost pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
-<td>whether the pad should be active or not.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the operation was successful.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-ghost-pad-internal-activate-push-default"></a><h3>gst_ghost_pad_internal_activate_push_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_internal_activate_push_default
+<a name="gst-ghost-pad-internal-activate-mode-default"></a><h3>gst_ghost_pad_internal_activate_mode_default ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_internal_activate_mode_default
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>
-Invoke the default activate push function of a proxy pad that is
+Invoke the default activate mode function of a proxy pad that is
 owned by a ghost pad.
 </p>
 <div class="variablelist"><table border="0">
@@ -493,34 +474,12 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
-<td>whether the pad should be active or not.</td>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the operation was successful.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-ghost-pad-internal-activate-pull-default"></a><h3>gst_ghost_pad_internal_activate_pull_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_ghost_pad_internal_activate_pull_default
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>
-Invoke the default activate pull function of a proxy pad that is
-owned by a ghost pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>the requested activation mode</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
@@ -533,7 +492,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -562,36 +520,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-query-type-default"></a><h3>gst_proxy_pad_query_type_default ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * gst_proxy_pad_query_type_default   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Invoke the default query type handler of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a zero-terminated array
-of <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-event-default"></a><h3>gst_proxy_pad_event_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_proxy_pad_event_default         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
 <p>
 Invoke the default event of the proxy pad.
@@ -604,6 +539,10 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to push the event to.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to send to the pad. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
@@ -614,12 +553,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-query-default"></a><h3>gst_proxy_pad_query_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_proxy_pad_query_default         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
 Invoke the default query function of the proxy pad.
@@ -632,6 +572,10 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to invoke the default query on.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> to perform. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
@@ -642,18 +586,42 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-iterate-internal-links-default"></a><h3>gst_proxy_pad_iterate_internal_links_default ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_proxy_pad_iterate_internal_links_default
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);</pre>
+<p>
+Invoke the default iterate internal links function of the proxy pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the internal links of.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or NULL if <em class="parameter"><code>pad</code></em> has no parent. Unref each
+returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-chain-default"></a><h3>gst_proxy_pad_chain_default ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_proxy_pad_chain_default         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Invoke the default chain function of the proxy pad.
@@ -666,6 +634,10 @@
 <td>a sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, returns GST_FLOW_ERROR if not.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to send, return GST_FLOW_ERROR
 if not. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -677,12 +649,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-chain-list-default"></a><h3>gst_proxy_pad_chain_list_default ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_proxy_pad_chain_list_default    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Invoke the default chain list function of the proxy pad.
@@ -695,6 +668,10 @@
 <td>a sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, returns GST_FLOW_ERROR if not.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> to send, return GST_FLOW_ERROR
 if not. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -706,96 +683,19 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-proxy-pad-getrange-default"></a><h3>gst_proxy_pad_getrange_default ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_proxy_pad_getrange_default      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-proxy-pad-getcaps-default"></a><h3>gst_proxy_pad_getcaps_default ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_proxy_pad_getcaps_default       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>
-Invoke the default getcaps function of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> filter.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the caps of the pad with incremented ref-count. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-acceptcaps-default"></a><h3>gst_proxy_pad_acceptcaps_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_proxy_pad_acceptcaps_default    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Invoke the default acceptcaps function of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check on the pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the pad can accept the caps.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-fixatecaps-default"></a><h3>gst_proxy_pad_fixatecaps_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_proxy_pad_fixatecaps_default    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Invoke the default fixatecaps function of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to fixate</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the  <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to fixate</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.35</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-proxy-pad-unlink-default"></a><h3>gst_proxy_pad_unlink_default ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_proxy_pad_unlink_default        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
@@ -808,7 +708,7 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to unlink</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstIndex.html b/docs/gst/html/GstIndex.html
deleted file mode 100644
index 524d8bd..0000000
--- a/docs/gst/html/GstIndex.html
+++ /dev/null
@@ -1,1448 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstIndex</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="GstGhostPad.html" title="GstGhostPad">
-<link rel="next" href="GstIndexFactory.html" title="GstIndexFactory">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GstGhostPad.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="GstIndexFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GstIndex.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GstIndex.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GstIndex.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GstIndex.properties" class="shortcut">Properties</a>
-                   | 
-                  <a href="#GstIndex.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="GstIndex"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="GstIndex.top_of_page"></a>GstIndex</span></h2>
-<p>GstIndex — Generate indexes on objects</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GstIndex.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/gst.h&gt;
-
-struct              <a class="link" href="GstIndex.html#GstIndex-struct" title="struct GstIndex">GstIndex</a>;
-struct              <a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry">GstIndexEntry</a>;
-struct              <a class="link" href="GstIndex.html#GstIndexGroup" title="struct GstIndexGroup">GstIndexGroup</a>;
-enum                <a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty">GstIndexCertainty</a>;
-enum                <a class="link" href="GstIndex.html#GstIndexEntryType" title="enum GstIndexEntryType">GstIndexEntryType</a>;
-enum                <a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod">GstIndexLookupMethod</a>;
-#define             <a class="link" href="GstIndex.html#GST-INDEX-NASSOCS:CAPS" title="GST_INDEX_NASSOCS()">GST_INDEX_NASSOCS</a>                   (entry)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-ASSOC-FLAGS:CAPS" title="GST_INDEX_ASSOC_FLAGS()">GST_INDEX_ASSOC_FLAGS</a>               (entry)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-ASSOC-FORMAT:CAPS" title="GST_INDEX_ASSOC_FORMAT()">GST_INDEX_ASSOC_FORMAT</a>              (entry,
-                                                         i)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-ASSOC-VALUE:CAPS" title="GST_INDEX_ASSOC_VALUE()">GST_INDEX_ASSOC_VALUE</a>               (entry,
-                                                         i)
-struct              <a class="link" href="GstIndex.html#GstIndexAssociation" title="struct GstIndexAssociation">GstIndexAssociation</a>;
-enum                <a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags">GstAssocFlags</a>;
-#define             <a class="link" href="GstIndex.html#GST-INDEX-FORMAT-FORMAT:CAPS" title="GST_INDEX_FORMAT_FORMAT()">GST_INDEX_FORMAT_FORMAT</a>             (entry)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-FORMAT-KEY:CAPS" title="GST_INDEX_FORMAT_KEY()">GST_INDEX_FORMAT_KEY</a>                (entry)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-ID-INVALID:CAPS" title="GST_INDEX_ID_INVALID">GST_INDEX_ID_INVALID</a>
-#define             <a class="link" href="GstIndex.html#GST-INDEX-ID-DESCRIPTION:CAPS" title="GST_INDEX_ID_DESCRIPTION()">GST_INDEX_ID_DESCRIPTION</a>            (entry)
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()">*GstIndexFilter</a>)                   (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-enum                <a class="link" href="GstIndex.html#GstIndexResolverMethod" title="enum GstIndexResolverMethod">GstIndexResolverMethod</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()">*GstIndexResolver</a>)                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **writer_string</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-enum                <a class="link" href="GstIndex.html#GstIndexFlags" title="enum GstIndexFlags">GstIndexFlags</a>;
-#define             <a class="link" href="GstIndex.html#GST-INDEX-IS-READABLE:CAPS" title="GST_INDEX_IS_READABLE()">GST_INDEX_IS_READABLE</a>               (obj)
-#define             <a class="link" href="GstIndex.html#GST-INDEX-IS-WRITABLE:CAPS" title="GST_INDEX_IS_WRITABLE()">GST_INDEX_IS_WRITABLE</a>               (obj)
-<a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          <a class="link" href="GstIndex.html#gst-index-new" title="gst_index_new ()">gst_index_new</a>                       (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-commit" title="gst_index_commit ()">gst_index_commit</a>                    (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstIndex.html#gst-index-get-group" title="gst_index_get_group ()">gst_index_get_group</a>                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstIndex.html#gst-index-new-group" title="gst_index_new_group ()">gst_index_new_group</a>                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstIndex.html#gst-index-set-group" title="gst_index_set_group ()">gst_index_set_group</a>                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> groupnum</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-set-certainty" title="gst_index_set_certainty ()">gst_index_set_certainty</a>             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty"><span class="type">GstIndexCertainty</span></a> certainty</code></em>);
-<a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty"><span class="returnvalue">GstIndexCertainty</span></a>   <a class="link" href="GstIndex.html#gst-index-get-certainty" title="gst_index_get_certainty ()">gst_index_get_certainty</a>             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-set-filter" title="gst_index_set_filter ()">gst_index_set_filter</a>                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()"><span class="type">GstIndexFilter</span></a> filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-set-filter-full" title="gst_index_set_filter_full ()">gst_index_set_filter_full</a>           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()"><span class="type">GstIndexFilter</span></a> filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> user_data_destroy</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-set-resolver" title="gst_index_set_resolver ()">gst_index_set_resolver</a>              (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a> resolver</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-set-resolver-full" title="gst_index_set_resolver_full ()">gst_index_set_resolver_full</a>         (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a> resolver</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> user_data_destroy</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstIndex.html#gst-index-get-writer-id" title="gst_index_get_writer_id ()">gst_index_get_writer_id</a>             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *id</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-add-format" title="gst_index_add_format ()">gst_index_add_format</a>                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-add-association" title="gst_index_add_association ()">gst_index_add_association</a>           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-add-associationv" title="gst_index_add_associationv ()">gst_index_add_associationv</a>          (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="GstIndex.html#GstIndexAssociation" title="struct GstIndexAssociation"><span class="type">GstIndexAssociation</span></a> *list</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-add-object" title="gst_index_add_object ()">gst_index_add_object</a>                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> object</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-add-id" title="gst_index_add_id ()">gst_index_add_id</a>                    (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-get-assoc-entry" title="gst_index_get_assoc_entry ()">gst_index_get_assoc_entry</a>           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod"><span class="type">GstIndexLookupMethod</span></a> method</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-get-assoc-entry-full" title="gst_index_get_assoc_entry_full ()">gst_index_get_assoc_entry_full</a>      (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod"><span class="type">GstIndexLookupMethod</span></a> method</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     <a class="link" href="GstIndex.html#gst-index-entry-copy" title="gst_index_entry_copy ()">gst_index_entry_copy</a>                (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndex.html#gst-index-entry-free" title="gst_index_entry_free ()">gst_index_entry_free</a>                (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstIndex.html#gst-index-entry-assoc-map" title="gst_index_entry_assoc_map ()">gst_index_entry_assoc_map</a>           (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndex.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
-               +----GstIndex
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndex.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GstIndex.html#GstIndex--resolver" title='The "resolver" property'>resolver</a>"                 <a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a>      : Read / Write
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndex.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="GstIndex.html#GstIndex-entry-added" title='The "entry-added" signal'>entry-added</a>"                                    : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndex.description"></a><h2>Description</h2>
-<p>
-GstIndex is used to generate a stream index of one or more elements
-in a pipeline.
-</p>
-<p>
-Elements will overload the set_index and get_index virtual methods in
-<a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>. When streaming data, the element will add index entries if it
-has an index set.
-</p>
-<p>
-Each element that adds to the index will do that using a writer_id. The
-writer_id is obtained from <a class="link" href="GstIndex.html#gst-index-get-writer-id" title="gst_index_get_writer_id ()"><code class="function">gst_index_get_writer_id()</code></a>.
-</p>
-<p>
-The application that wants to index the stream will create a new index object
-using <a class="link" href="GstIndex.html#gst-index-new" title="gst_index_new ()"><code class="function">gst_index_new()</code></a> or <a class="link" href="GstIndexFactory.html#gst-index-factory-make" title="gst_index_factory_make ()"><code class="function">gst_index_factory_make()</code></a>. The index is assigned to a
-specific element, a bin or the whole pipeline. This will cause indexable
-elements to add entires to the index while playing.
-</p>
-</div>
-<div class="refsect1">
-<a name="GstIndex.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstIndex-struct"></a><h3>struct GstIndex</h3>
-<pre class="programlisting">struct GstIndex;</pre>
-<p>
-Opaque <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexEntry"></a><h3>struct GstIndexEntry</h3>
-<pre class="programlisting">struct GstIndexEntry {
-};
-</pre>
-<p>
-The basic element of an index.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexGroup"></a><h3>struct GstIndexGroup</h3>
-<pre class="programlisting">struct GstIndexGroup {
-};
-</pre>
-<p>
-A group of related entries in an index.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexCertainty"></a><h3>enum GstIndexCertainty</h3>
-<pre class="programlisting">typedef enum {
-  GST_INDEX_UNKNOWN,
-  GST_INDEX_CERTAIN,
-  GST_INDEX_FUZZY
-} GstIndexCertainty;
-</pre>
-<p>
-The certainty of a group in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-INDEX-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_INDEX_UNKNOWN</code></span></p></td>
-<td>accuracy is not known
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-CERTAIN:CAPS"></a><span class="term"><code class="literal">GST_INDEX_CERTAIN</code></span></p></td>
-<td>accuracy is perfect
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-FUZZY:CAPS"></a><span class="term"><code class="literal">GST_INDEX_FUZZY</code></span></p></td>
-<td>accuracy is fuzzy
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexEntryType"></a><h3>enum GstIndexEntryType</h3>
-<pre class="programlisting">typedef enum {
-  GST_INDEX_ENTRY_ID,
-  GST_INDEX_ENTRY_ASSOCIATION,
-  GST_INDEX_ENTRY_OBJECT,
-  GST_INDEX_ENTRY_FORMAT
-} GstIndexEntryType;
-</pre>
-<p>
-The different types of entries in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-INDEX-ENTRY-ID:CAPS"></a><span class="term"><code class="literal">GST_INDEX_ENTRY_ID</code></span></p></td>
-<td>This entry is an id that maps an index id to its owner object
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-ENTRY-ASSOCIATION:CAPS"></a><span class="term"><code class="literal">GST_INDEX_ENTRY_ASSOCIATION</code></span></p></td>
-<td>This entry is an association between formats
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-ENTRY-OBJECT:CAPS"></a><span class="term"><code class="literal">GST_INDEX_ENTRY_OBJECT</code></span></p></td>
-<td>An object
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-ENTRY-FORMAT:CAPS"></a><span class="term"><code class="literal">GST_INDEX_ENTRY_FORMAT</code></span></p></td>
-<td>A format definition
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexLookupMethod"></a><h3>enum GstIndexLookupMethod</h3>
-<pre class="programlisting">typedef enum {
-  GST_INDEX_LOOKUP_EXACT,
-  GST_INDEX_LOOKUP_BEFORE,
-  GST_INDEX_LOOKUP_AFTER
-} GstIndexLookupMethod;
-</pre>
-<p>
-Specify the method to find an index entry in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-INDEX-LOOKUP-EXACT:CAPS"></a><span class="term"><code class="literal">GST_INDEX_LOOKUP_EXACT</code></span></p></td>
-<td>There has to be an exact indexentry with the given format/value
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-LOOKUP-BEFORE:CAPS"></a><span class="term"><code class="literal">GST_INDEX_LOOKUP_BEFORE</code></span></p></td>
-<td>The exact entry or the one before it
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-LOOKUP-AFTER:CAPS"></a><span class="term"><code class="literal">GST_INDEX_LOOKUP_AFTER</code></span></p></td>
-<td>The exact entry or the one after it
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-NASSOCS:CAPS"></a><h3>GST_INDEX_NASSOCS()</h3>
-<pre class="programlisting">#define GST_INDEX_NASSOCS(entry)                ((entry)-&gt;data.assoc.nassocs)
-</pre>
-<p>
-Get the number of associations in the entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-ASSOC-FLAGS:CAPS"></a><h3>GST_INDEX_ASSOC_FLAGS()</h3>
-<pre class="programlisting">#define GST_INDEX_ASSOC_FLAGS(entry)            ((entry)-&gt;data.assoc.flags)
-</pre>
-<p>
-Get the flags for this entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-ASSOC-FORMAT:CAPS"></a><h3>GST_INDEX_ASSOC_FORMAT()</h3>
-<pre class="programlisting">#define GST_INDEX_ASSOC_FORMAT(entry,i)         ((entry)-&gt;data.assoc.assocs[(i)].format)
-</pre>
-<p>
-Get the i-th format of the entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
-<td>The format index</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-ASSOC-VALUE:CAPS"></a><h3>GST_INDEX_ASSOC_VALUE()</h3>
-<pre class="programlisting">#define GST_INDEX_ASSOC_VALUE(entry,i)          ((entry)-&gt;data.assoc.assocs[(i)].value)
-</pre>
-<p>
-Get the i-th value of the entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
-<td>The value index</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexAssociation"></a><h3>struct GstIndexAssociation</h3>
-<pre class="programlisting">struct GstIndexAssociation {
-  GstFormat     format;
-  gint64        value;
-};
-</pre>
-<p>
-An association in an entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstIndexAssociation.format"></a>format</code></em>;</span></p></td>
-<td>the format of the association</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstIndexAssociation.value"></a>value</code></em>;</span></p></td>
-<td>the value of the association</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAssocFlags"></a><h3>enum GstAssocFlags</h3>
-<pre class="programlisting">typedef enum {
-  GST_ASSOCIATION_FLAG_NONE       = 0,
-  GST_ASSOCIATION_FLAG_KEY_UNIT   = (1 &lt;&lt; 0),
-  GST_ASSOCIATION_FLAG_DELTA_UNIT = (1 &lt;&lt; 1),
-
-  /* new flags should start here */
-  GST_ASSOCIATION_FLAG_LAST     = (1 &lt;&lt; 8)
-} GstAssocFlags;
-</pre>
-<p>
-Flags for an association entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-ASSOCIATION-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_ASSOCIATION_FLAG_NONE</code></span></p></td>
-<td>no extra flags
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ASSOCIATION-FLAG-KEY-UNIT:CAPS"></a><span class="term"><code class="literal">GST_ASSOCIATION_FLAG_KEY_UNIT</code></span></p></td>
-<td>the entry marks a key unit, a key unit is one
- that marks a place where one can randomly seek to.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ASSOCIATION-FLAG-DELTA-UNIT:CAPS"></a><span class="term"><code class="literal">GST_ASSOCIATION_FLAG_DELTA_UNIT</code></span></p></td>
-<td>the entry marks a delta unit, a delta unit
- is one that marks a place where one can relatively seek to.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ASSOCIATION-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_ASSOCIATION_FLAG_LAST</code></span></p></td>
-<td>extra user defined flags should start here.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-FORMAT-FORMAT:CAPS"></a><h3>GST_INDEX_FORMAT_FORMAT()</h3>
-<pre class="programlisting">#define GST_INDEX_FORMAT_FORMAT(entry)          ((entry)-&gt;data.format.format)
-</pre>
-<p>
-Get the format of the format entry
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-FORMAT-KEY:CAPS"></a><h3>GST_INDEX_FORMAT_KEY()</h3>
-<pre class="programlisting">#define GST_INDEX_FORMAT_KEY(entry)             ((entry)-&gt;data.format.key)
-</pre>
-<p>
-Get the key of the format entry
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-ID-INVALID:CAPS"></a><h3>GST_INDEX_ID_INVALID</h3>
-<pre class="programlisting">#define GST_INDEX_ID_INVALID                    (-1)
-</pre>
-<p>
-Constant for an invalid index id
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-ID-DESCRIPTION:CAPS"></a><h3>GST_INDEX_ID_DESCRIPTION()</h3>
-<pre class="programlisting">#define GST_INDEX_ID_DESCRIPTION(entry)         ((entry)-&gt;data.id.description)
-</pre>
-<p>
-Get the description of the id entry
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to query</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexFilter"></a><h3>GstIndexFilter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstIndexFilter)                   (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Function to filter out entries in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>The index being queried</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>The entry to be added.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data passed to the function.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>This function should return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the entry is to be added
-to the index, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexResolverMethod"></a><h3>enum GstIndexResolverMethod</h3>
-<pre class="programlisting">typedef enum {
-  GST_INDEX_RESOLVER_CUSTOM,
-  GST_INDEX_RESOLVER_GTYPE,
-  GST_INDEX_RESOLVER_PATH
-} GstIndexResolverMethod;
-</pre>
-<p>
-The method used to resolve index writers
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-INDEX-RESOLVER-CUSTOM:CAPS"></a><span class="term"><code class="literal">GST_INDEX_RESOLVER_CUSTOM</code></span></p></td>
-<td>Use a custom resolver
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-RESOLVER-GTYPE:CAPS"></a><span class="term"><code class="literal">GST_INDEX_RESOLVER_GTYPE</code></span></p></td>
-<td>Resolve based on the GType of the object
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-RESOLVER-PATH:CAPS"></a><span class="term"><code class="literal">GST_INDEX_RESOLVER_PATH</code></span></p></td>
-<td>Resolve on the path in graph
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexResolver"></a><h3>GstIndexResolver ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstIndexResolver)                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **writer_string</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Function to resolve ids to writer descriptions.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index being queried.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
-<td>The object that wants to write</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>writer_string</code></em> :</span></p></td>
-<td>A description of the writer.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user_data as registered</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if an id could be assigned to the writer.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstIndexFlags"></a><h3>enum GstIndexFlags</h3>
-<pre class="programlisting">typedef enum {
-  GST_INDEX_WRITABLE    = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
-  GST_INDEX_READABLE    = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
-
-  GST_INDEX_FLAG_LAST   = (GST_OBJECT_FLAG_LAST &lt;&lt; 8)
-} GstIndexFlags;
-</pre>
-<p>
-Flags for this index
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-INDEX-WRITABLE:CAPS"></a><span class="term"><code class="literal">GST_INDEX_WRITABLE</code></span></p></td>
-<td>The index is writable
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-READABLE:CAPS"></a><span class="term"><code class="literal">GST_INDEX_READABLE</code></span></p></td>
-<td>The index is readable
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INDEX-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_INDEX_FLAG_LAST</code></span></p></td>
-<td>First flag that can be used by subclasses
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-IS-READABLE:CAPS"></a><h3>GST_INDEX_IS_READABLE()</h3>
-<pre class="programlisting">#define GST_INDEX_IS_READABLE(obj)    (GST_OBJECT_FLAG_IS_SET (obj, GST_INDEX_READABLE))
-</pre>
-<p>
-Check if the index can be read from
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>The index to check</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-INDEX-IS-WRITABLE:CAPS"></a><h3>GST_INDEX_IS_WRITABLE()</h3>
-<pre class="programlisting">#define GST_INDEX_IS_WRITABLE(obj)    (GST_OBJECT_FLAG_IS_SET (obj, GST_INDEX_WRITABLE))
-</pre>
-<p>
-Check if the index can be written to
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>The index to check</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-new"></a><h3>gst_index_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          gst_index_new                       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new dummy index object. Use <a class="link" href="GstElement.html#gst-element-set-index" title="gst_element_set_index ()"><code class="function">gst_element_set_index()</code></a> to assign that
-to an element or pipeline. This index is not storing anything, but will
-still emit e.g. the <a class="link" href="GstIndex.html#GstIndex-entry-added" title='The "entry-added" signal'><span class="type">"entry-added"</span></a> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new index object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-commit"></a><h3>gst_index_commit ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_commit                    (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
-<p>
-Tell the index that the writer with the given id is done
-with this index and is not going to write any more entries
-to it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to commit</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the writer that commited the index</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-get-group"></a><h3>gst_index_get_group ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_index_get_group                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);</pre>
-<p>
-Get the id of the current group.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to get the current group from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the id of the current group.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-new-group"></a><h3>gst_index_new_group ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_index_new_group                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);</pre>
-<p>
-Create a new group for the given index. It will be
-set as the current group.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to create the new group in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the id of the newly created group.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-group"></a><h3>gst_index_set_group ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_index_set_group                 (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> groupnum</code></em>);</pre>
-<p>
-Set the current groupnumber to the given argument.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to set the new group in</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>groupnum</code></em> :</span></p></td>
-<td>the groupnumber to set</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the operation succeeded, FALSE if the group
-did not exist.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-certainty"></a><h3>gst_index_set_certainty ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_set_certainty             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty"><span class="type">GstIndexCertainty</span></a> certainty</code></em>);</pre>
-<p>
-Set the certainty of the given index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to set the certainty on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>certainty</code></em> :</span></p></td>
-<td>the certainty to set</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-get-certainty"></a><h3>gst_index_get_certainty ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty"><span class="returnvalue">GstIndexCertainty</span></a>   gst_index_get_certainty             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>);</pre>
-<p>
-Get the certainty of the given index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to get the certainty of</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the certainty of the index.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-filter"></a><h3>gst_index_set_filter ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_set_filter                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()"><span class="type">GstIndexFilter</span></a> filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to register the filter on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>the filter to register</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the filter function</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-filter-full"></a><h3>gst_index_set_filter_full ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_set_filter_full           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()"><span class="type">GstIndexFilter</span></a> filter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> user_data_destroy</code></em>);</pre>
-<p>
-Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to register the filter on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>the filter to register</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the filter function</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data_destroy</code></em> :</span></p></td>
-<td>function to call when <em class="parameter"><code>user_data</code></em> is unset</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-resolver"></a><h3>gst_index_set_resolver ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_set_resolver              (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a> resolver</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Lets the app register a custom function to map index
-ids to writer descriptions.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to register the resolver on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
-<td>the resolver to register</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the resolver function</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-set-resolver-full"></a><h3>gst_index_set_resolver_full ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_set_resolver_full         (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a> resolver</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> user_data_destroy</code></em>);</pre>
-<p>
-Lets the app register a custom function to map index
-ids to writer descriptions.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to register the resolver on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
-<td>the resolver to register</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>data passed to the resolver function</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data_destroy</code></em> :</span></p></td>
-<td>destroy function for <em class="parameter"><code>user_data</code></em>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-get-writer-id"></a><h3>gst_index_get_writer_id ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_index_get_writer_id             (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *id</code></em>);</pre>
-<p>
-Before entries can be added to the index, a writer
-should obtain a unique id. The methods to add new entries
-to the index require this id as an argument.
-</p>
-<p>
-The application can implement a custom function to map the writer object
-to a string. That string will be used to register or look up an id
-in the index.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>
-The caller must not hold <em class="parameter"><code>writer</code></em>'s <a class="link" href="GstObject.html#GST-OBJECT-LOCK:CAPS" title="GST_OBJECT_LOCK()"><span class="type">GST_OBJECT_LOCK</span></a>, as the default
-resolver may call functions that take the object lock as well, and
-the lock is not recursive.
-</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to get a unique write id for</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>writer</code></em> :</span></p></td>
-<td>the GstObject to allocate an id for</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>a pointer to a gint to hold the id</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the writer would be mapped to an id.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-add-format"></a><h3>gst_index_add_format ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_add_format                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
-<p>
-Adds a format entry into the index. This function is
-used to map dynamic GstFormat ids to their original
-format key.
-</p>
-<p>
-Free-function: gst_index_entry_free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to add the entry to</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>the format to add to the index</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the newly added entry in the index. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-add-association"></a><h3>gst_index_add_association ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_add_association           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Associate given format/value pairs with each other.
-Be sure to pass gint64 values to this functions varargs,
-you might want to use a gint64 cast to be sure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to add the entry to</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>optinal flags for this entry</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>the format of the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>other format/value pairs or 0 to end the list</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the newly added entry in the index.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-add-associationv"></a><h3>gst_index_add_associationv ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_add_associationv          (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="GstIndex.html#GstIndexAssociation" title="struct GstIndexAssociation"><span class="type">GstIndexAssociation</span></a> *list</code></em>);</pre>
-<p>
-Associate given format/value pairs with each other.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to add the entry to</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>optinal flags for this entry</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
-<td>number of associations</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>list of associations</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the newly added entry in the index.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-add-object"></a><h3>gst_index_add_object ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_add_object                (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> object</code></em>);</pre>
-<p>
-Add the given object to the index with the given key.
-</p>
-<p>
-This function is not yet implemented.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to add the object to</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>a key for the object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the GType of the object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a pointer to the object to add</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the newly added entry in the index.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-add-id"></a><h3>gst_index_add_id ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_add_id                    (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);</pre>
-<p>
-Add an id entry into the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to add the entry to</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
-<td>the description of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the newly added entry in the index.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-get-assoc-entry"></a><h3>gst_index_get_assoc_entry ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_get_assoc_entry           (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod"><span class="type">GstIndexLookupMethod</span></a> method</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>);</pre>
-<p>
-Finds the given format/value in the index
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to search</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
-<td>The lookup method to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>Flags for the entry</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>the format of the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the entry associated with the value or NULL if the
-value was not found.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-get-assoc-entry-full"></a><h3>gst_index_get_assoc_entry_full ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_get_assoc_entry_full      (<em class="parameter"><code><a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> *index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod"><span class="type">GstIndexLookupMethod</span></a> method</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags"><span class="type">GstAssocFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Finds the given format/value in the index with the given
-compare function and user_data.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>the index to search</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>the id of the index writer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>method</code></em> :</span></p></td>
-<td>The lookup method to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>Flags for the entry</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>the format of the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function used to compare entries</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data passed to the compare function</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the entry associated with the value or NULL if the
-value was not found.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-entry-copy"></a><h3>gst_index_entry_copy ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="returnvalue">GstIndexEntry</span></a> *     gst_index_entry_copy                (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>);</pre>
-<p>
-Copies an entry and returns the result.
-</p>
-<p>
-Free-function: gst_index_entry_free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>the entry to copy</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated <a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-entry-free"></a><h3>gst_index_entry_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_entry_free                (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>);</pre>
-<p>
-Free the memory used by the given entry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>the entry to free. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-entry-assoc-map"></a><h3>gst_index_entry_assoc_map ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_index_entry_assoc_map           (<em class="parameter"><code><a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *entry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);</pre>
-<p>
-Gets alternative formats associated with the indexentry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>the index to search</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>the format of the value the find</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a pointer to store the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if there was a value associated with the given
-format.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="GstIndex.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstIndex--resolver"></a><h3>The <code class="literal">"resolver"</code> property</h3>
-<pre class="programlisting">  "resolver"                 <a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()"><span class="type">GstIndexResolver</span></a>      : Read / Write</pre>
-<p>Select a predefined object to string mapper.</p>
-<p>Default value: GST_INDEX_RESOLVER_PATH</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="GstIndex.signal-details"></a><h2>Signal Details</h2>
-<div class="refsect2">
-<a name="GstIndex-entry-added"></a><h3>The <code class="literal">"entry-added"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a>      *gstindex,
-                                                        <a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry"><span class="type">GstIndexEntry</span></a> *arg1,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Is emitted when a new entry is added to the index.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>gstindex</code></em> :</span></p></td>
-<td>the object which received the signal.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>arg1</code></em> :</span></p></td>
-<td>The entry added to the index.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="GstIndex.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/gst/html/GstIndexFactory.html b/docs/gst/html/GstIndexFactory.html
deleted file mode 100644
index af41c90..0000000
--- a/docs/gst/html/GstIndexFactory.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstIndexFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="GstIndex.html" title="GstIndex">
-<link rel="next" href="gstreamer-GstIterator.html" title="GstIterator">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GstIndex.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstIterator.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GstIndexFactory.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GstIndexFactory.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GstIndexFactory.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="GstIndexFactory"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="GstIndexFactory.top_of_page"></a>GstIndexFactory</span></h2>
-<p>GstIndexFactory — Create GstIndexes from a factory</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GstIndexFactory.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/gst.h&gt;
-
-struct              <a class="link" href="GstIndexFactory.html#GstIndexFactory-struct" title="struct GstIndexFactory">GstIndexFactory</a>;
-<a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="returnvalue">GstIndexFactory</span></a> *   <a class="link" href="GstIndexFactory.html#gst-index-factory-new" title="gst_index_factory_new ()">gst_index_factory_new</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longdesc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstIndexFactory.html#gst-index-factory-destroy" title="gst_index_factory_destroy ()">gst_index_factory_destroy</a>           (<em class="parameter"><code><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a> *factory</code></em>);
-<a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="returnvalue">GstIndexFactory</span></a> *   <a class="link" href="GstIndexFactory.html#gst-index-factory-find" title="gst_index_factory_find ()">gst_index_factory_find</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          <a class="link" href="GstIndexFactory.html#gst-index-factory-create" title="gst_index_factory_create ()">gst_index_factory_create</a>            (<em class="parameter"><code><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a> *factory</code></em>);
-<a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          <a class="link" href="GstIndexFactory.html#gst-index-factory-make" title="gst_index_factory_make ()">gst_index_factory_make</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndexFactory.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
-               +----<a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
-                     +----GstIndexFactory
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstIndexFactory.description"></a><h2>Description</h2>
-<p>
-GstIndexFactory is used to dynamically create GstIndex implementations.
-</p>
-</div>
-<div class="refsect1">
-<a name="GstIndexFactory.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstIndexFactory-struct"></a><h3>struct GstIndexFactory</h3>
-<pre class="programlisting">struct GstIndexFactory;</pre>
-<p>
-The GstIndexFactory object
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-factory-new"></a><h3>gst_index_factory_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="returnvalue">GstIndexFactory</span></a> *   gst_index_factory_new               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *longdesc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>
-Create a new indexfactory with the given parameters
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>name of indexfactory to create</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>longdesc</code></em> :</span></p></td>
-<td>long description of indexfactory to create</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the GType of the GstIndex element of this factory</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-factory-destroy"></a><h3>gst_index_factory_destroy ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_index_factory_destroy           (<em class="parameter"><code><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a> *factory</code></em>);</pre>
-<p>
-Removes the index from the global list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>factory to destroy</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-factory-find"></a><h3>gst_index_factory_find ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="returnvalue">GstIndexFactory</span></a> *   gst_index_factory_find              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>
-Search for an indexfactory of the given name.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>name of indexfactory to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a> if found, NULL otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-factory-create"></a><h3>gst_index_factory_create ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          gst_index_factory_create            (<em class="parameter"><code><a class="link" href="GstIndexFactory.html" title="GstIndexFactory"><span class="type">GstIndexFactory</span></a> *factory</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> instance from the
-given indexfactory.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>the factory used to create the instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-index-factory-make"></a><h3>gst_index_factory_make ()</h3>
-<pre class="programlisting"><a class="link" href="GstIndex.html" title="GstIndex"><span class="returnvalue">GstIndex</span></a> *          gst_index_factory_make              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> instance from the
-indexfactory with the given name.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the factory used to create the instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="GstIndexFactory.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstIndex.html" title="GstIndex"><span class="type">GstIndex</span></a>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index 8c2f5c9..6f237bb 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstMiniObject.html" title="GstMiniObject">
 <link rel="next" href="GstPad.html" title="GstPad">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstMiniObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPad.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -27,8 +27,6 @@
                    | 
                   <a href="#GstObject.object-hierarchy" class="shortcut">Object Hierarchy</a>
                    | 
-                  <a href="#GstObject.derived-interfaces" class="shortcut">Known Derived Interfaces</a>
-                   | 
                   <a href="#GstObject.properties" class="shortcut">Properties</a>
                    | 
                   <a href="#GstObject.signals" class="shortcut">Signals</a>
@@ -90,6 +88,36 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-replace" title="gst_object_replace ()">gst_object_replace</a>                  (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> **oldobj</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *newobj</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GstObject.html#gst-object-get-path-string" title="gst_object_get_path_string ()">gst_object_get_path_string</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);
+<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstObject.html#gst-object-suggest-next-sync" title="gst_object_suggest_next_sync ()">gst_object_suggest_next_sync</a>        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()">gst_object_sync_values</a>              (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-has-active-control-bindings" title="gst_object_has_active_control_bindings ()">gst_object_has_active_control_bindings</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstObject.html#gst-object-set-control-bindings-disabled" title="gst_object_set_control_bindings_disabled ()">gst_object_set_control_bindings_disabled</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstObject.html#gst-object-set-control-binding-disabled" title="gst_object_set_control_binding_disabled ()">gst_object_set_control_binding_disabled</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-add-control-binding" title="gst_object_add_control_binding ()">gst_object_add_control_binding</a>      (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);
+<a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="returnvalue">GstControlBinding</span></a> * <a class="link" href="GstObject.html#gst-object-get-control-binding" title="gst_object_get_control_binding ()">gst_object_get_control_binding</a>      (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-remove-control-binding" title="gst_object_remove_control_binding ()">gst_object_remove_control_binding</a>   (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            <a class="link" href="GstObject.html#gst-object-get-value" title="gst_object_get_value ()">gst_object_get_value</a>                (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstObject.html#gst-object-get-value-array" title="gst_object_get_value_array ()">gst_object_get_value_array</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *values</code></em>);
+<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstObject.html#gst-object-get-control-rate" title="gst_object_get_control_rate ()">gst_object_get_control_rate</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstObject.html#gst-object-set-control-rate" title="gst_object_set_control_rate ()">gst_object_set_control_rate</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> control_rate</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -106,18 +134,13 @@
                +----<a class="link" href="GstTask.html" title="GstTask">GstTask</a>
                +----<a class="link" href="GstTaskPool.html" title="GstTaskPool">GstTaskPool</a>
                +----<a class="link" href="GstClock.html" title="GstClock">GstClock</a>
+               +----<a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+               +----<a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
                +----<a class="link" href="GstPlugin.html" title="GstPlugin">GstPlugin</a>
                +----<a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-               +----<a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
 </pre>
 </div>
 <div class="refsect1">
-<a name="GstObject.derived-interfaces"></a><h2>Known Derived Interfaces</h2>
-<p>
-GstObject is required by
- <a class="link" href="GstChildProxy.html" title="GstChildProxy">GstChildProxy</a>.</p>
-</div>
-<div class="refsect1">
 <a name="GstObject.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="GstObject.html#GstObject--name" title='The "name" property'>name</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct
@@ -135,7 +158,7 @@
 <p>
 <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> provides a root for the object hierarchy tree filed in by the
 GStreamer library.  It is currently a thin wrapper on top of
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>. It is an abstract class that is not very usable on its own.
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned"><span class="type">GInitiallyUnowned</span></a>. It is an abstract class that is not very usable on its own.
 </p>
 <p>
 <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> gives us basic refcounting, parenting functionality and locking.
@@ -144,51 +167,9 @@
 (e.g. <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a> becomes <a class="link" href="GstObject.html#gst-object-ref" title="gst_object_ref ()"><code class="function">gst_object_ref()</code></a>).
 </p>
 <p>
-The most interesting difference between <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> is the
-"floating" reference count. A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> is created with a reference count of
-1, owned by the creator of the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>. (The owner of a reference is the
-code section that has the right to call <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> in order to
-remove that reference.) A <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> is created with a reference count of 1
-also, but it isn't owned by anyone; Instead, the initial reference count
-of a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> is "floating". The floating reference can be removed by
-anyone at any time, by calling <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-sink"><code class="function">gst_object_sink()</code></a>.  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-sink"><code class="function">gst_object_sink()</code></a> does
-nothing if an object is already sunk (has no floating reference).
-</p>
-<p>
-When you add a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to its parent container, the parent container will
-do this:
-</p>
-<div class="informalexample"><pre class="programlisting">
-  gst_object_ref (GST_OBJECT (child_element));
-  gst_object_sink (GST_OBJECT (child_element));
-</pre></div>
-<p>
-This means that the container now owns a reference to the child element
-(since it called <a class="link" href="GstObject.html#gst-object-ref" title="gst_object_ref ()"><code class="function">gst_object_ref()</code></a>), and the child element has no floating
-reference.
-</p>
-<p>
-The purpose of the floating reference is to keep the child element alive
-until you add it to a parent container, which then manages the lifetime of
-the object itself:
-</p>
-<div class="informalexample"><pre class="programlisting">
-   element = gst_element_factory_make (factoryname, name);
-   // element has one floating reference to keep it alive
-   gst_bin_add (GST_BIN (bin), element);
-   // element has one non-floating reference owned by the container
-</pre></div>
-<p>
-</p>
-<p>
-Another effect of this is, that calling <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> on a bin object,
-will also destoy all the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> objects in it. The same is true for
-calling <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a>.
-</p>
-<p>
-Special care has to be taken for all methods that <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-sink"><code class="function">gst_object_sink()</code></a> an object
-since if the caller of those functions had a floating reference to the object,
-the object reference is now invalid.
+Since <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> dereives from <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned"><span class="type">GInitiallyUnowned</span></a>, it also inherits the
+floating reference. Be aware that functions such as <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> and
+<a class="link" href="GstElement.html#gst-element-add-pad" title="gst_element_add_pad ()"><code class="function">gst_element_add_pad()</code></a> take ownership of the floating reference.
 </p>
 <p>
 In contrast to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> instances, <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> adds a name property. The functions
@@ -196,7 +177,67 @@
 of the object.
 </p>
 <p>
-Last reviewed on 2005-11-09 (0.9.4)
+</p>
+<div class="refsect2">
+<a name="idp25919984"></a><h3>controlled properties</h3>
+<p>
+Controlled properties offers a lightweight way to adjust gobject
+properties over stream-time. It works by using time-stamped value pairs that
+are queued for element-properties. At run-time the elements continously pull
+values changes for the current stream-time.
+</p>
+<p>
+What needs to be changed in a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>?
+Very little - it is just two steps to make a plugin controllable!
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>
+    mark gobject-properties paramspecs that make sense to be controlled,
+    by GST_PARAM_CONTROLLABLE.
+  </p></li>
+<li class="listitem"><p>
+    when processing data (get, chain, loop function) at the beginning call
+    gst_object_sync_values(element,timestamp).
+    This will made the controller to update all gobject properties that are under
+    control with the current values based on timestamp.
+  </p></li>
+</ol></div>
+<p>
+</p>
+<p>
+What needs to be done in applications?
+Again its not a lot to change.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>
+    first put some properties under control, by calling
+    gst_object_control_properties (object, "prop1", "prop2",...);
+  </p></li>
+<li class="listitem"><p>
+    create a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+    csource = <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstInterpolationControlSource.html#gst-interpolation-control-source-new"><code class="function">gst_interpolation_control_source_new()</code></a>;
+    g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+  </p></li>
+<li class="listitem"><p>
+    Attach the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> on the controller to a property.
+    gst_object_add_control_binding (object, gst_direct_control_binding_new (objetct, "prop1", csource));
+  </p></li>
+<li class="listitem"><p>
+    Set the control values
+    gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1);
+    gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);
+  </p></li>
+<li class="listitem"><p>
+    start your pipeline
+  </p></li>
+</ol></div>
+<p>
+</p>
+</div>
+<p>
+</p>
+<p>
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -204,7 +245,7 @@
 <div class="refsect2">
 <a name="GstObject-struct"></a><h3>struct GstObject</h3>
 <pre class="programlisting">struct GstObject {
-  GMutex        *lock;        /* object LOCK */
+  GMutex         lock;        /* object LOCK */
   gchar         *name;        /* object name */
   GstObject     *parent;      /* this object's parent, weak ref */
   guint32        flags;
@@ -217,7 +258,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> *<em class="structfield"><code><a name="GstObject-struct.lock"></a>lock</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> <em class="structfield"><code><a name="GstObject-struct.lock"></a>lock</code></em>;</span></p></td>
 <td>object LOCK</td>
 </tr>
 <tr>
@@ -229,7 +270,7 @@
 <td>this object's parent, weak ref</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstObject-struct.flags"></a>flags</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstObject-struct.flags"></a>flags</code></em>;</span></p></td>
 <td>flags for this object</td>
 </tr>
 </tbody>
@@ -498,7 +539,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-OBJECT-GET-LOCK:CAPS"></a><h3>GST_OBJECT_GET_LOCK()</h3>
-<pre class="programlisting">#define GST_OBJECT_GET_LOCK(obj)               (GST_OBJECT_CAST(obj)-&gt;lock)
+<pre class="programlisting">#define GST_OBJECT_GET_LOCK(obj)               (&amp;GST_OBJECT_CAST(obj)-&gt;lock)
 </pre>
 <p>
 Acquire a reference to the mutex of this object.
@@ -924,6 +965,375 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-suggest-next-sync"></a><h3>gst_object_suggest_next_sync ()</h3>
+<pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_object_suggest_next_sync        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);</pre>
+<p>
+Returns a suggestion for timestamps where buffers should be split
+to get best controller results.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns the suggested timestamp or <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a>
+if no control-rate was set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-sync-values"></a><h3>gst_object_sync_values ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_sync_values              (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+<p>
+Sets the properties of the object, according to the <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSources</span></a> that
+(maybe) handle them and for the given timestamp.
+</p>
+<p>
+If this function fails, it is most likely the application developers fault.
+Most probably the control sources are not setup correctly.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time that should be processed</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the controller values could be applied to the object
+properties, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-has-active-control-bindings"></a><h3>gst_object_has_active_control_bindings ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_has_active_control_bindings
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);</pre>
+<p>
+Check if the <em class="parameter"><code>object</code></em> has an active controlled properties.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the object has active controlled properties</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-set-control-bindings-disabled"></a><h3>gst_object_set_control_bindings_disabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_object_set_control_bindings_disabled
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
+<p>
+This function is used to disable all controlled properties of the <em class="parameter"><code>object</code></em> for
+some time, i.e. <a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> will do nothing.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td>
+<td>boolean that specifies whether to disable the controller
+or not.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-set-control-binding-disabled"></a><h3>gst_object_set_control_binding_disabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_object_set_control_binding_disabled
+                                                        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
+<p>
+This function is used to disable the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstController.html"><span class="type">GstController</span></a> on a property for
+some time, i.e. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstController.html#gst-controller-sync-values"><code class="function">gst_controller_sync_values()</code></a> will do nothing for the
+property.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>property to disable</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td>
+<td>boolean that specifies whether to disable the controller
+or not.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-add-control-binding"></a><h3>gst_object_add_control_binding ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_add_control_binding      (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);</pre>
+<p>
+Sets the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a>. If there already was a <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a>
+for this property it will be replaced.
+The <em class="parameter"><code>object</code></em> will take ownership of the <em class="parameter"><code>binding</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the controller object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
+<td>the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> that should be used. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the given <em class="parameter"><code>binding</code></em> has not been setup for this object  or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-get-control-binding"></a><h3>gst_object_get_control_binding ()</h3>
+<pre class="programlisting"><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="returnvalue">GstControlBinding</span></a> * gst_object_get_control_binding      (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre>
+<p>
+Gets the corresponding <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> for the property. This should be
+unreferenced again after use.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>name of the property</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> for <em class="parameter"><code>property_name</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+the property is not controlled. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-remove-control-binding"></a><h3>gst_object_remove_control_binding ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_remove_control_binding   (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);</pre>
+<p>
+Removes the corresponding <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a>. If it was the
+last ref of the binding, it will be disposed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
+<td>the binding</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the binding could be removed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-get-value"></a><h3>gst_object_get_value ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            gst_object_get_value                (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+<p>
+Gets the value for the given controlled property at the requested time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>the name of the property to get</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time the control-change should be read from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
+property isn't controlled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-get-value-array"></a><h3>gst_object_get_value_array ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_get_value_array          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *values</code></em>);</pre>
+<p>
+Gets a number of values for the given controllered property starting at the
+requested time. The array <em class="parameter"><code>values</code></em> need to hold enough space for <em class="parameter"><code>n_values</code></em> of
+the same type as the objects property's type.
+</p>
+<p>
+This function is useful if one wants to e.g. draw a graph of the control
+curve or apply a control curve sample by sample.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>the name of the property to get</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time that should be processed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
+<td>the time spacing between subsequent values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_values</code></em> :</span></p></td>
+<td>the number of values</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>values</code></em> :</span></p></td>
+<td>array to put control-values in</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-get-control-rate"></a><h3>gst_object_get_control_rate ()</h3>
+<pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_object_get_control_rate         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>);</pre>
+<p>
+Obtain the control-rate for this <em class="parameter"><code>object</code></em>. Audio processing <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
+objects will use this rate to sub-divide their processing loop and call
+<a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> inbetween. The length of the processing segment
+should be up to <em class="parameter"><code>control</code></em>-rate nanoseconds.
+</p>
+<p>
+If the <em class="parameter"><code>object</code></em> is not under property control, this will return
+<a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a>. This allows the element to avoid the sub-dividing.
+</p>
+<p>
+The control-rate is not expected to change if the element is in
+<a class="link" href="GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or <a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the control rate in nanoseconds</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-object-set-control-rate"></a><h3>gst_object_set_control_rate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_object_set_control_rate         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> control_rate</code></em>);</pre>
+<p>
+Change the control-rate for this <em class="parameter"><code>object</code></em>. Audio processing <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
+objects will use this rate to sub-divide their processing loop and call
+<a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> inbetween. The length of the processing segment
+should be up to <em class="parameter"><code>control</code></em>-rate nanoseconds.
+</p>
+<p>
+The control-rate should not change if the element is in <a class="link" href="GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or
+<a class="link" href="GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the object that has controlled properties</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>control_rate</code></em> :</span></p></td>
+<td>the new control-rate in nanoseconds.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <div class="refsect1">
 <a name="GstObject.property-details"></a><h2>Property Details</h2>
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 63afb93..1167786 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPad</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstObject.html" title="GstObject">
 <link rel="next" href="GstPadTemplate.html" title="GstPadTemplate">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPadTemplate.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -56,12 +56,7 @@
 enum                <a class="link" href="GstPad.html#GstPadLinkCheck" title="enum GstPadLinkCheck">GstPadLinkCheck</a>;
 #define             <a class="link" href="GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS" title="GST_PAD_LINK_CHECK_DEFAULT">GST_PAD_LINK_CHECK_DEFAULT</a>
 enum                <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn">GstFlowReturn</a>;
-enum                <a class="link" href="GstPad.html#GstActivateMode" title="enum GstActivateMode">GstActivateMode</a>;
-enum                <a class="link" href="GstPad.html#GstProbeReturn" title="enum GstProbeReturn">GstProbeReturn</a>;
-enum                <a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType">GstProbeType</a>;
-#define             <a class="link" href="GstPad.html#GST-PROBE-TYPE-BLOCKING:CAPS" title="GST_PROBE_TYPE_BLOCKING">GST_PROBE_TYPE_BLOCKING</a>
-#define             <a class="link" href="GstPad.html#GST-PROBE-TYPE-DATA:CAPS" title="GST_PROBE_TYPE_DATA">GST_PROBE_TYPE_DATA</a>
-#define             <a class="link" href="GstPad.html#GST-PROBE-TYPE-SCHEDULING:CAPS" title="GST_PROBE_TYPE_SCHEDULING">GST_PROBE_TYPE_SCHEDULING</a>
+enum                <a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode">GstPadMode</a>;
 
 #define             <a class="link" href="GstPad.html#gst-pad-get-name" title="gst_pad_get_name()">gst_pad_get_name</a>                    (pad)
 <a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="returnvalue">GstPadDirection</span></a>     <a class="link" href="GstPad.html#gst-pad-get-direction" title="gst_pad_get_direction ()">gst_pad_get_direction</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
@@ -78,46 +73,64 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-can-link" title="gst_pad_can_link ()">gst_pad_can_link</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *srcpad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *sinkpad</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()">gst_pad_get_caps</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
-#define             <a class="link" href="GstPad.html#gst-pad-get-caps-reffed" title="gst_pad_get_caps_reffed()">gst_pad_get_caps_reffed</a>             (p)
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-allowed-caps" title="gst_pad_get_allowed_caps ()">gst_pad_get_allowed_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()">gst_pad_get_current_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-pad-template-caps" title="gst_pad_get_pad_template_caps ()">gst_pad_get_pad_template_caps</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()">gst_pad_set_caps</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstPad.html#gst-pad-get-peer" title="gst_pad_get_peer ()">gst_pad_get_peer</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-peer-get-caps" title="gst_pad_peer_get_caps ()">gst_pad_peer_get_caps</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
-#define             <a class="link" href="GstPad.html#gst-pad-peer-get-caps-reffed" title="gst_pad_peer_get_caps_reffed()">gst_pad_peer_get_caps_reffed</a>        (p)
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-use-fixed-caps" title="gst_pad_use_fixed_caps ()">gst_pad_use_fixed_caps</a>              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-has-current-caps" title="gst_pad_has_current_caps ()">gst_pad_has_current_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="GstPad.html#gst-pad-get-sticky-event" title="gst_pad_get_sticky_event ()">gst_pad_get_sticky_event</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> event_type</code></em>);
-<a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()">*GstPadStickyEventsForeachFunction</a>)
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> event_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()">*GstPadStickyEventsForeachFunction</a>)
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstPad.html#gst-pad-sticky-events-foreach" title="gst_pad_sticky_events_foreach ()">gst_pad_sticky_events_foreach</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-sticky-events-foreach" title="gst_pad_sticky_events_foreach ()">gst_pad_sticky_events_foreach</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()"><span class="type">GstPadStickyEventsForeachFunction</span></a> foreach_func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-active" title="gst_pad_is_active ()">gst_pad_is_active</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-blocked" title="gst_pad_is_blocked ()">gst_pad_is_blocked</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()">gst_pad_is_blocking</a>                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a class="link" href="GstPad.html#GstProbeReturn" title="enum GstProbeReturn"><span class="returnvalue">GstProbeReturn</span></a>      (<a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()">*GstPadProbeCallback</a>)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType"><span class="type">GstProbeType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> type_data</code></em>,
+
+enum                <a class="link" href="GstPad.html#GstPadProbeReturn" title="enum GstPadProbeReturn">GstPadProbeReturn</a>;
+enum                <a class="link" href="GstPad.html#GstPadProbeType" title="enum GstPadProbeType">GstPadProbeType</a>;
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCKING:CAPS" title="GST_PAD_PROBE_TYPE_BLOCKING">GST_PAD_PROBE_TYPE_BLOCKING</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM">GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM">GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM">GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_DATA_UPSTREAM">GST_PAD_PROBE_TYPE_DATA_UPSTREAM</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_DATA_BOTH">GST_PAD_PROBE_TYPE_DATA_BOTH</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_EVENT_BOTH">GST_PAD_PROBE_TYPE_EVENT_BOTH</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_QUERY_BOTH">GST_PAD_PROBE_TYPE_QUERY_BOTH</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_ALL_BOTH">GST_PAD_PROBE_TYPE_ALL_BOTH</a>
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-SCHEDULING:CAPS" title="GST_PAD_PROBE_TYPE_SCHEDULING">GST_PAD_PROBE_TYPE_SCHEDULING</a>
+struct              <a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo">GstPadProbeInfo</a>;
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-TYPE:CAPS" title="GST_PAD_PROBE_INFO_TYPE()">GST_PAD_PROBE_INFO_TYPE</a>             (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-ID:CAPS" title="GST_PAD_PROBE_INFO_ID()">GST_PAD_PROBE_INFO_ID</a>               (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-DATA:CAPS" title="GST_PAD_PROBE_INFO_DATA()">GST_PAD_PROBE_INFO_DATA</a>             (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-BUFFER:CAPS" title="GST_PAD_PROBE_INFO_BUFFER()">GST_PAD_PROBE_INFO_BUFFER</a>           (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS" title="GST_PAD_PROBE_INFO_BUFFER_LIST()">GST_PAD_PROBE_INFO_BUFFER_LIST</a>      (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-EVENT:CAPS" title="GST_PAD_PROBE_INFO_EVENT()">GST_PAD_PROBE_INFO_EVENT</a>            (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-QUERY:CAPS" title="GST_PAD_PROBE_INFO_QUERY()">GST_PAD_PROBE_INFO_QUERY</a>            (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-OFFSET:CAPS" title="GST_PAD_PROBE_INFO_OFFSET()">GST_PAD_PROBE_INFO_OFFSET</a>           (d)
+#define             <a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-SIZE:CAPS" title="GST_PAD_PROBE_INFO_SIZE()">GST_PAD_PROBE_INFO_SIZE</a>             (d)
+<a class="link" href="GstPad.html#GstPadProbeReturn" title="enum GstPadProbeReturn"><span class="returnvalue">GstPadProbeReturn</span></a>   (<a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()">*GstPadProbeCallback</a>)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>              <a class="link" href="GstPad.html#gst-pad-add-probe" title="gst_pad_add_probe ()">gst_pad_add_probe</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType"><span class="type">GstProbeType</span></a> mask</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeType" title="enum GstPadProbeType"><span class="type">GstPadProbeType</span></a> mask</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()"><span class="type">GstPadProbeCallback</span></a> callback</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-remove-probe" title="gst_pad_remove_probe ()">gst_pad_remove_probe</a>                (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> id</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="GstPad.html#gst-pad-get-offset" title="gst_pad_get_offset ()">gst_pad_get_offset</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-blocked" title="gst_pad_is_blocked ()">gst_pad_is_blocked</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()">gst_pad_is_blocking</a>                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+
+<span class="returnvalue">gint64</span>              <a class="link" href="GstPad.html#gst-pad-get-offset" title="gst_pad_get_offset ()">gst_pad_get_offset</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-offset" title="gst_pad_set_offset ()">gst_pad_set_offset</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> offset</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> offset</code></em>);
 
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstPad.html#gst-pad-new" title="gst_pad_new ()">gst_pad_new</a>                         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);
@@ -125,63 +138,86 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstPad.html#gst-pad-new-from-static-template" title="gst_pad_new_from_static_template ()">gst_pad_new_from_static_template</a>    (<em class="parameter"><code><a class="link" href="GstPadTemplate.html#GstStaticPadTemplate" title="struct GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *templ</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function ()">gst_pad_set_chain_function</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> chain</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function()">gst_pad_set_chain_function</a>          (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-chain-function-full" title="gst_pad_set_chain_function_full ()">gst_pad_set_chain_function_full</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> chain</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()">*GstPadChainFunction</a>)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function ()">gst_pad_set_chain_list_function</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> chainlist</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function()">gst_pad_set_chain_list_function</a>     (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-chain-list-function-full" title="gst_pad_set_chain_list_function_full ()">gst_pad_set_chain_list_function_full</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> chainlist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()">*GstPadChainListFunction</a>)          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()">gst_pad_get_range</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function ()">gst_pad_set_getrange_function</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> get</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function()">gst_pad_set_getrange_function</a>       (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-getrange-function-full" title="gst_pad_set_getrange_function_full ()">gst_pad_set_getrange_function_full</a>  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> get</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()">*GstPadGetRangeFunction</a>)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-event-function" title="gst_pad_set_event_function ()">gst_pad_set_event_function</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> event</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-event-function" title="gst_pad_set_event_function()">gst_pad_set_event_function</a>          (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-event-function-full" title="gst_pad_set_event_function_full ()">gst_pad_set_event_function_full</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()">*GstPadEventFunction</a>)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-link-function" title="gst_pad_set_link_function ()">gst_pad_set_link_function</a>           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> link</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-link-function" title="gst_pad_set_link_function()">gst_pad_set_link_function</a>           (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-link-function-full" title="gst_pad_set_link_function_full ()">gst_pad_set_link_function_full</a>      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> link</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="returnvalue">GstPadLinkReturn</span></a>    (<a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()">*GstPadLinkFunction</a>)               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *peer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-unlink-function" title="gst_pad_set_unlink_function ()">gst_pad_set_unlink_function</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> unlink</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-unlink-function" title="gst_pad_set_unlink_function()">gst_pad_set_unlink_function</a>         (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-unlink-function-full" title="gst_pad_set_unlink_function_full ()">gst_pad_set_unlink_function_full</a>    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> unlink</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()">*GstPadUnlinkFunction</a>)             (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-accept-caps" title="gst_pad_accept_caps ()">gst_pad_accept_caps</a>                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-acceptcaps-function" title="gst_pad_set_acceptcaps_function ()">gst_pad_set_acceptcaps_function</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()"><span class="type">GstPadAcceptCapsFunction</span></a> acceptcaps</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()">*GstPadAcceptCapsFunction</a>)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-getcaps-function" title="gst_pad_set_getcaps_function ()">gst_pad_set_getcaps_function</a>        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()"><span class="type">GstPadGetCapsFunction</span></a> getcaps</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           (<a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()">*GstPadGetCapsFunction</a>)            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-proxy-getcaps" title="gst_pad_proxy_getcaps ()">gst_pad_proxy_getcaps</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-fixate-caps" title="gst_pad_fixate_caps ()">gst_pad_fixate_caps</a>                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-fixatecaps-function" title="gst_pad_set_fixatecaps_function ()">gst_pad_set_fixatecaps_function</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()"><span class="type">GstPadFixateCapsFunction</span></a> fixatecaps</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()">*GstPadFixateCapsFunction</a>)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-accept-caps" title="gst_pad_peer_accept_caps ()">gst_pad_peer_accept_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-activate-function" title="gst_pad_set_activate_function ()">gst_pad_set_activate_function</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> activate</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()">*GstPadActivateFunction</a>)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-activatepush-function" title="gst_pad_set_activatepush_function ()">gst_pad_set_activatepush_function</a>   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatepush</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-activatepull-function" title="gst_pad_set_activatepull_function ()">gst_pad_set_activatepull_function</a>   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatepull</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-proxy-query-caps" title="gst_pad_proxy_query_caps ()">gst_pad_proxy_query_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-proxy-query-accept-caps" title="gst_pad_proxy_query_accept_caps ()">gst_pad_proxy_query_accept_caps</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-activate-function" title="gst_pad_set_activate_function()">gst_pad_set_activate_function</a>       (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-activate-function-full" title="gst_pad_set_activate_function_full ()">gst_pad_set_activate_function_full</a>  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> activate</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()">*GstPadActivateFunction</a>)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-activatemode-function" title="gst_pad_set_activatemode_function()">gst_pad_set_activatemode_function</a>   (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-activatemode-function-full" title="gst_pad_set_activatemode_function_full ()">gst_pad_set_activatemode_function_full</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatemode</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()">*GstPadActivateModeFunction</a>)       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-check-reconfigure" title="gst_pad_check_reconfigure ()">gst_pad_check_reconfigure</a>           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-mark-reconfigure" title="gst_pad_mark_reconfigure ()">gst_pad_mark_reconfigure</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
@@ -192,61 +228,76 @@
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstPad.html#gst-pad-push-list" title="gst_pad_push_list ()">gst_pad_push_list</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()">gst_pad_pull_range</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-activate-pull" title="gst_pad_activate_pull ()">gst_pad_activate_pull</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-activate-push" title="gst_pad_activate_push ()">gst_pad_activate_push</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-activate-mode" title="gst_pad_activate_mode ()">gst_pad_activate_mode</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()">gst_pad_send_event</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-event-default" title="gst_pad_event_default ()">gst_pad_event_default</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query" title="gst_pad_query ()">gst_pad_query</a>                       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-query" title="gst_pad_peer_query ()">gst_pad_peer_query</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-default" title="gst_pad_query_default ()">gst_pad_query_default</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-position" title="gst_pad_query_position ()">gst_pad_query_position</a>              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-duration" title="gst_pad_query_duration ()">gst_pad_query_duration</a>              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-convert" title="gst_pad_query_convert ()">gst_pad_query_convert</a>               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-peer-position" title="gst_pad_query_peer_position ()">gst_pad_query_peer_position</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-accept-caps" title="gst_pad_query_accept_caps ()">gst_pad_query_accept_caps</a>           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()">gst_pad_query_caps</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-query-position" title="gst_pad_peer_query_position ()">gst_pad_peer_query_position</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-peer-duration" title="gst_pad_query_peer_duration ()">gst_pad_query_peer_duration</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-query-duration" title="gst_pad_peer_query_duration ()">gst_pad_peer_query_duration</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-query-peer-convert" title="gst_pad_query_peer_convert ()">gst_pad_query_peer_convert</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-query-convert" title="gst_pad_peer_query_convert ()">gst_pad_peer_query_convert</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-query-function" title="gst_pad_set_query_function ()">gst_pad_set_query_function</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> query</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-peer-query-accept-caps" title="gst_pad_peer_query_accept_caps ()">gst_pad_peer_query_accept_caps</a>      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-peer-query-caps" title="gst_pad_peer_query_caps ()">gst_pad_peer_query_caps</a>             (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
+#define             <a class="link" href="GstPad.html#gst-pad-set-query-function" title="gst_pad_set_query_function()">gst_pad_set_query_function</a>          (p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-query-function-full" title="gst_pad_set_query_function_full ()">gst_pad_set_query_function_full</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()">*GstPadQueryFunction</a>)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-query-type-function" title="gst_pad_set_query_type_function ()">gst_pad_set_query_type_function</a>     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()"><span class="type">GstPadQueryTypeFunction</span></a> type_func</code></em>);
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * (<a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()">*GstPadQueryTypeFunction</a>)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * <a class="link" href="GstPad.html#gst-pad-get-query-types" title="gst_pad_get_query_types ()">gst_pad_get_query_types</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * <a class="link" href="GstPad.html#gst-pad-get-query-types-default" title="gst_pad_get_query_types_default ()">gst_pad_get_query_types_default</a>    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function" title="gst_pad_set_iterate_internal_links_function ()">gst_pad_set_iterate_internal_links_function</a>
+#define             <a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function" title="gst_pad_set_iterate_internal_links_function()">gst_pad_set_iterate_internal_links_function</a>(p,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function-full" title="gst_pad_set_iterate_internal_links_function_full ()">gst_pad_set_iterate_internal_links_function_full</a>
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> iterintlink</code></em>);
-<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       (<a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()">*GstPadIterIntLinkFunction</a>)        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> iterintlink</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
+<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       (<a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()">*GstPadIterIntLinkFunction</a>)        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstPad.html#gst-pad-iterate-internal-links" title="gst_pad_iterate_internal_links ()">gst_pad_iterate_internal_links</a>      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstPad.html#gst-pad-iterate-internal-links-default" title="gst_pad_iterate_internal_links_default ()">gst_pad_iterate_internal_links_default</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-element-private" title="gst_pad_set_element_private ()">gst_pad_set_element_private</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> priv</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GstPad.html#gst-pad-get-element-private" title="gst_pad_get_element_private ()">gst_pad_get_element_private</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
@@ -269,11 +320,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 #define             <a class="link" href="GstPad.html#GST-PAD-GET-STREAM-LOCK:CAPS" title="GST_PAD_GET_STREAM_LOCK()">GST_PAD_GET_STREAM_LOCK</a>             (pad)
 #define             <a class="link" href="GstPad.html#GST-PAD-STREAM-LOCK:CAPS" title="GST_PAD_STREAM_LOCK()">GST_PAD_STREAM_LOCK</a>                 (pad)
-#define             <a class="link" href="GstPad.html#GST-PAD-STREAM-LOCK-FULL:CAPS" title="GST_PAD_STREAM_LOCK_FULL()">GST_PAD_STREAM_LOCK_FULL</a>            (pad,
-                                                         t)
 #define             <a class="link" href="GstPad.html#GST-PAD-STREAM-TRYLOCK:CAPS" title="GST_PAD_STREAM_TRYLOCK()">GST_PAD_STREAM_TRYLOCK</a>              (pad)
 #define             <a class="link" href="GstPad.html#GST-PAD-STREAM-UNLOCK:CAPS" title="GST_PAD_STREAM_UNLOCK()">GST_PAD_STREAM_UNLOCK</a>               (pad)
-#define             <a class="link" href="GstPad.html#GST-PAD-STREAM-UNLOCK-FULL:CAPS" title="GST_PAD_STREAM_UNLOCK_FULL()">GST_PAD_STREAM_UNLOCK_FULL</a>          (pad)
 </pre>
 </div>
 <div class="refsect1">
@@ -306,21 +354,17 @@
 <p>
 A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> is linked to other elements via "pads", which are extremely
 light-weight generic link points.
-After two pads are retrieved from an element with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-get-pad"><code class="function">gst_element_get_pad()</code></a>,
-the pads can be link with <a class="link" href="GstPad.html#gst-pad-link" title="gst_pad_link ()"><code class="function">gst_pad_link()</code></a>. (For quick links,
-you can also use <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>, which will make the obvious
-link for you if it's straightforward.)
+</p>
+<p>
+Pads have a <a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a>, source pads produce data, sink pads consume
+data.
 </p>
 <p>
 Pads are typically created from a <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a> with
-<a class="link" href="GstPad.html#gst-pad-new-from-template" title="gst_pad_new_from_template ()"><code class="function">gst_pad_new_from_template()</code></a>.
-</p>
-<p>
-Pads have <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> attached to it to describe the media type they are
-capable of dealing with.  <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a> and <a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()"><code class="function">gst_pad_set_caps()</code></a> are
-used to manipulate the caps of the pads.
-Pads created from a pad template cannot set capabilities that are
-incompatible with the pad template capabilities.
+<a class="link" href="GstPad.html#gst-pad-new-from-template" title="gst_pad_new_from_template ()"><code class="function">gst_pad_new_from_template()</code></a> and are then added to a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>. This usually
+happens when the element is created but it can also happen dynamically based
+on the data that the element is processing or based on the pads that the
+application requests.
 </p>
 <p>
 Pads without pad templates can be created with <a class="link" href="GstPad.html#gst-pad-new" title="gst_pad_new ()"><code class="function">gst_pad_new()</code></a>,
@@ -328,23 +372,61 @@
 then a guaranteed unique name will be assigned to it.
 </p>
 <p>
+A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> creating a pad will typically use the various
+gst_pad_set_*_function() calls to register callbacks for events, queries or
+dataflow on the pads.
+</p>
+<p>
 <a class="link" href="GstPad.html#gst-pad-get-parent" title="gst_pad_get_parent()"><code class="function">gst_pad_get_parent()</code></a> will retrieve the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that owns the pad.
 </p>
 <p>
-A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> creating a pad will typically use the various
-gst_pad_set_*_function() calls to register callbacks for various events
-on the pads.
+After two pads are retrieved from an element with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-get-pad"><code class="function">gst_element_get_pad()</code></a>,
+the pads can be linked with <a class="link" href="GstPad.html#gst-pad-link" title="gst_pad_link ()"><code class="function">gst_pad_link()</code></a>. (For quick links,
+you can also use <a class="link" href="GstElement.html#gst-element-link" title="gst_element_link ()"><code class="function">gst_element_link()</code></a>, which will make the obvious
+link for you if it's straightforward.). Pads can be unlinked again with
+<a class="link" href="GstPad.html#gst-pad-unlink" title="gst_pad_unlink ()"><code class="function">gst_pad_unlink()</code></a>. <a class="link" href="GstPad.html#gst-pad-get-peer" title="gst_pad_get_peer ()"><code class="function">gst_pad_get_peer()</code></a> can be used to check what the pad is
+linked to.
+</p>
+<p>
+Before dataflow is possible on the pads, they need to be activated with
+<a class="link" href="GstPad.html#gst-pad-set-active" title="gst_pad_set_active ()"><code class="function">gst_pad_set_active()</code></a>.
+</p>
+<p>
+<a class="link" href="GstPad.html#gst-pad-query" title="gst_pad_query ()"><code class="function">gst_pad_query()</code></a> and <a class="link" href="GstPad.html#gst-pad-peer-query" title="gst_pad_peer_query ()"><code class="function">gst_pad_peer_query()</code></a> can be used to query various
+properties of the pad and the stream.
+</p>
+<p>
+To send a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> on a pad, use <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()"><code class="function">gst_pad_send_event()</code></a> and
+<a class="link" href="GstPad.html#gst-pad-push-event" title="gst_pad_push_event ()"><code class="function">gst_pad_push_event()</code></a>. Some events will be sticky on the pad, meaning that
+after they pass on the pad they can be queried later with
+<a class="link" href="GstPad.html#gst-pad-get-sticky-event" title="gst_pad_get_sticky_event ()"><code class="function">gst_pad_get_sticky_event()</code></a> and <a class="link" href="GstPad.html#gst-pad-sticky-events-foreach" title="gst_pad_sticky_events_foreach ()"><code class="function">gst_pad_sticky_events_foreach()</code></a>.
+<a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()"><code class="function">gst_pad_get_current_caps()</code></a> and <a class="link" href="GstPad.html#gst-pad-has-current-caps" title="gst_pad_has_current_caps ()"><code class="function">gst_pad_has_current_caps()</code></a> are convenience
+functions to query the current sticky CAPS event on a pad.
 </p>
 <p>
 GstElements will use <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a> and <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a> to push out
 or pull in a buffer.
 </p>
 <p>
-To send a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> on a pad, use <a class="link" href="GstPad.html#gst-pad-send-event" title="gst_pad_send_event ()"><code class="function">gst_pad_send_event()</code></a> and
-<a class="link" href="GstPad.html#gst-pad-push-event" title="gst_pad_push_event ()"><code class="function">gst_pad_push_event()</code></a>.
+The dataflow, events and queries that happen on a pad can be monitored with
+probes that can be installed with <a class="link" href="GstPad.html#gst-pad-add-probe" title="gst_pad_add_probe ()"><code class="function">gst_pad_add_probe()</code></a>. <a class="link" href="GstPad.html#gst-pad-is-blocked" title="gst_pad_is_blocked ()"><code class="function">gst_pad_is_blocked()</code></a>
+can be used to check if a block probe is installed on the pad.
+<a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()"><code class="function">gst_pad_is_blocking()</code></a> checks if the blocking probe is currently blocking the
+pad. <a class="link" href="GstPad.html#gst-pad-remove-probe" title="gst_pad_remove_probe ()"><code class="function">gst_pad_remove_probe()</code></a> is used to remove a previously installed probe
+and unblock blocking probes if any.
 </p>
 <p>
-Last reviewed on 2006-07-06 (0.10.9)
+Pad have an offset that can be retrieved with <a class="link" href="GstPad.html#gst-pad-get-offset" title="gst_pad_get_offset ()"><code class="function">gst_pad_get_offset()</code></a>. This
+offset will be applied to the running_time of all data passing over the pad.
+<a class="link" href="GstPad.html#gst-pad-set-offset" title="gst_pad_set_offset ()"><code class="function">gst_pad_set_offset()</code></a> can be used to change the offset.
+</p>
+<p>
+Convenience functions exist to start, pause and stop the task on a pad with
+<a class="link" href="GstPad.html#gst-pad-start-task" title="gst_pad_start_task ()"><code class="function">gst_pad_start_task()</code></a>, <a class="link" href="GstPad.html#gst-pad-pause-task" title="gst_pad_pause_task ()"><code class="function">gst_pad_pause_task()</code></a> and <a class="link" href="GstPad.html#gst-pad-stop-task" title="gst_pad_stop_task ()"><code class="function">gst_pad_stop_task()</code></a>
+respectively.
+</p>
+<p>
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -357,45 +439,6 @@
   GstPadTemplate                *padtemplate;
 
   GstPadDirection                direction;
-
-  /* streaming rec_lock */
-  GStaticRecMutex		 stream_rec_lock;
-  GstTask			*task;
-
-  /* block cond, mutex is from the object */
-  GCond				*block_cond;
-  GHookList                      probes;
-
-  /* the pad capabilities */
-  GstPadGetCapsFunction		getcapsfunc;
-  GstPadAcceptCapsFunction	 acceptcapsfunc;
-  GstPadFixateCapsFunction	 fixatecapsfunc;
-
-  GstActivateMode		 mode;
-  GstPadActivateFunction	 activatefunc;
-  GstPadActivateModeFunction	 activatepushfunc;
-  GstPadActivateModeFunction	 activatepullfunc;
-
-  /* pad link */
-  GstPad			*peer;
-  GstPadLinkFunction		 linkfunc;
-  GstPadUnlinkFunction		 unlinkfunc;
-
-  /* data transport functions */
-  GstPadChainFunction		 chainfunc;
-  GstPadChainListFunction        chainlistfunc;
-  GstPadGetRangeFunction	 getrangefunc;
-  GstPadEventFunction		 eventfunc;
-
-  /* pad offset */
-  gint64                         offset;
-
-  /* generic query method */
-  GstPadQueryTypeFunction	 querytypefunc;
-  GstPadQueryFunction		 queryfunc;
-
-  /* internal links */
-  GstPadIterIntLinkFunction      iterintlinkfunc;
 };
 </pre>
 <p>
@@ -417,95 +460,6 @@
 <td>the direction of the pad, cannot change after creating
 the pad.</td>
 </tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> <em class="structfield"><code><a name="GstPad-struct.stream-rec-lock"></a>stream_rec_lock</code></em>;</span></p></td>
-<td>recursive stream lock of the pad, used to protect
-the data used in streaming.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *<em class="structfield"><code><a name="GstPad-struct.task"></a>task</code></em>;</span></p></td>
-<td>task for this pad if the pad is actively driving dataflow.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> *<em class="structfield"><code><a name="GstPad-struct.block-cond"></a>block_cond</code></em>;</span></p></td>
-<td>conditional to signal pad block</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Hook-Functions.html#GHookList"><span class="type">GHookList</span></a> <em class="structfield"><code><a name="GstPad-struct.probes"></a>probes</code></em>;</span></p></td>
-<td>installed probes</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()"><span class="type">GstPadGetCapsFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.getcapsfunc"></a>getcapsfunc</code></em>;</span></p></td>
-<td>function to get caps of the pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()"><span class="type">GstPadAcceptCapsFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.acceptcapsfunc"></a>acceptcapsfunc</code></em>;</span></p></td>
-<td>function to check if pad can accept caps</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()"><span class="type">GstPadFixateCapsFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.fixatecapsfunc"></a>fixatecapsfunc</code></em>;</span></p></td>
-<td>function to fixate caps</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstActivateMode" title="enum GstActivateMode"><span class="type">GstActivateMode</span></a> <em class="structfield"><code><a name="GstPad-struct.mode"></a>mode</code></em>;</span></p></td>
-<td>current activation mode of the pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.activatefunc"></a>activatefunc</code></em>;</span></p></td>
-<td>pad activation function</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.activatepushfunc"></a>activatepushfunc</code></em>;</span></p></td>
-<td>function to activate/deactivate pad in push mode</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.activatepullfunc"></a>activatepullfunc</code></em>;</span></p></td>
-<td>function to activate/deactivate pad in pull mode</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *<em class="structfield"><code><a name="GstPad-struct.peer"></a>peer</code></em>;</span></p></td>
-<td>the pad this pad is linked to</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.linkfunc"></a>linkfunc</code></em>;</span></p></td>
-<td>function called when pad is linked</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.unlinkfunc"></a>unlinkfunc</code></em>;</span></p></td>
-<td>function called when pad is unlinked</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.chainfunc"></a>chainfunc</code></em>;</span></p></td>
-<td>function to chain buffer to pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.chainlistfunc"></a>chainlistfunc</code></em>;</span></p></td>
-<td>function to chain a list of buffers to pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.getrangefunc"></a>getrangefunc</code></em>;</span></p></td>
-<td>function to get a range of data from a pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.eventfunc"></a>eventfunc</code></em>;</span></p></td>
-<td>function to send an event to a pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstPad-struct.offset"></a>offset</code></em>;</span></p></td>
-<td>the pad offset</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()"><span class="type">GstPadQueryTypeFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.querytypefunc"></a>querytypefunc</code></em>;</span></p></td>
-<td>get list of supported queries</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.queryfunc"></a>queryfunc</code></em>;</span></p></td>
-<td>perform a query on the pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> <em class="structfield"><code><a name="GstPad-struct.iterintlinkfunc"></a>iterintlinkfunc</code></em>;</span></p></td>
-<td>get the internal links iterator of this pad</td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -546,13 +500,15 @@
 <div class="refsect2">
 <a name="GstPadFlags"></a><h3>enum GstPadFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_PAD_BLOCKED          = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
-  GST_PAD_FLUSHING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
-  GST_PAD_IN_GETCAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
-  GST_PAD_BLOCKING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
-  GST_PAD_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
-  GST_PAD_NEED_EVENTS      = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
-  GST_PAD_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
+  GST_PAD_FLAG_BLOCKED          = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
+  GST_PAD_FLAG_FLUSHING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
+  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
+  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
+  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
+  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
+  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
+  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstPadFlags;
@@ -564,46 +520,60 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-PAD-BLOCKED:CAPS"></a><span class="term"><code class="literal">GST_PAD_BLOCKED</code></span></p></td>
+<td><p><a name="GST-PAD-FLAG-BLOCKED:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_BLOCKED</code></span></p></td>
 <td>is dataflow on a pad blocked
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-PAD-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLUSHING</code></span></p></td>
+<td><p><a name="GST-PAD-FLAG-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_FLUSHING</code></span></p></td>
 <td>is pad refusing buffers
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-PAD-IN-GETCAPS:CAPS"></a><span class="term"><code class="literal">GST_PAD_IN_GETCAPS</code></span></p></td>
-<td>GstPadGetCapsFunction() is running now
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PAD-BLOCKING:CAPS"></a><span class="term"><code class="literal">GST_PAD_BLOCKING</code></span></p></td>
+<td><p><a name="GST-PAD-FLAG-BLOCKING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_BLOCKING</code></span></p></td>
 <td>is pad currently blocking on a buffer or event
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-PAD-NEED-RECONFIGURE:CAPS"></a><span class="term"><code class="literal">GST_PAD_NEED_RECONFIGURE</code></span></p></td>
-<td>the pad should be reconfigured/renegotiated.
-                           The flag has to be unset manually after
-                           reconfiguration happened.
-                           Since: 0.10.34.
+<td><p><a name="GST-PAD-FLAG-NEED-PARENT:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_NEED_PARENT</code></span></p></td>
+<td>ensure that there is a parent object before calling
+                      into the pad callbacks.
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-PAD-NEED-EVENTS:CAPS"></a><span class="term"><code class="literal">GST_PAD_NEED_EVENTS</code></span></p></td>
+<td><p><a name="GST-PAD-FLAG-NEED-RECONFIGURE:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_NEED_RECONFIGURE</code></span></p></td>
+<td>the pad should be reconfigured/renegotiated.
+                           The flag has to be unset manually after
+                           reconfiguration happened.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-FLAG-PENDING-EVENTS:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_PENDING_EVENTS</code></span></p></td>
 <td>the pad has pending events
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-PAD-FIXED-CAPS"></a><span class="term"><code class="literal">GST_PAD_FIXED_CAPS</code></span></p></td>
+<td><p><a name="GST-PAD-FLAG-FIXED-CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_FIXED_CAPS</code></span></p></td>
 <td>the pad is using fixed caps this means that once the
-                     caps are set on the pad, the getcaps function only
+                     caps are set on the pad, the caps query function only
                      returns those caps.
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-PAD-FLAG-PROXY-CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_PROXY_CAPS</code></span></p></td>
+<td>the default event and query handler will forward
+                     all events and queries to the internally linked pads
+                     instead of discarding them.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-FLAG-PROXY-ALLOCATION:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_PROXY_ALLOCATION</code></span></p></td>
+<td>the default query handler will forward
+                     allocation queries to the internally linked pads
+                     instead of discarding them.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-PAD-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_LAST</code></span></p></td>
 <td>offset to define more flags
 </td>
@@ -755,7 +725,7 @@
 <tr>
 <td><p><a name="GST-PAD-LINK-CHECK-CAPS"></a><span class="term"><code class="literal">GST_PAD_LINK_CHECK_CAPS</code></span></p></td>
 <td>Check if the pads are compatible by comparing the
-  caps returned by <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a>.
+  caps returned by <a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()"><code class="function">gst_pad_query_caps()</code></a>.
 </td>
 </tr>
 </tbody>
@@ -783,13 +753,12 @@
   GST_FLOW_CUSTOM_SUCCESS = 100,
 
   /* core predefined */
-  GST_FLOW_RESEND	  =  1,
   GST_FLOW_OK		  =  0,
   /* expected failures */
   GST_FLOW_NOT_LINKED     = -1,
-  GST_FLOW_WRONG_STATE    = -2,
+  GST_FLOW_FLUSHING       = -2,
   /* error cases */
-  GST_FLOW_UNEXPECTED     = -3,
+  GST_FLOW_EOS            = -3,
   GST_FLOW_NOT_NEGOTIATED = -4,
   GST_FLOW_ERROR	  = -5,
   GST_FLOW_NOT_SUPPORTED  = -6,
@@ -830,12 +799,6 @@
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-FLOW-RESEND:CAPS"></a><span class="term"><code class="literal">GST_FLOW_RESEND</code></span></p></td>
-<td>Resend buffer, possibly with new caps (not
-                                sent yet) (unused/unimplemented).
-</td>
-</tr>
-<tr>
 <td><p><a name="GST-FLOW-OK:CAPS"></a><span class="term"><code class="literal">GST_FLOW_OK</code></span></p></td>
 <td>Data passing was ok.
 </td>
@@ -846,13 +809,13 @@
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-FLOW-WRONG-STATE:CAPS"></a><span class="term"><code class="literal">GST_FLOW_WRONG_STATE</code></span></p></td>
-<td>Pad is in wrong state.
+<td><p><a name="GST-FLOW-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_FLOW_FLUSHING</code></span></p></td>
+<td>Pad is flushing.
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-FLOW-UNEXPECTED:CAPS"></a><span class="term"><code class="literal">GST_FLOW_UNEXPECTED</code></span></p></td>
-<td>Did not expect anything, like after EOS.
+<td><p><a name="GST-FLOW-EOS:CAPS"></a><span class="term"><code class="literal">GST_FLOW_EOS</code></span></p></td>
+<td>Pad is EOS.
 </td>
 </tr>
 <tr>
@@ -896,33 +859,33 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstActivateMode"></a><h3>enum GstActivateMode</h3>
+<a name="GstPadMode"></a><h3>enum GstPadMode</h3>
 <pre class="programlisting">typedef enum {
-  GST_ACTIVATE_NONE,
-  GST_ACTIVATE_PUSH,
-  GST_ACTIVATE_PULL
-} GstActivateMode;
+  GST_PAD_MODE_NONE,
+  GST_PAD_MODE_PUSH,
+  GST_PAD_MODE_PULL
+} GstPadMode;
 </pre>
 <p>
 The status of a GstPad. After activating a pad, which usually happens when the
-parent element goes from READY to PAUSED, the GstActivateMode defines if the
+parent element goes from READY to PAUSED, the GstPadMode defines if the
 pad operates in push or pull mode.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-ACTIVATE-NONE:CAPS"></a><span class="term"><code class="literal">GST_ACTIVATE_NONE</code></span></p></td>
+<td><p><a name="GST-PAD-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_PAD_MODE_NONE</code></span></p></td>
 <td>Pad will not handle dataflow
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-ACTIVATE-PUSH:CAPS"></a><span class="term"><code class="literal">GST_ACTIVATE_PUSH</code></span></p></td>
+<td><p><a name="GST-PAD-MODE-PUSH:CAPS"></a><span class="term"><code class="literal">GST_PAD_MODE_PUSH</code></span></p></td>
 <td>Pad handles dataflow in downstream push mode
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-ACTIVATE-PULL:CAPS"></a><span class="term"><code class="literal">GST_ACTIVATE_PULL</code></span></p></td>
+<td><p><a name="GST-PAD-MODE-PULL:CAPS"></a><span class="term"><code class="literal">GST_PAD_MODE_PULL</code></span></p></td>
 <td>Pad handles dataflow in upstream pull mode
 </td>
 </tr>
@@ -931,131 +894,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstProbeReturn"></a><h3>enum GstProbeReturn</h3>
-<pre class="programlisting">typedef enum {
-  GST_PROBE_DROP,
-  GST_PROBE_OK,
-  GST_PROBE_REMOVE,
-  GST_PROBE_PASS,
-} GstProbeReturn;
-</pre>
-<p>
-Different return values for the <a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()"><span class="type">GstPadProbeCallback</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-PROBE-DROP:CAPS"></a><span class="term"><code class="literal">GST_PROBE_DROP</code></span></p></td>
-<td>drop data in data probes
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-OK:CAPS"></a><span class="term"><code class="literal">GST_PROBE_OK</code></span></p></td>
-<td>normal probe return value
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-REMOVE:CAPS"></a><span class="term"><code class="literal">GST_PROBE_REMOVE</code></span></p></td>
-<td>remove probe
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-PASS:CAPS"></a><span class="term"><code class="literal">GST_PROBE_PASS</code></span></p></td>
-<td>pass the data item in the block probe and block on
-                        the next item
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstProbeType"></a><h3>enum GstProbeType</h3>
-<pre class="programlisting">typedef enum {
-  GST_PROBE_TYPE_INVALID      = 0,
-  /* flags to control blocking */
-  GST_PROBE_TYPE_IDLE         = (1 &lt;&lt; 0),
-  GST_PROBE_TYPE_BLOCK        = (1 &lt;&lt; 1),
-  /* flags to select datatypes */
-  GST_PROBE_TYPE_BUFFER       = (1 &lt;&lt; 2),
-  GST_PROBE_TYPE_BUFFER_LIST  = (1 &lt;&lt; 3),
-  GST_PROBE_TYPE_EVENT        = (1 &lt;&lt; 4),
-  /* flags to select scheduling mode */
-  GST_PROBE_TYPE_PUSH         = (1 &lt;&lt; 5),
-  GST_PROBE_TYPE_PULL         = (1 &lt;&lt; 6),
-} GstProbeType;
-</pre>
-<p>
-The different probing types that can occur. When either one of
-<em class="parameter"><code>GST_PROBE_TYPE_IDLE</code></em> or <em class="parameter"><code>GST_PROBE_TYPE_BLOCK</code></em> is used, the probe will be a
-blocking probe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_INVALID</code></span></p></td>
-<td>invalid probe type
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-IDLE:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_IDLE</code></span></p></td>
-<td>probe idle pads and block
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-BLOCK:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_BLOCK</code></span></p></td>
-<td>probe and block pads
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_BUFFER</code></span></p></td>
-<td>probe buffers
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-BUFFER-LIST:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_BUFFER_LIST</code></span></p></td>
-<td>probe buffer lists
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-EVENT:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_EVENT</code></span></p></td>
-<td>probe events
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-PUSH:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_PUSH</code></span></p></td>
-<td>probe push
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-PROBE-TYPE-PULL:CAPS"></a><span class="term"><code class="literal">GST_PROBE_TYPE_PULL</code></span></p></td>
-<td>probe pull
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PROBE-TYPE-BLOCKING:CAPS"></a><h3>GST_PROBE_TYPE_BLOCKING</h3>
-<pre class="programlisting">#define GST_PROBE_TYPE_BLOCKING   (GST_PROBE_TYPE_IDLE | GST_PROBE_TYPE_BLOCK)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PROBE-TYPE-DATA:CAPS"></a><h3>GST_PROBE_TYPE_DATA</h3>
-<pre class="programlisting">#define             GST_PROBE_TYPE_DATA</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PROBE-TYPE-SCHEDULING:CAPS"></a><h3>GST_PROBE_TYPE_SCHEDULING</h3>
-<pre class="programlisting">#define GST_PROBE_TYPE_SCHEDULING (GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_PULL)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-pad-get-name"></a><h3>gst_pad_get_name()</h3>
 <pre class="programlisting">#define gst_pad_get_name(pad) gst_object_get_name (GST_OBJECT_CAST (pad))
 </pre>
@@ -1318,54 +1156,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-get-caps"></a><h3>gst_pad_get_caps ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_get_caps                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>
-Gets the capabilities this pad can produce or consume.
-Note that this method doesn't necessarily return the caps set by
-<a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()"><code class="function">gst_pad_set_caps()</code></a> - use <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()"><code class="function">gst_pad_get_current_caps()</code></a> for that instead.
-gst_pad_get_caps returns all possible caps a pad can operate with, using
-the pad's get_caps function;
-this returns the pad template caps if not explicitly set.
-</p>
-<p>
-When called on sinkpads <em class="parameter"><code>filter</code></em> contains the caps that
-upstream could produce in the order preferred by upstream. When
-called on srcpads <em class="parameter"><code>filter</code></em> contains the caps accepted by
-downstream in the preffered order. <em class="parameter"><code>filter</code></em> might be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> but
-if it is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> the returned caps will be a subset of <em class="parameter"><code>filter</code></em>.
-</p>
-<p>
-Note that this function does not return writable <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>, use
-<a class="link" href="gstreamer-GstCaps.html#gst-caps-make-writable" title="gst_caps_make_writable()"><code class="function">gst_caps_make_writable()</code></a> before modifying the caps.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>suggested <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the caps of the pad with incremented ref-count.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-get-caps-reffed"></a><h3>gst_pad_get_caps_reffed()</h3>
-<pre class="programlisting">#define gst_pad_get_caps_reffed(p)             gst_pad_get_caps(p)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-pad-get-allowed-caps"></a><h3>gst_pad_get_allowed_caps ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_get_allowed_caps            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
@@ -1374,7 +1164,7 @@
 </p>
 <p>
 The allowed capabilities is calculated as the intersection of the results of
-calling <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a> on <em class="parameter"><code>pad</code></em> and its peer. The caller owns a reference
+calling <a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()"><code class="function">gst_pad_query_caps()</code></a> on <em class="parameter"><code>pad</code></em> and its peer. The caller owns a reference
 on the resulting caps.
 </p>
 <div class="variablelist"><table border="0">
@@ -1499,47 +1289,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-peer-get-caps"></a><h3>gst_pad_peer_get_caps ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_peer_get_caps               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>
-Gets the capabilities of the peer connected to this pad. Similar to
-<a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a>.
-</p>
-<p>
-When called on srcpads <em class="parameter"><code>filter</code></em> contains the caps that
-upstream could produce in the order preferred by upstream. When
-called on sinkpads <em class="parameter"><code>filter</code></em> contains the caps accepted by
-downstream in the preffered order. <em class="parameter"><code>filter</code></em> might be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> but
-if it is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> the returned caps will be a subset of <em class="parameter"><code>filter</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> filter.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the caps of the peer pad with incremented ref-count. This function
-returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no peer pad.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-peer-get-caps-reffed"></a><h3>gst_pad_peer_get_caps_reffed()</h3>
-<pre class="programlisting">#define gst_pad_peer_get_caps_reffed(p)        gst_pad_peer_get_caps(p)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-pad-use-fixed-caps"></a><h3>gst_pad_use_fixed_caps ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_use_fixed_caps              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
@@ -1584,7 +1333,8 @@
 <div class="refsect2">
 <a name="gst-pad-get-sticky-event"></a><h3>gst_pad_get_sticky_event ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_pad_get_sticky_event            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> event_type</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> event_type</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
 <p>
 Returns a new reference of the sticky event of type <em class="parameter"><code>event_type</code></em>
 from the event.
@@ -1601,8 +1351,13 @@
 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> that should be retrieved.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index of the event</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> of type <em class="parameter"><code>event_type</code></em>. Unref after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> of type <em class="parameter"><code>event_type</code></em> or NULL when no
+event of <em class="parameter"><code>event_type</code></em> was on <em class="parameter"><code>pad</code></em>. Unref after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1611,13 +1366,23 @@
 <hr>
 <div class="refsect2">
 <a name="GstPadStickyEventsForeachFunction"></a><h3>GstPadStickyEventsForeachFunction ()</h3>
-<pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstPadStickyEventsForeachFunction)
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadStickyEventsForeachFunction)
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Callback used by <a class="link" href="GstPad.html#gst-pad-sticky-events-foreach" title="gst_pad_sticky_events_foreach ()"><code class="function">gst_pad_sticky_events_foreach()</code></a>.
 </p>
+<p>
+When this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the next event will be
+returned. When <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned, <a class="link" href="GstPad.html#gst-pad-sticky-events-foreach" title="gst_pad_sticky_events_foreach ()"><code class="function">gst_pad_sticky_events_foreach()</code></a> will return.
+</p>
+<p>
+When <em class="parameter"><code>event</code></em> is set to NULL, the item will be removed from the list of sticky events.
+When <em class="parameter"><code>event</code></em> has been made writable, the new buffer reference can be assigned
+to <em class="parameter"><code>event</code></em>. This function is responsible for unreffing the old event when
+removing or modifying.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1627,7 +1392,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>the sticky <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
+<td>a sticky <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -1635,7 +1400,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>GST_FLOW_OK if the iteration should continue</td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the iteration should continue</td>
 </tr>
 </tbody>
 </table></div>
@@ -1643,13 +1409,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-pad-sticky-events-foreach"></a><h3>gst_pad_sticky_events_foreach ()</h3>
-<pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_pad_sticky_events_foreach       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_sticky_events_foreach       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()"><span class="type">GstPadStickyEventsForeachFunction</span></a> foreach_func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
-Iterates all active sticky events on <em class="parameter"><code>pad</code></em> and calls <em class="parameter"><code>foreach_func</code></em> for every
-event. If <em class="parameter"><code>foreach_func</code></em> returns something else than GST_FLOW_OK the iteration
-is immediately stopped.
+Iterates all sticky events on <em class="parameter"><code>pad</code></em> and calls <em class="parameter"><code>foreach_func</code></em> for every
+event. If <em class="parameter"><code>foreach_func</code></em> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> the iteration is immediately stopped.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1660,7 +1425,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>foreach_func</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()"><span class="type">GstPadStickyEventsForeachFunction</span></a> that should be called for every event. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
+<td>the <a class="link" href="GstPad.html#GstPadStickyEventsForeachFunction" title="GstPadStickyEventsForeachFunction ()"><span class="type">GstPadStickyEventsForeachFunction</span></a> that
+should be called for every event. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1668,10 +1434,6 @@
 <td>the optional user data. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
 </td>
 </tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>GST_FLOW_OK if iteration was successful</td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -1699,63 +1461,309 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-is-blocked"></a><h3>gst_pad_is_blocked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_is_blocked                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<a name="GstPadProbeReturn"></a><h3>enum GstPadProbeReturn</h3>
+<pre class="programlisting">typedef enum {
+  GST_PAD_PROBE_DROP,
+  GST_PAD_PROBE_OK,
+  GST_PAD_PROBE_REMOVE,
+  GST_PAD_PROBE_PASS,
+} GstPadProbeReturn;
+</pre>
 <p>
-Checks if the pad is blocked or not. This function returns the
-last requested state of the pad. It is not certain that the pad
-is actually blocking at this point (see <a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()"><code class="function">gst_pad_is_blocking()</code></a>).
+Different return values for the <a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()"><span class="type">GstPadProbeCallback</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query</td>
+<td><p><a name="GST-PAD-PROBE-DROP:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_DROP</code></span></p></td>
+<td>drop data in data probes. For push mode this means that
+       the data item is not sent downstream. For pull mode, it means that the
+       data item is not passed upstream. In both cases, this result code
+       returns <a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to the caller.
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the pad is blocked.
-MT safe.</td>
+<td><p><a name="GST-PAD-PROBE-OK:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_OK</code></span></p></td>
+<td>normal probe return value
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-REMOVE:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_REMOVE</code></span></p></td>
+<td>remove probe
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-PASS:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_PASS</code></span></p></td>
+<td>pass the data item in the block probe and block on
+                        the next item
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-is-blocking"></a><h3>gst_pad_is_blocking ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_is_blocking                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<a name="GstPadProbeType"></a><h3>enum GstPadProbeType</h3>
+<pre class="programlisting">typedef enum {
+  GST_PAD_PROBE_TYPE_INVALID          = 0,
+  /* flags to control blocking */
+  GST_PAD_PROBE_TYPE_IDLE             = (1 &lt;&lt; 0),
+  GST_PAD_PROBE_TYPE_BLOCK            = (1 &lt;&lt; 1),
+  /* flags to select datatypes */
+  GST_PAD_PROBE_TYPE_BUFFER           = (1 &lt;&lt; 4),
+  GST_PAD_PROBE_TYPE_BUFFER_LIST      = (1 &lt;&lt; 5),
+  GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM = (1 &lt;&lt; 6),
+  GST_PAD_PROBE_TYPE_EVENT_UPSTREAM   = (1 &lt;&lt; 7),
+  GST_PAD_PROBE_TYPE_EVENT_FLUSH      = (1 &lt;&lt; 8),
+  GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM = (1 &lt;&lt; 9),
+  GST_PAD_PROBE_TYPE_QUERY_UPSTREAM   = (1 &lt;&lt; 10),
+  /* flags to select scheduling mode */
+  GST_PAD_PROBE_TYPE_PUSH             = (1 &lt;&lt; 12),
+  GST_PAD_PROBE_TYPE_PULL             = (1 &lt;&lt; 13)
+} GstPadProbeType;
+</pre>
 <p>
-Checks if the pad is blocking or not. This is a guaranteed state
-of whether the pad is actually blocking on a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> or a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.
+The different probing types that can occur. When either one of
+<em class="parameter"><code>GST_PAD_PROBE_TYPE_IDLE</code></em> or <em class="parameter"><code>GST_PAD_PROBE_TYPE_BLOCK</code></em> is used, the probe will be a
+blocking probe.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query</td>
+<td><p><a name="GST-PAD-PROBE-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_INVALID</code></span></p></td>
+<td>invalid probe type
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the pad is blocking.
-MT safe.</td>
+<td><p><a name="GST-PAD-PROBE-TYPE-IDLE:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_IDLE</code></span></p></td>
+<td>probe idle pads and block
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-BLOCK:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_BLOCK</code></span></p></td>
+<td>probe and block pads
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_BUFFER</code></span></p></td>
+<td>probe buffers
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-BUFFER-LIST:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_BUFFER_LIST</code></span></p></td>
+<td>probe buffer lists
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-EVENT-DOWNSTREAM:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM</code></span></p></td>
+<td>probe downstream events
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-EVENT-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_EVENT_UPSTREAM</code></span></p></td>
+<td>probe upstream events
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-EVENT-FLUSH:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_EVENT_FLUSH</code></span></p></td>
+<td>probe flush events. This probe has to be
+    explicitly enabled and is not included in the
+    @<em class="parameter"><code>GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM</code></em> or
+    @<em class="parameter"><code>GST_PAD_PROBE_TYPE_EVENT_UPSTREAM</code></em> probe types.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-QUERY-DOWNSTREAM:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM</code></span></p></td>
+<td>probe downstream queries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-QUERY-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_QUERY_UPSTREAM</code></span></p></td>
+<td>probe upstream queries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-PUSH:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_PUSH</code></span></p></td>
+<td>probe push
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-PROBE-TYPE-PULL:CAPS"></a><span class="term"><code class="literal">GST_PAD_PROBE_TYPE_PULL</code></span></p></td>
+<td>probe pull
+</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-BLOCKING:CAPS"></a><h3>GST_PAD_PROBE_TYPE_BLOCKING</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_TYPE_BLOCKING         (GST_PAD_PROBE_TYPE_IDLE | GST_PAD_PROBE_TYPE_BLOCK)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS"></a><h3>GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM (GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS"></a><h3>GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM   (GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_DATA_UPSTREAM)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS"></a><h3>GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM</h3>
+<pre class="programlisting">#define             GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS"></a><h3>GST_PAD_PROBE_TYPE_DATA_UPSTREAM</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_TYPE_DATA_UPSTREAM    (GST_PAD_PROBE_TYPE_EVENT_UPSTREAM)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS"></a><h3>GST_PAD_PROBE_TYPE_DATA_BOTH</h3>
+<pre class="programlisting">#define             GST_PAD_PROBE_TYPE_DATA_BOTH</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS"></a><h3>GST_PAD_PROBE_TYPE_EVENT_BOTH</h3>
+<pre class="programlisting">#define             GST_PAD_PROBE_TYPE_EVENT_BOTH</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS"></a><h3>GST_PAD_PROBE_TYPE_QUERY_BOTH</h3>
+<pre class="programlisting">#define             GST_PAD_PROBE_TYPE_QUERY_BOTH</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS"></a><h3>GST_PAD_PROBE_TYPE_ALL_BOTH</h3>
+<pre class="programlisting">#define             GST_PAD_PROBE_TYPE_ALL_BOTH</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-TYPE-SCHEDULING:CAPS"></a><h3>GST_PAD_PROBE_TYPE_SCHEDULING</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_TYPE_SCHEDULING       (GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_PULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPadProbeInfo"></a><h3>struct GstPadProbeInfo</h3>
+<pre class="programlisting">struct GstPadProbeInfo {
+  GstPadProbeType type;
+  gulong id;
+  gpointer data;
+  guint64 offset;
+  guint size;
+};
+</pre>
+<p>
+Info passed in the <a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()"><span class="type">GstPadProbeCallback</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="GstPad.html#GstPadProbeType" title="enum GstPadProbeType"><span class="type">GstPadProbeType</span></a> <em class="structfield"><code><a name="GstPadProbeInfo.type"></a>type</code></em>;</span></p></td>
+<td>the current probe type</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> <em class="structfield"><code><a name="GstPadProbeInfo.id"></a>id</code></em>;</span></p></td>
+<td>the id of the probe</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstPadProbeInfo.data"></a>data</code></em>;</span></p></td>
+<td>type specific data, check the <em class="parameter"><code>type</code></em> field to know the datatype.
+This field can be NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstPadProbeInfo.offset"></a>offset</code></em>;</span></p></td>
+<td>offset of pull probe, this field is valid when <em class="parameter"><code>type</code></em> contains
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-PULL:CAPS"><span class="type">GST_PAD_PROBE_TYPE_PULL</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstPadProbeInfo.size"></a>size</code></em>;</span></p></td>
+<td>size of pull probe, this field is valid when <em class="parameter"><code>type</code></em> contains
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-PULL:CAPS"><span class="type">GST_PAD_PROBE_TYPE_PULL</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-TYPE:CAPS"></a><h3>GST_PAD_PROBE_INFO_TYPE()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_TYPE(d)         ((d)-&gt;type)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-ID:CAPS"></a><h3>GST_PAD_PROBE_INFO_ID()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_ID(d)           ((d)-&gt;id)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-DATA:CAPS"></a><h3>GST_PAD_PROBE_INFO_DATA()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_DATA(d)         ((d)-&gt;data)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-BUFFER:CAPS"></a><h3>GST_PAD_PROBE_INFO_BUFFER()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_BUFFER(d)       GST_BUFFER_CAST(GST_PAD_PROBE_INFO_DATA(d))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS"></a><h3>GST_PAD_PROBE_INFO_BUFFER_LIST()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_BUFFER_LIST(d)  GST_BUFFER_LIST_CAST(GST_PAD_PROBE_INFO_DATA(d))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-EVENT:CAPS"></a><h3>GST_PAD_PROBE_INFO_EVENT()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_EVENT(d)        GST_EVENT_CAST(GST_PAD_PROBE_INFO_DATA(d))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-QUERY:CAPS"></a><h3>GST_PAD_PROBE_INFO_QUERY()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_QUERY(d)        GST_QUERY_CAST(GST_PAD_PROBE_INFO_DATA(d))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-OFFSET:CAPS"></a><h3>GST_PAD_PROBE_INFO_OFFSET()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_OFFSET(d)       ((d)-&gt;offset)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PAD-PROBE-INFO-SIZE:CAPS"></a><h3>GST_PAD_PROBE_INFO_SIZE()</h3>
+<pre class="programlisting">#define GST_PAD_PROBE_INFO_SIZE(d)         ((d)-&gt;size)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstPadProbeCallback"></a><h3>GstPadProbeCallback ()</h3>
-<pre class="programlisting"><a class="link" href="GstPad.html#GstProbeReturn" title="enum GstProbeReturn"><span class="returnvalue">GstProbeReturn</span></a>      (*GstPadProbeCallback)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType"><span class="type">GstProbeType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> type_data</code></em>,
+<pre class="programlisting"><a class="link" href="GstPad.html#GstPadProbeReturn" title="enum GstPadProbeReturn"><span class="returnvalue">GstPadProbeReturn</span></a>   (*GstPadProbeCallback)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Callback used by <a class="link" href="GstPad.html#gst-pad-add-probe" title="gst_pad_add_probe ()"><code class="function">gst_pad_add_probe()</code></a>. Gets called to notify about the current
 blocking type.
 </p>
+<p>
+The callback is allowed to modify the data pointer in <em class="parameter"><code>info</code></em>.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1764,12 +1772,8 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> that is blocked</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the current probe type</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type_data</code></em> :</span></p></td>
-<td>type specific data</td>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td><a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo"><span class="type">GstPadProbeInfo</span></a></td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -1782,7 +1786,7 @@
 <div class="refsect2">
 <a name="gst-pad-add-probe"></a><h3>gst_pad_add_probe ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a>              gst_pad_add_probe                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType"><span class="type">GstProbeType</span></a> mask</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeType" title="enum GstPadProbeType"><span class="type">GstPadProbeType</span></a> mask</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadProbeCallback" title="GstPadProbeCallback ()"><span class="type">GstPadProbeCallback</span></a> callback</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_data</code></em>);</pre>
@@ -1790,15 +1794,6 @@
 Be notified of different states of pads. The provided callback is called for
 every state that matches <em class="parameter"><code>mask</code></em>.
 </p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>
- Pad probe handlers are only called for source pads in push mode
- and sink pads in pull mode.
-</div>
-<p>
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1862,8 +1857,56 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-pad-is-blocked"></a><h3>gst_pad_is_blocked ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_is_blocked                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<p>
+Checks if the pad is blocked or not. This function returns the
+last requested state of the pad. It is not certain that the pad
+is actually blocking at this point (see <a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()"><code class="function">gst_pad_is_blocking()</code></a>).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the pad is blocked.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-is-blocking"></a><h3>gst_pad_is_blocking ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_is_blocking                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<p>
+Checks if the pad is blocking or not. This is a guaranteed state
+of whether the pad is actually blocking on a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> or a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the pad is blocking.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.11</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-pad-get-offset"></a><h3>gst_pad_get_offset ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_pad_get_offset                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_pad_get_offset                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Get the offset applied to the running time of <em class="parameter"><code>pad</code></em>. <em class="parameter"><code>pad</code></em> has to be a source
 pad.
@@ -1887,7 +1930,7 @@
 <div class="refsect2">
 <a name="gst-pad-set-offset"></a><h3>gst_pad_set_offset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_offset                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> offset</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> offset</code></em>);</pre>
 <p>
 Set the offset that will be applied to the running time of <em class="parameter"><code>pad</code></em>.
 </p>
@@ -1931,7 +1974,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or NULL in case of an error.
-MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+MT safe. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -1999,9 +2042,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-chain-function"></a><h3>gst_pad_set_chain_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_chain_function          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> chain</code></em>);</pre>
+<a name="gst-pad-set-chain-function"></a><h3>gst_pad_set_chain_function()</h3>
+<pre class="programlisting">#define gst_pad_set_chain_function(p,f)         gst_pad_set_chain_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-chain-function-full"></a><h3>gst_pad_set_chain_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_chain_function_full     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> chain</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given chain function for the pad. The chain function is called to
 process a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> input buffer. see <a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> for more details.
@@ -2017,6 +2068,15 @@
 <td><p><span class="term"><em class="parameter"><code>chain</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>chain</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2024,6 +2084,7 @@
 <div class="refsect2">
 <a name="GstPadChainFunction"></a><h3>GstPadChainFunction ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstPadChainFunction)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 A function that will be called on sinkpads when chaining buffers.
@@ -2046,6 +2107,12 @@
 <td>the sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> that performed the chain.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> that is chained, not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
@@ -2059,9 +2126,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-chain-list-function"></a><h3>gst_pad_set_chain_list_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_chain_list_function     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> chainlist</code></em>);</pre>
+<a name="gst-pad-set-chain-list-function"></a><h3>gst_pad_set_chain_list_function()</h3>
+<pre class="programlisting">#define gst_pad_set_chain_list_function(p,f)    gst_pad_set_chain_list_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-chain-list-function-full"></a><h3>gst_pad_set_chain_list_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_chain_list_function_full
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> chainlist</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given chain list function for the pad. The chainlist function is
 called to process a <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> input buffer list. See
@@ -2078,6 +2154,15 @@
 <td><p><span class="term"><em class="parameter"><code>chainlist</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>chainlist</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 <p class="since">Since 0.10.24</p>
@@ -2086,6 +2171,7 @@
 <div class="refsect2">
 <a name="GstPadChainListFunction"></a><h3>GstPadChainListFunction ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstPadChainListFunction)          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 A function that will be called on sinkpads when chaining buffer lists.
@@ -2108,6 +2194,12 @@
 <td>the sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> that performed the chain.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> that is chained, not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
 </tr>
@@ -2123,20 +2215,41 @@
 <div class="refsect2">
 <a name="gst-pad-get-range"></a><h3>gst_pad_get_range ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_pad_get_range                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 <p>
-When <em class="parameter"><code>pad</code></em> is flushing this function returns <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a>
+When <em class="parameter"><code>pad</code></em> is flushing this function returns <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>
 immediately and <em class="parameter"><code>buffer</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
 </p>
 <p>
 Calls the getrange function of <em class="parameter"><code>pad</code></em>, see <a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> for a
 description of a getrange function. If <em class="parameter"><code>pad</code></em> has no getrange function
-installed (see <a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function ()"><code class="function">gst_pad_set_getrange_function()</code></a>) this function returns
+installed (see <a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function()"><code class="function">gst_pad_set_getrange_function()</code></a>) this function returns
 <a class="link" href="GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS"><span class="type">GST_FLOW_NOT_SUPPORTED</span></a>.
 </p>
 <p>
+If <em class="parameter"><code>buffer</code></em> points to a variable holding NULL, a valid new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> will be
+placed in <em class="parameter"><code>buffer</code></em> when this function returns <a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>. The new buffer
+must be freed with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a> after usage.
+</p>
+<p>
+When <em class="parameter"><code>buffer</code></em> points to a variable that points to a valid <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>, the
+buffer will be filled with the result data when this function returns
+<a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>. If the provided buffer is larger than <em class="parameter"><code>size</code></em>, only
+<em class="parameter"><code>size</code></em> bytes will be filled in the result buffer and its size will be updated
+accordingly.
+</p>
+<p>
+Note that less than <em class="parameter"><code>size</code></em> bytes can be returned in <em class="parameter"><code>buffer</code></em> when, for example,
+an EOS condition is near or when <em class="parameter"><code>buffer</code></em> is not large enough to hold <em class="parameter"><code>size</code></em>
+bytes. The caller should check the result buffer size to get the result size.
+</p>
+<p>
+When this function returns any other result value than <a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>, <em class="parameter"><code>buffer</code></em>
+will be unchanged.
+</p>
+<p>
 This is a lowlevel function. Usualy <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a> is used.
 </p>
 <div class="variablelist"><table border="0">
@@ -2170,9 +2283,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-getrange-function"></a><h3>gst_pad_set_getrange_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_getrange_function       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> get</code></em>);</pre>
+<a name="gst-pad-set-getrange-function"></a><h3>gst_pad_set_getrange_function()</h3>
+<pre class="programlisting">#define gst_pad_set_getrange_function(p,f)      gst_pad_set_getrange_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-getrange-function-full"></a><h3>gst_pad_set_getrange_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_getrange_function_full  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> get</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given getrange function for the pad. The getrange function is
 called to produce a new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to start the processing pipeline. see
@@ -2189,6 +2310,15 @@
 <td><p><span class="term"><em class="parameter"><code>get</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>get</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2196,7 +2326,8 @@
 <div class="refsect2">
 <a name="GstPadGetRangeFunction"></a><h3>GstPadGetRangeFunction ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstPadGetRangeFunction)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 <p>
@@ -2207,8 +2338,8 @@
 </p>
 <p>
 This function is installed on a source pad with
-<a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function ()"><code class="function">gst_pad_set_getrange_function()</code></a> and can only be called on source pads after
-they are successfully activated with <a class="link" href="GstPad.html#gst-pad-activate-pull" title="gst_pad_activate_pull ()"><code class="function">gst_pad_activate_pull()</code></a>.
+<a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function()"><code class="function">gst_pad_set_getrange_function()</code></a> and can only be called on source pads after
+they are successfully activated with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-activate-pull"><code class="function">gst_pad_activate_pull()</code></a>.
 </p>
 <p>
 <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>length</code></em> are always given in byte units. <em class="parameter"><code>offset</code></em> must normally be a value
@@ -2218,7 +2349,7 @@
 </p>
 <p>
 Any <em class="parameter"><code>offset</code></em> larger or equal than the length will make the function return
-<a class="link" href="GstPad.html#GST-FLOW-UNEXPECTED:CAPS"><span class="type">GST_FLOW_UNEXPECTED</span></a>, which corresponds to EOS. In this case <em class="parameter"><code>buffer</code></em> does not
+<a class="link" href="GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a>, which corresponds to EOS. In this case <em class="parameter"><code>buffer</code></em> does not
 contain a valid buffer.
 </p>
 <p>
@@ -2248,6 +2379,12 @@
 <td>the src <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to perform the getrange on.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
 <td>the offset of the range</td>
 </tr>
@@ -2270,9 +2407,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-event-function"></a><h3>gst_pad_set_event_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_event_function          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> event</code></em>);</pre>
+<a name="gst-pad-set-event-function"></a><h3>gst_pad_set_event_function()</h3>
+<pre class="programlisting">#define gst_pad_set_event_function(p,f)         gst_pad_set_event_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-event-function-full"></a><h3>gst_pad_set_event_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_event_function_full     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given event handler for the pad.
 </p>
@@ -2287,6 +2432,15 @@
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>event</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2294,6 +2448,7 @@
 <div class="refsect2">
 <a name="GstPadEventFunction"></a><h3>GstPadEventFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadEventFunction)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
 <p>
 Function signature to handle an event for the pad.
@@ -2306,6 +2461,12 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to handle the event.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to handle.</td>
 </tr>
@@ -2318,9 +2479,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-link-function"></a><h3>gst_pad_set_link_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_link_function           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> link</code></em>);</pre>
+<a name="gst-pad-set-link-function"></a><h3>gst_pad_set_link_function()</h3>
+<pre class="programlisting">#define gst_pad_set_link_function(p,f)          gst_pad_set_link_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-link-function-full"></a><h3>gst_pad_set_link_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_link_function_full      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> link</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given link function for the pad. It will be called when
 the pad is linked with another pad.
@@ -2348,6 +2517,15 @@
 <td><p><span class="term"><em class="parameter"><code>link</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>link</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2379,9 +2557,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-unlink-function"></a><h3>gst_pad_set_unlink_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_unlink_function         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> unlink</code></em>);</pre>
+<a name="gst-pad-set-unlink-function"></a><h3>gst_pad_set_unlink_function()</h3>
+<pre class="programlisting">#define gst_pad_set_unlink_function(p,f)        gst_pad_set_unlink_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-unlink-function-full"></a><h3>gst_pad_set_unlink_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_unlink_function_full    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> unlink</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given unlink function for the pad. It will be called
 when the pad is unlinked.
@@ -2397,6 +2583,15 @@
 <td><p><span class="term"><em class="parameter"><code>unlink</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>unlink</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2417,179 +2612,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-accept-caps"></a><h3>gst_pad_accept_caps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_accept_caps                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<a name="gst-pad-proxy-query-caps"></a><h3>gst_pad_proxy_query_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_proxy_query_caps            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
-Check if the given pad accepts the caps.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check on the pad</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the pad can accept the caps.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-set-acceptcaps-function"></a><h3>gst_pad_set_acceptcaps_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_acceptcaps_function     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()"><span class="type">GstPadAcceptCapsFunction</span></a> acceptcaps</code></em>);</pre>
-<p>
-Sets the given acceptcaps function for the pad.  The acceptcaps function
-will be called to check if the pad can accept the given caps. Setting the
-acceptcaps function to NULL restores the default behaviour of allowing
-any caps that matches the caps from <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>acceptcaps</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()"><span class="type">GstPadAcceptCapsFunction</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstPadAcceptCapsFunction"></a><h3>GstPadAcceptCapsFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadAcceptCapsFunction)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Check if <em class="parameter"><code>pad</code></em> can accept <em class="parameter"><code>caps</code></em>. By default this function will see if <em class="parameter"><code>caps</code></em>
-intersect with the result from <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a> by can be overridden to
-perform extra checks.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the caps can be accepted by the pad.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-set-getcaps-function"></a><h3>gst_pad_set_getcaps_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_getcaps_function        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()"><span class="type">GstPadGetCapsFunction</span></a> getcaps</code></em>);</pre>
-<p>
-Sets the given getcaps function for the pad. <em class="parameter"><code>getcaps</code></em> should return the
-allowable caps for a pad in the context of the element's state, its link to
-other elements, and the devices or files it has opened. These caps must be a
-subset of the pad template caps. In the NULL state with no links, <em class="parameter"><code>getcaps</code></em>
-should ideally return the same caps as the pad template. In rare
-circumstances, an object property can affect the caps returned by <em class="parameter"><code>getcaps</code></em>,
-but this is discouraged.
+Calls <a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()"><code class="function">gst_pad_query_caps()</code></a> for all internally linked pads fof <em class="parameter"><code>pad</code></em> and returns
+the intersection of the results.
 </p>
 <p>
-You do not need to call this function if <em class="parameter"><code>pad</code></em>'s allowed caps are always the
-same as the pad template caps. This can only be true if the padtemplate
-has fixed simple caps.
-</p>
-<p>
-For most filters, the caps returned by <em class="parameter"><code>getcaps</code></em> is directly affected by the
-allowed caps on other pads. For demuxers and decoders, the caps returned by
-the srcpad's getcaps function is directly related to the stream data. Again,
-<em class="parameter"><code>getcaps</code></em> should return the most specific caps it reasonably can, since this
-helps with autoplugging.
-</p>
-<p>
-Note that the return value from <em class="parameter"><code>getcaps</code></em> is owned by the caller, so the
-caller should unref the caps after usage.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>getcaps</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()"><span class="type">GstPadGetCapsFunction</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstPadGetCapsFunction"></a><h3>GstPadGetCapsFunction ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           (*GstPadGetCapsFunction)            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>
-When called on sinkpads <em class="parameter"><code>filter</code></em> contains the caps that
-upstream could produce in the order preferred by upstream. When
-called on srcpads <em class="parameter"><code>filter</code></em> contains the caps accepted by
-downstream in the preffered order. <em class="parameter"><code>filter</code></em> might be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> but if
-it is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> only a subset of <em class="parameter"><code>filter</code></em> must be returned.
-</p>
-<p>
-Returns a copy of the capabilities of the specified pad. By default this
-function will return the pad template capabilities, but can optionally
-be overridden by elements.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>filter <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated copy <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> of the pad.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-proxy-getcaps"></a><h3>gst_pad_proxy_getcaps ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_proxy_getcaps               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>
-Calls <a class="link" href="GstPad.html#gst-pad-get-allowed-caps" title="gst_pad_get_allowed_caps ()"><code class="function">gst_pad_get_allowed_caps()</code></a> for every other pad belonging to the
-same element as <em class="parameter"><code>pad</code></em>, and returns the intersection of the results.
-</p>
-<p>
-This function is useful as a default getcaps function for an element
+This function is useful as a default caps query function for an element
 that can handle any stream format, but requires all its pads to have
 the same caps.  Two such elements are tee and adder.
 </p>
-<p>
-Free-function: gst_caps_unref
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -2598,125 +2632,64 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to proxy.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> filter.</td>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a CAPS <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the intersection of the other pads' allowed caps. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td>TRUE if <em class="parameter"><code>query</code></em> could be executed</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-fixate-caps"></a><h3>gst_pad_fixate_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_fixate_caps                 (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<a name="gst-pad-proxy-query-accept-caps"></a><h3>gst_pad_proxy_query_accept_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_proxy_query_accept_caps     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
-Fixate a caps on the given pad. Modifies the caps in place, so you should
-make sure that the caps are actually writable (see <a class="link" href="gstreamer-GstCaps.html#gst-caps-make-writable" title="gst_caps_make_writable()"><code class="function">gst_caps_make_writable()</code></a>).
+Calls <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-accept-caps"><code class="function">gst_pad_accept_caps()</code></a> for all internally linked pads of <em class="parameter"><code>pad</code></em> and
+returns the intersection of the results.
+</p>
+<p>
+This function is useful as a default accept caps query function for an element
+that can handle any stream format, but requires caps that are acceptable for
+all oposite pads.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to fixate</td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to proxy.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the  <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to fixate</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-set-fixatecaps-function"></a><h3>gst_pad_set_fixatecaps_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_fixatecaps_function     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()"><span class="type">GstPadFixateCapsFunction</span></a> fixatecaps</code></em>);</pre>
-<p>
-Sets the given fixatecaps function for the pad.  The fixatecaps function
-will be called whenever the default values for a GstCaps needs to be
-filled in.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>fixatecaps</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()"><span class="type">GstPadFixateCapsFunction</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstPadFixateCapsFunction"></a><h3>GstPadFixateCapsFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstPadFixateCapsFunction)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Given possibly unfixed caps <em class="parameter"><code>caps</code></em>, let <em class="parameter"><code>pad</code></em> use its default preferred
-format to make a fixed caps. <em class="parameter"><code>caps</code></em> should be writable. By default this
-function will pick the first value of any ranges or lists in the caps but
-elements can override this function to perform other behaviour.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to fixate</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-peer-accept-caps"></a><h3>gst_pad_peer_accept_caps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_peer_accept_caps            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Check if the peer of <em class="parameter"><code>pad</code></em> accepts <em class="parameter"><code>caps</code></em>. If <em class="parameter"><code>pad</code></em> has no peer, this function
-returns TRUE.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check the peer of</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check on the pad</td>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>an ACCEPT_CAPS <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the peer of <em class="parameter"><code>pad</code></em> can accept the caps or <em class="parameter"><code>pad</code></em> has no peer.</td>
+<td>TRUE if <em class="parameter"><code>query</code></em> could be executed</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-activate-function"></a><h3>gst_pad_set_activate_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_activate_function       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> activate</code></em>);</pre>
+<a name="gst-pad-set-activate-function"></a><h3>gst_pad_set_activate_function()</h3>
+<pre class="programlisting">#define gst_pad_set_activate_function(p,f)      gst_pad_set_activate_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-activate-function-full"></a><h3>gst_pad_set_activate_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_activate_function_full  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> activate</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given activate function for <em class="parameter"><code>pad</code></em>. The activate function will
-dispatch to <a class="link" href="GstPad.html#gst-pad-activate-push" title="gst_pad_activate_push ()"><code class="function">gst_pad_activate_push()</code></a> or <a class="link" href="GstPad.html#gst-pad-activate-pull" title="gst_pad_activate_pull ()"><code class="function">gst_pad_activate_pull()</code></a> to perform
+dispatch to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-activate-push"><code class="function">gst_pad_activate_push()</code></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-activate-pull"><code class="function">gst_pad_activate_pull()</code></a> to perform
 the actual activation. Only makes sense to set on sink pads.
 </p>
 <p>
@@ -2733,13 +2706,23 @@
 <td><p><span class="term"><em class="parameter"><code>activate</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>activate</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstPadActivateFunction"></a><h3>GstPadActivateFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadActivateFunction)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadActivateFunction)           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);</pre>
 <p>
 This function is called when the pad is activated during the element
 READY to PAUSED state change. By default this function will call the
@@ -2755,6 +2738,11 @@
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if the pad could be activated.</td>
 </tr>
@@ -2763,36 +2751,21 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-activatepush-function"></a><h3>gst_pad_set_activatepush_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_activatepush_function   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatepush</code></em>);</pre>
-<p>
-Sets the given activate_push function for the pad. An activate_push function
-prepares the element for pushing. See XXX part-activation.txt for details.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>activatepush</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
+<a name="gst-pad-set-activatemode-function"></a><h3>gst_pad_set_activatemode_function()</h3>
+<pre class="programlisting">#define gst_pad_set_activatemode_function(p,f)  gst_pad_set_activatemode_function_full((p),(f),NULL,NULL)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-activatepull-function"></a><h3>gst_pad_set_activatepull_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_activatepull_function   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatepull</code></em>);</pre>
+<a name="gst-pad-set-activatemode-function-full"></a><h3>gst_pad_set_activatemode_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_activatemode_function_full
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> activatemode</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
-Sets the given activate_pull function for the pad. An activate_pull function
-prepares the element and any upstream connections for pulling. See XXX
-part-activation.txt for details.
+Sets the given activate_mode function for the pad. An activate_mode function
+prepares the element for data passing.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2802,9 +2775,18 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>activatepull</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>activatemode</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>activatemode</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2812,6 +2794,8 @@
 <div class="refsect2">
 <a name="GstPadActivateModeFunction"></a><h3>GstPadActivateModeFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadActivateModeFunction)       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>
 The prototype of the push and pull activate functions.
@@ -2825,6 +2809,16 @@
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>the requested activation mode of <em class="parameter"><code>pad</code></em>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
 <td>activate or deactivate the pad.</td>
 </tr>
@@ -2840,7 +2834,7 @@
 <a name="gst-pad-check-reconfigure"></a><h3>gst_pad_check_reconfigure ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_check_reconfigure           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
-Check and clear the <a class="link" href="GstPad.html#GST-PAD-NEED-RECONFIGURE:CAPS"><span class="type">GST_PAD_NEED_RECONFIGURE</span></a> flag on <em class="parameter"><code>pad</code></em> and return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
+Check and clear the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS"><span class="type">GST_PAD_FLAG_NEED_RECONFIGURE</span></a> flag on <em class="parameter"><code>pad</code></em> and return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
 if the flag was set.
 </p>
 <div class="variablelist"><table border="0">
@@ -2853,7 +2847,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is the GST_PAD_NEED_RECONFIGURE flag was set on <em class="parameter"><code>pad</code></em>.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on <em class="parameter"><code>pad</code></em>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -2999,11 +2993,11 @@
 <div class="refsect2">
 <a name="gst-pad-pull-range"></a><h3>gst_pad_pull_range ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_pad_pull_range                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 <p>
-Pulls a <em class="parameter"><code>buffer</code></em> from the peer pad.
+Pulls a <em class="parameter"><code>buffer</code></em> from the peer pad or fills up a provided buffer.
 </p>
 <p>
 This function will first trigger the pad block signal if it was
@@ -3015,6 +3009,25 @@
 See <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()"><code class="function">gst_pad_get_range()</code></a> for a list of return values and for the
 semantics of the arguments of this function.
 </p>
+<p>
+If <em class="parameter"><code>buffer</code></em> points to a variable holding NULL, a valid new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> will be
+placed in <em class="parameter"><code>buffer</code></em> when this function returns <a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>. The new buffer
+must be freed with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a> after usage. When this function
+returns any other result value, <em class="parameter"><code>buffer</code></em> will still point to NULL.
+</p>
+<p>
+When <em class="parameter"><code>buffer</code></em> points to a variable that points to a valid <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>, the
+buffer will be filled with the result data when this function returns
+<a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>. When this function returns any other result value,
+<em class="parameter"><code>buffer</code></em> will be unchanged. If the provided buffer is larger than <em class="parameter"><code>size</code></em>, only
+<em class="parameter"><code>size</code></em> bytes will be filled in the result buffer and its size will be updated
+accordingly.
+</p>
+<p>
+Note that less than <em class="parameter"><code>size</code></em> bytes can be returned in <em class="parameter"><code>buffer</code></em> when, for example,
+an EOS condition is near or when <em class="parameter"><code>buffer</code></em> is not large enough to hold <em class="parameter"><code>size</code></em>
+bytes. The caller should check the result buffer size to get the result size.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -3039,10 +3052,6 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> from the peer pad.
-When this function returns <a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>, <em class="parameter"><code>buffer</code></em> will contain a valid
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> that should be freed with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a> after usage.
-<em class="parameter"><code>buffer</code></em> may not be used or freed when any other return value than
-<a class="link" href="GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> is returned.
 MT safe.</td>
 </tr>
 </tbody>
@@ -3050,15 +3059,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-activate-pull"></a><h3>gst_pad_activate_pull ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_activate_pull               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a name="gst-pad-activate-mode"></a><h3>gst_pad_activate_mode ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_activate_mode               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>
-Activates or deactivates the given pad in pull mode via dispatching to the
-pad's activatepullfunc. For use from within pad activation functions only.
-When called on sink pads, will first proxy the call to the peer pad, which
-is expected to activate its internally linked pads from within its
-activate_pull function.
+Activates or deactivates the given pad in <em class="parameter"><code>mode</code></em> via dispatching to the
+pad's activatemodefunc. For use from within pad activation functions only.
 </p>
 <p>
 If you don't know what this is, you probably don't want to call it.
@@ -3071,6 +3078,10 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>the requested activation mode</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
 <td>whether or not the pad should be active.</td>
 </tr>
@@ -3084,38 +3095,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-activate-push"></a><h3>gst_pad_activate_push ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_activate_push               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>
-Activates or deactivates the given pad in push mode via dispatching to the
-pad's activatepushfunc. For use from within pad activation functions only.
-</p>
-<p>
-If you don't know what this is, you probably don't want to call it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to activate or deactivate.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
-<td>whether the pad should be active or not.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the operation was successful.
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-pad-send-event"></a><h3>gst_pad_send_event ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_send_event                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
@@ -3167,6 +3146,7 @@
 <div class="refsect2">
 <a name="gst-pad-event-default"></a><h3>gst_pad_event_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_event_default               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
 <p>
 Invokes the default event handler for the given pad.
@@ -3176,9 +3156,6 @@
 to all internally linked pads,
 </p>
 <p>
-The CAPS event will never be forwarded.
-</p>
-<p>
 The the event is sent to all pads internally linked to <em class="parameter"><code>pad</code></em>. This function
 takes ownership of <em class="parameter"><code>event</code></em>.
 </p>
@@ -3190,6 +3167,10 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to call the default event handler on.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to handle. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
@@ -3276,6 +3257,7 @@
 <div class="refsect2">
 <a name="gst-pad-query-default"></a><h3>gst_pad_query_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_default               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
 Invokes the default query handler for the given pad.
@@ -3292,6 +3274,10 @@
 <td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to call the default query handler on.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> to handle. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
@@ -3308,7 +3294,7 @@
 <a name="gst-pad-query-position"></a><h3>gst_pad_query_position ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_position              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);</pre>
 <p>
 Queries a pad for the stream position.
 </p>
@@ -3340,7 +3326,7 @@
 <a name="gst-pad-query-duration"></a><h3>gst_pad_query_duration ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_duration              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
 <p>
 Queries a pad for the total stream duration.
 </p>
@@ -3373,9 +3359,9 @@
 <a name="gst-pad-query-convert"></a><h3>gst_pad_query_convert ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_convert               (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
 <p>
 Queries a pad to convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_format</code></em> to <em class="parameter"><code>dest_format</code></em>.
 </p>
@@ -3412,10 +3398,80 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-query-peer-position"></a><h3>gst_pad_query_peer_position ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_peer_position         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a name="gst-pad-query-accept-caps"></a><h3>gst_pad_query_accept_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_accept_caps           (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Check if the given pad accepts the caps.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check on the pad</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the pad can accept the caps.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-query-caps"></a><h3>gst_pad_query_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_query_caps                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+<p>
+Gets the capabilities this pad can produce or consume.
+Note that this method doesn't necessarily return the caps set by
+<a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()"><code class="function">gst_pad_set_caps()</code></a> - use <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()"><code class="function">gst_pad_get_current_caps()</code></a> for that instead.
+gst_pad_query_caps returns all possible caps a pad can operate with, using
+the pad's CAPS query function, If the query fails, this function will return
+<em class="parameter"><code>filter</code></em>, if not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, otherwise ANY.
+</p>
+<p>
+When called on sinkpads <em class="parameter"><code>filter</code></em> contains the caps that
+upstream could produce in the order preferred by upstream. When
+called on srcpads <em class="parameter"><code>filter</code></em> contains the caps accepted by
+downstream in the preffered order. <em class="parameter"><code>filter</code></em> might be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> but
+if it is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> the returned caps will be a subset of <em class="parameter"><code>filter</code></em>.
+</p>
+<p>
+Note that this function does not return writable <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>, use
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-make-writable" title="gst_caps_make_writable()"><code class="function">gst_caps_make_writable()</code></a> before modifying the caps.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
+<td>suggested <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>, or NULL. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the caps of the pad with incremented ref-count. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-peer-query-position"></a><h3>gst_pad_peer_query_position ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_peer_query_position         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);</pre>
 <p>
 Queries the peer of a given sink pad for the stream position.
 </p>
@@ -3446,10 +3502,10 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-query-peer-duration"></a><h3>gst_pad_query_peer_duration ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_peer_duration         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a name="gst-pad-peer-query-duration"></a><h3>gst_pad_peer_query_duration ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_peer_query_duration         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
 <p>
 Queries the peer pad of a given sink pad for the total stream duration.
 </p>
@@ -3480,12 +3536,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-query-peer-convert"></a><h3>gst_pad_query_peer_convert ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_query_peer_convert          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+<a name="gst-pad-peer-query-convert"></a><h3>gst_pad_peer_query_convert ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_peer_query_convert          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
 <p>
 Queries the peer pad of a given sink pad to convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_format</code></em>
 to <em class="parameter"><code>dest_format</code></em>.
@@ -3524,9 +3580,80 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-query-function"></a><h3>gst_pad_set_query_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_query_function          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> query</code></em>);</pre>
+<a name="gst-pad-peer-query-accept-caps"></a><h3>gst_pad_peer_query_accept_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_peer_query_accept_caps      (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Check if the peer of <em class="parameter"><code>pad</code></em> accepts <em class="parameter"><code>caps</code></em>. If <em class="parameter"><code>pad</code></em> has no peer, this function
+returns TRUE.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to check the peer of</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to check on the pad</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the peer of <em class="parameter"><code>pad</code></em> can accept the caps or <em class="parameter"><code>pad</code></em> has no peer.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-peer-query-caps"></a><h3>gst_pad_peer_query_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_pad_peer_query_caps             (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+<p>
+Gets the capabilities of the peer connected to this pad. Similar to
+<a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()"><code class="function">gst_pad_query_caps()</code></a>.
+</p>
+<p>
+When called on srcpads <em class="parameter"><code>filter</code></em> contains the caps that
+upstream could produce in the order preferred by upstream. When
+called on sinkpads <em class="parameter"><code>filter</code></em> contains the caps accepted by
+downstream in the preffered order. <em class="parameter"><code>filter</code></em> might be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> but
+if it is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> the returned caps will be a subset of <em class="parameter"><code>filter</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the capabilities of.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> filter, or NULL. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the caps of the peer pad with incremented ref-count. This function
+returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no peer pad.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-query-function"></a><h3>gst_pad_set_query_function()</h3>
+<pre class="programlisting">#define gst_pad_set_query_function(p,f)   gst_pad_set_query_function_full((p),(f),NULL,NULL)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pad-set-query-function-full"></a><h3>gst_pad_set_query_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_query_function_full     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Set the given query function for the pad.
 </p>
@@ -3541,6 +3668,15 @@
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>query</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -3548,6 +3684,7 @@
 <div class="refsect2">
 <a name="GstPadQueryFunction"></a><h3>GstPadQueryFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadQueryFunction)              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
 The signature of the query function.
@@ -3560,6 +3697,12 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> object to execute</td>
 </tr>
@@ -3572,102 +3715,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-query-type-function"></a><h3>gst_pad_set_query_type_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_query_type_function     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()"><span class="type">GstPadQueryTypeFunction</span></a> type_func</code></em>);</pre>
-<p>
-Set the given query type function for the pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> of either direction.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type_func</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()"><span class="type">GstPadQueryTypeFunction</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
+<a name="gst-pad-set-iterate-internal-links-function"></a><h3>gst_pad_set_iterate_internal_links_function()</h3>
+<pre class="programlisting">#define gst_pad_set_iterate_internal_links_function(p,f) gst_pad_set_iterate_internal_links_function_full((p),(f),NULL,NULL)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstPadQueryTypeFunction"></a><h3>GstPadQueryTypeFunction ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * (*GstPadQueryTypeFunction)         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-The signature of the query types function.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a constant array of query types</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-get-query-types"></a><h3>gst_pad_get_query_types ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * gst_pad_get_query_types            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Get an array of supported queries that can be performed
-on this pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a zero-terminated array
-of <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-get-query-types-default"></a><h3>gst_pad_get_query_types_default ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a> * gst_pad_get_query_types_default    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Invoke the default query types function on the pad. This function will get
-the supported query type from the peer of an internally linked pad of <em class="parameter"><code>pad</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a zero-terminated array
-of <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>, or NULL if none of the internally-linked pads has a
-query types function. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-pad-set-iterate-internal-links-function"></a><h3>gst_pad_set_iterate_internal_links_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_iterate_internal_links_function
+<a name="gst-pad-set-iterate-internal-links-function-full"></a><h3>gst_pad_set_iterate_internal_links_function_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_set_iterate_internal_links_function_full
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> iterintlink</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> iterintlink</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the given internal link iterator function for the pad.
 </p>
@@ -3682,6 +3741,15 @@
 <td><p><span class="term"><em class="parameter"><code>iterintlink</code></em> :</span></p></td>
 <td>the <a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> to set.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data passed to <em class="parameter"><code>notify</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>notify called when <em class="parameter"><code>iterintlink</code></em> will not be used anymore.</td>
+</tr>
 </tbody>
 </table></div>
 <p class="since">Since 0.10.21</p>
@@ -3689,7 +3757,8 @@
 <hr>
 <div class="refsect2">
 <a name="GstPadIterIntLinkFunction"></a><h3>GstPadIterIntLinkFunction ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       (*GstPadIterIntLinkFunction)        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       (*GstPadIterIntLinkFunction)        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);</pre>
 <p>
 The signature of the internal pad link iterator function.
 </p>
@@ -3701,6 +3770,12 @@
 <td>The <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to query.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>. If the <a class="link" href="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"><span class="type">GST_PAD_FLAG_NEED_PARENT</span></a> flag is set,
+<em class="parameter"><code>parent</code></em> is guaranteed to be not-NULL and remain valid during the
+execution of this function.</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> that will iterate over all pads that are
 linked to the given pad on the inside of the parent element.
@@ -3747,7 +3822,8 @@
 <div class="refsect2">
 <a name="gst-pad-iterate-internal-links-default"></a><h3>gst_pad_iterate_internal_links_default ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_pad_iterate_internal_links_default
-                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+                                                        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);</pre>
 <p>
 Iterate the list of pads to which the given pad is linked to inside of
 the parent element.
@@ -3765,6 +3841,10 @@
 <td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to get the internal links of.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, or NULL if <em class="parameter"><code>pad</code></em> has no parent. Unref each
 returned pad with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.</td>
@@ -3895,7 +3975,7 @@
 Chain a buffer to <em class="parameter"><code>pad</code></em>.
 </p>
 <p>
-The function returns <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a> if the pad was flushing.
+The function returns <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> if the pad was flushing.
 </p>
 <p>
 If the buffer type is not acceptable for <em class="parameter"><code>pad</code></em> (as negotiated with a
@@ -3904,7 +3984,7 @@
 </p>
 <p>
 The function proceeds calling the chain function installed on <em class="parameter"><code>pad</code></em> (see
-<a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function ()"><code class="function">gst_pad_set_chain_function()</code></a>) and the return value of that function is
+<a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function()"><code class="function">gst_pad_set_chain_function()</code></a>) and the return value of that function is
 returned to the caller. <a class="link" href="GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS"><span class="type">GST_FLOW_NOT_SUPPORTED</span></a> is returned if <em class="parameter"><code>pad</code></em> has no
 chain function.
 </p>
@@ -3942,7 +4022,7 @@
 Chain a bufferlist to <em class="parameter"><code>pad</code></em>.
 </p>
 <p>
-The function returns <a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a> if the pad was flushing.
+The function returns <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> if the pad was flushing.
 </p>
 <p>
 If <em class="parameter"><code>pad</code></em> was not negotiated properly with a CAPS event, this function
@@ -3950,7 +4030,7 @@
 </p>
 <p>
 The function proceeds calling the chainlist function installed on <em class="parameter"><code>pad</code></em> (see
-<a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function ()"><code class="function">gst_pad_set_chain_list_function()</code></a>) and the return value of that function is
+<a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function()"><code class="function">gst_pad_set_chain_list_function()</code></a>) and the return value of that function is
 returned to the caller. <a class="link" href="GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS"><span class="type">GST_FLOW_NOT_SUPPORTED</span></a> is returned if <em class="parameter"><code>pad</code></em> has no
 chainlist function.
 </p>
@@ -4087,7 +4167,7 @@
 </p>
 <p>
 If not <em class="parameter"><code>active</code></em>, checks the pad's current mode and calls
-<a class="link" href="GstPad.html#gst-pad-activate-push" title="gst_pad_activate_push ()"><code class="function">gst_pad_activate_push()</code></a> or <a class="link" href="GstPad.html#gst-pad-activate-pull" title="gst_pad_activate_pull ()"><code class="function">gst_pad_activate_pull()</code></a>, as appropriate, with a
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-activate-push"><code class="function">gst_pad_activate_push()</code></a> or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-activate-pull"><code class="function">gst_pad_activate_pull()</code></a>, as appropriate, with a
 FALSE argument.
 </p>
 <div class="variablelist"><table border="0">
@@ -4131,7 +4211,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PAD-STREAM-LOCK:CAPS"></a><h3>GST_PAD_STREAM_LOCK()</h3>
-<pre class="programlisting">#define GST_PAD_STREAM_LOCK(pad)        (g_static_rec_mutex_lock(GST_PAD_GET_STREAM_LOCK(pad)))
+<pre class="programlisting">#define GST_PAD_STREAM_LOCK(pad)        g_rec_mutex_lock(GST_PAD_GET_STREAM_LOCK(pad))
 </pre>
 <p>
 Lock the stream lock of <em class="parameter"><code>pad</code></em>.
@@ -4147,31 +4227,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-PAD-STREAM-LOCK-FULL:CAPS"></a><h3>GST_PAD_STREAM_LOCK_FULL()</h3>
-<pre class="programlisting">#define GST_PAD_STREAM_LOCK_FULL(pad,t) (g_static_rec_mutex_lock_full(GST_PAD_GET_STREAM_LOCK(pad), t))
-</pre>
-<p>
-Lock the stream lock of <em class="parameter"><code>pad</code></em> <em class="parameter"><code>t</code></em> times.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td>
-<td>the number of times to recursively lock</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-PAD-STREAM-TRYLOCK:CAPS"></a><h3>GST_PAD_STREAM_TRYLOCK()</h3>
-<pre class="programlisting">#define GST_PAD_STREAM_TRYLOCK(pad)     (g_static_rec_mutex_trylock(GST_PAD_GET_STREAM_LOCK(pad)))
+<pre class="programlisting">#define GST_PAD_STREAM_TRYLOCK(pad)     g_rec_mutex_trylock(GST_PAD_GET_STREAM_LOCK(pad))
 </pre>
 <p>
 Try to Lock the stream lock of the pad, return TRUE if the lock could be
@@ -4189,7 +4246,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PAD-STREAM-UNLOCK:CAPS"></a><h3>GST_PAD_STREAM_UNLOCK()</h3>
-<pre class="programlisting">#define GST_PAD_STREAM_UNLOCK(pad)      (g_static_rec_mutex_unlock(GST_PAD_GET_STREAM_LOCK(pad)))
+<pre class="programlisting">#define GST_PAD_STREAM_UNLOCK(pad)      g_rec_mutex_unlock(GST_PAD_GET_STREAM_LOCK(pad))
 </pre>
 <p>
 Unlock the stream lock of <em class="parameter"><code>pad</code></em>.
@@ -4203,24 +4260,6 @@
 </tr></tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GST-PAD-STREAM-UNLOCK-FULL:CAPS"></a><h3>GST_PAD_STREAM_UNLOCK_FULL()</h3>
-<pre class="programlisting">#define GST_PAD_STREAM_UNLOCK_FULL(pad) (g_static_rec_mutex_unlock_full(GST_PAD_GET_STREAM_LOCK(pad)))
-</pre>
-<p>
-Fully unlock the recursive stream lock of <em class="parameter"><code>pad</code></em>, return the number of times
-<em class="parameter"><code>pad</code></em> was locked.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <div class="refsect1">
 <a name="GstPad.property-details"></a><h2>Property Details</h2>
@@ -4301,7 +4340,7 @@
 </div>
 <div class="refsect1">
 <a name="GstPad.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>
+<a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>, <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>, <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/GstPadTemplate.html b/docs/gst/html/GstPadTemplate.html
index 18d2787..6786bf0 100644
--- a/docs/gst/html/GstPadTemplate.html
+++ b/docs/gst/html/GstPadTemplate.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPadTemplate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPad.html" title="GstPad">
 <link rel="next" href="gstreamer-GstParamSpec.html" title="GstParamSpec">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPad.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstParamSpec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -132,26 +132,50 @@
 The following code example shows the code to create a pad from a padtemplate.
 </p>
 <div class="example">
-<a name="id520784"></a><p class="title"><b>Example 12. Create a pad from a padtemplate</b></p>
-<div class="example-contents"><pre class="programlisting">
-  GstStaticPadTemplate my_template =
-  GST_STATIC_PAD_TEMPLATE (
-    "sink",          // the name of the pad
-    GST_PAD_SINK,    // the direction of the pad
-    GST_PAD_ALWAYS,  // when this pad will be present
-    GST_STATIC_CAPS (        // the capabilities of the padtemplate
-      "audio/x-raw-int, "
-        "channels = (int) [ 1, 6 ]"
-    )
-  );
-  void
-  my_method (void)
-  {
-    GstPad *pad;
-    pad = gst_pad_new_from_static_template (&amp;my_template, "sink");
-    ...
-  }
-  </pre></div>
+<a name="idp9782048"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstStaticPadTemplate my_template <span class="gtkdoc opt">=</span>
+<span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#GST-STATIC-PAD-TEMPLATE:CAPS">GST_STATIC_PAD_TEMPLATE</a></span> <span class="gtkdoc opt">(</span>
+  <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">,</span>          <span class="gtkdoc slc">// the name of the pad</span>
+  GST_PAD_SINK<span class="gtkdoc opt">,</span>    <span class="gtkdoc slc">// the direction of the pad</span>
+  GST_PAD_ALWAYS<span class="gtkdoc opt">,</span>  <span class="gtkdoc slc">// when this pad will be present</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GST-STATIC-CAPS">GST_STATIC_CAPS</a></span> <span class="gtkdoc opt">(</span>        <span class="gtkdoc slc">// the capabilities of the padtemplate</span>
+    <span class="string">&quot;audio/x-raw, &quot;</span>
+      <span class="string">&quot;channels = (int) [ 1, 6 ]&quot;</span>
+  <span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">);</span>
+<span class="gtkdoc kwb">void</span>
+<span class="function">my_method</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  GstPad <span class="gtkdoc opt">*</span>pad<span class="gtkdoc opt">;</span>
+  pad <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstPad.html#gst-pad-new-from-static-template">gst_pad_new_from_static_template</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">,</span> <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -159,16 +183,31 @@
 The following example shows you how to add the padtemplate to an
 element class, this is usually done in the class_init of the class:
 </p>
-<div class="informalexample"><pre class="programlisting">
-  static void
-  my_element_class_init (GstMyElementClass *klass)
-  {
-    GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
+<span class="function">my_element_class_init</span> <span class="gtkdoc opt">(</span>GstMyElementClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
 
-    gst_element_class_add_pad_template (gstelement_class,
-        gst_static_pad_template_get (&amp;my_template));
-  }
-  </pre></div>
+  <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -458,11 +497,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> set for the template.</td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> set for the template. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a new <a class="link" href="GstPadTemplate.html" title="GstPadTemplate"><span class="type">GstPadTemplate</span></a>. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/GstPipeline.html b/docs/gst/html/GstPipeline.html
index 60cc959..83cd819 100644
--- a/docs/gst/html/GstPipeline.html
+++ b/docs/gst/html/GstPipeline.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPipeline</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstParse.html" title="GstParse">
 <link rel="next" href="GstPlugin.html" title="GstPlugin">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstParse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPlugin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -86,7 +86,7 @@
 <a name="GstPipeline.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="GstPipeline.html#GstPipeline--auto-flush-bus" title='The "auto-flush-bus" property'>auto-flush-bus</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstPipeline.html#GstPipeline--delay" title='The "delay" property'>delay</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="GstPipeline.html#GstPipeline--delay" title='The "delay" property'>delay</a>"                    <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -95,8 +95,7 @@
 A <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> is a special <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> used as the toplevel container for
 the filter graph. The <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> will manage the selection and
 distribution of a global <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> as well as provide a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to the
-application. It will also implement a default behaviour for managing
-seek events (see <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()"><code class="function">gst_element_seek()</code></a>).
+application.
 </p>
 <p>
 <a class="link" href="GstPipeline.html#gst-pipeline-new" title="gst_pipeline_new ()"><code class="function">gst_pipeline_new()</code></a> is used to create a pipeline. when you are done with
@@ -147,13 +146,7 @@
 <a class="link" href="GstElement.html#gst-element-set-start-time" title="gst_element_set_start_time ()"><code class="function">gst_element_set_start_time()</code></a> method.
 </p>
 <p>
-When sending a flushing seek event to a GstPipeline (see
-<a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()"><code class="function">gst_element_seek()</code></a>), it will make sure that the pipeline is properly
-PAUSED and resumed as well as set the new running time to 0 when the
-seek succeeded.
-</p>
-<p>
-Last reviewed on 2009-05-29 (0.10.24)
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -163,7 +156,7 @@
 <pre class="programlisting">struct GstPipeline {
   GstClock      *fixed_clock;
 
-  GstClockTime   stream_time;	
+  GstClockTime   stream_time;
   GstClockTime   delay;
 };
 </pre>
@@ -238,7 +231,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>newly created GstPipeline
-MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+MT safe. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -524,7 +517,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPipeline--delay"></a><h3>The <code class="literal">"delay"</code> property</h3>
-<pre class="programlisting">  "delay"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "delay"                    <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 The expected delay needed for elements to spin up to the
 PLAYING state expressed in nanoseconds.
diff --git a/docs/gst/html/GstPlugin.html b/docs/gst/html/GstPlugin.html
index 73b2136..498bbc8 100644
--- a/docs/gst/html/GstPlugin.html
+++ b/docs/gst/html/GstPlugin.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPipeline.html" title="GstPipeline">
 <link rel="next" href="GstPluginFeature.html" title="GstPluginFeature">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPipeline.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPluginFeature.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index e128696..98e8968 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPluginFeature</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPlugin.html" title="GstPlugin">
 <link rel="next" href="gstreamer-GstPoll.html" title="GstPoll">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPlugin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstPoll.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -43,12 +43,9 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="struct GstPluginFeature">GstPluginFeature</a>;
-                    <a class="link" href="GstPluginFeature.html#GstTypeNameData" title="GstTypeNameData">GstTypeNameData</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPluginFeature.html#GstPluginFeatureFilter" title="GstPluginFeatureFilter ()">*GstPluginFeatureFilter</a>)           (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="GstPluginFeature.html#GstRank" title="enum GstRank">GstRank</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPluginFeature.html#gst-plugin-feature-type-name-filter" title="gst_plugin_feature_type_name_filter ()">gst_plugin_feature_type_name_filter</a> (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPluginFeature.html#GstTypeNameData" title="GstTypeNameData"><span class="type">GstTypeNameData</span></a> *data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPluginFeature.html#gst-plugin-feature-set-rank" title="gst_plugin_feature_set_rank ()">gst_plugin_feature_set_rank</a>         (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>);
 #define             <a class="link" href="GstPluginFeature.html#gst-plugin-feature-set-name" title="gst_plugin_feature_set_name()">gst_plugin_feature_set_name</a>         (feature,
@@ -77,7 +74,6 @@
                +----GstPluginFeature
                      +----<a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
                      +----<a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory">GstTypeFindFactory</a>
-                     +----<a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
 </pre>
 </div>
 <div class="refsect1">
@@ -97,31 +93,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTypeNameData"></a><h3>GstTypeNameData</h3>
-<pre class="programlisting">typedef struct {
-  const gchar   *name;
-  GType          type;
-} GstTypeNameData;
-</pre>
-<p>
-Structure used for filtering based on <em class="parameter"><code>name</code></em> and <em class="parameter"><code>type</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstTypeNameData.name"></a>name</code></em>;</span></p></td>
-<td>a name</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GstTypeNameData.type"></a>type</code></em>;</span></p></td>
-<td>a GType</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstPluginFeatureFilter"></a><h3>GstPluginFeatureFilter ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPluginFeatureFilter)           (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -198,34 +169,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-plugin-feature-type-name-filter"></a><h3>gst_plugin_feature_type_name_filter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_plugin_feature_type_name_filter (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPluginFeature.html#GstTypeNameData" title="GstTypeNameData"><span class="type">GstTypeNameData</span></a> *data</code></em>);</pre>
-<p>
-Compares type and name of plugin feature. Can be used with <a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()"><code class="function">gst_filter_run()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the type and name to check against. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if equal.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-plugin-feature-set-rank"></a><h3>gst_plugin_feature_set_rank ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_plugin_feature_set_rank         (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>);</pre>
@@ -293,13 +236,11 @@
 <hr>
 <div class="refsect2">
 <a name="gst-plugin-feature-get-name"></a><h3>gst_plugin_feature_get_name()</h3>
-<pre class="programlisting">#define                 gst_plugin_feature_get_name(feature)      gst_object_get_name(GST_OBJECT_CAST(feature))
+<pre class="programlisting">#define                 gst_plugin_feature_get_name(feature)      GST_OBJECT_NAME(feature)
 </pre>
 <p>
-Returns a copy of the name of <em class="parameter"><code>feature</code></em>.
-Caller should <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the return value after usage.
-For a nameless plugin feature, this returns NULL, which you can safely <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
-as well.
+Returns the name of <em class="parameter"><code>feature</code></em>.
+For a nameless plugin feature, this returns NULL.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -310,7 +251,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the name of <em class="parameter"><code>feature</code></em>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the name of <em class="parameter"><code>feature</code></em>. MT safe. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -327,14 +268,27 @@
 <p>
 Normally this function is used like this:
 </p>
-<div class="informalexample"><pre class="programlisting">
-GstPluginFeature *loaded_feature;
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstPluginFeature <span class="gtkdoc opt">*</span>loaded_feature<span class="gtkdoc opt">;</span>
 
-loaded_feature = gst_plugin_feature_load (feature);
-// presumably, we're no longer interested in the potentially-unloaded feature
-gst_object_unref (feature);
-feature = loaded_feature;
-</pre></div>
+loaded_feature <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-load">gst_plugin_feature_load</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
+<span class="gtkdoc slc">// presumably, we're no longer interested in the potentially-unloaded feature</span>
+<span class="function"><a href="../gstreamer-1.0/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
+feature <span class="gtkdoc opt">=</span> loaded_feature<span class="gtkdoc opt">;</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <div class="variablelist"><table border="0">
diff --git a/docs/gst/html/GstPreset.html b/docs/gst/html/GstPreset.html
index 532c5c0..7156576 100644
--- a/docs/gst/html/GstPreset.html
+++ b/docs/gst/html/GstPreset.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPreset</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstPoll.html" title="GstPoll">
 <link rel="next" href="gstreamer-GstQuery.html" title="GstQuery">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstPoll.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstQuery.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -63,6 +63,8 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPreset.html#gst-preset-set-app-dir" title="gst_preset_set_app_dir ()">gst_preset_set_app_dir</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *app_dir</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GstPreset.html#gst-preset-get-app-dir" title="gst_preset_get_app_dir ()">gst_preset_get_app_dir</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -89,6 +91,13 @@
 One method that is useful to be overridden is <a class="link" href="GstPreset.html#gst-preset-get-property-names" title="gst_preset_get_property_names ()"><code class="function">gst_preset_get_property_names()</code></a>.
 With that one can control which properties are saved and in which order.
 </p>
+<p>
+The default implementation supports presets located in a system directory, 
+application specific directory and in the users home directory. When getting
+a list of presets individual presets are read and overlaid in 1) system, 
+2) application and 3) user order. Whenever an earlier entry is newer, the
+later entries will be updated.
+</p>
 </div>
 <div class="refsect1">
 <a name="GstPreset.details"></a><h2>Details</h2>
@@ -115,7 +124,7 @@
   gboolean     (*rename_preset)       (GstPreset *preset, const gchar *old_name,
                                        const gchar *new_name);
   gboolean     (*delete_preset)       (GstPreset *preset, const gchar *name);
-  
+
   gboolean     (*set_meta)            (GstPreset *preset, const gchar *name,
                                        const gchar *tag, const gchar *value);
   gboolean     (*get_meta)            (GstPreset *preset, const gchar *name,
@@ -428,6 +437,48 @@
 </table></div>
 <p class="since">Since 0.10.20</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-preset-set-app-dir"></a><h3>gst_preset_set_app_dir ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_preset_set_app_dir              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *app_dir</code></em>);</pre>
+<p>
+Sets an extra directory as an absolute path that should be considered when
+looking for presets. Any presets in the application dir will shadow the 
+system presets.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>app_dir</code></em> :</span></p></td>
+<td>the application specific preset dir</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the dir already has been set</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-preset-get-app-dir"></a><h3>gst_preset_get_app_dir ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_preset_get_app_dir              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Gets the directory for application specific presets if set by the
+application.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the directory or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, don't free or modify the string</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/GstRegistry.html b/docs/gst/html/GstRegistry.html
index f29bb6c..be73d74 100644
--- a/docs/gst/html/GstRegistry.html
+++ b/docs/gst/html/GstRegistry.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstRegistry</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstQuery.html" title="GstQuery">
 <link rel="next" href="gstreamer-GstSegment.html" title="GstSegment">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstQuery.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstSegment.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -45,10 +45,10 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="GstRegistry.html#GstRegistry-struct" title="struct GstRegistry">GstRegistry</a>;
-<a class="link" href="GstRegistry.html" title="GstRegistry"><span class="returnvalue">GstRegistry</span></a> *       <a class="link" href="GstRegistry.html#gst-registry-get-default" title="gst_registry_get_default ()">gst_registry_get_default</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="GstRegistry.html" title="GstRegistry"><span class="returnvalue">GstRegistry</span></a> *       <a class="link" href="GstRegistry.html#gst-registry-get" title="gst_registry_get ()">gst_registry_get</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstRegistry.html#gst-registry-get-feature-list" title="gst_registry_get_feature_list ()">gst_registry_get_feature_list</a>       (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="GstRegistry.html#gst-registry-get-feature-list-cookie" title="gst_registry_get_feature_list_cookie ()">gst_registry_get_feature_list_cookie</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="GstRegistry.html#gst-registry-get-feature-list-cookie" title="gst_registry_get_feature_list_cookie ()">gst_registry_get_feature_list_cookie</a>
                                                         (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstRegistry.html#gst-registry-get-feature-list-by-plugin" title="gst_registry_get_feature_list_by_plugin ()">gst_registry_get_feature_list_by_plugin</a>
                                                         (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>,
@@ -84,23 +84,11 @@
                                                          <em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstRegistry.html#gst-registry-add-feature" title="gst_registry_add_feature ()">gst_registry_add_feature</a>            (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
-
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstRegistry.html#gst-default-registry-check-feature-version" title="gst_default_registry_check_feature_version ()">gst_default_registry_check_feature_version</a>
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *feature_name</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstRegistry.html#gst-registry-check-feature-version" title="gst_registry_check_feature_version ()">gst_registry_check_feature_version</a>  (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *feature_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_major</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_minor</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_micro</code></em>);
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-get-path-list" title="gst_default_registry_get_path_list">gst_default_registry_get_path_list</a>
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-add-plugin" title="gst_default_registry_add_plugin()">gst_default_registry_add_plugin</a>     (plugin)
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-add-path" title="gst_default_registry_add_path()">gst_default_registry_add_path</a>       (path)
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-find-plugin" title="gst_default_registry_find_plugin()">gst_default_registry_find_plugin</a>    (name)
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-find-feature" title="gst_default_registry_find_feature()">gst_default_registry_find_feature</a>   (name,
-                                                         type)
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-get-plugin-list" title="gst_default_registry_get_plugin_list">gst_default_registry_get_plugin_list</a>
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-get-feature-list-cookie" title="gst_default_registry_get_feature_list_cookie">gst_default_registry_get_feature_list_cookie</a>
-#define             <a class="link" href="GstRegistry.html#gst-default-registry-feature-filter" title="gst_default_registry_feature_filter()">gst_default_registry_feature_filter</a> (filter,
-                                                         first,
-                                                         user_data)
 </pre>
 </div>
 <div class="refsect1">
@@ -130,14 +118,7 @@
 <p>
 The <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> object is a list of plugins and some functions for dealing
 with them. Each <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> is matched 1-1 with a file on disk, and may or may
-not be loaded at a given time. There may be multiple <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> objects,
-but the "default registry" is the only object that has any meaning to the
-core.
-</p>
-<p>
-The registry file is actually a cache of plugin information. This is
-unlike versions prior to 0.10, where the registry file was the primary source
-of plugin information, and was created by the gst-register command.
+not be loaded at a given time.
 </p>
 <p>
 The primary source, at all times, of plugin information is each plugin file
@@ -158,13 +139,13 @@
 <li class="listitem"><p>the GST_PLUGIN_SYSTEM_PATH environment variable.</p></li>
 <li class="listitem"><p>default locations (if GST_PLUGIN_SYSTEM_PATH is not set). Those
       default locations are:
-      <code class="filename">~/.gstreamer-$GST_MAJORMINOR/plugins/</code>
-      and <code class="filename">$prefix/libs/gstreamer-$GST_MAJORMINOR/</code>.
+      <code class="filename">~/.gstreamer-$GST_API_VERSION/plugins/</code>
+      and <code class="filename">$prefix/libs/gstreamer-$GST_API_VERSION/</code>.
     </p></li>
 </ul></div>
 <p>
 The registry cache file is loaded from
-<code class="filename">~/.gstreamer-$GST_MAJORMINOR/registry-$ARCH.bin</code> or the
+<code class="filename">~/.gstreamer-$GST_API_VERSION/registry-$ARCH.bin</code> or the
 file listed in the GST_REGISTRY env var. One reason to change the registry
 location is for testing.
 </p>
@@ -195,12 +176,15 @@
 <span class="bold"><strong>Implementation notes:</strong></span>
 </p>
 <p>
-The "cache" and "default registry" are different concepts and can represent
+The "cache" and "registry" are different concepts and can represent
 different sets of plugins. For various reasons, at init time, the cache is
 stored in the default registry, and plugins not relevant to the current
 process are marked with the <a class="link" href="GstPlugin.html#GST-PLUGIN-FLAG-CACHED:CAPS"><code class="literal">GST_PLUGIN_FLAG_CACHED</code></a> bit. These plugins are
 removed at the end of initialization.
 </p>
+<p>
+Last reviewed on 2012-03-29 (0.11.3)
+</p>
 </div>
 <div class="refsect1">
 <a name="GstRegistry.details"></a><h2>Details</h2>
@@ -213,17 +197,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-registry-get-default"></a><h3>gst_registry_get_default ()</h3>
-<pre class="programlisting"><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="returnvalue">GstRegistry</span></a> *       gst_registry_get_default            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<a name="gst-registry-get"></a><h3>gst_registry_get ()</h3>
+<pre class="programlisting"><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="returnvalue">GstRegistry</span></a> *       gst_registry_get                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
-Retrieves the default registry. The caller does not own a reference on the
-registry, as it is alive as long as GStreamer is initialized.
+Retrieves the singleton plugin registry. The caller does not own a
+reference on the registry, as it is alive as long as GStreamer is
+initialized.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The default <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr></tbody>
 </table></div>
@@ -261,7 +246,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-registry-get-feature-list-cookie"></a><h3>gst_registry_get_feature_list_cookie ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_registry_get_feature_list_cookie
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_registry_get_feature_list_cookie
                                                         (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>);</pre>
 <p>
 Returns the registrys feature list cookie. This changes
@@ -736,21 +721,26 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-default-registry-check-feature-version"></a><h3>gst_default_registry_check_feature_version ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_default_registry_check_feature_version
-                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *feature_name</code></em>,
+<a name="gst-registry-check-feature-version"></a><h3>gst_registry_check_feature_version ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_registry_check_feature_version  (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *feature_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_major</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_minor</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_micro</code></em>);</pre>
 <p>
-Checks whether a plugin feature by the given name exists in the
-default registry and whether its version is at least the
+Checks whether a plugin feature by the given name exists in
+<em class="parameter"><code>registry</code></em> and whether its version is at least the
 version required.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>a <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>feature_name</code></em> :</span></p></td>
 <td>the name of the feature (e.g. "oggdemux")</td>
 </tr>
@@ -775,190 +765,14 @@
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-get-path-list"></a><h3>gst_default_registry_get_path_list</h3>
-<pre class="programlisting">#define             gst_default_registry_get_path_list()</pre>
-<p>
-Get the list of paths for the default registry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of paths as
-strings. <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a> after use. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> char*]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-add-plugin"></a><h3>gst_default_registry_add_plugin()</h3>
-<pre class="programlisting">#define             gst_default_registry_add_plugin(plugin)</pre>
-<p>
-Add the plugin to the default registry.
-The plugin-added signal will be emitted.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
-<td>the plugin to add. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE on success.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-add-path"></a><h3>gst_default_registry_add_path()</h3>
-<pre class="programlisting">#define             gst_default_registry_add_path(path)</pre>
-<p>
-Add the given path to the default registry. The syntax of the
-path is specific to the registry. If the path has already been
-added, do nothing.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>the path to add to the registry</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-find-plugin"></a><h3>gst_default_registry_find_plugin()</h3>
-<pre class="programlisting">#define             gst_default_registry_find_plugin(name)</pre>
-<p>
-Find the plugin with the given name in the default registry.
-The plugin will be reffed; caller is responsible for unreffing.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the plugin name to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The plugin with the given name or NULL if the
-plugin was not found. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-find-feature"></a><h3>gst_default_registry_find_feature()</h3>
-<pre class="programlisting">#define             gst_default_registry_find_feature(name,type)</pre>
-<p>
-Find the pluginfeature with the given name and type in the default registry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the pluginfeature name to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the pluginfeature type to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the pluginfeature with the given name and type or
-NULL if the plugin was not found. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-get-plugin-list"></a><h3>gst_default_registry_get_plugin_list</h3>
-<pre class="programlisting">#define             gst_default_registry_get_plugin_list()</pre>
-<p>
-Get a copy of all plugins registered in the default registry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the list.
-Free after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Plugin]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-get-feature-list-cookie"></a><h3>gst_default_registry_get_feature_list_cookie</h3>
-<pre class="programlisting">#define             gst_default_registry_get_feature_list_cookie()</pre>
-<p>
-Returns the default registrys feature list cookie. This changes
-every time a feature is added or removed from the registry.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the feature list cookie.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.26</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-default-registry-feature-filter"></a><h3>gst_default_registry_feature_filter()</h3>
-<pre class="programlisting">#define             gst_default_registry_feature_filter(filter,first,user_data)</pre>
-<p>
-Runs a filter against all features of the plugins in the default registry
-and returns a GList with the results.
-If the first flag is set, only the first match is
-returned (as a list with a single object).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
-<td>the filter to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>first</code></em> :</span></p></td>
-<td>only return first match</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data passed to the filter function</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-plugin features, gst_plugin_feature_list_free after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.PluginFeature]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <div class="refsect1">
 <a name="GstRegistry.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstRegistry-feature-added"></a><h3>The <code class="literal">"feature-added"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     feature,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>      *registry,
+                                                        <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature,
+                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 Signals that a feature has been added to the registry (possibly
 replacing a previously-added one by the same name)
@@ -985,7 +799,7 @@
 <div class="refsect2">
 <a name="GstRegistry-plugin-added"></a><h3>The <code class="literal">"plugin-added"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     plugin,
+                                                        <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>   *plugin,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 Signals that a plugin has been added to the registry (possibly
diff --git a/docs/gst/html/GstSystemClock.html b/docs/gst/html/GstSystemClock.html
index 064ca35..be2923d 100644
--- a/docs/gst/html/GstSystemClock.html
+++ b/docs/gst/html/GstSystemClock.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstSystemClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstStructure.html" title="GstStructure">
 <link rel="next" href="gstreamer-GstTagList.html" title="GstTagList">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstStructure.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstTagList.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index 7029737..401c5ea 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTagSetter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstTagList.html" title="GstTagList">
 <link rel="next" href="GstTask.html" title="GstTask">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstTagList.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstTask.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -46,7 +46,7 @@
 #include &lt;gst/gst.h&gt;
 
                     <a class="link" href="GstTagSetter.html#GstTagSetter-struct" title="GstTagSetter">GstTagSetter</a>;
-struct              <a class="link" href="GstTagSetter.html#GstTagSetterIFace" title="struct GstTagSetterIFace">GstTagSetterIFace</a>;
+struct              <a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface">GstTagSetterInterface</a>;
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-reset-tags" title="gst_tag_setter_reset_tags ()">gst_tag_setter_reset_tags</a>           (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTagSetter.html#gst-tag-setter-merge-tags" title="gst_tag_setter_merge_tags ()">gst_tag_setter_merge_tags</a>           (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
@@ -118,27 +118,53 @@
 </p>
 <p>
 </p>
-<div class="informalexample"><pre class="programlisting">
-GstTagMergeMode merge_mode;
-const GstTagList *application_tags;
-const GstTagList *event_tags;
-GstTagSetter *tagsetter;
-GstTagList *result;
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstTagMergeMode merge_mode<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">const</span> GstTagList <span class="gtkdoc opt">*</span>application_tags<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">const</span> GstTagList <span class="gtkdoc opt">*</span>event_tags<span class="gtkdoc opt">;</span>
+GstTagSetter <span class="gtkdoc opt">*</span>tagsetter<span class="gtkdoc opt">;</span>
+GstTagList <span class="gtkdoc opt">*</span>result<span class="gtkdoc opt">;</span>
  
-tagsetter = GST_TAG_SETTER (element);
+tagsetter <span class="gtkdoc opt">=</span> <span class="function">GST_TAG_SETTER</span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">);</span>
  
-merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
-application_tags = gst_tag_setter_get_tag_list (tagsetter);
-event_tags = (const GstTagList *) element-&gt;event_tags;
+merge_mode <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-merge-mode">gst_tag_setter_get_tag_merge_mode</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
+application_tags <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-list">gst_tag_setter_get_tag_list</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
+event_tags <span class="gtkdoc opt">= (</span><span class="gtkdoc kwb">const</span> GstTagList <span class="gtkdoc opt">*)</span> element<span class="gtkdoc opt">-&gt;</span>event_tags<span class="gtkdoc opt">;</span>
  
-GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
-GST_LOG_OBJECT (tagsetter, "event tags: %" GST_PTR_FORMAT, event_tags);
-GST_LOG_OBJECT (tagsetter, "set   tags: %" GST_PTR_FORMAT, application_tags);
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;merging tags, merge mode = %d&quot;</span><span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;event tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;set   tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> application_tags<span class="gtkdoc opt">);</span>
  
-result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
+result <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-merge">gst_tag_list_merge</a></span> <span class="gtkdoc opt">(</span>application_tags<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
  
-GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
-</pre></div>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;final tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> result<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -156,8 +182,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTagSetterIFace"></a><h3>struct GstTagSetterIFace</h3>
-<pre class="programlisting">struct GstTagSetterIFace {
+<a name="GstTagSetterInterface"></a><h3>struct GstTagSetterInterface</h3>
+<pre class="programlisting">struct GstTagSetterInterface {
   GTypeInterface g_iface;
 
   /* signals */
@@ -166,12 +192,12 @@
 };
 </pre>
 <p>
-<a class="link" href="GstTagSetter.html#GstTagSetterIFace" title="struct GstTagSetterIFace"><span class="type">GstTagSetterIFace</span></a> interface.
+<a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface"><span class="type">GstTagSetterInterface</span></a> interface.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTagSetterIFace.g-iface"></a>g_iface</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTagSetterInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
 <td>parent interface type.</td>
 </tr></tbody>
 </table></div>
diff --git a/docs/gst/html/GstTask.html b/docs/gst/html/GstTask.html
index f6de788..bbb36b5 100644
--- a/docs/gst/html/GstTask.html
+++ b/docs/gst/html/GstTask.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTask</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstTagSetter.html" title="GstTagSetter">
 <link rel="next" href="GstTaskPool.html" title="GstTaskPool">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstTagSetter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstTaskPool.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,12 +51,10 @@
 #define             <a class="link" href="GstTask.html#GST-TASK-SIGNAL:CAPS" title="GST_TASK_SIGNAL()">GST_TASK_SIGNAL</a>                     (task)
 #define             <a class="link" href="GstTask.html#GST-TASK-STATE:CAPS" title="GST_TASK_STATE()">GST_TASK_STATE</a>                      (task)
 #define             <a class="link" href="GstTask.html#GST-TASK-WAIT:CAPS" title="GST_TASK_WAIT()">GST_TASK_WAIT</a>                       (task)
-<a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           <a class="link" href="GstTask.html#gst-task-create" title="gst_task_create ()">gst_task_create</a>                     (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
+<a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           <a class="link" href="GstTask.html#gst-task-new" title="gst_task_new ()">gst_task_new</a>                        (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()">gst_task_set_lock</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *mutex</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-priority" title="gst_task_set_priority ()">gst_task_set_priority</a>               (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThreadPriority"><span class="type">GThreadPriority</span></a> priority</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> *mutex</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-pool" title="gst_task_set_pool ()">gst_task_set_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>);
 <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="returnvalue">GstTaskPool</span></a> *       <a class="link" href="GstTask.html#gst-task-get-pool" title="gst_task_get_pool ()">gst_task_get_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
@@ -103,7 +101,7 @@
 a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.
 </p>
 <p>
-Before the <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> can be run, it needs a <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> that can be set with
+Before the <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> can be run, it needs a <a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> that can be set with
 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a>.
 </p>
 <p>
@@ -112,7 +110,7 @@
 </p>
 <p>
 A <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> will repeatedly call the <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> with the user data
-that was provided when creating the task with <a class="link" href="GstTask.html#gst-task-create" title="gst_task_create ()"><code class="function">gst_task_create()</code></a>. While calling
+that was provided when creating the task with <a class="link" href="GstTask.html#gst-task-new" title="gst_task_new ()"><code class="function">gst_task_new()</code></a>. While calling
 the function it will acquire the provided lock. The provided lock is released
 when the task pauses or stops.
 </p>
@@ -123,7 +121,7 @@
 </p>
 <p>
 After creating a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>, use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to free its resources. This can
-only be done it the task is not running anymore.
+only be done when the task is not running anymore.
 </p>
 <p>
 Task functions can send a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to send out-of-band data to the
@@ -131,13 +129,13 @@
 mainloop.
 </p>
 <p>
-For debugging perposes, the task will configure its object name as the thread
+For debugging purposes, the task will configure its object name as the thread
 name on Linux. Please note that the object name should be configured before the
 task is started; changing the object name after the task has been started, has
 no effect on the thread name.
 </p>
 <p>
-Last reviewed on 2010-03-15 (0.10.29)
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -146,9 +144,9 @@
 <a name="GstTask-struct"></a><h3>struct GstTask</h3>
 <pre class="programlisting">struct GstTask {
   GstTaskState     state;
-  GCond           *cond;
+  GCond            cond;
 
-  GStaticRecMutex *lock;
+  GRecMutex       *lock;
 
   GstTaskFunction  func;
   gpointer         data;
@@ -167,11 +165,11 @@
 <td>the state of the task</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> *<em class="structfield"><code><a name="GstTask-struct.cond"></a>cond</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstTask-struct.cond"></a>cond</code></em>;</span></p></td>
 <td>used to pause/resume the task</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *<em class="structfield"><code><a name="GstTask-struct.lock"></a>lock</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> *<em class="structfield"><code><a name="GstTask-struct.lock"></a>lock</code></em>;</span></p></td>
 <td>The lock taken when iterating the task function</td>
 </tr>
 <tr>
@@ -257,7 +255,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-TASK-GET-COND:CAPS"></a><h3>GST_TASK_GET_COND()</h3>
-<pre class="programlisting">#define GST_TASK_GET_COND(task)         (GST_TASK_CAST(task)-&gt;cond)
+<pre class="programlisting">#define GST_TASK_GET_COND(task)         (&amp;GST_TASK_CAST(task)-&gt;cond)
 </pre>
 <p>
 Get access to the cond of the task.
@@ -336,8 +334,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-task-create"></a><h3>gst_task_create ()</h3>
-<pre class="programlisting"><a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           gst_task_create                     (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
+<a name="gst-task-new"></a><h3>gst_task_new ()</h3>
+<pre class="programlisting"><a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           gst_task_new                        (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
 <p>
 Create a new Task that will repeatedly call the provided <em class="parameter"><code>func</code></em>
@@ -353,7 +351,7 @@
 <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()"><code class="function">gst_task_pause()</code></a> to create and start the GThread.
 </p>
 <p>
-Before the task can be used, a <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> must be configured using the
+Before the task can be used, a <a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> must be configured using the
 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> function. This lock will always be acquired while
 <em class="parameter"><code>func</code></em> is called.
 </p>
@@ -382,7 +380,7 @@
 <div class="refsect2">
 <a name="gst-task-set-lock"></a><h3>gst_task_set_lock ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_lock                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GStaticRecMutex"><span class="type">GStaticRecMutex</span></a> *mutex</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> *mutex</code></em>);</pre>
 <p>
 Set the mutex used by the task. The mutex will be acquired before
 calling the <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a>.
@@ -403,44 +401,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mutex</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> to use</td>
+<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> to use</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-task-set-priority"></a><h3>gst_task_set_priority ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_priority               (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThreadPriority"><span class="type">GThreadPriority</span></a> priority</code></em>);</pre>
-<p>
-Changes the priority of <em class="parameter"><code>task</code></em> to <em class="parameter"><code>priority</code></em>.
-</p>
-<p>
-Note: try not to depend on task priorities.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
-<td>a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
-<td>a new priority for <em class="parameter"><code>task</code></em>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.24</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-task-set-pool"></a><h3>gst_task_set_pool ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_pool                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>);</pre>
diff --git a/docs/gst/html/GstTaskPool.html b/docs/gst/html/GstTaskPool.html
index 2f0c81c..e6d3e77 100644
--- a/docs/gst/html/GstTaskPool.html
+++ b/docs/gst/html/GstTaskPool.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTaskPool</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstTask.html" title="GstTask">
-<link rel="next" href="gstreamer-GstTypeFind.html" title="GstTypeFind">
+<link rel="next" href="gstreamer-GstToc.html" title="GstToc">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="GstTask.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstTypeFind.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstToc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#GstTaskPool.synopsis" class="shortcut">Top</a>
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index e46ac1b..8eca280 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFindFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstTypeFind.html" title="GstTypeFind">
 <link rel="next" href="gstreamer-GstUriHandler.html" title="GstUriHandler">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstTypeFind.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstUriHandler.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -72,48 +72,94 @@
 <p>
 </p>
 <div class="example">
-<a name="id494967"></a><p class="title"><b>Example 14. how to write a simple typefinder</b></p>
-<div class="example-contents"><pre class="programlisting">
-  typedef struct {
-    guint8 *data;
-    guint size;
-    guint probability;
-    GstCaps *data;
-  } MyTypeFind;
-  static void
-  my_peek (gpointer data, gint64 offset, guint size)
-  {
-    MyTypeFind *find = (MyTypeFind *) data;
-    if (offset &gt;= 0 &amp;&amp; offset + size &lt;= find-&gt;size) {
-      return find-&gt;data + offset;
-    }
-    return NULL;
-  }
-  static void
-  my_suggest (gpointer data, guint probability, GstCaps *caps)
-  {
-    MyTypeFind *find = (MyTypeFind *) data;
-    if (probability &gt; find-&gt;probability) {
-      find-&gt;probability = probability;
-      gst_caps_replace (&amp;find-&gt;caps, caps);
-    }
-  }
-  static GstCaps *
-  find_type (guint8 *data, guint size)
-  {
-    GList *walk, *type_list;
-    MyTypeFind find = {data, size, 0, NULL};
-    GstTypeFind gst_find = {my_peek, my_suggest, &amp;find, };
-    walk = type_list = gst_type_find_factory_get_list ();
-    while (walk) {
-      GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk-&gt;data);
-      walk = g_list_next (walk)
-      gst_type_find_factory_call_function (factory, &amp;gst_find);
-    }
-    g_list_free (type_list);
-    return find.caps;
-  };
-  </pre></div>
+<a name="idp37607504"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwc">typedef</span> <span class="gtkdoc kwb">struct</span> <span class="gtkdoc opt">{</span>
+  guint8 <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
+  guint size<span class="gtkdoc opt">;</span>
+  guint probability<span class="gtkdoc opt">;</span>
+  GstCaps <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span> MyTypeFind<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">static void</span>
+<span class="function">my_peek</span> <span class="gtkdoc opt">(</span>gpointer data<span class="gtkdoc opt">,</span> gint64 offset<span class="gtkdoc opt">,</span> guint size<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  MyTypeFind <span class="gtkdoc opt">*</span>find <span class="gtkdoc opt">= (</span>MyTypeFind <span class="gtkdoc opt">*)</span> data<span class="gtkdoc opt">;</span>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(</span>offset <span class="gtkdoc opt">&gt;=</span> <span class="number">0</span> <span class="gtkdoc opt">&amp;&amp;</span> offset <span class="gtkdoc opt">+</span> size <span class="gtkdoc opt">&lt;=</span> find<span class="gtkdoc opt">-&gt;</span>size<span class="gtkdoc opt">) {</span>
+    <span class="keyword">return</span> find<span class="gtkdoc opt">-&gt;</span>data <span class="gtkdoc opt">+</span> offset<span class="gtkdoc opt">;</span>
+  <span class="gtkdoc opt">}</span>
+  <span class="keyword">return</span> NULL<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc kwb">static void</span>
+<span class="function">my_suggest</span> <span class="gtkdoc opt">(</span>gpointer data<span class="gtkdoc opt">,</span> guint probability<span class="gtkdoc opt">,</span> GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  MyTypeFind <span class="gtkdoc opt">*</span>find <span class="gtkdoc opt">= (</span>MyTypeFind <span class="gtkdoc opt">*)</span> data<span class="gtkdoc opt">;</span>
+  <span class="keyword">if</span> <span class="gtkdoc opt">(</span>probability <span class="gtkdoc opt">&gt;</span> find<span class="gtkdoc opt">-&gt;</span>probability<span class="gtkdoc opt">) {</span>
+    find<span class="gtkdoc opt">-&gt;</span>probability <span class="gtkdoc opt">=</span> probability<span class="gtkdoc opt">;</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-replace">gst_caps_replace</a></span> <span class="gtkdoc opt">(&amp;</span>find<span class="gtkdoc opt">-&gt;</span>caps<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc kwb">static</span> GstCaps <span class="gtkdoc opt">*</span>
+<span class="function">find_type</span> <span class="gtkdoc opt">(</span>guint8 <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">,</span> guint size<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  GList <span class="gtkdoc opt">*</span>walk<span class="gtkdoc opt">, *</span>type_list<span class="gtkdoc opt">;</span>
+  MyTypeFind find <span class="gtkdoc opt">= {</span>data<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">};</span>
+  GstTypeFind gst_find <span class="gtkdoc opt">= {</span>my_peek<span class="gtkdoc opt">,</span> my_suggest<span class="gtkdoc opt">, &amp;</span>find<span class="gtkdoc opt">, };</span>
+  walk <span class="gtkdoc opt">=</span> type_list <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-list">gst_type_find_factory_get_list</a></span> <span class="gtkdoc opt">();</span>
+  <span class="keyword">while</span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">) {</span>
+    GstTypeFindFactory <span class="gtkdoc opt">*</span>factory <span class="gtkdoc opt">=</span> <span class="function">GST_TYPE_FIND_FACTORY</span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">);</span>
+    walk <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-next">g_list_next</a></span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">)</span>
+    <span class="function"><a href="../gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-call-function">gst_type_find_factory_call_function</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">, &amp;</span>gst_find<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">}</span>
+  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>type_list<span class="gtkdoc opt">);</span>
+  <span class="keyword">return</span> find<span class="gtkdoc opt">.</span>caps<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">};</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
diff --git a/docs/gst/html/annotation-glossary.html b/docs/gst/html/annotation-glossary.html
index a452c0e..9df3250 100644
--- a/docs/gst/html/annotation-glossary.html
+++ b/docs/gst/html/annotation-glossary.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td> </td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
diff --git a/docs/gst/html/api-index-deprecated.html b/docs/gst/html/api-index-deprecated.html
index 45fb0b7..30303d4 100644
--- a/docs/gst/html/api-index-deprecated.html
+++ b/docs/gst/html/api-index-deprecated.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index c9bfa6f..41eb7bc 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="prev" href="gstreamer-hierarchy.html" title="Object Hierarchy">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-hierarchy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -67,7 +67,19 @@
 <a name="api-index-full"></a>API Index</h2></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="GstPad.html#GstActivateMode" title="enum GstActivateMode">GstActivateMode</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams">GstAllocationParams</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-copy" title="gst_allocation_params_copy ()">gst_allocation_params_copy</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()">gst_allocation_params_free</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-init" title="gst_allocation_params_init ()">gst_allocation_params_init</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -75,6 +87,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()">GstAllocatorAllocFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()">gst_allocator_alloc</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -83,6 +99,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocator-get-memory-type" title="gst_allocator_get_memory_type ()">gst_allocator_get_memory_type</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()">gst_allocator_new</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocator-ref" title="gst_allocator_ref ()">gst_allocator_ref</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()">gst_allocator_register</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -95,63 +123,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace">GstAllocTrace</a>, struct in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags">GstAllocTraceFlags</a>, enum in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-available" title="gst_alloc_trace_available ()">gst_alloc_trace_available</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-free" title="gst_alloc_trace_free()">gst_alloc_trace_free</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-get" title="gst_alloc_trace_get ()">gst_alloc_trace_get</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-list" title="gst_alloc_trace_list ()">gst_alloc_trace_list</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-live-all" title="gst_alloc_trace_live_all ()">gst_alloc_trace_live_all</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-new" title="gst_alloc_trace_new()">gst_alloc_trace_new</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print" title="gst_alloc_trace_print ()">gst_alloc_trace_print</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print-all" title="gst_alloc_trace_print_all ()">gst_alloc_trace_print_all</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print-live" title="gst_alloc_trace_print_live ()">gst_alloc_trace_print_live</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-register" title="gst_alloc_trace_register()">gst_alloc_trace_register</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-set-flags" title="gst_alloc_trace_set_flags ()">gst_alloc_trace_set_flags</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-set-flags-all" title="gst_alloc_trace_set_flags_all ()">gst_alloc_trace_set_flags_all</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstAssocFlags" title="enum GstAssocFlags">GstAssocFlags</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
+<a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()">gst_allocator_unref</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -308,6 +280,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()">GstBufferForeachMetaFunc</a>, user_function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode">GstBufferingMode</a>, enum in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -324,23 +300,27 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags" title="enum GstBufferPoolAcquireFlags">GstBufferPoolAcquireFlags</a>, enum in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>, struct in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolClass" title="struct GstBufferPoolClass">GstBufferPoolClass</a>, struct in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolFlags" title="enum GstBufferPoolFlags">GstBufferPoolFlags</a>, enum in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolParams" title="GstBufferPoolParams">GstBufferPoolParams</a>, struct in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta" title="gst_buffer_add_meta ()">gst_buffer_add_meta</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta-timing" title="gst_buffer_add_meta_timing()">gst_buffer_add_meta_timing</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append-memory" title="gst_buffer_append_memory()">gst_buffer_append_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -364,6 +344,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DTS:CAPS" title="GST_BUFFER_DTS()">GST_BUFFER_DTS</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DTS-IS-VALID:CAPS" title="GST_BUFFER_DTS_IS_VALID()">GST_BUFFER_DTS_IS_VALID</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DURATION:CAPS" title="GST_BUFFER_DURATION()">GST_BUFFER_DURATION</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -380,6 +368,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-find-memory" title="gst_buffer_find_memory ()">gst_buffer_find_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAGS:CAPS" title="GST_BUFFER_FLAGS()">GST_BUFFER_FLAGS</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -396,11 +388,23 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()">gst_buffer_get_meta</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()">gst_buffer_foreach_meta</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta-timing" title="gst_buffer_get_meta_timing()">gst_buffer_get_meta_timing</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-all-memory" title="gst_buffer_get_all_memory()">gst_buffer_get_all_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-memory" title="gst_buffer_get_memory()">gst_buffer_get_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-memory-range" title="gst_buffer_get_memory_range ()">gst_buffer_get_memory_range</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()">gst_buffer_get_meta</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -408,7 +412,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes" title="gst_buffer_get_sizes ()">gst_buffer_get_sizes</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes" title="gst_buffer_get_sizes()">gst_buffer_get_sizes</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()">gst_buffer_insert_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -416,10 +424,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-span-fast" title="gst_buffer_is_span_fast ()">gst_buffer_is_span_fast</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()">gst_buffer_is_writable</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -428,10 +432,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-join" title="gst_buffer_join ()">gst_buffer_join</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-add" title="gst_buffer_list_add()">gst_buffer_list_add</a>, macro in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
 </dt>
 <dd></dd>
@@ -456,7 +456,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-len" title="gst_buffer_list_len ()">gst_buffer_list_len</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
+<a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-length" title="gst_buffer_list_length ()">gst_buffer_list_length</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
 </dt>
 <dd></dd>
 <dt>
@@ -468,6 +468,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-new-sized" title="gst_buffer_list_new_sized ()">gst_buffer_list_new_sized</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-ref" title="gst_buffer_list_ref ()">gst_buffer_list_ref</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
 </dt>
 <dd></dd>
@@ -476,10 +480,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-sized-new" title="gst_buffer_list_sized_new ()">gst_buffer_list_sized_new</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-unref" title="gst_buffer_list_unref ()">gst_buffer_list_unref</a>, function in <a class="link" href="gstreamer-GstBufferList.html" title="GstBufferList">GstBufferList</a>
 </dt>
 <dd></dd>
@@ -488,7 +488,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map ()">gst_buffer_map</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map()">gst_buffer_map</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -500,10 +500,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-merge" title="gst_buffer_merge ()">gst_buffer_merge</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new" title="gst_buffer_new ()">gst_buffer_new</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -512,10 +508,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-and-alloc" title="gst_buffer_new_and_alloc()">gst_buffer_new_and_alloc</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped" title="gst_buffer_new_wrapped ()">gst_buffer_new_wrapped</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -548,10 +540,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()">gst_buffer_peek_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()">gst_buffer_pool_acquire_buffer</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
@@ -560,7 +548,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get" title="gst_buffer_pool_config_get ()">gst_buffer_pool_config_get</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-allocator" title="gst_buffer_pool_config_get_allocator ()">gst_buffer_pool_config_get_allocator</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
 <dt>
@@ -568,6 +556,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-params" title="gst_buffer_pool_config_get_params ()">gst_buffer_pool_config_get_params</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-has-option" title="gst_buffer_pool_config_has_option ()">gst_buffer_pool_config_has_option</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
@@ -576,7 +568,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set" title="gst_buffer_pool_config_set ()">gst_buffer_pool_config_set</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()">gst_buffer_pool_config_set_allocator</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-params" title="gst_buffer_pool_config_set_params ()">gst_buffer_pool_config_set_params</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
 <dt>
@@ -616,10 +612,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-prepend-memory" title="gst_buffer_prepend_memory()">gst_buffer_prepend_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-PTS:CAPS" title="GST_BUFFER_PTS()">GST_BUFFER_PTS</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-PTS-IS-VALID:CAPS" title="GST_BUFFER_PTS_IS_VALID()">GST_BUFFER_PTS_IS_VALID</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-ref" title="gst_buffer_ref ()">gst_buffer_ref</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-all-memory" title="gst_buffer_remove_all_memory()">gst_buffer_remove_all_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-memory" title="gst_buffer_remove_memory()">gst_buffer_remove_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -632,11 +644,23 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace" title="gst_buffer_replace()">gst_buffer_replace</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace" title="gst_buffer_replace ()">gst_buffer_replace</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize ()">gst_buffer_resize</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-all-memory" title="gst_buffer_replace_all_memory()">gst_buffer_replace_all_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-memory" title="gst_buffer_replace_memory()">gst_buffer_replace_memory</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-memory-range" title="gst_buffer_replace_memory_range ()">gst_buffer_replace_memory_range</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize()">gst_buffer_resize</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -644,26 +668,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-span" title="gst_buffer_span ()">gst_buffer_span</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-take-memory" title="gst_buffer_take_memory ()">gst_buffer_take_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS" title="GST_BUFFER_TIMESTAMP()">GST_BUFFER_TIMESTAMP</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP-IS-VALID:CAPS" title="GST_BUFFER_TIMESTAMP_IS_VALID()">GST_BUFFER_TIMESTAMP_IS_VALID</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TRACE-NAME:CAPS" title="GST_BUFFER_TRACE_NAME">GST_BUFFER_TRACE_NAME</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()">gst_buffer_unmap</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -833,10 +837,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstCaps.html#gst-caps-do-simplify" title="gst_caps_do_simplify ()">gst_caps_do_simplify</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-fixate" title="gst_caps_fixate ()">gst_caps_fixate</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -905,6 +905,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-is-strictly-equal" title="gst_caps_is_strictly_equal ()">gst_caps_is_strictly_equal</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-subset" title="gst_caps_is_subset ()">gst_caps_is_subset</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -937,6 +941,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-new-empty-simple" title="gst_caps_new_empty_simple ()">gst_caps_new_empty_simple</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-full" title="gst_caps_new_full ()">gst_caps_new_full</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -973,7 +981,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstCaps.html#gst-caps-replace" title="gst_caps_replace()">gst_caps_replace</a>, macro in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-replace" title="gst_caps_replace ()">gst_caps_replace</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
 <dt>
@@ -989,6 +997,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-simplify" title="gst_caps_simplify ()">gst_caps_simplify</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-steal-structure" title="gst_caps_steal_structure ()">gst_caps_steal_structure</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -997,6 +1009,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-take" title="gst_caps_take ()">gst_caps_take</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-to-string" title="gst_caps_to_string ()">gst_caps_to_string</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -1005,10 +1021,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstCaps.html#gst-caps-union" title="gst_caps_union ()">gst_caps_union</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstCaps.html#gst-caps-unref" title="gst_caps_unref ()">gst_caps_unref</a>, function in <a class="link" href="gstreamer-GstCaps.html" title="GstCaps">GstCaps</a>
 </dt>
 <dd></dd>
@@ -1153,10 +1165,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#GstClock--stats" title='The "stats" property'>GstClock:stats</a>, object property in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstClock.html#GstClock--timeout" title='The "timeout" property'>GstClock:timeout</a>, object property in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -1217,14 +1225,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#GST-CLOCK-BROADCAST:CAPS" title="GST_CLOCK_BROADCAST()">GST_CLOCK_BROADCAST</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstClock.html#GST-CLOCK-COND:CAPS" title="GST_CLOCK_COND()">GST_CLOCK_COND</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstClock.html#GST-CLOCK-DIFF:CAPS" title="GST_CLOCK_DIFF()">GST_CLOCK_DIFF</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -1249,10 +1249,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#GST-CLOCK-ENTRY-TRACE-NAME:CAPS" title="GST_CLOCK_ENTRY_TRACE_NAME">GST_CLOCK_ENTRY_TRACE_NAME</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstClock.html#GST-CLOCK-ENTRY-TYPE:CAPS" title="GST_CLOCK_ENTRY_TYPE()">GST_CLOCK_ENTRY_TYPE</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -1281,6 +1277,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstClock.html#gst-clock-get-timeout" title="gst_clock_get_timeout ()">gst_clock_get_timeout</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstClock.html#gst-clock-id-compare-func" title="gst_clock_id_compare_func ()">gst_clock_id_compare_func</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -1337,11 +1337,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#gst-clock-single-shot-id-reinit" title="gst_clock_single_shot_id_reinit ()">gst_clock_single_shot_id_reinit</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
+<a class="link" href="GstClock.html#gst-clock-set-timeout" title="gst_clock_set_timeout ()">gst_clock_set_timeout</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#GST-CLOCK-TIMED-WAIT:CAPS" title="GST_CLOCK_TIMED_WAIT()">GST_CLOCK_TIMED_WAIT</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
+<a class="link" href="GstClock.html#gst-clock-single-shot-id-reinit" title="gst_clock_single_shot_id_reinit ()">gst_clock_single_shot_id_reinit</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1357,7 +1357,67 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#GST-CLOCK-WAIT:CAPS" title="GST_CLOCK_WAIT()">GST_CLOCK_WAIT</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
+<a class="link" href="GstControlBinding.html#GstControlBinding-struct" title="struct GstControlBinding">GstControlBinding</a>, struct in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#GstControlBinding--name" title='The "name" property'>GstControlBinding:name</a>, object property in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#GstControlBinding--object" title='The "object" property'>GstControlBinding:object</a>, object property in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#GstControlBindingClass" title="struct GstControlBindingClass">GstControlBindingClass</a>, struct in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#GstControlBindingConvert" title="GstControlBindingConvert ()">GstControlBindingConvert</a>, user_function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#GstControlSource-struct" title="struct GstControlSource">GstControlSource</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#GstControlSourceClass" title="struct GstControlSourceClass">GstControlSourceClass</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()">GstControlSourceGetValue</a>, user_function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()">GstControlSourceGetValueArray</a>, user_function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#gst-control-binding-get-value" title="gst_control_binding_get_value ()">gst_control_binding_get_value</a>, function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#gst-control-binding-get-value-array" title="gst_control_binding_get_value_array ()">gst_control_binding_get_value_array</a>, function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#gst-control-binding-is-disabled" title="gst_control_binding_is_disabled ()">gst_control_binding_is_disabled</a>, function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#gst-control-binding-set-disabled" title="gst_control_binding_set_disabled ()">gst_control_binding_set_disabled</a>, function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlBinding.html#gst-control-binding-sync-values" title="gst_control_binding_sync_values ()">gst_control_binding_sync_values</a>, function in <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()">gst_control_source_get_value</a>, function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()">gst_control_source_get_value_array</a>, function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1462,6 +1522,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file" title="gst_debug_bin_to_dot_file ()">gst_debug_bin_to_dot_file</a>, function in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS" title="GST_DEBUG_BIN_TO_DOT_FILE()">GST_DEBUG_BIN_TO_DOT_FILE</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -1470,6 +1534,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts" title="gst_debug_bin_to_dot_file_with_ts ()">gst_debug_bin_to_dot_file_with_ts</a>, function in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY:CAPS" title="GST_DEBUG_CATEGORY()">GST_DEBUG_CATEGORY</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -1614,42 +1682,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-add-path" title="gst_default_registry_add_path()">gst_default_registry_add_path</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-add-plugin" title="gst_default_registry_add_plugin()">gst_default_registry_add_plugin</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-check-feature-version" title="gst_default_registry_check_feature_version ()">gst_default_registry_check_feature_version</a>, function in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-feature-filter" title="gst_default_registry_feature_filter()">gst_default_registry_feature_filter</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-find-feature" title="gst_default_registry_find_feature()">gst_default_registry_find_feature</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-find-plugin" title="gst_default_registry_find_plugin()">gst_default_registry_find_plugin</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-get-feature-list-cookie" title="gst_default_registry_get_feature_list_cookie">gst_default_registry_get_feature_list_cookie</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-get-path-list" title="gst_default_registry_get_path_list">gst_default_registry_get_path_list</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstRegistry.html#gst-default-registry-get-plugin-list" title="gst_default_registry_get_plugin_list">gst_default_registry_get_plugin_list</a>, macro in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS" title="GST_DEFINE_MINI_OBJECT_TYPE()">GST_DEFINE_MINI_OBJECT_TYPE</a>, macro in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
@@ -1739,6 +1771,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstElement.html#gst-element-class-add-static-metadata" title="gst_element_class_add_static_metadata ()">gst_element_class_add_static_metadata</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstElement.html#gst-element-class-get-metadata" title="gst_element_class_get_metadata ()">gst_element_class_get_metadata</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -1751,11 +1787,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-class-install-std-props" title="gst_element_class_install_std_props ()">gst_element_class_install_std_props</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
+<a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()">gst_element_class_set_metadata</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-class-set-metadata" title="gst_element_class_set_metadata ()">gst_element_class_set_metadata</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
+<a class="link" href="GstElement.html#gst-element-class-set-static-metadata" title="gst_element_class_set_static_metadata ()">gst_element_class_set_static_metadata</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1931,14 +1967,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-found-tags" title="gst_element_found_tags ()">gst_element_found_tags</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstElement.html#gst-element-found-tags-for-pad" title="gst_element_found_tags_for_pad ()">gst_element_found_tags_for_pad</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-get-base-time" title="gst_element_get_base_time ()">gst_element_get_base_time</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -1963,10 +1991,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-get-index" title="gst_element_get_index ()">gst_element_get_index</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-get-name" title="gst_element_get_name()">gst_element_get_name</a>, macro in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -1975,10 +1999,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-get-query-types" title="gst_element_get_query_types ()">gst_element_get_query_types</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-get-request-pad" title="gst_element_get_request_pad ()">gst_element_get_request_pad</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -1999,10 +2019,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-is-indexable" title="gst_element_is_indexable ()">gst_element_is_indexable</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS" title="GST_ELEMENT_IS_LOCKED_STATE()">GST_ELEMENT_IS_LOCKED_STATE</a>, macro in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -2103,10 +2119,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-provides-clock" title="gst_element_provides_clock ()">gst_element_provides_clock</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-provide-clock" title="gst_element_provide_clock ()">gst_element_provide_clock</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -2143,10 +2155,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-requires-clock" title="gst_element_requires_clock ()">gst_element_requires_clock</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-seek" title="gst_element_seek ()">gst_element_seek</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -2171,10 +2179,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstElement.html#gst-element-set-index" title="gst_element_set_index ()">gst_element_set_index</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstElement.html#gst-element-set-locked-state" title="gst_element_set_locked_state ()">gst_element_set_locked_state</a>, function in <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
 </dt>
 <dd></dd>
@@ -2255,6 +2259,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-add-stream-config-header" title="gst_event_add_stream_config_header ()">gst_event_add_stream_config_header</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-copy" title="gst_event_copy ()">gst_event_copy</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2263,6 +2271,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-get-n-stream-config-headers" title="gst_event_get_n_stream_config_headers ()">gst_event_get_n_stream_config_headers</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()">gst_event_get_seqnum</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2327,6 +2339,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-gap" title="gst_event_new_gap ()">gst_event_new_gap</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-latency" title="gst_event_new_latency ()">gst_event_new_latency</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2359,10 +2375,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-config" title="gst_event_new_stream_config ()">gst_event_new_stream_config</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-start" title="gst_event_new_stream_start ()">gst_event_new_stream_start</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()">gst_event_new_toc</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc-select" title="gst_event_new_toc_select ()">gst_event_new_toc_select</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-buffer-size" title="gst_event_parse_buffer_size ()">gst_event_parse_buffer_size</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2375,10 +2407,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-gap" title="gst_event_parse_gap ()">gst_event_parse_gap</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-latency" title="gst_event_parse_latency ()">gst_event_parse_latency</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-nth-stream-config-header" title="gst_event_parse_nth_stream_config_header ()">gst_event_parse_nth_stream_config_header</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-qos" title="gst_event_parse_qos ()">gst_event_parse_qos</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2399,15 +2439,31 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-config" title="gst_event_parse_stream_config ()">gst_event_parse_stream_config</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-config-setup-data" title="gst_event_parse_stream_config_setup_data ()">gst_event_parse_stream_config_setup_data</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc" title="gst_event_parse_toc ()">gst_event_parse_toc</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()">gst_event_parse_toc_select</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()">gst_event_ref</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace()">gst_event_replace</a>, macro in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace ()">gst_event_replace</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2419,11 +2475,15 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstEvent.html#gst-event-steal" title="gst_event_steal()">gst_event_steal</a>, macro in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-set-stream-config-setup-data" title="gst_event_set_stream_config_setup_data ()">gst_event_set_stream_config_setup_data</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstEvent.html#gst-event-take" title="gst_event_take()">gst_event_take</a>, macro in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-steal" title="gst_event_steal ()">gst_event_steal</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-take" title="gst_event_take ()">gst_event_take</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2431,10 +2491,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TRACE-NAME:CAPS" title="GST_EVENT_TRACE_NAME">GST_EVENT_TRACE_NAME</a>, macro in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS" title="GST_EVENT_TYPE()">GST_EVENT_TYPE</a>, macro in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2472,14 +2528,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstFilter.html#GstFilterFunc" title="GstFilterFunc ()">GstFilterFunc</a>, user_function in <a class="link" href="gstreamer-GstFilter.html" title="GstFilter">GstFilter</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()">gst_filter_run</a>, function in <a class="link" href="gstreamer-GstFilter.html" title="GstFilter">GstFilter</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-FIXME:CAPS" title="GST_FIXME()">GST_FIXME</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -2605,11 +2653,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-pull-default" title="gst_ghost_pad_activate_pull_default ()">gst_ghost_pad_activate_pull_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-push-default" title="gst_ghost_pad_activate_push_default ()">gst_ghost_pad_activate_push_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
+<a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-mode-default" title="gst_ghost_pad_activate_mode_default ()">gst_ghost_pad_activate_mode_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2621,11 +2665,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-pull-default" title="gst_ghost_pad_internal_activate_pull_default ()">gst_ghost_pad_internal_activate_pull_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-push-default" title="gst_ghost_pad_internal_activate_push_default ()">gst_ghost_pad_internal_activate_push_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
+<a class="link" href="GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default" title="gst_ghost_pad_internal_activate_mode_default ()">gst_ghost_pad_internal_activate_mode_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2662,210 +2702,6 @@
 <dd></dd>
 <a name="idxI"></a><h3 class="title">I</h3>
 <dt>
-<a class="link" href="GstIndex.html#GstIndex-struct" title="struct GstIndex">GstIndex</a>, struct in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndex-entry-added" title='The "entry-added" signal'>GstIndex::entry-added</a>, object signal in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndex--resolver" title='The "resolver" property'>GstIndex:resolver</a>, object property in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexAssociation" title="struct GstIndexAssociation">GstIndexAssociation</a>, struct in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexCertainty" title="enum GstIndexCertainty">GstIndexCertainty</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexEntry" title="struct GstIndexEntry">GstIndexEntry</a>, struct in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexEntryType" title="enum GstIndexEntryType">GstIndexEntryType</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#GstIndexFactory-struct" title="struct GstIndexFactory">GstIndexFactory</a>, struct in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexFilter" title="GstIndexFilter ()">GstIndexFilter</a>, user_function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexFlags" title="enum GstIndexFlags">GstIndexFlags</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexGroup" title="struct GstIndexGroup">GstIndexGroup</a>, struct in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexLookupMethod" title="enum GstIndexLookupMethod">GstIndexLookupMethod</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexResolver" title="GstIndexResolver ()">GstIndexResolver</a>, user_function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GstIndexResolverMethod" title="enum GstIndexResolverMethod">GstIndexResolverMethod</a>, enum in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-add-association" title="gst_index_add_association ()">gst_index_add_association</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-add-associationv" title="gst_index_add_associationv ()">gst_index_add_associationv</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-add-format" title="gst_index_add_format ()">gst_index_add_format</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-add-id" title="gst_index_add_id ()">gst_index_add_id</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-add-object" title="gst_index_add_object ()">gst_index_add_object</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-ASSOC-FLAGS:CAPS" title="GST_INDEX_ASSOC_FLAGS()">GST_INDEX_ASSOC_FLAGS</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-ASSOC-FORMAT:CAPS" title="GST_INDEX_ASSOC_FORMAT()">GST_INDEX_ASSOC_FORMAT</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-ASSOC-VALUE:CAPS" title="GST_INDEX_ASSOC_VALUE()">GST_INDEX_ASSOC_VALUE</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-commit" title="gst_index_commit ()">gst_index_commit</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-entry-assoc-map" title="gst_index_entry_assoc_map ()">gst_index_entry_assoc_map</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-entry-copy" title="gst_index_entry_copy ()">gst_index_entry_copy</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-entry-free" title="gst_index_entry_free ()">gst_index_entry_free</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#gst-index-factory-create" title="gst_index_factory_create ()">gst_index_factory_create</a>, function in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#gst-index-factory-destroy" title="gst_index_factory_destroy ()">gst_index_factory_destroy</a>, function in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#gst-index-factory-find" title="gst_index_factory_find ()">gst_index_factory_find</a>, function in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#gst-index-factory-make" title="gst_index_factory_make ()">gst_index_factory_make</a>, function in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndexFactory.html#gst-index-factory-new" title="gst_index_factory_new ()">gst_index_factory_new</a>, function in <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-FORMAT-FORMAT:CAPS" title="GST_INDEX_FORMAT_FORMAT()">GST_INDEX_FORMAT_FORMAT</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-FORMAT-KEY:CAPS" title="GST_INDEX_FORMAT_KEY()">GST_INDEX_FORMAT_KEY</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-get-assoc-entry" title="gst_index_get_assoc_entry ()">gst_index_get_assoc_entry</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-get-assoc-entry-full" title="gst_index_get_assoc_entry_full ()">gst_index_get_assoc_entry_full</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-get-certainty" title="gst_index_get_certainty ()">gst_index_get_certainty</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-get-group" title="gst_index_get_group ()">gst_index_get_group</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-get-writer-id" title="gst_index_get_writer_id ()">gst_index_get_writer_id</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-ID-DESCRIPTION:CAPS" title="GST_INDEX_ID_DESCRIPTION()">GST_INDEX_ID_DESCRIPTION</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-ID-INVALID:CAPS" title="GST_INDEX_ID_INVALID">GST_INDEX_ID_INVALID</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-IS-READABLE:CAPS" title="GST_INDEX_IS_READABLE()">GST_INDEX_IS_READABLE</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-IS-WRITABLE:CAPS" title="GST_INDEX_IS_WRITABLE()">GST_INDEX_IS_WRITABLE</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#GST-INDEX-NASSOCS:CAPS" title="GST_INDEX_NASSOCS()">GST_INDEX_NASSOCS</a>, macro in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-new" title="gst_index_new ()">gst_index_new</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-new-group" title="gst_index_new_group ()">gst_index_new_group</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-certainty" title="gst_index_set_certainty ()">gst_index_set_certainty</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-filter" title="gst_index_set_filter ()">gst_index_set_filter</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-filter-full" title="gst_index_set_filter_full ()">gst_index_set_filter_full</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-group" title="gst_index_set_group ()">gst_index_set_group</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-resolver" title="gst_index_set_resolver ()">gst_index_set_resolver</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstIndex.html#gst-index-set-resolver-full" title="gst_index_set_resolver_full ()">gst_index_set_resolver_full</a>, function in <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-INFO:CAPS" title="GST_INFO()">GST_INFO</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -3036,6 +2872,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo">GstMapInfo</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS" title="GST_MAP_INFO_INIT">GST_MAP_INFO_INIT</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS" title="GST_MAP_READWRITE">GST_MAP_READWRITE</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3052,10 +2896,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstMemoryAllocFunction" title="GstMemoryAllocFunction ()">GstMemoryAllocFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()">GstMemoryCopyFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3068,10 +2908,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstMemoryGetSizesFunction" title="GstMemoryGetSizesFunction ()">GstMemoryGetSizesFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo">GstMemoryInfo</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3084,10 +2920,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstMemoryResizeFunction" title="GstMemoryResizeFunction ()">GstMemoryResizeFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()">GstMemoryShareFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3096,11 +2928,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-memory-alignment" title="gst_memory_alignment">gst_memory_alignment</a>, variable in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-copy" title="gst_memory_copy ()">gst_memory_copy</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-memory-copy" title="gst_memory_copy ()">gst_memory_copy</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAGS:CAPS" title="GST_MEMORY_FLAGS()">GST_MEMORY_FLAGS</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS" title="GST_MEMORY_FLAG_IS_SET()">GST_MEMORY_FLAG_IS_SET</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS" title="GST_MEMORY_FLAG_UNSET()">GST_MEMORY_FLAG_UNSET</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3108,11 +2948,27 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-is-exclusive" title="gst_memory_is_exclusive ()">gst_memory_is_exclusive</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS" title="GST_MEMORY_IS_READONLY()">GST_MEMORY_IS_READONLY</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-span" title="gst_memory_is_span ()">gst_memory_is_span</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-WRITABLE:CAPS" title="GST_MEMORY_IS_WRITABLE()">GST_MEMORY_IS_WRITABLE</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS" title="GST_MEMORY_IS_ZERO_PADDED()">GST_MEMORY_IS_ZERO_PADDED</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS" title="GST_MEMORY_IS_ZERO_PREFIXED()">GST_MEMORY_IS_ZERO_PREFIXED</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-make-mapped" title="gst_memory_make_mapped ()">gst_memory_make_mapped</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3284,6 +3140,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-new-toc" title="gst_message_new_toc ()">gst_message_new_toc</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMessage.html#gst-message-new-warning" title="gst_message_new_warning ()">gst_message_new_warning</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3376,6 +3236,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-parse-toc" title="gst_message_parse_toc ()">gst_message_parse_toc</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-warning" title="gst_message_parse_warning ()">gst_message_parse_warning</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3384,7 +3248,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMessage.html#gst-message-replace" title="gst_message_replace()">gst_message_replace</a>, macro in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-replace" title="gst_message_replace ()">gst_message_replace</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3424,10 +3288,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-TRACE-NAME:CAPS" title="GST_MESSAGE_TRACE_NAME">GST_MESSAGE_TRACE_NAME</a>, macro in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS" title="GST_MESSAGE_TYPE()">GST_MESSAGE_TYPE</a>, macro in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3452,7 +3312,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMeta.html#GstMetaCopyFunction" title="GstMetaCopyFunction ()">GstMetaCopyFunction</a>, user_function in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+<a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags">GstMetaFlags</a>, enum in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3468,7 +3328,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#GstMetaTiming" title="struct GstMetaTiming">GstMetaTiming</a>, struct in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstMeta.html#GstMetaTransformCopy" title="GstMetaTransformCopy">GstMetaTransformCopy</a>, struct in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3476,6 +3336,30 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-has-tag" title="gst_meta_api_type_has_tag ()">gst_meta_api_type_has_tag</a>, function in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-register" title="gst_meta_api_type_register ()">gst_meta_api_type_register</a>, function in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAGS:CAPS" title="GST_META_FLAGS()">GST_META_FLAGS</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-IS-SET:CAPS" title="GST_META_FLAG_IS_SET()">GST_META_FLAG_IS_SET</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-SET:CAPS" title="GST_META_FLAG_SET()">GST_META_FLAG_SET</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-UNSET:CAPS" title="GST_META_FLAG_UNSET()">GST_META_FLAG_UNSET</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()">gst_meta_get_info</a>, function in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
 </dt>
 <dd></dd>
@@ -3484,15 +3368,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-meta-timing-get-info" title="gst_meta_timing_get_info ()">gst_meta_timing_get_info</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-TAG-MEMORY:CAPS" title="GST_META_TAG_MEMORY">GST_META_TAG_MEMORY</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#GST-META-TIMING-INFO:CAPS" title="GST_META_TIMING_INFO">GST_META_TIMING_INFO</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstMeta.html#GST-META-TRACE-NAME:CAPS" title="GST_META_TRACE_NAME">GST_META_TRACE_NAME</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
+<a class="link" href="gstreamer-GstMeta.html#GST-META-TRANSFORM-IS-COPY:CAPS" title="GST_META_TRANSFORM_IS_COPY()">GST_META_TRANSFORM_IS_COPY</a>, macro in <a class="link" href="gstreamer-GstMeta.html" title="GstMeta">GstMeta</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3630,6 +3510,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-add-control-binding" title="gst_object_add_control_binding ()">gst_object_add_control_binding</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#gst-object-check-uniqueness" title="gst_object_check_uniqueness ()">gst_object_check_uniqueness</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
@@ -3658,6 +3542,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-get-control-binding" title="gst_object_get_control_binding ()">gst_object_get_control_binding</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-get-control-rate" title="gst_object_get_control_rate ()">gst_object_get_control_rate</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#GST-OBJECT-GET-LOCK:CAPS" title="GST_OBJECT_GET_LOCK()">GST_OBJECT_GET_LOCK</a>, macro in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
@@ -3674,6 +3566,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-get-value" title="gst_object_get_value ()">gst_object_get_value</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-get-value-array" title="gst_object_get_value_array ()">gst_object_get_value_array</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-has-active-control-bindings" title="gst_object_has_active_control_bindings ()">gst_object_has_active_control_bindings</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#gst-object-has-ancestor" title="gst_object_has_ancestor ()">gst_object_has_ancestor</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
@@ -3706,10 +3610,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-remove-control-binding" title="gst_object_remove_control_binding ()">gst_object_remove_control_binding</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#gst-object-replace" title="gst_object_replace ()">gst_object_replace</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-set-control-bindings-disabled" title="gst_object_set_control_bindings_disabled ()">gst_object_set_control_bindings_disabled</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-set-control-binding-disabled" title="gst_object_set_control_binding_disabled ()">gst_object_set_control_binding_disabled</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-set-control-rate" title="gst_object_set_control_rate ()">gst_object_set_control_rate</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#gst-object-set-name" title="gst_object_set_name ()">gst_object_set_name</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
@@ -3718,6 +3638,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstObject.html#gst-object-suggest-next-sync" title="gst_object_suggest_next_sync ()">gst_object_suggest_next_sync</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstObject.html#gst-object-sync-values" title="gst_object_sync_values ()">gst_object_sync_values</a>, function in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstObject.html#GST-OBJECT-TRYLOCK:CAPS" title="GST_OBJECT_TRYLOCK()">GST_OBJECT_TRYLOCK</a>, macro in <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
 </dt>
 <dd></dd>
@@ -3759,10 +3687,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstPadAcceptCapsFunction" title="GstPadAcceptCapsFunction ()">GstPadAcceptCapsFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()">GstPadActivateFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -3787,10 +3711,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstPadFixateCapsFunction" title="GstPadFixateCapsFunction ()">GstPadFixateCapsFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#GstPadFlags" title="enum GstPadFlags">GstPadFlags</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -3799,10 +3719,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstPadGetCapsFunction" title="GstPadGetCapsFunction ()">GstPadGetCapsFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()">GstPadGetRangeFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -3823,6 +3739,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode">GstPadMode</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPadTemplate.html#GstPadPresence" title="enum GstPadPresence">GstPadPresence</a>, enum in <a class="link" href="GstPadTemplate.html" title="GstPadTemplate">GstPadTemplate</a>
 </dt>
 <dd></dd>
@@ -3831,11 +3751,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()">GstPadQueryFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GstPadProbeInfo" title="struct GstPadProbeInfo">GstPadProbeInfo</a>, struct in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstPadQueryTypeFunction" title="GstPadQueryTypeFunction ()">GstPadQueryTypeFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GstPadProbeReturn" title="enum GstPadProbeReturn">GstPadProbeReturn</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GstPadProbeType" title="enum GstPadProbeType">GstPadProbeType</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()">GstPadQueryFunction</a>, user_function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3875,15 +3803,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-accept-caps" title="gst_pad_accept_caps ()">gst_pad_accept_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-activate-pull" title="gst_pad_activate_pull ()">gst_pad_activate_pull</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-activate-push" title="gst_pad_activate_push ()">gst_pad_activate_push</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-activate-mode" title="gst_pad_activate_mode ()">gst_pad_activate_mode</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3911,10 +3831,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-fixate-caps" title="gst_pad_fixate_caps ()">gst_pad_fixate_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-forward" title="gst_pad_forward ()">gst_pad_forward</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -3923,14 +3839,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()">gst_pad_get_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-get-caps-reffed" title="gst_pad_get_caps_reffed()">gst_pad_get_caps_reffed</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()">gst_pad_get_current_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -3971,14 +3879,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-get-query-types" title="gst_pad_get_query_types ()">gst_pad_get_query_types</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-get-query-types-default" title="gst_pad_get_query_types_default ()">gst_pad_get_query_types_default</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()">gst_pad_get_range</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4059,23 +3959,111 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-peer-accept-caps" title="gst_pad_peer_accept_caps ()">gst_pad_peer_accept_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-peer-get-caps" title="gst_pad_peer_get_caps ()">gst_pad_peer_get_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-peer-get-caps-reffed" title="gst_pad_peer_get_caps_reffed()">gst_pad_peer_get_caps_reffed</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-peer-query" title="gst_pad_peer_query ()">gst_pad_peer_query</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-proxy-getcaps" title="gst_pad_proxy_getcaps ()">gst_pad_proxy_getcaps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-peer-query-accept-caps" title="gst_pad_peer_query_accept_caps ()">gst_pad_peer_query_accept_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-peer-query-caps" title="gst_pad_peer_query_caps ()">gst_pad_peer_query_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-peer-query-convert" title="gst_pad_peer_query_convert ()">gst_pad_peer_query_convert</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-peer-query-duration" title="gst_pad_peer_query_duration ()">gst_pad_peer_query_duration</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-peer-query-position" title="gst_pad_peer_query_position ()">gst_pad_peer_query_position</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-BUFFER:CAPS" title="GST_PAD_PROBE_INFO_BUFFER()">GST_PAD_PROBE_INFO_BUFFER</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS" title="GST_PAD_PROBE_INFO_BUFFER_LIST()">GST_PAD_PROBE_INFO_BUFFER_LIST</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-DATA:CAPS" title="GST_PAD_PROBE_INFO_DATA()">GST_PAD_PROBE_INFO_DATA</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-EVENT:CAPS" title="GST_PAD_PROBE_INFO_EVENT()">GST_PAD_PROBE_INFO_EVENT</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-ID:CAPS" title="GST_PAD_PROBE_INFO_ID()">GST_PAD_PROBE_INFO_ID</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-OFFSET:CAPS" title="GST_PAD_PROBE_INFO_OFFSET()">GST_PAD_PROBE_INFO_OFFSET</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-QUERY:CAPS" title="GST_PAD_PROBE_INFO_QUERY()">GST_PAD_PROBE_INFO_QUERY</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-SIZE:CAPS" title="GST_PAD_PROBE_INFO_SIZE()">GST_PAD_PROBE_INFO_SIZE</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-INFO-TYPE:CAPS" title="GST_PAD_PROBE_INFO_TYPE()">GST_PAD_PROBE_INFO_TYPE</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_ALL_BOTH">GST_PAD_PROBE_TYPE_ALL_BOTH</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCKING:CAPS" title="GST_PAD_PROBE_TYPE_BLOCKING">GST_PAD_PROBE_TYPE_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM">GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM">GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_DATA_BOTH">GST_PAD_PROBE_TYPE_DATA_BOTH</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM">GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS" title="GST_PAD_PROBE_TYPE_DATA_UPSTREAM">GST_PAD_PROBE_TYPE_DATA_UPSTREAM</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_EVENT_BOTH">GST_PAD_PROBE_TYPE_EVENT_BOTH</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS" title="GST_PAD_PROBE_TYPE_QUERY_BOTH">GST_PAD_PROBE_TYPE_QUERY_BOTH</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#GST-PAD-PROBE-TYPE-SCHEDULING:CAPS" title="GST_PAD_PROBE_TYPE_SCHEDULING">GST_PAD_PROBE_TYPE_SCHEDULING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-proxy-query-accept-caps" title="gst_pad_proxy_query_accept_caps ()">gst_pad_proxy_query_accept_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-proxy-query-caps" title="gst_pad_proxy_query_caps ()">gst_pad_proxy_query_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4099,6 +4087,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPad.html#gst-pad-query-accept-caps" title="gst_pad_query_accept_caps ()">gst_pad_query_accept_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-query-caps" title="gst_pad_query_caps ()">gst_pad_query_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPad.html#gst-pad-query-convert" title="gst_pad_query_convert ()">gst_pad_query_convert</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4111,18 +4107,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-query-peer-convert" title="gst_pad_query_peer_convert ()">gst_pad_query_peer_convert</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-query-peer-duration" title="gst_pad_query_peer_duration ()">gst_pad_query_peer_duration</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#gst-pad-query-peer-position" title="gst_pad_query_peer_position ()">gst_pad_query_peer_position</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-query-position" title="gst_pad_query_position ()">gst_pad_query_position</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4135,19 +4119,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-acceptcaps-function" title="gst_pad_set_acceptcaps_function ()">gst_pad_set_acceptcaps_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-activatemode-function" title="gst_pad_set_activatemode_function()">gst_pad_set_activatemode_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-activatepull-function" title="gst_pad_set_activatepull_function ()">gst_pad_set_activatepull_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-activatemode-function-full" title="gst_pad_set_activatemode_function_full ()">gst_pad_set_activatemode_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-activatepush-function" title="gst_pad_set_activatepush_function ()">gst_pad_set_activatepush_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-activate-function" title="gst_pad_set_activate_function()">gst_pad_set_activate_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-activate-function" title="gst_pad_set_activate_function ()">gst_pad_set_activate_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-activate-function-full" title="gst_pad_set_activate_function_full ()">gst_pad_set_activate_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4159,11 +4143,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function ()">gst_pad_set_chain_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function()">gst_pad_set_chain_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function ()">gst_pad_set_chain_list_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-chain-function-full" title="gst_pad_set_chain_function_full ()">gst_pad_set_chain_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-set-chain-list-function" title="gst_pad_set_chain_list_function()">gst_pad_set_chain_list_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-set-chain-list-function-full" title="gst_pad_set_chain_list_function_full ()">gst_pad_set_chain_list_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4171,27 +4163,35 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-event-function" title="gst_pad_set_event_function ()">gst_pad_set_event_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-event-function" title="gst_pad_set_event_function()">gst_pad_set_event_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-fixatecaps-function" title="gst_pad_set_fixatecaps_function ()">gst_pad_set_fixatecaps_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-event-function-full" title="gst_pad_set_event_function_full ()">gst_pad_set_event_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-getcaps-function" title="gst_pad_set_getcaps_function ()">gst_pad_set_getcaps_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function()">gst_pad_set_getrange_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-getrange-function" title="gst_pad_set_getrange_function ()">gst_pad_set_getrange_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-getrange-function-full" title="gst_pad_set_getrange_function_full ()">gst_pad_set_getrange_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function" title="gst_pad_set_iterate_internal_links_function ()">gst_pad_set_iterate_internal_links_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function" title="gst_pad_set_iterate_internal_links_function()">gst_pad_set_iterate_internal_links_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-link-function" title="gst_pad_set_link_function ()">gst_pad_set_link_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function-full" title="gst_pad_set_iterate_internal_links_function_full ()">gst_pad_set_iterate_internal_links_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-set-link-function" title="gst_pad_set_link_function()">gst_pad_set_link_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-set-link-function-full" title="gst_pad_set_link_function_full ()">gst_pad_set_link_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4199,15 +4199,19 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-query-function" title="gst_pad_set_query_function ()">gst_pad_set_query_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-query-function" title="gst_pad_set_query_function()">gst_pad_set_query_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-query-type-function" title="gst_pad_set_query_type_function ()">gst_pad_set_query_type_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-query-function-full" title="gst_pad_set_query_function_full ()">gst_pad_set_query_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-unlink-function" title="gst_pad_set_unlink_function ()">gst_pad_set_unlink_function</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-set-unlink-function" title="gst_pad_set_unlink_function()">gst_pad_set_unlink_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstPad.html#gst-pad-set-unlink-function-full" title="gst_pad_set_unlink_function_full ()">gst_pad_set_unlink_function_full</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4227,10 +4231,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GST-PAD-STREAM-LOCK-FULL:CAPS" title="GST_PAD_STREAM_LOCK_FULL()">GST_PAD_STREAM_LOCK_FULL</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#GST-PAD-STREAM-TRYLOCK:CAPS" title="GST_PAD_STREAM_TRYLOCK()">GST_PAD_STREAM_TRYLOCK</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4239,10 +4239,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GST-PAD-STREAM-UNLOCK-FULL:CAPS" title="GST_PAD_STREAM_UNLOCK_FULL()">GST_PAD_STREAM_UNLOCK_FULL</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPadTemplate.html#GST-PAD-TEMPLATE-CAPS" title="GST_PAD_TEMPLATE_CAPS()">GST_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="GstPadTemplate.html" title="GstPadTemplate">GstPadTemplate</a>
 </dt>
 <dd></dd>
@@ -4519,10 +4515,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPluginFeature.html#gst-plugin-feature-type-name-filter" title="gst_plugin_feature_type_name_filter ()">gst_plugin_feature_type_name_filter</a>, function in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPlugin.html#gst-plugin-get-cache-data" title="gst_plugin_get_cache_data ()">gst_plugin_get_cache_data</a>, function in <a class="link" href="GstPlugin.html" title="GstPlugin">GstPlugin</a>
 </dt>
 <dd></dd>
@@ -4703,6 +4695,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPreset.html#gst-preset-get-app-dir" title="gst_preset_get_app_dir ()">gst_preset_get_app_dir</a>, function in <a class="link" href="GstPreset.html" title="GstPreset">GstPreset</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPreset.html#gst-preset-get-meta" title="gst_preset_get_meta ()">gst_preset_get_meta</a>, function in <a class="link" href="GstPreset.html" title="GstPreset">GstPreset</a>
 </dt>
 <dd></dd>
@@ -4727,6 +4723,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPreset.html#gst-preset-set-app-dir" title="gst_preset_set_app_dir ()">gst_preset_set_app_dir</a>, function in <a class="link" href="GstPreset.html" title="GstPreset">GstPreset</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPreset.html#gst-preset-set-meta" title="gst_preset_set_meta ()">gst_preset_set_meta</a>, function in <a class="link" href="GstPreset.html" title="GstPreset">GstPreset</a>
 </dt>
 <dd></dd>
@@ -4739,26 +4739,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GstProbeReturn" title="enum GstProbeReturn">GstProbeReturn</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#GstProbeType" title="enum GstProbeType">GstProbeType</a>, enum in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#GST-PROBE-TYPE-BLOCKING:CAPS" title="GST_PROBE_TYPE_BLOCKING">GST_PROBE_TYPE_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#GST-PROBE-TYPE-DATA:CAPS" title="GST_PROBE_TYPE_DATA">GST_PROBE_TYPE_DATA</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstPad.html#GST-PROBE-TYPE-SCHEDULING:CAPS" title="GST_PROBE_TYPE_SCHEDULING">GST_PROBE_TYPE_SCHEDULING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMessage.html#GstProgressType" title="enum GstProgressType">GstProgressType</a>, enum in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -4767,10 +4747,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-acceptcaps-default" title="gst_proxy_pad_acceptcaps_default ()">gst_proxy_pad_acceptcaps_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstGhostPad.html#gst-proxy-pad-chain-default" title="gst_proxy_pad_chain_default ()">gst_proxy_pad_chain_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -4783,14 +4759,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-fixatecaps-default" title="gst_proxy_pad_fixatecaps_default ()">gst_proxy_pad_fixatecaps_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-getcaps-default" title="gst_proxy_pad_getcaps_default ()">gst_proxy_pad_getcaps_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstGhostPad.html#gst-proxy-pad-getrange-default" title="gst_proxy_pad_getrange_default ()">gst_proxy_pad_getrange_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -4807,10 +4775,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-query-type-default" title="gst_proxy_pad_query_type_default ()">gst_proxy_pad_query_type_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstGhostPad.html#gst-proxy-pad-unlink-default" title="gst_proxy_pad_unlink_default ()">gst_proxy_pad_unlink_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -4828,11 +4792,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition">GstQueryTypeDefinition</a>, struct in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-memory" title="gst_query_add_allocation_memory ()">gst_query_add_allocation_memory</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags">GstQueryTypeFlags</a>, enum in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4840,26 +4800,46 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-param" title="gst_query_add_allocation_param ()">gst_query_add_allocation_param</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-pool" title="gst_query_add_allocation_pool ()">gst_query_add_allocation_pool</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-add-buffering-range" title="gst_query_add_buffering_range ()">gst_query_add_buffering_range</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-add-scheduling-mode" title="gst_query_add_scheduling_mode ()">gst_query_add_scheduling_mode</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-copy" title="gst_query_copy ()">gst_query_copy</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-memories" title="gst_query_get_n_allocation_memories ()">gst_query_get_n_allocation_memories</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas" title="gst_query_get_n_allocation_metas ()">gst_query_get_n_allocation_metas</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-params" title="gst_query_get_n_allocation_params ()">gst_query_get_n_allocation_params</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-pools" title="gst_query_get_n_allocation_pools ()">gst_query_get_n_allocation_pools</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges" title="gst_query_get_n_buffering_ranges ()">gst_query_get_n_buffering_ranges</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-scheduling-modes" title="gst_query_get_n_scheduling_modes ()">gst_query_get_n_scheduling_modes</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-get-structure" title="gst_query_get_structure ()">gst_query_get_structure</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4868,14 +4848,42 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-has-scheduling-mode" title="gst_query_has_scheduling_mode ()">gst_query_has_scheduling_mode</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-intersect-caps-result" title="gst_query_intersect_caps_result ()">gst_query_intersect_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS" title="GST_QUERY_IS_DOWNSTREAM()">GST_QUERY_IS_DOWNSTREAM</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-SERIALIZED:CAPS" title="GST_QUERY_IS_SERIALIZED()">GST_QUERY_IS_SERIALIZED</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS" title="GST_QUERY_IS_UPSTREAM()">GST_QUERY_IS_UPSTREAM</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-is-writable" title="gst_query_is_writable()">gst_query_is_writable</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS" title="GST_QUERY_MAKE_TYPE()">GST_QUERY_MAKE_TYPE</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-make-writable" title="gst_query_make_writable()">gst_query_make_writable</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-new-accept-caps" title="gst_query_new_accept_caps ()">gst_query_new_accept_caps</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-new-allocation" title="gst_query_new_allocation ()">gst_query_new_allocation</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4884,6 +4892,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-new-caps" title="gst_query_new_caps ()">gst_query_new_caps</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-new-convert" title="gst_query_new_convert ()">gst_query_new_convert</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4892,6 +4904,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-new-drain" title="gst_query_new_drain ()">gst_query_new_drain</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-new-duration" title="gst_query_new_duration ()">gst_query_new_duration</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4920,15 +4936,23 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()">gst_query_new_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-new-uri" title="gst_query_new_uri ()">gst_query_new_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-allocation" title="gst_query_parse_allocation ()">gst_query_parse_allocation</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-accept-caps" title="gst_query_parse_accept_caps ()">gst_query_parse_accept_caps</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-allocation-params" title="gst_query_parse_allocation_params ()">gst_query_parse_allocation_params</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-accept-caps-result" title="gst_query_parse_accept_caps_result ()">gst_query_parse_accept_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-allocation" title="gst_query_parse_allocation ()">gst_query_parse_allocation</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4944,6 +4968,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-caps" title="gst_query_parse_caps ()">gst_query_parse_caps</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-caps-result" title="gst_query_parse_caps_result ()">gst_query_parse_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-convert" title="gst_query_parse_convert ()">gst_query_parse_convert</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4956,11 +4988,15 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-memory" title="gst_query_parse_nth_allocation_memory ()">gst_query_parse_nth_allocation_memory</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta" title="gst_query_parse_nth_allocation_meta ()">gst_query_parse_nth_allocation_meta</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta" title="gst_query_parse_nth_allocation_meta ()">gst_query_parse_nth_allocation_meta</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-param" title="gst_query_parse_nth_allocation_param ()">gst_query_parse_nth_allocation_param</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-pool" title="gst_query_parse_nth_allocation_pool ()">gst_query_parse_nth_allocation_pool</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4972,6 +5008,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode" title="gst_query_parse_nth_scheduling_mode ()">gst_query_parse_nth_scheduling_mode</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-n-formats" title="gst_query_parse_n_formats ()">gst_query_parse_n_formats</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4992,6 +5032,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()">gst_query_parse_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-uri" title="gst_query_parse_uri ()">gst_query_parse_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5000,11 +5044,15 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-replace" title="gst_query_replace()">gst_query_replace</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta" title="gst_query_remove_nth_allocation_meta ()">gst_query_remove_nth_allocation_meta</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-set-allocation-params" title="gst_query_set_allocation_params ()">gst_query_set_allocation_params</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-replace" title="gst_query_replace ()">gst_query_replace</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-accept-caps-result" title="gst_query_set_accept_caps_result ()">gst_query_set_accept_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5020,6 +5068,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-caps-result" title="gst_query_set_caps_result ()">gst_query_set_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-set-convert" title="gst_query_set_convert ()">gst_query_set_convert</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5040,6 +5092,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-nth-allocation-param" title="gst_query_set_nth_allocation_param ()">gst_query_set_nth_allocation_param</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-nth-allocation-pool" title="gst_query_set_nth_allocation_pool ()">gst_query_set_nth_allocation_pool</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-set-position" title="gst_query_set_position ()">gst_query_set_position</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5056,19 +5116,23 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()">gst_query_set_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-set-uri" title="gst_query_set_uri ()">gst_query_set_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-types-contains" title="gst_query_types_contains ()">gst_query_types_contains</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS" title="GST_QUERY_TYPE()">GST_QUERY_TYPE</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-by-nick" title="gst_query_type_get_by_nick ()">gst_query_type_get_by_nick</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-BOTH:CAPS" title="GST_QUERY_TYPE_BOTH">GST_QUERY_TYPE_BOTH</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-details" title="gst_query_type_get_details ()">gst_query_type_get_details</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-flags" title="gst_query_type_get_flags ()">gst_query_type_get_flags</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5076,18 +5140,10 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-type-iterate-definitions" title="gst_query_type_iterate_definitions ()">gst_query_type_iterate_definitions</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS" title="GST_QUERY_TYPE_NAME()">GST_QUERY_TYPE_NAME</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-type-register" title="gst_query_type_register ()">gst_query_type_register</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-type-to-quark" title="gst_query_type_to_quark ()">gst_query_type_to_quark</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5181,6 +5237,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstRegistry.html#gst-registry-check-feature-version" title="gst_registry_check_feature_version ()">gst_registry_check_feature_version</a>, function in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstRegistry.html#gst-registry-feature-filter" title="gst_registry_feature_filter ()">gst_registry_feature_filter</a>, function in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
 </dt>
 <dd></dd>
@@ -5201,7 +5261,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstRegistry.html#gst-registry-get-default" title="gst_registry_get_default ()">gst_registry_get_default</a>, function in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
+<a class="link" href="GstRegistry.html#gst-registry-get" title="gst_registry_get ()">gst_registry_get</a>, function in <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5306,6 +5366,42 @@
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
 <dt>
+<a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample">GstSample</a>, struct in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-get-buffer" title="gst_sample_get_buffer ()">gst_sample_get_buffer</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()">gst_sample_get_caps</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-get-info" title="gst_sample_get_info ()">gst_sample_get_info</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-get-segment" title="gst_sample_get_segment ()">gst_sample_get_segment</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-new" title="gst_sample_new ()">gst_sample_new</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-ref" title="gst_sample_ref ()">gst_sample_ref</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstSample.html#gst-sample-unref" title="gst_sample_unref ()">gst_sample_unref</a>, function in <a class="link" href="gstreamer-GstSample.html" title="GstSample">GstSample</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags">GstSchedulingFlags</a>, enum in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode">GstSearchMode</a>, enum in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
 </dt>
 <dd></dd>
@@ -5478,6 +5574,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags">GstStreamConfigFlags</a>, enum in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstGError.html#GstStreamError" title="enum GstStreamError">GstStreamError</a>, enum in <a class="link" href="gstreamer-GstGError.html" title="GstGError">GstGError</a>
 </dt>
 <dd></dd>
@@ -5514,10 +5614,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstStructure.html#gst-structure-empty-new" title="gst_structure_empty_new ()">gst_structure_empty_new</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-fixate" title="gst_structure_fixate ()">gst_structure_fixate</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
 </dt>
 <dd></dd>
@@ -5634,10 +5730,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstStructure.html#gst-structure-id-empty-new" title="gst_structure_id_empty_new ()">gst_structure_id_empty_new</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()">gst_structure_id_get</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
 </dt>
 <dd></dd>
@@ -5658,10 +5750,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstStructure.html#gst-structure-id-new" title="gst_structure_id_new ()">gst_structure_id_new</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()">gst_structure_id_set</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
 </dt>
 <dd></dd>
@@ -5698,6 +5786,18 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-new-empty" title="gst_structure_new_empty ()">gst_structure_new_empty</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-new-id" title="gst_structure_new_id ()">gst_structure_new_id</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-new-id-empty" title="gst_structure_new_id_empty ()">gst_structure_new_id_empty</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-valist" title="gst_structure_new_valist ()">gst_structure_new_valist</a>, function in <a class="link" href="gstreamer-GstStructure.html" title="GstStructure">GstStructure</a>
 </dt>
 <dd></dd>
@@ -5783,7 +5883,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>, typedef in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>, struct in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5799,7 +5899,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstTagSetter.html#GstTagSetterIFace" title="struct GstTagSetterIFace">GstTagSetterIFace</a>, struct in <a class="link" href="GstTagSetter.html" title="GstTagSetter">GstTagSetter</a>
+<a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface">GstTagSetterInterface</a>, struct in <a class="link" href="GstTagSetter.html" title="GstTagSetter">GstTagSetter</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6039,6 +6139,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS" title="GST_TAG_LANGUAGE_NAME">GST_TAG_LANGUAGE_NAME</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#GST-TAG-LICENSE:CAPS" title="GST_TAG_LICENSE">GST_TAG_LICENSE</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6099,14 +6203,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-char" title="gst_tag_list_get_char ()">gst_tag_list_get_char</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-char-index" title="gst_tag_list_get_char_index ()">gst_tag_list_get_char_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6155,14 +6251,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-long" title="gst_tag_list_get_long ()">gst_tag_list_get_long</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-long-index" title="gst_tag_list_get_long_index ()">gst_tag_list_get_long_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer" title="gst_tag_list_get_pointer ()">gst_tag_list_get_pointer</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6183,14 +6271,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uchar" title="gst_tag_list_get_uchar ()">gst_tag_list_get_uchar</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uchar-index" title="gst_tag_list_get_uchar_index ()">gst_tag_list_get_uchar_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint" title="gst_tag_list_get_uint ()">gst_tag_list_get_uint</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6207,14 +6287,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-ulong" title="gst_tag_list_get_ulong ()">gst_tag_list_get_ulong</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-ulong-index" title="gst_tag_list_get_ulong_index ()">gst_tag_list_get_ulong_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-value-index" title="gst_tag_list_get_value_index ()">gst_tag_list_get_value_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6227,6 +6299,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6235,11 +6311,23 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-full" title="gst_tag_list_new_full ()">gst_tag_list_new_full</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-full-valist" title="gst_tag_list_new_full_valist ()">gst_tag_list_new_full_valist</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6251,6 +6339,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS" title="GST_TAG_LOCATION">GST_TAG_LOCATION</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6435,10 +6527,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstTask.html#gst-task-create" title="gst_task_create ()">gst_task_create</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstTask.html#GST-TASK-GET-COND:CAPS" title="GST_TASK_GET_COND()">GST_TASK_GET_COND</a>, macro in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
@@ -6459,6 +6547,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstTask.html#gst-task-new" title="gst_task_new ()">gst_task_new</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstTask.html#gst-task-pause" title="gst_task_pause ()">gst_task_pause</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
@@ -6491,10 +6583,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstTask.html#gst-task-set-priority" title="gst_task_set_priority ()">gst_task_set_priority</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstTask.html#gst-task-set-state" title="gst_task_set_state ()">gst_task_set_state</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
@@ -6523,6 +6611,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue">GstTimedValue</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstClock.html#GST-TIMESPEC-TO-TIME:CAPS" title="GST_TIMESPEC_TO_TIME()">GST_TIMESPEC_TO_TIME</a>, macro in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -6563,58 +6655,102 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc">GstToc</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry">GstTocEntry</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType">GstTocEntryType</a>, enum in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter">GstTocSetter</a>, struct in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace">GstTocSetterIFace</a>, struct in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy ()">gst_toc_copy</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy ()">gst_toc_entry_copy</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" title="gst_toc_entry_get_start_stop ()">gst_toc_entry_get_start_stop</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new" title="gst_toc_entry_new ()">gst_toc_entry_new</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" title="gst_toc_setter_add_toc_entry ()">gst_toc_setter_add_toc_entry</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()">gst_toc_setter_get_toc</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()">gst_toc_setter_get_toc_copy</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" title="gst_toc_setter_get_toc_entry ()">gst_toc_setter_get_toc_entry</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()">gst_toc_setter_get_toc_entry_copy</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" title="gst_toc_setter_reset_toc ()">gst_toc_setter_reset_toc</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" title="gst_toc_setter_set_toc ()">gst_toc_setter_set_toc</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-TRACE:CAPS" title="GST_TRACE()">GST_TRACE</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace">GstTrace</a>, struct in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-add-entry" title="gst_trace_add_entry()">gst_trace_add_entry</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-destroy" title="gst_trace_destroy ()">gst_trace_destroy</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-flush" title="gst_trace_flush ()">gst_trace_flush</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-get-offset" title="gst_trace_get_offset()">gst_trace_get_offset</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-get-remaining" title="gst_trace_get_remaining()">gst_trace_get_remaining</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-get-size" title="gst_trace_get_size()">gst_trace_get_size</a>, macro in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-new" title="gst_trace_new ()">gst_trace_new</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-TRACE-OBJECT:CAPS" title="GST_TRACE_OBJECT()">GST_TRACE_OBJECT</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-read-tsc" title="gst_trace_read_tsc ()">gst_trace_read_tsc</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-set-default" title="gst_trace_set_default ()">gst_trace_set_default</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTrace.html#gst-trace-text-flush" title="gst_trace_text_flush ()">gst_trace_text_flush</a>, function in <a class="link" href="gstreamer-GstTrace.html" title="GstTrace">GstTrace</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind">GstTypeFind</a>, struct in <a class="link" href="gstreamer-GstTypeFind.html" title="GstTypeFind">GstTypeFind</a>
 </dt>
 <dd></dd>
@@ -6631,15 +6767,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPluginFeature.html#GstTypeNameData" title="GstTypeNameData">GstTypeNameData</a>, struct in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS" title="GST_TYPE_ARRAY">GST_TYPE_ARRAY</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#GST-TYPE-DATE:CAPS" title="GST_TYPE_DATE">GST_TYPE_DATE</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+<a class="link" href="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS" title="GST_TYPE_BITMASK">GST_TYPE_BITMASK</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6706,21 +6838,17 @@
 <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST">GST_TYPE_LIST</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstUtils.html#gst-type-register-static-full" title="gst_type_register_static_full ()">gst_type_register_static_full</a>, function in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
-</dt>
-<dd></dd>
 <a name="idxU"></a><h3 class="title">U</h3>
 <dt>
 <a class="link" href="gstreamer-Gst.html#gst-update-registry" title="gst_update_registry ()">gst_update_registry</a>, function in <a class="link" href="gstreamer-Gst.html" title="Gst">Gst</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler-struct" title="GstURIHandler">GstURIHandler</a>, struct in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
+<a class="link" href="gstreamer-GstUriHandler.html#GstURIError" title="enum GstURIError">GstURIError</a>, enum in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler-new-uri" title='The "new-uri" signal'>GstURIHandler::new-uri</a>, object signal in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
+<a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler-struct" title="GstURIHandler">GstURIHandler</a>, struct in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6736,6 +6864,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstUriHandler.html#gst-uri-error-quark" title="gst_uri_error_quark ()">gst_uri_error_quark</a>, function in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-get-location" title="gst_uri_get_location ()">gst_uri_get_location</a>, function in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
 </dt>
 <dd></dd>
@@ -6756,10 +6888,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-new-uri" title="gst_uri_handler_new_uri ()">gst_uri_handler_new_uri</a>, function in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-set-uri" title="gst_uri_handler_set_uri ()">gst_uri_handler_set_uri</a>, function in <a class="link" href="gstreamer-GstUriHandler.html" title="GstUriHandler">GstUriHandler</a>
 </dt>
 <dd></dd>
@@ -6824,6 +6952,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64" title="gst_util_greatest_common_divisor_int64 ()">gst_util_greatest_common_divisor_int64</a>, function in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()">gst_util_seqnum_compare</a>, function in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
 </dt>
 <dd></dd>
@@ -6865,6 +6997,10 @@
 <dd></dd>
 <a name="idxV"></a><h3 class="title">V</h3>
 <dt>
+<a class="link" href="GstControlSource.html#GstValueArray" title="GstValueArray">GstValueArray</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#GstValueCompareFunc" title="GstValueCompareFunc ()">GstValueCompareFunc</a>, user_function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -6873,26 +7009,14 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#GstValueIntersectFunc" title="GstValueIntersectFunc ()">GstValueIntersectFunc</a>, user_function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#GstValueSerializeFunc" title="GstValueSerializeFunc ()">GstValueSerializeFunc</a>, user_function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#GstValueSubtractFunc" title="GstValueSubtractFunc ()">GstValueSubtractFunc</a>, user_function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#GstValueTable" title="struct GstValueTable">GstValueTable</a>, struct in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#GstValueUnionFunc" title="GstValueUnionFunc ()">GstValueUnionFunc</a>, user_function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-array-append-value" title="gst_value_array_append_value ()">gst_value_array_append_value</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -6949,6 +7073,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-get-bitmask" title="gst_value_get_bitmask ()">gst_value_get_bitmask</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-get-buffer" title="gst_value_get_buffer()">gst_value_get_buffer</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -6957,10 +7085,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#gst-value-get-date" title="gst_value_get_date ()">gst_value_get_date</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-get-double-range-max" title="gst_value_get_double_range_max ()">gst_value_get_double_range_max</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -6993,6 +7117,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-step" title="gst_value_get_int64_range_step ()">gst_value_get_int64_range_step</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-get-int-range-max" title="gst_value_get_int_range_max ()">gst_value_get_int_range_max</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7001,6 +7129,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-get-int-range-step" title="gst_value_get_int_range_step ()">gst_value_get_int_range_step</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-get-sample" title="gst_value_get_sample()">gst_value_get_sample</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-get-structure" title="gst_value_get_structure ()">gst_value_get_structure</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7013,6 +7149,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-BITMASK:CAPS" title="GST_VALUE_HOLDS_BITMASK()">GST_VALUE_HOLDS_BITMASK</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-BUFFER:CAPS" title="GST_VALUE_HOLDS_BUFFER()">GST_VALUE_HOLDS_BUFFER</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7021,10 +7161,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE:CAPS" title="GST_VALUE_HOLDS_DATE()">GST_VALUE_HOLDS_DATE</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS" title="GST_VALUE_HOLDS_DATE_TIME()">GST_VALUE_HOLDS_DATE_TIME</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7053,6 +7189,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-SAMPLE:CAPS" title="GST_VALUE_HOLDS_SAMPLE()">GST_VALUE_HOLDS_SAMPLE</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS" title="GST_VALUE_HOLDS_STRUCTURE()">GST_VALUE_HOLDS_STRUCTURE</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7069,6 +7209,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-is-subset" title="gst_value_is_subset ()">gst_value_is_subset</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#GST-VALUE-LESS-THAN:CAPS" title="GST_VALUE_LESS_THAN">GST_VALUE_LESS_THAN</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7101,22 +7245,14 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#gst-value-register-intersect-func" title="gst_value_register_intersect_func ()">gst_value_register_intersect_func</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstValue.html#gst-value-register-subtract-func" title="gst_value_register_subtract_func ()">gst_value_register_subtract_func</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstValue.html#gst-value-register-union-func" title="gst_value_register_union_func ()">gst_value_register_union_func</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-serialize" title="gst_value_serialize ()">gst_value_serialize</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-set-bitmask" title="gst_value_set_bitmask ()">gst_value_set_bitmask</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-set-buffer" title="gst_value_set_buffer()">gst_value_set_buffer</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7125,10 +7261,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstValue.html#gst-value-set-date" title="gst_value_set_date ()">gst_value_set_date</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-set-double-range" title="gst_value_set_double_range ()">gst_value_set_double_range</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7149,10 +7281,22 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-set-int64-range-step" title="gst_value_set_int64_range_step ()">gst_value_set_int64_range_step</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-set-int-range" title="gst_value_set_int_range ()">gst_value_set_int_range</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-set-int-range-step" title="gst_value_set_int_range_step ()">gst_value_set_int_range_step</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-set-sample" title="gst_value_set_sample()">gst_value_set_sample</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-set-structure" title="gst_value_set_structure ()">gst_value_set_structure</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
@@ -7165,6 +7309,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstValue.html#gst-value-take-sample" title="gst_value_take_sample()">gst_value_take_sample</a>, macro in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstValue.html#gst-value-union" title="gst_value_union ()">gst_value_union</a>, function in <a class="link" href="gstreamer-GstValue.html" title="GstValue">GstValue</a>
 </dt>
 <dd></dd>
diff --git a/docs/gst/html/gst-building.html b/docs/gst/html/gst-building.html
index a231bf6..87d0467 100644
--- a/docs/gst/html/gst-building.html
+++ b/docs/gst/html/gst-building.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Building GStreamer and GStreamer Applications</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="gstreamer.html" title="GStreamer Overview">
 <link rel="prev" href="gstreamer.html" title="GStreamer Overview">
 <link rel="next" href="gst-running.html" title="Running GStreamer Applications">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="gstreamer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gst-running.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -31,7 +31,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id470394"></a><h2>Building GStreamer on UNIX</h2>
+<a name="idp7535248"></a><h2>Building GStreamer on UNIX</h2>
 <p>
     On UNIX, GStreamer uses the standard GNU build system,
     using <span class="application">autoconf</span> for package
@@ -92,7 +92,7 @@
   </p>
 </div>
 <div class="refsect1">
-<a name="id459660"></a><h2>Building GStreamer Applications</h2>
+<a name="idp10350672"></a><h2>Building GStreamer Applications</h2>
 <p>
 Applications and libraries can use <span class="command"><strong>pkg-config</strong></span> to get all the
 needed compiler and linker flags to build against GStreamer. Please note that
diff --git a/docs/gst/html/gst-running.html b/docs/gst/html/gst-running.html
index 73f5a05..2ad5d33 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Running GStreamer Applications</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="gstreamer.html" title="GStreamer Overview">
 <link rel="prev" href="gst-building.html" title="Building GStreamer and GStreamer Applications">
 <link rel="next" href="libgstreamer.html" title="GStreamer Core Library">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="gst-building.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="libgstreamer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -31,9 +31,9 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id471095"></a><h2>Running and debugging GStreamer Applications</h2>
+<a name="idp6093968"></a><h2>Running and debugging GStreamer Applications</h2>
 <div class="refsect2">
-<a name="id445918"></a><h3>Environment variables</h3>
+<a name="idp9576704"></a><h3>Environment variables</h3>
 <p> 
 GStreamer inspects a few of environment variables in addition to standard
 variables like <code class="envar">LANG</code>, <code class="envar">PATH</code> or <code class="envar">HOME</code>. 
@@ -48,12 +48,12 @@
 <li class="listitem"><p>
 plug-ins in the user's home directory.  These are stored in a directory called
 <code class="filename">plugins</code> inside the
-<code class="filename">.gstreamer-0.11</code> directory in the user's
+<code class="filename">.gstreamer-1.0</code> directory in the user's
 home directory.
     </p></li>
 <li class="listitem"><p>
 plug-ins installed system-wide.  On this system, they are stored in
-<code class="filename">/usr/local/lib/gstreamer-0.11</code>.
+<code class="filename">/usr/local/lib/gstreamer-1.0</code>.
     </p></li>
 </ul></div>
 <p>
diff --git a/docs/gst/html/gstreamer-Gst.html b/docs/gst/html/gstreamer-Gst.html
index b734f90..a284203 100644
--- a/docs/gst/html/gstreamer-Gst.html
+++ b/docs/gst/html/gstreamer-Gst.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Gst</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="next" href="gstreamer-GstAtomicQueue.html" title="GstAtomicQueue">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="libgstreamer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstAtomicQueue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -83,16 +83,30 @@
 <p>
 </p>
 <div class="example">
-<a name="id459050"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
-<div class="example-contents"><pre class="programlisting">
-int
-main (int argc, char *argv[])
-{
-  // initialize the GStreamer library
-  gst_init (&amp;argc, &amp;argv);
-  ...
-}
-</pre></div>
+<a name="idp6669552"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">int</span>
+<span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
+<span class="gtkdoc opt">{</span>
+  <span class="gtkdoc slc">// initialize the GStreamer library</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -105,32 +119,62 @@
 the next code fragment:
 </p>
 <div class="example">
-<a name="id451029"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
-<div class="example-contents"><pre class="programlisting">
-static gboolean stats = FALSE;
-...
-int
-main (int argc, char *argv[])
-{
- GOptionEntry options[] = {
-  {"tags", 't', 0, G_OPTION_ARG_NONE, &amp;tags,
-      N_("Output tags (also known as metadata)"), NULL},
-  {NULL}
- };
- // must initialise the threading system before using any other GLib funtion
- if (!g_thread_supported ())
-   g_thread_init (NULL);
- ctx = g_option_context_new ("[ADDITIONAL ARGUMENTS]");
- g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
- g_option_context_add_group (ctx, gst_init_get_option_group ());
- if (!g_option_context_parse (ctx, &amp;argc, &amp;argv, &amp;err)) {
-   g_print ("Error initializing: %s\n", GST_STR_NULL (err-&gt;message));
-   exit (1);
- }
- g_option_context_free (ctx);
-...
-}
-</pre></div>
+<a name="idp5740560"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static</span> gboolean stats <span class="gtkdoc opt">=</span> FALSE<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc kwb">int</span>
+<span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
+<span class="gtkdoc opt">{</span>
+ GOptionEntry options<span class="gtkdoc opt">[] = {</span>
+  <span class="gtkdoc opt">{</span><span class="string">&quot;tags&quot;</span><span class="gtkdoc opt">,</span> <span class="string">'t'</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> G_OPTION_ARG_NONE<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#N-:CAPS">N_</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Output tags (also known as metadata)&quot;</span><span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">},</span>
+  <span class="gtkdoc opt">{</span>NULL<span class="gtkdoc opt">}</span>
+ <span class="gtkdoc opt">};</span>
+ <span class="gtkdoc slc">// must initialise the threading system before using any other GLib funtion</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-supported">g_thread_supported</a></span> <span class="gtkdoc opt">())</span>
+   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init">g_thread_init</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">);</span>
+ ctx <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-new">g_option_context_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;[ADDITIONAL ARGUMENTS]&quot;</span><span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-add-main-entries">g_option_context_add_main_entries</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">,</span> options<span class="gtkdoc opt">,</span> GETTEXT_PACKAGE<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-add-group">g_option_context_add_group</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init-get-option-group">gst_init_get_option_group</a></span> <span class="gtkdoc opt">());</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-parse">g_option_context_parse</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">, &amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">, &amp;</span>err<span class="gtkdoc opt">)) {</span>
+   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Error initializing: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-STR-NULL:CAPS">GST_STR_NULL</a></span> <span class="gtkdoc opt">(</span>err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">));</span>
+   <span class="function">exit</span> <span class="gtkdoc opt">(</span><span class="number">1</span><span class="gtkdoc opt">);</span>
+ <span class="gtkdoc opt">}</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-free">g_option_context_free</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -169,7 +213,7 @@
 <p>
 This function should be called before calling any other GLib functions. If
 this is not an option, your program must initialise the GLib thread system
-using <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#g-thread-init"><code class="function">g_thread_init()</code></a> before any other GLib functions are called.
+using <a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init"><code class="function">g_thread_init()</code></a> before any other GLib functions are called.
 </p>
 <p>
 </p>
@@ -223,7 +267,7 @@
 <p>
 This function should be called before calling any other GLib functions. If
 this is not an option, your program must initialise the GLib thread system
-using <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#g-thread-init"><code class="function">g_thread_init()</code></a> before any other GLib functions are called.
+using <a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init"><code class="function">g_thread_init()</code></a> before any other GLib functions are called.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/gst/html/gstreamer-GstAtomicQueue.html b/docs/gst/html/gstreamer-GstAtomicQueue.html
index b141a3c..ea14541 100644
--- a/docs/gst/html/gstreamer-GstAtomicQueue.html
+++ b/docs/gst/html/gstreamer-GstAtomicQueue.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstAtomicQueue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-Gst.html" title="Gst">
 <link rel="next" href="GstBin.html" title="GstBin">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-Gst.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstBin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
diff --git a/docs/gst/html/gstreamer-GstBuffer.html b/docs/gst/html/gstreamer-GstBuffer.html
index 77299de..293c073 100644
--- a/docs/gst/html/gstreamer-GstBuffer.html
+++ b/docs/gst/html/gstreamer-GstBuffer.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstBin.html" title="GstBin">
 <link rel="next" href="gstreamer-GstBufferList.html" title="GstBufferList">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstBin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstBufferList.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -31,7 +31,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gstreamer-GstBuffer.top_of_page"></a>GstBuffer</span></h2>
-<p>GstBuffer — Data-passing buffer type, supporting sub-buffers.</p>
+<p>GstBuffer — Data-passing buffer type</p>
 </td>
 <td valign="top" align="right"></td>
 </tr></table></div>
@@ -42,7 +42,6 @@
 
 struct              <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer">GstBuffer</a>;
 enum                <a class="link" href="gstreamer-GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags">GstBufferFlags</a>;
-enum                <a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags">GstBufferCopyFlags</a>;
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAGS:CAPS" title="GST_BUFFER_FLAGS()">GST_BUFFER_FLAGS</a>                    (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS" title="GST_BUFFER_FLAG_IS_SET()">GST_BUFFER_FLAG_IS_SET</a>              (buf,
                                                          flag)
@@ -50,104 +49,119 @@
                                                          flag)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS" title="GST_BUFFER_FLAG_UNSET()">GST_BUFFER_FLAG_UNSET</a>               (buf,
                                                          flag)
-#define             <a class="link" href="gstreamer-GstBuffer.html#GST-META-TIMING-INFO:CAPS" title="GST_META_TIMING_INFO">GST_META_TIMING_INFO</a>
-struct              <a class="link" href="gstreamer-GstBuffer.html#GstMetaTiming" title="struct GstMetaTiming">GstMetaTiming</a>;
-#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS" title="GST_BUFFER_TIMESTAMP()">GST_BUFFER_TIMESTAMP</a>                (buf)
+#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-PTS:CAPS" title="GST_BUFFER_PTS()">GST_BUFFER_PTS</a>                      (buf)
+#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DTS:CAPS" title="GST_BUFFER_DTS()">GST_BUFFER_DTS</a>                      (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DURATION:CAPS" title="GST_BUFFER_DURATION()">GST_BUFFER_DURATION</a>                 (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET:CAPS" title="GST_BUFFER_OFFSET()">GST_BUFFER_OFFSET</a>                   (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END:CAPS" title="GST_BUFFER_OFFSET_END()">GST_BUFFER_OFFSET_END</a>               (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS" title="GST_BUFFER_OFFSET_NONE">GST_BUFFER_OFFSET_NONE</a>
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DURATION-IS-VALID:CAPS" title="GST_BUFFER_DURATION_IS_VALID()">GST_BUFFER_DURATION_IS_VALID</a>        (buffer)
-#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP-IS-VALID:CAPS" title="GST_BUFFER_TIMESTAMP_IS_VALID()">GST_BUFFER_TIMESTAMP_IS_VALID</a>       (buffer)
+#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-PTS-IS-VALID:CAPS" title="GST_BUFFER_PTS_IS_VALID()">GST_BUFFER_PTS_IS_VALID</a>             (buffer)
+#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-DTS-IS-VALID:CAPS" title="GST_BUFFER_DTS_IS_VALID()">GST_BUFFER_DTS_IS_VALID</a>             (buffer)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-IS-VALID:CAPS" title="GST_BUFFER_OFFSET_IS_VALID()">GST_BUFFER_OFFSET_IS_VALID</a>          (buffer)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS" title="GST_BUFFER_OFFSET_END_IS_VALID()">GST_BUFFER_OFFSET_END_IS_VALID</a>      (buffer)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS" title="GST_BUFFER_IS_DISCONT()">GST_BUFFER_IS_DISCONT</a>               (buffer)
-#define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-TRACE-NAME:CAPS" title="GST_BUFFER_TRACE_NAME">GST_BUFFER_TRACE_NAME</a>
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new" title="gst_buffer_new ()">gst_buffer_new</a>                      (<em class="parameter"><code><span class="type">void</span></code></em>);
-#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-and-alloc" title="gst_buffer_new_and_alloc()">gst_buffer_new_and_alloc</a>            (s)
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()">gst_buffer_new_allocate</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>);
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()">gst_buffer_new_allocate</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped" title="gst_buffer_new_wrapped ()">gst_buffer_new_wrapped</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full" title="gst_buffer_new_wrapped_full ()">gst_buffer_new_wrapped_full</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#GFreeFunc"><span class="type">GFreeFunc</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full" title="gst_buffer_new_wrapped_full ()">gst_buffer_new_wrapped_full</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-ref" title="gst_buffer_ref ()">gst_buffer_ref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()">gst_buffer_unref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes" title="gst_buffer_get_sizes ()">gst_buffer_get_sizes</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes" title="gst_buffer_get_sizes()">gst_buffer_get_sizes</a>                (b,
+                                                         of,
+                                                         ms)
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-size" title="gst_buffer_get_size()">gst_buffer_get_size</a>                 (b)
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize ()">gst_buffer_resize</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize()">gst_buffer_resize</a>                   (b,
+                                                         of,
+                                                         s)
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-set-size" title="gst_buffer_set_size()">gst_buffer_set_size</a>                 (b,
                                                          s)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()">gst_buffer_n_memory</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-take-memory" title="gst_buffer_take_memory ()">gst_buffer_take_memory</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()">gst_buffer_insert_memory</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()">gst_buffer_peek_memory</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-memory-range" title="gst_buffer_replace_memory_range ()">gst_buffer_replace_memory_range</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
-#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-memory" title="gst_buffer_remove_memory()">gst_buffer_remove_memory</a>            (b,
-                                                         i)
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-memory-range" title="gst_buffer_get_memory_range ()">gst_buffer_get_memory_range</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-memory-range" title="gst_buffer_remove_memory_range ()">gst_buffer_remove_memory_range</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-join" title="gst_buffer_join ()">gst_buffer_join</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-merge" title="gst_buffer_merge ()">gst_buffer_merge</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map ()">gst_buffer_map</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()">gst_buffer_unmap</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-find-memory" title="gst_buffer_find_memory ()">gst_buffer_find_memory</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *skip</code></em>);
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-prepend-memory" title="gst_buffer_prepend_memory()">gst_buffer_prepend_memory</a>           (b,
+                                                         m)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append-memory" title="gst_buffer_append_memory()">gst_buffer_append_memory</a>            (b,
+                                                         m)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-memory" title="gst_buffer_replace_memory()">gst_buffer_replace_memory</a>           (b,
+                                                         i,
+                                                         m)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace-all-memory" title="gst_buffer_replace_all_memory()">gst_buffer_replace_all_memory</a>       (b,
+                                                         m)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-memory" title="gst_buffer_get_memory()">gst_buffer_get_memory</a>               (b,
+                                                         i)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-all-memory" title="gst_buffer_get_all_memory()">gst_buffer_get_all_memory</a>           (b)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-memory" title="gst_buffer_remove_memory()">gst_buffer_remove_memory</a>            (b,
+                                                         i)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-remove-all-memory" title="gst_buffer_remove_all_memory()">gst_buffer_remove_all_memory</a>        (b)
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map()">gst_buffer_map</a>                      (b,
+                                                         i,
+                                                         f)
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()">gst_buffer_unmap</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-memcmp" title="gst_buffer_memcmp ()">gst_buffer_memcmp</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-extract" title="gst_buffer_extract ()">gst_buffer_extract</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-extract" title="gst_buffer_extract ()">gst_buffer_extract</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-fill" title="gst_buffer_fill ()">gst_buffer_fill</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-fill" title="gst_buffer_fill ()">gst_buffer_fill</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-memset" title="gst_buffer_memset ()">gst_buffer_memset</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-memset" title="gst_buffer_memset ()">gst_buffer_memset</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+enum                <a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags">GstBufferCopyFlags</a>;
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-COPY-METADATA:CAPS" title="GST_BUFFER_COPY_METADATA">GST_BUFFER_COPY_METADATA</a>
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-COPY-ALL:CAPS" title="GST_BUFFER_COPY_ALL">GST_BUFFER_COPY_ALL</a>
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy" title="gst_buffer_copy ()">gst_buffer_copy</a>                     (<em class="parameter"><code>const <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()">gst_buffer_copy_into</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *dest</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-region" title="gst_buffer_copy_region ()">gst_buffer_copy_region</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()">gst_buffer_is_writable</a>              (buf)
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-make-writable" title="gst_buffer_make_writable()">gst_buffer_make_writable</a>            (buf)
-#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace" title="gst_buffer_replace()">gst_buffer_replace</a>                  (obuf,
-                                                         nbuf)
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-span-fast" title="gst_buffer_is_span_fast ()">gst_buffer_is_span_fast</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace" title="gst_buffer_replace ()">gst_buffer_replace</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **obuf</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *nbuf</code></em>);
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-span" title="gst_buffer_span ()">gst_buffer_span</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
 <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()">gst_buffer_get_meta</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> *info</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
 <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta" title="gst_buffer_add_meta ()">gst_buffer_add_meta</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> params</code></em>);
@@ -155,86 +169,101 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>);
 <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-iterate-meta" title="gst_buffer_iterate_meta ()">gst_buffer_iterate_meta</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *state</code></em>);
-#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta-timing" title="gst_buffer_add_meta_timing()">gst_buffer_add_meta_timing</a>          (b)
-#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta-timing" title="gst_buffer_get_meta_timing()">gst_buffer_get_meta_timing</a>          (b)
-const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * <a class="link" href="gstreamer-GstBuffer.html#gst-meta-timing-get-info" title="gst_meta_timing_get_info ()">gst_meta_timing_get_info</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()">*GstBufferForeachMetaFunc</a>)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> **meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()">gst_buffer_foreach_meta</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstBuffer.description"></a><h2>Description</h2>
 <p>
-Buffers are the basic unit of data transfer in GStreamer.  The <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
-type provides all the state necessary to define the regions of memory as
-part of a stream. Region copies are also supported, allowing a smaller
-region of a buffer to become its own buffer, with mechanisms in place to
-ensure that neither memory space goes away prematurely.
+Buffers are the basic unit of data transfer in GStreamer. They contain the
+timing and offset along with other arbitrary metadata that is associated
+with the <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> blocks that the buffer contains.
 </p>
 <p>
 Buffers are usually created with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new" title="gst_buffer_new ()"><code class="function">gst_buffer_new()</code></a>. After a buffer has been
-created one will typically allocate memory for it and set the size of the
-buffer data.  The following example creates a buffer that can hold a given
-video frame with a given width, height and bits per plane.
+created one will typically allocate memory for it and add it to the buffer.
+The following example creates a buffer that can hold a given video frame
+with a given width, height and bits per plane.
 </p>
 <div class="example">
-<a name="id483276"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
-<div class="example-contents"><pre class="programlisting">
-  GstBuffer *buffer;
-  gint size, width, height, bpp;
-  ...
-  size = width * height * bpp;
-  buffer = gst_buffer_new ();
-  GST_BUFFER_SIZE (buffer) = size;
-  GST_BUFFER_MALLOCDATA (buffer) = g_malloc (size);
-  GST_BUFFER_DATA (buffer) = GST_BUFFER_MALLOCDATA (buffer);
-  ...
-  </pre></div>
+<a name="idp11730400"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstBuffer <span class="gtkdoc opt">*</span>buffer<span class="gtkdoc opt">;</span>
+GstMemory <span class="gtkdoc opt">*</span>memory<span class="gtkdoc opt">;</span>
+gint size<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> bpp<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">...</span>
+size <span class="gtkdoc opt">=</span> width <span class="gtkdoc opt">*</span> height <span class="gtkdoc opt">*</span> bpp<span class="gtkdoc opt">;</span>
+buffer <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new">gst_buffer_new</a></span> <span class="gtkdoc opt">();</span>
+memory <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-alloc">gst_allocator_alloc</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-insert-memory">gst_buffer_insert_memory</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">, -</span><span class="number">1</span><span class="gtkdoc opt">,</span> memory<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
 <p>
-Alternatively, use <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-and-alloc" title="gst_buffer_new_and_alloc()"><code class="function">gst_buffer_new_and_alloc()</code></a>
+Alternatively, use <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()"><code class="function">gst_buffer_new_allocate()</code></a>
 to create a buffer with preallocated data of a given size.
 </p>
 <p>
-The data pointed to by the buffer can be retrieved with the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-DATA:CAPS"><code class="function">GST_BUFFER_DATA()</code></a>
-macro. The size of the data can be found with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-SIZE:CAPS"><code class="function">GST_BUFFER_SIZE()</code></a>. For buffers
-of size 0, the data pointer is undefined (usually NULL) and should never be used.
+Buffers can contain a list of <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> objects. You can retrieve how many
+memory objects with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()"><code class="function">gst_buffer_n_memory()</code></a> and you can get a pointer
+to memory with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-peek-memory"><code class="function">gst_buffer_peek_memory()</code></a>
 </p>
 <p>
-If an element knows what pad you will push the buffer out on, it should use
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-alloc-buffer"><code class="function">gst_pad_alloc_buffer()</code></a> instead to create a buffer.  This allows downstream
-elements to provide special buffers to write in, like hardware buffers.
-</p>
-<p>
-A buffer has a pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> describing the media type of the data
-in the buffer. Attach caps to the buffer with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-set-caps"><code class="function">gst_buffer_set_caps()</code></a>; this
-is typically done before pushing out a buffer using <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a> so that
-the downstream element knows the type of the buffer.
-</p>
-<p>
-A buffer will usually have a timestamp, and a duration, but neither of these
+A buffer will usually have timestamps, and a duration, but neither of these
 are guaranteed (they may be set to <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>). Whenever a
-meaningful value can be given for these, they should be set. The timestamp
+meaningful value can be given for these, they should be set. The timestamps
 and duration are measured in nanoseconds (they are <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> values).
 </p>
 <p>
+The buffer DTS refers to the timestamp when the buffer should be decoded and
+is usually monotonically increasing. The buffer PTS refers to the timestamp when
+the buffer content should be presented to the user and is not always
+monotonically increasing.
+</p>
+<p>
 A buffer can also have one or both of a start and an end offset. These are
 media-type specific. For video buffers, the start offset will generally be
 the frame number. For audio buffers, it will be the number of samples
 produced so far. For compressed data, it could be the byte offset in a
 source or destination file. Likewise, the end offset will be the offset of
 the end of the buffer. These can only be meaningfully interpreted if you
-know the media type of the buffer (the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> set on it). Either or both
+know the media type of the buffer (the preceeding CAPS event). Either or both
 can be set to <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS" title="GST_BUFFER_OFFSET_NONE"><span class="type">GST_BUFFER_OFFSET_NONE</span></a>.
 </p>
 <p>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-ref" title="gst_buffer_ref ()"><code class="function">gst_buffer_ref()</code></a> is used to increase the refcount of a buffer. This must be
 done when you want to keep a handle to the buffer after pushing it to the
-next element.
+next element. The buffer refcount determines the writability of the buffer, a
+buffer is only writable when the refcount is exactly 1, i.e. when the caller
+has the only reference to the buffer.
 </p>
 <p>
 To efficiently create a smaller buffer out of an existing one, you can
-use <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-region" title="gst_buffer_copy_region ()"><code class="function">gst_buffer_copy_region()</code></a>.
+use <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-region" title="gst_buffer_copy_region ()"><code class="function">gst_buffer_copy_region()</code></a>. This method tries to share the memory objects
+between the two buffers.
 </p>
 <p>
 If a plug-in wants to modify the buffer data or metadata in-place, it should
@@ -249,8 +278,12 @@
 </p>
 <p>
 Buffers can be efficiently merged into a larger buffer with
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-span" title="gst_buffer_span ()"><code class="function">gst_buffer_span()</code></a>, which avoids memory copies when the <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-span-fast" title="gst_buffer_is_span_fast ()"><code class="function">gst_buffer_is_span_fast()</code></a>
-function returns TRUE.
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()"><code class="function">gst_buffer_append()</code></a>. Copying of memory will only be done when absolutely
+needed.
+</p>
+<p>
+Arbitrary extra metadata can be set on a buffer with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta" title="gst_buffer_add_meta ()"><code class="function">gst_buffer_add_meta()</code></a>.
+Metadata can be retrieved with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()"><code class="function">gst_buffer_get_meta()</code></a>. See also <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>
 </p>
 <p>
 An element should either unref the buffer or push it out on a src pad
@@ -258,11 +291,12 @@
 </p>
 <p>
 Buffers are usually freed by unreffing them with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a>. When
-the refcount drops to 0, any data pointed to by the buffer is unreffed as
-well.
+the refcount drops to 0, any memory and metadata pointed to by the buffer is
+unreffed as well. Buffers allocated from a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> will be returned to
+the pool when the refcount drops to 0.
 </p>
 <p>
-Last reviewed on March 30, 2011 (0.11.0)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -275,7 +309,8 @@
   GstBufferPool         *pool;
 
   /* timestamp */
-  GstClockTime           timestamp;
+  GstClockTime           pts;
+  GstClockTime           dts;
   GstClockTime           duration;
 
   /* media specific offset */
@@ -299,9 +334,16 @@
 <td>pointer to the pool owner of the buffer</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer.timestamp"></a>timestamp</code></em>;</span></p></td>
-<td>timestamp of the buffer, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> when the
-timestamp is not known or relevant.</td>
+<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer.pts"></a>pts</code></em>;</span></p></td>
+<td>presentation timestamp of the buffer, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> when the
+pts is not known or relevant. The pts contains the timestamp when the
+media should be presented to the user.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer.dts"></a>dts</code></em>;</span></p></td>
+<td>decoding timestamp of the buffer, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> when the
+dts is not known or relevant. The dts contains the timestamp when the
+media should be processed.</td>
 </tr>
 <tr>
 <td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer.duration"></a>duration</code></em>;</span></p></td>
@@ -309,7 +351,7 @@
 when the duration is not known or relevant.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstBuffer.offset"></a>offset</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstBuffer.offset"></a>offset</code></em>;</span></p></td>
 <td>a media specific offset for the buffer data.
 For video frames, this is the frame number of this buffer.
 For audio samples, this is the offset of the first sample in this buffer.
@@ -317,7 +359,7 @@
 byte in this buffer.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstBuffer.offset-end"></a>offset_end</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstBuffer.offset-end"></a>offset_end</code></em>;</span></p></td>
 <td>the last offset contained in this buffer. It has the same
 format as <em class="parameter"><code>offset</code></em>.</td>
 </tr>
@@ -338,9 +380,8 @@
   GST_BUFFER_FLAG_GAP         = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 7),
   GST_BUFFER_FLAG_DROPPABLE   = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 8),
   GST_BUFFER_FLAG_DELTA_UNIT  = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 9),
-  GST_BUFFER_FLAG_IN_CAPS     = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 10),
 
-  GST_BUFFER_FLAG_LAST        = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 20)
+  GST_BUFFER_FLAG_LAST        = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstBufferFlags;
 </pre>
 <p>
@@ -372,7 +413,7 @@
 </tr>
 <tr>
 <td><p><a name="GST-BUFFER-FLAG-RESYNC:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_FLAG_RESYNC</code></span></p></td>
-<td>the buffer timestamp might have a discontinuity
+<td>the buffer timestamps might have a discontinuity
                               and this buffer is a good point to resynchronize.
 </td>
 </tr>
@@ -391,7 +432,8 @@
 <tr>
 <td><p><a name="GST-BUFFER-FLAG-HEADER:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_FLAG_HEADER</code></span></p></td>
 <td>the buffer contains header information that is
-                              needed to decode the following data
+                              needed to decode the following data. The buffer
+                              is also part of the headers of the STREAM_CONFIG event.
 </td>
 </tr>
 <tr>
@@ -414,11 +456,6 @@
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-BUFFER-FLAG-IN-CAPS"></a><span class="term"><code class="literal">GST_BUFFER_FLAG_IN_CAPS</code></span></p></td>
-<td>the buffer has been added as a field in a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.
-</td>
-</tr>
-<tr>
 <td><p><a name="GST-BUFFER-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_FLAG_LAST</code></span></p></td>
 <td>additional media specific flags can be added starting from
                               this flag.
@@ -429,55 +466,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBufferCopyFlags"></a><h3>enum GstBufferCopyFlags</h3>
-<pre class="programlisting">typedef enum {
-  GST_BUFFER_COPY_NONE           = 0,
-  GST_BUFFER_COPY_FLAGS          = (1 &lt;&lt; 0),
-  GST_BUFFER_COPY_TIMESTAMPS     = (1 &lt;&lt; 1),
-  GST_BUFFER_COPY_MEMORY         = (1 &lt;&lt; 2),
-  GST_BUFFER_COPY_MERGE          = (1 &lt;&lt; 3)
-} GstBufferCopyFlags;
-</pre>
-<p>
-A set of flags that can be provided to the <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>
-function to specify which items should be copied.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-BUFFER-COPY-NONE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_NONE</code></span></p></td>
-<td>copy nothing
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-COPY-FLAGS:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_FLAGS</code></span></p></td>
-<td>flag indicating that buffer flags should be copied
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-COPY-TIMESTAMPS:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_TIMESTAMPS</code></span></p></td>
-<td>flag indicating that buffer timestamp, duration,
-offset and offset_end should be copied
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-COPY-MEMORY:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_MEMORY</code></span></p></td>
-<td>flag indicating that buffer memory should be copied
-and appended to already existing memory
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-COPY-MERGE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_MERGE</code></span></p></td>
-<td>flag indicating that buffer memory should be
-merged
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-BUFFER-FLAGS:CAPS"></a><h3>GST_BUFFER_FLAGS()</h3>
 <pre class="programlisting">#define GST_BUFFER_FLAGS(buf)                   GST_MINI_OBJECT_FLAGS(buf)
 </pre>
@@ -560,59 +548,33 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-META-TIMING-INFO:CAPS"></a><h3>GST_META_TIMING_INFO</h3>
-<pre class="programlisting">#define GST_META_TIMING_INFO (gst_meta_timing_get_info())
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMetaTiming"></a><h3>struct GstMetaTiming</h3>
-<pre class="programlisting">struct GstMetaTiming {
-  GstMeta        meta;        /* common meta header */
-
-  GstClockTime   dts;         /* decoding timestamp */
-  GstClockTime   pts;         /* presentation timestamp */
-  GstClockTime   duration;    /* duration of the data */
-  GstClockTime   clock_rate;  /* clock rate for the above values */
-};
+<a name="GST-BUFFER-PTS:CAPS"></a><h3>GST_BUFFER_PTS()</h3>
+<pre class="programlisting">#define GST_BUFFER_PTS(buf)                     (GST_BUFFER_CAST(buf)-&gt;pts)
 </pre>
 <p>
-Extra timing metadata
+The presentation timestamp (pts) in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>)
+of the data in the buffer. This is the timestamp when the media should be
+presented to the user.
+Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the pts is unknown.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstMetaTiming.meta"></a>meta</code></em>;</span></p></td>
-<td>parent metadata</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstMetaTiming.dts"></a>dts</code></em>;</span></p></td>
-<td>the decoding timestamp</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstMetaTiming.pts"></a>pts</code></em>;</span></p></td>
-<td>the presentation timestamp</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstMetaTiming.duration"></a>duration</code></em>;</span></p></td>
-<td>the duration</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstMetaTiming.clock-rate"></a>clock_rate</code></em>;</span></p></td>
-<td>the clock rate of the dts, pts and duration values</td>
-</tr>
-</tbody>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.:</td>
+</tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BUFFER-TIMESTAMP:CAPS"></a><h3>GST_BUFFER_TIMESTAMP()</h3>
-<pre class="programlisting">#define GST_BUFFER_TIMESTAMP(buf)               (GST_BUFFER_CAST(buf)-&gt;timestamp)
+<a name="GST-BUFFER-DTS:CAPS"></a><h3>GST_BUFFER_DTS()</h3>
+<pre class="programlisting">#define GST_BUFFER_DTS(buf)                     (GST_BUFFER_CAST(buf)-&gt;dts)
 </pre>
 <p>
-The timestamp in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>) of the data in the buffer.
-Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the timestamp is unknown.
+The decoding timestamp (dts) in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>)
+of the data in the buffer. This is the timestamp when the media should be
+decoded or processed otherwise.
+Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the dts is unknown.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -699,11 +661,28 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BUFFER-TIMESTAMP-IS-VALID:CAPS"></a><h3>GST_BUFFER_TIMESTAMP_IS_VALID()</h3>
-<pre class="programlisting">#define GST_BUFFER_TIMESTAMP_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer)))
+<a name="GST-BUFFER-PTS-IS-VALID:CAPS"></a><h3>GST_BUFFER_PTS_IS_VALID()</h3>
+<pre class="programlisting">#define GST_BUFFER_PTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buffer)))
 </pre>
 <p>
-Tests if the timestamp is known.
+Tests if the pts is known.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-BUFFER-DTS-IS-VALID:CAPS"></a><h3>GST_BUFFER_DTS_IS_VALID()</h3>
+<pre class="programlisting">#define GST_BUFFER_DTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buffer)))
+</pre>
+<p>
+Tests if the dts is known.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -768,15 +747,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BUFFER-TRACE-NAME:CAPS"></a><h3>GST_BUFFER_TRACE_NAME</h3>
-<pre class="programlisting">#define GST_BUFFER_TRACE_NAME           "GstBuffer"
-</pre>
-<p>
-The name used for tracing memory allocations.
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-buffer-new"></a><h3>gst_buffer_new ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new                      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -796,28 +766,19 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-new-and-alloc"></a><h3>gst_buffer_new_and_alloc()</h3>
-<pre class="programlisting">#define gst_buffer_new_and_alloc(s)            gst_buffer_new_allocate(NULL, s, 0)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-buffer-new-allocate"></a><h3>gst_buffer_new_allocate ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_allocate             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_allocate             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
 <p>
 Tries to create a newly allocated buffer with data of the given size and
-alignment from <em class="parameter"><code>allocator</code></em>. If the requested amount of memory can't be
+extra parameters from <em class="parameter"><code>allocator</code></em>. If the requested amount of memory can't be
 allocated, NULL will be returned. The allocated buffer memory is not cleared.
 </p>
 <p>
 When <em class="parameter"><code>allocator</code></em> is NULL, the default memory allocator will be used.
 </p>
 <p>
-Allocator buffer memory will be aligned to multiples of (<em class="parameter"><code>align</code></em> + 1) bytes.
-</p>
-<p>
 Note that when <em class="parameter"><code>size</code></em> == 0, the buffer will not have memory associated with it.
 </p>
 <p>
@@ -828,15 +789,18 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use</td>
+<td>the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use, or NULL to use the
+default allocator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
 <td>the size in bytes of the new buffer's data.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>the alignment of the buffer memory</td>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>optional parameters. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -851,9 +815,10 @@
 <div class="refsect2">
 <a name="gst-buffer-new-wrapped"></a><h3>gst_buffer_new_wrapped ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_wrapped              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
-Creates a new buffer that wraps the given <em class="parameter"><code>data</code></em>.
+Creates a new buffer that wraps the given <em class="parameter"><code>data</code></em>. The memory will be freed
+with g_free and will be marked writable.
 </p>
 <p>
 MT safe.
@@ -881,38 +846,57 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-new-wrapped-full"></a><h3>gst_buffer_new_wrapped_full ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_wrapped_full         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#GFreeFunc"><span class="type">GFreeFunc</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_wrapped_full         (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
-Creates a new buffer that wraps the given <em class="parameter"><code>data</code></em>.  Valid data is set
-to start at <em class="parameter"><code>offset</code></em> and up to <em class="parameter"><code>size</code></em>.  If no <em class="parameter"><code>free_func</code></em> is provided,
-buffer memory is marked READONLY.
+Allocate a new buffer that wraps the given memory. <em class="parameter"><code>data</code></em> must point to
+<em class="parameter"><code>maxsize</code></em> of memory, the wrapped buffer will have the region from <em class="parameter"><code>offset</code></em> and
+<em class="parameter"><code>size</code></em> visible.
 </p>
 <p>
-MT safe.
+When the buffer is destroyed, <em class="parameter"><code>notify</code></em> will be called with <em class="parameter"><code>user_data</code></em>.
+</p>
+<p>
+The prefix/padding must be filled with 0 if <em class="parameter"><code>flags</code></em> contains
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a></td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>data to wrap</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
-<td>function to free <em class="parameter"><code>data</code></em>
+<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
+<td>allocated size of <em class="parameter"><code>data</code></em>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>offset in <em class="parameter"><code>data</code></em> of valid data</td>
+<td>offset in <em class="parameter"><code>data</code></em>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>size of valid data in <em class="parameter"><code>data</code></em> starting at <em class="parameter"><code>offset</code></em>
-</td>
+<td>size of valid data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called with <em class="parameter"><code>user_data</code></em> when the memory is freed</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -959,8 +943,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_unref                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
 <p>
 Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
-will be freed. If <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-MALLOCDATA:CAPS"><code class="function">GST_BUFFER_MALLOCDATA()</code></a> is non-NULL, this pointer will
-also be freed at this time.
+with the associated metadata and memory will be freed.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -973,46 +956,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-get-sizes"></a><h3>gst_buffer_get_sizes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_buffer_get_sizes                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);</pre>
-<p>
-Get the total size of all memory blocks in <em class="parameter"><code>buffer</code></em>.
-</p>
-<p>
-When not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>offset</code></em> will contain the offset of the data in the first
-memory block in <em class="parameter"><code>buffer</code></em> and <em class="parameter"><code>maxsize</code></em> will contain the sum of the size
-and <em class="parameter"><code>offset</code></em> and the amount of extra padding on the last memory block.
-<em class="parameter"><code>offset</code></em> and <em class="parameter"><code>maxsize</code></em> can be used to resize the buffer with
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize ()"><code class="function">gst_buffer_resize()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>a pointer to the offset</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>a pointer to the maxsize</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the total size of the memory in <em class="parameter"><code>buffer</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
+<a name="gst-buffer-get-sizes"></a><h3>gst_buffer_get_sizes()</h3>
+<pre class="programlisting">#define     gst_buffer_get_sizes(b,of,ms)  gst_buffer_get_sizes_range ((b), 0, -1, (of), (ms))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-size"></a><h3>gst_buffer_get_size()</h3>
-<pre class="programlisting">#define     gst_buffer_get_size(b)         gst_buffer_get_sizes ((b), NULL, NULL)
+<pre class="programlisting">#define     gst_buffer_get_size(b)         gst_buffer_get_sizes_range ((b), 0, -1, NULL, NULL)
 </pre>
 <p>
 Get the size of <em class="parameter"><code>b</code></em>.
@@ -1027,35 +978,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-resize"></a><h3>gst_buffer_resize ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_resize                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>
-Set the total size of the buffer
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset adjustement</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the new size</td>
-</tr>
-</tbody>
-</table></div>
+<a name="gst-buffer-resize"></a><h3>gst_buffer_resize()</h3>
+<pre class="programlisting">#define     gst_buffer_resize(b,of,s)      gst_buffer_resize_range ((b), 0, -1, (of), (s))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-set-size"></a><h3>gst_buffer_set_size()</h3>
-<pre class="programlisting">#define     gst_buffer_set_size(b,s)       gst_buffer_resize ((b), 0, (s))
+<pre class="programlisting">#define     gst_buffer_set_size(b,s)       gst_buffer_resize_range ((b), 0, -1, 0, (s))
 </pre>
 <p>
 Set the size of <em class="parameter"><code>b</code></em> to <em class="parameter"><code>s</code></em>. This will remove or trim the memory blocks
@@ -1099,12 +1029,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-take-memory"></a><h3>gst_buffer_take_memory ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_take_memory              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a name="gst-buffer-insert-memory"></a><h3>gst_buffer_insert_memory ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_insert_memory            (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
 <p>
-Add the memory block <em class="parameter"><code>mem</code></em> to <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>idx</code></em>. This function takes ownership
+Insert the memory block <em class="parameter"><code>mem</code></em> to <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>idx</code></em>. This function takes ownership
 of <em class="parameter"><code>mem</code></em> and thus doesn't increase its refcount.
 </p>
 <div class="variablelist"><table border="0">
@@ -1128,19 +1058,20 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-peek-memory"></a><h3>gst_buffer_peek_memory ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_buffer_peek_memory              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a name="gst-buffer-replace-memory-range"></a><h3>gst_buffer_replace_memory_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_replace_memory_range     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
 <p>
-Get the memory block in <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>idx</code></em> for memory access in <em class="parameter"><code>flags</code></em>.
-This function does not return a refcount to the memory block. The memory
-block stays valid for as long as the caller has a valid reference to <em class="parameter"><code>buffer</code></em>.
+Replaces <em class="parameter"><code>length</code></em> memory blocks in <em class="parameter"><code>buffer</code></em> starting at <em class="parameter"><code>idx</code></em> with <em class="parameter"><code>mem</code></em>.
 </p>
 <p>
-<em class="parameter"><code>buffer</code></em> should be writable when <em class="parameter"><code>flags</code></em> contains <a class="link" href="gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>. If the memory
-at <em class="parameter"><code>idx</code></em> is not writable, a new writable copy will be installed in <em class="parameter"><code>buffer</code></em> and
-returned.
+If <em class="parameter"><code>length</code></em> is -1, all memory starting from <em class="parameter"><code>idx</code></em> will be removed and
+replaced with <em class="parameter"><code>mem</code></em>.
+</p>
+<p>
+<em class="parameter"><code>buffer</code></em> should be writable.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1154,35 +1085,51 @@
 <td>an index</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a></td>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>a length should not be 0</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> at <em class="parameter"><code>idx</code></em>.</td>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-remove-memory"></a><h3>gst_buffer_remove_memory()</h3>
-<pre class="programlisting">#define     gst_buffer_remove_memory(b,i)  gst_buffer_remove_memory_range ((b), (i), 1)
-</pre>
+<a name="gst-buffer-get-memory-range"></a><h3>gst_buffer_get_memory_range ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_buffer_get_memory_range         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
 <p>
-Remove the memory block in <em class="parameter"><code>b</code></em> at <em class="parameter"><code>i</code></em>.
+Get <em class="parameter"><code>length</code></em> memory blocks in <em class="parameter"><code>buffer</code></em> starting at <em class="parameter"><code>idx</code></em>. The memory blocks will
+be merged into one large <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.
+</p>
+<p>
+If <em class="parameter"><code>length</code></em> is -1, all memory starting from <em class="parameter"><code>idx</code></em> is merged.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
 <td>an index</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>a length</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> that contains the merged data of <em class="parameter"><code>length</code></em>
+blocks starting at <em class="parameter"><code>idx</code></em>. Use <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_unref()</code></a> after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1191,9 +1138,9 @@
 <a name="gst-buffer-remove-memory-range"></a><h3>gst_buffer_remove_memory_range ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_remove_memory_range      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
 <p>
-Remove <em class="parameter"><code>len</code></em> memory blocks in <em class="parameter"><code>buffer</code></em> starting from <em class="parameter"><code>idx</code></em>.
+Remove <em class="parameter"><code>length</code></em> memory blocks in <em class="parameter"><code>buffer</code></em> starting from <em class="parameter"><code>idx</code></em>.
 </p>
 <p>
 <em class="parameter"><code>length</code></em> can be -1, in which case all memory starting from <em class="parameter"><code>idx</code></em> is removed.
@@ -1218,108 +1165,26 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-join"></a><h3>gst_buffer_join ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_join                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);</pre>
+<a name="gst-buffer-find-memory"></a><h3>gst_buffer_find_memory ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_find_memory              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *skip</code></em>);</pre>
 <p>
-Create a new buffer that is the concatenation of the two source
-buffers, and unrefs the original source buffers.
+Find the memory blocks that span <em class="parameter"><code>size</code></em> bytes starting from <em class="parameter"><code>offset</code></em>
+in <em class="parameter"><code>buffer</code></em>.
 </p>
 <p>
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.
+When this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, <em class="parameter"><code>idx</code></em> will contain the index of the first
+memory bock where the byte for <em class="parameter"><code>offset</code></em> can be found and <em class="parameter"><code>length</code></em> contains the
+number of memory blocks containing the <em class="parameter"><code>size</code></em> remaining bytes. <em class="parameter"><code>skip</code></em> contains
+the number of bytes to skip in the memory bock at <em class="parameter"><code>idx</code></em> to get to the byte
+for <em class="parameter"><code>offset</code></em>.
 </p>
 <p>
-This is a convenience function for C programmers. See also
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-merge" title="gst_buffer_merge ()"><code class="function">gst_buffer_merge()</code></a>, which does the same thing without
-unreffing the input parameters. Language bindings without
-explicit reference counting should not wrap this function.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
-<td>the first source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf2</code></em> :</span></p></td>
-<td>the second source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> which is the concatenation of
-the source buffers. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-buffer-merge"></a><h3>gst_buffer_merge ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_merge                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);</pre>
-<p>
-Create a new buffer that is the concatenation of the two source
-buffers.  The original source buffers will not be modified or
-unref'd.  Make sure you unref the source buffers if they are not used
-anymore afterwards.
-</p>
-<p>
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.
-</p>
-<p>
-Free-function: gst_buffer_unref
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
-<td>the first source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to merge. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf2</code></em> :</span></p></td>
-<td>the second source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to merge. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> which is the concatenation
-of the source buffers. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-buffer-map"></a><h3>gst_buffer_map ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_buffer_map                      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
-<p>
-This function return a pointer to the memory in <em class="parameter"><code>buffer</code></em>. <em class="parameter"><code>flags</code></em> describe the
-desired access of the memory. When <em class="parameter"><code>flags</code></em> is <a class="link" href="gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>, <em class="parameter"><code>buffer</code></em> should
-be writable (as returned from <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>).
-</p>
-<p>
-<em class="parameter"><code>size</code></em> and <em class="parameter"><code>maxsize</code></em> will contain the current valid number of bytes in the
-returned memory area and the total maximum mount of bytes available in the
-returned memory area respectively.
-</p>
-<p>
-When <em class="parameter"><code>buffer</code></em> is writable but the memory isn't, a writable copy will
-automatically be created and returned. The readonly copy of the buffer memory
-will then also be replaced with this writable copy.
-</p>
-<p>
-When the buffer contains multiple memory blocks, the returned pointer will be
-a concatenation of the memory blocks.
+<em class="parameter"><code>size</code></em> can be -1 to get all the memory blocks after <em class="parameter"><code>idx</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1329,54 +1194,126 @@
 <td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>a location for the size</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>a location for the max size</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>flags for the mapping</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the memory for the buffer.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-buffer-unmap"></a><h3>gst_buffer_unmap ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_unmap                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>
-Release the memory previously mapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map ()"><code class="function">gst_buffer_map()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the previously mapped data</td>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>an offset</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of <em class="parameter"><code>data</code></em>
+<td>a size</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>pointer to index. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>pointer to length. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>skip</code></em> :</span></p></td>
+<td>pointer to skip. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> on success. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> can be returned when the new size is larger
-than the maxsize of the memory.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>size</code></em> bytes starting from <em class="parameter"><code>offset</code></em> could be found in
+<em class="parameter"><code>buffer</code></em> and <em class="parameter"><code>idx</code></em>, <em class="parameter"><code>length</code></em> and <em class="parameter"><code>skip</code></em> will be filled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-prepend-memory"></a><h3>gst_buffer_prepend_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_prepend_memory(b,m)     gst_buffer_insert_memory ((b), 0, (m))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-append-memory"></a><h3>gst_buffer_append_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_append_memory(b,m)      gst_buffer_insert_memory ((b), -1, (m))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-replace-memory"></a><h3>gst_buffer_replace_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_replace_memory(b,i,m)   gst_buffer_replace_memory_range ((b), (i), 1, (m))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-replace-all-memory"></a><h3>gst_buffer_replace_all_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), 0, -1, (m))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-memory"></a><h3>gst_buffer_get_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_get_memory(b,i)         gst_buffer_get_memory_range ((b), (i), 1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-all-memory"></a><h3>gst_buffer_get_all_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_get_all_memory(b)       gst_buffer_get_memory_range ((b), 0, -1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-remove-memory"></a><h3>gst_buffer_remove_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_remove_memory(b,i)      gst_buffer_remove_memory_range ((b), (i), 1)
+</pre>
+<p>
+Remove the memory block in <em class="parameter"><code>b</code></em> at <em class="parameter"><code>i</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-remove-all-memory"></a><h3>gst_buffer_remove_all_memory()</h3>
+<pre class="programlisting">#define     gst_buffer_remove_all_memory(b)    gst_buffer_remove_memory_range ((b), 0, -1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-map"></a><h3>gst_buffer_map()</h3>
+<pre class="programlisting">#define     gst_buffer_map(b,i,f)          gst_buffer_map_range ((b), 0, -1, (i), (f))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-unmap"></a><h3>gst_buffer_unmap ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_unmap                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);</pre>
+<p>
+Release the memory previously mapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map()"><code class="function">gst_buffer_map()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -1385,9 +1322,9 @@
 <div class="refsect2">
 <a name="gst-buffer-memcmp"></a><h3>gst_buffer_memcmp ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_buffer_memcmp                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Compare <em class="parameter"><code>size</code></em> bytes starting from <em class="parameter"><code>offset</code></em> in <em class="parameter"><code>buffer</code></em> with the memory in <em class="parameter"><code>mem</code></em>.
 </p>
@@ -1421,10 +1358,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-extract"></a><h3>gst_buffer_extract ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_buffer_extract                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_buffer_extract                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Copy <em class="parameter"><code>size</code></em> bytes starting from <em class="parameter"><code>offset</code></em> in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>dest</code></em>.
 </p>
@@ -1458,10 +1395,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-fill"></a><h3>gst_buffer_fill ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_buffer_fill                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_buffer_fill                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Copy <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>src</code></em> to <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>offset</code></em>.
 </p>
@@ -1495,10 +1432,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-memset"></a><h3>gst_buffer_memset ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_buffer_memset                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_buffer_memset                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Fill <em class="parameter"><code>buf</code></em> with <em class="parameter"><code>size</code></em> bytes with <em class="parameter"><code>val</code></em> starting from <em class="parameter"><code>offset</code></em>.
 </p>
@@ -1532,10 +1469,65 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BUFFER-COPY-METADATA:CAPS"></a><h3>GST_BUFFER_COPY_METADATA</h3>
-<pre class="programlisting">#define GST_BUFFER_COPY_METADATA       (GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS)
+<a name="GstBufferCopyFlags"></a><h3>enum GstBufferCopyFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_BUFFER_COPY_NONE           = 0,
+  GST_BUFFER_COPY_FLAGS          = (1 &lt;&lt; 0),
+  GST_BUFFER_COPY_TIMESTAMPS     = (1 &lt;&lt; 1),
+  GST_BUFFER_COPY_META           = (1 &lt;&lt; 2),
+  GST_BUFFER_COPY_MEMORY         = (1 &lt;&lt; 3),
+  GST_BUFFER_COPY_MERGE          = (1 &lt;&lt; 4)
+} GstBufferCopyFlags;
 </pre>
 <p>
+A set of flags that can be provided to the <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>
+function to specify which items should be copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-NONE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_NONE</code></span></p></td>
+<td>copy nothing
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-FLAGS:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_FLAGS</code></span></p></td>
+<td>flag indicating that buffer flags should be copied
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-TIMESTAMPS:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_TIMESTAMPS</code></span></p></td>
+<td>flag indicating that buffer pts, dts,
+duration, offset and offset_end should be copied
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-META:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_META</code></span></p></td>
+<td>flag indicating that buffer meta should be
+copied
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-MEMORY:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_MEMORY</code></span></p></td>
+<td>flag indicating that buffer memory should be copied
+and appended to already existing memory
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-COPY-MERGE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_COPY_MERGE</code></span></p></td>
+<td>flag indicating that buffer memory should be
+merged
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-BUFFER-COPY-METADATA:CAPS"></a><h3>GST_BUFFER_COPY_METADATA</h3>
+<pre class="programlisting">#define             GST_BUFFER_COPY_METADATA</pre>
+<p>
 Combination of all possible metadata fields that can be copied with
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>.
 </p>
@@ -1579,12 +1571,16 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_copy_into                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *dest</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Copies the information from <em class="parameter"><code>src</code></em> into <em class="parameter"><code>dest</code></em>.
 </p>
 <p>
+If <em class="parameter"><code>dest</code></em> already contains memory and <em class="parameter"><code>flags</code></em> contains GST_BUFFER_COPY_MEMORY,
+the memory from <em class="parameter"><code>src</code></em> will be appended to <em class="parameter"><code>dest</code></em>.
+</p>
+<p>
 <em class="parameter"><code>flags</code></em> indicate which fields will be copied.
 </p>
 <div class="variablelist"><table border="0">
@@ -1620,8 +1616,8 @@
 <a name="gst-buffer-copy-region"></a><h3>gst_buffer_copy_region ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_copy_region              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Creates a sub-buffer from <em class="parameter"><code>parent</code></em> at <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>size</code></em>.
 This sub-buffer uses the actual memory space of the parent buffer.
@@ -1714,8 +1710,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-replace"></a><h3>gst_buffer_replace()</h3>
-<pre class="programlisting">#define             gst_buffer_replace(obuf,nbuf)</pre>
+<a name="gst-buffer-replace"></a><h3>gst_buffer_replace ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_replace                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **obuf</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *nbuf</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to point to a different <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. The
 modification is done atomically (so this is useful for ensuring thread safety
@@ -1740,87 +1737,39 @@
 replace the buffer pointed to by <em class="parameter"><code>obuf</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE when <em class="parameter"><code>obuf</code></em> was different from <em class="parameter"><code>nbuf</code></em>.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-is-span-fast"></a><h3>gst_buffer_is_span_fast ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_is_span_fast             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
+<a name="gst-buffer-append"></a><h3>gst_buffer_append ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_append                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);</pre>
 <p>
-Determines whether a <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-span" title="gst_buffer_span ()"><code class="function">gst_buffer_span()</code></a> can be done without copying
-the contents, that is, whether the data areas are contiguous sub-buffers of
-the same buffer.
-</p>
-<p>
-MT safe.
+Append all the memory from <em class="parameter"><code>buf2</code></em> to <em class="parameter"><code>buf1</code></em>. The result buffer will contain a
+concatenation of the memory of <em class="parameter"><code>buf1</code></em> and <em class="parameter"><code>buf2</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
-<td>the first <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+<td>the first source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to append. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf2</code></em> :</span></p></td>
-<td>the second <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+<td>the second source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to append. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the buffers are contiguous,
-FALSE if a copy would be required.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-buffer-span"></a><h3>gst_buffer_span ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_span                     (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>
-Creates a new buffer that consists of part of buf1 and buf2.
-Logically, buf1 and buf2 are concatenated into a single larger
-buffer, and a new buffer is created at the given offset inside
-this space, with a given length.
-</p>
-<p>
-If the two source buffers are children of the same larger buffer,
-and are contiguous, the new buffer will be a child of the shared
-parent, and thus no copying is necessary. you can use
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-span-fast" title="gst_buffer_is_span_fast ()"><code class="function">gst_buffer_is_span_fast()</code></a> to determine if a memcpy will be needed.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
-<td>the first source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to merge.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset in the first buffer from where the new
-buffer should start.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf2</code></em> :</span></p></td>
-<td>the second source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to merge.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the total size of the new buffer.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> that spans the two source
-buffers, or NULL if the arguments are invalid. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> that contains the memory
+of the two source buffers. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1830,14 +1779,11 @@
 <div class="refsect2">
 <a name="gst-buffer-get-meta"></a><h3>gst_buffer_get_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           gst_buffer_get_meta                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> *info</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
 <p>
-Get the metadata for the api in <em class="parameter"><code>info</code></em> on buffer. When there is no such
+Get the metadata for <em class="parameter"><code>api</code></em> on buffer. When there is no such
 metadata, NULL is returned.
 </p>
-<p>
-Note that the result metadata might not be of the implementation <em class="parameter"><code>info</code></em>.
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1847,13 +1793,12 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a>
-</td>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of an API</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the metadata for the api in <em class="parameter"><code>info</code></em> on <em class="parameter"><code>buffer</code></em>.</td>
+<td>the metadata for <em class="parameter"><code>api</code></em> on <em class="parameter"><code>buffer</code></em>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -1887,7 +1832,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the metadata for the api in <em class="parameter"><code>info</code></em> on <em class="parameter"><code>buffer</code></em>.</td>
+<td>the metadata for the api in <em class="parameter"><code>info</code></em> on <em class="parameter"><code>buffer</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -1955,25 +1901,89 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-add-meta-timing"></a><h3>gst_buffer_add_meta_timing()</h3>
-<pre class="programlisting">#define gst_buffer_add_meta_timing(b)  ((GstMetaTiming*)gst_buffer_add_meta((b),GST_META_TIMING_INFO,NULL))
-</pre>
+<a name="GstBufferForeachMetaFunc"></a><h3>GstBufferForeachMetaFunc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstBufferForeachMetaFunc)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> **meta</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function that will be called from <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a>. The <em class="parameter"><code>meta</code></em>
+field will point to a the reference of the meta.
+</p>
+<p>
+<em class="parameter"><code>buffer</code></em> should not be modified from this callback.
+</p>
+<p>
+When this function returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the next meta will be
+returned. When <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned, <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a> will return.
+</p>
+<p>
+When <em class="parameter"><code>meta</code></em> is set to NULL, the item will be removed from the buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a pointer to a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a> should stop</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-get-meta-timing"></a><h3>gst_buffer_get_meta_timing()</h3>
-<pre class="programlisting">#define gst_buffer_get_meta_timing(b)  ((GstMetaTiming*)gst_buffer_get_meta((b),GST_META_TIMING_INFO))
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-meta-timing-get-info"></a><h3>gst_meta_timing_get_info ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * gst_meta_timing_get_info            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<a name="gst-buffer-foreach-meta"></a><h3>gst_buffer_foreach_meta ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_foreach_meta             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Call <em class="parameter"><code>func</code></em> with <em class="parameter"><code>user_data</code></em> for each meta in <em class="parameter"><code>buffer</code></em>.
+</p>
+<p>
+<em class="parameter"><code>func</code></em> can modify the passed meta pointer or its contents. The return value
+of <em class="parameter"><code>func</code></em> define if this function returns or if the remaining metadata items
+in the buffer should be skipped.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> to call. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <em class="parameter"><code>func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstBuffer.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
+<a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>, <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>, <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>, <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/gstreamer-GstBufferList.html b/docs/gst/html/gstreamer-GstBufferList.html
index 6381edd..6d15c74 100644
--- a/docs/gst/html/gstreamer-GstBufferList.html
+++ b/docs/gst/html/gstreamer-GstBufferList.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferList</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstBuffer.html" title="GstBuffer">
 <link rel="next" href="gstreamer-GstBufferPool.html" title="GstBufferPool">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstBuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstBufferPool.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -42,8 +42,8 @@
 
                     <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList">GstBufferList</a>;
 <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-new" title="gst_buffer_list_new ()">gst_buffer_list_new</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-sized-new" title="gst_buffer_list_sized_new ()">gst_buffer_list_sized_new</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-len" title="gst_buffer_list_len ()">gst_buffer_list_len</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+<a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-new-sized" title="gst_buffer_list_new_sized ()">gst_buffer_list_new_sized</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-length" title="gst_buffer_list_length ()">gst_buffer_list_length</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 #define             <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-add" title="gst_buffer_list_add()">gst_buffer_list_add</a>                 (l,
                                                          b)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-insert" title="gst_buffer_list_insert ()">gst_buffer_list_insert</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
@@ -76,6 +76,14 @@
 Buffer lists are created with <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-new" title="gst_buffer_list_new ()"><code class="function">gst_buffer_list_new()</code></a> and filled with data
 using a <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-insert" title="gst_buffer_list_insert ()"><code class="function">gst_buffer_list_insert()</code></a>.
 </p>
+<p>
+Buffer lists can be pushed on a srcpad with <a class="link" href="GstPad.html#gst-pad-push-list" title="gst_pad_push_list ()"><code class="function">gst_pad_push_list()</code></a>. This is
+interesting when multiple buffers need to be pushed in one go because it
+can reduce the amount of overhead for pushing each buffer individually.
+</p>
+<p>
+Last reviewed on 2012-03-28 (0.11.3)
+</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstBufferList.details"></a><h2>Details</h2>
@@ -111,8 +119,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-list-sized-new"></a><h3>gst_buffer_list_sized_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     gst_buffer_list_sized_new           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+<a name="gst-buffer-list-new-sized"></a><h3>gst_buffer_list_new_sized ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *     gst_buffer_list_new_sized           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Creates a new, empty <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a>. The caller is responsible for unreffing
 the returned <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a>. The list will have <em class="parameter"><code>size</code></em> space preallocated so
@@ -140,8 +148,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-list-len"></a><h3>gst_buffer_list_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_buffer_list_len                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<a name="gst-buffer-list-length"></a><h3>gst_buffer_list_length ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_buffer_list_length              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
 <p>
 Returns the number of buffers in <em class="parameter"><code>list</code></em>.
 </p>
@@ -206,6 +214,28 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_list_remove              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
+<p>
+Remove <em class="parameter"><code>length</code></em> buffers starting from <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>list</code></em>. The following buffers are
+moved to close the gap.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>the amount to remove</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -384,8 +414,8 @@
 </p>
 <p>
 <em class="parameter"><code>func</code></em> can modify the passed buffer pointer or its contents. The return value
-of <em class="parameter"><code>func</code></em> define if this function returns or if the remaining buffers in a
-group should be skipped.
+of <em class="parameter"><code>func</code></em> define if this function returns or if the remaining buffers in
+the list should be skipped.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/gst/html/gstreamer-GstBufferPool.html b/docs/gst/html/gstreamer-GstBufferPool.html
index 8ca07d7..cc82cc7 100644
--- a/docs/gst/html/gstreamer-GstBufferPool.html
+++ b/docs/gst/html/gstreamer-GstBufferPool.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferPool</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstBufferList.html" title="GstBufferList">
 <link rel="next" href="GstBus.html" title="GstBus">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstBufferList.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstBus.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -42,31 +42,33 @@
 
                     <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool">GstBufferPool</a>;
 struct              <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolClass" title="struct GstBufferPoolClass">GstBufferPoolClass</a>;
-enum                <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolFlags" title="enum GstBufferPoolFlags">GstBufferPoolFlags</a>;
 #define             <a class="link" href="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-IS-FLUSHING:CAPS" title="GST_BUFFER_POOL_IS_FLUSHING()">GST_BUFFER_POOL_IS_FLUSHING</a>         (pool)
-                    <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolParams" title="GstBufferPoolParams">GstBufferPoolParams</a>;
 <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *     <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-new" title="gst_buffer_pool_new ()">gst_buffer_pool_new</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get" title="gst_buffer_pool_config_get ()">gst_buffer_pool_config_get</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-params" title="gst_buffer_pool_config_get_params ()">gst_buffer_pool_config_get_params</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *align</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set" title="gst_buffer_pool_config_set ()">gst_buffer_pool_config_set</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-params" title="gst_buffer_pool_config_set_params ()">gst_buffer_pool_config_set_params</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> align</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-allocator" title="gst_buffer_pool_config_get_allocator ()">gst_buffer_pool_config_get_allocator</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()">gst_buffer_pool_config_set_allocator</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options" title="gst_buffer_pool_config_n_options ()">gst_buffer_pool_config_n_options</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()">gst_buffer_pool_config_add_option</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *option</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-option" title="gst_buffer_pool_config_get_option ()">gst_buffer_pool_config_get_option</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-has-option" title="gst_buffer_pool_config_has_option ()">gst_buffer_pool_config_has_option</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *option</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options" title="gst_buffer_pool_config_n_options ()">gst_buffer_pool_config_n_options</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **      <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-get-options" title="gst_buffer_pool_get_options ()">gst_buffer_pool_get_options</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-has-option" title="gst_buffer_pool_has_option ()">gst_buffer_pool_has_option</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *option</code></em>);
@@ -76,15 +78,68 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()">gst_buffer_pool_set_active</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-is-active" title="gst_buffer_pool_is_active ()">gst_buffer_pool_is_active</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);
+enum                <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags" title="enum GstBufferPoolAcquireFlags">GstBufferPoolAcquireFlags</a>;
+                    <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>;
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()">gst_buffer_pool_acquire_buffer</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolParams" title="GstBufferPoolParams"><span class="type">GstBufferPoolParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer" title="gst_buffer_pool_release_buffer ()">gst_buffer_pool_release_buffer</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstBufferPool.description"></a><h2>Description</h2>
+<p>
+a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> is an object that can be used to pre-allocate and recycle
+buffers of the same size and with the same properties.
+</p>
+<p>
+A <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> is created with <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-new" title="gst_buffer_pool_new ()"><code class="function">gst_buffer_pool_new()</code></a>.
+</p>
+<p>
+After the buffer is created, it needs to be configured.
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-get-config" title="gst_buffer_pool_get_config ()"><code class="function">gst_buffer_pool_get_config()</code></a> get the current configuration structure from the
+pool. With <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-params" title="gst_buffer_pool_config_set_params ()"><code class="function">gst_buffer_pool_config_set_params()</code></a> and
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()"><code class="function">gst_buffer_pool_config_set_allocator()</code></a> the bufferpool parameters and allocator
+can be configured. Other properties can be configured in the pool depending
+on the pool implementation.
+</p>
+<p>
+A bufferpool can have extra options that can be enabled with
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()"><code class="function">gst_buffer_pool_config_add_option()</code></a>. The available options can be retrieved
+with <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-get-options" title="gst_buffer_pool_get_options ()"><code class="function">gst_buffer_pool_get_options()</code></a>. Some options allow for additional
+configuration properties to be set.
+</p>
+<p>
+After the configuration structure has been configured,
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> updates the configuration in the pool. This can
+fail when the configuration structure is not accepted.
+</p>
+<p>
+After the a pool has been configured, it can be activated with
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()"><code class="function">gst_buffer_pool_set_active()</code></a>. This will preallocate the configured resources
+in the pool.
+</p>
+<p>
+When the pool is active, <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> can be used to
+retrieve a buffer from the pool.
+</p>
+<p>
+Buffer allocated from a bufferpool will automatically be returned to the pool
+with <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer" title="gst_buffer_pool_release_buffer ()"><code class="function">gst_buffer_pool_release_buffer()</code></a> when their refcount drops to 0.
+</p>
+<p>
+The bufferpool can be deactivated again with <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()"><code class="function">gst_buffer_pool_set_active()</code></a>.
+All further <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> calls will return an error. When
+all buffers are returned to the pool they will be freed.
+</p>
+<p>
+Use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to release the reference to a bufferpool. If the
+refcount of the pool reaches 0, the pool will be freed.
+</p>
+<p>
+Last reviewed on 2012-03-28 (0.11.3)
+</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstBufferPool.details"></a><h2>Details</h2>
@@ -120,11 +175,11 @@
   gboolean       (*stop)           (GstBufferPool *pool);
 
   GstFlowReturn  (*acquire_buffer) (GstBufferPool *pool, GstBuffer **buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   GstFlowReturn  (*alloc_buffer)   (GstBufferPool *pool, GstBuffer **buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   void           (*reset_buffer)   (GstBufferPool *pool, GstBuffer *buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   void           (*release_buffer) (GstBufferPool *pool, GstBuffer *buffer);
   void           (*free_buffer)    (GstBufferPool *pool, GstBuffer *buffer);
 };
@@ -168,13 +223,16 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBufferPoolClass.alloc-buffer"></a>alloc_buffer</code></em> ()</span></p></td>
 <td>allocate a buffer. the default implementation allocates
-buffers from the default memory allocator and with the configured
-size, prefix and alignment.</td>
+buffers from the configured memory allocator and with the configured
+parameters. All metadata that is present on the allocated buffer will
+be marked as <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"><span class="type">GST_META_FLAG_POOLED</span></a> and will not be removed from the
+buffer in <em class="parameter"><code>reset_buffer</code></em>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBufferPoolClass.reset-buffer"></a>reset_buffer</code></em> ()</span></p></td>
 <td>reset the buffer to its state when it was freshly allocated.
-The default implementation will clear the flags and timestamps.</td>
+The default implementation will clear the flags, timestamps and
+will remove the metadata without the <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"><span class="type">GST_META_FLAG_POOLED</span></a> flag.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBufferPoolClass.release-buffer"></a>release_buffer</code></em> ()</span></p></td>
@@ -191,53 +249,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBufferPoolFlags"></a><h3>enum GstBufferPoolFlags</h3>
-<pre class="programlisting">typedef enum {
-  GST_BUFFER_POOL_FLAG_NONE     = 0,
-  GST_BUFFER_POOL_FLAG_KEY_UNIT = (1 &lt;&lt; 0),
-  GST_BUFFER_POOL_FLAG_DONTWAIT = (1 &lt;&lt; 1),
-  GST_BUFFER_POOL_FLAG_DISCONT  = (1 &lt;&lt; 2),
-  GST_BUFFER_POOL_FLAG_LAST     = (1 &lt;&lt; 16),
-} GstBufferPoolFlags;
-</pre>
-<p>
-Additional flags to control the allocation of a buffer
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-BUFFER-POOL-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_FLAG_NONE</code></span></p></td>
-<td>no flags
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-POOL-FLAG-KEY-UNIT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_FLAG_KEY_UNIT</code></span></p></td>
-<td>buffer is keyframe
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-POOL-FLAG-DONTWAIT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_FLAG_DONTWAIT</code></span></p></td>
-<td>don't wait for buffer. This makes the
-acquire_buffer method return GST_FLOW_UNEXPECTED.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-POOL-FLAG-DISCONT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_FLAG_DISCONT</code></span></p></td>
-<td>buffer is discont
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-BUFFER-POOL-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_FLAG_LAST</code></span></p></td>
-<td>last flag, subclasses can use private flags
-   starting from this value.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-BUFFER-POOL-IS-FLUSHING:CAPS"></a><h3>GST_BUFFER_POOL_IS_FLUSHING()</h3>
 <pre class="programlisting">#define GST_BUFFER_POOL_IS_FLUSHING(pool)  (g_atomic_int_get (&amp;pool-&gt;flushing))
 </pre>
@@ -255,48 +266,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBufferPoolParams"></a><h3>GstBufferPoolParams</h3>
-<pre class="programlisting">typedef struct {
-  GstFormat          format;
-  gint64             start;
-  gint64             stop;
-  GstBufferPoolFlags flags;
-} GstBufferPoolParams;
-</pre>
-<p>
-Parameters passed to the <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> function to control the
-allocation of the buffer.
-</p>
-<p>
-The default implementation ignores the <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> members but other
-implementations can use this extra information to decide what buffer to
-return.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstBufferPoolParams.format"></a>format</code></em>;</span></p></td>
-<td>the format of <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstBufferPoolParams.start"></a>start</code></em>;</span></p></td>
-<td>the start position</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstBufferPoolParams.stop"></a>stop</code></em>;</span></p></td>
-<td>the stop position</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolFlags" title="enum GstBufferPoolFlags"><span class="type">GstBufferPoolFlags</span></a> <em class="structfield"><code><a name="GstBufferPoolParams.flags"></a>flags</code></em>;</span></p></td>
-<td>additional flags</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-buffer-pool-new"></a><h3>gst_buffer_pool_new ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *     gst_buffer_pool_new                 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -306,20 +275,19 @@
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> instance</td>
+<td>a new <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-pool-config-get"></a><h3>gst_buffer_pool_config_get ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_pool_config_get          (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
+<a name="gst-buffer-pool-config-get-params"></a><h3>gst_buffer_pool_config_get_params ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_pool_config_get_params   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *align</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>);</pre>
 <p>
 Get the configuration values from <em class="parameter"><code>config</code></em>.
 </p>
@@ -328,45 +296,45 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</td>
+<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the caps of buffers</td>
+<td>the caps of buffers. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of each buffer, not including prefix</td>
+<td>the size of each buffer, not including prefix and padding. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>min_buffers</code></em> :</span></p></td>
-<td>the minimum amount of buffers to allocate.</td>
+<td>the minimum amount of buffers to allocate. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
-<td>the maximum amount of buffers to allocate or 0 for unlimited.</td>
+<td>the maximum amount of buffers to allocate or 0 for unlimited. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
-<td>prefix each buffer with this many bytes</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>alignment of the buffer data.</td>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all parameters could be fetched.</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-pool-config-set"></a><h3>gst_buffer_pool_config_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_pool_config_set          (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<a name="gst-buffer-pool-config-set-params"></a><h3>gst_buffer_pool_config_set_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_pool_config_set_params   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> align</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);</pre>
 <p>
 Configure <em class="parameter"><code>config</code></em> with the given parameters.
 </p>
@@ -383,7 +351,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of each buffer, not including prefix</td>
+<td>the size of each buffer, not including prefix and padding</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>min_buffers</code></em> :</span></p></td>
@@ -393,13 +361,99 @@
 <td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
 <td>the maximum amount of buffers to allocate or 0 for unlimited.</td>
 </tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-pool-config-get-allocator"></a><h3>gst_buffer_pool_config_get_allocator ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_pool_config_get_allocator
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Get the allocator and params from <em class="parameter"><code>config</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
-<td>prefix each buffer with this many bytes</td>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>alignment of the buffer data.</td>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-pool-config-set-allocator"></a><h3>gst_buffer_pool_config_set_allocator ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_pool_config_set_allocator
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Set the <em class="parameter"><code>allocator</code></em> and <em class="parameter"><code>params</code></em> on <em class="parameter"><code>config</code></em>.
+</p>
+<p>
+One of <em class="parameter"><code>allocator</code></em> and <em class="parameter"><code>params</code></em> can be NULL, but not both. When <em class="parameter"><code>allocator</code></em>
+is NULL, the default allocator of the pool will use the values in <em class="parameter"><code>param</code></em>
+to perform its allocation. When <em class="parameter"><code>param</code></em> is NULL, the pool will use the
+provided allocator with its default <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>.
+</p>
+<p>
+A call to <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> can update the allocator and params
+with the values that it is able to do. Some pools are, for example, not able
+to operate with different allocators or cannot allocate with the values
+specified in <em class="parameter"><code>params</code></em>. Use <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-get-config" title="gst_buffer_pool_get_config ()"><code class="function">gst_buffer_pool_get_config()</code></a> to get the currently
+used values.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-pool-config-n-options"></a><h3>gst_buffer_pool_config_n_options ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_buffer_pool_config_n_options    (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>
+Retrieve the number of values currently stored in the
+options array of the <em class="parameter"><code>config</code></em> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the options array size as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -485,28 +539,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-pool-config-n-options"></a><h3>gst_buffer_pool_config_n_options ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_buffer_pool_config_n_options    (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
-<p>
-Retrieve the number of values currently stored in the
-options array of the <em class="parameter"><code>config</code></em> structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the options array size as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-buffer-pool-get-options"></a><h3>gst_buffer_pool_get_options ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **      gst_buffer_pool_get_options         (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);</pre>
 <p>
@@ -524,7 +556,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a NULL terminated array of strings.</td>
+<td>a NULL terminated array of strings. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -576,7 +609,8 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a copy of the current configuration of <em class="parameter"><code>pool</code></em>. use
-<a class="link" href="gstreamer-GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after usage or <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a>.</td>
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after usage or <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -594,7 +628,7 @@
 <p>
 <em class="parameter"><code>config</code></em> is a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> that contains the configuration parameters for
 the pool. A default and mandatory set of parameters can be configured with
-<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set" title="gst_buffer_pool_config_set ()"><code class="function">gst_buffer_pool_config_set()</code></a>. This function takes ownership of <em class="parameter"><code>config</code></em>.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set"><code class="function">gst_buffer_pool_config_set()</code></a>. This function takes ownership of <em class="parameter"><code>config</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -606,7 +640,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
+<td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -623,7 +657,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
 <p>
 Control the active state of <em class="parameter"><code>pool</code></em>. When the pool is active, new calls to
-<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> will return with GST_FLOW_WRONG_STATE.
+<a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> will return with GST_FLOW_FLUSHING.
 </p>
 <p>
 Activating the bufferpool will preallocate all resources in the pool based on
@@ -681,10 +715,99 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstBufferPoolAcquireFlags"></a><h3>enum GstBufferPoolAcquireFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_BUFFER_POOL_ACQUIRE_FLAG_NONE     = 0,
+  GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT = (1 &lt;&lt; 0),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT = (1 &lt;&lt; 1),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT  = (1 &lt;&lt; 2),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_LAST     = (1 &lt;&lt; 16),
+} GstBufferPoolAcquireFlags;
+</pre>
+<p>
+Additional flags to control the allocation of a buffer
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_ACQUIRE_FLAG_NONE</code></span></p></td>
+<td>no flags
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-KEY-UNIT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT</code></span></p></td>
+<td>buffer is keyframe
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-DONTWAIT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT</code></span></p></td>
+<td>don't wait for buffer. This makes the
+acquire_buffer method return GST_FLOW_EOS.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-DISCONT:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT</code></span></p></td>
+<td>buffer is discont
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_BUFFER_POOL_ACQUIRE_FLAG_LAST</code></span></p></td>
+<td>last flag, subclasses can use private flags
+   starting from this value.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstBufferPoolAcquireParams"></a><h3>GstBufferPoolAcquireParams</h3>
+<pre class="programlisting">typedef struct {
+  GstFormat                 format;
+  gint64                    start;
+  gint64                    stop;
+  GstBufferPoolAcquireFlags flags;
+} GstBufferPoolAcquireParams;
+</pre>
+<p>
+Parameters passed to the <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> function to control the
+allocation of the buffer.
+</p>
+<p>
+The default implementation ignores the <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> members but other
+implementations can use this extra information to decide what buffer to
+return.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.format"></a>format</code></em>;</span></p></td>
+<td>the format of <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint64</span> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.start"></a>start</code></em>;</span></p></td>
+<td>the start position</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint64</span> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.stop"></a>stop</code></em>;</span></p></td>
+<td>the stop position</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags" title="enum GstBufferPoolAcquireFlags"><span class="type">GstBufferPoolAcquireFlags</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.flags"></a>flags</code></em>;</span></p></td>
+<td>additional flags</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-buffer-pool-acquire-buffer"></a><h3>gst_buffer_pool_acquire_buffer ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_buffer_pool_acquire_buffer      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolParams" title="GstBufferPoolParams"><span class="type">GstBufferPoolParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);</pre>
 <p>
 Acquire a buffer from <em class="parameter"><code>pool</code></em>. <em class="parameter"><code>buffer</code></em> should point to a memory location that
 can hold a pointer to the new buffer.
@@ -702,16 +825,16 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a location for a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+<td>a location for a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>parameters.</td>
+<td>(transfer none) (allow-none) parameters.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> such as GST_FLOW_WRONG_STATE when the pool is
+<td>a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> such as GST_FLOW_FLUSHING when the pool is
 inactive.</td>
 </tr>
 </tbody>
@@ -740,7 +863,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/gstreamer-GstCaps.html b/docs/gst/html/gstreamer-GstCaps.html
index 18a3f14..6c790f5 100644
--- a/docs/gst/html/gstreamer-GstCaps.html
+++ b/docs/gst/html/gstreamer-GstCaps.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstCaps</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstBus.html" title="GstBus">
-<link rel="next" href="GstChildProxy.html" title="GstChildProxy">
+<link rel="next" href="gstreamer-GstSample.html" title="GstSample">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="GstBus.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="GstChildProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstSample.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-GstCaps.synopsis" class="shortcut">Top</a>
@@ -60,6 +60,7 @@
 #define             <a class="link" href="gstreamer-GstCaps.html#GST-CAPS-FLAG-UNSET:CAPS" title="GST_CAPS_FLAG_UNSET()">GST_CAPS_FLAG_UNSET</a>                 (caps,
                                                          flag)
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-empty" title="gst_caps_new_empty ()">gst_caps_new_empty</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-empty-simple" title="gst_caps_new_empty_simple ()">gst_caps_new_empty_simple</a>           (<em class="parameter"><code>const <span class="type">char</span> *media_type</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-any" title="gst_caps_new_any ()">gst_caps_new_any</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-new-simple" title="gst_caps_new_simple ()">gst_caps_new_simple</a>                 (<em class="parameter"><code>const <span class="type">char</span> *media_type</code></em>,
                                                          <em class="parameter"><code>const <span class="type">char</span> *fieldname</code></em>,
@@ -76,7 +77,7 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-static-caps-cleanup" title="gst_static_caps_cleanup ()">gst_static_caps_cleanup</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstStaticCaps" title="struct GstStaticCaps"><span class="type">GstStaticCaps</span></a> *static_caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-append" title="gst_caps_append ()">gst_caps_append</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-merge" title="gst_caps_merge ()">gst_caps_merge</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-merge" title="gst_caps_merge ()">gst_caps_merge</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-append-structure" title="gst_caps_append_structure ()">gst_caps_append_structure</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
@@ -84,7 +85,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstCaps.html#gst-caps-steal-structure" title="gst_caps_steal_structure ()">gst_caps_steal_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-merge-structure" title="gst_caps_merge_structure ()">gst_caps_merge_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-merge-structure" title="gst_caps_merge_structure ()">gst_caps_merge_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstCaps.html#gst-caps-get-size" title="gst_caps_get_size ()">gst_caps_get_size</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstCaps.html#gst-caps-get-structure" title="gst_caps_get_structure ()">gst_caps_get_structure</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
@@ -105,6 +106,8 @@
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-equal-fixed" title="gst_caps_is_equal_fixed ()">gst_caps_is_equal_fixed</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-strictly-equal" title="gst_caps_is_strictly_equal ()">gst_caps_is_strictly_equal</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-always-compatible" title="gst_caps_is_always_compatible ()">gst_caps_is_always_compatible</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-is-subset" title="gst_caps_is_subset ()">gst_caps_is_subset</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *subset</code></em>,
@@ -113,32 +116,32 @@
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-can-intersect" title="gst_caps_can_intersect ()">gst_caps_can_intersect</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-intersect" title="gst_caps_intersect ()">gst_caps_intersect</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-intersect-full" title="gst_caps_intersect_full ()">gst_caps_intersect_full</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>,
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-intersect" title="gst_caps_intersect ()">gst_caps_intersect</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-intersect-full" title="gst_caps_intersect_full ()">gst_caps_intersect_full</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-union" title="gst_caps_union ()">gst_caps_union</a>                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-normalize" title="gst_caps_normalize ()">gst_caps_normalize</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-do-simplify" title="gst_caps_do_simplify ()">gst_caps_do_simplify</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-#define             <a class="link" href="gstreamer-GstCaps.html#gst-caps-replace" title="gst_caps_replace()">gst_caps_replace</a>                    (ocaps,
-                                                         ncaps)
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-normalize" title="gst_caps_normalize ()">gst_caps_normalize</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-simplify" title="gst_caps_simplify ()">gst_caps_simplify</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-replace" title="gst_caps_replace ()">gst_caps_replace</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **old_caps</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *new_caps</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstCaps.html#gst-caps-take" title="gst_caps_take ()">gst_caps_take</a>                       (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **old_caps</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *new_caps</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstCaps.html#gst-caps-to-string" title="gst_caps_to_string ()">gst_caps_to_string</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-from-string" title="gst_caps_from_string ()">gst_caps_from_string</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *string</code></em>);
-<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-subtract" title="gst_caps_subtract ()">gst_caps_subtract</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *minuend</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *subtrahend</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-subtract" title="gst_caps_subtract ()">gst_caps_subtract</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *minuend</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *subtrahend</code></em>);
 #define             <a class="link" href="gstreamer-GstCaps.html#gst-caps-make-writable" title="gst_caps_make_writable()">gst_caps_make_writable</a>              (caps)
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-truncate" title="gst_caps_truncate ()">gst_caps_truncate</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-fixate" title="gst_caps_fixate ()">gst_caps_fixate</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstCaps.html#gst-caps-ref" title="gst_caps_ref ()">gst_caps_ref</a>                        (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-truncate" title="gst_caps_truncate ()">gst_caps_truncate</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-fixate" title="gst_caps_fixate ()">gst_caps_fixate</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstCaps.html#gst-caps-unref" title="gst_caps_unref ()">gst_caps_unref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstCaps.description"></a><h2>Description</h2>
 <p>
-Caps (capabilities) are lighweight refcounted objects describing media types.
+Caps (capabilities) are lightweight refcounted objects describing media types.
 They are composed of an array of <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>.
 </p>
 <p>
@@ -147,46 +150,56 @@
 a description of the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>.
 </p>
 <p>
-Caps are exposed on the element pads using the <a class="link" href="GstPad.html#gst-pad-get-caps" title="gst_pad_get_caps ()"><code class="function">gst_pad_get_caps()</code></a> pad
+Caps are exposed on the element pads using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-get-caps"><code class="function">gst_pad_get_caps()</code></a> pad
 function. This function describes the possible types that the pad can
 handle or produce at runtime.
 </p>
 <p>
-Caps are also attached to buffers to describe to content of the data
-pointed to by the buffer with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-set-caps"><code class="function">gst_buffer_set_caps()</code></a>. Caps attached to
-a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> allow for format negotiation upstream and downstream.
-</p>
-<p>
 A <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> can be constructed with the following code fragment:
 </p>
 <p>
 </p>
 <div class="example">
-<a name="id508030"></a><p class="title"><b>Example 4. Creating caps</b></p>
-<div class="example-contents"><pre class="programlisting">
- GstCaps *caps;
- caps = gst_caps_new_simple ("video/x-raw",
-      "format", G_TYPE_STRING, "I420"),
-      "framerate", GST_TYPE_FRACTION, 25, 1,
-      "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
-      "width", G_TYPE_INT, 320,
-      "height", G_TYPE_INT, 240,
-      NULL);
- </pre></div>
+<a name="idp14695584"></a><p class="title"><b>Example 4. Creating caps</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
+caps <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-simple">gst_caps_new_simple</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-raw&quot;</span><span class="gtkdoc opt">,</span>
+     <span class="string">&quot;format&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> <span class="string">&quot;I420&quot;</span><span class="gtkdoc opt">,</span>
+     <span class="string">&quot;framerate&quot;</span><span class="gtkdoc opt">,</span> GST_TYPE_FRACTION<span class="gtkdoc opt">,</span> <span class="number">25</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span>
+     <span class="string">&quot;pixel-aspect-ratio&quot;</span><span class="gtkdoc opt">,</span> GST_TYPE_FRACTION<span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span>
+     <span class="string">&quot;width&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_INT<span class="gtkdoc opt">,</span> <span class="number">320</span><span class="gtkdoc opt">,</span>
+     <span class="string">&quot;height&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_INT<span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">,</span>
+     NULL<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
 <p>
 A <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> is fixed when it has no properties with ranges or lists. Use
-<a class="link" href="gstreamer-GstCaps.html#gst-caps-is-fixed" title="gst_caps_is_fixed ()"><code class="function">gst_caps_is_fixed()</code></a> to test for fixed caps. Only fixed caps can be
-set on a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> or <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.
+<a class="link" href="gstreamer-GstCaps.html#gst-caps-is-fixed" title="gst_caps_is_fixed ()"><code class="function">gst_caps_is_fixed()</code></a> to test for fixed caps. Fixed caps can be used in a
+caps event to notify downstream elements of the current media type.
 </p>
 <p>
 Various methods exist to work with the media types such as subtracting
 or intersecting.
 </p>
 <p>
-Last reviewed on 2007-02-13 (0.10.10)
+Last reviewed on 2011-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -212,7 +225,7 @@
 <div class="refsect2">
 <a name="GstStaticCaps"></a><h3>struct GstStaticCaps</h3>
 <pre class="programlisting">struct GstStaticCaps {
-  GstCaps caps;
+  GstCaps *caps;
   const char *string;
 };
 </pre>
@@ -225,7 +238,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> <em class="structfield"><code><a name="GstStaticCaps.caps"></a>caps</code></em>;</span></p></td>
+<td><p><span class="term"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstStaticCaps.caps"></a>caps</code></em>;</span></p></td>
 <td>the cached <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
 </td>
 </tr>
@@ -251,13 +264,25 @@
 <em class="parameter"><code>GST_CAPS_INTERSECT_ZIG_ZAG</code></em> tries to preserve overall order of both caps
 by iterating on the caps' structures as the following matrix shows:
 </p>
-<div class="informalexample"><pre class="programlisting">
-         caps1
-      +-------------
-      | 1  2  4  7
-caps2 | 3  5  8 10
-      | 6  9 11 12
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5</pre></td>
+        <td class="listing_code"><pre class="programlisting">caps1
+      <span class="gtkdoc opt">+-------------</span>
+      <span class="gtkdoc opt">|</span> <span class="number">1  2  4  7</span>
+caps2 <span class="gtkdoc opt">|</span> <span class="number">3  5  8 10</span>
+      <span class="gtkdoc opt">|</span> <span class="number">6  9 11 12</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 Used when there is no explicit precedence of one caps over the other. e.g.
 tee's sink pad getcaps function, it will probe its src pad peers' for their
@@ -290,7 +315,7 @@
 <div class="refsect2">
 <a name="GstCapsFlags"></a><h3>enum GstCapsFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_CAPS_FLAGS_ANY = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 0)
+  GST_CAPS_FLAG_ANY = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 0)
 } GstCapsFlags;
 </pre>
 <p>
@@ -299,7 +324,7 @@
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><a name="GST-CAPS-FLAGS-ANY:CAPS"></a><span class="term"><code class="literal">GST_CAPS_FLAGS_ANY</code></span></p></td>
+<td><p><a name="GST-CAPS-FLAG-ANY:CAPS"></a><span class="term"><code class="literal">GST_CAPS_FLAG_ANY</code></span></p></td>
 <td>Caps has no specific content, but can contain
    anything.
 </td>
@@ -309,21 +334,23 @@
 <hr>
 <div class="refsect2">
 <a name="GST-CAPS-ANY:CAPS"></a><h3>GST_CAPS_ANY</h3>
-<pre class="programlisting">#define GST_CAPS_ANY              gst_caps_new_any()
+<pre class="programlisting">#define GST_CAPS_ANY              _gst_caps_any
 </pre>
 <p>
 Means that the element/pad can output 'anything'. Useful for elements
-that output unknown media, such as filesrc.
+that output unknown media, such as filesrc. This macro returns a singleton and
+should not be unreffed.
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-CAPS-NONE:CAPS"></a><h3>GST_CAPS_NONE</h3>
-<pre class="programlisting">#define GST_CAPS_NONE             gst_caps_new_empty()
+<pre class="programlisting">#define GST_CAPS_NONE             _gst_caps_none
 </pre>
 <p>
 The opposite of <a class="link" href="gstreamer-GstCaps.html#GST-CAPS-ANY:CAPS" title="GST_CAPS_ANY"><code class="literal">GST_CAPS_ANY</code></a>: it means that the pad/element outputs an
-undefined media type that can not be detected.
+undefined media type that can not be detected. This macro returns a singleton
+and should not be unreffed.
 </p>
 </div>
 <hr>
@@ -502,6 +529,7 @@
 <p>
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that is empty.  That is, the returned
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> contains no media formats.
+The <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> is guaranteed to be writable.
 Caller is responsible for unreffing the returned caps.
 </p>
 <div class="variablelist"><table border="0">
@@ -515,6 +543,30 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-new-empty-simple"></a><h3>gst_caps_new_empty_simple ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_new_empty_simple           (<em class="parameter"><code>const <span class="type">char</span> *media_type</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that contains one <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> with name
+<em class="parameter"><code>media_type</code></em>.
+Caller is responsible for unreffing the returned caps.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>media_type</code></em> :</span></p></td>
+<td>the media type of the structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-new-any"></a><h3>gst_caps_new_any ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_new_any                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -729,13 +781,13 @@
 <a name="gst-static-caps-cleanup"></a><h3>gst_static_caps_cleanup ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_static_caps_cleanup             (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstStaticCaps" title="struct GstStaticCaps"><span class="type">GstStaticCaps</span></a> *static_caps</code></em>);</pre>
 <p>
-Clean up the caps contained in <em class="parameter"><code>static_caps</code></em> when the refcount is 0.
+Clean up the cached caps contained in <em class="parameter"><code>static_caps</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>static_caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstStaticCaps" title="struct GstStaticCaps"><span class="type">GstStaticCaps</span></a> to convert</td>
+<td>the <a class="link" href="gstreamer-GstCaps.html#GstStaticCaps" title="struct GstStaticCaps"><span class="type">GstStaticCaps</span></a> to clean</td>
 </tr></tbody>
 </table></div>
 </div>
@@ -767,12 +819,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-caps-merge"></a><h3>gst_caps_merge ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_merge                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_merge                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
 <p>
 Appends the structures contained in <em class="parameter"><code>caps2</code></em> to <em class="parameter"><code>caps1</code></em> if they are not yet
 expressed by <em class="parameter"><code>caps1</code></em>. The structures in <em class="parameter"><code>caps2</code></em> are not copied -- they are
-transferred to <em class="parameter"><code>caps1</code></em>, and then <em class="parameter"><code>caps2</code></em> is freed.
+transferred to a writable copy of <em class="parameter"><code>caps1</code></em>, and then <em class="parameter"><code>caps2</code></em> is freed.
 If either caps is ANY, the resulting caps will be ANY.
 </p>
 <div class="variablelist"><table border="0">
@@ -780,13 +832,19 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that will take the new entries</td>
+<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that will take the new entries. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps2</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to merge in. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the merged caps. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 <p class="since">Since 0.10.10</p>
@@ -844,7 +902,7 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_caps_steal_structure            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
 <p>
-Retrieves the stucture with the given index from the list of structures
+Retrieves the structure with the given index from the list of structures
 contained in <em class="parameter"><code>caps</code></em>. The caller becomes the owner of the returned structure.
 </p>
 <div class="variablelist"><table border="0">
@@ -871,24 +929,29 @@
 <hr>
 <div class="refsect2">
 <a name="gst-caps-merge-structure"></a><h3>gst_caps_merge_structure ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_merge_structure            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_merge_structure            (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
 <p>
-Appends <em class="parameter"><code>structure</code></em> to <em class="parameter"><code>caps</code></em> if its not already expressed by <em class="parameter"><code>caps</code></em>.  The
-structure is not copied; <em class="parameter"><code>caps</code></em> becomes the owner of <em class="parameter"><code>structure</code></em>.
+Appends <em class="parameter"><code>structure</code></em> to <em class="parameter"><code>caps</code></em> if its not already expressed by <em class="parameter"><code>caps</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that will the new structure</td>
+<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to merge into. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>structure</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> to merge. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the merged caps. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1188,6 +1251,38 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-is-strictly-equal"></a><h3>gst_caps_is_strictly_equal ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_caps_is_strictly_equal          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
+<p>
+Checks if the given caps are exactly the same set of caps.
+</p>
+<p>
+This function deals correctly with passing NULL for any of the caps.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps2</code></em> :</span></p></td>
+<td>another <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if both caps are strictly equal.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-is-always-compatible"></a><h3>gst_caps_is_always_compatible ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_caps_is_always_compatible       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
@@ -1279,7 +1374,7 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1313,8 +1408,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-caps-intersect"></a><h3>gst_caps_intersect ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_intersect                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_intersect                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that contains all the formats that are common
 to both <em class="parameter"><code>caps1</code></em> and <em class="parameter"><code>caps2</code></em>. Defaults to <a class="link" href="gstreamer-GstCaps.html#GST-CAPS-INTERSECT-ZIG-ZAG:CAPS"><code class="literal">GST_CAPS_INTERSECT_ZIG_ZAG</code></a> mode.
@@ -1341,8 +1436,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-caps-intersect-full"></a><h3>gst_caps_intersect_full ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_intersect_full             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_intersect_full             (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that contains all the formats that are common
@@ -1375,51 +1470,27 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-caps-union"></a><h3>gst_caps_union ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_union                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that contains all the formats that are in
-either <em class="parameter"><code>caps1</code></em> and <em class="parameter"><code>caps2</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps1</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to union</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps2</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to union</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-caps-normalize"></a><h3>gst_caps_normalize ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_normalize                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_normalize                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
-Creates a new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that represents the same set of formats as
+Returns a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that represents the same set of formats as
 <em class="parameter"><code>caps</code></em>, but contains no lists.  Each list is expanded into separate
 <em class="parameter"><code>GstStructures</code></em>.
 </p>
+<p>
+This function takes ownership of <em class="parameter"><code>caps</code></em>.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to normalize</td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to normalize. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+<td>the normalized <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1427,32 +1498,37 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-caps-do-simplify"></a><h3>gst_caps_do_simplify ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_caps_do_simplify                (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<a name="gst-caps-simplify"></a><h3>gst_caps_simplify ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_simplify                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
-Modifies the given <em class="parameter"><code>caps</code></em> inplace into a representation that represents the
+Converts the given <em class="parameter"><code>caps</code></em> into a representation that represents the
 same set of formats, but in a simpler form.  Component structures that are
 identical are merged.  Component structures that have values that can be
 merged are also merged.
 </p>
+<p>
+This method does not preserve the original order of <em class="parameter"><code>caps</code></em>.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to simplify</td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to simplify. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if the caps could be simplified</td>
+<td>The simplified caps.</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-caps-replace"></a><h3>gst_caps_replace()</h3>
-<pre class="programlisting">#define             gst_caps_replace(ocaps,ncaps)</pre>
+<a name="gst-caps-replace"></a><h3>gst_caps_replace ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_caps_replace                    (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **old_caps</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *new_caps</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to point to a different <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. The
 modification is done atomically (so this is useful for ensuring thread safety
@@ -1466,17 +1542,55 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>ocaps</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>old_caps</code></em> :</span></p></td>
 <td>pointer to a pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to be
 replaced. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>ncaps</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>new_caps</code></em> :</span></p></td>
 <td>pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that will
 replace the caps pointed to by <em class="parameter"><code>ocaps</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>new_caps</code></em> was different from <em class="parameter"><code>old_caps</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-take"></a><h3>gst_caps_take ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_caps_take                       (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **old_caps</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *new_caps</code></em>);</pre>
+<p>
+Modifies a pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to point to a different <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. This
+function is similar to <a class="link" href="gstreamer-GstCaps.html#gst-caps-replace" title="gst_caps_replace ()"><code class="function">gst_caps_replace()</code></a> except that it takes ownership
+of <em class="parameter"><code>new_caps</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>old_caps</code></em> :</span></p></td>
+<td>pointer to a pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to be
+replaced. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>new_caps</code></em> :</span></p></td>
+<td>pointer to a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> that will
+replace the caps pointed to by <em class="parameter"><code>ocaps</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>new_caps</code></em> was different from <em class="parameter"><code>old_caps</code></em>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1491,11 +1605,19 @@
 <p>
 For debugging purposes its easier to do something like this:
 </p>
-<div class="informalexample"><pre class="programlisting">
-GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;caps are %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
-This prints the caps in human readble form.
+This prints the caps in human readable form.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1539,8 +1661,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-caps-subtract"></a><h3>gst_caps_subtract ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_subtract                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *minuend</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *subtrahend</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_subtract                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *minuend</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *subtrahend</code></em>);</pre>
 <p>
 Subtracts the <em class="parameter"><code>subtrahend</code></em> from the <em class="parameter"><code>minuend</code></em>.
 </p>
@@ -1608,6 +1730,55 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-caps-truncate"></a><h3>gst_caps_truncate ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_truncate                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Discard all but the first structure from <em class="parameter"><code>caps</code></em>. Useful when
+fixating.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to truncate. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>truncated caps. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-caps-fixate"></a><h3>gst_caps_fixate ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_fixate                     (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Modifies the given <em class="parameter"><code>caps</code></em> into a representation with only fixed
+values. First the caps will be truncated and then the first structure will be
+fixated with <a class="link" href="gstreamer-GstStructure.html#gst-structure-fixate" title="gst_structure_fixate ()"><code class="function">gst_structure_fixate()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to fixate. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the fixated caps. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-caps-ref"></a><h3>gst_caps_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_caps_ref                        (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
@@ -1637,39 +1808,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-caps-truncate"></a><h3>gst_caps_truncate ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_truncate                   (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Destructively discard all but the first structure from <em class="parameter"><code>caps</code></em>. Useful when
-fixating. <em class="parameter"><code>caps</code></em> must be writable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to truncate</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-caps-fixate"></a><h3>gst_caps_fixate ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_fixate                     (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Modifies the given <em class="parameter"><code>caps</code></em> inplace into a representation with only fixed
-values. First the caps will be truncated and then the first structure will be
-fixated with <a class="link" href="gstreamer-GstStructure.html#gst-structure-fixate" title="gst_structure_fixate ()"><code class="function">gst_structure_fixate()</code></a>. <em class="parameter"><code>caps</code></em> should be writable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to fixate</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-caps-unref"></a><h3>gst_caps_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_caps_unref                      (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
@@ -1687,7 +1825,7 @@
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstCaps.see-also"></a><h2>See Also</h2>
-<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/gstreamer-GstDateTime.html b/docs/gst/html/gstreamer-GstDateTime.html
index 4b5f5c9..54dc3f8 100644
--- a/docs/gst/html/gstreamer-GstDateTime.html
+++ b/docs/gst/html/gstreamer-GstDateTime.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstDateTime</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="gstreamer-gstconfig.html" title="gstconfig">
+<link rel="prev" href="GstControlSource.html" title="GstControlSource">
 <link rel="next" href="GstElement.html" title="GstElement">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gstreamer-gstconfig.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstElement.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -58,9 +58,9 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minute</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> seconds</code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time" title="gst_date_time_new_from_unix_epoch_local_time ()">gst_date_time_new_from_unix_epoch_local_time</a>
-                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> secs</code></em>);
+                                                        (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc" title="gst_date_time_new_from_unix_epoch_utc ()">gst_date_time_new_from_unix_epoch_utc</a>
-                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> secs</code></em>);
+                                                        (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-local-time" title="gst_date_time_new_local_time ()">gst_date_time_new_local_time</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>,
@@ -382,7 +382,7 @@
 <div class="refsect2">
 <a name="gst-date-time-new-from-unix-epoch-local-time"></a><h3>gst_date_time_new_from_unix_epoch_local_time ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_from_unix_epoch_local_time
-                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> secs</code></em>);</pre>
+                                                        (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the time since Jan 1, 1970 specified by
 <em class="parameter"><code>secs</code></em>. The <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> is in the local timezone.
@@ -410,7 +410,7 @@
 <div class="refsect2">
 <a name="gst-date-time-new-from-unix-epoch-utc"></a><h3>gst_date_time_new_from_unix_epoch_utc ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_from_unix_epoch_utc
-                                                        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> secs</code></em>);</pre>
+                                                        (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the time since Jan 1, 1970 specified by
 <em class="parameter"><code>secs</code></em>. The <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> is in the UTC timezone.
diff --git a/docs/gst/html/gstreamer-GstEvent.html b/docs/gst/html/gstreamer-GstEvent.html
index 6d071f3..1e9173d 100644
--- a/docs/gst/html/gstreamer-GstEvent.html
+++ b/docs/gst/html/gstreamer-GstEvent.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstEvent</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstGError.html" title="GstGError">
-<link rel="next" href="gstreamer-GstFilter.html" title="GstFilter">
+<link rel="next" href="gstreamer-GstFormat.html" title="GstFormat">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="gstreamer-GstGError.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstFilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstFormat.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-GstEvent.synopsis" class="shortcut">Top</a>
@@ -45,10 +45,8 @@
 enum                <a class="link" href="gstreamer-GstEvent.html#GstEventTypeFlags" title="enum GstEventTypeFlags">GstEventTypeFlags</a>;
 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS" title="GST_EVENT_TYPE_BOTH">GST_EVENT_TYPE_BOTH</a>
 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS" title="GST_EVENT_MAKE_TYPE()">GST_EVENT_MAKE_TYPE</a>                 (num,
-                                                         idx,
                                                          flags)
 enum                <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType">GstEventType</a>;
-#define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TRACE-NAME:CAPS" title="GST_EVENT_TRACE_NAME">GST_EVENT_TRACE_NAME</a>
 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS" title="GST_EVENT_TYPE()">GST_EVENT_TYPE</a>                      (event)
 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-NAME:CAPS" title="GST_EVENT_TYPE_NAME()">GST_EVENT_TYPE_NAME</a>                 (event)
 #define             <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TIMESTAMP:CAPS" title="GST_EVENT_TIMESTAMP()">GST_EVENT_TIMESTAMP</a>                 (event)
@@ -62,12 +60,12 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstEvent.html#gst-event-type-to-quark" title="gst_event_type_to_quark ()">gst_event_type_to_quark</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> type</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()">gst_event_ref</a>                       (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-unref" title="gst_event_unref ()">gst_event_unref</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
-#define             <a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace()">gst_event_replace</a>                   (old_event,
-                                                         new_event)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace ()">gst_event_replace</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-copy" title="gst_event_copy ()">gst_event_copy</a>                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
-#define             <a class="link" href="gstreamer-GstEvent.html#gst-event-steal" title="gst_event_steal()">gst_event_steal</a>                     (old_event)
-#define             <a class="link" href="gstreamer-GstEvent.html#gst-event-take" title="gst_event_take()">gst_event_take</a>                      (old_event,
-                                                         new_event)
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-steal" title="gst_event_steal ()">gst_event_steal</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-take" title="gst_event_take ()">gst_event_take</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);
 #define             <a class="link" href="gstreamer-GstEvent.html#gst-event-is-writable" title="gst_event_is_writable()">gst_event_is_writable</a>               (ev)
 #define             <a class="link" href="gstreamer-GstEvent.html#gst-event-make-writable" title="gst_event_make_writable()">gst_event_make_writable</a>             (ev)
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstEvent.html#gst-event-writable-structure" title="gst_event_writable_structure ()">gst_event_writable_structure</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
@@ -76,15 +74,21 @@
 const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-get-structure" title="gst_event_get_structure ()">gst_event_get_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-has-name" title="gst_event_has_name ()">gst_event_has_name</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()">gst_event_get_seqnum</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-GstEvent.html#gst-event-get-seqnum" title="gst_event_get_seqnum ()">gst_event_get_seqnum</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-set-seqnum" title="gst_event_set_seqnum ()">gst_event_set_seqnum</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> seqnum</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-flush-start" title="gst_event_new_flush_start ()">gst_event_new_flush_start</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-flush-stop" title="gst_event_new_flush_stop ()">gst_event_new_flush_stop</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> reset_time</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-flush-stop" title="gst_event_parse_flush_stop ()">gst_event_parse_flush_stop</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *reset_time</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-eos" title="gst_event_new_eos ()">gst_event_new_eos</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-segment" title="gst_event_new_segment ()">gst_event_new_segment</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-gap" title="gst_event_new_gap ()">gst_event_new_gap</a>                   (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-gap" title="gst_event_parse_gap ()">gst_event_parse_gap</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *duration</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-start" title="gst_event_new_stream_start ()">gst_event_new_stream_start</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-segment" title="gst_event_new_segment ()">gst_event_new_segment</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-segment" title="gst_event_parse_segment ()">gst_event_parse_segment</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> **segment</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-copy-segment" title="gst_event_copy_segment ()">gst_event_copy_segment</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
@@ -93,13 +97,13 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> minsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> async</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-buffer-size" title="gst_event_parse_buffer_size ()">gst_event_parse_buffer_size</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *minsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *minsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *async</code></em>);
 enum                <a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType">GstQOSType</a>;
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-qos" title="gst_event_new_qos ()">gst_event_new_qos</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType"><span class="type">GstQOSType</span></a> type</code></em>,
@@ -117,29 +121,29 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-seek" title="gst_event_parse_seek ()">gst_event_parse_seek</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> *flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-navigation" title="gst_event_new_navigation ()">gst_event_new_navigation</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-latency" title="gst_event_new_latency ()">gst_event_new_latency</a>               (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> latency</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-latency" title="gst_event_parse_latency ()">gst_event_parse_latency</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *latency</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-step" title="gst_event_new_step ()">gst_event_new_step</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-step" title="gst_event_parse_step ()">gst_event_parse_step</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);
@@ -150,6 +154,32 @@
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-caps" title="gst_event_new_caps ()">gst_event_new_caps</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-caps" title="gst_event_parse_caps ()">gst_event_parse_caps</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);
+enum                <a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags">GstStreamConfigFlags</a>;
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-config" title="gst_event_new_stream_config ()">gst_event_new_stream_config</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags"><span class="type">GstStreamConfigFlags</span></a> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-config" title="gst_event_parse_stream_config ()">gst_event_parse_stream_config</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags"><span class="type">GstStreamConfigFlags</span></a> *flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-set-stream-config-setup-data" title="gst_event_set_stream_config_setup_data ()">gst_event_set_stream_config_setup_data</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-config-setup-data" title="gst_event_parse_stream_config_setup_data ()">gst_event_parse_stream_config_setup_data</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buf</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-add-stream-config-header" title="gst_event_add_stream_config_header ()">gst_event_add_stream_config_header</a>  (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstEvent.html#gst-event-get-n-stream-config-headers" title="gst_event_get_n_stream_config_headers ()">gst_event_get_n_stream_config_headers</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-nth-stream-config-header" title="gst_event_parse_nth_stream_config_header ()">gst_event_parse_nth_stream_config_header</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buf</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()">gst_event_new_toc</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc" title="gst_event_parse_toc ()">gst_event_parse_toc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc-select" title="gst_event_new_toc_select ()">gst_event_new_toc_select</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()">gst_event_parse_toc_select</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uid</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -166,13 +196,13 @@
 The event should be unreffed with <a class="link" href="gstreamer-GstEvent.html#gst-event-unref" title="gst_event_unref ()"><code class="function">gst_event_unref()</code></a> if it has not been sent.
 </p>
 <p>
-Events that have been received can be parsed with their respective 
+Events that have been received can be parsed with their respective
 gst_event_parse_*() functions. It is valid to pass <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for unwanted details.
 </p>
 <p>
 Events are passed between elements in parallel to the data stream. Some events
 are serialized with buffers, others are not. Some events only travel downstream,
-others only upstream. Some events can travel both upstream and downstream. 
+others only upstream. Some events can travel both upstream and downstream.
 </p>
 <p>
 The events are used to signal special conditions in the datastream such as
@@ -180,35 +210,57 @@
 Events are also used to flush the pipeline of any pending data.
 </p>
 <p>
-Most of the event API is used inside plugins. Applications usually only 
-construct and use seek events. 
+Most of the event API is used inside plugins. Applications usually only
+construct and use seek events.
 To do that <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" title="gst_event_new_seek ()"><code class="function">gst_event_new_seek()</code></a> is used to create a seek event. It takes
 the needed parameters to specify seeking time and mode.
 </p>
 <div class="example">
-<a name="id550506"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
-<div class="example-contents"><pre class="programlisting">
-  GstEvent *event;
-  gboolean result;
-  ...
-  // construct a seek event to play the media from second 2 to 5, flush
-  // the pipeline to decrease latency.
-  event = gst_event_new_seek (1.0, 
-     GST_FORMAT_TIME, 
-     GST_SEEK_FLAG_FLUSH,
-     GST_SEEK_TYPE_SET, 2 * GST_SECOND,
-     GST_SEEK_TYPE_SET, 5 * GST_SECOND);
-  ...
-  result = gst_element_send_event (pipeline, event);
-  if (!result)
-    g_warning ("seek failed");
-  ...
-  </pre></div>
+<a name="idp19681920"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstEvent <span class="gtkdoc opt">*</span>event<span class="gtkdoc opt">;</span>
+gboolean result<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc slc">// construct a seek event to play the media from second 2 to 5, flush</span>
+<span class="gtkdoc slc">// the pipeline to decrease latency.</span>
+event <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-seek">gst_event_new_seek</a></span> <span class="gtkdoc opt">(</span><span class="number">1.0</span><span class="gtkdoc opt">,</span> 
+   GST_FORMAT_TIME<span class="gtkdoc opt">,</span> 
+   GST_SEEK_FLAG_FLUSH<span class="gtkdoc opt">,</span>
+   GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">2</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">,</span>
+   GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">5</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+result <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-send-event">gst_element_send_event</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> event<span class="gtkdoc opt">);</span>
+<span class="keyword">if</span> <span class="gtkdoc opt">(!</span>result<span class="gtkdoc opt">)</span>
+  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;seek failed&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
 <p>
-Last reviewed on 2006-09-6 (0.10.10)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -238,11 +290,11 @@
 <td>the <a class="link" href="gstreamer-GstEvent.html#GstEventType" title="enum GstEventType"><span class="type">GstEventType</span></a> of the event</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstEvent.timestamp"></a>timestamp</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstEvent.timestamp"></a>timestamp</code></em>;</span></p></td>
 <td>the timestamp of the event</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstEvent.seqnum"></a>seqnum</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstEvent.seqnum"></a>seqnum</code></em>;</span></p></td>
 <td>the sequence number of the event</td>
 </tr>
 </tbody>
@@ -255,7 +307,8 @@
   GST_EVENT_TYPE_UPSTREAM       = 1 &lt;&lt; 0,
   GST_EVENT_TYPE_DOWNSTREAM     = 1 &lt;&lt; 1,
   GST_EVENT_TYPE_SERIALIZED     = 1 &lt;&lt; 2,
-  GST_EVENT_TYPE_STICKY         = 1 &lt;&lt; 3
+  GST_EVENT_TYPE_STICKY         = 1 &lt;&lt; 3,
+  GST_EVENT_TYPE_STICKY_MULTI   = 1 &lt;&lt; 4
 } GstEventTypeFlags;
 </pre>
 <p>
@@ -279,7 +332,7 @@
 <tr>
 <td><p><a name="GST-EVENT-TYPE-SERIALIZED:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_SERIALIZED</code></span></p></td>
 <td>Set if the event should be serialized with data
-                            flow.
+                              flow.
 </td>
 </tr>
 <tr>
@@ -287,6 +340,12 @@
 <td>Set if the event is sticky on the pads.
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-EVENT-TYPE-STICKY-MULTI:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TYPE_STICKY_MULTI</code></span></p></td>
+<td>Multiple sticky events can be on a pad, each
+                              identified by the event name.
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -301,7 +360,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-EVENT-MAKE-TYPE:CAPS"></a><h3>GST_EVENT_MAKE_TYPE()</h3>
-<pre class="programlisting">#define             GST_EVENT_MAKE_TYPE(num,idx,flags)</pre>
+<pre class="programlisting">#define             GST_EVENT_MAKE_TYPE(num,flags)</pre>
 <p>
 when making custom event types, use this macro with the num and
 the given flags
@@ -314,10 +373,6 @@
 <td>the event number to create</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
-<td>the index in the sticky array</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 <td>the event flags</td>
 </tr>
@@ -328,32 +383,43 @@
 <div class="refsect2">
 <a name="GstEventType"></a><h3>enum GstEventType</h3>
 <pre class="programlisting">typedef enum {
-  GST_EVENT_UNKNOWN               = GST_EVENT_MAKE_TYPE (0, 0, 0),
+  GST_EVENT_UNKNOWN               = GST_EVENT_MAKE_TYPE (0, 0),
+
   /* bidirectional events */
-  GST_EVENT_FLUSH_START           = GST_EVENT_MAKE_TYPE (1, 0, FLAG(BOTH)),
-  GST_EVENT_FLUSH_STOP            = GST_EVENT_MAKE_TYPE (2, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
+  GST_EVENT_FLUSH_START           = GST_EVENT_MAKE_TYPE (10, FLAG(BOTH)),
+  GST_EVENT_FLUSH_STOP            = GST_EVENT_MAKE_TYPE (20, FLAG(BOTH) | FLAG(SERIALIZED)),
+
   /* downstream serialized events */
-  GST_EVENT_CAPS                  = GST_EVENT_MAKE_TYPE (5, 1, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_SEGMENT               = GST_EVENT_MAKE_TYPE (6, 2, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (7, 3, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (8, 4, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (9, 5, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (10, 6, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_STREAM_START          = GST_EVENT_MAKE_TYPE (40, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_CAPS                  = GST_EVENT_MAKE_TYPE (50, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_STREAM_CONFIG         = GST_EVENT_MAKE_TYPE (60, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_SEGMENT               = GST_EVENT_MAKE_TYPE (70, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (80, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+
+  /* non-sticky downstream serialized */
+  GST_EVENT_SEGMENT_DONE          = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_EVENT_GAP                   = GST_EVENT_MAKE_TYPE (160, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
 
   /* upstream events */
-  GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (15, 0, FLAG(UPSTREAM)),
-  GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (16, 0, FLAG(UPSTREAM)),
-  GST_EVENT_NAVIGATION            = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)),
-  GST_EVENT_LATENCY               = GST_EVENT_MAKE_TYPE (18, 0, FLAG(UPSTREAM)),
-  GST_EVENT_STEP                  = GST_EVENT_MAKE_TYPE (19, 0, FLAG(UPSTREAM)),
-  GST_EVENT_RECONFIGURE           = GST_EVENT_MAKE_TYPE (20, 0, FLAG(UPSTREAM)),
+  GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (190, FLAG(UPSTREAM)),
+  GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (200, FLAG(UPSTREAM)),
+  GST_EVENT_NAVIGATION            = GST_EVENT_MAKE_TYPE (210, FLAG(UPSTREAM)),
+  GST_EVENT_LATENCY               = GST_EVENT_MAKE_TYPE (220, FLAG(UPSTREAM)),
+  GST_EVENT_STEP                  = GST_EVENT_MAKE_TYPE (230, FLAG(UPSTREAM)),
+  GST_EVENT_RECONFIGURE           = GST_EVENT_MAKE_TYPE (240, FLAG(UPSTREAM)),
+  GST_EVENT_TOC_SELECT            = GST_EVENT_MAKE_TYPE (250, FLAG(UPSTREAM)),
 
   /* custom events start here */
-  GST_EVENT_CUSTOM_UPSTREAM       = GST_EVENT_MAKE_TYPE (32, 0, FLAG(UPSTREAM)),
-  GST_EVENT_CUSTOM_DOWNSTREAM     = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-  GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM)),
-  GST_EVENT_CUSTOM_BOTH           = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
-  GST_EVENT_CUSTOM_BOTH_OOB       = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH))
+  GST_EVENT_CUSTOM_UPSTREAM          = GST_EVENT_MAKE_TYPE (270, FLAG(UPSTREAM)),
+  GST_EVENT_CUSTOM_DOWNSTREAM        = GST_EVENT_MAKE_TYPE (280, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_EVENT_CUSTOM_DOWNSTREAM_OOB    = GST_EVENT_MAKE_TYPE (290, FLAG(DOWNSTREAM)),
+  GST_EVENT_CUSTOM_DOWNSTREAM_STICKY = GST_EVENT_MAKE_TYPE (300, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_CUSTOM_BOTH              = GST_EVENT_MAKE_TYPE (310, FLAG(BOTH) | FLAG(SERIALIZED)),
+  GST_EVENT_CUSTOM_BOTH_OOB          = GST_EVENT_MAKE_TYPE (320, FLAG(BOTH))
 } GstEventType;
 </pre>
 <p>
@@ -387,12 +453,25 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-STREAM-START:CAPS"></a><span class="term"><code class="literal">GST_EVENT_STREAM_START</code></span></p></td>
+<td>Event to mark the start of a new stream. Sent before any
+                other serialized event and only sent at the start of a new stream,
+                not after flushing seeks.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-EVENT-CAPS"></a><span class="term"><code class="literal">GST_EVENT_CAPS</code></span></p></td>
 <td>
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> event. Notify the pad of a new media type.
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-STREAM-CONFIG:CAPS"></a><span class="term"><code class="literal">GST_EVENT_STREAM_CONFIG</code></span></p></td>
+<td>contains configuration information for the stream,
+                for example stream-headers and codec-data.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-EVENT-SEGMENT:CAPS"></a><span class="term"><code class="literal">GST_EVENT_SEGMENT</code></span></p></td>
 <td>A new media segment follows in the dataflow. The
                 segment events contains information for clipping buffers and
@@ -426,6 +505,22 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-TOC:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TOC</code></span></p></td>
+<td>An event which indicates that a new table of contents (TOC)
+                was found or updated. Since: 0.10.37
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-EVENT-SEGMENT-DONE:CAPS"></a><span class="term"><code class="literal">GST_EVENT_SEGMENT_DONE</code></span></p></td>
+<td>(unimplemented) Marks the end of a segment playback.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-EVENT-GAP:CAPS"></a><span class="term"><code class="literal">GST_EVENT_GAP</code></span></p></td>
+<td>(unimplemented) Marks a gap in the datastream.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-EVENT-QOS:CAPS"></a><span class="term"><code class="literal">GST_EVENT_QOS</code></span></p></td>
 <td>A quality message. Used to indicate to upstream elements
                 that the downstream elements should adjust their processing
@@ -464,6 +559,12 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-TOC-SELECT:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TOC_SELECT</code></span></p></td>
+<td>A request for a new playback position based on TOC
+                       entry's UID. Since 0.10.37
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-EVENT-CUSTOM-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_UPSTREAM</code></span></p></td>
 <td>Upstream custom event
 </td>
@@ -480,6 +581,11 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-EVENT-CUSTOM-DOWNSTREAM-STICKY:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_DOWNSTREAM_STICKY</code></span></p></td>
+<td>Custom sticky downstream event.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-EVENT-CUSTOM-BOTH:CAPS"></a><span class="term"><code class="literal">GST_EVENT_CUSTOM_BOTH</code></span></p></td>
 <td>Custom upstream or downstream event.
                         In-band when travelling downstream.
@@ -495,15 +601,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-EVENT-TRACE-NAME:CAPS"></a><h3>GST_EVENT_TRACE_NAME</h3>
-<pre class="programlisting">#define GST_EVENT_TRACE_NAME    "GstEvent"
-</pre>
-<p>
-The name used for memory allocation tracing
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-EVENT-TYPE:CAPS"></a><h3>GST_EVENT_TYPE()</h3>
 <pre class="programlisting">#define GST_EVENT_TYPE(event)           (GST_EVENT_CAST(event)-&gt;type)
 </pre>
@@ -736,8 +833,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-event-replace"></a><h3>gst_event_replace()</h3>
-<pre class="programlisting">#define             gst_event_replace(old_event,new_event)</pre>
+<a name="gst-event-replace"></a><h3>gst_event_replace ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_event_replace                   (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to point to a different <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. The
 modification is done atomically (so this is useful for ensuring thread safety
@@ -794,8 +892,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-event-steal"></a><h3>gst_event_steal()</h3>
-<pre class="programlisting">#define             gst_event_steal(old_event)</pre>
+<a name="gst-event-steal"></a><h3>gst_event_steal ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_steal                     (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>);</pre>
 <p>
 Atomically replace the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> pointed to by <em class="parameter"><code>old_event</code></em> with NULL and
 return the original event.
@@ -819,11 +917,12 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-event-take"></a><h3>gst_event_take()</h3>
-<pre class="programlisting">#define             gst_event_take(old_event,new_event)</pre>
+<a name="gst-event-take"></a><h3>gst_event_take ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_event_take                      (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> **old_event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *new_event</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to point to a different <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. This
-function is similar to <a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace()"><code class="function">gst_event_replace()</code></a> except that it takes ownership of
+function is similar to <a class="link" href="gstreamer-GstEvent.html#gst-event-replace" title="gst_event_replace ()"><code class="function">gst_event_replace()</code></a> except that it takes ownership of
 <em class="parameter"><code>new_event</code></em>.
 </p>
 <p>
@@ -1018,7 +1117,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-get-seqnum"></a><h3>gst_event_get_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_event_get_seqnum                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_event_get_seqnum                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
 <p>
 Retrieve the sequence number of a event.
 </p>
@@ -1055,7 +1154,7 @@
 <div class="refsect2">
 <a name="gst-event-set-seqnum"></a><h3>gst_event_set_seqnum ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_set_seqnum                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> seqnum</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);</pre>
 <p>
 Set the sequence number of a event.
 </p>
@@ -1092,9 +1191,9 @@
 </p>
 <p>
 It marks pads as being flushing and will make them return
-<a class="link" href="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a> when used for data flow with <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a>,
-<a class="link" href="GstPad.html#gst-pad-chain" title="gst_pad_chain ()"><code class="function">gst_pad_chain()</code></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-alloc-buffer"><code class="function">gst_pad_alloc_buffer()</code></a>, <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()"><code class="function">gst_pad_get_range()</code></a> and
-<a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a>. Any event (except a <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS"><span class="type">GST_EVENT_FLUSH_STOP</span></a>) received
+<a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when used for data flow with <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a>,
+<a class="link" href="GstPad.html#gst-pad-chain" title="gst_pad_chain ()"><code class="function">gst_pad_chain()</code></a>, <a class="link" href="GstPad.html#gst-pad-get-range" title="gst_pad_get_range ()"><code class="function">gst_pad_get_range()</code></a> and <a class="link" href="GstPad.html#gst-pad-pull-range" title="gst_pad_pull_range ()"><code class="function">gst_pad_pull_range()</code></a>.
+Any event (except a <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS"><span class="type">GST_EVENT_FLUSH_STOP</span></a>) received
 on a flushing pad will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> immediately.
 </p>
 <p>
@@ -1177,7 +1276,7 @@
 <p>
 Create a new EOS event. The eos event can only travel downstream
 synchronized with the buffer flow. Elements that receive the EOS
-event on a pad can return <a class="link" href="GstPad.html#GST-FLOW-UNEXPECTED:CAPS"><span class="type">GST_FLOW_UNEXPECTED</span></a> as a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a>
+event on a pad can return <a class="link" href="GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> as a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a>
 when data after the EOS event arrives.
 </p>
 <p>
@@ -1203,8 +1302,97 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-event-new-gap"></a><h3>gst_event_new_gap ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_gap                   (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>);</pre>
+<p>
+Create a new GAP event. A gap event can be thought of as conceptually
+equivalent to a buffer to signal that there is no data for a certain
+amount of time. This is useful to signal a gap to downstream elements
+which may wait for data, such as muxers or mixers or overlays, especially
+for sparse streams such as subtitle streams.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the start time (pts) of the gap</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
+<td>the duration of the gap</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new GAP event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-gap"></a><h3>gst_event_parse_gap ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_gap                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *duration</code></em>);</pre>
+<p>
+Extract timestamp and duration from a new GAP event.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> of type <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-GAP:CAPS"><span class="type">GST_EVENT_GAP</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>location where to store the
+start time (pts) of the gap, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
+<td>location where to store the duration of
+the gap, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-stream-start"></a><h3>gst_event_new_stream_start ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_stream_start          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create a new STREAM_START event. The stream start event can only
+travel downstream synchronized with the buffer flow. It is expected
+to be the first event that is sent for a new stream.
+</p>
+<p>
+Source elements, demuxers and other elements that create new streams
+are supposed to send this event as the first event of a new stream. It
+should not be send after a flushing seek or in similar situations
+and is used to mark the beginning of a new logical stream. Elements
+combining multiple streams must ensure that this event is only forwarded
+downstream once and not for every single input stream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new STREAM_START event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-event-new-segment"></a><h3>gst_event_new_segment ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_segment               (<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_segment               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);</pre>
 <p>
 Create a new SEGMENT event for <em class="parameter"><code>segment</code></em>. The segment event can only travel
 downstream synchronized with the buffer flow and contains timing information
@@ -1249,7 +1437,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>
+<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1363,8 +1551,8 @@
 <div class="refsect2">
 <a name="gst-event-new-buffer-size"></a><h3>gst_event_new_buffer_size ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_buffer_size           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> minsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> async</code></em>);</pre>
 <p>
 Create a new buffersize event. The event is sent downstream and notifies
@@ -1405,8 +1593,8 @@
 <a name="gst-event-parse-buffer-size"></a><h3>gst_event_parse_buffer_size ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_buffer_size         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *minsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *minsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *async</code></em>);</pre>
 <p>
 Get the format, minsize, maxsize and async-flag in the buffersize event.
@@ -1614,9 +1802,8 @@
 <pre class="programlisting">typedef enum {
   /* one of these */
   GST_SEEK_TYPE_NONE            = 0,
-  GST_SEEK_TYPE_CUR             = 1,
-  GST_SEEK_TYPE_SET             = 2,
-  GST_SEEK_TYPE_END             = 3
+  GST_SEEK_TYPE_SET             = 1,
+  GST_SEEK_TYPE_END             = 2
 } GstSeekType;
 </pre>
 <p>
@@ -1632,14 +1819,6 @@
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-SEEK-TYPE-CUR:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_CUR</code></span></p></td>
-<td>change relative to currently configured segment. This
-   can't be used to seek relative to the current playback position - do a
-   position query, calculate the desired position and then do an absolute
-   position seek instead if that's what you want to do.
-</td>
-</tr>
-<tr>
 <td><p><a name="GST-SEEK-TYPE-SET:CAPS"></a><span class="term"><code class="literal">GST_SEEK_TYPE_SET</code></span></p></td>
 <td>absolute position is requested
 </td>
@@ -1743,9 +1922,9 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
 <p>
 Allocate a new seek event with the given parameters.
 </p>
@@ -1833,9 +2012,9 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> *flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> *stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);</pre>
 <p>
 Parses a seek <em class="parameter"><code>event</code></em> and stores the results in the given result locations.
 </p>
@@ -1965,7 +2144,7 @@
 <div class="refsect2">
 <a name="gst-event-new-step"></a><h3>gst_event_new_step ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_step                  (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);</pre>
@@ -1975,8 +2154,9 @@
 stepping through the video frame by frame or for doing fast trick modes.
 </p>
 <p>
-A rate of &lt;= 0.0 is not allowed, pause the pipeline or reverse the playback
-direction of the pipeline to get the same effect.
+A rate of &lt;= 0.0 is not allowed. Pause the pipeline, for the effect of rate
+= 0.0 or first reverse the direction of playback using a seek event to get
+the same effect as rate &lt; 0.0.
 </p>
 <p>
 The <em class="parameter"><code>flush</code></em> flag will clear any pending data in the pipeline before starting
@@ -2024,7 +2204,7 @@
 <a name="gst-event-parse-step"></a><h3>gst_event_parse_step ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_step                (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);</pre>
@@ -2152,7 +2332,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2187,6 +2367,332 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstStreamConfigFlags"></a><h3>enum GstStreamConfigFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_STREAM_CONFIG_FLAG_NONE = 0
+} GstStreamConfigFlags;
+</pre>
+<p>
+GstStreamConfigFlags are flags passed with the stream config event, see
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-config" title="gst_event_new_stream_config ()"><code class="function">gst_event_new_stream_config()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><a name="GST-STREAM-CONFIG-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_STREAM_CONFIG_FLAG_NONE</code></span></p></td>
+<td>no flags set
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-stream-config"></a><h3>gst_event_new_stream_config ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_stream_config         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags"><span class="type">GstStreamConfigFlags</span></a> flags</code></em>);</pre>
+<p>
+Create a new STREAM CONFIG event. The stream config event travels
+downstream synchronized with the buffer flow and contains stream
+configuration information for the stream, such as stream-headers
+or setup-data. It is optional and should be sent after the CAPS
+event.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>the stream config flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new STREAM CONFIG event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-stream-config"></a><h3>gst_event_parse_stream_config ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_stream_config       (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstStreamConfigFlags" title="enum GstStreamConfigFlags"><span class="type">GstStreamConfigFlags</span></a> *flags</code></em>);</pre>
+<p>
+Get the stream config flags from <em class="parameter"><code>event</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>The event to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>a pointer to a variable to store the stream config flags. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-set-stream-config-setup-data"></a><h3>gst_event_set_stream_config_setup_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_set_stream_config_setup_data
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>
+Set setup data on the stream info event to signal out of bound setup data
+to downstream elements. Unlike stream headers, setup data contains data
+that is required to interpret the data stream, but is not valid as-is
+inside the data stream and thus can't just be prepended to or inserted
+into the data stream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream config event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> with setup data</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-stream-config-setup-data"></a><h3>gst_event_parse_stream_config_setup_data ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_event_parse_stream_config_setup_data
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buf</code></em>);</pre>
+<p>
+Extracts the setup data buffer from the stream info event. Will store
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in <em class="parameter"><code>buf</code></em> if the event contains no setup data. The buffer returned
+will remain valid as long as <em class="parameter"><code>event</code></em> remains valid. The caller should
+acquire a reference to to <em class="parameter"><code>buf</code></em> if needed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream config event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>location where to store the <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> with setup data. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>event</code></em> contained setup data and <em class="parameter"><code>buf</code></em> has been set,
+otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-add-stream-config-header"></a><h3>gst_event_add_stream_config_header ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_add_stream_config_header  (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>
+Adds a stream header to the stream info event to signal stream headers to
+to downstream elements such as multifilesink, tcpserversink etc. Stream
+headers can be and should usually be prepended to the data stream at any
+point in the stream (which requires a streamable format), e.g. to a new
+client connecting, or when starting a new file segment. stream header
+buffers will all be used together in the order they were added to the
+stream config event. Stream headers are sent as buffers at the beginning
+of the data flow in addition to the stream config event. Elements that
+care about stream headers need to make sure that they don't insert or
+interpret these header buffers twice if they interpret them.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream config event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> with stream header data</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-get-n-stream-config-headers"></a><h3>gst_event_get_n_stream_config_headers ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_event_get_n_stream_config_headers
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
+<p>
+Extract the number of stream header buffers.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream config event</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of stream header buffers attached to the stream info
+<em class="parameter"><code>event</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-nth-stream-config-header"></a><h3>gst_event_parse_nth_stream_config_header ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_event_parse_nth_stream_config_header
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buf</code></em>);</pre>
+<p>
+Retrieves the n-th stream header buffer attached to the stream config
+event and stores it in <em class="parameter"><code>buf</code></em>. Will store <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in <em class="parameter"><code>buf</code></em> if there is no such
+stream header.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream config event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>number of the stream header to retrieve</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>location where to store the n-th stream
+header <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>event</code></em> contained a stream header at <em class="parameter"><code>index</code></em> and <em class="parameter"><code>buf</code></em> has
+been set, otherwise FALSE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-toc"></a><h3>gst_event_new_toc ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_toc                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);</pre>
+<p>
+Generate a TOC event from the given <em class="parameter"><code>toc</code></em>. The purpose of the TOC event is to
+inform elements that some kind of the TOC was found.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
+<td>whether <em class="parameter"><code>toc</code></em> was updated or not.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-toc"></a><h3>gst_event_parse_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_toc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
+<p>
+Parse a TOC <em class="parameter"><code>event</code></em> and store the results in the given <em class="parameter"><code>toc</code></em> and <em class="parameter"><code>updated</code></em> locations.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a TOC event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>pointer to <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
+<td>pointer to store TOC updated flag. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-toc-select"></a><h3>gst_event_new_toc_select ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_toc_select            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<p>
+Generate a TOC select event with the given <em class="parameter"><code>uid</code></em>. The purpose of the
+TOC select event is to start playback based on the TOC's entry with the
+given <em class="parameter"><code>uid</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>UID in the TOC to start playback from.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-toc-select"></a><h3>gst_event_parse_toc_select ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_toc_select          (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uid</code></em>);</pre>
+<p>
+Parse a TOC select <em class="parameter"><code>event</code></em> and store the results in the given <em class="parameter"><code>uid</code></em> location.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a TOC select event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>storage for the selection UID. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstEvent.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstFilter.html b/docs/gst/html/gstreamer-GstFilter.html
deleted file mode 100644
index e03df27..0000000
--- a/docs/gst/html/gstreamer-GstFilter.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstFilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="gstreamer-GstEvent.html" title="GstEvent">
-<link rel="next" href="gstreamer-GstFormat.html" title="GstFormat">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-GstEvent.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstFormat.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gstreamer-GstFilter.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gstreamer-GstFilter.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gstreamer-GstFilter"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-GstFilter.top_of_page"></a>GstFilter</span></h2>
-<p>GstFilter — A utility function to filter GLists.</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gstreamer-GstFilter.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/gst.h&gt;
-
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstFilter.html#GstFilterFunc" title="GstFilterFunc ()">*GstFilterFunc</a>)                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()">gst_filter_run</a>                      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFilter.html#GstFilterFunc" title="GstFilterFunc ()"><span class="type">GstFilterFunc</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> first</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstFilter.description"></a><h2>Description</h2>
-<p>
-</p>
-<div class="example">
-<a name="id438346"></a><p class="title"><b>Example 9. Filtering a list</b></p>
-<div class="example-contents"><pre class="programlisting">
-    GList *node;
-    GstObject *result = NULL;
-    
-    node = gst_filter_run (list, (GstFilterFunc) my_filter, TRUE, NULL);
-    if (node) {
-      result = GST_OBJECT (node-&gt;data);
-      gst_object_ref (result);
-      g_list_free (node);
-    }
-  </pre></div>
-</div>
-<p><br class="example-break">
-</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstFilter.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstFilterFunc"></a><h3>GstFilterFunc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstFilterFunc)                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Function prototype for a filter callback that can be use in <a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()"><code class="function">gst_filter_run()</code></a>.
-The function should apply its filtering to <em class="parameter"><code>obj</code></em>. Additional data passed to
-<a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()"><code class="function">gst_filter_run()</code></a> are in <em class="parameter"><code>data</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>the object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>filter data</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-filter-run"></a><h3>gst_filter_run ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_filter_run                      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstFilter.html#GstFilterFunc" title="GstFilterFunc ()"><span class="type">GstFilterFunc</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> first</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Iterates over the elements in <em class="parameter"><code>list</code></em>, calling <em class="parameter"><code>func</code></em> with the
-list item data for each item.  If <em class="parameter"><code>func</code></em> returns TRUE, <em class="parameter"><code>data</code></em> is
-prepended to the list of results returned.  If <em class="parameter"><code>first</code></em> is true,
-the search is halted after the first result is found.
-</p>
-<p>
-Since <a class="link" href="gstreamer-GstFilter.html#gst-filter-run" title="gst_filter_run ()"><code class="function">gst_filter_run()</code></a> knows nothing about the type of <em class="parameter"><code>data</code></em>, no
-reference will be taken (if <em class="parameter"><code>data</code></em> refers to an object) and no copy of
-<em class="parameter"><code>data</code></em> wil be made in any other way when prepending <em class="parameter"><code>data</code></em> to the list of
-results.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a linked list</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function to execute for each item. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>first</code></em> :</span></p></td>
-<td>flag to stop execution after a successful item</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the list of results. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>
-when no longer needed (the data contained in the list is a flat copy
-and does need to be unreferenced or freed). <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstFormat.html b/docs/gst/html/gstreamer-GstFormat.html
index 3c10658..f763b9c 100644
--- a/docs/gst/html/gstreamer-GstFormat.html
+++ b/docs/gst/html/gstreamer-GstFormat.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstFormat</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="gstreamer-GstFilter.html" title="GstFilter">
+<link rel="prev" href="gstreamer-GstEvent.html" title="GstEvent">
 <link rel="next" href="GstGhostPad.html" title="GstGhostPad">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="gstreamer-GstFilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-GstEvent.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstGhostPad.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -68,12 +68,12 @@
 <div class="refsect2">
 <a name="GstFormat"></a><h3>enum GstFormat</h3>
 <pre class="programlisting">typedef enum {
-  GST_FORMAT_UNDEFINED 	=  0, /* must be first in list */
-  GST_FORMAT_DEFAULT   	=  1,
-  GST_FORMAT_BYTES   	=  2,
-  GST_FORMAT_TIME 	=  3,
-  GST_FORMAT_BUFFERS =  4,
-  GST_FORMAT_PERCENT =  5
+  GST_FORMAT_UNDEFINED  =  0, /* must be first in list */
+  GST_FORMAT_DEFAULT    =  1,
+  GST_FORMAT_BYTES      =  2,
+  GST_FORMAT_TIME       =  3,
+  GST_FORMAT_BUFFERS    =  4,
+  GST_FORMAT_PERCENT    =  5
 } GstFormat;
 </pre>
 <p>
@@ -123,7 +123,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-FORMAT-PERCENT-MAX:CAPS"></a><h3>GST_FORMAT_PERCENT_MAX</h3>
-<pre class="programlisting">#define GST_FORMAT_PERCENT_MAX		G_GINT64_CONSTANT (1000000)
+<pre class="programlisting">#define GST_FORMAT_PERCENT_MAX          G_GINT64_CONSTANT (1000000)
 </pre>
 <p>
 The PERCENT format is between 0 and this value
@@ -132,7 +132,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-FORMAT-PERCENT-SCALE:CAPS"></a><h3>GST_FORMAT_PERCENT_SCALE</h3>
-<pre class="programlisting">#define GST_FORMAT_PERCENT_SCALE G_GINT64_CONSTANT (10000)
+<pre class="programlisting">#define GST_FORMAT_PERCENT_SCALE        G_GINT64_CONSTANT (10000)
 </pre>
 <p>
 The value used to scale down the reported PERCENT format value to
diff --git a/docs/gst/html/gstreamer-GstGError.html b/docs/gst/html/gstreamer-GstGError.html
index 07acb33..392a39e 100644
--- a/docs/gst/html/gstreamer-GstGError.html
+++ b/docs/gst/html/gstreamer-GstGError.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstGError</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstElementFactory.html" title="GstElementFactory">
 <link rel="next" href="gstreamer-GstEvent.html" title="GstEvent">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstElementFactory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstEvent.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -115,11 +115,20 @@
 <p>
 </p>
 <div class="example">
-<a name="id461342"></a><p class="title"><b>Example 7. Throwing an error</b></p>
-<div class="example-contents"><pre class="programlisting">
-    GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND,
-      (_("No file name specified for reading.")), (NULL));
-  </pre></div>
+<a name="idp12241824"></a><p class="title"><b>Example 7. Throwing an error</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/GstElement.html#GST-ELEMENT-ERROR:CAPS">GST_ELEMENT_ERROR</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> RESOURCE<span class="gtkdoc opt">,</span> NOT_FOUND<span class="gtkdoc opt">,</span>
+  <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;No file name specified for reading.&quot;</span><span class="gtkdoc opt">)), (</span>NULL<span class="gtkdoc opt">));</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
diff --git a/docs/gst/html/gstreamer-GstInfo.html b/docs/gst/html/gstreamer-GstInfo.html
index f1819f8..8362c59 100644
--- a/docs/gst/html/gstreamer-GstInfo.html
+++ b/docs/gst/html/gstreamer-GstInfo.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstInfo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="gstreamer-support.html" title="GStreamer Core Support">
 <link rel="prev" href="gstreamer-support.html" title="GStreamer Core Support">
-<link rel="next" href="gstreamer-GstTrace.html" title="GstTrace">
+<link rel="next" href="gstreamer-hierarchy.html" title="Object Hierarchy">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="gstreamer-support.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-support.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstTrace.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-hierarchy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-GstInfo.synopsis" class="shortcut">Top</a>
@@ -204,6 +204,12 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-print-stack-trace" title="gst_debug_print_stack_trace ()">gst_debug_print_stack_trace</a>         (<em class="parameter"><code><span class="type">void</span></code></em>);
 #define             <a class="link" href="gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS" title="GST_TIME_FORMAT">GST_TIME_FORMAT</a>
 #define             <a class="link" href="gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS" title="GST_TIME_ARGS()">GST_TIME_ARGS</a>                       (t)
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file" title="gst_debug_bin_to_dot_file ()">gst_debug_bin_to_dot_file</a>           (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugGraphDetails" title="enum GstDebugGraphDetails"><span class="type">GstDebugGraphDetails</span></a> details</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file_name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts" title="gst_debug_bin_to_dot_file_with_ts ()">gst_debug_bin_to_dot_file_with_ts</a>   (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugGraphDetails" title="enum GstDebugGraphDetails"><span class="type">GstDebugGraphDetails</span></a> details</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file_name</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -237,17 +243,35 @@
 declare
 the variables and set the default category.
 </p>
-<div class="informalexample"><pre class="programlisting">
-GST_DEBUG_CATEGORY_STATIC (my_category);     // define category (statically)
-#define GST_CAT_DEFAULT my_category     // set as default
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">);</span>     <span class="gtkdoc slc">// define category (statically)</span>
+<span class="gtkdoc ppc">#define GST_CAT_DEFAULT my_category</span>     <span class="gtkdoc slc">// set as default</span><span class="gtkdoc ppc"></span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 After that you only need to initialize the category.
 </p>
-<div class="informalexample"><pre class="programlisting">
-GST_DEBUG_CATEGORY_INIT (my_category, "my category",
-                         0, "This is my very own");
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">,</span> <span class="string">&quot;my category&quot;</span><span class="gtkdoc opt">,</span>
+                         <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="string">&quot;This is my very own&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 Initialization must be done before the category is used first.
 Plugins do this
@@ -280,12 +304,12 @@
 <a name="GstDebugLevel"></a><h3>enum GstDebugLevel</h3>
 <pre class="programlisting">typedef enum {
   GST_LEVEL_NONE = 0,
-  GST_LEVEL_ERROR,
-  GST_LEVEL_WARNING,
-  GST_LEVEL_INFO,
-  GST_LEVEL_DEBUG,
-  GST_LEVEL_LOG,
-  GST_LEVEL_FIXME = 6,
+  GST_LEVEL_ERROR = 1,
+  GST_LEVEL_WARNING = 2,
+  GST_LEVEL_FIXME = 3,
+  GST_LEVEL_INFO = 4,
+  GST_LEVEL_DEBUG = 5,
+  GST_LEVEL_LOG = 6,
   GST_LEVEL_TRACE = 7,
   /* add more */
   GST_LEVEL_MEMDUMP = 9,
@@ -323,6 +347,15 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-LEVEL-FIXME:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_FIXME</code></span></p></td>
+<td>Fixme messages are messages that indicate that something
+ in the executed code path is not fully implemented or handled yet. Note
+ that this does not replace proper error handling in any way, the purpose
+ of this message is to make it easier to spot incomplete/unfinished pieces
+ of code when reading the debug log. (Since: 0.10.23)
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-LEVEL-INFO:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_INFO</code></span></p></td>
 <td>Informational messages should be used to keep the developer
  updated about what is happening.
@@ -351,15 +384,6 @@
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-LEVEL-FIXME:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_FIXME</code></span></p></td>
-<td>Fixme messages are messages that indicate that something
- in the executed code path is not fully implemented or handled yet. Note
- that this does not replace proper error handling in any way, the purpose
- of this message is to make it easier to spot incomplete/unfinished pieces
- of code when reading the debug log. (Since: 0.10.23)
-</td>
-</tr>
-<tr>
 <td><p><a name="GST-LEVEL-TRACE:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_TRACE</code></span></p></td>
 <td>Tracing-related messages (Since: 0.10.30)
  Examples for this are referencing/dereferencing of objects.
@@ -1233,14 +1257,27 @@
 </p>
 <p>
 </p>
-<div class="informalexample"><pre class="programlisting">
-GST_DEBUG_CATEGORY_STATIC (gst_myplugin_debug);
-#define GST_CAT_DEFAULT gst_myplugin_debug
-GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
-...
-GST_DEBUG_CATEGORY_INIT (gst_myplugin_debug, "myplugin", 0, "nice element");
-GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">);</span>
+<span class="gtkdoc ppc">#define GST_CAT_DEFAULT gst_myplugin_debug</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">,</span> <span class="string">&quot;myplugin&quot;</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="string">&quot;nice element&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS">GST_DEBUG_CATEGORY_GET</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">,</span> <span class="string">&quot;GST_PERFORMANCE&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <div class="variablelist"><table border="0">
@@ -2314,16 +2351,24 @@
 <hr>
 <div class="refsect2">
 <a name="GST-DEBUG-BIN-TO-DOT-FILE:CAPS"></a><h3>GST_DEBUG_BIN_TO_DOT_FILE()</h3>
-<pre class="programlisting">#define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) _gst_debug_bin_to_dot_file (bin, details, file_name)
+<pre class="programlisting">#define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) gst_debug_bin_to_dot_file (bin, details, file_name)
 </pre>
 <p>
 To aid debugging applications one can use this method to write out the whole
 network of gstreamer elements that form the pipeline into an dot file.
 This file can be processed with graphviz to get an image.
 </p>
-<div class="informalexample"><pre class="programlisting">
- dot -Tpng -oimage.png graph_lowlevel.dot
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">dot <span class="gtkdoc opt">-</span>Tpng <span class="gtkdoc opt">-</span>oimage<span class="gtkdoc opt">.</span>png graph_lowlevel<span class="gtkdoc opt">.</span>dot</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -2354,7 +2399,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS"></a><h3>GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()</h3>
-<pre class="programlisting">#define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) _gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)
+<pre class="programlisting">#define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)
 </pre>
 <p>
 This works like <a class="link" href="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS" title="GST_DEBUG_BIN_TO_DOT_FILE()"><code class="function">GST_DEBUG_BIN_TO_DOT_FILE()</code></a>, but adds the current timestamp
@@ -2402,9 +2447,17 @@
 <p>
 Example:
 </p>
-<div class="informalexample"><pre class="programlisting">
-printf("%" GST_TIME_FORMAT "\n", GST_TIME_ARGS(ts));
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span><span class="gtkdoc opt">(</span><span class="string">&quot;%&quot;</span> GST_TIME_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span><span class="gtkdoc opt">(</span>ts<span class="gtkdoc opt">));</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 </div>
@@ -2425,6 +2478,20 @@
 </tr></tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-debug-bin-to-dot-file"></a><h3>gst_debug_bin_to_dot_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_debug_bin_to_dot_file           (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugGraphDetails" title="enum GstDebugGraphDetails"><span class="type">GstDebugGraphDetails</span></a> details</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file_name</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-debug-bin-to-dot-file-with-ts"></a><h3>gst_debug_bin_to_dot_file_with_ts ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_debug_bin_to_dot_file_with_ts   (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugGraphDetails" title="enum GstDebugGraphDetails"><span class="type">GstDebugGraphDetails</span></a> details</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file_name</code></em>);</pre>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstInfo.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstIterator.html b/docs/gst/html/gstreamer-GstIterator.html
index 829d63b..ef661c6 100644
--- a/docs/gst/html/gstreamer-GstIterator.html
+++ b/docs/gst/html/gstreamer-GstIterator.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstIterator</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="GstIndexFactory.html" title="GstIndexFactory">
+<link rel="prev" href="GstGhostPad.html" title="GstGhostPad">
 <link rel="next" href="gstreamer-GstMemory.html" title="GstMemory">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="GstIndexFactory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstGhostPad.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstMemory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -64,7 +64,7 @@
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="gstreamer-GstIterator.html#gst-iterator-new" title="gst_iterator_new ()">gst_iterator_new</a>                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> *lock</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *master_cookie</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *master_cookie</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorCopyFunction" title="GstIteratorCopyFunction ()"><span class="type">GstIteratorCopyFunction</span></a> copy</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorNextFunction" title="GstIteratorNextFunction ()"><span class="type">GstIteratorNextFunction</span></a> next</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorItemFunction" title="GstIteratorItemFunction ()"><span class="type">GstIteratorItemFunction</span></a> item</code></em>,
@@ -72,7 +72,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorFreeFunction" title="GstIteratorFreeFunction ()"><span class="type">GstIteratorFreeFunction</span></a> free</code></em>);
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="gstreamer-GstIterator.html#gst-iterator-new-list" title="gst_iterator_new_list ()">gst_iterator_new_list</a>               (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> *lock</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *master_cookie</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *master_cookie</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *owner</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorItemFunction" title="GstIteratorItemFunction ()"><span class="type">GstIteratorItemFunction</span></a> item</code></em>);
@@ -122,32 +122,62 @@
 <p>
 </p>
 <div class="example">
-<a name="id552514"></a><p class="title"><b>Example 10. Using an iterator</b></p>
-<div class="example-contents"><pre class="programlisting">
-   it = _get_iterator(object);
-   done = FALSE;
-   while (!done) {
-     switch (gst_iterator_next (it, &amp;item)) {
-       case GST_ITERATOR_OK:
-         ... use/change item here...
-         g_value_reset (&amp;item);
-         break;
-       case GST_ITERATOR_RESYNC:
-         ...rollback changes to items...
-         gst_iterator_resync (it);
-         break;
-       case GST_ITERATOR_ERROR:
-         ...wrong parameters were given...
-         done = TRUE;
-         break;
-       case GST_ITERATOR_DONE:
-         done = TRUE;
-         break;
-     }
-   }
-   g_value_unset (&amp;item);
-   gst_iterator_free (it);
-  </pre></div>
+<a name="idp19843648"></a><p class="title"><b>Example 9. Using an iterator</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23</pre></td>
+        <td class="listing_code"><pre class="programlisting">it <span class="gtkdoc opt">=</span> <span class="function">_get_iterator</span><span class="gtkdoc opt">(</span>object<span class="gtkdoc opt">);</span>
+done <span class="gtkdoc opt">=</span> FALSE<span class="gtkdoc opt">;</span>
+<span class="keyword">while</span> <span class="gtkdoc opt">(!</span>done<span class="gtkdoc opt">) {</span>
+  <span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-next">gst_iterator_next</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">, &amp;</span>item<span class="gtkdoc opt">)) {</span>
+    <span class="keyword">case</span> GST_ITERATOR_OK<span class="gtkdoc opt">:</span>
+      <span class="gtkdoc opt">...</span> use<span class="gtkdoc opt">/</span>change item here<span class="gtkdoc opt">...</span>
+      <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-reset">g_value_reset</a></span> <span class="gtkdoc opt">(&amp;</span>item<span class="gtkdoc opt">);</span>
+      <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+    <span class="keyword">case</span> GST_ITERATOR_RESYNC<span class="gtkdoc opt">:</span>
+      <span class="gtkdoc opt">...</span>rollback changes to items<span class="gtkdoc opt">...</span>
+      <span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-resync">gst_iterator_resync</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span>
+      <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+    <span class="keyword">case</span> GST_ITERATOR_ERROR<span class="gtkdoc opt">:</span>
+      <span class="gtkdoc opt">...</span>wrong parameters were given<span class="gtkdoc opt">...</span>
+      done <span class="gtkdoc opt">=</span> TRUE<span class="gtkdoc opt">;</span>
+      <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+    <span class="keyword">case</span> GST_ITERATOR_DONE<span class="gtkdoc opt">:</span>
+      done <span class="gtkdoc opt">=</span> TRUE<span class="gtkdoc opt">;</span>
+      <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+  <span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">}</span>
+<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset">g_value_unset</a></span> <span class="gtkdoc opt">(&amp;</span>item<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-free">gst_iterator_free</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -163,7 +193,7 @@
 };
 </pre>
 <p>
-<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> base structure. The values of this structure are 
+<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> base structure. The values of this structure are
 protected for subclasses, use the methods to use the <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a>.
 </p>
 <div class="variablelist"><table border="0">
@@ -175,9 +205,9 @@
 <div class="refsect2">
 <a name="GstIteratorItem"></a><h3>enum GstIteratorItem</h3>
 <pre class="programlisting">typedef enum {
-  GST_ITERATOR_ITEM_SKIP = 0,
-  GST_ITERATOR_ITEM_PASS = 1,
-  GST_ITERATOR_ITEM_END		= 2
+  GST_ITERATOR_ITEM_SKIP        = 0,
+  GST_ITERATOR_ITEM_PASS        = 1,
+  GST_ITERATOR_ITEM_END         = 2
 } GstIteratorItem;
 </pre>
 <p>
@@ -208,10 +238,10 @@
 <div class="refsect2">
 <a name="GstIteratorResult"></a><h3>enum GstIteratorResult</h3>
 <pre class="programlisting">typedef enum {
-  GST_ITERATOR_DONE = 0,
-  GST_ITERATOR_OK = 1,
-  GST_ITERATOR_RESYNC = 2,
-  GST_ITERATOR_ERROR = 3
+  GST_ITERATOR_DONE     = 0,
+  GST_ITERATOR_OK       = 1,
+  GST_ITERATOR_RESYNC   = 2,
+  GST_ITERATOR_ERROR    = 3
 } GstIteratorResult;
 </pre>
 <p>
@@ -274,7 +304,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *result</code></em>);</pre>
 <p>
 The function that will be called when the next element of the iterator
-should be retrieved. 
+should be retrieved.
 </p>
 <p>
 Implementors of a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> should implement this
@@ -430,7 +460,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-ITERATOR:CAPS"></a><h3>GST_ITERATOR()</h3>
-<pre class="programlisting">#define GST_ITERATOR(it)		((GstIterator*)(it))
+<pre class="programlisting">#define GST_ITERATOR(it)                ((GstIterator*)(it))
 </pre>
 <p>
 Macro to cast to a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a>
@@ -446,7 +476,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-ITERATOR-LOCK:CAPS"></a><h3>GST_ITERATOR_LOCK()</h3>
-<pre class="programlisting">#define GST_ITERATOR_LOCK(it)		(GST_ITERATOR(it)-&gt;lock)
+<pre class="programlisting">#define GST_ITERATOR_LOCK(it)           (GST_ITERATOR(it)-&gt;lock)
 </pre>
 <p>
 Macro to get the lock protecting the datastructure being iterated.
@@ -462,7 +492,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-ITERATOR-COOKIE:CAPS"></a><h3>GST_ITERATOR_COOKIE()</h3>
-<pre class="programlisting">#define GST_ITERATOR_COOKIE(it)		(GST_ITERATOR(it)-&gt;cookie)
+<pre class="programlisting">#define GST_ITERATOR_COOKIE(it)         (GST_ITERATOR(it)-&gt;cookie)
 </pre>
 <p>
 Macro to get the cookie of a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a>. The cookie of the
@@ -483,7 +513,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-ITERATOR-ORIG-COOKIE:CAPS"></a><h3>GST_ITERATOR_ORIG_COOKIE()</h3>
-<pre class="programlisting">#define GST_ITERATOR_ORIG_COOKIE(it) (GST_ITERATOR(it)-&gt;master_cookie)
+<pre class="programlisting">#define GST_ITERATOR_ORIG_COOKIE(it)    (GST_ITERATOR(it)-&gt;master_cookie)
 </pre>
 <p>
 Macro to get a pointer to where the master cookie is stored. The
@@ -504,7 +534,7 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_iterator_new                    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> *lock</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *master_cookie</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *master_cookie</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorCopyFunction" title="GstIteratorCopyFunction ()"><span class="type">GstIteratorCopyFunction</span></a> copy</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorNextFunction" title="GstIteratorNextFunction ()"><span class="type">GstIteratorNextFunction</span></a> next</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorItemFunction" title="GstIteratorItemFunction ()"><span class="type">GstIteratorItemFunction</span></a> item</code></em>,
@@ -572,7 +602,7 @@
 <a name="gst-iterator-new-list"></a><h3>gst_iterator_new_list ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_iterator_new_list               (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GMutex"><span class="type">GMutex</span></a> *lock</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *master_cookie</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *master_cookie</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *owner</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstIterator.html#GstIteratorItemFunction" title="GstIteratorItemFunction ()"><span class="type">GstIteratorItemFunction</span></a> item</code></em>);</pre>
@@ -665,6 +695,23 @@
 <div class="refsect2">
 <a name="gst-iterator-copy"></a><h3>gst_iterator_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_iterator_copy                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> *it</code></em>);</pre>
+<p>
+Copy the iterator and its state.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>it</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new copy of <em class="parameter"><code>it</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/gstreamer-GstMemory.html b/docs/gst/html/gstreamer-GstMemory.html
index a831854..945f0e2 100644
--- a/docs/gst/html/gstreamer-GstMemory.html
+++ b/docs/gst/html/gstreamer-GstMemory.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMemory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstIterator.html" title="GstIterator">
 <link rel="next" href="gstreamer-GstMessage.html" title="GstMessage">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstIterator.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstMessage.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -40,79 +40,91 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-struct              <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory">GstMemory</a>;
-struct              <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo">GstMemoryInfo</a>;
-                    <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator">GstAllocator</a>;
-#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-WRITABLE:CAPS" title="GST_MEMORY_IS_WRITABLE()">GST_MEMORY_IS_WRITABLE</a>              (mem)
 enum                <a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags">GstMemoryFlags</a>;
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAGS:CAPS" title="GST_MEMORY_FLAGS()">GST_MEMORY_FLAGS</a>                    (mem)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS" title="GST_MEMORY_FLAG_IS_SET()">GST_MEMORY_FLAG_IS_SET</a>              (mem,
+                                                         flag)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS" title="GST_MEMORY_FLAG_UNSET()">GST_MEMORY_FLAG_UNSET</a>               (mem,
+                                                         flag)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS" title="GST_MEMORY_IS_READONLY()">GST_MEMORY_IS_READONLY</a>              (mem)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS" title="GST_MEMORY_IS_ZERO_PADDED()">GST_MEMORY_IS_ZERO_PADDED</a>           (mem)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS" title="GST_MEMORY_IS_ZERO_PREFIXED()">GST_MEMORY_IS_ZERO_PREFIXED</a>         (mem)
+struct              <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory">GstMemory</a>;
 enum                <a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags">GstMapFlags</a>;
+                    <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo">GstMapInfo</a>;
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS" title="GST_MAP_INFO_INIT">GST_MAP_INFO_INIT</a>
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS" title="GST_MAP_READWRITE">GST_MAP_READWRITE</a>
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstMemoryAllocFunction" title="GstMemoryAllocFunction ()">*GstMemoryAllocFunction</a>)           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>,
+struct              <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams">GstAllocationParams</a>;
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()">*GstAllocatorAllocFunction</a>)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               (<a class="link" href="gstreamer-GstMemory.html#GstMemoryGetSizesFunction" title="GstMemoryGetSizesFunction ()">*GstMemoryGetSizesFunction</a>)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMemory.html#GstMemoryResizeFunction" title="GstMemoryResizeFunction ()">*GstMemoryResizeFunction</a>)          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            (<a class="link" href="gstreamer-GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()">*GstMemoryMapFunction</a>)             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()">*GstMemoryUnmapFunction</a>)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()">*GstMemoryUnmapFunction</a>)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()">*GstMemoryFreeFunction</a>)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()">*GstMemoryCopyFunction</a>)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()">*GstMemoryShareFunction</a>)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()">*GstMemoryIsSpanFunction</a>)          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>);
-extern gsize        <a class="link" href="gstreamer-GstMemory.html#gst-memory-alignment" title="gst_memory_alignment">gst_memory_alignment</a>;
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()">gst_allocator_alloc</a>                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>);
+struct              <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo">GstMemoryInfo</a>;
+                    <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator">GstAllocator</a>;
+<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()">gst_allocator_new</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstMemory.html#gst-allocator-get-memory-type" title="gst_allocator_get_memory_type ()">gst_allocator_get_memory_type</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-ref" title="gst_allocator_ref ()">gst_allocator_ref</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()">gst_allocator_unref</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS" title="GST_ALLOCATOR_SYSMEM">GST_ALLOCATOR_SYSMEM</a>
+<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()">gst_allocator_find</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()">gst_allocator_register</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()">gst_allocator_set_default</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-init" title="gst_allocation_params_init ()">gst_allocation_params_init</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="returnvalue">GstAllocationParams</span></a> * <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-copy" title="gst_allocation_params_copy ()">gst_allocation_params_copy</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()">gst_allocation_params_free</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()">gst_allocator_alloc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()">gst_memory_new_wrapped</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#GFreeFunc"><span class="type">GFreeFunc</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-ref" title="gst_memory_ref ()">gst_memory_ref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()">gst_memory_unref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="gstreamer-GstMemory.html#gst-memory-get-sizes" title="gst_memory_get_sizes ()">gst_memory_get_sizes</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-exclusive" title="gst_memory_is_exclusive ()">gst_memory_is_exclusive</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstMemory.html#gst-memory-get-sizes" title="gst_memory_get_sizes ()">gst_memory_get_sizes</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *maxsize</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-resize" title="gst_memory_resize ()">gst_memory_resize</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()">gst_memory_map</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-make-mapped" title="gst_memory_make_mapped ()">gst_memory_make_mapped</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()">gst_memory_unmap</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()">gst_memory_map</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()">gst_memory_unmap</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-copy" title="gst_memory_copy ()">gst_memory_copy</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-share" title="gst_memory_share ()">gst_memory_share</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-span" title="gst_memory_is_span ()">gst_memory_is_span</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>);
-#define             <a class="link" href="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS" title="GST_ALLOCATOR_SYSMEM">GST_ALLOCATOR_SYSMEM</a>
-const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> * <a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()">gst_allocator_find</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> * <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()">gst_allocator_register</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()">gst_allocator_set_default</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -122,6 +134,12 @@
 They are typically used to manage the data of a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.
 </p>
 <p>
+A GstMemory object has an allocated region of memory of maxsize. The maximum
+size does not change during the lifetime of the memory object. The memory
+also has an offset and size property that specifies the valid range of memory
+in the allocated region.
+</p>
+<p>
 Memory is usually created by allocators with a <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()"><code class="function">gst_allocator_alloc()</code></a>
 method call. When NULL is used as the allocator, the default allocator will
 be used.
@@ -129,7 +147,8 @@
 <p>
 New allocators can be registered with <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()"><code class="function">gst_allocator_register()</code></a>.
 Allocators are identified by name and can be retrieved with
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>.
+<a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>. <a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()"><code class="function">gst_allocator_set_default()</code></a> can be used to change the
+default allocator.
 </p>
 <p>
 New memory can be created with <a class="link" href="gstreamer-GstMemory.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()"><code class="function">gst_memory_new_wrapped()</code></a> that wraps the memory
@@ -145,10 +164,11 @@
 </p>
 <p>
 Getting access to the data of the memory is performed with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a>.
+The call will return a pointer to offset bytes into the region of memory.
 After the memory access is completed, <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()"><code class="function">gst_memory_unmap()</code></a> should be called.
 </p>
 <p>
-Memory can be copied with <a class="link" href="gstreamer-GstMemory.html#gst-memory-copy" title="gst_memory_copy ()"><code class="function">gst_memory_copy()</code></a>, which will returnn a writable
+Memory can be copied with <a class="link" href="gstreamer-GstMemory.html#gst-memory-copy" title="gst_memory_copy ()"><code class="function">gst_memory_copy()</code></a>, which will return a writable
 copy. <a class="link" href="gstreamer-GstMemory.html#gst-memory-share" title="gst_memory_share ()"><code class="function">gst_memory_share()</code></a> will create a new memory block that shares the
 memory with an existing memory block at a custom offset and with a custom
 size.
@@ -157,145 +177,20 @@
 Memory can be efficiently merged when <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-span" title="gst_memory_is_span ()"><code class="function">gst_memory_is_span()</code></a> returns TRUE.
 </p>
 <p>
-Last reviewed on 2011-06-08 (0.11.0)
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstMemory.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstMemory"></a><h3>struct GstMemory</h3>
-<pre class="programlisting">struct GstMemory {
-  const GstAllocator *allocator;
-
-  GstMemoryFlags  flags;
-  gint            refcount;
-  GstMemory      *parent;
-};
-</pre>
-<p>
-Base structure for memory implementations. Custom memory will put this structure
-as the first member of their structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *<em class="structfield"><code><a name="GstMemory.allocator"></a>allocator</code></em>;</span></p></td>
-<td>pointer to the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstMemory.flags"></a>flags</code></em>;</span></p></td>
-<td>memory flags</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMemory.refcount"></a>refcount</code></em>;</span></p></td>
-<td>refcount</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *<em class="structfield"><code><a name="GstMemory.parent"></a>parent</code></em>;</span></p></td>
-<td>parent memory block</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMemoryInfo"></a><h3>struct GstMemoryInfo</h3>
-<pre class="programlisting">struct GstMemoryInfo {
-  GstMemoryAllocFunction    alloc;
-  GstMemoryGetSizesFunction get_sizes;
-  GstMemoryResizeFunction   resize;
-  GstMemoryMapFunction      map;
-  GstMemoryUnmapFunction    unmap;
-  GstMemoryFreeFunction     free;
-
-  GstMemoryCopyFunction     copy;
-  GstMemoryShareFunction    share;
-  GstMemoryIsSpanFunction   is_span;
-
-  gpointer user_data;
-};
-</pre>
-<p>
-The <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> is used to register new memory allocators and contain
-the implementations for various memory operations.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryAllocFunction" title="GstMemoryAllocFunction ()"><span class="type">GstMemoryAllocFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.alloc"></a>alloc</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryAllocFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryGetSizesFunction" title="GstMemoryGetSizesFunction ()"><span class="type">GstMemoryGetSizesFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.get-sizes"></a>get_sizes</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryGetSizesFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryResizeFunction" title="GstMemoryResizeFunction ()"><span class="type">GstMemoryResizeFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.resize"></a>resize</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryResizeFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()"><span class="type">GstMemoryMapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.map"></a>map</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryMapFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()"><span class="type">GstMemoryUnmapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.unmap"></a>unmap</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryUnmapFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()"><span class="type">GstMemoryFreeFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.free"></a>free</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryFreeFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()"><span class="type">GstMemoryCopyFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.copy"></a>copy</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryCopyFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()"><span class="type">GstMemoryShareFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.share"></a>share</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryShareFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()"><span class="type">GstMemoryIsSpanFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.is-span"></a>is_span</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryIsSpanFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstMemoryInfo.user-data"></a>user_data</code></em>;</span></p></td>
-<td>generic user data for the allocator</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocator"></a><h3>GstAllocator</h3>
-<pre class="programlisting">typedef struct _GstAllocator GstAllocator;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-MEMORY-IS-WRITABLE:CAPS"></a><h3>GST_MEMORY_IS_WRITABLE()</h3>
-<pre class="programlisting">#define             GST_MEMORY_IS_WRITABLE(mem)</pre>
-<p>
-Check if <em class="parameter"><code>mem</code></em> is writable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMemoryFlags"></a><h3>enum GstMemoryFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_MEMORY_FLAG_READONLY = (1 &lt;&lt; 0),
-  GST_MEMORY_FLAG_NO_SHARE = (1 &lt;&lt; 1),
+  GST_MEMORY_FLAG_READONLY      = (1 &lt;&lt; 0),
+  GST_MEMORY_FLAG_NO_SHARE      = (1 &lt;&lt; 1),
+  GST_MEMORY_FLAG_ZERO_PREFIXED = (1 &lt;&lt; 2),
+  GST_MEMORY_FLAG_ZERO_PADDED   = (1 &lt;&lt; 3),
 
-  GST_MEMORY_FLAG_LAST = (1 &lt;&lt; 24)
+  GST_MEMORY_FLAG_LAST          = (1 &lt;&lt; 16)
 } GstMemoryFlags;
 </pre>
 <p>
@@ -317,6 +212,16 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_ZERO_PREFIXED</code></span></p></td>
+<td>the memory prefix is filled with 0 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MEMORY-FLAG-ZERO-PADDED:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_ZERO_PADDED</code></span></p></td>
+<td>the memory padding is filled with 0 bytes
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-MEMORY-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_MEMORY_FLAG_LAST</code></span></p></td>
 <td>first flag that can be used for custom purposes
 </td>
@@ -326,10 +231,183 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-MEMORY-FLAGS:CAPS"></a><h3>GST_MEMORY_FLAGS()</h3>
+<pre class="programlisting">#define GST_MEMORY_FLAGS(mem)  (GST_MEMORY_CAST (mem)-&gt;flags)
+</pre>
+<p>
+A flags word containing <a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags set on <em class="parameter"><code>mem</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-FLAG-IS-SET:CAPS"></a><h3>GST_MEMORY_FLAG_IS_SET()</h3>
+<pre class="programlisting">#define GST_MEMORY_FLAG_IS_SET(mem,flag)   !!(GST_MEMORY_FLAGS (mem) &amp; (flag))
+</pre>
+<p>
+Gives the status of a specific flag on a <em class="parameter"><code>mem</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> to check.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-FLAG-UNSET:CAPS"></a><h3>GST_MEMORY_FLAG_UNSET()</h3>
+<pre class="programlisting">#define GST_MEMORY_FLAG_UNSET(mem,flag)   (GST_MEMORY_FLAGS (mem) &amp;= ~(flag))
+</pre>
+<p>
+Clear a specific flag on a <em class="parameter"><code>mem</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> to clear.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-IS-READONLY:CAPS"></a><h3>GST_MEMORY_IS_READONLY()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_READONLY(mem)        GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_READONLY)
+</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> is readonly.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-IS-ZERO-PADDED:CAPS"></a><h3>GST_MEMORY_IS_ZERO_PADDED()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_ZERO_PADDED(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PADDED)
+</pre>
+<p>
+Check if the padding in <em class="parameter"><code>mem</code></em> is 0 filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MEMORY-IS-ZERO-PREFIXED:CAPS"></a><h3>GST_MEMORY_IS_ZERO_PREFIXED()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_ZERO_PREFIXED(mem)   GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PREFIXED)
+</pre>
+<p>
+Check if the prefix in <em class="parameter"><code>mem</code></em> is 0 filled.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMemory"></a><h3>struct GstMemory</h3>
+<pre class="programlisting">struct GstMemory {
+  GstAllocator   *allocator;
+
+  GstMemoryFlags  flags;
+  gint            refcount;
+  GstMemory      *parent;
+  volatile gint   state;
+  gsize           maxsize;
+  gsize           align;
+  gsize           offset;
+  gsize           size;
+};
+</pre>
+<p>
+Base structure for memory implementations. Custom memory will put this structure
+as the first member of their structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *<em class="structfield"><code><a name="GstMemory.allocator"></a>allocator</code></em>;</span></p></td>
+<td>pointer to the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstMemory.flags"></a>flags</code></em>;</span></p></td>
+<td>memory flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMemory.refcount"></a>refcount</code></em>;</span></p></td>
+<td>refcount</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *<em class="structfield"><code><a name="GstMemory.parent"></a>parent</code></em>;</span></p></td>
+<td>parent memory block</td>
+</tr>
+<tr>
+<td><p><span class="term">volatile <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMemory.state"></a>state</code></em>;</span></p></td>
+<td>private state</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMemory.maxsize"></a>maxsize</code></em>;</span></p></td>
+<td>the maximum size allocated</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMemory.align"></a>align</code></em>;</span></p></td>
+<td>the alignment of the memory</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMemory.offset"></a>offset</code></em>;</span></p></td>
+<td>the offset where valid data starts</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMemory.size"></a>size</code></em>;</span></p></td>
+<td>the size of valid data</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstMapFlags"></a><h3>enum GstMapFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_MAP_READ =  (1 &lt;&lt; 0),
-  GST_MAP_WRITE = (1 &lt;&lt; 1),
+  GST_MAP_READ      = (1 &lt;&lt; 0),
+  GST_MAP_WRITE     = (1 &lt;&lt; 1),
+
+  GST_MAP_FLAG_LAST = (1 &lt;&lt; 16)
 } GstMapFlags;
 </pre>
 <p>
@@ -348,11 +426,68 @@
 <td>map for write access
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-MAP-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_MAP_FLAG_LAST</code></span></p></td>
+<td>first flag that can be used for custom purposes
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstMapInfo"></a><h3>GstMapInfo</h3>
+<pre class="programlisting">typedef struct {
+  GstMemory *memory;
+  GstMapFlags flags;
+  guint8 *data;
+  gsize size;
+  gsize maxsize;
+} GstMapInfo;
+</pre>
+<p>
+A structure containing the result of a map operation such as
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a>. It contains the data and size.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *<em class="structfield"><code><a name="GstMapInfo.memory"></a>memory</code></em>;</span></p></td>
+<td>a pointer to the mapped memory</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> <em class="structfield"><code><a name="GstMapInfo.flags"></a>flags</code></em>;</span></p></td>
+<td>flags used when mapping the memory</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint8</span> *<em class="structfield"><code><a name="GstMapInfo.data"></a>data</code></em>;</span></p></td>
+<td>a pointer to the mapped data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMapInfo.size"></a>size</code></em>;</span></p></td>
+<td>the valid size in <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMapInfo.maxsize"></a>maxsize</code></em>;</span></p></td>
+<td>the maximum bytes in <em class="parameter"><code>data</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-MAP-INFO-INIT:CAPS"></a><h3>GST_MAP_INFO_INIT</h3>
+<pre class="programlisting">#define GST_MAP_INFO_INIT { NULL, 0, NULL, 0, 0, }
+</pre>
+<p>
+Initializer for <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-MAP-READWRITE:CAPS"></a><h3>GST_MAP_READWRITE</h3>
 <pre class="programlisting">#define GST_MAP_READWRITE      (GST_MAP_READ | GST_MAP_WRITE)
 </pre>
@@ -362,17 +497,57 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMemoryAllocFunction"></a><h3>GstMemoryAllocFunction ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstMemoryAllocFunction)           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>,
+<a name="GstAllocationParams"></a><h3>struct GstAllocationParams</h3>
+<pre class="programlisting">struct GstAllocationParams {
+  GstMemoryFlags flags;
+  gsize          align;
+  gsize          prefix;
+  gsize          padding;
+};
+</pre>
+<p>
+Parameters to control the allocation of memory
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstAllocationParams.flags"></a>flags</code></em>;</span></p></td>
+<td>flags to control allocation</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.align"></a>align</code></em>;</span></p></td>
+<td>the desired alignment of the memory</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.prefix"></a>prefix</code></em>;</span></p></td>
+<td>the disired prefix</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.padding"></a>padding</code></em>;</span></p></td>
+<td>the desired padding</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAllocatorAllocFunction"></a><h3>GstAllocatorAllocFunction ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstAllocatorAllocFunction)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
-Allocate a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> from <em class="parameter"><code>allocator</code></em> that can hold at least <em class="parameter"><code>maxsize</code></em> bytes
-and is aligned to (<em class="parameter"><code>align</code></em> + 1) bytes.
+Allocate a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> from <em class="parameter"><code>allocator</code></em> that can hold at least <em class="parameter"><code>size</code></em>
+bytes (+ padding) and is aligned to (<em class="parameter"><code>align</code></em> + 1) bytes.
 </p>
 <p>
-<em class="parameter"><code>user_data</code></em> is the data that was used when registering <em class="parameter"><code>allocator</code></em>.
+The offset and size of the memory should be set and the prefix/padding must
+be filled with 0 if <em class="parameter"><code>params</code></em> flags contains <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
+</p>
+<p>
+<em class="parameter"><code>user_data</code></em> is the data that was used when creating <em class="parameter"><code>allocator</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -383,12 +558,12 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>the maxsize</td>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>the alignment</td>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>allocator params</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -404,81 +579,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMemoryGetSizesFunction"></a><h3>GstMemoryGetSizesFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               (*GstMemoryGetSizesFunction)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);</pre>
-<p>
-Retrieve the size, offset and maxsize of <em class="parameter"><code>mem</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>result pointer for offset</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>result pointer for maxsize</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the size of <em class="parameter"><code>mem</code></em>, the offset and the maximum allocated size in <em class="parameter"><code>maxsize</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMemoryResizeFunction"></a><h3>GstMemoryResizeFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMemoryResizeFunction)          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>
-Adjust the size and offset of <em class="parameter"><code>mem</code></em>. <em class="parameter"><code>offset</code></em> bytes will be adjusted from the
-current first byte in <em class="parameter"><code>mem</code></em> as retrieved with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> and the new
-size will be set to <em class="parameter"><code>size</code></em>.
-</p>
-<p>
-<em class="parameter"><code>size</code></em> can be set to -1, which will only adjust the offset.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset adjustement</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the new size</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMemoryMapFunction"></a><h3>GstMemoryMapFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            (*GstMemoryMapFunction)             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>
 Get the memory of <em class="parameter"><code>mem</code></em> that can be accessed according to the mode specified
-in <em class="parameter"><code>flags</code></em>. <em class="parameter"><code>size</code></em> and <em class="parameter"><code>maxsize</code></em> will respectively contain the current amount of
-valid bytes in the returned memory and the maximum allocated memory.
-<em class="parameter"><code>size</code></em> and <em class="parameter"><code>maxsize</code></em> can optionally be set to NULL.
+in <em class="parameter"><code>flags</code></em>. The function should return a pointer that contains at least
+<em class="parameter"><code>maxsize</code></em> bytes.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -489,12 +597,8 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>pointer for the size</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>pointer for the maxsize</td>
+<td>size to map</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
@@ -502,8 +606,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to memory. <em class="parameter"><code>size</code></em> bytes are currently used from the
-returned pointer and <em class="parameter"><code>maxsize</code></em> bytes can potentially be used.</td>
+<td>a pointer to memory of which at least <em class="parameter"><code>maxsize</code></em> bytes can be
+accessed according to the access pattern in <em class="parameter"><code>flags</code></em>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -511,13 +615,9 @@
 <hr>
 <div class="refsect2">
 <a name="GstMemoryUnmapFunction"></a><h3>GstMemoryUnmapFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstMemoryUnmapFunction)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMemoryUnmapFunction)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
 <p>
-Return the pointer previously retrieved with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> and adjust the
-size of the memory with <em class="parameter"><code>size</code></em>. <em class="parameter"><code>size</code></em> can optionally be set to -1 to not
-modify the size.
+Return the pointer previously retrieved with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -528,14 +628,6 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data pointer</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the new size</td>
-</tr>
-<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
@@ -564,8 +656,8 @@
 <div class="refsect2">
 <a name="GstMemoryCopyFunction"></a><h3>GstMemoryCopyFunction ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstMemoryCopyFunction)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
 <p>
 Copy <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>mem</code></em> starting at <em class="parameter"><code>offset</code></em> and return them wrapped in a
 new GstMemory object.
@@ -585,7 +677,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>a size</td>
+<td>a size or -1</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -599,8 +691,8 @@
 <div class="refsect2">
 <a name="GstMemoryShareFunction"></a><h3>GstMemoryShareFunction ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstMemoryShareFunction)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
 <p>
 Share <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>mem</code></em> starting at <em class="parameter"><code>offset</code></em> and return them wrapped in a
 new GstMemory object. If <em class="parameter"><code>size</code></em> is set to -1, all bytes starting at <em class="parameter"><code>offset</code></em> are
@@ -620,7 +712,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>a size</td>
+<td>a size or -1</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -634,7 +726,7 @@
 <a name="GstMemoryIsSpanFunction"></a><h3>GstMemoryIsSpanFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstMemoryIsSpanFunction)          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>);</pre>
 <p>
 Check if <em class="parameter"><code>mem1</code></em> and <em class="parameter"><code>mem2</code></em> occupy contiguous memory and return the offset of
 <em class="parameter"><code>mem1</code></em> in the parent buffer in <em class="parameter"><code>offset</code></em>.
@@ -666,46 +758,357 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-memory-alignment"></a><h3>gst_memory_alignment</h3>
-<pre class="programlisting">extern gsize gst_memory_alignment;
+<a name="GstMemoryInfo"></a><h3>struct GstMemoryInfo</h3>
+<pre class="programlisting">struct GstMemoryInfo {
+  const gchar              *mem_type;
+
+  GstAllocatorAllocFunction alloc;
+
+  GstMemoryMapFunction      mem_map;
+  GstMemoryUnmapFunction    mem_unmap;
+  GstMemoryFreeFunction     mem_free;
+
+  GstMemoryCopyFunction     mem_copy;
+  GstMemoryShareFunction    mem_share;
+  GstMemoryIsSpanFunction   mem_is_span;
+};
 </pre>
+<p>
+The <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> is used to register new memory allocators and contain
+the implementations for various memory operations.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstMemoryInfo.mem-type"></a>mem_type</code></em>;</span></p></td>
+<td>the memory type this allocator provides</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()"><span class="type">GstAllocatorAllocFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.alloc"></a>alloc</code></em>;</span></p></td>
+<td>the implementation of the GstAllocatorAllocFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()"><span class="type">GstMemoryMapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-map"></a>mem_map</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryMapFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()"><span class="type">GstMemoryUnmapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-unmap"></a>mem_unmap</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryUnmapFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()"><span class="type">GstMemoryFreeFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-free"></a>mem_free</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryFreeFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()"><span class="type">GstMemoryCopyFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-copy"></a>mem_copy</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryCopyFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()"><span class="type">GstMemoryShareFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-share"></a>mem_share</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryShareFunction</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()"><span class="type">GstMemoryIsSpanFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-is-span"></a>mem_is_span</code></em>;</span></p></td>
+<td>the implementation of the GstMemoryIsSpanFunction</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-allocator-alloc"></a><h3>gst_allocator_alloc ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_allocator_alloc                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> align</code></em>);</pre>
+<a name="GstAllocator"></a><h3>GstAllocator</h3>
+<pre class="programlisting">typedef struct _GstAllocator GstAllocator;</pre>
 <p>
-Use <em class="parameter"><code>allocator</code></em> to allocate a new memory block with memory that is at least
-<em class="parameter"><code>maxsize</code></em> big and has the given alignment.
+An opaque type returned from <a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()"><code class="function">gst_allocator_new()</code></a> or <a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>
+that can be used to allocator memory.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-new"></a><h3>gst_allocator_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_new                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+<p>
+Create a new memory allocator with <em class="parameter"><code>info</code></em> and <em class="parameter"><code>user_data</code></em>.
 </p>
 <p>
-When <em class="parameter"><code>allocator</code></em> is NULL, the default allocator will be used.
+All functions in <em class="parameter"><code>info</code></em> are mandatory exept the copy and is_span
+functions, which will have a default implementation when left NULL.
 </p>
 <p>
-<em class="parameter"><code>align</code></em> is given as a bitmask so that <em class="parameter"><code>align</code></em> + 1 equals the amount of bytes to
-align to. For example, to align to 8 bytes, use an alignment of 7.
+The <em class="parameter"><code>user_data</code></em> will be passed to all calls of the alloc function. <em class="parameter"><code>notify</code></em>
+will be called with <em class="parameter"><code>user_data</code></em> when the allocator is freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-get-memory-type"></a><h3>gst_allocator_get_memory_type ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_allocator_get_memory_type       (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>
+Get the memory type allocated by this allocator
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>allocated size of <em class="parameter"><code>data</code></em>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>alignment for the data</td>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the memory type provided by <em class="parameter"><code>allocator</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-ref"></a><h3>gst_allocator_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_ref                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>
+Increases the refcount of <em class="parameter"><code>allocator</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+<td>
+<em class="parameter"><code>allocator</code></em> with increased refcount</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-unref"></a><h3>gst_allocator_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_unref                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>
+Decreases the refcount of <em class="parameter"><code>allocator</code></em>. When the refcount reaches 0, the notify
+function of <em class="parameter"><code>allocator</code></em> will be called and the allocator will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-ALLOCATOR-SYSMEM:CAPS"></a><h3>GST_ALLOCATOR_SYSMEM</h3>
+<pre class="programlisting">#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
+</pre>
+<p>
+The allocator name for the default system memory allocator
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-find"></a><h3>gst_allocator_find ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_find                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<p>
+Find a previously registered allocator with <em class="parameter"><code>name</code></em>. When <em class="parameter"><code>name</code></em> is NULL, the
+default allocator will be returned.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the allocator</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> or NULL when the allocator with <em class="parameter"><code>name</code></em> was not
+registered. Use <a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()"><code class="function">gst_allocator_unref()</code></a> to release the allocator after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-register"></a><h3>gst_allocator_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_register              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>
+Registers the memory <em class="parameter"><code>allocator</code></em> with <em class="parameter"><code>name</code></em>. This function takes ownership of
+<em class="parameter"><code>allocator</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the allocator</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-set-default"></a><h3>gst_allocator_set_default ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_set_default           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>
+Set the default allocator. This function takes ownership of <em class="parameter"><code>allocator</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocation-params-init"></a><h3>gst_allocation_params_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocation_params_init          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Initialize <em class="parameter"><code>params</code></em> to its default values
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocation-params-copy"></a><h3>gst_allocation_params_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="returnvalue">GstAllocationParams</span></a> * gst_allocation_params_copy        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Create a copy of <em class="parameter"><code>params</code></em>.
+</p>
+<p>
+Free-function: gst_allocation_params_free
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new #<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>, free with
+<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()"><code class="function">gst_allocation_params_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocation-params-free"></a><h3>gst_allocation_params_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocation_params_free          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Free <em class="parameter"><code>params</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-allocator-alloc"></a><h3>gst_allocator_alloc ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_allocator_alloc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Use <em class="parameter"><code>allocator</code></em> to allocate a new memory block with memory that is at least
+<em class="parameter"><code>size</code></em> big.
+</p>
+<p>
+The optional <em class="parameter"><code>params</code></em> can specify the prefix and padding for the memory. If
+NULL is passed, no flags, no extra prefix/padding and a default alignment is
+used.
+</p>
+<p>
+The prefix/padding will be filled with 0 if flags contains
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
+</p>
+<p>
+When <em class="parameter"><code>allocator</code></em> is NULL, the default allocator will be used.
+</p>
+<p>
+The alignment in <em class="parameter"><code>params</code></em> is given as a bitmask so that <em class="parameter"><code>align</code></em> + 1 equals
+the amount of bytes to align to. For example, to align to 8 bytes,
+use an alignment of 7.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>size of the visible memory area</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>optional parameters. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -715,13 +1118,18 @@
 <a name="gst-memory-new-wrapped"></a><h3>gst_memory_new_wrapped ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_new_wrapped              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#GFreeFunc"><span class="type">GFreeFunc</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> maxsize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Allocate a new memory block that wraps the given <em class="parameter"><code>data</code></em>.
 </p>
+<p>
+The prefix/padding must be filled with 0 if <em class="parameter"><code>flags</code></em> contains
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -734,11 +1142,6 @@
 <td>data to wrap</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
-<td>function to free <em class="parameter"><code>data</code></em>
-</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
 <td>allocated size of <em class="parameter"><code>data</code></em>
 </td>
@@ -753,6 +1156,14 @@
 <td>size of valid data</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user_data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called with <em class="parameter"><code>user_data</code></em> when the memory is freed</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
 </tr>
@@ -801,10 +1212,27 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-memory-is-exclusive"></a><h3>gst_memory_is_exclusive ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_memory_is_exclusive             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>
+Check if the current ref to <em class="parameter"><code>mem</code></em> is exclusive, this means that no other
+references exist other than <em class="parameter"><code>mem</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-memory-get-sizes"></a><h3>gst_memory_get_sizes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_memory_get_sizes                (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_memory_get_sizes                (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *maxsize</code></em>);</pre>
 <p>
 Get the current <em class="parameter"><code>size</code></em>, <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>maxsize</code></em> of <em class="parameter"><code>mem</code></em>.
 </p>
@@ -836,12 +1264,16 @@
 <div class="refsect2">
 <a name="gst-memory-resize"></a><h3>gst_memory_resize ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_memory_resize                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Resize the memory region. <em class="parameter"><code>mem</code></em> should be writable and offset + size should be
 less than the maxsize of <em class="parameter"><code>mem</code></em>.
 </p>
+<p>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> will be
+cleared when offset or padding is increased respectively.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -863,33 +1295,31 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-memory-map"></a><h3>gst_memory_map ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_memory_map                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>,
+<a name="gst-memory-make-mapped"></a><h3>gst_memory_make_mapped ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_make_mapped              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>
-Get a pointer to the memory of <em class="parameter"><code>mem</code></em> that can be accessed according to <em class="parameter"><code>flags</code></em>.
+Create a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> object that is mapped with <em class="parameter"><code>flags</code></em>. If <em class="parameter"><code>mem</code></em> is mappable
+with <em class="parameter"><code>flags</code></em>, this function returns the mapped <em class="parameter"><code>mem</code></em> directly. Otherwise a
+mapped copy of <em class="parameter"><code>mem</code></em> is returned.
 </p>
 <p>
-<em class="parameter"><code>size</code></em> and <em class="parameter"><code>maxsize</code></em> will contain the size of the memory and the maximum
-allocated memory of <em class="parameter"><code>mem</code></em> respectively. They can be set to NULL.
+This function takes ownership of old <em class="parameter"><code>mem</code></em> and returns a reference to a new
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>pointer for size</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>pointer for maxsize</td>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>pointer for info. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
@@ -897,21 +1327,39 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the memory of <em class="parameter"><code>mem</code></em>.</td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> object mapped with <em class="parameter"><code>flags</code></em> or NULL when
+a mapping is not possible. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-memory-unmap"></a><h3>gst_memory_unmap ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_memory_unmap                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<a name="gst-memory-map"></a><h3>gst_memory_map ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_memory_map                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
 <p>
-Release the memory pointer obtained with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> and set the size of
-the memory to <em class="parameter"><code>size</code></em>. <em class="parameter"><code>size</code></em> can be set to -1 when the size should not be
-updated.
+Fill <em class="parameter"><code>info</code></em> with the pointer and sizes of the memory in <em class="parameter"><code>mem</code></em> that can be
+accessed according to <em class="parameter"><code>flags</code></em>.
+</p>
+<p>
+This function can return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> for various reasons:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>the memory backed by <em class="parameter"><code>mem</code></em> is not accessible with the given <em class="parameter"><code>flags</code></em>.</p></li>
+<li class="listitem"><p>the memory was already mapped with a different mapping.</p></li>
+</ul></div>
+<p>
+</p>
+<p>
+<em class="parameter"><code>info</code></em> and its contents remain valid for as long as <em class="parameter"><code>mem</code></em> is valid and
+until <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()"><code class="function">gst_memory_unmap()</code></a> is called.
+</p>
+<p>
+For each <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a> call, a corresponding <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()"><code class="function">gst_memory_unmap()</code></a> call
+should be done.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -922,17 +1370,42 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data to unmap</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>new size of <em class="parameter"><code>mem</code></em>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>pointer for info. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>mapping flags</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE when the memory was release successfully.</td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the map operation was successful.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-memory-unmap"></a><h3>gst_memory_unmap ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_memory_unmap                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);</pre>
+<p>
+Release the memory obtained with <a class="link" href="gstreamer-GstMemory.html#gst-memory-map" title="gst_memory_map ()"><code class="function">gst_memory_map()</code></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -941,8 +1414,8 @@
 <div class="refsect2">
 <a name="gst-memory-copy"></a><h3>gst_memory_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_copy                     (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
 <p>
 Return a copy of <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>mem</code></em> starting from <em class="parameter"><code>offset</code></em>. This copy is
 guaranteed to be writable. <em class="parameter"><code>size</code></em> can be set to -1 to return a copy all bytes
@@ -962,7 +1435,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>size to copy</td>
+<td>size to copy or -1 to copy all bytes from offset</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -975,13 +1448,13 @@
 <div class="refsect2">
 <a name="gst-memory-share"></a><h3>gst_memory_share ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_share                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
 <p>
-Return a shared copy of <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>mem</code></em> starting from <em class="parameter"><code>offset</code></em>. No memory
-copy is performed and the memory region is simply shared. The result is
-guaranteed to be not-writable. <em class="parameter"><code>size</code></em> can be set to -1 to return a share all bytes
-from <em class="parameter"><code>offset</code></em>.
+Return a shared copy of <em class="parameter"><code>size</code></em> bytes from <em class="parameter"><code>mem</code></em> starting from <em class="parameter"><code>offset</code></em>. No
+memory copy is performed and the memory region is simply shared. The result
+is guaranteed to be not-writable. <em class="parameter"><code>size</code></em> can be set to -1 to return a share
+all bytes from <em class="parameter"><code>offset</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -997,7 +1470,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>size to share</td>
+<td>size to share or -1 to share bytes from offset</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1011,7 +1484,7 @@
 <a name="gst-memory-is-span"></a><h3>gst_memory_is_span ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_memory_is_span                  (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem2</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>);</pre>
 <p>
 Check if <em class="parameter"><code>mem1</code></em> and mem2 share the memory with a common parent memory object
 and that the memory is contiguous.
@@ -1046,89 +1519,6 @@
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GST-ALLOCATOR-SYSMEM:CAPS"></a><h3>GST_ALLOCATOR_SYSMEM</h3>
-<pre class="programlisting">#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
-</pre>
-<p>
-The allocator name for the default system memory allocator
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-find"></a><h3>gst_allocator_find ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> * gst_allocator_find                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>
-Find a previously registered allocator with <em class="parameter"><code>name</code></em>. When <em class="parameter"><code>name</code></em> is NULL, the
-default allocator will be returned.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the allocator</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> or NULL when the allocator with <em class="parameter"><code>name</code></em> was not
-registered.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-register"></a><h3>gst_allocator_register ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> * gst_allocator_register             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>);</pre>
-<p>
-Registers the memory allocator with <em class="parameter"><code>name</code></em> and implementation functions
-<em class="parameter"><code>info</code></em>.
-</p>
-<p>
-All functions in <em class="parameter"><code>info</code></em> are mandatory exept the copy and is_span
-functions, which will have a default implementation when left NULL.
-</p>
-<p>
-The user_data field in <em class="parameter"><code>info</code></em> will be passed to all calls of the alloc
-function.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the allocator</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td><a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a></td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-set-default"></a><h3>gst_allocator_set_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_set_default           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Set the default allocator.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstMemory.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstMessage.html b/docs/gst/html/gstreamer-GstMessage.html
index ae66e1c..1c656bb 100644
--- a/docs/gst/html/gstreamer-GstMessage.html
+++ b/docs/gst/html/gstreamer-GstMessage.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstMemory.html" title="GstMemory">
 <link rel="next" href="gstreamer-GstMeta.html" title="GstMeta">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstMemory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstMeta.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,7 +49,6 @@
 #define             <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-SEQNUM:CAPS" title="GST_MESSAGE_SEQNUM()">GST_MESSAGE_SEQNUM</a>                  (message)
 #define             <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS" title="GST_MESSAGE_TYPE()">GST_MESSAGE_TYPE</a>                    (message)
 #define             <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS" title="GST_MESSAGE_TYPE_NAME()">GST_MESSAGE_TYPE_NAME</a>               (message)
-#define             <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-TRACE-NAME:CAPS" title="GST_MESSAGE_TRACE_NAME">GST_MESSAGE_TRACE_NAME</a>
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstMessage.html#gst-message-type-to-quark" title="gst_message_type_to_quark ()">gst_message_type_to_quark</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstMessage.html#gst-message-type-get-name" title="gst_message_type_get_name ()">gst_message_type_get_name</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-ref" title="gst_message_ref ()">gst_message_ref</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
@@ -57,14 +56,14 @@
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-copy" title="gst_message_copy ()">gst_message_copy</a>                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
 const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gstreamer-GstMessage.html#gst-message-get-structure" title="gst_message_get_structure ()">gst_message_get_structure</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
 #define             <a class="link" href="gstreamer-GstMessage.html#gst-message-make-writable" title="gst_message_make_writable()">gst_message_make_writable</a>           (msg)
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-GstMessage.html#gst-message-get-seqnum" title="gst_message_get_seqnum ()">gst_message_get_seqnum</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-GstMessage.html#gst-message-get-seqnum" title="gst_message_get_seqnum ()">gst_message_get_seqnum</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-set-seqnum" title="gst_message_set_seqnum ()">gst_message_set_seqnum</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> seqnum</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMessage.html#gst-message-has-name" title="gst_message_has_name ()">gst_message_has_name</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 #define             <a class="link" href="gstreamer-GstMessage.html#gst-message-is-writable" title="gst_message_is_writable()">gst_message_is_writable</a>             (msg)
-#define             <a class="link" href="gstreamer-GstMessage.html#gst-message-replace" title="gst_message_replace()">gst_message_replace</a>                 (old_message,
-                                                         new_message)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMessage.html#gst-message-replace" title="gst_message_replace ()">gst_message_replace</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **old_message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *new_message</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-eos" title="gst_message_new_eos ()">gst_message_new_eos</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-error" title="gst_message_new_error ()">gst_message_new_error</a>               (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
@@ -96,12 +95,12 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> buffering_left</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> buffering_left</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-buffering-stats" title="gst_message_parse_buffering_stats ()">gst_message_parse_buffering_stats</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> *mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *buffering_left</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *buffering_left</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-state-changed" title="gst_message_new_state_changed ()">gst_message_new_state_changed</a>       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> oldstate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstElement.html#GstState" title="enum GstState"><span class="type">GstState</span></a> newstate</code></em>,
@@ -113,19 +112,19 @@
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-state-dirty" title="gst_message_new_state_dirty ()">gst_message_new_state_dirty</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-step-done" title="gst_message_new_step_done ()">gst_message_new_step_done</a>           (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> duration</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> eos</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-step-done" title="gst_message_parse_step_done ()">gst_message_parse_step_done</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *duration</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-clock-provide" title="gst_message_new_clock_provide ()">gst_message_new_clock_provide</a>       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *clock</code></em>,
@@ -150,22 +149,22 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-segment-start" title="gst_message_new_segment_start ()">gst_message_new_segment_start</a>       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-segment-start" title="gst_message_parse_segment_start ()">gst_message_parse_segment_start</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *position</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-segment-done" title="gst_message_new_segment_done ()">gst_message_new_segment_done</a>        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-segment-done" title="gst_message_parse_segment_done ()">gst_message_parse_segment_done</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *position</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-duration" title="gst_message_new_duration ()">gst_message_new_duration</a>            (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-duration" title="gst_message_parse_duration ()">gst_message_parse_duration</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-latency" title="gst_message_new_latency ()">gst_message_new_latency</a>             (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-async-start" title="gst_message_new_async_start ()">gst_message_new_async_start</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-async-done" title="gst_message_new_async_done ()">gst_message_new_async_done</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
@@ -175,45 +174,51 @@
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-step-start" title="gst_message_new_step_start ()">gst_message_new_step_start</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-step-start" title="gst_message_parse_step_start ()">gst_message_parse_step_start</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-qos" title="gst_message_new_qos ()">gst_message_new_qos</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> live</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stream_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stream_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> duration</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-set-qos-values" title="gst_message_set_qos_values ()">gst_message_set_qos_values</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> jitter</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> quality</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-set-qos-stats" title="gst_message_set_qos_stats ()">gst_message_set_qos_stats</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> processed</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> dropped</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> processed</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> dropped</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-qos" title="gst_message_parse_qos ()">gst_message_parse_qos</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *running_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *stream_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *running_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *stream_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *duration</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-qos-values" title="gst_message_parse_qos_values ()">gst_message_parse_qos_values</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *jitter</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *quality</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-qos-stats" title="gst_message_parse_qos_stats ()">gst_message_parse_qos_stats</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *processed</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *dropped</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *processed</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *dropped</code></em>);
+<a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-toc" title="gst_message_new_toc ()">gst_message_new_toc</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-toc" title="gst_message_parse_toc ()">gst_message_parse_toc</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);
 enum                <a class="link" href="gstreamer-GstMessage.html#GstStructureChangeType" title="enum GstStructureChangeType">GstStructureChangeType</a>;
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-structure-change" title="gst_message_new_structure_change ()">gst_message_new_structure_change</a>    (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstStructureChangeType" title="enum GstStructureChangeType"><span class="type">GstStructureChangeType</span></a> type</code></em>,
@@ -268,10 +273,18 @@
 <p>
 </p>
 <div class="example">
-<a name="id620801"></a><p class="title"><b>Example 11. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
-<div class="example-contents"><pre class="programlisting">
-   gst_bus_post (bus, gst_message_new_eos());
-  </pre></div>
+<a name="idp28281824"></a><p class="title"><b>Example 10. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/GstBus.html#gst-bus-post">gst_bus_post</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-eos">gst_message_new_eos</a></span><span class="gtkdoc opt">());</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
@@ -288,12 +301,12 @@
 <div class="refsect2">
 <a name="GstMessage"></a><h3>struct GstMessage</h3>
 <pre class="programlisting">struct GstMessage {
-  GstMiniObject mini_object;
+  GstMiniObject   mini_object;
 
-  GstMessageType type;
-  guint64 timestamp;
-  GstObject *src;
-  guint32 seqnum;
+  GstMessageType  type;
+  guint64         timestamp;
+  GstObject      *src;
+  guint32         seqnum;
 };
 </pre>
 <p>
@@ -311,7 +324,7 @@
 <td>the <a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> of the message</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstMessage.timestamp"></a>timestamp</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstMessage.timestamp"></a>timestamp</code></em>;</span></p></td>
 <td>the timestamp of the message</td>
 </tr>
 <tr>
@@ -319,7 +332,7 @@
 <td>the src of the message</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstMessage.seqnum"></a>seqnum</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstMessage.seqnum"></a>seqnum</code></em>;</span></p></td>
 <td>the sequence number of the message</td>
 </tr>
 </tbody>
@@ -356,6 +369,7 @@
   GST_MESSAGE_STEP_START        = (1 &lt;&lt; 23),
   GST_MESSAGE_QOS               = (1 &lt;&lt; 24),
   GST_MESSAGE_PROGRESS          = (1 &lt;&lt; 25),
+  GST_MESSAGE_TOC               = (1 &lt;&lt; 26),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 </pre>
@@ -534,6 +548,12 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-MESSAGE-TOC:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_TOC</code></span></p></td>
+<td>A new table of contents (TOC) was found or previously found TOC
+was updated. Since: 0.10.37
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-MESSAGE-ANY:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_ANY</code></span></p></td>
 <td>mask for all of the above messages.
 </td>
@@ -648,15 +668,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-MESSAGE-TRACE-NAME:CAPS"></a><h3>GST_MESSAGE_TRACE_NAME</h3>
-<pre class="programlisting">#define GST_MESSAGE_TRACE_NAME  "GstMessage"
-</pre>
-<p>
-The name used for memory allocation tracing
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-message-type-to-quark"></a><h3>gst_message_type_to_quark ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_message_type_to_quark           (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>);</pre>
 <p>
@@ -812,7 +823,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-message-get-seqnum"></a><h3>gst_message_get_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_message_get_seqnum              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_message_get_seqnum              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
 <p>
 Retrieve the sequence number of a message.
 </p>
@@ -849,7 +860,7 @@
 <div class="refsect2">
 <a name="gst-message-set-seqnum"></a><h3>gst_message_set_seqnum ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_set_seqnum              (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> seqnum</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> seqnum</code></em>);</pre>
 <p>
 Set the sequence number of a message.
 </p>
@@ -925,8 +936,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-message-replace"></a><h3>gst_message_replace()</h3>
-<pre class="programlisting">#define             gst_message_replace(old_message,new_message)</pre>
+<a name="gst-message-replace"></a><h3>gst_message_replace ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_message_replace                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **old_message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *new_message</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to point to a different <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The
 modification is done atomically (so this is useful for ensuring thread safety
@@ -951,6 +963,11 @@
 replace the message pointed to by <em class="parameter"><code>old_message</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>new_message</code></em> was different from <em class="parameter"><code>old_message</code></em>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -1031,25 +1048,49 @@
 <p>
 Typical usage of this function might be:
 </p>
-<div class="informalexample"><pre class="programlisting">
-  ...
-  switch (GST_MESSAGE_TYPE (msg)) {
-    case GST_MESSAGE_ERROR: {
-      GError *err = NULL;
-      gchar *dbg_info = NULL;
-      
-      gst_message_parse_error (msg, &amp;err, &amp;dbg_info);
-      g_printerr ("ERROR from element %s: %s\n",
-          GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
-      g_printerr ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none");
-      g_error_free (err);
-      g_free (dbg_info);
-      break;
-    }
-    ...
-  }
-  ...
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+  <span class="keyword">case</span> GST_MESSAGE_ERROR<span class="gtkdoc opt">: {</span>
+    GError <span class="gtkdoc opt">*</span>err <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+    gchar <span class="gtkdoc opt">*</span>dbg_info <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+    
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-error">gst_message_parse_error</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>err<span class="gtkdoc opt">, &amp;</span>dbg_info<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;ERROR from element %s: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
+        <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span> err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Debugging info: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">, (</span>dbg_info<span class="gtkdoc opt">)</span> ? dbg_info <span class="gtkdoc opt">:</span> <span class="string">&quot;none&quot;</span><span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-free">g_error_free</a></span> <span class="gtkdoc opt">(</span>err<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>dbg_info<span class="gtkdoc opt">);</span>
+    <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+  <span class="gtkdoc opt">}</span>
+  <span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -1263,22 +1304,43 @@
 <p>
 Typical usage of this function might be:
 </p>
-<div class="informalexample"><pre class="programlisting">
-  ...
-  switch (GST_MESSAGE_TYPE (msg)) {
-    case GST_MESSAGE_TAG: {
-      GstTagList *tags = NULL;
-      
-      gst_message_parse_tag (msg, &amp;tags);
-      g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg-&gt;src));
-      handle_tags (tags);
-      gst_tag_list_free (tags);
-      break;
-    }
-    ...
-  }
-  ...
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+  <span class="keyword">case</span> GST_MESSAGE_TAG<span class="gtkdoc opt">: {</span>
+    GstTagList <span class="gtkdoc opt">*</span>tags <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+    
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-tag">gst_message_parse_tag</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Got tags from element %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">));</span>
+    <span class="function">handle_tags</span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-free">gst_tag_list_free</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
+    <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+  <span class="gtkdoc opt">}</span>
+  <span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -1376,7 +1438,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> buffering_left</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> buffering_left</code></em>);</pre>
 <p>
 Configures the buffering stats values in <em class="parameter"><code>message</code></em>.
 </p>
@@ -1414,7 +1476,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> *mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *buffering_left</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *buffering_left</code></em>);</pre>
 <p>
 Extracts the buffering stats values from <em class="parameter"><code>message</code></em>.
 </p>
@@ -1503,23 +1565,45 @@
 <p>
 Typical usage of this function might be:
 </p>
-<div class="informalexample"><pre class="programlisting">
-  ...
-  switch (GST_MESSAGE_TYPE (msg)) {
-    case GST_MESSAGE_STATE_CHANGED: {
-      GstState old_state, new_state;
-      
-      gst_message_parse_state_changed (msg, &amp;old_state, &amp;new_state, NULL);
-      g_print ("Element %s changed state from %s to %s.\n",
-          GST_OBJECT_NAME (msg-&gt;src),
-          gst_element_state_get_name (old_state),
-          gst_element_state_get_name (new_state));
-      break;
-    }
-    ...
-  }
-  ...
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+  <span class="keyword">case</span> GST_MESSAGE_STATE_CHANGED<span class="gtkdoc opt">: {</span>
+    GstState old_state<span class="gtkdoc opt">,</span> new_state<span class="gtkdoc opt">;</span>
+    
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-state-changed">gst_message_parse_state_changed</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>old_state<span class="gtkdoc opt">, &amp;</span>new_state<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Element %s changed state from %s to %s.</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
+        <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span>
+        <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>old_state<span class="gtkdoc opt">),</span>
+        <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>new_state<span class="gtkdoc opt">));</span>
+    <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+  <span class="gtkdoc opt">}</span>
+  <span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -1581,11 +1665,11 @@
 <a name="gst-message-new-step-done"></a><h3>gst_message_new_step_done ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_step_done           (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> duration</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> eos</code></em>);</pre>
 <p>
 This message is posted by elements when they complete a part, when <em class="parameter"><code>intermediate</code></em> set
@@ -1646,11 +1730,11 @@
 <a name="gst-message-parse-step-done"></a><h3>gst_message_parse_step_done ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_step_done         (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *duration</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
 <p>
 Extract the values the step_done message.
@@ -2009,7 +2093,7 @@
 <a name="gst-message-new-segment-start"></a><h3>gst_message_new_segment_start ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_segment_start       (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);</pre>
 <p>
 Create a new segment message. This message is posted by elements that
 start playback of a segment as a result of a segment seek. This message
@@ -2046,7 +2130,7 @@
 <a name="gst-message-parse-segment-start"></a><h3>gst_message_parse_segment_start ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_segment_start     (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);</pre>
 <p>
 Extracts the position and format from the segment start message.
 </p>
@@ -2078,7 +2162,7 @@
 <a name="gst-message-new-segment-done"></a><h3>gst_message_new_segment_done ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_segment_done        (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);</pre>
 <p>
 Create a new segment done message. This message is posted by elements that
 finish playback of a segment as a result of a segment seek. This message
@@ -2115,7 +2199,7 @@
 <a name="gst-message-parse-segment-done"></a><h3>gst_message_parse_segment_done ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_segment_done      (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *position</code></em>);</pre>
 <p>
 Extracts the position and format from the segment start message.
 </p>
@@ -2147,7 +2231,7 @@
 <a name="gst-message-new-duration"></a><h3>gst_message_new_duration ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_duration            (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);</pre>
 <p>
 Create a new duration message. This message is posted by elements that
 know the duration of a stream in a specific format. This message
@@ -2187,7 +2271,7 @@
 <a name="gst-message-parse-duration"></a><h3>gst_message_parse_duration ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_duration          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
 <p>
 Extracts the duration and format from the duration message. The duration
 might be GST_CLOCK_TIME_NONE, which indicates that the duration has
@@ -2330,7 +2414,7 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_step_start          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> intermediate</code></em>);</pre>
@@ -2396,7 +2480,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_step_start        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *amount</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *amount</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flush</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *intermediate</code></em>);</pre>
@@ -2452,10 +2536,10 @@
 <a name="gst-message-new-qos"></a><h3>gst_message_new_qos ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_qos                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> live</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stream_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stream_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> duration</code></em>);</pre>
 <p>
 A QOS message is posted on the bus whenever an element decides to drop a
 buffer because of QoS reasons or whenever it changes its processing strategy
@@ -2514,7 +2598,7 @@
 <div class="refsect2">
 <a name="gst-message-set-qos-values"></a><h3>gst_message_set_qos_values ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_set_qos_values          (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> jitter</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> quality</code></em>);</pre>
 <p>
@@ -2553,8 +2637,8 @@
 <a name="gst-message-set-qos-stats"></a><h3>gst_message_set_qos_stats ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_set_qos_stats           (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> processed</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> dropped</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> processed</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> dropped</code></em>);</pre>
 <p>
 Set the QoS stats representing the history of the current continuous pipeline
 playback period.
@@ -2598,10 +2682,10 @@
 <a name="gst-message-parse-qos"></a><h3>gst_message_parse_qos ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_qos               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *running_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *stream_time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *running_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *stream_time</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *timestamp</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *duration</code></em>);</pre>
 <p>
 Extract the timestamps and live status from the QoS message.
 </p>
@@ -2657,7 +2741,7 @@
 <div class="refsect2">
 <a name="gst-message-parse-qos-values"></a><h3>gst_message_parse_qos_values ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_qos_values        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *jitter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *jitter</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *proportion</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *quality</code></em>);</pre>
 <p>
@@ -2701,8 +2785,8 @@
 <a name="gst-message-parse-qos-stats"></a><h3>gst_message_parse_qos_stats ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_qos_stats         (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *processed</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *dropped</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *processed</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *dropped</code></em>);</pre>
 <p>
 Extract the QoS stats representing the history of the current continuous
 pipeline playback period.
@@ -2747,6 +2831,76 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-message-new-toc"></a><h3>gst_message_new_toc ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_toc                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);</pre>
+<p>
+Create a new TOC message. The message is posted by elements
+that discovered or updated a TOC.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>the object originating the message.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure for the message.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
+<td>whether TOC was updated or not.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new TOC message.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-message-parse-toc"></a><h3>gst_message_parse_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_toc               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
+<p>
+Extract the TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
+output argument is a copy; the caller must free it with
+<a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> when done.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
+<td>a valid <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> of type GST_MESSAGE_TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>return location for the TOC. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
+<td>return location for the updated flag. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstStructureChangeType"></a><h3>enum GstStructureChangeType</h3>
 <pre class="programlisting">typedef enum {
   GST_STRUCTURE_CHANGE_TYPE_PAD_LINK   = 0,
diff --git a/docs/gst/html/gstreamer-GstMeta.html b/docs/gst/html/gstreamer-GstMeta.html
index 0ce4128..15edc03 100644
--- a/docs/gst/html/gstreamer-GstMeta.html
+++ b/docs/gst/html/gstreamer-GstMeta.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMeta</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstMessage.html" title="GstMessage">
 <link rel="next" href="gstreamer-GstMiniObject.html" title="GstMiniObject">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstMessage.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstMiniObject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -41,28 +41,37 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta">GstMeta</a>;
+enum                <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags">GstMetaFlags</a>;
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAGS:CAPS" title="GST_META_FLAGS()">GST_META_FLAGS</a>                      (meta)
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-IS-SET:CAPS" title="GST_META_FLAG_IS_SET()">GST_META_FLAG_IS_SET</a>                (meta,
+                                                         flag)
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-SET:CAPS" title="GST_META_FLAG_SET()">GST_META_FLAG_SET</a>                   (meta,
+                                                         flag)
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-UNSET:CAPS" title="GST_META_FLAG_UNSET()">GST_META_FLAG_UNSET</a>                 (meta,
+                                                         flag)
 struct              <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo">GstMetaInfo</a>;
-#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-TRACE-NAME:CAPS" title="GST_META_TRACE_NAME">GST_META_TRACE_NAME</a>
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()">*GstMetaInitFunction</a>)              (<em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> params</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()">*GstMetaFreeFunction</a>)              (<em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMeta.html#GstMetaCopyFunction" title="GstMetaCopyFunction ()">*GstMetaCopyFunction</a>)              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *dest</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()">*GstMetaTransformFunction</a>)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *transbuf</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()">*GstMetaTransformFunction</a>)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *transbuf</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
-const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * <a class="link" href="gstreamer-GstMeta.html#gst-meta-register" title="gst_meta_register ()">gst_meta_register</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>,
+                    <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformCopy" title="GstMetaTransformCopy">GstMetaTransformCopy</a>;
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-TRANSFORM-IS-COPY:CAPS" title="GST_META_TRANSFORM_IS_COPY()">GST_META_TRANSFORM_IS_COPY</a>          (type)
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-register" title="gst_meta_api_type_register ()">gst_meta_api_type_register</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **tags</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-has-tag" title="gst_meta_api_type_has_tag ()">gst_meta_api_type_has_tag</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> tag</code></em>);
+#define             <a class="link" href="gstreamer-GstMeta.html#GST-META-TAG-MEMORY:CAPS" title="GST_META_TAG_MEMORY">GST_META_TAG_MEMORY</a>
+const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * <a class="link" href="gstreamer-GstMeta.html#gst-meta-register" title="gst_meta_register ()">gst_meta_register</a>                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a> init_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaCopyFunction" title="GstMetaCopyFunction ()"><span class="type">GstMetaCopyFunction</span></a> copy_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a> transform_func</code></em>);
 const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()">gst_meta_get_info</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>);
 </pre>
@@ -70,7 +79,32 @@
 <div class="refsect1">
 <a name="gstreamer-GstMeta.description"></a><h2>Description</h2>
 <p>
-Last reviewed on December 17th, 2009 (0.10.26)
+The <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> structure should be included as the first member of a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+metadata structure. The structure defines the API of the metadata and should
+be accessible to all elements using the metadata.
+</p>
+<p>
+A metadata API is registered with <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-register" title="gst_meta_api_type_register ()"><code class="function">gst_meta_api_type_register()</code></a> which takes a
+name for the metadata API and some tags associated with the metadata.
+With <a class="link" href="gstreamer-GstMeta.html#gst-meta-api-type-has-tag" title="gst_meta_api_type_has_tag ()"><code class="function">gst_meta_api_type_has_tag()</code></a> one can check if a certain metadata API
+contains a given tag.
+</p>
+<p>
+Multiple implementations of a metadata API can be registered.
+To implement a metadata API, <a class="link" href="gstreamer-GstMeta.html#gst-meta-register" title="gst_meta_register ()"><code class="function">gst_meta_register()</code></a> should be used. This
+function takes all parameters needed to create, free and transform metadata
+along with the size of the metadata. The function returns a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a>
+structure that contains the information for the implementation of the API.
+</p>
+<p>
+A specific implementation can be retrieved by name with <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()"><code class="function">gst_meta_get_info()</code></a>.
+</p>
+<p>
+See <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> for how the metadata can be added, retrieved and removed from
+buffers.
+</p>
+<p>
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -78,6 +112,7 @@
 <div class="refsect2">
 <a name="GstMeta"></a><h3>struct GstMeta</h3>
 <pre class="programlisting">struct GstMeta {
+  GstMetaFlags       flags;
   const GstMetaInfo *info;
 };
 </pre>
@@ -87,24 +122,152 @@
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody><tr>
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> <em class="structfield"><code><a name="GstMeta.flags"></a>flags</code></em>;</span></p></td>
+<td>extra flags for the metadata</td>
+</tr>
+<tr>
 <td><p><span class="term">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> *<em class="structfield"><code><a name="GstMeta.info"></a>info</code></em>;</span></p></td>
 <td>pointer to the <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a>
 </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstMetaFlags"></a><h3>enum GstMetaFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_META_FLAG_NONE        = 0,
+  GST_META_FLAG_READONLY    = (1 &lt;&lt; 0),
+  GST_META_FLAG_POOLED      = (1 &lt;&lt; 1),
+
+  GST_META_FLAG_LAST        = (1 &lt;&lt; 16)
+} GstMetaFlags;
+</pre>
+<p>
+Extra metadata flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-META-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_META_FLAG_NONE</code></span></p></td>
+<td>no flags
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-META-FLAG-READONLY:CAPS"></a><span class="term"><code class="literal">GST_META_FLAG_READONLY</code></span></p></td>
+<td>metadata should not be modified
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-META-FLAG-POOLED:CAPS"></a><span class="term"><code class="literal">GST_META_FLAG_POOLED</code></span></p></td>
+<td>metadata is managed by a bufferpool and should not
+   be removed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-META-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_META_FLAG_LAST</code></span></p></td>
+<td>additional flags can be added starting from this flag.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-FLAGS:CAPS"></a><h3>GST_META_FLAGS()</h3>
+<pre class="programlisting">#define GST_META_FLAGS(meta)  (GST_META_CAST (meta)-&gt;flags)
+</pre>
+<p>
+A flags word containing <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> flags set on <em class="parameter"><code>meta</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-META-FLAG-IS-SET:CAPS"></a><h3>GST_META_FLAG_IS_SET()</h3>
+<pre class="programlisting">#define GST_META_FLAG_IS_SET(meta,flag)        !!(GST_META_FLAGS (meta) &amp; (flag))
+</pre>
+<p>
+Gives the status of a specific flag on a metadata.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to check.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-FLAG-SET:CAPS"></a><h3>GST_META_FLAG_SET()</h3>
+<pre class="programlisting">#define GST_META_FLAG_SET(meta,flag)           (GST_META_FLAGS (meta) |= (flag))
+</pre>
+<p>
+Sets a metadata flag on a metadata.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-FLAG-UNSET:CAPS"></a><h3>GST_META_FLAG_UNSET()</h3>
+<pre class="programlisting">#define GST_META_FLAG_UNSET(meta,flag)         (GST_META_FLAGS (meta) &amp;= ~(flag))
+</pre>
+<p>
+Clears a metadata flag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>meta</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMeta.html#GstMetaFlags" title="enum GstMetaFlags"><span class="type">GstMetaFlags</span></a> to clear.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstMetaInfo"></a><h3>struct GstMetaInfo</h3>
 <pre class="programlisting">struct GstMetaInfo {
-  GQuark                     api;
+  GType                      api;
   GType                      type;
   gsize                      size;
 
   GstMetaInitFunction        init_func;
   GstMetaFreeFunction        free_func;
-  GstMetaCopyFunction        copy_func;
   GstMetaTransformFunction   transform_func;
 };
 </pre>
@@ -116,7 +279,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstMetaInfo.api"></a>api</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GstMetaInfo.api"></a>api</code></em>;</span></p></td>
 <td>tag indentifying the metadata structure and api</td>
 </tr>
 <tr>
@@ -124,7 +287,7 @@
 <td>type indentifying the implementor of the api</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstMetaInfo.size"></a>size</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMetaInfo.size"></a>size</code></em>;</span></p></td>
 <td>size of the metadata</td>
 </tr>
 <tr>
@@ -136,10 +299,6 @@
 <td>function for freeing the metadata</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMeta.html#GstMetaCopyFunction" title="GstMetaCopyFunction ()"><span class="type">GstMetaCopyFunction</span></a> <em class="structfield"><code><a name="GstMetaInfo.copy-func"></a>copy_func</code></em>;</span></p></td>
-<td>function for copying the metadata</td>
-</tr>
-<tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a> <em class="structfield"><code><a name="GstMetaInfo.transform-func"></a>transform_func</code></em>;</span></p></td>
 <td>function for transforming the metadata</td>
 </tr>
@@ -148,15 +307,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-META-TRACE-NAME:CAPS"></a><h3>GST_META_TRACE_NAME</h3>
-<pre class="programlisting">#define GST_META_TRACE_NAME           "GstMeta"
-</pre>
-<p>
-The name used for tracing memory allocations.
-</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMetaInitFunction"></a><h3>GstMetaInitFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstMetaInitFunction)              (<em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> params</code></em>,
@@ -210,28 +360,21 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMetaCopyFunction"></a><h3>GstMetaCopyFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMetaCopyFunction)              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMetaTransformFunction"></a><h3>GstMetaTransformFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMetaTransformFunction)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *transbuf</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstMetaTransformFunction)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *transbuf</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
 <p>
 Function called for each <em class="parameter"><code>meta</code></em> in <em class="parameter"><code>buffer</code></em> as a result of performing a
-transformation on <em class="parameter"><code>transbuf</code></em>. Additional type specific transform data
-is passed to the function.
+transformation on <em class="parameter"><code>transbuf</code></em>. Additional <em class="parameter"><code>type</code></em> specific transform data
+is passed to the function as <em class="parameter"><code>data</code></em>.
 </p>
 <p>
-Implementations should check the type of the transform <em class="parameter"><code>data</code></em> and parse
-additional type specific field that should be used to perform the transform.
+Implementations should check the <em class="parameter"><code>type</code></em> of the transform and parse
+additional type specific fields in <em class="parameter"><code>data</code></em> that should be used to update
+the metadata on <em class="parameter"><code>transbuf</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -252,29 +395,194 @@
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>the transform type</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 <td>transform specific data.</td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the transform could be performed</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstMetaTransformCopy"></a><h3>GstMetaTransformCopy</h3>
+<pre class="programlisting">typedef struct {
+  gboolean region;
+  gsize offset;
+  gsize size;
+} GstMetaTransformCopy;
+</pre>
+<p>
+Extra data passed to a "gst-copy" transform <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstMetaTransformCopy.region"></a>region</code></em>;</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if only region is copied</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMetaTransformCopy.offset"></a>offset</code></em>;</span></p></td>
+<td>the offset to copy, 0 if <em class="parameter"><code>region</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, otherwise &gt; 0</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMetaTransformCopy.size"></a>size</code></em>;</span></p></td>
+<td>the size to copy, -1 or the buffer size when <em class="parameter"><code>region</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TRANSFORM-IS-COPY:CAPS"></a><h3>GST_META_TRANSFORM_IS_COPY()</h3>
+<pre class="programlisting">#define GST_META_TRANSFORM_IS_COPY(type) ((type) == _gst_meta_transform_copy)
+</pre>
+<p>
+Check if the transform type is a copy transform
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>a transform type</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-meta-api-type-register"></a><h3>gst_meta_api_type_register ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               gst_meta_api_type_register          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **tags</code></em>);</pre>
+<p>
+Register and return a GType for the <em class="parameter"><code>api</code></em> and associate it with
+<em class="parameter"><code>tags</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>an API to register</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
+<td>tags for <em class="parameter"><code>api</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a unique GType for <em class="parameter"><code>api</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-meta-api-type-has-tag"></a><h3>gst_meta_api_type_has_tag ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_meta_api_type_has_tag           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> tag</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>api</code></em> was registered with <em class="parameter"><code>tag</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>an API</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
+<td>the tag to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>api</code></em> was registered with <em class="parameter"><code>tag</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-META-TAG-MEMORY:CAPS"></a><h3>GST_META_TAG_MEMORY</h3>
+<pre class="programlisting">#define GST_META_TAG_MEMORY (_gst_meta_tag_memory)
+</pre>
+<p>
+Metadata tagged with this tag depends on the particular memory
+or buffer that it is on.
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-meta-register"></a><h3>gst_meta_register ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * gst_meta_register                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>,
+<pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * gst_meta_register                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a> init_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a> free_func</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaCopyFunction" title="GstMetaCopyFunction ()"><span class="type">GstMetaCopyFunction</span></a> copy_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a> transform_func</code></em>);</pre>
+<p>
+Register a new <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> implementation.
+</p>
+<p>
+The same <em class="parameter"><code>info</code></em> can be retrieved later with <a class="link" href="gstreamer-GstMeta.html#gst-meta-get-info" title="gst_meta_get_info ()"><code class="function">gst_meta_get_info()</code></a> by using
+<em class="parameter"><code>impl</code></em> as the key.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>the type of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> API</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>impl</code></em> :</span></p></td>
+<td>the name of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> implementation</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of the <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>init_func</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>transform_func</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> that can be used to access metadata. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-meta-get-info"></a><h3>gst_meta_get_info ()</h3>
 <pre class="programlisting">const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="returnvalue">GstMetaInfo</span></a> * gst_meta_get_info                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *impl</code></em>);</pre>
 <p>
-Lookup a previously registered meta info structure by its implementor name
+Lookup a previously registered meta info structure by its implementation name
 <em class="parameter"><code>impl</code></em>.
 </p>
 <div class="variablelist"><table border="0">
@@ -286,8 +594,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> with <em class="parameter"><code>impl</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no such metainfo
-exists.</td>
+<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a> with <em class="parameter"><code>impl</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no such
+metainfo exists. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/gst/html/gstreamer-GstMiniObject.html b/docs/gst/html/gstreamer-GstMiniObject.html
index be59c7f..3903994 100644
--- a/docs/gst/html/gstreamer-GstMiniObject.html
+++ b/docs/gst/html/gstreamer-GstMiniObject.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstMiniObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstMeta.html" title="GstMeta">
 <link rel="next" href="GstObject.html" title="GstObject">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstMeta.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstObject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -62,7 +62,7 @@
                                                          type_name)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-init" title="gst_mini_object_init ()">gst_mini_object_init</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-copy" title="gst_mini_object_copy ()">gst_mini_object_copy</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-is-writable" title="gst_mini_object_is_writable ()">gst_mini_object_is_writable</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
 <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-make-writable" title="gst_mini_object_make_writable ()">gst_mini_object_make_writable</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
@@ -84,13 +84,30 @@
 <div class="refsect1">
 <a name="gstreamer-GstMiniObject.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> is a baseclass like <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>, but has been stripped down of
-features to be fast and small.
-It offers sub-classing and ref-counting in the same way as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> does.
-It has no properties and no signal-support though.
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> is a simple structure that can be used to implement refcounted
+types.
 </p>
 <p>
-Last reviewed on 2005-11-23 (0.9.5)
+Subclasses will include <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> as the first member in their structure
+and then call <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-init" title="gst_mini_object_init ()"><code class="function">gst_mini_object_init()</code></a> to initialize the <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> fields.
+</p>
+<p>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-ref" title="gst_mini_object_ref ()"><code class="function">gst_mini_object_ref()</code></a> and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unref" title="gst_mini_object_unref ()"><code class="function">gst_mini_object_unref()</code></a> increment and decrement the
+refcount respectively. When the refcount of a mini-object reaches 0, the
+dispose function is called first and when this returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the free
+function of the miniobject is called.
+</p>
+<p>
+A copy can be made with <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-copy" title="gst_mini_object_copy ()"><code class="function">gst_mini_object_copy()</code></a>.
+</p>
+<p>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-is-writable" title="gst_mini_object_is_writable ()"><code class="function">gst_mini_object_is_writable()</code></a> will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the refcount of the
+object is exactly 1, meaning the current caller has the only reference to the
+object. <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-make-writable" title="gst_mini_object_make_writable ()"><code class="function">gst_mini_object_make_writable()</code></a> will return a writable version of the
+object, which might be a new copy when the refcount was not 1.
+</p>
+<p>
+Last reviewed on 2012-03-28 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -132,7 +149,7 @@
 <td>extra flags.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstMiniObject.size"></a>size</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMiniObject.size"></a>size</code></em>;</span></p></td>
 <td>the size of the structure</td>
 </tr>
 <tr>
@@ -265,6 +282,16 @@
 <a name="GST-MINI-OBJECT-TYPE:CAPS"></a><h3>GST_MINI_OBJECT_TYPE()</h3>
 <pre class="programlisting">#define GST_MINI_OBJECT_TYPE(obj)  (GST_MINI_OBJECT_CAST(obj)-&gt;type)
 </pre>
+<p>
+This macro returns the type of the mini-object.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>MiniObject to return type for.</td>
+</tr></tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -403,13 +430,29 @@
 <div class="refsect2">
 <a name="GST-DEFINE-MINI-OBJECT-TYPE:CAPS"></a><h3>GST_DEFINE_MINI_OBJECT_TYPE()</h3>
 <pre class="programlisting">#define             GST_DEFINE_MINI_OBJECT_TYPE(TypeName,type_name)</pre>
+<p>
+Define a new mini-object type with the given name
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>TypeName</code></em> :</span></p></td>
+<td>name of the new type in CamelCase</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
+<td>name of the new type</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mini-object-init"></a><h3>gst_mini_object_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_init                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Initializes a mini-object with the desired type and size.
 </p>
@@ -471,9 +514,8 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_is_writable         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
 <p>
 Checks if a mini-object is writable.  A mini-object is writable
-if the reference count is one and the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-READONLY:CAPS"><span class="type">GST_MINI_OBJECT_FLAG_READONLY</span></a>
-flag is not set.  Modification of a mini-object should only be
-done after verifying that it is writable.
+if the reference count is one. Modification of a mini-object should
+only be done after verifying that it is writable.
 </p>
 <p>
 MT safe
diff --git a/docs/gst/html/gstreamer-GstParamSpec.html b/docs/gst/html/gstreamer-GstParamSpec.html
index 699a166..3716355 100644
--- a/docs/gst/html/gstreamer-GstParamSpec.html
+++ b/docs/gst/html/gstreamer-GstParamSpec.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstParamSpec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPadTemplate.html" title="GstPadTemplate">
 <link rel="next" href="gstreamer-GstParse.html" title="GstParse">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPadTemplate.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstParse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -129,7 +129,7 @@
 <a name="GstParamSpecFraction"></a><h3>struct GstParamSpecFraction</h3>
 <pre class="programlisting">struct GstParamSpecFraction {
   GParamSpec    parent_instance;
-  
+
   gint          min_num, min_den;
   gint          max_num, max_den;
   gint          def_num, def_den;
@@ -237,7 +237,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly created parameter specification</td>
+<td>a newly created parameter specification. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/gst/html/gstreamer-GstParse.html b/docs/gst/html/gstreamer-GstParse.html
index 31374ed..15b4a03 100644
--- a/docs/gst/html/gstreamer-GstParse.html
+++ b/docs/gst/html/gstreamer-GstParse.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstParse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstParamSpec.html" title="GstParamSpec">
 <link rel="next" href="GstPipeline.html" title="GstPipeline">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstParamSpec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPipeline.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -231,7 +231,7 @@
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new element on success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure. If
 more than one toplevel element is specified by the <em class="parameter"><code>pipeline_description</code></em>,
-all elements are put into a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>, which than is returned. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+all elements are put into a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a>, which than is returned. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
@@ -396,7 +396,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly-created bin, or NULL if an error occurred. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a newly-created bin, or NULL if an error occurred. <span class="annotation">[transfer floating]</span>
 </td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/gstreamer-GstPoll.html b/docs/gst/html/gstreamer-GstPoll.html
index 3cdb187..1201175 100644
--- a/docs/gst/html/gstreamer-GstPoll.html
+++ b/docs/gst/html/gstreamer-GstPoll.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPoll</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPluginFeature.html" title="GstPluginFeature">
 <link rel="next" href="GstPreset.html" title="GstPreset">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPluginFeature.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstPreset.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -87,19 +87,19 @@
 A <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a> keeps track of file descriptors much like fd_set (used with
 <code class="function">select()</code>) or a struct pollfd array (used with <code class="function">poll()</code>). Once created with
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-new" title="gst_poll_new ()"><code class="function">gst_poll_new()</code></a>, the set can be used to wait for file descriptors to be
-readable and/or writeable. It is possible to make this wait be controlled
+readable and/or writable. It is possible to make this wait be controlled
 by specifying <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for the <em class="parameter"><code>controllable</code></em> flag when creating the set (or
 later calling <a class="link" href="gstreamer-GstPoll.html#gst-poll-set-controllable" title="gst_poll_set_controllable ()"><code class="function">gst_poll_set_controllable()</code></a>).
 </p>
 <p>
 New file descriptors are added to the set using <a class="link" href="gstreamer-GstPoll.html#gst-poll-add-fd" title="gst_poll_add_fd ()"><code class="function">gst_poll_add_fd()</code></a>, and
 removed using <a class="link" href="gstreamer-GstPoll.html#gst-poll-remove-fd" title="gst_poll_remove_fd ()"><code class="function">gst_poll_remove_fd()</code></a>. Controlling which file descriptors
-should be waited for to become readable and/or writeable are done using
+should be waited for to become readable and/or writable are done using
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-fd-ctl-read" title="gst_poll_fd_ctl_read ()"><code class="function">gst_poll_fd_ctl_read()</code></a> and <a class="link" href="gstreamer-GstPoll.html#gst-poll-fd-ctl-write" title="gst_poll_fd_ctl_write ()"><code class="function">gst_poll_fd_ctl_write()</code></a>.
 </p>
 <p>
 Use <a class="link" href="gstreamer-GstPoll.html#gst-poll-wait" title="gst_poll_wait ()"><code class="function">gst_poll_wait()</code></a> to wait for the file descriptors to actually become
-readable and/or writeable, or to timeout if no file descriptor is available
+readable and/or writable, or to timeout if no file descriptor is available
 in time. The wait can be controlled by calling <a class="link" href="gstreamer-GstPoll.html#gst-poll-restart" title="gst_poll_restart ()"><code class="function">gst_poll_restart()</code></a> and
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-set-flushing" title="gst_poll_set_flushing ()"><code class="function">gst_poll_set_flushing()</code></a>.
 </p>
diff --git a/docs/gst/html/gstreamer-GstQuery.html b/docs/gst/html/gstreamer-GstQuery.html
index 5d06b4f..9d9b816 100644
--- a/docs/gst/html/gstreamer-GstQuery.html
+++ b/docs/gst/html/gstreamer-GstQuery.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstQuery</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstPreset.html" title="GstPreset">
 <link rel="next" href="GstRegistry.html" title="GstRegistry">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstRegistry.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -31,8 +31,8 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gstreamer-GstQuery.top_of_page"></a>GstQuery</span></h2>
-<p>GstQuery — Dynamically register new query types. Provide functions
-                    to create queries, and to set and parse values in them.</p>
+<p>GstQuery — Provide functions to create queries, and to set and parse
+                    values in them.</p>
 </td>
 <td valign="top" align="right"></td>
 </tr></table></div>
@@ -42,57 +42,57 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery">GstQuery</a>;
+enum                <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags">GstQueryTypeFlags</a>;
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-BOTH:CAPS" title="GST_QUERY_TYPE_BOTH">GST_QUERY_TYPE_BOTH</a>
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS" title="GST_QUERY_MAKE_TYPE()">GST_QUERY_MAKE_TYPE</a>                 (num,
+                                                         flags)
 enum                <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType">GstQueryType</a>;
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS" title="GST_QUERY_TYPE()">GST_QUERY_TYPE</a>                      (query)
 #define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS" title="GST_QUERY_TYPE_NAME()">GST_QUERY_TYPE_NAME</a>                 (query)
-struct              <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition">GstQueryTypeDefinition</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-name" title="gst_query_type_get_name ()">gst_query_type_get_name</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> query</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstQuery.html#gst-query-type-to-quark" title="gst_query_type_to_quark ()">gst_query_type_to_quark</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> query</code></em>);
-<a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a>        <a class="link" href="gstreamer-GstQuery.html#gst-query-type-register" title="gst_query_type_register ()">gst_query_type_register</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);
-<a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a>        <a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-by-nick" title="gst_query_type_get_by_nick ()">gst_query_type_get_by_nick</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-types-contains" title="gst_query_types_contains ()">gst_query_types_contains</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> *types</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);
-const <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition"><span class="returnvalue">GstQueryTypeDefinition</span></a> * <a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-details" title="gst_query_type_get_details ()">gst_query_type_get_details</a>
-                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);
-<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="gstreamer-GstQuery.html#gst-query-type-iterate-definitions" title="gst_query_type_iterate_definitions ()">gst_query_type_iterate_definitions</a>  (<em class="parameter"><code><span class="type">void</span></code></em>);
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS" title="GST_QUERY_IS_UPSTREAM()">GST_QUERY_IS_UPSTREAM</a>               (ev)
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS" title="GST_QUERY_IS_DOWNSTREAM()">GST_QUERY_IS_DOWNSTREAM</a>             (ev)
+#define             <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-SERIALIZED:CAPS" title="GST_QUERY_IS_SERIALIZED()">GST_QUERY_IS_SERIALIZED</a>             (ev)
+<a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="returnvalue">GstQueryTypeFlags</span></a>   <a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-flags" title="gst_query_type_get_flags ()">gst_query_type_get_flags</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-name" title="gst_query_type_get_name ()">gst_query_type_get_name</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstQuery.html#gst-query-type-to-quark" title="gst_query_type_to_quark ()">gst_query_type_to_quark</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-ref" title="gst_query_ref ()">gst_query_ref</a>                       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-unref" title="gst_query_unref ()">gst_query_unref</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-copy" title="gst_query_copy ()">gst_query_copy</a>                      (<em class="parameter"><code>const <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);
 #define             <a class="link" href="gstreamer-GstQuery.html#gst-query-make-writable" title="gst_query_make_writable()">gst_query_make_writable</a>             (q)
 #define             <a class="link" href="gstreamer-GstQuery.html#gst-query-is-writable" title="gst_query_is_writable()">gst_query_is_writable</a>               (q)
-#define             <a class="link" href="gstreamer-GstQuery.html#gst-query-replace" title="gst_query_replace()">gst_query_replace</a>                   (old_query,
-                                                         new_query)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-replace" title="gst_query_replace ()">gst_query_replace</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> **old_query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *new_query</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstQuery.html#gst-query-writable-structure" title="gst_query_writable_structure ()">gst_query_writable_structure</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-custom" title="gst_query_new_custom ()">gst_query_new_custom</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
 const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gstreamer-GstQuery.html#gst-query-get-structure" title="gst_query_get_structure ()">gst_query_get_structure</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-convert" title="gst_query_new_convert ()">gst_query_new_convert</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-convert" title="gst_query_set_convert ()">gst_query_set_convert</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> dest_value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> dest_value</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-convert" title="gst_query_parse_convert ()">gst_query_parse_convert</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *src_value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-position" title="gst_query_new_position ()">gst_query_new_position</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-position" title="gst_query_set_position ()">gst_query_set_position</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> cur</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-position" title="gst_query_parse_position ()">gst_query_parse_position</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-duration" title="gst_query_new_duration ()">gst_query_new_duration</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-duration" title="gst_query_set_duration ()">gst_query_set_duration</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-duration" title="gst_query_parse_duration ()">gst_query_parse_duration</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-latency" title="gst_query_new_latency ()">gst_query_new_latency</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-latency" title="gst_query_parse_latency ()">gst_query_parse_latency</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
@@ -106,13 +106,13 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-seeking" title="gst_query_set_seeking ()">gst_query_set_seeking</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> seekable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> segment_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> segment_end</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> segment_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> segment_end</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-seeking" title="gst_query_parse_seeking ()">gst_query_parse_seeking</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *seekable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *segment_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *segment_end</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *segment_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *segment_end</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-formats" title="gst_query_new_formats ()">gst_query_new_formats</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-formats" title="gst_query_set_formats ()">gst_query_set_formats</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_formats</code></em>,
@@ -129,13 +129,30 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-segment" title="gst_query_set_segment ()">gst_query_set_segment</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop_value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> start_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop_value</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-segment" title="gst_query_parse_segment ()">gst_query_parse_segment</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop_value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop_value</code></em>);
+<a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-caps" title="gst_query_new_caps ()">gst_query_new_caps</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-caps" title="gst_query_parse_caps ()">gst_query_parse_caps</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **filter</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-caps-result" title="gst_query_set_caps_result ()">gst_query_set_caps_result</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-caps-result" title="gst_query_parse_caps_result ()">gst_query_parse_caps_result</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-intersect-caps-result" title="gst_query_intersect_caps_result ()">gst_query_intersect_caps_result</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);
+<a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-accept-caps" title="gst_query_new_accept_caps ()">gst_query_new_accept_caps</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-accept-caps" title="gst_query_parse_accept_caps ()">gst_query_parse_accept_caps</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-accept-caps-result" title="gst_query_set_accept_caps_result ()">gst_query_set_accept_caps_result</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> result</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-accept-caps-result" title="gst_query_parse_accept_caps_result ()">gst_query_parse_accept_caps_result</a>  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *result</code></em>);
 enum                <a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode">GstBufferingMode</a>;
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-buffering" title="gst_query_new_buffering ()">gst_query_new_buffering</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-buffering-percent" title="gst_query_set_buffering_percent ()">gst_query_set_buffering_percent</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
@@ -148,30 +165,30 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> buffering_left</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> buffering_left</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-buffering-stats" title="gst_query_parse_buffering_stats ()">gst_query_parse_buffering_stats</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> *mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *buffering_left</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *buffering_left</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-buffering-range" title="gst_query_set_buffering_range ()">gst_query_set_buffering_range</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> estimated_total</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> estimated_total</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-buffering-range" title="gst_query_parse_buffering_range ()">gst_query_parse_buffering_range</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *estimated_total</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *estimated_total</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-add-buffering-range" title="gst_query_add_buffering_range ()">gst_query_add_buffering_range</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges" title="gst_query_get_n_buffering_ranges ()">gst_query_get_n_buffering_ranges</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-buffering-range" title="gst_query_parse_nth_buffering_range ()">gst_query_parse_nth_buffering_range</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-uri" title="gst_query_new_uri ()">gst_query_new_uri</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-uri" title="gst_query_parse_uri ()">gst_query_parse_uri</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uri</code></em>);
@@ -182,55 +199,79 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-allocation" title="gst_query_parse_allocation ()">gst_query_parse_allocation</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *need_pool</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-allocation-params" title="gst_query_parse_allocation_params ()">gst_query_parse_allocation_params</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *alignment</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> **pool</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-memory" title="gst_query_parse_nth_allocation_memory ()">gst_query_parse_nth_allocation_memory</a>
-                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta" title="gst_query_parse_nth_allocation_meta ()">gst_query_parse_nth_allocation_meta</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-allocation-params" title="gst_query_set_allocation_params ()">gst_query_set_allocation_params</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-pool" title="gst_query_add_allocation_pool ()">gst_query_add_allocation_pool</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> alignment</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-memory" title="gst_query_add_allocation_memory ()">gst_query_add_allocation_memory</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *alloc</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-pools" title="gst_query_get_n_allocation_pools ()">gst_query_get_n_allocation_pools</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-pool" title="gst_query_parse_nth_allocation_pool ()">gst_query_parse_nth_allocation_pool</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> **pool</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-nth-allocation-pool" title="gst_query_set_nth_allocation_pool ()">gst_query_set_nth_allocation_pool</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-param" title="gst_query_add_allocation_param ()">gst_query_add_allocation_param</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-params" title="gst_query_get_n_allocation_params ()">gst_query_get_n_allocation_params</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-param" title="gst_query_parse_nth_allocation_param ()">gst_query_parse_nth_allocation_param</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-nth-allocation-param" title="gst_query_set_nth_allocation_param ()">gst_query_set_nth_allocation_param</a>  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-meta" title="gst_query_add_allocation_meta ()">gst_query_add_allocation_meta</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-has-allocation-meta" title="gst_query_has_allocation_meta ()">gst_query_has_allocation_meta</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-memories" title="gst_query_get_n_allocation_memories ()">gst_query_get_n_allocation_memories</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas" title="gst_query_get_n_allocation_metas ()">gst_query_get_n_allocation_metas</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta" title="gst_query_parse_nth_allocation_meta ()">gst_query_parse_nth_allocation_meta</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta" title="gst_query_remove_nth_allocation_meta ()">gst_query_remove_nth_allocation_meta</a>
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-has-allocation-meta" title="gst_query_has_allocation_meta ()">gst_query_has_allocation_meta</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
+enum                <a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags">GstSchedulingFlags</a>;
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-scheduling" title="gst_query_new_scheduling ()">gst_query_new_scheduling</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-scheduling" title="gst_query_parse_scheduling ()">gst_query_parse_scheduling</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *pull_mode</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *random_access</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sequential</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a> *flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *align</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-scheduling" title="gst_query_set_scheduling ()">gst_query_set_scheduling</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> pull_mode</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> random_access</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sequential</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> align</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-scheduling-mode" title="gst_query_add_scheduling_mode ()">gst_query_add_scheduling_mode</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-scheduling-modes" title="gst_query_get_n_scheduling_modes ()">gst_query_get_n_scheduling_modes</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="returnvalue">GstPadMode</span></a>          <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode" title="gst_query_parse_nth_scheduling_mode ()">gst_query_parse_nth_scheduling_mode</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-has-scheduling-mode" title="gst_query_has_scheduling_mode ()">gst_query_has_scheduling_mode</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>);
+<a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-drain" title="gst_query_new_drain ()">gst_query_new_drain</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()">gst_query_new_toc</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()">gst_query_parse_toc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extend_uid</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()">gst_query_set_toc</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extend_uid</code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstQuery.description"></a><h2>Description</h2>
 <p>
-GstQuery functions are used to register new query types to the gstreamer
-core and use them.
 Queries can be performed on pads (<a class="link" href="GstPad.html#gst-pad-query" title="gst_pad_query ()"><code class="function">gst_pad_query()</code></a>) and elements
 (<a class="link" href="GstElement.html#gst-element-query" title="gst_element_query ()"><code class="function">gst_element_query()</code></a>). Please note that some queries might need a running
 pipeline to work.
@@ -246,27 +287,47 @@
 <p>
 </p>
 <div class="example">
-<a name="id639451"></a><p class="title"><b>Example 13. Query duration on a pipeline</b></p>
-<div class="example-contents"><pre class="programlisting">
- GstQuery *query;
- gboolean res;
- query = gst_query_new_duration (GST_FORMAT_TIME);
- res = gst_element_query (pipeline, query);
- if (res) {
-   gint64 duration;
-   gst_query_parse_duration (query, NULL, &amp;duration);
-   g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration));
- }
- else {
-   g_print ("duration query failed...");
- }
- gst_query_unref (query);
- </pre></div>
+<a name="idp37816176"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstQuery <span class="gtkdoc opt">*</span>query<span class="gtkdoc opt">;</span>
+gboolean res<span class="gtkdoc opt">;</span>
+query <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-duration">gst_query_new_duration</a></span> <span class="gtkdoc opt">(</span>GST_FORMAT_TIME<span class="gtkdoc opt">);</span>
+res <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-query">gst_element_query</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> query<span class="gtkdoc opt">);</span>
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span>res<span class="gtkdoc opt">) {</span>
+  gint64 duration<span class="gtkdoc opt">;</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-duration">gst_query_parse_duration</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">, &amp;</span>duration<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;duration = %&quot;</span>GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span>duration<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span>
+<span class="keyword">else</span> <span class="gtkdoc opt">{</span>
+  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;duration query failed...&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-unref">gst_query_unref</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
 <p>
-Last reviewed on 2006-02-14 (0.10.4)
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -299,23 +360,93 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstQueryTypeFlags"></a><h3>enum GstQueryTypeFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_QUERY_TYPE_UPSTREAM       = 1 &lt;&lt; 0,
+  GST_QUERY_TYPE_DOWNSTREAM     = 1 &lt;&lt; 1,
+  GST_QUERY_TYPE_SERIALIZED     = 1 &lt;&lt; 2
+} GstQueryTypeFlags;
+</pre>
+<p>
+<a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a> indicate the aspects of the different <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>
+values. You can get the type flags of a <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> with the
+<a class="link" href="gstreamer-GstQuery.html#gst-query-type-get-flags" title="gst_query_type_get_flags ()"><code class="function">gst_query_type_get_flags()</code></a> function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-QUERY-TYPE-UPSTREAM:CAPS"></a><span class="term"><code class="literal">GST_QUERY_TYPE_UPSTREAM</code></span></p></td>
+<td>Set if the query can travel upstream.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-QUERY-TYPE-DOWNSTREAM:CAPS"></a><span class="term"><code class="literal">GST_QUERY_TYPE_DOWNSTREAM</code></span></p></td>
+<td>Set if the query can travel downstream.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-QUERY-TYPE-SERIALIZED:CAPS"></a><span class="term"><code class="literal">GST_QUERY_TYPE_SERIALIZED</code></span></p></td>
+<td>Set if the query should be serialized with data
+                              flow.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-QUERY-TYPE-BOTH:CAPS"></a><h3>GST_QUERY_TYPE_BOTH</h3>
+<pre class="programlisting">#define             GST_QUERY_TYPE_BOTH</pre>
+<p>
+The same thing as <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-UPSTREAM:CAPS"><span class="type">GST_QUERY_TYPE_UPSTREAM</span></a> | <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-TYPE-DOWNSTREAM:CAPS"><span class="type">GST_QUERY_TYPE_DOWNSTREAM</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-QUERY-MAKE-TYPE:CAPS"></a><h3>GST_QUERY_MAKE_TYPE()</h3>
+<pre class="programlisting">#define             GST_QUERY_MAKE_TYPE(num,flags)</pre>
+<p>
+when making custom query types, use this macro with the num and
+the given flags
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>the query number to create</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>the query flags</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstQueryType"></a><h3>enum GstQueryType</h3>
 <pre class="programlisting">typedef enum {
-  GST_QUERY_NONE = 0,
-  GST_QUERY_POSITION,
-  GST_QUERY_DURATION,
-  GST_QUERY_LATENCY,
-  GST_QUERY_JITTER,     /* not in draft-query, necessary? */
-  GST_QUERY_RATE,
-  GST_QUERY_SEEKING,
-  GST_QUERY_SEGMENT,
-  GST_QUERY_CONVERT,
-  GST_QUERY_FORMATS,
-  GST_QUERY_BUFFERING,
-  GST_QUERY_CUSTOM,
-  GST_QUERY_URI,
-  GST_QUERY_ALLOCATION,
-  GST_QUERY_SCHEDULING
+  GST_QUERY_UNKNOWN      = GST_QUERY_MAKE_TYPE (0, 0),
+  GST_QUERY_POSITION     = GST_QUERY_MAKE_TYPE (10, FLAG(BOTH)),
+  GST_QUERY_DURATION     = GST_QUERY_MAKE_TYPE (20, FLAG(BOTH)),
+  GST_QUERY_LATENCY      = GST_QUERY_MAKE_TYPE (30, FLAG(BOTH)),
+  GST_QUERY_JITTER       = GST_QUERY_MAKE_TYPE (40, FLAG(BOTH)),
+  GST_QUERY_RATE         = GST_QUERY_MAKE_TYPE (50, FLAG(BOTH)),
+  GST_QUERY_SEEKING      = GST_QUERY_MAKE_TYPE (60, FLAG(BOTH)),
+  GST_QUERY_SEGMENT      = GST_QUERY_MAKE_TYPE (70, FLAG(BOTH)),
+  GST_QUERY_CONVERT      = GST_QUERY_MAKE_TYPE (80, FLAG(BOTH)),
+  GST_QUERY_FORMATS      = GST_QUERY_MAKE_TYPE (90, FLAG(BOTH)),
+  GST_QUERY_BUFFERING    = GST_QUERY_MAKE_TYPE (110, FLAG(BOTH)),
+  GST_QUERY_CUSTOM       = GST_QUERY_MAKE_TYPE (120, FLAG(BOTH)),
+  GST_QUERY_URI          = GST_QUERY_MAKE_TYPE (130, FLAG(BOTH)),
+  GST_QUERY_ALLOCATION   = GST_QUERY_MAKE_TYPE (140, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_SCHEDULING   = GST_QUERY_MAKE_TYPE (150, FLAG(UPSTREAM)),
+  GST_QUERY_ACCEPT_CAPS  = GST_QUERY_MAKE_TYPE (160, FLAG(BOTH)),
+  GST_QUERY_CAPS         = GST_QUERY_MAKE_TYPE (170, FLAG(BOTH)),
+  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_TOC          = GST_QUERY_MAKE_TYPE (190, FLAG(BOTH))
 } GstQueryType;
 </pre>
 <p>
@@ -325,8 +456,8 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-QUERY-NONE:CAPS"></a><span class="term"><code class="literal">GST_QUERY_NONE</code></span></p></td>
-<td>invalid query type
+<td><p><a name="GST-QUERY-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_QUERY_UNKNOWN</code></span></p></td>
+<td>unknown query type
 </td>
 </tr>
 <tr>
@@ -401,11 +532,48 @@
 <td>the scheduling properties
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-QUERY-ACCEPT-CAPS"></a><span class="term"><code class="literal">GST_QUERY_ACCEPT_CAPS</code></span></p></td>
+<td>the accept caps query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-QUERY-CAPS"></a><span class="term"><code class="literal">GST_QUERY_CAPS</code></span></p></td>
+<td>the caps query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-QUERY-DRAIN:CAPS"></a><span class="term"><code class="literal">GST_QUERY_DRAIN</code></span></p></td>
+<td>wait till all serialized data is consumed downstream
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-QUERY-TOC:CAPS"></a><span class="term"><code class="literal">GST_QUERY_TOC</code></span></p></td>
+<td>query the full table of contents (TOC) with the marker
+for an entry which can be used to extend received TOC. Since 0.10.37.
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-QUERY-TYPE:CAPS"></a><h3>GST_QUERY_TYPE()</h3>
+<pre class="programlisting">#define GST_QUERY_TYPE(query)  (((GstQuery*)(query))-&gt;type)
+</pre>
+<p>
+Get the <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of the query.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>the query to query</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-QUERY-TYPE-NAME:CAPS"></a><h3>GST_QUERY_TYPE_NAME()</h3>
 <pre class="programlisting">#define GST_QUERY_TYPE_NAME(query) (gst_query_type_get_name(GST_QUERY_TYPE(query)))
 </pre>
@@ -423,35 +591,70 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstQueryTypeDefinition"></a><h3>struct GstQueryTypeDefinition</h3>
-<pre class="programlisting">struct GstQueryTypeDefinition {
-  GstQueryType   value;
-  const gchar   *nick;
-  const gchar   *description;
-  GQuark         quark;
-};
+<a name="GST-QUERY-IS-UPSTREAM:CAPS"></a><h3>GST_QUERY_IS_UPSTREAM()</h3>
+<pre class="programlisting">#define GST_QUERY_IS_UPSTREAM(ev)       !!(GST_QUERY_TYPE (ev) &amp; GST_QUERY_TYPE_UPSTREAM)
 </pre>
 <p>
-A Query Type definition
+Check if an query can travel upstream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
+<td>the query to query</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-QUERY-IS-DOWNSTREAM:CAPS"></a><h3>GST_QUERY_IS_DOWNSTREAM()</h3>
+<pre class="programlisting">#define GST_QUERY_IS_DOWNSTREAM(ev)     !!(GST_QUERY_TYPE (ev) &amp; GST_QUERY_TYPE_DOWNSTREAM)
+</pre>
+<p>
+Check if an query can travel downstream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
+<td>the query to query</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-QUERY-IS-SERIALIZED:CAPS"></a><h3>GST_QUERY_IS_SERIALIZED()</h3>
+<pre class="programlisting">#define GST_QUERY_IS_SERIALIZED(ev)     !!(GST_QUERY_TYPE (ev) &amp; GST_QUERY_TYPE_SERIALIZED)
+</pre>
+<p>
+Check if an query is serialized with the data stream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>ev</code></em> :</span></p></td>
+<td>the query to query</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-type-get-flags"></a><h3>gst_query_type_get_flags ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="returnvalue">GstQueryTypeFlags</span></a>   gst_query_type_get_flags            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
+<p>
+Gets the <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> <em class="structfield"><code><a name="GstQueryTypeDefinition.value"></a>value</code></em>;</span></p></td>
-<td>the unique id of the Query type</td>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>
+</td>
 </tr>
 <tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstQueryTypeDefinition.nick"></a>nick</code></em>;</span></p></td>
-<td>a short nick</td>
-</tr>
-<tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstQueryTypeDefinition.description"></a>description</code></em>;</span></p></td>
-<td>a longer description of the query type</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstQueryTypeDefinition.quark"></a>quark</code></em>;</span></p></td>
-<td>the quark for the nick</td>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -459,7 +662,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-query-type-get-name"></a><h3>gst_query_type_get_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_query_type_get_name             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> query</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_query_type_get_name             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
 <p>
 Get a printable name for the given query type. Do not modify or free.
 </p>
@@ -467,7 +670,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
 <td>the query type</td>
 </tr>
 <tr>
@@ -480,7 +683,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-query-type-to-quark"></a><h3>gst_query_type_to_quark ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_query_type_to_quark             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> query</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_query_type_to_quark             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
 <p>
 Get the unique quark for the given query type.
 </p>
@@ -488,7 +691,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
 <td>the query type</td>
 </tr>
 <tr>
@@ -500,125 +703,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-type-register"></a><h3>gst_query_type_register ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a>        gst_query_type_register             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);</pre>
-<p>
-Create a new GstQueryType based on the nick or return an
-already registered query with that nick
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
-<td>The nick of the new query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
-<td>The description of the new query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new GstQueryType or an already registered query
-with the same nick.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-type-get-by-nick"></a><h3>gst_query_type_get_by_nick ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="returnvalue">GstQueryType</span></a>        gst_query_type_get_by_nick          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nick</code></em>);</pre>
-<p>
-Get the query type registered with <em class="parameter"><code>nick</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
-<td>The nick of the query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The query registered with <em class="parameter"><code>nick</code></em> or <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-NONE:CAPS"><span class="type">GST_QUERY_NONE</span></a>
-if the query was not registered.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-types-contains"></a><h3>gst_query_types_contains ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_types_contains            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> *types</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
-<p>
-See if the given <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> is inside the <em class="parameter"><code>types</code></em> query types array.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>types</code></em> :</span></p></td>
-<td>The query array to search</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> to find</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the type is found inside the array</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-type-get-details"></a><h3>gst_query_type_get_details ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition"><span class="returnvalue">GstQueryTypeDefinition</span></a> * gst_query_type_get_details
-                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
-<p>
-Get details about the given <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition"><span class="type">GstQueryTypeDefinition</span></a> for <em class="parameter"><code>type</code></em> or NULL on failure.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-type-iterate-definitions"></a><h3>gst_query_type_iterate_definitions ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_query_type_iterate_definitions  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Get a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of all the registered query types. The definitions
-iterated over are read only.
-</p>
-<p>
-Free-function: gst_iterator_free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="gstreamer-GstQuery.html#GstQueryTypeDefinition" title="struct GstQueryTypeDefinition"><span class="type">GstQueryTypeDefinition</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-query-ref"></a><h3>gst_query_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_ref                       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);</pre>
 <p>
@@ -722,8 +806,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-replace"></a><h3>gst_query_replace()</h3>
-<pre class="programlisting">#define             gst_query_replace(old_query,new_query)</pre>
+<a name="gst-query-replace"></a><h3>gst_query_replace ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_replace                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> **old_query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *new_query</code></em>);</pre>
 <p>
 Modifies a pointer to a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> to point to a different <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. The
 modification is done atomically (so this is useful for ensuring thread safety
@@ -748,6 +833,11 @@
 replace the query pointed to by <em class="parameter"><code>old_query</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>new_query</code></em> was different from <em class="parameter"><code>old_query</code></em>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -756,7 +846,8 @@
 <a name="gst-query-writable-structure"></a><h3>gst_query_writable_structure ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_query_writable_structure        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
-Get the structure of a query.
+Get the structure of a query. This method should be called with a writable
+<em class="parameter"><code>query</code></em> so that the returned structure is guranteed to be writable.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -836,7 +927,7 @@
 <div class="refsect2">
 <a name="gst-query-new-convert"></a><h3>gst_query_new_convert ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_convert               (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>);</pre>
 <p>
 Constructs a new convert query object. Use <a class="link" href="gstreamer-GstQuery.html#gst-query-unref" title="gst_query_unref ()"><code class="function">gst_query_unref()</code></a>
@@ -875,9 +966,9 @@
 <a name="gst-query-set-convert"></a><h3>gst_query_set_convert ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_convert               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> dest_value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> dest_value</code></em>);</pre>
 <p>
 Answer a convert query by setting the requested values.
 </p>
@@ -915,9 +1006,9 @@
 <a name="gst-query-parse-convert"></a><h3>gst_query_parse_convert ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_convert             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *src_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *src_value</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
 <p>
 Parse a convert query answer. Any of <em class="parameter"><code>src_format</code></em>, <em class="parameter"><code>src_value</code></em>, <em class="parameter"><code>dest_format</code></em>,
 and <em class="parameter"><code>dest_value</code></em> may be NULL, in which case that value is omitted.
@@ -988,7 +1079,7 @@
 <a name="gst-query-set-position"></a><h3>gst_query_set_position ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_position              (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> cur</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>);</pre>
 <p>
 Answer a position query by setting the requested value in the given format.
 </p>
@@ -1016,7 +1107,7 @@
 <a name="gst-query-parse-position"></a><h3>gst_query_parse_position ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_position            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *cur</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *cur</code></em>);</pre>
 <p>
 Parse a position query, writing the format into <em class="parameter"><code>format</code></em>, and the position
 into <em class="parameter"><code>cur</code></em>, if the respective parameters are non-NULL.
@@ -1075,7 +1166,7 @@
 <a name="gst-query-set-duration"></a><h3>gst_query_set_duration ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_duration              (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);</pre>
 <p>
 Answer a duration query by setting the requested value in the given format.
 </p>
@@ -1103,7 +1194,7 @@
 <a name="gst-query-parse-duration"></a><h3>gst_query_parse_duration ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_duration            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *duration</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *duration</code></em>);</pre>
 <p>
 Parse a duration query answer. Write the format of the duration into <em class="parameter"><code>format</code></em>,
 and the value into <em class="parameter"><code>duration</code></em>, if the respective variables are non-NULL.
@@ -1214,11 +1305,11 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>min_latency</code></em> :</span></p></td>
-<td>the minimal latency of the live element</td>
+<td>the minimal latency of the upstream elements</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>max_latency</code></em> :</span></p></td>
-<td>the maximal latency of the live element</td>
+<td>the maximal latency of the upstream elements</td>
 </tr>
 </tbody>
 </table></div>
@@ -1256,8 +1347,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_seeking               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> seekable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> segment_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> segment_end</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> segment_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> segment_end</code></em>);</pre>
 <p>
 Set the seeking query result fields in <em class="parameter"><code>query</code></em>.
 </p>
@@ -1294,8 +1385,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_seeking             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *seekable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *segment_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *segment_end</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *segment_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *segment_end</code></em>);</pre>
 <p>
 Parse a seeking query, writing the format into <em class="parameter"><code>format</code></em>, and
 other results into the passed parameters, if the respective parameters
@@ -1433,7 +1524,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>n_formats</code></em> :</span></p></td>
-<td>the number of formats in this query. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>the number of formats in this query. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1466,7 +1557,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
-<td>a pointer to store the nth format. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>a pointer to store the nth format. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -1505,8 +1596,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_segment               (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop_value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> start_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop_value</code></em>);</pre>
 <p>
 Answer a segment query by setting the requested values. The normal
 playback segment of a pipeline is 0 to duration at the default rate of
@@ -1554,8 +1645,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_segment             (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop_value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start_value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop_value</code></em>);</pre>
 <p>
 Parse a segment query answer. Any of <em class="parameter"><code>rate</code></em>, <em class="parameter"><code>format</code></em>, <em class="parameter"><code>start_value</code></em>, and
 <em class="parameter"><code>stop_value</code></em> may be NULL, which will cause this value to be omitted.
@@ -1597,6 +1688,186 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-query-new-caps"></a><h3>gst_query_new_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_caps                  (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+<p>
+Constructs a new query object for querying the caps.
+</p>
+<p>
+The CAPS query should return the* allowable caps for a pad in the context
+of the element's state, its link to other elements, and the devices or files
+it has opened. These caps must be a subset of the pad template caps. In the
+NULL state with no links, the CAPS query should ideally return the same caps
+as the pad template. In rare circumstances, an object property can affect
+the caps returned by the CAPS query, but this is discouraged.
+</p>
+<p>
+For most filters, the caps returned by CAPS query is directly affected by the
+allowed caps on other pads. For demuxers and decoders, the caps returned by
+the srcpad's getcaps function is directly related to the stream data. Again,
+the CAPS query should return the most specific caps it reasonably can, since this
+helps with autoplugging.
+</p>
+<p>
+Free-function: gst_query_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
+<td>a filter</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-caps"></a><h3>gst_query_parse_caps ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_caps                (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **filter</code></em>);</pre>
+<p>
+Get the filter from the caps <em class="parameter"><code>query</code></em>. The caps remains valid as long as
+<em class="parameter"><code>query</code></em> remains valid.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>The query to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td>
+<td>A pointer to the caps filter. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-set-caps-result"></a><h3>gst_query_set_caps_result ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_caps_result           (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Set the <em class="parameter"><code>caps</code></em> result in <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>The query to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>A pointer to the caps. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-caps-result"></a><h3>gst_query_parse_caps_result ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_caps_result         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);</pre>
+<p>
+Get the caps result from <em class="parameter"><code>query</code></em>. The caps remains valid as long as
+<em class="parameter"><code>query</code></em> remains valid.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>The query to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>A pointer to the caps. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-intersect-caps-result"></a><h3>gst_query_intersect_caps_result ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_intersect_caps_result     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-new-accept-caps"></a><h3>gst_query_new_accept_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_accept_caps           (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Constructs a new query object for querying if <em class="parameter"><code>caps</code></em> are accepted.
+</p>
+<p>
+Free-function: gst_query_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a fixed <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-accept-caps"></a><h3>gst_query_parse_accept_caps ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_accept_caps         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);</pre>
+<p>
+Get the caps from <em class="parameter"><code>query</code></em>. The caps remains valid as long as <em class="parameter"><code>query</code></em> remains
+valid.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>The query to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>A pointer to the caps. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-set-accept-caps-result"></a><h3>gst_query_set_accept_caps_result ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_accept_caps_result    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> result</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-accept-caps-result"></a><h3>gst_query_parse_accept_caps_result ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_accept_caps_result  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *result</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstBufferingMode"></a><h3>enum GstBufferingMode</h3>
 <pre class="programlisting">typedef enum {
   GST_BUFFERING_STREAM,
@@ -1728,7 +1999,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> buffering_left</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> buffering_left</code></em>);</pre>
 <p>
 Configures the buffering stats values in <em class="parameter"><code>query</code></em>.
 </p>
@@ -1766,7 +2037,7 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstBufferingMode" title="enum GstBufferingMode"><span class="type">GstBufferingMode</span></a> *mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *avg_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *buffering_left</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *buffering_left</code></em>);</pre>
 <p>
 Extracts the buffering stats values from <em class="parameter"><code>query</code></em>.
 </p>
@@ -1806,9 +2077,9 @@
 <a name="gst-query-set-buffering-range"></a><h3>gst_query_set_buffering_range ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_buffering_range       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> estimated_total</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> estimated_total</code></em>);</pre>
 <p>
 Set the available query result fields in <em class="parameter"><code>query</code></em>.
 </p>
@@ -1845,9 +2116,9 @@
 <a name="gst-query-parse-buffering-range"></a><h3>gst_query_parse_buffering_range ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_buffering_range     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> *format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *estimated_total</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *estimated_total</code></em>);</pre>
 <p>
 Parse an available query, writing the format into <em class="parameter"><code>format</code></em>, and
 other results into the passed parameters, if the respective parameters
@@ -1891,8 +2162,8 @@
 <div class="refsect2">
 <a name="gst-query-add-buffering-range"></a><h3>gst_query_add_buffering_range ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_add_buffering_range       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
 <p>
 Set the buffering-ranges array field in <em class="parameter"><code>query</code></em>. The current last
 start position of the array should be inferior to <em class="parameter"><code>start</code></em>.
@@ -1950,8 +2221,8 @@
 <a name="gst-query-parse-nth-buffering-range"></a><h3>gst_query_parse_nth_buffering_range ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_parse_nth_buffering_range (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);</pre>
 <p>
 Parse an available query and get the start and stop values stored
 at the <em class="parameter"><code>index</code></em> of the buffered ranges array.
@@ -2095,50 +2366,27 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_allocation          (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *need_pool</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-parse-allocation-params"></a><h3>gst_query_parse_allocation_params ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_allocation_params   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *alignment</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> **pool</code></em>);</pre>
 <p>
-Get the allocation parameters in <em class="parameter"><code>query</code></em>.
+Parse an allocation query, writing the requested caps in <em class="parameter"><code>caps</code></em> and
+whether a pool is needed in <em class="parameter"><code>need_pool</code></em>, if the respective parameters
+are non-NULL.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_ALLOCATION.</td>
+<td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size</td>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>The <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>min_buffers</code></em> :</span></p></td>
-<td>the min buffers</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
-<td>the max buffers</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
-<td>the prefix</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>alignment</code></em> :</span></p></td>
-<td>the alignment</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>
+<td><p><span class="term"><em class="parameter"><code>need_pool</code></em> :</span></p></td>
+<td>Whether a <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> is needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -2146,73 +2394,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-parse-nth-allocation-memory"></a><h3>gst_query_parse_nth_allocation_memory ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_query_parse_nth_allocation_memory
-                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
-<p>
-Parse an available query and get the alloctor
-at <em class="parameter"><code>index</code></em> of the allocator array.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>position in the allocator array to read</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the name of the allocator at <em class="parameter"><code>index</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-parse-nth-allocation-meta"></a><h3>gst_query_parse_nth_allocation_meta ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_query_parse_nth_allocation_meta (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
-<p>
-Parse an available query and get the metadata API
-at <em class="parameter"><code>index</code></em> of the metadata API array.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>position in the metadata API array to read</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> of the metadata API at <em class="parameter"><code>index</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-set-allocation-params"></a><h3>gst_query_set_allocation_params ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_allocation_params     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+<a name="gst-query-add-allocation-pool"></a><h3>gst_query_add_allocation_pool ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_pool       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> prefix</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> alignment</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);</pre>
 <p>
-Set the allocation parameters in <em class="parameter"><code>query</code></em>.
+Set the pool parameters in <em class="parameter"><code>query</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2222,6 +2411,11 @@
 <td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_ALLOCATION.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
 <td>the size</td>
 </tr>
@@ -2233,29 +2427,129 @@
 <td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
 <td>the max buffers</td>
 </tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-get-n-allocation-pools"></a><h3>gst_query_get_n_allocation_pools ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_query_get_n_allocation_pools    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<p>
+Retrieve the number of values currently stored in the
+pool array of the query's structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
-<td>the prefix</td>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>alignment</code></em> :</span></p></td>
-<td>the alignment</td>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the pool array size as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-nth-allocation-pool"></a><h3>gst_query_parse_nth_allocation_pool ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_nth_allocation_pool (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> **pool</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *min_buffers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *max_buffers</code></em>);</pre>
+<p>
+Get the pool parameters in <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_ALLOCATION.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>index to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_buffers</code></em> :</span></p></td>
+<td>the min buffers. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
+<td>the max buffers. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-set-nth-allocation-pool"></a><h3>gst_query_set_nth_allocation_pool ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_nth_allocation_pool   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);</pre>
+<p>
+Set the pool parameters in <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>index to modify</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_ALLOCATION.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
 <td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_buffers</code></em> :</span></p></td>
+<td>the min buffers</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_buffers</code></em> :</span></p></td>
+<td>the max buffers</td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-add-allocation-memory"></a><h3>gst_query_add_allocation_memory ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_memory     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *alloc</code></em>);</pre>
+<a name="gst-query-add-allocation-param"></a><h3>gst_query_add_allocation_param ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_param      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
 <p>
-Add <em class="parameter"><code>alloc</code></em> as a supported memory allocator.
+Add <em class="parameter"><code>allocator</code></em> and its <em class="parameter"><code>params</code></em> as a supported memory allocator.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2266,69 +2560,24 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>alloc</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
 <td>the memory allocator</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-add-allocation-meta"></a><h3>gst_query_add_allocation_meta ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>);</pre>
-<p>
-Add <em class="parameter"><code>api</code></em> as aone of the supported metadata API to <em class="parameter"><code>query</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>
 </td>
 </tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
-<td>the metadata API</td>
-</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-has-allocation-meta"></a><h3>gst_query_has_allocation_meta ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_has_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *api</code></em>);</pre>
-<p>
-Check if <em class="parameter"><code>query</code></em> has metadata <em class="parameter"><code>api</code></em> set.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
-<td>the metadata API</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE when <em class="parameter"><code>api</code></em> is in the list of metadata.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-get-n-allocation-memories"></a><h3>gst_query_get_n_allocation_memories ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_query_get_n_allocation_memories (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<a name="gst-query-get-n-allocation-params"></a><h3>gst_query_get_n_allocation_params ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_query_get_n_allocation_params   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
 Retrieve the number of values currently stored in the
-allocator array of the query's structure.
+allocator params array of the query's structure.
 </p>
 <p>
 If no memory allocator is specified, the downstream element can handle
@@ -2351,6 +2600,100 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-query-parse-nth-allocation-param"></a><h3>gst_query_parse_nth_allocation_param ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_nth_allocation_param
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Parse an available query and get the alloctor and its params
+at <em class="parameter"><code>index</code></em> of the allocator array.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>position in the allocator array to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>variable to hold the result. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>parameters for the allocator</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-set-nth-allocation-param"></a><h3>gst_query_set_nth_allocation_param ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_nth_allocation_param  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>
+Parse an available query and get the alloctor and its params
+at <em class="parameter"><code>index</code></em> of the allocator array.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>position in the allocator array to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>new allocator to set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>parameters for the allocator</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-add-allocation-meta"></a><h3>gst_query_add_allocation_meta ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
+<p>
+Add <em class="parameter"><code>api</code></em> as aone of the supported metadata API to <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>the metadata API</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-query-get-n-allocation-metas"></a><h3>gst_query_get_n_allocation_metas ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_query_get_n_allocation_metas    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>
@@ -2374,6 +2717,112 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-query-parse-nth-allocation-meta"></a><h3>gst_query_parse_nth_allocation_meta ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               gst_query_parse_nth_allocation_meta (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
+<p>
+Parse an available query and get the metadata API
+at <em class="parameter"><code>index</code></em> of the metadata API array.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>position in the metadata API array to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the metadata API at <em class="parameter"><code>index</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-remove-nth-allocation-meta"></a><h3>gst_query_remove_nth_allocation_meta ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_remove_nth_allocation_meta
+                                                        (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
+<p>
+Remove the metadata API at <em class="parameter"><code>index</code></em> of the metadata API array.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>position in the metadata API array to remove</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-has-allocation-meta"></a><h3>gst_query_has_allocation_meta ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_has_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>query</code></em> has metadata <em class="parameter"><code>api</code></em> set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ALLOCATION type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
+<td>the metadata API</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE when <em class="parameter"><code>api</code></em> is in the list of metadata.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSchedulingFlags"></a><h3>enum GstSchedulingFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_SCHEDULING_FLAG_SEEKABLE      = (1 &lt;&lt; 0),
+  GST_SCHEDULING_FLAG_SEQUENTIAL    = (1 &lt;&lt; 1)
+} GstSchedulingFlags;
+</pre>
+<p>
+The different scheduling flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-SCHEDULING-FLAG-SEEKABLE:CAPS"></a><span class="term"><code class="literal">GST_SCHEDULING_FLAG_SEEKABLE</code></span></p></td>
+<td>if seeking is possible
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS"></a><span class="term"><code class="literal">GST_SCHEDULING_FLAG_SEQUENTIAL</code></span></p></td>
+<td>if sequential access is recommended
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-query-new-scheduling"></a><h3>gst_query_new_scheduling ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_scheduling            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
@@ -2395,9 +2844,7 @@
 <div class="refsect2">
 <a name="gst-query-parse-scheduling"></a><h3>gst_query_parse_scheduling ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_scheduling          (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *pull_mode</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *random_access</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sequential</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a> *flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *minsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *align</code></em>);</pre>
@@ -2412,28 +2859,25 @@
 <td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_SCHEDULING.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pull_mode</code></em> :</span></p></td>
-<td>if pull mode scheduling is supported</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>random_access</code></em> :</span></p></td>
-<td>if random access is possible</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sequential</code></em> :</span></p></td>
-<td>if sequential access is recommended</td>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>minsize</code></em> :</span></p></td>
-<td>the suggested minimum size of pull requests</td>
+<td>the suggested minimum size of pull requests. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>the suggested maximum size of pull requests:</td>
+<td>the suggested maximum size of pull requests:. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
-<td>the suggested alignment of pull requests</td>
+<td>the suggested alignment of pull requests. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -2442,9 +2886,7 @@
 <div class="refsect2">
 <a name="gst-query-set-scheduling"></a><h3>gst_query_set_scheduling ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_scheduling            (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> pull_mode</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> random_access</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sequential</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> maxsize</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> align</code></em>);</pre>
@@ -2459,16 +2901,8 @@
 <td>A valid <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> of type GST_QUERY_SCHEDULING.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>pull_mode</code></em> :</span></p></td>
-<td>if pull mode scheduling is supported</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>random_access</code></em> :</span></p></td>
-<td>if random access is possible</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sequential</code></em> :</span></p></td>
-<td>if sequential access is recommended</td>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags"><span class="type">GstSchedulingFlags</span></a></td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>minsize</code></em> :</span></p></td>
@@ -2476,7 +2910,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>the suggested maximum size of pull requests:</td>
+<td>the suggested maximum size of pull requests</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
@@ -2485,6 +2919,206 @@
 </tbody>
 </table></div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-add-scheduling-mode"></a><h3>gst_query_add_scheduling_mode ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_scheduling_mode       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>);</pre>
+<p>
+Add <em class="parameter"><code>mode</code></em> as aone of the supported scheduling modes to <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_SCHEDULING type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-get-n-scheduling-modes"></a><h3>gst_query_get_n_scheduling_modes ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_query_get_n_scheduling_modes    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<p>
+Retrieve the number of values currently stored in the
+scheduling mode array of the query's structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_SCHEDULING type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the scheduling mode array size as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-nth-scheduling-mode"></a><h3>gst_query_parse_nth_scheduling_mode ()</h3>
+<pre class="programlisting"><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="returnvalue">GstPadMode</span></a>          gst_query_parse_nth_scheduling_mode (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
+<p>
+Parse an available query and get the scheduling mode
+at <em class="parameter"><code>index</code></em> of the scheduling modes array.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_SCHEDULING type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>position in the scheduling modes array to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> of the scheduling mode at <em class="parameter"><code>index</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-has-scheduling-mode"></a><h3>gst_query_has_scheduling_mode ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_has_scheduling_mode       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>);</pre>
+<p>
+Check if <em class="parameter"><code>query</code></em> has scheduling mode set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_SCHEDULING type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>the scheduling mode</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE when <em class="parameter"><code>mode</code></em> is in the list of scheduling modes.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-new-drain"></a><h3>gst_query_new_drain ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_drain                 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Constructs a new query object for querying the drain state.
+</p>
+<p>
+Free-function: gst_query_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-new-toc"></a><h3>gst_query_new_toc ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_toc                   (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Constructs a new query TOC query object. Use <a class="link" href="gstreamer-GstQuery.html#gst-query-unref" title="gst_query_unref ()"><code class="function">gst_query_unref()</code></a>
+when done with it. A TOC query is used to query the full TOC with
+the UID marker for TOC extending (to insert some new entries).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-parse-toc"></a><h3>gst_query_parse_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_toc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extend_uid</code></em>);</pre>
+<p>
+Parse a TOC query, writing the TOC into <em class="parameter"><code>toc</code></em> as a newly
+allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> and extend UID into <em class="parameter"><code>extend_uid</code></em>, if the respective parameters
+are non-NULL. Use <em class="parameter"><code>extend_uid</code></em> value to insert new entries into the TOC (<em class="parameter"><code>extend_uid</code></em> will
+act as root entry for newly inserted entries).
+Free <em class="parameter"><code>toc</code></em> with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> and <em class="parameter"><code>extend_uid</code></em> with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>the storage for the received TOC (may be NULL). <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>extend_uid</code></em> :</span></p></td>
+<td>the storage for the received extend UID marker (may be NULL),
+0 means root TOC level. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-query-set-toc"></a><h3>gst_query_set_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_toc                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extend_uid</code></em>);</pre>
+<p>
+Answer a TOC query by setting appropriate <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> with query type GST_QUERY_TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>the GstToc to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>extend_uid</code></em> :</span></p></td>
+<td>UID which can be used for TOC extending (may be NULL),
+0 means root TOC level.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstQuery.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstSample.html b/docs/gst/html/gstreamer-GstSample.html
new file mode 100644
index 0000000..3621b46
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstSample.html
@@ -0,0 +1,270 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstSample</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="gstreamer-GstCaps.html" title="GstCaps">
+<link rel="next" href="GstChildProxy.html" title="GstChildProxy">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-GstCaps.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="GstChildProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gstreamer-GstSample.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-GstSample.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-GstSample"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstSample.top_of_page"></a>GstSample</span></h2>
+<p>GstSample — A media sample</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-GstSample.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+                    <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample">GstSample</a>;
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstSample.html#gst-sample-get-buffer" title="gst_sample_get_buffer ()">gst_sample_get_buffer</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+<a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()">gst_sample_get_caps</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gstreamer-GstSample.html#gst-sample-get-info" title="gst_sample_get_info ()">gst_sample_get_info</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+<a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="returnvalue">GstSegment</span></a> *        <a class="link" href="gstreamer-GstSample.html#gst-sample-get-segment" title="gst_sample_get_segment ()">gst_sample_get_segment</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+<a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="returnvalue">GstSample</span></a> *         <a class="link" href="gstreamer-GstSample.html#gst-sample-new" title="gst_sample_new ()">gst_sample_new</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *info</code></em>);
+<a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="returnvalue">GstSample</span></a> *         <a class="link" href="gstreamer-GstSample.html#gst-sample-ref" title="gst_sample_ref ()">gst_sample_ref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstSample.html#gst-sample-unref" title="gst_sample_unref ()">gst_sample_unref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstSample.description"></a><h2>Description</h2>
+<p>
+A <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> is a small object containing data, a type, timing and
+extra arbitrary information.
+</p>
+<p>
+Last reviewed on 2012-03-29 (0.11.3)
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstSample.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstSample"></a><h3>GstSample</h3>
+<pre class="programlisting">typedef struct _GstSample GstSample;</pre>
+<p>
+The opaque structure of a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>. A sample contains a typed memory
+block and the associated timing information. It is mainly used to
+exchange buffers with and application.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-get-buffer"></a><h3>gst_sample_get_buffer ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_sample_get_buffer               (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Get the buffer associated with <em class="parameter"><code>sample</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the buffer of <em class="parameter"><code>sample</code></em> or NULL when there
+is no buffer. The buffer remains valid as long as <em class="parameter"><code>sample</code></em> is valid. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-get-caps"></a><h3>gst_sample_get_caps ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_sample_get_caps                 (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Get the caps associated with <em class="parameter"><code>sample</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the caps of <em class="parameter"><code>sample</code></em> or NULL when there
+is no caps. The caps remain valid as long as <em class="parameter"><code>sample</code></em> is valid. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-get-info"></a><h3>gst_sample_get_info ()</h3>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_sample_get_info                (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Get extra information associated with <em class="parameter"><code>sample</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the extra info of <em class="parameter"><code>sample</code></em>.
+The info remains valid as long as <em class="parameter"><code>sample</code></em> is valid. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-get-segment"></a><h3>gst_sample_get_segment ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="returnvalue">GstSegment</span></a> *        gst_sample_get_segment              (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Get the segment associated with <em class="parameter"><code>sample</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the segment of <em class="parameter"><code>sample</code></em>.
+The segment remains valid as long as <em class="parameter"><code>sample</code></em> is valid. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-new"></a><h3>gst_sample_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="returnvalue">GstSample</span></a> *         gst_sample_new                      (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *info</code></em>);</pre>
+<p>
+Create a new <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> with the provided details.
+</p>
+<p>
+Free-function: gst_sample_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>. <a class="link" href="gstreamer-GstSample.html#gst-sample-unref" title="gst_sample_unref ()"><code class="function">gst_sample_unref()</code></a>
+after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.24</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-ref"></a><h3>gst_sample_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="returnvalue">GstSample</span></a> *         gst_sample_ref                      (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Increases the refcount of the given sample by one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>sample</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-sample-unref"></a><h3>gst_sample_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_sample_unref                    (<em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
+<p>
+Decreases the refcount of the sample. If the refcount reaches 0, the
+sample will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstSample.see-also"></a><h2>See Also</h2>
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>, <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>, <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstSegment.html b/docs/gst/html/gstreamer-GstSegment.html
index 06174e4..972a797 100644
--- a/docs/gst/html/gstreamer-GstSegment.html
+++ b/docs/gst/html/gstreamer-GstSegment.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstSegment</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstRegistry.html" title="GstRegistry">
 <link rel="next" href="gstreamer-GstStructure.html" title="GstStructure">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstRegistry.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstStructure.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -45,10 +45,10 @@
 enum                <a class="link" href="gstreamer-GstSegment.html#GstSegmentFlags" title="enum GstSegmentFlags">GstSegmentFlags</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstSegment.html#gst-segment-clip" title="gst_segment_clip ()">gst_segment_clip</a>                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *clip_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *clip_stop</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *clip_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *clip_stop</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstSegment.html#gst-segment-init" title="gst_segment_init ()">gst_segment_init</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="returnvalue">GstSegment</span></a> *        <a class="link" href="gstreamer-GstSegment.html#gst-segment-new" title="gst_segment_new ()">gst_segment_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
@@ -59,22 +59,22 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stop</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()">gst_segment_to_running_time</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()">gst_segment_to_running_time</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> position</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-stream-time" title="gst_segment_to_stream_time ()">gst_segment_to_stream_time</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> position</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-stream-time" title="gst_segment_to_stream_time ()">gst_segment_to_stream_time</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> position</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-position" title="gst_segment_to_position ()">gst_segment_to_position</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> position</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-position" title="gst_segment_to_position ()">gst_segment_to_position</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstSegment.html#gst-segment-set-running-time" title="gst_segment_set_running_time ()">gst_segment_set_running_time</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstSegment.html#gst-segment-copy-into" title="gst_segment_copy_into ()">gst_segment_copy_into</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *dest</code></em>);
 </pre>
@@ -116,26 +116,26 @@
 explicitly configured to a different value after a seek event.
 </p>
 <p>
-The current position in the segment should be set with the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#gst-segment-set-last-stop"><code class="function">gst_segment_set_last_stop()</code></a>.
-The public last_stop field contains the last set stop position in the segment.
+The current position in the segment should be set by changing the position
+member in the structure.
 </p>
 <p>
 For elements that perform seeks, the current segment should be updated with the
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#gst-segment-set-seek"><code class="function">gst_segment_set_seek()</code></a> and the values from the seek event. This method will update
-all the segment fields. The last_stop field will contain the new playback position.
+<a class="link" href="gstreamer-GstSegment.html#gst-segment-do-seek" title="gst_segment_do_seek ()"><code class="function">gst_segment_do_seek()</code></a> and the values from the seek event. This method will update
+all the segment fields. The position field will contain the new playback position.
 If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
-the last_stop position, possibly with updated flags or rate.
+the position position, possibly with updated flags or rate.
 </p>
 <p>
-For elements that want to use <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> to track the playback region, use
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#gst-segment-set-newsegment"><code class="function">gst_segment_set_newsegment()</code></a> to update the segment fields with the information from
-the newsegment event. The <a class="link" href="gstreamer-GstSegment.html#gst-segment-clip" title="gst_segment_clip ()"><code class="function">gst_segment_clip()</code></a> method can be used to check and clip
+For elements that want to use <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> to track the playback region,
+update the segment fields with the information from the newsegment event.
+The <a class="link" href="gstreamer-GstSegment.html#gst-segment-clip" title="gst_segment_clip ()"><code class="function">gst_segment_clip()</code></a> method can be used to check and clip
 the media data to the segment boundaries.
 </p>
 <p>
 For elements that want to synchronize to the pipeline clock, <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a>
 can be used to convert a timestamp to a value that can be used to synchronize
-to the clock. This function takes into account all accumulated segments as well as
+to the clock. This function takes into account the base as well as
 any rate or applied_rate conversions.
 </p>
 <p>
@@ -144,7 +144,7 @@
 info to stream time (which is always between 0 and the duration of the stream).
 </p>
 <p>
-Last reviewed on 2007-05-17 (0.10.13)
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -191,27 +191,27 @@
 <td>the format of the segment values</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.base"></a>base</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.base"></a>base</code></em>;</span></p></td>
 <td>the base time of the segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.start"></a>start</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.start"></a>start</code></em>;</span></p></td>
 <td>the start of the segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.stop"></a>stop</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.stop"></a>stop</code></em>;</span></p></td>
 <td>the stop of the segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.time"></a>time</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.time"></a>time</code></em>;</span></p></td>
 <td>the stream time of the segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.position"></a>position</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.position"></a>position</code></em>;</span></p></td>
 <td>the position in the segment</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstSegment.duration"></a>duration</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.duration"></a>duration</code></em>;</span></p></td>
 <td>the duration of the segment</td>
 </tr>
 </tbody>
@@ -257,10 +257,10 @@
 <a name="gst-segment-clip"></a><h3>gst_segment_clip ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_segment_clip                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *clip_start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *clip_stop</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *clip_start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *clip_stop</code></em>);</pre>
 <p>
 Clip the given <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> values to the segment boundaries given
 in <em class="parameter"><code>segment</code></em>. <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> are compared and clipped to <em class="parameter"><code>segment</code></em>
@@ -415,9 +415,9 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> stop</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *update</code></em>);</pre>
 <p>
 Update the segment structure with the field values of a seek event (see
@@ -503,9 +503,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-segment-to-running-time"></a><h3>gst_segment_to_running_time ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_segment_to_running_time         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_segment_to_running_time         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> position</code></em>);</pre>
 <p>
 Translate <em class="parameter"><code>position</code></em> to the total running time using the currently configured
 and previously accumulated segments. Position is a value between <em class="parameter"><code>segment</code></em>
@@ -546,9 +546,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-segment-to-stream-time"></a><h3>gst_segment_to_stream_time ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_segment_to_stream_time          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_segment_to_stream_time          (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> position</code></em>);</pre>
 <p>
 Translate <em class="parameter"><code>position</code></em> to stream time using the currently configured
 segment. The <em class="parameter"><code>position</code></em> value must be between <em class="parameter"><code>segment</code></em> start and
@@ -588,9 +588,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-segment-to-position"></a><h3>gst_segment_to_position ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_segment_to_position             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_segment_to_position             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>);</pre>
 <p>
 Convert <em class="parameter"><code>running_time</code></em> into a position in the segment so that
 <a class="link" href="gstreamer-GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a> with that position returns <em class="parameter"><code>running_time</code></em>.
@@ -624,7 +624,7 @@
 <a name="gst-segment-set-running-time"></a><h3>gst_segment_set_running_time ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_segment_set_running_time        (<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> running_time</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> running_time</code></em>);</pre>
 <p>
 Adjust the start/stop and base values of <em class="parameter"><code>segment</code></em> such that the next valid
 buffer will be one with <em class="parameter"><code>running_time</code></em>.
@@ -659,6 +659,24 @@
 <a name="gst-segment-copy-into"></a><h3>gst_segment_copy_into ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_segment_copy_into               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *dest</code></em>);</pre>
+<p>
+Copy the contents of <em class="parameter"><code>src</code></em> into <em class="parameter"><code>dest</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/gstreamer-GstStructure.html b/docs/gst/html/gstreamer-GstStructure.html
index 9c12b5b..9cbf2a0 100644
--- a/docs/gst/html/gstreamer-GstStructure.html
+++ b/docs/gst/html/gstreamer-GstStructure.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstStructure</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstSegment.html" title="GstSegment">
 <link rel="next" href="GstSystemClock.html" title="GstSystemClock">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstSegment.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstSystemClock.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -47,15 +47,15 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstStructure.html#GstStructureMapFunc" title="GstStructureMapFunc ()">*GstStructureMapFunc</a>)              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> field_id</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-empty-new" title="gst_structure_empty_new ()">gst_structure_empty_new</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-empty-new" title="gst_structure_id_empty_new ()">gst_structure_id_empty_new</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-empty" title="gst_structure_new_empty ()">gst_structure_new_empty</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-id-empty" title="gst_structure_new_id_empty ()">gst_structure_new_id_empty</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-new" title="gst_structure_new ()">gst_structure_new</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *firstfield</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-valist" title="gst_structure_new_valist ()">gst_structure_new_valist</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *firstfield</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);
-<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-new" title="gst_structure_id_new ()">gst_structure_id_new</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name_quark</code></em>,
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-id" title="gst_structure_new_id ()">gst_structure_new_id</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name_quark</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> field_quark</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      <a class="link" href="gstreamer-GstStructure.html#gst-structure-copy" title="gst_structure_copy ()">gst_structure_copy</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
@@ -212,17 +212,18 @@
 </p>
 <p>
 In addition to the key/value pairs, a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> also has a name. The name
-starts with a letter and can be folled by letters, numbers and any of "/-_.:".
+starts with a letter and can be filled by letters, numbers and any of "/-_.:".
 </p>
 <p>
 <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> is used by various GStreamer subsystems to store information
 in a flexible and extensible way. A <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> does not have a refcount
-because it usually is part of a higher level object such as <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>. It
-provides a means to enforce mutability using the refcount of the parent
-with the <a class="link" href="gstreamer-GstStructure.html#gst-structure-set-parent-refcount" title="gst_structure_set_parent_refcount ()"><code class="function">gst_structure_set_parent_refcount()</code></a> method.
+because it usually is part of a higher level object such as <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>,
+<a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>. It provides a means to enforce mutability
+using the refcount of the parent with the <a class="link" href="gstreamer-GstStructure.html#gst-structure-set-parent-refcount" title="gst_structure_set_parent_refcount ()"><code class="function">gst_structure_set_parent_refcount()</code></a>
+method.
 </p>
 <p>
-A <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> can be created with <a class="link" href="gstreamer-GstStructure.html#gst-structure-empty-new" title="gst_structure_empty_new ()"><code class="function">gst_structure_empty_new()</code></a> or
+A <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> can be created with <a class="link" href="gstreamer-GstStructure.html#gst-structure-new-empty" title="gst_structure_new_empty ()"><code class="function">gst_structure_new_empty()</code></a> or
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-new" title="gst_structure_new ()"><code class="function">gst_structure_new()</code></a>, which both take a name and an optional set of
 key/value pairs along with the types of the values.
 </p>
@@ -243,7 +244,7 @@
 not allowed. Strings must not be empty either, but may be NULL.
 </p>
 <p>
-Last reviewed on 2009-06-08 (0.10.23)
+Last reviewed on 2012-03-29 (0.11.3)
 </p>
 </div>
 <div class="refsect1">
@@ -333,8 +334,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-structure-empty-new"></a><h3>gst_structure_empty_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_empty_new             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<a name="gst-structure-new-empty"></a><h3>gst_structure_new_empty ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_new_empty             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
 Creates a new, empty <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> with the given <em class="parameter"><code>name</code></em>.
 </p>
@@ -361,8 +362,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-structure-id-empty-new"></a><h3>gst_structure_id_empty_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_id_empty_new          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);</pre>
+<a name="gst-structure-new-id-empty"></a><h3>gst_structure_new_id_empty ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_new_id_empty          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);</pre>
 <p>
 Creates a new, empty <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> with the given name as a GQuark.
 </p>
@@ -464,15 +465,15 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-structure-id-new"></a><h3>gst_structure_id_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_id_new                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name_quark</code></em>,
+<a name="gst-structure-new-id"></a><h3>gst_structure_new_id ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="returnvalue">GstStructure</span></a> *      gst_structure_new_id                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> name_quark</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> field_quark</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> with the given name as a GQuark, followed by
 fieldname quark, GType, argument(s) "triplets" in the same format as
 <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()"><code class="function">gst_structure_id_set()</code></a>. Basically a convenience wrapper around
-<a class="link" href="gstreamer-GstStructure.html#gst-structure-id-empty-new" title="gst_structure_id_empty_new ()"><code class="function">gst_structure_id_empty_new()</code></a> and <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()"><code class="function">gst_structure_id_set()</code></a>.
+<a class="link" href="gstreamer-GstStructure.html#gst-structure-new-id-empty" title="gst_structure_new_id_empty ()"><code class="function">gst_structure_new_id_empty()</code></a> and <a class="link" href="gstreamer-GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()"><code class="function">gst_structure_id_set()</code></a>.
 </p>
 <p>
 The last variable argument must be NULL (or 0).
@@ -662,9 +663,9 @@
 quark hashtable.
 </p>
 <p>
-For refcounted (mini)objects you will acquire your own reference which
+For refcounted (mini)objects you will receive a new reference which
 you must release with a suitable <code class="function">_unref()</code> when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
+strings and boxed types you will receive a copy which you will need to
 release with either <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.
 </p>
 <div class="variablelist"><table border="0">
@@ -831,9 +832,9 @@
 The last variable argument should be NULL.
 </p>
 <p>
-For refcounted (mini)objects you will acquire your own reference which
+For refcounted (mini)objects you will receive a new reference which
 you must release with a suitable <code class="function">_unref()</code> when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
+strings and boxed types you will receive a copy which you will need to
 release with either <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.
 </p>
 <div class="variablelist"><table border="0">
@@ -1374,7 +1375,7 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1407,7 +1408,7 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1438,7 +1439,7 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1468,7 +1469,7 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2033,9 +2034,17 @@
 <p>
 For debugging purposes its easier to do something like this:
 </p>
-<div class="informalexample"><pre class="programlisting">
-GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;structure is %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> structure<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 This prints the structure in human readble form.
 </p>
@@ -2080,7 +2089,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
-<td>pointer to store the end of the string in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+<td>pointer to store the end of the string in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
diff --git a/docs/gst/html/gstreamer-GstTagList.html b/docs/gst/html/gstreamer-GstTagList.html
index e328efe..8ac2ad6 100644
--- a/docs/gst/html/gstreamer-GstTagList.html
+++ b/docs/gst/html/gstreamer-GstTagList.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTagList</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstSystemClock.html" title="GstSystemClock">
 <link rel="next" href="GstTagSetter.html" title="GstTagSetter">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstSystemClock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstTagSetter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -40,7 +40,7 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-typedef             <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>;
+                    <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>;
 enum                <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode">GstTagMergeMode</a>;
 enum                <a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag">GstTagFlag</a>;
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()">*GstTagForeachFunc</a>)                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
@@ -98,6 +98,7 @@
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS" title="GST_TAG_ALBUM_PEAK">GST_TAG_ALBUM_PEAK</a>
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS" title="GST_TAG_REFERENCE_LEVEL">GST_TAG_REFERENCE_LEVEL</a>
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS" title="GST_TAG_LANGUAGE_CODE">GST_TAG_LANGUAGE_CODE</a>
+#define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS" title="GST_TAG_LANGUAGE_NAME">GST_TAG_LANGUAGE_NAME</a>
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS" title="GST_TAG_IMAGE">GST_TAG_IMAGE</a>
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS" title="GST_TAG_PREVIEW_IMAGE">GST_TAG_PREVIEW_IMAGE</a>
 #define             <a class="link" href="gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS" title="GST_TAG_ATTACHMENT">GST_TAG_ATTACHMENT</a>
@@ -143,12 +144,16 @@
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstTagList.html#gst-tag-get-description" title="gst_tag_get_description ()">gst_tag_get_description</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="returnvalue">GstTagFlag</span></a>          <a class="link" href="gstreamer-GstTagList.html#gst-tag-get-flag" title="gst_tag_get_flag ()">gst_tag_get_flag</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-is-fixed" title="gst_tag_is_fixed ()">gst_tag_is_fixed</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_new</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-full" title="gst_tag_list_new_full ()">gst_tag_list_new_full</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_new</a>                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-full-valist" title="gst_tag_list_new_full_valist ()">gst_tag_list_new_full_valist</a>        (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a>             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-is-tag-list" title="gst_is_tag_list ()">gst_is_tag_list</a>                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy" title="gst_tag_list_copy ()">gst_tag_list_copy</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-insert" title="gst_tag_list_insert ()">gst_tag_list_insert</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
@@ -159,6 +164,9 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()">gst_tag_list_free</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-tag-size" title="gst_tag_list_get_tag_size ()">gst_tag_list_get_tag_size</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a>                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add" title="gst_tag_list_add ()">gst_tag_list_add</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
@@ -190,20 +198,6 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy-value" title="gst_tag_list_copy_value ()">gst_tag_list_copy_value</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-char" title="gst_tag_list_get_char ()">gst_tag_list_get_char</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-char-index" title="gst_tag_list_get_char_index ()">gst_tag_list_get_char_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uchar" title="gst_tag_list_get_uchar ()">gst_tag_list_get_uchar</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uchar-index" title="gst_tag_list_get_uchar_index ()">gst_tag_list_get_uchar_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);
@@ -225,34 +219,20 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-long" title="gst_tag_list_get_long ()">gst_tag_list_get_long</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#glong"><span class="type">glong</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-long-index" title="gst_tag_list_get_long_index ()">gst_tag_list_get_long_index</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#glong"><span class="type">glong</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-ulong" title="gst_tag_list_get_ulong ()">gst_tag_list_get_ulong</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-ulong-index" title="gst_tag_list_get_ulong_index ()">gst_tag_list_get_ulong_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64" title="gst_tag_list_get_int64 ()">gst_tag_list_get_int64</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-int64-index" title="gst_tag_list_get_int64_index ()">gst_tag_list_get_int64_index</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64" title="gst_tag_list_get_uint64 ()">gst_tag_list_get_uint64</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint64-index" title="gst_tag_list_get_uint64_index ()">gst_tag_list_get_uint64_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-float" title="gst_tag_list_get_float ()">gst_tag_list_get_float</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);
@@ -324,8 +304,7 @@
 <a name="gstreamer-GstTagList.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GstTagList"></a><h3>GstTagList</h3>
-<pre class="programlisting">typedef GstStructure GstTagList;
-</pre>
+<pre class="programlisting">typedef struct _GstTagList GstTagList;</pre>
 <p>
 Opaque <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> data structure.
 </p>
@@ -357,7 +336,7 @@
 <p>
 </p>
 <div class="table">
-<a name="id732916"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="idp42464256"></a><p class="title"><b>Table 1. merge mode</b></p>
 <div class="table-contents"><table summary="merge mode" border="1">
 <colgroup>
 <col>
@@ -608,7 +587,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-ARTIST-SORTNAME:CAPS"></a><h3>GST_TAG_ARTIST_SORTNAME</h3>
-<pre class="programlisting">#define GST_TAG_ARTIST_SORTNAME        "musicbrainz-sortname"
+<pre class="programlisting">#define GST_TAG_ARTIST_SORTNAME        "artist-sortname"
 </pre>
 <p>
 person(s) responsible for the recording, as used for sorting (string)
@@ -1066,8 +1045,27 @@
 <pre class="programlisting">#define GST_TAG_LANGUAGE_CODE          "language-code"
 </pre>
 <p>
-Language code (ISO-639-1) (string) of the content
+ISO-639-2 or ISO-639-1 code for the language the content is in (string)
 </p>
+<p>
+There is utility API in libgsttag in gst-plugins-base to obtain a translated
+language name from the language code: <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name"><code class="function">gst_tag_get_language_name()</code></a>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-TAG-LANGUAGE-NAME:CAPS"></a><h3>GST_TAG_LANGUAGE_NAME</h3>
+<pre class="programlisting">#define GST_TAG_LANGUAGE_NAME          "language-name"
+</pre>
+<p>
+Name of the language the content is in (string)
+</p>
+<p>
+Free-form name of the language the content is in, if a language code
+is not available. This tag should not be set in addition to a language
+code. It is undefined what language or locale the language name is in.
+</p>
+<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1075,7 +1073,7 @@
 <pre class="programlisting">#define GST_TAG_IMAGE                  "image"
 </pre>
 <p>
-image (buffer) (buffer caps should specify the content type and preferably
+image (sample) (sample caps should specify the content type and preferably
 also set "image-type" field as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttag.html#GstTagImageType"><span class="type">GstTagImageType</span></a>)
 </p>
 <p class="since">Since 0.10.6</p>
@@ -1087,7 +1085,7 @@
 </pre>
 <p>
 image that is meant for preview purposes, e.g. small icon-sized version
-(buffer) (buffer caps should specify the content type)
+(sample) (sample caps should specify the content type)
 </p>
 <p class="since">Since 0.10.7</p>
 </div>
@@ -1097,7 +1095,7 @@
 <pre class="programlisting">#define GST_TAG_ATTACHMENT             "attachment"
 </pre>
 <p>
-generic file attachment (buffer) (buffer caps should specify the content
+generic file attachment (sample) (sample caps should specify the content
 type and if possible set "filename" to the file name of the
 attachment)
 </p>
@@ -1665,26 +1663,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new"></a><h3>gst_tag_list_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Creates a new empty GstTagList.
-</p>
-<p>
-Free-function: gst_tag_list_free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>An empty tag list. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-new-full"></a><h3>gst_tag_list_new_full ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_full               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new                    (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
 Creates a new taglist and appends the values for the given tags. It expects
@@ -1721,10 +1700,29 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-new-full-valist"></a><h3>gst_tag_list_new_full_valist ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_full_valist        (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<a name="gst-tag-list-new-empty"></a><h3>gst_tag_list_new_empty ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_empty              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
-Just like <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-full" title="gst_tag_list_new_full ()"><code class="function">gst_tag_list_new_full()</code></a>, only that it takes a va_list argument.
+Creates a new empty GstTagList.
+</p>
+<p>
+Free-function: gst_tag_list_free
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An empty tag list. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-new-valist"></a><h3>gst_tag_list_new_valist ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_valist             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>
+Just like <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, only that it takes a va_list argument.
 Useful mostly for language bindings.
 </p>
 <p>
@@ -1749,6 +1747,53 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-tag-list-new-from-string"></a><h3>gst_tag_list_new_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_new_from_string        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
+<p>
+Deserializes a tag list.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>a string created with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()"><code class="function">gst_tag_list_to_string()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>, or NULL in case of an error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-to-string"></a><h3>gst_tag_list_to_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_tag_list_to_string              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<p>
+Serializes a tag list to a string.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly-allocated string, or NULL in case of an error. The
+string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-is-tag-list"></a><h3>gst_is_tag_list ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_is_tag_list                     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</code></em>);</pre>
 <p>
@@ -1792,6 +1837,33 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-tag-list-is-equal"></a><h3>gst_tag_list_is_equal ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_is_equal               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
+<p>
+Checks if the two given taglists are equal.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list1</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list2</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the taglists are equal, otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-tag-list-copy"></a><h3>gst_tag_list_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_tag_list_copy                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>
@@ -1922,6 +1994,53 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-tag-list-n-tags"></a><h3>gst_tag_list_n_tags ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_tag_list_n_tags                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<p>
+Get the number of tags in <em class="parameter"><code>list</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of tags in <em class="parameter"><code>list</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-nth-tag-name"></a><h3>gst_tag_list_nth_tag_name ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_tag_list_nth_tag_name           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
+<p>
+Get the name of the tag in <em class="parameter"><code>list</code></em> at <em class="parameter"><code>index</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>the index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The name of the tag at <em class="parameter"><code>index</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-tag-list-add"></a><h3>gst_tag_list_add ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_tag_list_add                    (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
@@ -2206,152 +2325,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-get-char"></a><h3>gst_tag_list_get_char ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_char               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-char-index"></a><h3>gst_tag_list_get_char_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_char_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-Gets the value that is at the given index for the given tag in the given
-list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>number of entry to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-uchar"></a><h3>gst_tag_list_get_uchar ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uchar              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>);</pre>
-<p>
-Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-uchar-index"></a><h3>gst_tag_list_get_uchar_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uchar_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *value</code></em>);</pre>
-<p>
-Gets the value that is at the given index for the given tag in the given
-list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>number of entry to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-tag-list-get-boolean"></a><h3>gst_tag_list_get_boolean ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_boolean            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
@@ -2571,183 +2544,10 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-get-long"></a><h3>gst_tag_list_get_long ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_long               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#glong"><span class="type">glong</span></a> *value</code></em>);</pre>
-<p>
-Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-long-index"></a><h3>gst_tag_list_get_long_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_long_index         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#glong"><span class="type">glong</span></a> *value</code></em>);</pre>
-<p>
-Gets the value that is at the given index for the given tag in the given
-list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>number of entry to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-ulong"></a><h3>gst_tag_list_get_ulong ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_ulong              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> *value</code></em>);</pre>
-<p>
-Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tag-list-get-ulong-index"></a><h3>gst_tag_list_get_ulong_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_ulong_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> *value</code></em>);</pre>
-<p>
-Gets the value that is at the given index for the given tag in the given
-list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
-<td>number of entry to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-tag-list-get-int64"></a><h3>gst_tag_list_get_int64 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);</pre>
-<p>
-Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
-<td>tag to read out</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>location for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a value was copied, FALSE if the tag didn't exist in the
-given list.</td>
-</tr>
-</tbody>
-</table></div>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -2755,7 +2555,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_int64_index        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
 <p>
 Gets the value that is at the given index for the given tag in the given
 list.
@@ -2793,7 +2593,7 @@
 <a name="gst-tag-list-get-uint64"></a><h3>gst_tag_list_get_uint64 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
 <p>
 Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.
@@ -2828,7 +2628,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_uint64_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *value</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
 <p>
 Gets the value that is at the given index for the given tag in the given
 list.
diff --git a/docs/gst/html/gstreamer-GstToc.html b/docs/gst/html/gstreamer-GstToc.html
new file mode 100644
index 0000000..716c27c
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstToc.html
@@ -0,0 +1,481 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstToc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="GstTaskPool.html" title="GstTaskPool">
+<link rel="next" href="gstreamer-GstTocSetter.html" title="GstTocSetter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="GstTaskPool.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstTocSetter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gstreamer-GstToc.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-GstToc.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-GstToc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstToc.top_of_page"></a>GstToc</span></h2>
+<p>GstToc — Generic table of contents support</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-GstToc.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+struct              <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc">GstToc</a>;
+struct              <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry">GstTocEntry</a>;
+enum                <a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType">GstTocEntryType</a>;
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new" title="gst_toc_entry_new ()">gst_toc_entry_new</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a>                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy ()">gst_toc_entry_copy</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy ()">gst_toc_copy</a>                        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" title="gst_toc_entry_get_start_stop ()">gst_toc_entry_get_start_stop</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstToc.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> functions are used to create/free <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> and <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structures.
+Also they are used to convert <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> into <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> and vice versa.
+</p>
+<p>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> lets you to inform other elements in pipeline or application that playing
+source has some kind of table of contents (TOC). These may be chapters, editions,
+angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
+TOC. Such TOC will be useful for applications to display instead of just a
+playlist.
+</p>
+<p>
+Using TOC is very easy. Firstly, create <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure which represents root
+contents of the source. You can also attach TOC-specific tags to it. Then fill
+it with <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries by appending them to <a class="link" href="gstreamer-GstToc.html#GstToc.entries"><span class="type">GstToc.entries</span></a> <a class="link" href="gstreamer-GstToc.html#GstTocEntry.subentries"><span class="type">GstTocEntry.subentries</span></a>
+lists. You should use GST_TOC_ENTRY_TYPE_CHAPTER for generic TOC entry and
+GST_TOC_ENTRY_TYPE_EDITION for the entries which are considered to be alternatives
+(like DVD angles, Matroska editions and so on).
+</p>
+<p>
+Note that root level of the TOC can contain only either editions or chapters. You
+should not mix them together at the same level. Otherwise you will get serialization
+/deserialization errors. Make sure that no one of the entries has negative start and
+ stop values.
+</p>
+<p>
+Please, use <a class="link" href="gstreamer-GstToc.html#GstToc.info"><span class="type">GstToc.info</span></a> and <a class="link" href="gstreamer-GstToc.html#GstTocEntry.info"><span class="type">GstTocEntry.info</span></a> fields in that way: create a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>,
+put all info related to your element there and put this structure into the info field under
+the name of your element. Some fields in the info structure can be used for internal purposes,
+so you should use it in the way described above to not to overwrite already existent fields.
+</p>
+<p>
+Use <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()"><code class="function">gst_event_new_toc()</code></a> to create a new TOC <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, and <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc" title="gst_event_parse_toc ()"><code class="function">gst_event_parse_toc()</code></a> to
+parse received TOC event. Use <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc-select" title="gst_event_new_toc_select ()"><code class="function">gst_event_new_toc_select()</code></a> to create a new TOC select <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>,
+and <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()"><code class="function">gst_event_parse_toc_select()</code></a> to parse received TOC select event. The same rule for
+the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>: <a class="link" href="gstreamer-GstMessage.html#gst-message-new-toc" title="gst_message_new_toc ()"><code class="function">gst_message_new_toc()</code></a> to create new TOC <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, and
+<a class="link" href="gstreamer-GstMessage.html#gst-message-parse-toc" title="gst_message_parse_toc ()"><code class="function">gst_message_parse_toc()</code></a> to parse received TOC message. Also you can create a new TOC query
+with <a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()"><code class="function">gst_query_new_toc()</code></a>, set it with <a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()"><code class="function">gst_query_set_toc()</code></a> and parse it with
+<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()"><code class="function">gst_query_parse_toc()</code></a>.
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstToc.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstToc"></a><h3>struct GstToc</h3>
+<pre class="programlisting">struct GstToc {
+  GList *entries;
+  GstTagList *tags;
+  GstStructure *info;
+};
+</pre>
+<p>
+Definition of TOC structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstToc.entries"></a>entries</code></em>;</span></p></td>
+<td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries of the TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
+<td>tags related to the whole TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstToc.info"></a>info</code></em>;</span></p></td>
+<td>extra information related to the TOC.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTocEntry"></a><h3>struct GstTocEntry</h3>
+<pre class="programlisting">struct GstTocEntry {
+  gchar *uid;
+  GstTocEntryType type;
+  GList *subentries;
+  GList *pads;
+  GstTagList *tags;
+  GstStructure *info;
+};
+</pre>
+<p>
+Definition of TOC entry structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstTocEntry.uid"></a>uid</code></em>;</span></p></td>
+<td>unique (for a whole TOC) id of the entry. This value should be persistent and
+should not be changed while updating TOC. <em class="parameter"><code>uid</code></em> should be handled as "opaque" value
+without meaning (e.g. applications should not assume the /editionX/chapterY/chapter/Z structure,
+other demuxers could do something else), it should help to track updates of certain entries.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> <em class="structfield"><code><a name="GstTocEntry.type"></a>type</code></em>;</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> of this entry.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstTocEntry.subentries"></a>subentries</code></em>;</span></p></td>
+<td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> children.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstTocEntry.pads"></a>pads</code></em>;</span></p></td>
+<td>list of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects, related to this <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
+<td>tags related to this entry.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstTocEntry.info"></a>info</code></em>;</span></p></td>
+<td>extra information related to this entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTocEntryType"></a><h3>enum GstTocEntryType</h3>
+<pre class="programlisting">typedef enum {
+  GST_TOC_ENTRY_TYPE_CHAPTER     = 0,
+  GST_TOC_ENTRY_TYPE_EDITION     = 1
+} GstTocEntryType;
+</pre>
+<p>
+The different types of TOC entry.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_CHAPTER</code></span></p></td>
+<td>a chapter type entry.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-EDITION:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_EDITION</code></span></p></td>
+<td>an edition entry (angle or alternative in other terms).
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-new"></a><h3>gst_toc_entry_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<p>
+Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>entry type.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>unique ID (UID) in the whole TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-new-with-pad"></a><h3>gst_toc_entry_new_with_pad ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new_with_pad          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> pad</code></em>);</pre>
+<p>
+Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure with <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>entry type.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>unique ID (UID) in the whole TOC.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>
+<a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related to this entry.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>
+when done.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-free"></a><h3>gst_toc_entry_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_free                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Free unused <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure. Note that <a class="link" href="gstreamer-GstToc.html#GstTocEntry.uid"><span class="type">GstTocEntry.uid</span></a> will
+be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> and all <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects in the <a class="link" href="gstreamer-GstToc.html#GstTocEntry.pads"><span class="type">GstTocEntry.pads</span></a>
+list will be unrefed with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure to free.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-new"></a><h3>gst_toc_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_new                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create new <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-free"></a><h3>gst_toc_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_free                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Free unused <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure to free.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-copy"></a><h3>gst_toc_entry_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_copy                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Copy <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to copy.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> in case of success, NULL otherwise;
+free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-copy"></a><h3>gst_toc_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_copy                        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Copy <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to copy.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> in case of success, NULL otherwise;
+free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-find-entry"></a><h3>gst_toc_find_entry ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_find_entry                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<p>
+Find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with given <em class="parameter"><code>uid</code></em> in the <em class="parameter"><code>toc</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to search in.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>UID to find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with specified <em class="parameter"><code>uid</code></em> from the <em class="parameter"><code>toc</code></em>, or NULL if not found.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-start-stop"></a><h3>gst_toc_entry_get_start_stop ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_entry_get_start_stop        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);</pre>
+<p>
+Get start and stop values from the <em class="parameter"><code>entry</code></em> and write them into appropriate storages.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to get values from.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>the storage for the start value, leave <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not need. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
+<td>the storage for the stop value, leave <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if not need. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if all non-NULL storage pointers were filled with appropriate values,
+FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-set-start-stop"></a><h3>gst_toc_entry_set_start_stop ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_set_start_stop        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
+<p>
+Set <em class="parameter"><code>start</code></em> and <em class="parameter"><code>stop</code></em> values for the <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to set values.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>start value to set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stop</code></em> :</span></p></td>
+<td>stop value to set.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstToc.see-also"></a><h2>See Also</h2>
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>, <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstTocSetter.html b/docs/gst/html/gstreamer-GstTocSetter.html
new file mode 100644
index 0000000..c9aec50
--- /dev/null
+++ b/docs/gst/html/gstreamer-GstTocSetter.html
@@ -0,0 +1,308 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstTocSetter</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="gstreamer-GstToc.html" title="GstToc">
+<link rel="next" href="gstreamer-GstTypeFind.html" title="GstTypeFind">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-GstToc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-GstTypeFind.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gstreamer-GstTocSetter.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#gstreamer-GstTocSetter.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gstreamer-GstTocSetter"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-GstTocSetter.top_of_page"></a>GstTocSetter</span></h2>
+<p>GstTocSetter — Element interface that allows setting and retrieval
+                    of the TOC</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gstreamer-GstTocSetter.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/gst.h&gt;
+
+                    <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter">GstTocSetter</a>;
+struct              <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace">GstTocSetterIFace</a>;
+const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *      <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()">gst_toc_setter_get_toc</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()">gst_toc_setter_get_toc_copy</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" title="gst_toc_setter_reset_toc ()">gst_toc_setter_reset_toc</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" title="gst_toc_setter_set_toc ()">gst_toc_setter_set_toc</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" title="gst_toc_setter_get_toc_entry ()">gst_toc_setter_get_toc_entry</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()">gst_toc_setter_get_toc_entry_copy</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" title="gst_toc_setter_add_toc_entry ()">gst_toc_setter_add_toc_entry</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *parent_uid</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstTocSetter.description"></a><h2>Description</h2>
+<p>
+Element interface that allows setting of the TOC.
+</p>
+<p>
+Elements that support some kind of chapters or editions (or tracks like in
+the FLAC cue sheet) will implement this interface.
+</p>
+<p>
+If you just want to retrieve the TOC in your application then all you
+need to do is watch for TOC messages on your pipeline's bus (or you can
+perform TOC query). This interface is only for setting TOC data, not for
+extracting it. To set TOC from the application, find proper tocsetter element
+and set TOC using <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" title="gst_toc_setter_set_toc ()"><code class="function">gst_toc_setter_set_toc()</code></a>.
+</p>
+<p>
+Elements implementing the <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> interface can extend existing TOC
+by getting extend UID for that (you can use <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()"><code class="function">gst_toc_find_entry()</code></a> to retrieve it)
+with any TOC entries received from downstream.
+</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-GstTocSetter.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTocSetter"></a><h3>GstTocSetter</h3>
+<pre class="programlisting">typedef struct _GstTocSetter GstTocSetter;</pre>
+<p>
+Opaque <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> data structure.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTocSetterIFace"></a><h3>struct GstTocSetterIFace</h3>
+<pre class="programlisting">struct GstTocSetterIFace {
+  GTypeInterface g_iface;
+
+  /* signals */
+
+  /* virtual table */
+};
+</pre>
+<p>
+<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace"><span class="type">GstTocSetterIFace</span></a> interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTocSetterIFace.g-iface"></a>g_iface</code></em>;</span></p></td>
+<td>parent interface type.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-get-toc"></a><h3>gst_toc_setter_get_toc ()</h3>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *      gst_toc_setter_get_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
+<p>
+Return current TOC the setter uses. The TOC should not be
+modified or freed.
+</p>
+<p>
+This function is not thread-safe. Use <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()"><code class="function">gst_toc_setter_get_toc_copy()</code></a> instead.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a current snapshot of the TOC used in the setter
+or NULL if none is used.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-get-toc-copy"></a><h3>gst_toc_setter_get_toc_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_setter_get_toc_copy         (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
+<p>
+Return current TOC the setter uses. The difference between this
+function and <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()"><code class="function">gst_toc_setter_get_toc()</code></a> is that this function returns deep
+copy of the TOC, so you can modify it in any way. This function is thread-safe.
+Free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a copy of the current snapshot of the TOC used in the setter
+or NULL if none is used.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-reset-toc"></a><h3>gst_toc_setter_reset_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_reset_toc            (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
+<p>
+Reset the internal TOC. Elements should call this from within the
+state-change handler.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-set-toc"></a><h3>gst_toc_setter_set_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_set_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Set the given TOC on the setter. Previously setted TOC will be
+freed before setting a new one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-get-toc-entry"></a><h3>gst_toc_setter_get_toc_entry ()</h3>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * gst_toc_setter_get_toc_entry        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<p>
+Return <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> (if any) with given <em class="parameter"><code>uid</code></em>. Returned entry should
+not be modified or freed.
+</p>
+<p>
+This function is not thread-safe. Use <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()"><code class="function">gst_toc_setter_get_toc_entry_copy()</code></a> instead.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>UID to find entry with.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a TOC entry with given <em class="parameter"><code>uid</code></em> from the TOC in the setter
+or NULL if none entry with such <em class="parameter"><code>uid</code></em> was found.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-get-toc-entry-copy"></a><h3>gst_toc_setter_get_toc_entry_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_setter_get_toc_entry_copy   (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<p>
+Return <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> (if any) with given <em class="parameter"><code>uid</code></em>. It perform a deep copying,
+so you can modify returned value. Free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.
+This function is thread-safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
+<td>UID to find entry with.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a TOC entry with given <em class="parameter"><code>uid</code></em> from the TOC in the setter
+or NULL if none entry with such <em class="parameter"><code>uid</code></em> was found.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-setter-add-toc-entry"></a><h3>gst_toc_setter_add_toc_entry ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_setter_add_toc_entry        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *parent_uid</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Try to find entry with given <em class="parameter"><code>parent_uid</code></em> and append an <em class="parameter"><code>entry</code></em> to that <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent_uid</code></em> :</span></p></td>
+<td>UID of the parent entry to append given <em class="parameter"><code>entry</code></em>. Use 0 for the TOC root level.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to append.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if entry with <em class="parameter"><code>parent_uid</code></em> was found, FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.37</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstTrace.html b/docs/gst/html/gstreamer-GstTrace.html
deleted file mode 100644
index 20720b4..0000000
--- a/docs/gst/html/gstreamer-GstTrace.html
+++ /dev/null
@@ -1,582 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstTrace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="gstreamer-support.html" title="GStreamer Core Support">
-<link rel="prev" href="gstreamer-GstInfo.html" title="GstInfo">
-<link rel="next" href="gstreamer-hierarchy.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-GstInfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-support.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-hierarchy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gstreamer-GstTrace.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gstreamer-GstTrace.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gstreamer-GstTrace"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-GstTrace.top_of_page"></a>GstTrace</span></h2>
-<p>GstTrace — Tracing functionality</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gstreamer-GstTrace.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/gst.h&gt;
-
-struct              <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace">GstTrace</a>;
-<a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="returnvalue">GstTrace</span></a> *          <a class="link" href="gstreamer-GstTrace.html#gst-trace-new" title="gst_trace_new ()">gst_trace_new</a>                       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filename</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-trace-destroy" title="gst_trace_destroy ()">gst_trace_destroy</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-trace-flush" title="gst_trace_flush ()">gst_trace_flush</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-trace-text-flush" title="gst_trace_text_flush ()">gst_trace_text_flush</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-trace-add-entry" title="gst_trace_add_entry()">gst_trace_add_entry</a>                 (trace,
-                                                         seq,
-                                                         data,
-                                                         msg)
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-trace-get-size" title="gst_trace_get_size()">gst_trace_get_size</a>                  (trace)
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-trace-get-offset" title="gst_trace_get_offset()">gst_trace_get_offset</a>                (trace)
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-trace-get-remaining" title="gst_trace_get_remaining()">gst_trace_get_remaining</a>             (trace)
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-trace-set-default" title="gst_trace_set_default ()">gst_trace_set_default</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-trace-read-tsc" title="gst_trace_read_tsc ()">gst_trace_read_tsc</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dst</code></em>);
-enum                <a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags">GstAllocTraceFlags</a>;
-struct              <a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace">GstAllocTrace</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-available" title="gst_alloc_trace_available ()">gst_alloc_trace_available</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-list" title="gst_alloc_trace_list ()">gst_alloc_trace_list</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-live-all" title="gst_alloc_trace_live_all ()">gst_alloc_trace_live_all</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print-all" title="gst_alloc_trace_print_all ()">gst_alloc_trace_print_all</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-set-flags-all" title="gst_alloc_trace_set_flags_all ()">gst_alloc_trace_set_flags_all</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags"><span class="type">GstAllocTraceFlags</span></a> flags</code></em>);
-<a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="returnvalue">GstAllocTrace</span></a> *     <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-get" title="gst_alloc_trace_get ()">gst_alloc_trace_get</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print" title="gst_alloc_trace_print ()">gst_alloc_trace_print</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="type">GstAllocTrace</span></a> *trace</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-print-live" title="gst_alloc_trace_print_live ()">gst_alloc_trace_print_live</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-set-flags" title="gst_alloc_trace_set_flags ()">gst_alloc_trace_set_flags</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="type">GstAllocTrace</span></a> *trace</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags"><span class="type">GstAllocTraceFlags</span></a> flags</code></em>);
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-register" title="gst_alloc_trace_register()">gst_alloc_trace_register</a>            (name)
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-new" title="gst_alloc_trace_new()">gst_alloc_trace_new</a>                 (trace,
-                                                         mem)
-#define             <a class="link" href="gstreamer-GstTrace.html#gst-alloc-trace-free" title="gst_alloc_trace_free()">gst_alloc_trace_free</a>                (trace,
-                                                         mem)
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstTrace.description"></a><h2>Description</h2>
-<p>
-Traces allows to track object allocation. They provide a instance counter per
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>. The counter is incremented for each object allocated and decremented
-it when it's freed.
-</p>
-<p>
-</p>
-<div class="example">
-<a name="id710705"></a><p class="title"><b>Example 15. Tracing object instances</b></p>
-<div class="example-contents"><pre class="programlisting">
-    // trace un-freed object instances
-    gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
-    if (!gst_alloc_trace_available ()) {
-      g_warning ("Trace not available (recompile with trace enabled).");
-    }
-    gst_alloc_trace_print_live ();
-    // do something here
-    gst_alloc_trace_print_live ();
-  </pre></div>
-</div>
-<p><br class="example-break">
-</p>
-<p>
-Last reviewed on 2005-11-21 (0.9.5)
-</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstTrace.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstTrace"></a><h3>struct GstTrace</h3>
-<pre class="programlisting">struct GstTrace {
-};
-</pre>
-<p>
-Opaque <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> structure.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-new"></a><h3>gst_trace_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="returnvalue">GstTrace</span></a> *          gst_trace_new                       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filename</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>);</pre>
-<p>
-Create a ringbuffer of <em class="parameter"><code>size</code></em> in the file with <em class="parameter"><code>filename</code></em> to
-store trace results in.
-</p>
-<p>
-Free-function: gst_trace_destroy
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
-<td>a filename</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the max size of the file</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-destroy"></a><h3>gst_trace_destroy ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_trace_destroy                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);</pre>
-<p>
-Flush an close the previously allocated <em class="parameter"><code>trace</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> to destroy. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-flush"></a><h3>gst_trace_flush ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_trace_flush                     (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);</pre>
-<p>
-Flush any pending trace entries in <em class="parameter"><code>trace</code></em> to the trace file.
-<em class="parameter"><code>trace</code></em> can be NULL in which case the default <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> will be
-flushed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> to flush.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-text-flush"></a><h3>gst_trace_text_flush ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_trace_text_flush                (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);</pre>
-<p>
-Flush any pending trace entries in <em class="parameter"><code>trace</code></em> to the trace file,
-formatted as a text line with timestamp and sequence numbers.
-<em class="parameter"><code>trace</code></em> can be NULL in which case the default <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> will be
-flushed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> to flush.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-add-entry"></a><h3>gst_trace_add_entry()</h3>
-<pre class="programlisting">#define             gst_trace_add_entry(trace,seq,data,msg)</pre>
-<p>
-Add an entry to <em class="parameter"><code>trace</code></em> with sequence number <em class="parameter"><code>seq</code></em>, <em class="parameter"><code>data</code></em> and <em class="parameter"><code>msg</code></em>.
-If <em class="parameter"><code>trace</code></em> is NULL, the entry will be added to the default <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
-<td>a sequence number</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to trace</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
-<td>the trace message</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-get-size"></a><h3>gst_trace_get_size()</h3>
-<pre class="programlisting">#define 	gst_trace_get_size(trace) 	((trace)-&gt;bufsize)
-</pre>
-<p>
-Retrieve the buffer size of <em class="parameter"><code>trace</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-get-offset"></a><h3>gst_trace_get_offset()</h3>
-<pre class="programlisting">#define 	gst_trace_get_offset(trace) 	((trace)-&gt;bufoffset)
-</pre>
-<p>
-Retrieve the current buffer offset of <em class="parameter"><code>trace</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-get-remaining"></a><h3>gst_trace_get_remaining()</h3>
-<pre class="programlisting">#define 	gst_trace_get_remaining(trace) 	((trace)-&gt;bufsize - (trace)-&gt;bufoffset)
-</pre>
-<p>
-Retrieve the remaining size in the <em class="parameter"><code>trace</code></em> buffer.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-set-default"></a><h3>gst_trace_set_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_trace_set_default               (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> *trace</code></em>);</pre>
-<p>
-Set the default <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> to <em class="parameter"><code>trace</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTrace.html#GstTrace" title="struct GstTrace"><span class="type">GstTrace</span></a> to set as the default.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-trace-read-tsc"></a><h3>gst_trace_read_tsc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_trace_read_tsc                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dst</code></em>);</pre>
-<p>
-Read a platform independent timer value that can be used in
-benchmarks.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
-<td>(out) pointer to hold the result.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocTraceFlags"></a><h3>enum GstAllocTraceFlags</h3>
-<pre class="programlisting">typedef enum {
-  GST_ALLOC_TRACE_NONE      = 0,
-  GST_ALLOC_TRACE_LIVE      = (1 &lt;&lt; 0),
-  GST_ALLOC_TRACE_MEM_LIVE = (1 &lt;&lt; 1)
-} GstAllocTraceFlags;
-</pre>
-<p>
-Flags indicating which tracing feature to enable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-ALLOC-TRACE-NONE:CAPS"></a><span class="term"><code class="literal">GST_ALLOC_TRACE_NONE</code></span></p></td>
-<td>No tracing specified or desired. Since 0.10.36.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ALLOC-TRACE-LIVE:CAPS"></a><span class="term"><code class="literal">GST_ALLOC_TRACE_LIVE</code></span></p></td>
-<td>Trace number of non-freed memory.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-ALLOC-TRACE-MEM-LIVE:CAPS"></a><span class="term"><code class="literal">GST_ALLOC_TRACE_MEM_LIVE</code></span></p></td>
-<td>Trace pointers of unfreed memory.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocTrace"></a><h3>struct GstAllocTrace</h3>
-<pre class="programlisting">struct GstAllocTrace {
-  gchar		*name;
-  gint		 flags;
-
-  gint		 live;
-  GSList *mem_live;
-};
-</pre>
-<p>
-The main tracing object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAllocTrace.name"></a>name</code></em>;</span></p></td>
-<td>The name of the tracing object</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAllocTrace.flags"></a>flags</code></em>;</span></p></td>
-<td>Flags for this object</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAllocTrace.live"></a>live</code></em>;</span></p></td>
-<td>counter for live memory</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *<em class="structfield"><code><a name="GstAllocTrace.mem-live"></a>mem_live</code></em>;</span></p></td>
-<td>list with pointers to unfreed memory</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-available"></a><h3>gst_alloc_trace_available ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_alloc_trace_available           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Check if alloc tracing was compiled into the core
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the core was compiled with alloc
-tracing enabled.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-list"></a><h3>gst_alloc_trace_list ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gst_alloc_trace_list                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Get a list of all registered alloc trace objects.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a GList of GstAllocTrace objects.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-live-all"></a><h3>gst_alloc_trace_live_all ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 gst_alloc_trace_live_all            (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Get the total number of live registered alloc trace objects.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the total number of live registered alloc trace objects.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-print-all"></a><h3>gst_alloc_trace_print_all ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_alloc_trace_print_all           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Print the status of all registered alloc trace objects.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-set-flags-all"></a><h3>gst_alloc_trace_set_flags_all ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_alloc_trace_set_flags_all       (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags"><span class="type">GstAllocTraceFlags</span></a> flags</code></em>);</pre>
-<p>
-Enable the specified options on all registered alloc trace
-objects.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>the options to enable</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-get"></a><h3>gst_alloc_trace_get ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="returnvalue">GstAllocTrace</span></a> *     gst_alloc_trace_get                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>
-Get the named alloc trace object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the alloc trace object</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a GstAllocTrace with the given name or NULL when
-no alloc tracer was registered with that name.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-print"></a><h3>gst_alloc_trace_print ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_alloc_trace_print               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="type">GstAllocTrace</span></a> *trace</code></em>);</pre>
-<p>
-Print the status of the given GstAllocTrace.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the GstAllocTrace to print</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-print-live"></a><h3>gst_alloc_trace_print_live ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_alloc_trace_print_live          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Print the status of all registered alloc trace objects, ignoring those
-without live objects.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-set-flags"></a><h3>gst_alloc_trace_set_flags ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_alloc_trace_set_flags           (<em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTrace" title="struct GstAllocTrace"><span class="type">GstAllocTrace</span></a> *trace</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTrace.html#GstAllocTraceFlags" title="enum GstAllocTraceFlags"><span class="type">GstAllocTraceFlags</span></a> flags</code></em>);</pre>
-<p>
-Enable the given features on the given GstAllocTrace object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>the GstAllocTrace</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>flags to set</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-register"></a><h3>gst_alloc_trace_register()</h3>
-<pre class="programlisting">#define gst_alloc_trace_register(name) _gst_alloc_trace_register (name);
-</pre>
-<p>
-Register a new alloc tracer with the given name
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>The name of the tracer object</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-new"></a><h3>gst_alloc_trace_new()</h3>
-<pre class="programlisting">#define             gst_alloc_trace_new(trace, mem)</pre>
-<p>
-Use the tracer to trace a new memory allocation
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>The tracer to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>The memory allocated</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-alloc-trace-free"></a><h3>gst_alloc_trace_free()</h3>
-<pre class="programlisting">#define             gst_alloc_trace_free(trace, mem)</pre>
-<p>
-Trace a memory free operation
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>trace</code></em> :</span></p></td>
-<td>The tracer to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>The memory that is freed</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/gst/html/gstreamer-GstTypeFind.html b/docs/gst/html/gstreamer-GstTypeFind.html
index 01e856f..432ec7d 100644
--- a/docs/gst/html/gstreamer-GstTypeFind.html
+++ b/docs/gst/html/gstreamer-GstTypeFind.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFind</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="GstTaskPool.html" title="GstTaskPool">
+<link rel="prev" href="gstreamer-GstTocSetter.html" title="GstTocSetter">
 <link rel="next" href="GstTypeFindFactory.html" title="GstTypeFindFactory">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="GstTaskPool.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-GstTocSetter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="GstTypeFindFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -44,24 +44,24 @@
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()">*GstTypeFindFunction</a>)              (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
 enum                <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindProbability" title="enum GstTypeFindProbability">GstTypeFindProbability</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-peek" title="gst_type_find_peek ()">gst_type_find_peek</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> offset</code></em>,
+const <span class="returnvalue">guint8</span> *      <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-peek" title="gst_type_find_peek ()">gst_type_find_peek</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-suggest" title="gst_type_find_suggest ()">gst_type_find_suggest</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> probability</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-suggest-simple" title="gst_type_find_suggest_simple ()">gst_type_find_suggest_simple</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> probability</code></em>,
                                                          <em class="parameter"><code>const <span class="type">char</span> *media_type</code></em>,
                                                          <em class="parameter"><code>const <span class="type">char</span> *fieldname</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-get-length" title="gst_type_find_get_length ()">gst_type_find_get_length</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-get-length" title="gst_type_find_get_length ()">gst_type_find_get_length</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-register" title="gst_type_find_register ()">gst_type_find_register</a>              (<em class="parameter"><code><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> *plugin</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extensions</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *possible_caps</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extensions</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *possible_caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> data_notify</code></em>);
 </pre>
@@ -88,7 +88,7 @@
 
   void            (* suggest)    (gpointer         data,
                                   guint            probability,
-                                  const GstCaps *  caps);
+                                  GstCaps         *caps);
 
   gpointer         data;
 
@@ -198,8 +198,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-peek"></a><h3>gst_type_find_peek ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      gst_type_find_peek                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> offset</code></em>,
+<pre class="programlisting">const <span class="returnvalue">guint8</span> *      gst_type_find_peek                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Returns the <em class="parameter"><code>size</code></em> bytes of the stream to identify beginning at offset. If
@@ -237,7 +237,7 @@
 <a name="gst-type-find-suggest"></a><h3>gst_type_find_suggest ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_type_find_suggest               (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> probability</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 If a <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> calls this function it suggests the caps with the
 given probability. A <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> may supply different suggestions
@@ -319,7 +319,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-get-length"></a><h3>gst_type_find_get_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_type_find_get_length            (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_type_find_get_length            (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
 <p>
 Get the length of the data stream.
 </p>
@@ -344,8 +344,8 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extensions</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *possible_caps</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extensions</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *possible_caps</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> data_notify</code></em>);</pre>
 <p>
@@ -375,7 +375,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>extensions</code></em> :</span></p></td>
-<td>Optional extensions that could belong to this type. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
+<td>Optional comma-separated list of extensions
+that could belong to this type. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
diff --git a/docs/gst/html/gstreamer-GstUriHandler.html b/docs/gst/html/gstreamer-GstUriHandler.html
index a480073..2348701 100644
--- a/docs/gst/html/gstreamer-GstUriHandler.html
+++ b/docs/gst/html/gstreamer-GstUriHandler.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstUriHandler</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstTypeFindFactory.html" title="GstTypeFindFactory">
 <link rel="next" href="gstreamer-GstUtils.html" title="GstUtils">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstTypeFindFactory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstUtils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -26,8 +26,6 @@
                   <a href="#gstreamer-GstUriHandler.description" class="shortcut">Description</a>
                    | 
                   <a href="#gstreamer-GstUriHandler.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#gstreamer-GstUriHandler.signals" class="shortcut">Signals</a>
 </td></tr>
 </table>
 <div class="refentry">
@@ -47,6 +45,8 @@
                     <a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler-struct" title="GstURIHandler">GstURIHandler</a>;
 struct              <a class="link" href="gstreamer-GstUriHandler.html#GstURIHandlerInterface" title="struct GstURIHandlerInterface">GstURIHandlerInterface</a>;
 enum                <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType">GstURIType</a>;
+enum                <a class="link" href="gstreamer-GstUriHandler.html#GstURIError" title="enum GstURIError">GstURIError</a>;
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-error-quark" title="gst_uri_error_quark ()">gst_uri_error_quark</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
 #define             <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-TYPE-IS-VALID:CAPS" title="GST_URI_TYPE_IS_VALID()">GST_URI_TYPE_IS_VALID</a>               (type)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-protocol-is-valid" title="gst_uri_protocol_is_valid ()">gst_uri_protocol_is_valid</a>           (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported" title="gst_uri_protocol_is_supported ()">gst_uri_protocol_is_supported</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> type</code></em>,
@@ -63,13 +63,12 @@
 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-GstUriHandler.html#gst-element-make-from-uri" title="gst_element_make_from_uri ()">gst_element_make_from_uri</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *elementname</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type" title="gst_uri_handler_get_uri_type ()">gst_uri_handler_get_uri_type</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols" title="gst_uri_handler_get_protocols ()">gst_uri_handler_get_protocols</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri" title="gst_uri_handler_get_uri ()">gst_uri_handler_get_uri</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
+<a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type" title="gst_uri_handler_get_uri_type ()">gst_uri_handler_get_uri_type</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols" title="gst_uri_handler_get_protocols ()">gst_uri_handler_get_protocols</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri" title="gst_uri_handler_get_uri ()">gst_uri_handler_get_uri</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-set-uri" title="gst_uri_handler_set_uri ()">gst_uri_handler_set_uri</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-new-uri" title="gst_uri_handler_new_uri ()">gst_uri_handler_new_uri</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -80,15 +79,9 @@
 </pre>
 </div>
 <div class="refsect1">
-<a name="gstreamer-GstUriHandler.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler-new-uri" title='The "new-uri" signal'>new-uri</a>"                                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-</pre>
-</div>
-<div class="refsect1">
 <a name="gstreamer-GstUriHandler.description"></a><h2>Description</h2>
 <p>
-The URIHandler is an interface that is implemented by Source and Sink 
+The URIHandler is an interface that is implemented by Source and Sink
 <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to simplify then handling of URI.
 </p>
 <p>
@@ -116,16 +109,18 @@
 <div class="refsect2">
 <a name="GstURIHandlerInterface"></a><h3>struct GstURIHandlerInterface</h3>
 <pre class="programlisting">struct GstURIHandlerInterface {
-  GTypeInterface parent;
+  GTypeInterface parent;
 
+  /* vtable */
   /* querying capabilities */
-  GstURIType		(* get_type)		(GType type);
-  gchar **		(* get_protocols) (GType type);
+  GstURIType             (* get_type)           (GType type);
+  const gchar * const *  (* get_protocols)      (GType type);
 
   /* using the interface */
-  const gchar *		(* get_uri)		(GstURIHandler * handler);
-  gboolean		(* set_uri)		(GstURIHandler * handler,
-						 const gchar *	 uri);
+  gchar *                (* get_uri)            (GstURIHandler * handler);
+  gboolean               (* set_uri)            (GstURIHandler * handler,
+                                                 const gchar   * uri,
+                                                 GError       ** error);
 };
 </pre>
 <p>
@@ -192,6 +187,52 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstURIError"></a><h3>enum GstURIError</h3>
+<pre class="programlisting">typedef enum {
+  GST_URI_ERROR_BAD_PROTOCOL,
+  GST_URI_ERROR_BAD_URI,
+  GST_URI_ERROR_BAD_STATE,
+  GST_URI_ERROR_BAD_REFERENCE
+} GstURIError;
+</pre>
+<p>
+Different URI-related errors that can occur.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-URI-ERROR-BAD-PROTOCOL:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_BAD_PROTOCOL</code></span></p></td>
+<td>The protocol is not supported
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-URI-ERROR-BAD-URI:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_BAD_URI</code></span></p></td>
+<td>There was a problem with the URI
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-URI-ERROR-BAD-STATE:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_BAD_STATE</code></span></p></td>
+<td>Could not set or change the URI because the
+    URI handler was in a state where that is not possible or not permitted
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-URI-ERROR-BAD-REFERENCE:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_BAD_REFERENCE</code></span></p></td>
+<td>There was a problem with the entity that
+    the URI references
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-uri-error-quark"></a><h3>gst_uri_error_quark ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              gst_uri_error_quark                 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-URI-TYPE-IS-VALID:CAPS"></a><h3>GST_URI_TYPE_IS_VALID()</h3>
 <pre class="programlisting">#define GST_URI_TYPE_IS_VALID(type) ((type) == GST_URI_SRC || (type) == GST_URI_SINK)
 </pre>
@@ -459,7 +500,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-uri-handler-get-uri-type"></a><h3>gst_uri_handler_get_uri_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_uri_handler_get_uri_type        (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          gst_uri_handler_get_uri_type        (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
 <p>
 Gets the type of the given URI handler
 </p>
@@ -481,7 +522,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-uri-handler-get-protocols"></a><h3>gst_uri_handler_get_protocols ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            gst_uri_handler_get_protocols       (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * gst_uri_handler_get_protocols     (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
 <p>
 Gets the list of protocols supported by <em class="parameter"><code>handler</code></em>. This list may not be
 modified.
@@ -506,7 +547,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-uri-handler-get-uri"></a><h3>gst_uri_handler_get_uri ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_uri_handler_get_uri             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_uri_handler_get_uri             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
 <p>
 Gets the currently handled URI.
 </p>
@@ -522,7 +563,7 @@
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the URI currently handled by the <em class="parameter"><code>handler</code></em>.
 Returns NULL if there are no URI currently handled. The
-returned string must not be modified or freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+returned string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -532,7 +573,8 @@
 <div class="refsect2">
 <a name="gst-uri-handler-set-uri"></a><h3>gst_uri_handler_set_uri ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_uri_handler_set_uri             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>
 Tries to set the URI of the given handler.
 </p>
@@ -549,66 +591,18 @@
 <td>URI to set</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>address where to store a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> in case of
+an error, or NULL. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if the URI was set successfully, else FALSE.</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-uri-handler-new-uri"></a><h3>gst_uri_handler_new_uri ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_uri_handler_new_uri             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
-<p>
-Emits the new-uri signal for a given handler, when that handler has a new URI.
-This function should only be called by URI handlers themselves.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
-<td>new URI or NULL if it was unset</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-GstUriHandler.signal-details"></a><h2>Signal Details</h2>
-<div class="refsect2">
-<a name="GstURIHandler-new-uri"></a><h3>The <code class="literal">"new-uri"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>         *uri,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-The URI of the given <em class="parameter"><code>handler</code></em> has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
-<td>The <a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> which emitted the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
-<td>The new URI, or NULL if the URI was removed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/gstreamer-GstUtils.html b/docs/gst/html/gstreamer-GstUtils.html
index 1303bfc..d6dc072 100644
--- a/docs/gst/html/gstreamer-GstUtils.html
+++ b/docs/gst/html/gstreamer-GstUtils.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstUtils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstUriHandler.html" title="GstUriHandler">
 <link rel="next" href="gstreamer-GstValue.html" title="GstValue">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstUriHandler.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstValue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -56,10 +56,10 @@
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT32-BE:CAPS" title="GST_READ_UINT32_BE()">GST_READ_UINT32_BE</a>                  (data)
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT64-LE:CAPS" title="GST_READ_UINT64_LE()">GST_READ_UINT64_LE</a>                  (data)
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT64-BE:CAPS" title="GST_READ_UINT64_BE()">GST_READ_UINT64_BE</a>                  (data)
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS" title="GST_READ_FLOAT_LE ()">GST_READ_FLOAT_LE</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS" title="GST_READ_FLOAT_BE ()">GST_READ_FLOAT_BE</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS" title="GST_READ_DOUBLE_LE ()">GST_READ_DOUBLE_LE</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS" title="GST_READ_DOUBLE_BE ()">GST_READ_DOUBLE_BE</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS" title="GST_READ_FLOAT_LE ()">GST_READ_FLOAT_LE</a>                   (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS" title="GST_READ_FLOAT_BE ()">GST_READ_FLOAT_BE</a>                   (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS" title="GST_READ_DOUBLE_LE ()">GST_READ_DOUBLE_LE</a>                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS" title="GST_READ_DOUBLE_BE ()">GST_READ_DOUBLE_BE</a>                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT8:CAPS" title="GST_WRITE_UINT8()">GST_WRITE_UINT8</a>                     (data,
                                                          num)
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT16-LE:CAPS" title="GST_WRITE_UINT16_LE()">GST_WRITE_UINT16_LE</a>                 (data,
@@ -78,13 +78,13 @@
                                                          num)
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT64-BE:CAPS" title="GST_WRITE_UINT64_BE()">GST_WRITE_UINT64_BE</a>                 (data,
                                                          num)
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS" title="GST_WRITE_FLOAT_LE ()">GST_WRITE_FLOAT_LE</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS" title="GST_WRITE_FLOAT_LE ()">GST_WRITE_FLOAT_LE</a>                  (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS" title="GST_WRITE_FLOAT_BE ()">GST_WRITE_FLOAT_BE</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS" title="GST_WRITE_FLOAT_BE ()">GST_WRITE_FLOAT_BE</a>                  (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS" title="GST_WRITE_DOUBLE_LE ()">GST_WRITE_DOUBLE_LE</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS" title="GST_WRITE_DOUBLE_LE ()">GST_WRITE_DOUBLE_LE</a>                 (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS" title="GST_WRITE_DOUBLE_BE ()">GST_WRITE_DOUBLE_BE</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS" title="GST_WRITE_DOUBLE_BE ()">GST_WRITE_DOUBLE_BE</a>                 (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-2:CAPS" title="GST_ROUND_UP_2()">GST_ROUND_UP_2</a>                      (num)
 #define             <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-4:CAPS" title="GST_ROUND_UP_4()">GST_ROUND_UP_4</a>                      (num)
@@ -118,41 +118,31 @@
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 #define             <a class="link" href="gstreamer-GstUtils.html#gst-guint64-to-gdouble" title="gst_guint64_to_gdouble()">gst_guint64_to_gdouble</a>              (value)
 #define             <a class="link" href="gstreamer-GstUtils.html#gst-gdouble-to-guint64" title="gst_gdouble_to_guint64()">gst_gdouble_to_guint64</a>              (value)
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               <a class="link" href="gstreamer-GstUtils.html#gst-type-register-static-full" title="gst_type_register_static_full ()">gst_type_register_static_full</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> parent_type</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GBaseInitFunc"><span class="type">GBaseInitFunc</span></a> base_init</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GBaseFinalizeFunc"><span class="type">GBaseFinalizeFunc</span></a> base_finalize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GClassInitFunc"><span class="type">GClassInitFunc</span></a> class_init</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GClassFinalizeFunc"><span class="type">GClassFinalizeFunc</span></a> class_finalize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> class_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> instance_size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> n_preallocs</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> instance_init</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeValueTable"><span class="type">GTypeValueTable</span></a> *value_table</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-util-dump-mem" title="gst_util_dump_mem ()">gst_util_dump_mem</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()">gst_util_uint64_scale</a>               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()">gst_util_uint64_scale_round</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()">gst_util_uint64_scale_ceil</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()">gst_util_uint64_scale_int</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()">gst_util_uint64_scale</a>               (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()">gst_util_uint64_scale_round</a>         (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()">gst_util_uint64_scale_ceil</a>          (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()">gst_util_uint64_scale_int</a>           (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()">gst_util_uint64_scale_int_round</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()">gst_util_uint64_scale_int_round</a>     (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()">gst_util_uint64_scale_int_ceil</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()">gst_util_uint64_scale_int_ceil</a>      (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstUtils.html#gst-util-greatest-common-divisor" title="gst_util_greatest_common_divisor ()">gst_util_greatest_common_divisor</a>    (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64" title="gst_util_greatest_common_divisor_int64 ()">gst_util_greatest_common_divisor_int64</a>
+                                                        (<em class="parameter"><code><span class="type">gint64</span> a</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> b</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-util-fraction-to-double" title="gst_util_fraction_to_double ()">gst_util_fraction_to_double</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_n</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_d</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *dest</code></em>);
@@ -175,9 +165,9 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-next" title="gst_util_seqnum_next ()">gst_util_seqnum_next</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()">gst_util_seqnum_compare</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> s1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> s2</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-next" title="gst_util_seqnum_next ()">gst_util_seqnum_next</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()">gst_util_seqnum_compare</a>             (<em class="parameter"><code><span class="type">guint32</span> s1</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> s2</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-util-set-object-arg" title="gst_util_set_object_arg ()">gst_util_set_object_arg</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
@@ -187,7 +177,7 @@
 enum                <a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode">GstSearchMode</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gstreamer-GstUtils.html#gst-util-array-binary-search" title="gst_util_array_binary_search ()">gst_util_array_binary_search</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> array</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_elements</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> element_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> element_size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> search_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode"><span class="type">GstSearchMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> search_data</code></em>,
@@ -259,7 +249,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT8:CAPS"></a><h3>GST_READ_UINT8()</h3>
-<pre class="programlisting">#define GST_READ_UINT8(data)		(_GST_GET (data, 0,  8,  0))
+<pre class="programlisting">#define GST_READ_UINT8(data)            (_GST_GET (data, 0,  8,  0))
 </pre>
 <p>
 Read an 8 bit unsigned integer value from the memory buffer.
@@ -397,7 +387,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-FLOAT-LE:CAPS"></a><h3>GST_READ_FLOAT_LE ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              GST_READ_FLOAT_LE                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              GST_READ_FLOAT_LE                   (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Read a 32 bit float value in little endian format from the memory buffer.
 </p>
@@ -420,7 +410,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-FLOAT-BE:CAPS"></a><h3>GST_READ_FLOAT_BE ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              GST_READ_FLOAT_BE                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              GST_READ_FLOAT_BE                   (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Read a 32 bit float value in big endian format from the memory buffer.
 </p>
@@ -443,7 +433,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-DOUBLE-LE:CAPS"></a><h3>GST_READ_DOUBLE_LE ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             GST_READ_DOUBLE_LE                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             GST_READ_DOUBLE_LE                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Read a 64 bit double value in little endian format from the memory buffer.
 </p>
@@ -466,7 +456,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-DOUBLE-BE:CAPS"></a><h3>GST_READ_DOUBLE_BE ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             GST_READ_DOUBLE_BE                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             GST_READ_DOUBLE_BE                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>
 Read a 64 bit double value in big endian format from the memory buffer.
 </p>
@@ -680,7 +670,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-WRITE-FLOAT-LE:CAPS"></a><h3>GST_WRITE_FLOAT_LE ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_FLOAT_LE                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_FLOAT_LE                  (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
 <p>
 Store a 32 bit float value in little endian format into the memory buffer.
@@ -703,7 +693,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-WRITE-FLOAT-BE:CAPS"></a><h3>GST_WRITE_FLOAT_BE ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_FLOAT_BE                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_FLOAT_BE                  (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
 <p>
 Store a 32 bit float value in big endian format into the memory buffer.
@@ -726,7 +716,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-WRITE-DOUBLE-LE:CAPS"></a><h3>GST_WRITE_DOUBLE_LE ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_DOUBLE_LE                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_DOUBLE_LE                 (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
 <p>
 Store a 64 bit double value in little endian format into the memory buffer.
@@ -749,7 +739,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-WRITE-DOUBLE-BE:CAPS"></a><h3>GST_WRITE_DOUBLE_BE ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_DOUBLE_BE                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                GST_WRITE_DOUBLE_BE                 (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
 <p>
 Store a 64 bit double value in big endian format into the memory buffer.
@@ -1271,7 +1261,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value to convert</td>
+<td>the <span class="type">guint64</span> value to convert</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1299,114 +1289,13 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<em class="parameter"><code>value</code></em> converted to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>.</td>
+<em class="parameter"><code>value</code></em> converted to a <span class="type">guint64</span>.</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-type-register-static-full"></a><h3>gst_type_register_static_full ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               gst_type_register_static_full       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> parent_type</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GBaseInitFunc"><span class="type">GBaseInitFunc</span></a> base_init</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GBaseFinalizeFunc"><span class="type">GBaseFinalizeFunc</span></a> base_finalize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GClassInitFunc"><span class="type">GClassInitFunc</span></a> class_init</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GClassFinalizeFunc"><span class="type">GClassFinalizeFunc</span></a> class_finalize</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> class_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> instance_size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> n_preallocs</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GInstanceInitFunc"><span class="type">GInstanceInitFunc</span></a> instance_init</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeValueTable"><span class="type">GTypeValueTable</span></a> *value_table</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);</pre>
-<p>
-Helper function which constructs a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInfo"><span class="type">GTypeInfo</span></a> structure and registers a
-GType, but which generates less linker overhead than a static const
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInfo"><span class="type">GTypeInfo</span></a> structure. For further details of the parameters, please see
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInfo"><span class="type">GTypeInfo</span></a> in the GLib documentation.
-</p>
-<p>
-Registers type_name as the name of a new static type derived from
-parent_type. The value of flags determines the nature (e.g. abstract or
-not) of the type. It works by filling a GTypeInfo struct and calling
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-register-static"><code class="function">g_type_register_static()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parent_type</code></em> :</span></p></td>
-<td>The GType of the parent type the newly registered type will
-derive from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
-<td>NULL-terminated string used as the name of the new type</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>class_size</code></em> :</span></p></td>
-<td>Size of the class structure.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>base_init</code></em> :</span></p></td>
-<td>Location of the base initialization function (optional).</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>base_finalize</code></em> :</span></p></td>
-<td>Location of the base finalization function (optional).</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>class_init</code></em> :</span></p></td>
-<td>Location of the class initialization function for class types
-Location of the default vtable initialization function for interface
-types. (optional)</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>class_finalize</code></em> :</span></p></td>
-<td>Location of the class finalization function for class types.
-Location of the default vtable finalization function for interface types.
-(optional)</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>class_data</code></em> :</span></p></td>
-<td>User-supplied data passed to the class init/finalize functions.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>instance_size</code></em> :</span></p></td>
-<td>Size of the instance (object) structure (required for
-instantiatable types only).</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_preallocs</code></em> :</span></p></td>
-<td>The number of pre-allocated (cached) instances to reserve
-memory for (0 indicates no caching). Ignored on recent GLib's.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>instance_init</code></em> :</span></p></td>
-<td>Location of the instance initialization function (optional,
-for instantiatable types only).</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_table</code></em> :</span></p></td>
-<td>A GTypeValueTable function table for generic handling of
-GValues of this type (usually only useful for fundamental types).</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeFlags"><span class="type">GTypeFlags</span></a> for this GType. E.g: G_TYPE_FLAG_ABSTRACT</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> for the newly-registered type.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-util-dump-mem"></a><h3>gst_util_dump_mem ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_util_dump_mem                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
@@ -1430,9 +1319,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale"></a><h3>gst_util_uint64_scale ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale               (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
 <p>
 Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
 underflows and without loss of precision.
@@ -1472,9 +1361,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale-round"></a><h3>gst_util_uint64_scale_round ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale_round         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale_round         (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
 <p>
 Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
 underflows and without loss of precision.
@@ -1514,9 +1403,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale-ceil"></a><h3>gst_util_uint64_scale_ceil ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale_ceil          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> num</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> denom</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale_ceil          (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> num</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
 <p>
 Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
 underflows and without loss of precision.
@@ -1556,7 +1445,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale-int"></a><h3>gst_util_uint64_scale_int ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale_int           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale_int           (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
 <p>
@@ -1595,7 +1484,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale-int-round"></a><h3>gst_util_uint64_scale_int_round ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale_int_round     (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale_int_round     (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
 <p>
@@ -1634,7 +1523,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-uint64-scale-int-ceil"></a><h3>gst_util_uint64_scale_int_ceil ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_util_uint64_scale_int_ceil      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_util_uint64_scale_int_ceil      (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
 <p>
@@ -1703,6 +1592,38 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-util-greatest-common-divisor-int64"></a><h3>gst_util_greatest_common_divisor_int64 ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_util_greatest_common_divisor_int64
+                                                        (<em class="parameter"><code><span class="type">gint64</span> a</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> b</code></em>);</pre>
+<p>
+Calculates the greatest common divisor of <em class="parameter"><code>a</code></em>
+and <em class="parameter"><code>b</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
+<td>First value as <span class="type">gint64</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>Second value as <span class="type">gint64</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Greatest common divisor of <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.11.0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-util-fraction-to-double"></a><h3>gst_util_fraction_to_double ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_util_fraction_to_double         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_n</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_d</code></em>,
@@ -1907,7 +1828,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-seqnum-next"></a><h3>gst_util_seqnum_next ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_util_seqnum_next                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_util_seqnum_next                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Return a constantly incrementing sequence number.
 </p>
@@ -1931,8 +1852,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-util-seqnum-compare"></a><h3>gst_util_seqnum_compare ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_util_seqnum_compare             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> s1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> s2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_util_seqnum_compare             (<em class="parameter"><code><span class="type">guint32</span> s1</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> s2</code></em>);</pre>
 <p>
 Compare two sequence numbers, handling wraparound.
 </p>
@@ -2075,7 +1996,7 @@
 <a name="gst-util-array-binary-search"></a><h3>gst_util_array_binary_search ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_util_array_binary_search        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> array</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_elements</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> element_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> element_size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> search_func</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode"><span class="type">GstSearchMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> search_data</code></em>,
diff --git a/docs/gst/html/gstreamer-GstValue.html b/docs/gst/html/gstreamer-GstValue.html
index da7a121..f2dbe62 100644
--- a/docs/gst/html/gstreamer-GstValue.html
+++ b/docs/gst/html/gstreamer-GstValue.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstValue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstUtils.html" title="GstUtils">
 <link rel="next" href="gstreamer-GstVersion.html" title="GstVersion">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstUtils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstVersion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -56,14 +56,30 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> end</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstValue.html#gst-value-get-int-range-min" title="gst_value_get_int_range_min ()">gst_value_get_int_range_min</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstValue.html#gst-value-get-int-range-max" title="gst_value_get_int_range_max ()">gst_value_get_int_range_max</a>         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-int-range-step" title="gst_value_set_int_range_step ()">gst_value_set_int_range_step</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> start</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> end</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> step</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstValue.html#gst-value-get-int-range-step" title="gst_value_get_int_range_step ()">gst_value_get_int_range_step</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
+
+#define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-BITMASK:CAPS" title="GST_VALUE_HOLDS_BITMASK()">GST_VALUE_HOLDS_BITMASK</a>             (x)
+#define             <a class="link" href="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS" title="GST_TYPE_BITMASK">GST_TYPE_BITMASK</a>
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-bitmask" title="gst_value_set_bitmask ()">gst_value_set_bitmask</a>               (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> bitmask</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-GstValue.html#gst-value-get-bitmask" title="gst_value_get_bitmask ()">gst_value_get_bitmask</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
 
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS" title="GST_VALUE_HOLDS_INT64_RANGE()">GST_VALUE_HOLDS_INT64_RANGE</a>         (x)
 #define             <a class="link" href="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS" title="GST_TYPE_INT64_RANGE">GST_TYPE_INT64_RANGE</a>
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-int64-range" title="gst_value_set_int64_range ()">gst_value_set_int64_range</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> end</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-min" title="gst_value_get_int64_range_min ()">gst_value_get_int64_range_min</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-max" title="gst_value_get_int64_range_max ()">gst_value_get_int64_range_max</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> end</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-min" title="gst_value_get_int64_range_min ()">gst_value_get_int64_range_min</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-max" title="gst_value_get_int64_range_max ()">gst_value_get_int64_range_max</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-int64-range-step" title="gst_value_set_int64_range_step ()">gst_value_set_int64_range_step</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> end</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> step</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-GstValue.html#gst-value-get-int64-range-step" title="gst_value_get_int64_range_step ()">gst_value_get_int64_range_step</a>      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
 
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS" title="GST_VALUE_HOLDS_DOUBLE_RANGE()">GST_VALUE_HOLDS_DOUBLE_RANGE</a>        (x)
 #define             <a class="link" href="gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS" title="GST_TYPE_DOUBLE_RANGE">GST_TYPE_DOUBLE_RANGE</a>
@@ -118,12 +134,6 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> numerator_end</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denominator_end</code></em>);
 
-#define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE:CAPS" title="GST_VALUE_HOLDS_DATE()">GST_VALUE_HOLDS_DATE</a>                (x)
-#define             <a class="link" href="gstreamer-GstValue.html#GST-TYPE-DATE:CAPS" title="GST_TYPE_DATE">GST_TYPE_DATE</a>
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-set-date" title="gst_value_set_date ()">gst_value_set_date</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> *date</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="returnvalue">GDate</span></a> *       <a class="link" href="gstreamer-GstValue.html#gst-value-get-date" title="gst_value_get_date ()">gst_value_get_date</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS" title="GST_VALUE_HOLDS_DATE_TIME()">GST_VALUE_HOLDS_DATE_TIME</a>           (x)
 
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS" title="GST_VALUE_HOLDS_CAPS()">GST_VALUE_HOLDS_CAPS</a>                (x)
@@ -143,6 +153,13 @@
 #define             <a class="link" href="gstreamer-GstValue.html#gst-value-take-buffer" title="gst_value_take_buffer()">gst_value_take_buffer</a>               (v,
                                                          b)
 
+#define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-HOLDS-SAMPLE:CAPS" title="GST_VALUE_HOLDS_SAMPLE()">GST_VALUE_HOLDS_SAMPLE</a>              (x)
+#define             <a class="link" href="gstreamer-GstValue.html#gst-value-get-sample" title="gst_value_get_sample()">gst_value_get_sample</a>                (v)
+#define             <a class="link" href="gstreamer-GstValue.html#gst-value-set-sample" title="gst_value_set_sample()">gst_value_set_sample</a>                (v,
+                                                         b)
+#define             <a class="link" href="gstreamer-GstValue.html#gst-value-take-sample" title="gst_value_take_sample()">gst_value_take_sample</a>               (v,
+                                                         b)
+
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-LESS-THAN:CAPS" title="GST_VALUE_LESS_THAN">GST_VALUE_LESS_THAN</a>
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-EQUAL:CAPS" title="GST_VALUE_EQUAL">GST_VALUE_EQUAL</a>
 #define             <a class="link" href="gstreamer-GstValue.html#GST-VALUE-GREATER-THAN:CAPS" title="GST_VALUE_GREATER_THAN">GST_VALUE_GREATER_THAN</a>
@@ -152,15 +169,6 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             (<a class="link" href="gstreamer-GstValue.html#GstValueSerializeFunc" title="GstValueSerializeFunc ()">*GstValueSerializeFunc</a>)            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstValue.html#GstValueDeserializeFunc" title="GstValueDeserializeFunc ()">*GstValueDeserializeFunc</a>)          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstValue.html#GstValueUnionFunc" title="GstValueUnionFunc ()">*GstValueUnionFunc</a>)                (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstValue.html#GstValueIntersectFunc" title="GstValueIntersectFunc ()">*GstValueIntersectFunc</a>)            (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstValue.html#GstValueSubtractFunc" title="GstValueSubtractFunc ()">*GstValueSubtractFunc</a>)             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *minuend</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *subtrahend</code></em>);
 struct              <a class="link" href="gstreamer-GstValue.html#GstValueTable" title="struct GstValueTable">GstValueTable</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-is-fixed" title="gst_value_is_fixed ()">gst_value_is_fixed</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-register" title="gst_value_register ()">gst_value_register</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstValue.html#GstValueTable" title="struct GstValueTable"><span class="type">GstValueTable</span></a> *table</code></em>);
@@ -178,25 +186,18 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-can-union" title="gst_value_can_union ()">gst_value_can_union</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-register-union-func" title="gst_value_register_union_func ()">gst_value_register_union_func</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type2</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueUnionFunc" title="GstValueUnionFunc ()"><span class="type">GstValueUnionFunc</span></a> func</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-subtract" title="gst_value_subtract ()">gst_value_subtract</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *minuend</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *subtrahend</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-can-subtract" title="gst_value_can_subtract ()">gst_value_can_subtract</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *minuend</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *subtrahend</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-register-subtract-func" title="gst_value_register_subtract_func ()">gst_value_register_subtract_func</a>    (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> minuend_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> subtrahend_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueSubtractFunc" title="GstValueSubtractFunc ()"><span class="type">GstValueSubtractFunc</span></a> func</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-intersect" title="gst_value_intersect ()">gst_value_intersect</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-can-intersect" title="gst_value_can_intersect ()">gst_value_can_intersect</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-register-intersect-func" title="gst_value_register_intersect_func ()">gst_value_register_intersect_func</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type2</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueIntersectFunc" title="GstValueIntersectFunc ()"><span class="type">GstValueIntersectFunc</span></a> func</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstValue.html#gst-value-is-subset" title="gst_value_is_subset ()">gst_value_is_subset</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstValue.html#gst-value-array-append-value" title="gst_value_array_append_value ()">gst_value_array_append_value</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *append_value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstValue.html#gst-value-array-get-size" title="gst_value_array_get_size ()">gst_value_array_get_size</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
@@ -228,12 +229,20 @@
 <pre class="programlisting">#define GST_MAKE_FOURCC(a,b,c,d)        ((guint32)((a)|(b)&lt;&lt;8|(c)&lt;&lt;16|(d)&lt;&lt;24))
 </pre>
 <p>
-Transform four characters into a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc value with host
+Transform four characters into a <span class="type">guint32</span> fourcc value with host
 endianness.
 </p>
-<div class="informalexample"><pre class="programlisting">
-guint32 fourcc = GST_MAKE_FOURCC ('M', 'J', 'P', 'G');
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS">GST_MAKE_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">'M'</span><span class="gtkdoc opt">,</span> <span class="string">'J'</span><span class="gtkdoc opt">,</span> <span class="string">'P'</span><span class="gtkdoc opt">,</span> <span class="string">'G'</span><span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <div class="variablelist"><table border="0">
@@ -264,14 +273,22 @@
 <pre class="programlisting">#define GST_STR_FOURCC(f)               ((guint32)(((f)[0])|((f)[1]&lt;&lt;8)|((f)[2]&lt;&lt;16)|((f)[3]&lt;&lt;24)))
 </pre>
 <p>
-Transform an input string into a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc value with host
+Transform an input string into a <span class="type">guint32</span> fourcc value with host
 endianness.
 Caller is responsible for ensuring the input string consists of at least
 four characters.
 </p>
-<div class="informalexample"><pre class="programlisting">
-guint32 fourcc = GST_STR_FOURCC ("MJPG");
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-STR-FOURCC:CAPS">GST_STR_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;MJPG&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <div class="variablelist"><table border="0">
@@ -289,11 +306,19 @@
 </pre>
 <p>
 Can be used together with <a class="link" href="gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS" title="GST_FOURCC_ARGS()"><span class="type">GST_FOURCC_ARGS</span></a> to properly output a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc value in a <code class="function">printf()</code>-style text message.
+<span class="type">guint32</span> fourcc value in a <code class="function">printf()</code>-style text message.
 </p>
-<div class="informalexample"><pre class="programlisting">
-printf ("fourcc: %" GST_FOURCC_FORMAT "\n", GST_FOURCC_ARGS (fcc));
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;fourcc: %&quot;</span> GST_FOURCC_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS">GST_FOURCC_ARGS</a></span> <span class="gtkdoc opt">(</span>fcc<span class="gtkdoc opt">));</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 </div>
@@ -303,13 +328,13 @@
 <pre class="programlisting">#define             GST_FOURCC_ARGS(fourcc)</pre>
 <p>
 Can be used together with <a class="link" href="gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS" title="GST_FOURCC_FORMAT"><span class="type">GST_FOURCC_FORMAT</span></a> to properly output a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc value in a <code class="function">printf()</code>-style text message.
+<span class="type">guint32</span> fourcc value in a <code class="function">printf()</code>-style text message.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>fourcc</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc value to output</td>
+<td>a <span class="type">guint32</span> fourcc value to output</td>
 </tr></tbody>
 </table></div>
 </div>
@@ -416,6 +441,136 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-value-set-int-range-step"></a><h3>gst_value_set_int_range_step ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_int_range_step        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> start</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> end</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> step</code></em>);</pre>
+<p>
+Sets <em class="parameter"><code>value</code></em> to the range specified by <em class="parameter"><code>start</code></em>, <em class="parameter"><code>end</code></em> and <em class="parameter"><code>step</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_INT_RANGE</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>the start of the range</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
+<td>the end of the range</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>step</code></em> :</span></p></td>
+<td>the step of the range</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-get-int-range-step"></a><h3>gst_value_get_int_range_step ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_value_get_int_range_step        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>
+Gets the step of the range specified by <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_INT_RANGE</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the step of the range</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VALUE-HOLDS-BITMASK:CAPS"></a><h3>GST_VALUE_HOLDS_BITMASK()</h3>
+<pre class="programlisting">#define GST_VALUE_HOLDS_BITMASK(x)      (G_VALUE_HOLDS((x), gst_bitmask_get_type ()))
+</pre>
+<p>
+Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS" title="GST_TYPE_BITMASK"><span class="type">GST_TYPE_BITMASK</span></a> value.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-TYPE-BITMASK:CAPS"></a><h3>GST_TYPE_BITMASK</h3>
+<pre class="programlisting">#define GST_TYPE_BITMASK                 gst_bitmask_get_type ()
+</pre>
+<p>
+a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a 64-bit bitmask.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstBitmask (which is not explicitly typed)</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-set-bitmask"></a><h3>gst_value_set_bitmask ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_bitmask               (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> bitmask</code></em>);</pre>
+<p>
+Sets <em class="parameter"><code>value</code></em> to the bitmask specified by <em class="parameter"><code>bitmask</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bitmask</code></em> :</span></p></td>
+<td>the bitmask</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-get-bitmask"></a><h3>gst_value_get_bitmask ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_value_get_bitmask               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>
+Gets the bitmask specified by <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the bitmask.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-VALUE-HOLDS-INT64-RANGE:CAPS"></a><h3>GST_VALUE_HOLDS_INT64_RANGE()</h3>
 <pre class="programlisting">#define GST_VALUE_HOLDS_INT64_RANGE(x)    (G_VALUE_HOLDS((x), gst_int64_range_get_type ()))
 </pre>
@@ -437,7 +592,7 @@
 <pre class="programlisting">#define GST_TYPE_INT64_RANGE             gst_int64_range_get_type ()
 </pre>
 <p>
-a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> range
+a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an <span class="type">gint64</span> range
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -452,8 +607,8 @@
 <div class="refsect2">
 <a name="gst-value-set-int64-range"></a><h3>gst_value_set_int64_range ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_int64_range           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> end</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> end</code></em>);</pre>
 <p>
 Sets <em class="parameter"><code>value</code></em> to the range specified by <em class="parameter"><code>start</code></em> and <em class="parameter"><code>end</code></em>.
 </p>
@@ -479,7 +634,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-value-get-int64-range-min"></a><h3>gst_value_get_int64_range_min ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_value_get_int64_range_min       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_value_get_int64_range_min       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
 Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
@@ -501,7 +656,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-value-get-int64-range-max"></a><h3>gst_value_get_int64_range_max ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_value_get_int64_range_max       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_value_get_int64_range_max       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
 Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>.
 </p>
@@ -522,6 +677,61 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-value-set-int64-range-step"></a><h3>gst_value_set_int64_range_step ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_int64_range_step      (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> end</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> step</code></em>);</pre>
+<p>
+Sets <em class="parameter"><code>value</code></em> to the range specified by <em class="parameter"><code>start</code></em>, <em class="parameter"><code>end</code></em> and <em class="parameter"><code>step</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_INT64_RANGE</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>the start of the range</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
+<td>the end of the range</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>step</code></em> :</span></p></td>
+<td>the step of the range</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.11.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-get-int64-range-step"></a><h3>gst_value_get_int64_range_step ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_value_get_int64_range_step      (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>
+Gets the step of the range specified by <em class="parameter"><code>value</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>a GValue initialized to GST_TYPE_INT64_RANGE</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the step of the range</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.11.0</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS"></a><h3>GST_VALUE_HOLDS_DOUBLE_RANGE()</h3>
 <pre class="programlisting">#define GST_VALUE_HOLDS_DOUBLE_RANGE(x) (G_VALUE_HOLDS((x), gst_double_range_get_type ()))
 </pre>
@@ -624,7 +834,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VALUE-HOLDS-LIST:CAPS"></a><h3>GST_VALUE_HOLDS_LIST()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_LIST(x)		(G_VALUE_HOLDS((x), gst_value_list_get_type ()))
+<pre class="programlisting">#define GST_VALUE_HOLDS_LIST(x)         (G_VALUE_HOLDS((x), gst_value_list_get_type ()))
 </pre>
 <p>
 Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a> value.
@@ -660,7 +870,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VALUE-HOLDS-ARRAY:CAPS"></a><h3>GST_VALUE_HOLDS_ARRAY()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_ARRAY(x) (G_VALUE_HOLDS((x), gst_value_array_get_type ()))
+<pre class="programlisting">#define GST_VALUE_HOLDS_ARRAY(x)        (G_VALUE_HOLDS((x), gst_value_array_get_type ()))
 </pre>
 <p>
 Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS" title="GST_TYPE_ARRAY"><span class="type">GST_TYPE_ARRAY</span></a> value.
@@ -676,7 +886,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-TYPE-ARRAY:CAPS"></a><h3>GST_TYPE_ARRAY</h3>
-<pre class="programlisting">#define GST_TYPE_ARRAY			 gst_value_array_get_type ()
+<pre class="programlisting">#define GST_TYPE_ARRAY                   gst_value_array_get_type ()
 </pre>
 <p>
 a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an ordered list of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> values. This is
@@ -863,7 +1073,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VALUE-HOLDS-FRACTION:CAPS"></a><h3>GST_VALUE_HOLDS_FRACTION()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_FRACTION(x) (G_VALUE_HOLDS((x), gst_fraction_get_type ()))
+<pre class="programlisting">#define GST_VALUE_HOLDS_FRACTION(x)     (G_VALUE_HOLDS((x), gst_fraction_get_type ()))
 </pre>
 <p>
 Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a> value.
@@ -1177,83 +1387,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-VALUE-HOLDS-DATE:CAPS"></a><h3>GST_VALUE_HOLDS_DATE()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_DATE(x)         (G_VALUE_HOLDS((x), gst_date_get_type ()))
-</pre>
-<p>
-Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-DATE:CAPS" title="GST_TYPE_DATE"><span class="type">GST_TYPE_DATE</span></a> value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-TYPE-DATE:CAPS"></a><h3>GST_TYPE_DATE</h3>
-<pre class="programlisting">#define GST_TYPE_DATE                    gst_date_get_type ()
-</pre>
-<p>
-a boxed <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type for <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> that represents a date.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstDate</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-value-set-date"></a><h3>gst_value_set_date ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_set_date                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
-<p>
-Sets the contents of <em class="parameter"><code>value</code></em> to correspond to <em class="parameter"><code>date</code></em>.  The actual
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> structure is copied before it is used.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a GValue initialized to GST_TYPE_DATE</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
-<td>the date to set the value to</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-value-get-date"></a><h3>gst_value_get_date ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="returnvalue">GDate</span></a> *       gst_value_get_date                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Gets the contents of <em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a GValue initialized to GST_TYPE_DATE</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the contents of <em class="parameter"><code>value</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-VALUE-HOLDS-DATE-TIME:CAPS"></a><h3>GST_VALUE_HOLDS_DATE_TIME()</h3>
 <pre class="programlisting">#define GST_VALUE_HOLDS_DATE_TIME(x)    (G_VALUE_HOLDS((x), gst_date_time_get_type ()))
 </pre>
@@ -1272,7 +1405,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VALUE-HOLDS-CAPS"></a><h3>GST_VALUE_HOLDS_CAPS()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_CAPS(x)		(G_VALUE_HOLDS((x), GST_TYPE_CAPS))
+<pre class="programlisting">#define GST_VALUE_HOLDS_CAPS(x)         (G_VALUE_HOLDS((x), GST_TYPE_CAPS))
 </pre>
 <p>
 Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_CAPS</span> value.
@@ -1336,7 +1469,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VALUE-HOLDS-STRUCTURE:CAPS"></a><h3>GST_VALUE_HOLDS_STRUCTURE()</h3>
-<pre class="programlisting">#define GST_VALUE_HOLDS_STRUCTURE(x)		(G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
+<pre class="programlisting">#define GST_VALUE_HOLDS_STRUCTURE(x)            (G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
 </pre>
 <p>
 Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_STRUCTURE</span> value.
@@ -1485,6 +1618,93 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-VALUE-HOLDS-SAMPLE:CAPS"></a><h3>GST_VALUE_HOLDS_SAMPLE()</h3>
+<pre class="programlisting">#define GST_VALUE_HOLDS_SAMPLE(x)       (G_VALUE_HOLDS((x), GST_TYPE_SAMPLE))
+</pre>
+<p>
+Checks if the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_SAMPLE</span> value.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-get-sample"></a><h3>gst_value_get_sample()</h3>
+<pre class="programlisting">#define         gst_value_get_sample(v)         GST_SAMPLE_CAST (g_value_get_boxed(v))
+</pre>
+<p>
+Receives a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> as the value of <em class="parameter"><code>v</code></em>. Does not return a reference to
+the sample, so the pointer is only valid for as long as the caller owns
+a reference to <em class="parameter"><code>v</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>sample. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-set-sample"></a><h3>gst_value_set_sample()</h3>
+<pre class="programlisting">#define         gst_value_set_sample(v,b)       g_value_set_boxed((v),(b))
+</pre>
+<p>
+Sets <em class="parameter"><code>b</code></em> as the value of <em class="parameter"><code>v</code></em>.  Caller retains reference to sample.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to receive the data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> to assign to the GstValue. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-value-take-sample"></a><h3>gst_value_take_sample()</h3>
+<pre class="programlisting">#define         gst_value_take_sample(v,b)      g_value_take_boxed(v,(b))
+</pre>
+<p>
+Sets <em class="parameter"><code>b</code></em> as the value of <em class="parameter"><code>v</code></em>.  Caller gives away reference to sample.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to receive the data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> to assign to the GstValue. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-VALUE-LESS-THAN:CAPS"></a><h3>GST_VALUE_LESS_THAN</h3>
 <pre class="programlisting">#define GST_VALUE_LESS_THAN              (-1)
 </pre>
@@ -1606,110 +1826,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstValueUnionFunc"></a><h3>GstValueUnionFunc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstValueUnionFunc)                (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);</pre>
-<p>
-Used by <a class="link" href="gstreamer-GstValue.html#gst-value-union" title="gst_value_union ()"><code class="function">gst_value_union()</code></a> to perform unification for a specific <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
-type. Register a new implementation with <a class="link" href="gstreamer-GstValue.html#gst-value-register-union-func" title="gst_value_register_union_func ()"><code class="function">gst_value_register_union_func()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> for the result</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value2</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a union was successful</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstValueIntersectFunc"></a><h3>GstValueIntersectFunc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstValueIntersectFunc)            (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);</pre>
-<p>
-Used by <a class="link" href="gstreamer-GstValue.html#gst-value-intersect" title="gst_value_intersect ()"><code class="function">gst_value_intersect()</code></a> to perform intersection for a specific <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
-type. If the intersection is non-empty, the result is
-placed in <em class="parameter"><code>dest</code></em> and TRUE is returned.  If the intersection is
-empty, <em class="parameter"><code>dest</code></em> is unmodified and FALSE is returned.
-Register a new implementation with <a class="link" href="gstreamer-GstValue.html#gst-value-register-intersect-func" title="gst_value_register_intersect_func ()"><code class="function">gst_value_register_intersect_func()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value2</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values can intersect</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstValueSubtractFunc"></a><h3>GstValueSubtractFunc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstValueSubtractFunc)             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *minuend</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *subtrahend</code></em>);</pre>
-<p>
-Used by <a class="link" href="gstreamer-GstValue.html#gst-value-subtract" title="gst_value_subtract ()"><code class="function">gst_value_subtract()</code></a> to perform subtraction for a specific <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
-type. Register a new implementation with <a class="link" href="gstreamer-GstValue.html#gst-value-register-subtract-func" title="gst_value_register_subtract_func ()"><code class="function">gst_value_register_subtract_func()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>minuend</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>subtrahend</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> operand</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the subtraction is not empty</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstValueTable"></a><h3>struct GstValueTable</h3>
 <pre class="programlisting">struct GstValueTable {
   GType type;
@@ -1950,8 +2066,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>always returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
-</td>
+<td>TRUE if the union suceeded.</td>
 </tr>
 </tbody>
 </table></div>
@@ -1991,39 +2106,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-value-register-union-func"></a><h3>gst_value_register_union_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_register_union_func       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type2</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueUnionFunc" title="GstValueUnionFunc ()"><span class="type">GstValueUnionFunc</span></a> func</code></em>);</pre>
-<p>
-Registers a union function that can create a union between <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items
-of the type <em class="parameter"><code>type1</code></em> and <em class="parameter"><code>type2</code></em>.
-</p>
-<p>
-Union functions should be registered at startup before any pipelines are
-started, as <a class="link" href="gstreamer-GstValue.html#gst-value-register-union-func" title="gst_value_register_union_func ()"><code class="function">gst_value_register_union_func()</code></a> is not thread-safe and cannot
-be used at the same time as <a class="link" href="gstreamer-GstValue.html#gst-value-union" title="gst_value_union ()"><code class="function">gst_value_union()</code></a> or <a class="link" href="gstreamer-GstValue.html#gst-value-can-union" title="gst_value_can_union ()"><code class="function">gst_value_can_union()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type1</code></em> :</span></p></td>
-<td>a type to union</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type2</code></em> :</span></p></td>
-<td>another type to union</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>a function that implements creating a union between the two types</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-value-subtract"></a><h3>gst_value_subtract ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_value_subtract                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *minuend</code></em>,
@@ -2038,7 +2120,8 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
 <td>the destination value for the result if the
-subtraction is not empty. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
+subtraction is not empty. May be NULL, in which case the resulting set
+will not be computed, which can give a fair speedup. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
 </td>
 </tr>
 <tr>
@@ -2085,39 +2168,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-value-register-subtract-func"></a><h3>gst_value_register_subtract_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_register_subtract_func    (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> minuend_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> subtrahend_type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueSubtractFunc" title="GstValueSubtractFunc ()"><span class="type">GstValueSubtractFunc</span></a> func</code></em>);</pre>
-<p>
-Registers <em class="parameter"><code>func</code></em> as a function capable of subtracting the values of
-<em class="parameter"><code>subtrahend_type</code></em> from values of <em class="parameter"><code>minuend_type</code></em>.
-</p>
-<p>
-Subtract functions should be registered at startup before any pipelines are
-started, as <a class="link" href="gstreamer-GstValue.html#gst-value-register-subtract-func" title="gst_value_register_subtract_func ()"><code class="function">gst_value_register_subtract_func()</code></a> is not thread-safe and
-cannot be used at the same time as <a class="link" href="gstreamer-GstValue.html#gst-value-subtract" title="gst_value_subtract ()"><code class="function">gst_value_subtract()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>minuend_type</code></em> :</span></p></td>
-<td>type of the minuend</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>subtrahend_type</code></em> :</span></p></td>
-<td>type of the subtrahend</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>function to use</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-value-intersect"></a><h3>gst_value_intersect ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_value_intersect                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
@@ -2125,8 +2175,8 @@
 <p>
 Calculates the intersection of two values.  If the values have
 a non-empty intersection, the value representing the intersection
-is placed in <em class="parameter"><code>dest</code></em>.  If the intersection is non-empty, <em class="parameter"><code>dest</code></em> is
-not modified.
+is placed in <em class="parameter"><code>dest</code></em>, unless NULL.  If the intersection is non-empty,
+<em class="parameter"><code>dest</code></em> is not modified.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2134,7 +2184,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
 <td>a uninitialized <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> that will hold the calculated
-intersection value. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
+intersection value. May be NULL if the resulting set if not needed. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2161,7 +2211,7 @@
 Determines if intersecting two values will produce a valid result.
 Two values will produce a valid intersection if they have the same
 type, or if there is a method (registered by
-<a class="link" href="gstreamer-GstValue.html#gst-value-register-intersect-func" title="gst_value_register_intersect_func ()"><code class="function">gst_value_register_intersect_func()</code></a>) to calculate the intersection.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstValue.html#gst-value-register-intersect-func"><code class="function">gst_value_register_intersect_func()</code></a>) to calculate the intersection.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2183,34 +2233,27 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-value-register-intersect-func"></a><h3>gst_value_register_intersect_func ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_value_register_intersect_func   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type1</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type2</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstValue.html#GstValueIntersectFunc" title="GstValueIntersectFunc ()"><span class="type">GstValueIntersectFunc</span></a> func</code></em>);</pre>
+<a name="gst-value-is-subset"></a><h3>gst_value_is_subset ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_value_is_subset                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value1</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);</pre>
 <p>
-Registers a function that is called to calculate the intersection
-of the values having the types <em class="parameter"><code>type1</code></em> and <em class="parameter"><code>type2</code></em>.
+Check that <em class="parameter"><code>value1</code></em> is a subset of <em class="parameter"><code>value2</code></em>.
 </p>
 <p>
-Intersect functions should be registered at startup before any pipelines are
-started, as <a class="link" href="gstreamer-GstValue.html#gst-value-register-intersect-func" title="gst_value_register_intersect_func ()"><code class="function">gst_value_register_intersect_func()</code></a> is not thread-safe and
-cannot be used at the same time as <a class="link" href="gstreamer-GstValue.html#gst-value-intersect" title="gst_value_intersect ()"><code class="function">gst_value_intersect()</code></a> or
-<a class="link" href="gstreamer-GstValue.html#gst-value-can-intersect" title="gst_value_can_intersect ()"><code class="function">gst_value_can_intersect()</code></a>.
+Return: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is <em class="parameter"><code>value1</code></em> is a subset of <em class="parameter"><code>value2</code></em>
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type1</code></em> :</span></p></td>
-<td>the first type to intersect</td>
+<td><p><span class="term"><em class="parameter"><code>value1</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type2</code></em> :</span></p></td>
-<td>the second type to intersect</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the intersection function</td>
+<td><p><span class="term"><em class="parameter"><code>value2</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>
+</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index a3c1c16..351c2b8 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstVersion</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstValue.html" title="GstValue">
 <link rel="next" href="gstreamer-support.html" title="GStreamer Core Support">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-GstValue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-support.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -70,7 +70,7 @@
 <a name="gstreamer-GstVersion.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="GST-VERSION-MAJOR:CAPS"></a><h3>GST_VERSION_MAJOR</h3>
-<pre class="programlisting">#define GST_VERSION_MAJOR (0)
+<pre class="programlisting">#define GST_VERSION_MAJOR (1)
 </pre>
 <p>
 The major version of GStreamer at compile time:
@@ -79,7 +79,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VERSION-MINOR:CAPS"></a><h3>GST_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_VERSION_MINOR (11)
+<pre class="programlisting">#define GST_VERSION_MINOR (0)
 </pre>
 <p>
 The minor version of GStreamer at compile time:
@@ -88,7 +88,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-VERSION-MICRO:CAPS"></a><h3>GST_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_VERSION_MICRO (1)
+<pre class="programlisting">#define GST_VERSION_MICRO (0)
 </pre>
 <p>
 The micro version of GStreamer at compile time:
diff --git a/docs/gst/html/gstreamer-gstconfig.html b/docs/gst/html/gstreamer-gstconfig.html
index ceb00ce..fda86e4 100644
--- a/docs/gst/html/gstreamer-gstconfig.html
+++ b/docs/gst/html/gstreamer-gstconfig.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstconfig</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="GstClock.html" title="GstClock">
-<link rel="next" href="gstreamer-GstDateTime.html" title="GstDateTime">
+<link rel="next" href="GstControlBinding.html" title="GstControlBinding">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="GstClock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-GstDateTime.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
+<td><a accesskey="n" href="GstControlBinding.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-gstconfig.synopsis" class="shortcut">Top</a>
@@ -69,11 +69,21 @@
 </p>
 <div class="example">
 <a name="example-gstconfig"></a><p class="title"><b>Example 5. Doing subsystem specific things</b></p>
-<div class="example-contents"><pre class="programlisting">
-#ifndef GST_DISABLE_GST_DEBUG
-// do stuff specific to the debugging subsystem
-#endif // GST_DISABLE_GST_DEBUG
-</pre></div>
+<div class="example-contents">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#ifndef GST_DISABLE_GST_DEBUG</span>
+<span class="gtkdoc slc">// do stuff specific to the debugging subsystem</span>
+<span class="gtkdoc ppc">#endif</span> <span class="gtkdoc slc">// GST_DISABLE_GST_DEBUG</span><span class="gtkdoc ppc"></span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 </div>
 <p><br class="example-break">
 </p>
diff --git a/docs/gst/html/gstreamer-hierarchy.html b/docs/gst/html/gstreamer-hierarchy.html
index 13bd0a1..620c502 100644
--- a/docs/gst/html/gstreamer-hierarchy.html
+++ b/docs/gst/html/gstreamer-hierarchy.html
@@ -3,20 +3,20 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="prev" href="gstreamer-GstTrace.html" title="GstTrace">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="prev" href="gstreamer-GstInfo.html" title="GstInfo">
 <link rel="next" href="api-index-full.html" title="API Index">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gstreamer-GstTrace.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-GstInfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -33,7 +33,6 @@
                 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
                     <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
                     <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory">GstTypeFindFactory</a>
-                    <a class="link" href="GstIndexFactory.html" title="GstIndexFactory">GstIndexFactory</a>
                 <a class="link" href="GstElement.html" title="GstElement">GstElement</a>
                     <a class="link" href="GstBin.html" title="GstBin">GstBin</a>
                         <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
@@ -42,9 +41,10 @@
                 <a class="link" href="GstTaskPool.html" title="GstTaskPool">GstTaskPool</a>
                 <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
                     <a class="link" href="GstSystemClock.html" title="GstSystemClock">GstSystemClock</a>
+                <a class="link" href="GstControlBinding.html" title="GstControlBinding">GstControlBinding</a>
+                <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
                 <a class="link" href="GstPlugin.html" title="GstPlugin">GstPlugin</a>
                 <a class="link" href="GstRegistry.html" title="GstRegistry">GstRegistry</a>
-                <a class="link" href="GstIndex.html" title="GstIndex">GstIndex</a>
     GInterface
         <a class="link" href="GstChildProxy.html" title="GstChildProxy">GstChildProxy</a>
         <a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>
diff --git a/docs/gst/html/gstreamer-support.html b/docs/gst/html/gstreamer-support.html
index 217d98f..2994b72 100644
--- a/docs/gst/html/gstreamer-support.html
+++ b/docs/gst/html/gstreamer-support.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Core Support</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="prev" href="gstreamer-GstVersion.html" title="GstVersion">
 <link rel="next" href="gstreamer-GstInfo.html" title="GstInfo">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,20 +16,15 @@
 <td><a accesskey="p" href="gstreamer-GstVersion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-GstInfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-support"></a>GStreamer Core Support</h2></div></div></div>
-<div class="toc"><dl>
-<dt>
+<div class="toc"><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-GstInfo.html">GstInfo</a></span><span class="refpurpose"> — Debugging and logging facilities</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-GstTrace.html">GstTrace</a></span><span class="refpurpose"> — Tracing functionality</span>
-</dt>
-</dl></div>
+</dt></dl></div>
 <p>
       Theses modules support the gstreamer core and plugin development.
       Application developers will rarely need to know about it.
diff --git a/docs/gst/html/gstreamer.devhelp2 b/docs/gst/html/gstreamer.devhelp2
index f38a326..08b9a19 100644
--- a/docs/gst/html/gstreamer.devhelp2
+++ b/docs/gst/html/gstreamer.devhelp2
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer 0.11 Core Reference Manual" link="index.html" author="" name="gstreamer" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer 1.0 Core Reference Manual" link="index.html" author="" name="gstreamer" version="2" language="c">
   <chapters>
     <sub name="GStreamer Overview" link="gstreamer.html">
       <sub name="Building GStreamer and GStreamer Applications" link="gst-building.html"/>
@@ -15,19 +15,19 @@
       <sub name="GstBufferPool" link="gstreamer-GstBufferPool.html"/>
       <sub name="GstBus" link="GstBus.html"/>
       <sub name="GstCaps" link="gstreamer-GstCaps.html"/>
+      <sub name="GstSample" link="gstreamer-GstSample.html"/>
       <sub name="GstChildProxy" link="GstChildProxy.html"/>
       <sub name="GstClock" link="GstClock.html"/>
       <sub name="gstconfig" link="gstreamer-gstconfig.html"/>
+      <sub name="GstControlBinding" link="GstControlBinding.html"/>
+      <sub name="GstControlSource" link="GstControlSource.html"/>
       <sub name="GstDateTime" link="gstreamer-GstDateTime.html"/>
       <sub name="GstElement" link="GstElement.html"/>
       <sub name="GstElementFactory" link="GstElementFactory.html"/>
       <sub name="GstGError" link="gstreamer-GstGError.html"/>
       <sub name="GstEvent" link="gstreamer-GstEvent.html"/>
-      <sub name="GstFilter" link="gstreamer-GstFilter.html"/>
       <sub name="GstFormat" link="gstreamer-GstFormat.html"/>
       <sub name="GstGhostPad" link="GstGhostPad.html"/>
-      <sub name="GstIndex" link="GstIndex.html"/>
-      <sub name="GstIndexFactory" link="GstIndexFactory.html"/>
       <sub name="GstIterator" link="gstreamer-GstIterator.html"/>
       <sub name="GstMemory" link="gstreamer-GstMemory.html"/>
       <sub name="GstMessage" link="gstreamer-GstMessage.html"/>
@@ -52,6 +52,8 @@
       <sub name="GstTagSetter" link="GstTagSetter.html"/>
       <sub name="GstTask" link="GstTask.html"/>
       <sub name="GstTaskPool" link="GstTaskPool.html"/>
+      <sub name="GstToc" link="gstreamer-GstToc.html"/>
+      <sub name="GstTocSetter" link="gstreamer-GstTocSetter.html"/>
       <sub name="GstTypeFind" link="gstreamer-GstTypeFind.html"/>
       <sub name="GstTypeFindFactory" link="GstTypeFindFactory.html"/>
       <sub name="GstUriHandler" link="gstreamer-GstUriHandler.html"/>
@@ -61,7 +63,6 @@
     </sub>
     <sub name="GStreamer Core Support" link="gstreamer-support.html">
       <sub name="GstInfo" link="gstreamer-GstInfo.html"/>
-      <sub name="GstTrace" link="gstreamer-GstTrace.html"/>
     </sub>
     <sub name="Object Hierarchy" link="gstreamer-hierarchy.html"/>
     <sub name="API Index" link="api-index-full.html"/>
@@ -69,7 +70,7 @@
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="" name="Environment variables" link="gst-running.html#id445918"/>
+    <keyword type="" name="Environment variables" link="gst-running.html#idp9576704"/>
     <keyword type="function" name="gst_init ()" link="gstreamer-Gst.html#gst-init"/>
     <keyword type="function" name="gst_init_check ()" link="gstreamer-Gst.html#gst-init-check"/>
     <keyword type="function" name="gst_init_get_option_group ()" link="gstreamer-Gst.html#gst-init-get-option-group"/>
@@ -90,7 +91,7 @@
     <keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek" since="0.10.33"/>
     <keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop" since="0.10.33"/>
     <keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length" since="0.10.33"/>
-    <keyword type="" name="Notes" link="GstBin.html#id472748"/>
+    <keyword type="" name="Notes" link="GstBin.html#idp9169136"/>
     <keyword type="struct" name="struct GstBin" link="GstBin.html#GstBin-struct"/>
     <keyword type="struct" name="struct GstBinClass" link="GstBin.html#GstBinClass"/>
     <keyword type="function" name="gst_bin_new ()" link="GstBin.html#gst-bin-new"/>
@@ -120,48 +121,53 @@
     <keyword type="signal" name="The &quot;element-removed&quot; signal" link="GstBin.html#GstBin-element-removed"/>
     <keyword type="struct" name="struct GstBuffer" link="gstreamer-GstBuffer.html#GstBuffer"/>
     <keyword type="enum" name="enum GstBufferFlags" link="gstreamer-GstBuffer.html#GstBufferFlags"/>
-    <keyword type="enum" name="enum GstBufferCopyFlags" link="gstreamer-GstBuffer.html#GstBufferCopyFlags"/>
     <keyword type="macro" name="GST_BUFFER_FLAGS()" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAGS:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_FLAG_IS_SET()" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_FLAG_SET()" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-SET:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_FLAG_UNSET()" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS"/>
-    <keyword type="macro" name="GST_META_TIMING_INFO" link="gstreamer-GstBuffer.html#GST-META-TIMING-INFO:CAPS"/>
-    <keyword type="struct" name="struct GstMetaTiming" link="gstreamer-GstBuffer.html#GstMetaTiming"/>
-    <keyword type="macro" name="GST_BUFFER_TIMESTAMP()" link="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS"/>
+    <keyword type="macro" name="GST_BUFFER_PTS()" link="gstreamer-GstBuffer.html#GST-BUFFER-PTS:CAPS"/>
+    <keyword type="macro" name="GST_BUFFER_DTS()" link="gstreamer-GstBuffer.html#GST-BUFFER-DTS:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_DURATION()" link="gstreamer-GstBuffer.html#GST-BUFFER-DURATION:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_END()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_NONE" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_DURATION_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-DURATION-IS-VALID:CAPS"/>
-    <keyword type="macro" name="GST_BUFFER_TIMESTAMP_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP-IS-VALID:CAPS"/>
+    <keyword type="macro" name="GST_BUFFER_PTS_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-PTS-IS-VALID:CAPS"/>
+    <keyword type="macro" name="GST_BUFFER_DTS_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-DTS-IS-VALID:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-IS-VALID:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_END_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_IS_DISCONT()" link="gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS" since="0.10.9"/>
-    <keyword type="macro" name="GST_BUFFER_TRACE_NAME" link="gstreamer-GstBuffer.html#GST-BUFFER-TRACE-NAME:CAPS"/>
     <keyword type="function" name="gst_buffer_new ()" link="gstreamer-GstBuffer.html#gst-buffer-new"/>
-    <keyword type="macro" name="gst_buffer_new_and_alloc()" link="gstreamer-GstBuffer.html#gst-buffer-new-and-alloc"/>
     <keyword type="function" name="gst_buffer_new_allocate ()" link="gstreamer-GstBuffer.html#gst-buffer-new-allocate"/>
     <keyword type="function" name="gst_buffer_new_wrapped ()" link="gstreamer-GstBuffer.html#gst-buffer-new-wrapped"/>
     <keyword type="function" name="gst_buffer_new_wrapped_full ()" link="gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full"/>
     <keyword type="function" name="gst_buffer_ref ()" link="gstreamer-GstBuffer.html#gst-buffer-ref"/>
     <keyword type="function" name="gst_buffer_unref ()" link="gstreamer-GstBuffer.html#gst-buffer-unref"/>
-    <keyword type="function" name="gst_buffer_get_sizes ()" link="gstreamer-GstBuffer.html#gst-buffer-get-sizes"/>
+    <keyword type="macro" name="gst_buffer_get_sizes()" link="gstreamer-GstBuffer.html#gst-buffer-get-sizes"/>
     <keyword type="macro" name="gst_buffer_get_size()" link="gstreamer-GstBuffer.html#gst-buffer-get-size"/>
-    <keyword type="function" name="gst_buffer_resize ()" link="gstreamer-GstBuffer.html#gst-buffer-resize"/>
+    <keyword type="macro" name="gst_buffer_resize()" link="gstreamer-GstBuffer.html#gst-buffer-resize"/>
     <keyword type="macro" name="gst_buffer_set_size()" link="gstreamer-GstBuffer.html#gst-buffer-set-size"/>
     <keyword type="function" name="gst_buffer_n_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-n-memory"/>
-    <keyword type="function" name="gst_buffer_take_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-take-memory"/>
-    <keyword type="function" name="gst_buffer_peek_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-peek-memory"/>
-    <keyword type="macro" name="gst_buffer_remove_memory()" link="gstreamer-GstBuffer.html#gst-buffer-remove-memory"/>
+    <keyword type="function" name="gst_buffer_insert_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-insert-memory"/>
+    <keyword type="function" name="gst_buffer_replace_memory_range ()" link="gstreamer-GstBuffer.html#gst-buffer-replace-memory-range"/>
+    <keyword type="function" name="gst_buffer_get_memory_range ()" link="gstreamer-GstBuffer.html#gst-buffer-get-memory-range"/>
     <keyword type="function" name="gst_buffer_remove_memory_range ()" link="gstreamer-GstBuffer.html#gst-buffer-remove-memory-range"/>
-    <keyword type="function" name="gst_buffer_join ()" link="gstreamer-GstBuffer.html#gst-buffer-join"/>
-    <keyword type="function" name="gst_buffer_merge ()" link="gstreamer-GstBuffer.html#gst-buffer-merge"/>
-    <keyword type="function" name="gst_buffer_map ()" link="gstreamer-GstBuffer.html#gst-buffer-map"/>
+    <keyword type="function" name="gst_buffer_find_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-find-memory"/>
+    <keyword type="macro" name="gst_buffer_prepend_memory()" link="gstreamer-GstBuffer.html#gst-buffer-prepend-memory"/>
+    <keyword type="macro" name="gst_buffer_append_memory()" link="gstreamer-GstBuffer.html#gst-buffer-append-memory"/>
+    <keyword type="macro" name="gst_buffer_replace_memory()" link="gstreamer-GstBuffer.html#gst-buffer-replace-memory"/>
+    <keyword type="macro" name="gst_buffer_replace_all_memory()" link="gstreamer-GstBuffer.html#gst-buffer-replace-all-memory"/>
+    <keyword type="macro" name="gst_buffer_get_memory()" link="gstreamer-GstBuffer.html#gst-buffer-get-memory"/>
+    <keyword type="macro" name="gst_buffer_get_all_memory()" link="gstreamer-GstBuffer.html#gst-buffer-get-all-memory"/>
+    <keyword type="macro" name="gst_buffer_remove_memory()" link="gstreamer-GstBuffer.html#gst-buffer-remove-memory"/>
+    <keyword type="macro" name="gst_buffer_remove_all_memory()" link="gstreamer-GstBuffer.html#gst-buffer-remove-all-memory"/>
+    <keyword type="macro" name="gst_buffer_map()" link="gstreamer-GstBuffer.html#gst-buffer-map"/>
     <keyword type="function" name="gst_buffer_unmap ()" link="gstreamer-GstBuffer.html#gst-buffer-unmap"/>
     <keyword type="function" name="gst_buffer_memcmp ()" link="gstreamer-GstBuffer.html#gst-buffer-memcmp"/>
     <keyword type="function" name="gst_buffer_extract ()" link="gstreamer-GstBuffer.html#gst-buffer-extract"/>
     <keyword type="function" name="gst_buffer_fill ()" link="gstreamer-GstBuffer.html#gst-buffer-fill"/>
     <keyword type="function" name="gst_buffer_memset ()" link="gstreamer-GstBuffer.html#gst-buffer-memset"/>
+    <keyword type="enum" name="enum GstBufferCopyFlags" link="gstreamer-GstBuffer.html#GstBufferCopyFlags"/>
     <keyword type="macro" name="GST_BUFFER_COPY_METADATA" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-METADATA:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_COPY_ALL" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-ALL:CAPS"/>
     <keyword type="function" name="gst_buffer_copy ()" link="gstreamer-GstBuffer.html#gst-buffer-copy"/>
@@ -169,20 +175,18 @@
     <keyword type="function" name="gst_buffer_copy_region ()" link="gstreamer-GstBuffer.html#gst-buffer-copy-region"/>
     <keyword type="macro" name="gst_buffer_is_writable()" link="gstreamer-GstBuffer.html#gst-buffer-is-writable"/>
     <keyword type="macro" name="gst_buffer_make_writable()" link="gstreamer-GstBuffer.html#gst-buffer-make-writable"/>
-    <keyword type="macro" name="gst_buffer_replace()" link="gstreamer-GstBuffer.html#gst-buffer-replace"/>
-    <keyword type="function" name="gst_buffer_is_span_fast ()" link="gstreamer-GstBuffer.html#gst-buffer-is-span-fast"/>
-    <keyword type="function" name="gst_buffer_span ()" link="gstreamer-GstBuffer.html#gst-buffer-span"/>
+    <keyword type="function" name="gst_buffer_replace ()" link="gstreamer-GstBuffer.html#gst-buffer-replace"/>
+    <keyword type="function" name="gst_buffer_append ()" link="gstreamer-GstBuffer.html#gst-buffer-append"/>
     <keyword type="function" name="gst_buffer_get_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-get-meta"/>
     <keyword type="function" name="gst_buffer_add_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-add-meta"/>
     <keyword type="function" name="gst_buffer_remove_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-remove-meta"/>
     <keyword type="function" name="gst_buffer_iterate_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-iterate-meta"/>
-    <keyword type="macro" name="gst_buffer_add_meta_timing()" link="gstreamer-GstBuffer.html#gst-buffer-add-meta-timing"/>
-    <keyword type="macro" name="gst_buffer_get_meta_timing()" link="gstreamer-GstBuffer.html#gst-buffer-get-meta-timing"/>
-    <keyword type="function" name="gst_meta_timing_get_info ()" link="gstreamer-GstBuffer.html#gst-meta-timing-get-info"/>
+    <keyword type="function" name="GstBufferForeachMetaFunc ()" link="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc"/>
+    <keyword type="function" name="gst_buffer_foreach_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-foreach-meta"/>
     <keyword type="struct" name="GstBufferList" link="gstreamer-GstBufferList.html#GstBufferList" since="0.10.24"/>
     <keyword type="function" name="gst_buffer_list_new ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_sized_new ()" link="gstreamer-GstBufferList.html#gst-buffer-list-sized-new" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_len ()" link="gstreamer-GstBufferList.html#gst-buffer-list-len" since="0.10.24"/>
+    <keyword type="function" name="gst_buffer_list_new_sized ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new-sized" since="0.10.24"/>
+    <keyword type="function" name="gst_buffer_list_length ()" link="gstreamer-GstBufferList.html#gst-buffer-list-length" since="0.10.24"/>
     <keyword type="macro" name="gst_buffer_list_add()" link="gstreamer-GstBufferList.html#gst-buffer-list-add"/>
     <keyword type="function" name="gst_buffer_list_insert ()" link="gstreamer-GstBufferList.html#gst-buffer-list-insert"/>
     <keyword type="function" name="gst_buffer_list_remove ()" link="gstreamer-GstBufferList.html#gst-buffer-list-remove"/>
@@ -196,22 +200,24 @@
     <keyword type="function" name="gst_buffer_list_get ()" link="gstreamer-GstBufferList.html#gst-buffer-list-get" since="0.10.24"/>
     <keyword type="struct" name="GstBufferPool" link="gstreamer-GstBufferPool.html#GstBufferPool"/>
     <keyword type="struct" name="struct GstBufferPoolClass" link="gstreamer-GstBufferPool.html#GstBufferPoolClass"/>
-    <keyword type="enum" name="enum GstBufferPoolFlags" link="gstreamer-GstBufferPool.html#GstBufferPoolFlags"/>
     <keyword type="macro" name="GST_BUFFER_POOL_IS_FLUSHING()" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-IS-FLUSHING:CAPS"/>
-    <keyword type="struct" name="GstBufferPoolParams" link="gstreamer-GstBufferPool.html#GstBufferPoolParams"/>
     <keyword type="function" name="gst_buffer_pool_new ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-new"/>
-    <keyword type="function" name="gst_buffer_pool_config_get ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get"/>
-    <keyword type="function" name="gst_buffer_pool_config_set ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set"/>
+    <keyword type="function" name="gst_buffer_pool_config_get_params ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-params"/>
+    <keyword type="function" name="gst_buffer_pool_config_set_params ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-params"/>
+    <keyword type="function" name="gst_buffer_pool_config_get_allocator ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-allocator"/>
+    <keyword type="function" name="gst_buffer_pool_config_set_allocator ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator"/>
+    <keyword type="function" name="gst_buffer_pool_config_n_options ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options"/>
     <keyword type="function" name="gst_buffer_pool_config_add_option ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option"/>
     <keyword type="function" name="gst_buffer_pool_config_get_option ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-option"/>
     <keyword type="function" name="gst_buffer_pool_config_has_option ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-has-option"/>
-    <keyword type="function" name="gst_buffer_pool_config_n_options ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options"/>
     <keyword type="function" name="gst_buffer_pool_get_options ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-get-options"/>
     <keyword type="function" name="gst_buffer_pool_has_option ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-has-option"/>
     <keyword type="function" name="gst_buffer_pool_get_config ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-get-config"/>
     <keyword type="function" name="gst_buffer_pool_set_config ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config"/>
     <keyword type="function" name="gst_buffer_pool_set_active ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-set-active"/>
     <keyword type="function" name="gst_buffer_pool_is_active ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-is-active"/>
+    <keyword type="enum" name="enum GstBufferPoolAcquireFlags" link="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags"/>
+    <keyword type="struct" name="GstBufferPoolAcquireParams" link="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams"/>
     <keyword type="function" name="gst_buffer_pool_acquire_buffer ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer"/>
     <keyword type="function" name="gst_buffer_pool_release_buffer ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer"/>
     <keyword type="struct" name="struct GstBus" link="GstBus.html#GstBus-struct"/>
@@ -260,6 +266,7 @@
     <keyword type="macro" name="GST_CAPS_FLAG_SET()" link="gstreamer-GstCaps.html#GST-CAPS-FLAG-SET:CAPS"/>
     <keyword type="macro" name="GST_CAPS_FLAG_UNSET()" link="gstreamer-GstCaps.html#GST-CAPS-FLAG-UNSET:CAPS"/>
     <keyword type="function" name="gst_caps_new_empty ()" link="gstreamer-GstCaps.html#gst-caps-new-empty"/>
+    <keyword type="function" name="gst_caps_new_empty_simple ()" link="gstreamer-GstCaps.html#gst-caps-new-empty-simple"/>
     <keyword type="function" name="gst_caps_new_any ()" link="gstreamer-GstCaps.html#gst-caps-new-any"/>
     <keyword type="function" name="gst_caps_new_simple ()" link="gstreamer-GstCaps.html#gst-caps-new-simple"/>
     <keyword type="function" name="gst_caps_new_full ()" link="gstreamer-GstCaps.html#gst-caps-new-full"/>
@@ -285,24 +292,33 @@
     <keyword type="function" name="gst_caps_is_fixed ()" link="gstreamer-GstCaps.html#gst-caps-is-fixed"/>
     <keyword type="function" name="gst_caps_is_equal ()" link="gstreamer-GstCaps.html#gst-caps-is-equal"/>
     <keyword type="function" name="gst_caps_is_equal_fixed ()" link="gstreamer-GstCaps.html#gst-caps-is-equal-fixed"/>
+    <keyword type="function" name="gst_caps_is_strictly_equal ()" link="gstreamer-GstCaps.html#gst-caps-is-strictly-equal" since="0.10.36"/>
     <keyword type="function" name="gst_caps_is_always_compatible ()" link="gstreamer-GstCaps.html#gst-caps-is-always-compatible"/>
     <keyword type="function" name="gst_caps_is_subset ()" link="gstreamer-GstCaps.html#gst-caps-is-subset"/>
-    <keyword type="function" name="gst_caps_is_subset_structure ()" link="gstreamer-GstCaps.html#gst-caps-is-subset-structure" since="0.10.35"/>
+    <keyword type="function" name="gst_caps_is_subset_structure ()" link="gstreamer-GstCaps.html#gst-caps-is-subset-structure" since="0.10.36"/>
     <keyword type="function" name="gst_caps_can_intersect ()" link="gstreamer-GstCaps.html#gst-caps-can-intersect" since="0.10.25"/>
     <keyword type="function" name="gst_caps_intersect ()" link="gstreamer-GstCaps.html#gst-caps-intersect"/>
     <keyword type="function" name="gst_caps_intersect_full ()" link="gstreamer-GstCaps.html#gst-caps-intersect-full" since="0.10.33"/>
-    <keyword type="function" name="gst_caps_union ()" link="gstreamer-GstCaps.html#gst-caps-union"/>
     <keyword type="function" name="gst_caps_normalize ()" link="gstreamer-GstCaps.html#gst-caps-normalize"/>
-    <keyword type="function" name="gst_caps_do_simplify ()" link="gstreamer-GstCaps.html#gst-caps-do-simplify"/>
-    <keyword type="macro" name="gst_caps_replace()" link="gstreamer-GstCaps.html#gst-caps-replace"/>
+    <keyword type="function" name="gst_caps_simplify ()" link="gstreamer-GstCaps.html#gst-caps-simplify"/>
+    <keyword type="function" name="gst_caps_replace ()" link="gstreamer-GstCaps.html#gst-caps-replace"/>
+    <keyword type="function" name="gst_caps_take ()" link="gstreamer-GstCaps.html#gst-caps-take"/>
     <keyword type="function" name="gst_caps_to_string ()" link="gstreamer-GstCaps.html#gst-caps-to-string"/>
     <keyword type="function" name="gst_caps_from_string ()" link="gstreamer-GstCaps.html#gst-caps-from-string"/>
     <keyword type="function" name="gst_caps_subtract ()" link="gstreamer-GstCaps.html#gst-caps-subtract"/>
     <keyword type="macro" name="gst_caps_make_writable()" link="gstreamer-GstCaps.html#gst-caps-make-writable"/>
-    <keyword type="function" name="gst_caps_ref ()" link="gstreamer-GstCaps.html#gst-caps-ref"/>
     <keyword type="function" name="gst_caps_truncate ()" link="gstreamer-GstCaps.html#gst-caps-truncate"/>
     <keyword type="function" name="gst_caps_fixate ()" link="gstreamer-GstCaps.html#gst-caps-fixate"/>
+    <keyword type="function" name="gst_caps_ref ()" link="gstreamer-GstCaps.html#gst-caps-ref"/>
     <keyword type="function" name="gst_caps_unref ()" link="gstreamer-GstCaps.html#gst-caps-unref"/>
+    <keyword type="struct" name="GstSample" link="gstreamer-GstSample.html#GstSample"/>
+    <keyword type="function" name="gst_sample_get_buffer ()" link="gstreamer-GstSample.html#gst-sample-get-buffer"/>
+    <keyword type="function" name="gst_sample_get_caps ()" link="gstreamer-GstSample.html#gst-sample-get-caps"/>
+    <keyword type="function" name="gst_sample_get_info ()" link="gstreamer-GstSample.html#gst-sample-get-info"/>
+    <keyword type="function" name="gst_sample_get_segment ()" link="gstreamer-GstSample.html#gst-sample-get-segment"/>
+    <keyword type="function" name="gst_sample_new ()" link="gstreamer-GstSample.html#gst-sample-new" since="0.10.24"/>
+    <keyword type="function" name="gst_sample_ref ()" link="gstreamer-GstSample.html#gst-sample-ref"/>
+    <keyword type="function" name="gst_sample_unref ()" link="gstreamer-GstSample.html#gst-sample-unref"/>
     <keyword type="struct" name="GstChildProxy" link="GstChildProxy.html#GstChildProxy-struct"/>
     <keyword type="struct" name="struct GstChildProxyInterface" link="GstChildProxy.html#GstChildProxyInterface"/>
     <keyword type="function" name="gst_child_proxy_get_children_count ()" link="GstChildProxy.html#gst-child-proxy-get-children-count"/>
@@ -339,7 +355,6 @@
     <keyword type="macro" name="GST_TIME_TO_TIMEVAL()" link="GstClock.html#GST-TIME-TO-TIMEVAL:CAPS"/>
     <keyword type="macro" name="GST_TIMESPEC_TO_TIME()" link="GstClock.html#GST-TIMESPEC-TO-TIME:CAPS"/>
     <keyword type="macro" name="GST_TIME_TO_TIMESPEC()" link="GstClock.html#GST-TIME-TO-TIMESPEC:CAPS"/>
-    <keyword type="macro" name="GST_CLOCK_ENTRY_TRACE_NAME" link="GstClock.html#GST-CLOCK-ENTRY-TRACE-NAME:CAPS"/>
     <keyword type="struct" name="struct GstClockEntry" link="GstClock.html#GstClockEntry"/>
     <keyword type="function" name="GstClockCallback ()" link="GstClock.html#GstClockCallback"/>
     <keyword type="enum" name="enum GstClockEntryType" link="GstClock.html#GstClockEntryType"/>
@@ -352,10 +367,6 @@
     <keyword type="enum" name="enum GstClockReturn" link="GstClock.html#GstClockReturn"/>
     <keyword type="enum" name="enum GstClockFlags" link="GstClock.html#GstClockFlags"/>
     <keyword type="macro" name="GST_CLOCK_FLAGS()" link="GstClock.html#GST-CLOCK-FLAGS:CAPS"/>
-    <keyword type="macro" name="GST_CLOCK_BROADCAST()" link="GstClock.html#GST-CLOCK-BROADCAST:CAPS"/>
-    <keyword type="macro" name="GST_CLOCK_COND()" link="GstClock.html#GST-CLOCK-COND:CAPS"/>
-    <keyword type="macro" name="GST_CLOCK_TIMED_WAIT()" link="GstClock.html#GST-CLOCK-TIMED-WAIT:CAPS"/>
-    <keyword type="macro" name="GST_CLOCK_WAIT()" link="GstClock.html#GST-CLOCK-WAIT:CAPS"/>
     <keyword type="function" name="gst_clock_add_observation ()" link="GstClock.html#gst-clock-add-observation"/>
     <keyword type="function" name="gst_clock_set_master ()" link="GstClock.html#gst-clock-set-master"/>
     <keyword type="function" name="gst_clock_get_master ()" link="GstClock.html#gst-clock-get-master"/>
@@ -371,6 +382,8 @@
     <keyword type="function" name="gst_clock_unadjust_unlocked ()" link="GstClock.html#gst-clock-unadjust-unlocked" since="0.10.13"/>
     <keyword type="function" name="gst_clock_get_calibration ()" link="GstClock.html#gst-clock-get-calibration"/>
     <keyword type="function" name="gst_clock_set_calibration ()" link="GstClock.html#gst-clock-set-calibration"/>
+    <keyword type="function" name="gst_clock_get_timeout ()" link="GstClock.html#gst-clock-get-timeout"/>
+    <keyword type="function" name="gst_clock_set_timeout ()" link="GstClock.html#gst-clock-set-timeout"/>
     <keyword type="function" name="gst_clock_id_get_time ()" link="GstClock.html#gst-clock-id-get-time"/>
     <keyword type="function" name="gst_clock_id_wait ()" link="GstClock.html#gst-clock-id-wait"/>
     <keyword type="function" name="gst_clock_id_wait_async ()" link="GstClock.html#gst-clock-id-wait-async"/>
@@ -379,7 +392,6 @@
     <keyword type="function" name="gst_clock_id_compare_func ()" link="GstClock.html#gst-clock-id-compare-func"/>
     <keyword type="function" name="gst_clock_id_ref ()" link="GstClock.html#gst-clock-id-ref"/>
     <keyword type="function" name="gst_clock_id_unref ()" link="GstClock.html#gst-clock-id-unref"/>
-    <keyword type="property" name="The &quot;stats&quot; property" link="GstClock.html#GstClock--stats"/>
     <keyword type="property" name="The &quot;timeout&quot; property" link="GstClock.html#GstClock--timeout"/>
     <keyword type="property" name="The &quot;window-size&quot; property" link="GstClock.html#GstClock--window-size"/>
     <keyword type="property" name="The &quot;window-threshold&quot; property" link="GstClock.html#GstClock--window-threshold"/>
@@ -389,6 +401,24 @@
     <keyword type="macro" name="GST_DISABLE_ALLOC_TRACE" link="gstreamer-gstconfig.html#GST-DISABLE-ALLOC-TRACE:CAPS"/>
     <keyword type="macro" name="GST_DISABLE_REGISTRY" link="gstreamer-gstconfig.html#GST-DISABLE-REGISTRY:CAPS"/>
     <keyword type="macro" name="GST_DISABLE_PLUGIN" link="gstreamer-gstconfig.html#GST-DISABLE-PLUGIN:CAPS"/>
+    <keyword type="struct" name="struct GstControlBinding" link="GstControlBinding.html#GstControlBinding-struct"/>
+    <keyword type="struct" name="struct GstControlBindingClass" link="GstControlBinding.html#GstControlBindingClass"/>
+    <keyword type="function" name="GstControlBindingConvert ()" link="GstControlBinding.html#GstControlBindingConvert"/>
+    <keyword type="function" name="gst_control_binding_sync_values ()" link="GstControlBinding.html#gst-control-binding-sync-values"/>
+    <keyword type="function" name="gst_control_binding_get_value ()" link="GstControlBinding.html#gst-control-binding-get-value"/>
+    <keyword type="function" name="gst_control_binding_get_value_array ()" link="GstControlBinding.html#gst-control-binding-get-value-array"/>
+    <keyword type="function" name="gst_control_binding_set_disabled ()" link="GstControlBinding.html#gst-control-binding-set-disabled"/>
+    <keyword type="function" name="gst_control_binding_is_disabled ()" link="GstControlBinding.html#gst-control-binding-is-disabled"/>
+    <keyword type="property" name="The &quot;name&quot; property" link="GstControlBinding.html#GstControlBinding--name"/>
+    <keyword type="property" name="The &quot;object&quot; property" link="GstControlBinding.html#GstControlBinding--object"/>
+    <keyword type="struct" name="GstValueArray" link="GstControlSource.html#GstValueArray"/>
+    <keyword type="struct" name="struct GstControlSource" link="GstControlSource.html#GstControlSource-struct"/>
+    <keyword type="struct" name="struct GstControlSourceClass" link="GstControlSource.html#GstControlSourceClass"/>
+    <keyword type="function" name="GstControlSourceGetValue ()" link="GstControlSource.html#GstControlSourceGetValue"/>
+    <keyword type="function" name="GstControlSourceGetValueArray ()" link="GstControlSource.html#GstControlSourceGetValueArray"/>
+    <keyword type="struct" name="struct GstTimedValue" link="GstControlSource.html#GstTimedValue"/>
+    <keyword type="function" name="gst_control_source_get_value ()" link="GstControlSource.html#gst-control-source-get-value"/>
+    <keyword type="function" name="gst_control_source_get_value_array ()" link="GstControlSource.html#gst-control-source-get-value-array"/>
     <keyword type="struct" name="GstDateTime" link="gstreamer-GstDateTime.html#GstDateTime"/>
     <keyword type="macro" name="GST_TYPE_DATE_TIME" link="gstreamer-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS" since="0.10.31"/>
     <keyword type="function" name="gst_date_time_get_day ()" link="gstreamer-GstDateTime.html#gst-date-time-get-day" since="0.10.31"/>
@@ -443,9 +473,10 @@
     <keyword type="function" name="gst_element_class_add_pad_template ()" link="GstElement.html#gst-element-class-add-pad-template"/>
     <keyword type="function" name="gst_element_class_get_pad_template ()" link="GstElement.html#gst-element-class-get-pad-template"/>
     <keyword type="function" name="gst_element_class_get_pad_template_list ()" link="GstElement.html#gst-element-class-get-pad-template-list"/>
-    <keyword type="function" name="gst_element_class_install_std_props ()" link="GstElement.html#gst-element-class-install-std-props"/>
     <keyword type="function" name="gst_element_class_set_metadata ()" link="GstElement.html#gst-element-class-set-metadata"/>
+    <keyword type="function" name="gst_element_class_set_static_metadata ()" link="GstElement.html#gst-element-class-set-static-metadata"/>
     <keyword type="function" name="gst_element_class_add_metadata ()" link="GstElement.html#gst-element-class-add-metadata"/>
+    <keyword type="function" name="gst_element_class_add_static_metadata ()" link="GstElement.html#gst-element-class-add-static-metadata"/>
     <keyword type="function" name="gst_element_add_pad ()" link="GstElement.html#gst-element-add-pad"/>
     <keyword type="function" name="gst_element_create_all_pads ()" link="GstElement.html#gst-element-create-all-pads"/>
     <keyword type="function" name="gst_element_get_compatible_pad ()" link="GstElement.html#gst-element-get-compatible-pad"/>
@@ -476,17 +507,12 @@
     <keyword type="function" name="gst_element_set_bus ()" link="GstElement.html#gst-element-set-bus"/>
     <keyword type="function" name="gst_element_get_bus ()" link="GstElement.html#gst-element-get-bus"/>
     <keyword type="function" name="gst_element_get_factory ()" link="GstElement.html#gst-element-get-factory"/>
-    <keyword type="function" name="gst_element_set_index ()" link="GstElement.html#gst-element-set-index"/>
-    <keyword type="function" name="gst_element_get_index ()" link="GstElement.html#gst-element-get-index"/>
-    <keyword type="function" name="gst_element_is_indexable ()" link="GstElement.html#gst-element-is-indexable"/>
     <keyword type="macro" name="gst_element_set_name()" link="GstElement.html#gst-element-set-name"/>
     <keyword type="macro" name="gst_element_get_name()" link="GstElement.html#gst-element-get-name"/>
     <keyword type="macro" name="gst_element_set_parent()" link="GstElement.html#gst-element-set-parent"/>
     <keyword type="macro" name="gst_element_get_parent()" link="GstElement.html#gst-element-get-parent"/>
-    <keyword type="function" name="gst_element_requires_clock ()" link="GstElement.html#gst-element-requires-clock"/>
     <keyword type="function" name="gst_element_set_clock ()" link="GstElement.html#gst-element-set-clock"/>
     <keyword type="function" name="gst_element_get_clock ()" link="GstElement.html#gst-element-get-clock"/>
-    <keyword type="function" name="gst_element_provides_clock ()" link="GstElement.html#gst-element-provides-clock"/>
     <keyword type="function" name="gst_element_provide_clock ()" link="GstElement.html#gst-element-provide-clock"/>
     <keyword type="function" name="gst_element_set_state ()" link="GstElement.html#gst-element-set-state"/>
     <keyword type="function" name="gst_element_get_state ()" link="GstElement.html#gst-element-get-state"/>
@@ -499,11 +525,8 @@
     <keyword type="function" name="gst_element_state_change_return_get_name ()" link="GstElement.html#gst-element-state-change-return-get-name" since="0.10.11"/>
     <keyword type="function" name="gst_element_sync_state_with_parent ()" link="GstElement.html#gst-element-sync-state-with-parent"/>
     <keyword type="function" name="gst_element_change_state ()" link="GstElement.html#gst-element-change-state"/>
-    <keyword type="function" name="gst_element_found_tags ()" link="GstElement.html#gst-element-found-tags"/>
-    <keyword type="function" name="gst_element_found_tags_for_pad ()" link="GstElement.html#gst-element-found-tags-for-pad"/>
     <keyword type="function" name="gst_element_message_full ()" link="GstElement.html#gst-element-message-full"/>
     <keyword type="function" name="gst_element_post_message ()" link="GstElement.html#gst-element-post-message"/>
-    <keyword type="function" name="gst_element_get_query_types ()" link="GstElement.html#gst-element-get-query-types"/>
     <keyword type="function" name="gst_element_query ()" link="GstElement.html#gst-element-query"/>
     <keyword type="function" name="gst_element_query_convert ()" link="GstElement.html#gst-element-query-convert"/>
     <keyword type="function" name="gst_element_query_position ()" link="GstElement.html#gst-element-query-position"/>
@@ -571,7 +594,6 @@
     <keyword type="macro" name="GST_EVENT_TYPE_BOTH" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS"/>
     <keyword type="macro" name="GST_EVENT_MAKE_TYPE()" link="gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS"/>
     <keyword type="enum" name="enum GstEventType" link="gstreamer-GstEvent.html#GstEventType"/>
-    <keyword type="macro" name="GST_EVENT_TRACE_NAME" link="gstreamer-GstEvent.html#GST-EVENT-TRACE-NAME:CAPS"/>
     <keyword type="macro" name="GST_EVENT_TYPE()" link="gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS"/>
     <keyword type="macro" name="GST_EVENT_TYPE_NAME()" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-NAME:CAPS"/>
     <keyword type="macro" name="GST_EVENT_TIMESTAMP()" link="gstreamer-GstEvent.html#GST-EVENT-TIMESTAMP:CAPS"/>
@@ -585,10 +607,10 @@
     <keyword type="function" name="gst_event_type_to_quark ()" link="gstreamer-GstEvent.html#gst-event-type-to-quark"/>
     <keyword type="function" name="gst_event_ref ()" link="gstreamer-GstEvent.html#gst-event-ref"/>
     <keyword type="function" name="gst_event_unref ()" link="gstreamer-GstEvent.html#gst-event-unref"/>
-    <keyword type="macro" name="gst_event_replace()" link="gstreamer-GstEvent.html#gst-event-replace"/>
+    <keyword type="function" name="gst_event_replace ()" link="gstreamer-GstEvent.html#gst-event-replace"/>
     <keyword type="function" name="gst_event_copy ()" link="gstreamer-GstEvent.html#gst-event-copy"/>
-    <keyword type="macro" name="gst_event_steal()" link="gstreamer-GstEvent.html#gst-event-steal"/>
-    <keyword type="macro" name="gst_event_take()" link="gstreamer-GstEvent.html#gst-event-take"/>
+    <keyword type="function" name="gst_event_steal ()" link="gstreamer-GstEvent.html#gst-event-steal"/>
+    <keyword type="function" name="gst_event_take ()" link="gstreamer-GstEvent.html#gst-event-take"/>
     <keyword type="macro" name="gst_event_is_writable()" link="gstreamer-GstEvent.html#gst-event-is-writable"/>
     <keyword type="macro" name="gst_event_make_writable()" link="gstreamer-GstEvent.html#gst-event-make-writable"/>
     <keyword type="function" name="gst_event_writable_structure ()" link="gstreamer-GstEvent.html#gst-event-writable-structure"/>
@@ -601,6 +623,9 @@
     <keyword type="function" name="gst_event_new_flush_stop ()" link="gstreamer-GstEvent.html#gst-event-new-flush-stop"/>
     <keyword type="function" name="gst_event_parse_flush_stop ()" link="gstreamer-GstEvent.html#gst-event-parse-flush-stop"/>
     <keyword type="function" name="gst_event_new_eos ()" link="gstreamer-GstEvent.html#gst-event-new-eos"/>
+    <keyword type="function" name="gst_event_new_gap ()" link="gstreamer-GstEvent.html#gst-event-new-gap"/>
+    <keyword type="function" name="gst_event_parse_gap ()" link="gstreamer-GstEvent.html#gst-event-parse-gap"/>
+    <keyword type="function" name="gst_event_new_stream_start ()" link="gstreamer-GstEvent.html#gst-event-new-stream-start"/>
     <keyword type="function" name="gst_event_new_segment ()" link="gstreamer-GstEvent.html#gst-event-new-segment"/>
     <keyword type="function" name="gst_event_parse_segment ()" link="gstreamer-GstEvent.html#gst-event-parse-segment"/>
     <keyword type="function" name="gst_event_copy_segment ()" link="gstreamer-GstEvent.html#gst-event-copy-segment"/>
@@ -625,8 +650,18 @@
     <keyword type="function" name="gst_event_new_reconfigure ()" link="gstreamer-GstEvent.html#gst-event-new-reconfigure" since="0.11.0"/>
     <keyword type="function" name="gst_event_new_caps ()" link="gstreamer-GstEvent.html#gst-event-new-caps"/>
     <keyword type="function" name="gst_event_parse_caps ()" link="gstreamer-GstEvent.html#gst-event-parse-caps"/>
-    <keyword type="function" name="GstFilterFunc ()" link="gstreamer-GstFilter.html#GstFilterFunc"/>
-    <keyword type="function" name="gst_filter_run ()" link="gstreamer-GstFilter.html#gst-filter-run"/>
+    <keyword type="enum" name="enum GstStreamConfigFlags" link="gstreamer-GstEvent.html#GstStreamConfigFlags"/>
+    <keyword type="function" name="gst_event_new_stream_config ()" link="gstreamer-GstEvent.html#gst-event-new-stream-config"/>
+    <keyword type="function" name="gst_event_parse_stream_config ()" link="gstreamer-GstEvent.html#gst-event-parse-stream-config"/>
+    <keyword type="function" name="gst_event_set_stream_config_setup_data ()" link="gstreamer-GstEvent.html#gst-event-set-stream-config-setup-data"/>
+    <keyword type="function" name="gst_event_parse_stream_config_setup_data ()" link="gstreamer-GstEvent.html#gst-event-parse-stream-config-setup-data"/>
+    <keyword type="function" name="gst_event_add_stream_config_header ()" link="gstreamer-GstEvent.html#gst-event-add-stream-config-header"/>
+    <keyword type="function" name="gst_event_get_n_stream_config_headers ()" link="gstreamer-GstEvent.html#gst-event-get-n-stream-config-headers"/>
+    <keyword type="function" name="gst_event_parse_nth_stream_config_header ()" link="gstreamer-GstEvent.html#gst-event-parse-nth-stream-config-header"/>
+    <keyword type="function" name="gst_event_new_toc ()" link="gstreamer-GstEvent.html#gst-event-new-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_event_parse_toc ()" link="gstreamer-GstEvent.html#gst-event-parse-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_event_new_toc_select ()" link="gstreamer-GstEvent.html#gst-event-new-toc-select" since="0.10.37"/>
+    <keyword type="function" name="gst_event_parse_toc_select ()" link="gstreamer-GstEvent.html#gst-event-parse-toc-select" since="0.10.37"/>
     <keyword type="enum" name="enum GstFormat" link="gstreamer-GstFormat.html#GstFormat"/>
     <keyword type="macro" name="GST_FORMAT_PERCENT_MAX" link="gstreamer-GstFormat.html#GST-FORMAT-PERCENT-MAX:CAPS"/>
     <keyword type="macro" name="GST_FORMAT_PERCENT_SCALE" link="gstreamer-GstFormat.html#GST-FORMAT-PERCENT-SCALE:CAPS"/>
@@ -647,76 +682,18 @@
     <keyword type="function" name="gst_ghost_pad_set_target ()" link="GstGhostPad.html#gst-ghost-pad-set-target"/>
     <keyword type="function" name="gst_ghost_pad_get_target ()" link="GstGhostPad.html#gst-ghost-pad-get-target"/>
     <keyword type="function" name="gst_ghost_pad_construct ()" link="GstGhostPad.html#gst-ghost-pad-construct" since="0.10.22"/>
-    <keyword type="function" name="gst_ghost_pad_unlink_default ()" link="GstGhostPad.html#gst-ghost-pad-unlink-default" since="0.10.35"/>
-    <keyword type="function" name="gst_ghost_pad_link_default ()" link="GstGhostPad.html#gst-ghost-pad-link-default" since="0.10.35"/>
-    <keyword type="function" name="gst_ghost_pad_activate_pull_default ()" link="GstGhostPad.html#gst-ghost-pad-activate-pull-default" since="0.10.35"/>
-    <keyword type="function" name="gst_ghost_pad_activate_push_default ()" link="GstGhostPad.html#gst-ghost-pad-activate-push-default" since="0.10.35"/>
-    <keyword type="function" name="gst_ghost_pad_internal_activate_push_default ()" link="GstGhostPad.html#gst-ghost-pad-internal-activate-push-default" since="0.10.35"/>
-    <keyword type="function" name="gst_ghost_pad_internal_activate_pull_default ()" link="GstGhostPad.html#gst-ghost-pad-internal-activate-pull-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_get_internal ()" link="GstGhostPad.html#gst-proxy-pad-get-internal" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_query_type_default ()" link="GstGhostPad.html#gst-proxy-pad-query-type-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_event_default ()" link="GstGhostPad.html#gst-proxy-pad-event-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_query_default ()" link="GstGhostPad.html#gst-proxy-pad-query-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_iterate_internal_links_default ()" link="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default"/>
-    <keyword type="function" name="gst_proxy_pad_chain_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_chain_list_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-list-default" since="0.10.35"/>
+    <keyword type="function" name="gst_ghost_pad_unlink_default ()" link="GstGhostPad.html#gst-ghost-pad-unlink-default" since="0.10.36"/>
+    <keyword type="function" name="gst_ghost_pad_link_default ()" link="GstGhostPad.html#gst-ghost-pad-link-default" since="0.10.36"/>
+    <keyword type="function" name="gst_ghost_pad_activate_mode_default ()" link="GstGhostPad.html#gst-ghost-pad-activate-mode-default"/>
+    <keyword type="function" name="gst_ghost_pad_internal_activate_mode_default ()" link="GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default"/>
+    <keyword type="function" name="gst_proxy_pad_get_internal ()" link="GstGhostPad.html#gst-proxy-pad-get-internal" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_event_default ()" link="GstGhostPad.html#gst-proxy-pad-event-default" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_query_default ()" link="GstGhostPad.html#gst-proxy-pad-query-default" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_iterate_internal_links_default ()" link="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_chain_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-default" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_chain_list_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-list-default" since="0.10.36"/>
     <keyword type="function" name="gst_proxy_pad_getrange_default ()" link="GstGhostPad.html#gst-proxy-pad-getrange-default"/>
-    <keyword type="function" name="gst_proxy_pad_getcaps_default ()" link="GstGhostPad.html#gst-proxy-pad-getcaps-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_acceptcaps_default ()" link="GstGhostPad.html#gst-proxy-pad-acceptcaps-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_fixatecaps_default ()" link="GstGhostPad.html#gst-proxy-pad-fixatecaps-default" since="0.10.35"/>
-    <keyword type="function" name="gst_proxy_pad_unlink_default ()" link="GstGhostPad.html#gst-proxy-pad-unlink-default" since="0.10.35"/>
-    <keyword type="struct" name="struct GstIndex" link="GstIndex.html#GstIndex-struct"/>
-    <keyword type="struct" name="struct GstIndexEntry" link="GstIndex.html#GstIndexEntry"/>
-    <keyword type="struct" name="struct GstIndexGroup" link="GstIndex.html#GstIndexGroup"/>
-    <keyword type="enum" name="enum GstIndexCertainty" link="GstIndex.html#GstIndexCertainty"/>
-    <keyword type="enum" name="enum GstIndexEntryType" link="GstIndex.html#GstIndexEntryType"/>
-    <keyword type="enum" name="enum GstIndexLookupMethod" link="GstIndex.html#GstIndexLookupMethod"/>
-    <keyword type="macro" name="GST_INDEX_NASSOCS()" link="GstIndex.html#GST-INDEX-NASSOCS:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_ASSOC_FLAGS()" link="GstIndex.html#GST-INDEX-ASSOC-FLAGS:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_ASSOC_FORMAT()" link="GstIndex.html#GST-INDEX-ASSOC-FORMAT:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_ASSOC_VALUE()" link="GstIndex.html#GST-INDEX-ASSOC-VALUE:CAPS"/>
-    <keyword type="struct" name="struct GstIndexAssociation" link="GstIndex.html#GstIndexAssociation"/>
-    <keyword type="enum" name="enum GstAssocFlags" link="GstIndex.html#GstAssocFlags"/>
-    <keyword type="macro" name="GST_INDEX_FORMAT_FORMAT()" link="GstIndex.html#GST-INDEX-FORMAT-FORMAT:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_FORMAT_KEY()" link="GstIndex.html#GST-INDEX-FORMAT-KEY:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_ID_INVALID" link="GstIndex.html#GST-INDEX-ID-INVALID:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_ID_DESCRIPTION()" link="GstIndex.html#GST-INDEX-ID-DESCRIPTION:CAPS"/>
-    <keyword type="function" name="GstIndexFilter ()" link="GstIndex.html#GstIndexFilter"/>
-    <keyword type="enum" name="enum GstIndexResolverMethod" link="GstIndex.html#GstIndexResolverMethod"/>
-    <keyword type="function" name="GstIndexResolver ()" link="GstIndex.html#GstIndexResolver"/>
-    <keyword type="enum" name="enum GstIndexFlags" link="GstIndex.html#GstIndexFlags"/>
-    <keyword type="macro" name="GST_INDEX_IS_READABLE()" link="GstIndex.html#GST-INDEX-IS-READABLE:CAPS"/>
-    <keyword type="macro" name="GST_INDEX_IS_WRITABLE()" link="GstIndex.html#GST-INDEX-IS-WRITABLE:CAPS"/>
-    <keyword type="function" name="gst_index_new ()" link="GstIndex.html#gst-index-new"/>
-    <keyword type="function" name="gst_index_commit ()" link="GstIndex.html#gst-index-commit"/>
-    <keyword type="function" name="gst_index_get_group ()" link="GstIndex.html#gst-index-get-group"/>
-    <keyword type="function" name="gst_index_new_group ()" link="GstIndex.html#gst-index-new-group"/>
-    <keyword type="function" name="gst_index_set_group ()" link="GstIndex.html#gst-index-set-group"/>
-    <keyword type="function" name="gst_index_set_certainty ()" link="GstIndex.html#gst-index-set-certainty"/>
-    <keyword type="function" name="gst_index_get_certainty ()" link="GstIndex.html#gst-index-get-certainty"/>
-    <keyword type="function" name="gst_index_set_filter ()" link="GstIndex.html#gst-index-set-filter"/>
-    <keyword type="function" name="gst_index_set_filter_full ()" link="GstIndex.html#gst-index-set-filter-full"/>
-    <keyword type="function" name="gst_index_set_resolver ()" link="GstIndex.html#gst-index-set-resolver"/>
-    <keyword type="function" name="gst_index_set_resolver_full ()" link="GstIndex.html#gst-index-set-resolver-full" since="0.10.18"/>
-    <keyword type="function" name="gst_index_get_writer_id ()" link="GstIndex.html#gst-index-get-writer-id"/>
-    <keyword type="function" name="gst_index_add_format ()" link="GstIndex.html#gst-index-add-format"/>
-    <keyword type="function" name="gst_index_add_association ()" link="GstIndex.html#gst-index-add-association"/>
-    <keyword type="function" name="gst_index_add_associationv ()" link="GstIndex.html#gst-index-add-associationv"/>
-    <keyword type="function" name="gst_index_add_object ()" link="GstIndex.html#gst-index-add-object"/>
-    <keyword type="function" name="gst_index_add_id ()" link="GstIndex.html#gst-index-add-id"/>
-    <keyword type="function" name="gst_index_get_assoc_entry ()" link="GstIndex.html#gst-index-get-assoc-entry"/>
-    <keyword type="function" name="gst_index_get_assoc_entry_full ()" link="GstIndex.html#gst-index-get-assoc-entry-full"/>
-    <keyword type="function" name="gst_index_entry_copy ()" link="GstIndex.html#gst-index-entry-copy"/>
-    <keyword type="function" name="gst_index_entry_free ()" link="GstIndex.html#gst-index-entry-free"/>
-    <keyword type="function" name="gst_index_entry_assoc_map ()" link="GstIndex.html#gst-index-entry-assoc-map"/>
-    <keyword type="property" name="The &quot;resolver&quot; property" link="GstIndex.html#GstIndex--resolver"/>
-    <keyword type="signal" name="The &quot;entry-added&quot; signal" link="GstIndex.html#GstIndex-entry-added"/>
-    <keyword type="struct" name="struct GstIndexFactory" link="GstIndexFactory.html#GstIndexFactory-struct"/>
-    <keyword type="function" name="gst_index_factory_new ()" link="GstIndexFactory.html#gst-index-factory-new"/>
-    <keyword type="function" name="gst_index_factory_destroy ()" link="GstIndexFactory.html#gst-index-factory-destroy"/>
-    <keyword type="function" name="gst_index_factory_find ()" link="GstIndexFactory.html#gst-index-factory-find"/>
-    <keyword type="function" name="gst_index_factory_create ()" link="GstIndexFactory.html#gst-index-factory-create"/>
-    <keyword type="function" name="gst_index_factory_make ()" link="GstIndexFactory.html#gst-index-factory-make"/>
+    <keyword type="function" name="gst_proxy_pad_unlink_default ()" link="GstGhostPad.html#gst-proxy-pad-unlink-default" since="0.10.36"/>
     <keyword type="struct" name="struct GstIterator" link="gstreamer-GstIterator.html#GstIterator"/>
     <keyword type="enum" name="enum GstIteratorItem" link="gstreamer-GstIterator.html#GstIteratorItem"/>
     <keyword type="enum" name="enum GstIteratorResult" link="gstreamer-GstIterator.html#GstIteratorResult"/>
@@ -743,38 +720,52 @@
     <keyword type="function" name="gst_iterator_fold ()" link="gstreamer-GstIterator.html#gst-iterator-fold"/>
     <keyword type="function" name="gst_iterator_foreach ()" link="gstreamer-GstIterator.html#gst-iterator-foreach"/>
     <keyword type="function" name="gst_iterator_find_custom ()" link="gstreamer-GstIterator.html#gst-iterator-find-custom"/>
-    <keyword type="struct" name="struct GstMemory" link="gstreamer-GstMemory.html#GstMemory"/>
-    <keyword type="struct" name="struct GstMemoryInfo" link="gstreamer-GstMemory.html#GstMemoryInfo"/>
-    <keyword type="struct" name="GstAllocator" link="gstreamer-GstMemory.html#GstAllocator"/>
-    <keyword type="macro" name="GST_MEMORY_IS_WRITABLE()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-WRITABLE:CAPS"/>
     <keyword type="enum" name="enum GstMemoryFlags" link="gstreamer-GstMemory.html#GstMemoryFlags"/>
+    <keyword type="macro" name="GST_MEMORY_FLAGS()" link="gstreamer-GstMemory.html#GST-MEMORY-FLAGS:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_FLAG_IS_SET()" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_FLAG_UNSET()" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_IS_READONLY()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_IS_ZERO_PADDED()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_IS_ZERO_PREFIXED()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS"/>
+    <keyword type="struct" name="struct GstMemory" link="gstreamer-GstMemory.html#GstMemory"/>
     <keyword type="enum" name="enum GstMapFlags" link="gstreamer-GstMemory.html#GstMapFlags"/>
+    <keyword type="struct" name="GstMapInfo" link="gstreamer-GstMemory.html#GstMapInfo"/>
+    <keyword type="macro" name="GST_MAP_INFO_INIT" link="gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS"/>
     <keyword type="macro" name="GST_MAP_READWRITE" link="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS"/>
-    <keyword type="function" name="GstMemoryAllocFunction ()" link="gstreamer-GstMemory.html#GstMemoryAllocFunction"/>
-    <keyword type="function" name="GstMemoryGetSizesFunction ()" link="gstreamer-GstMemory.html#GstMemoryGetSizesFunction"/>
-    <keyword type="function" name="GstMemoryResizeFunction ()" link="gstreamer-GstMemory.html#GstMemoryResizeFunction"/>
+    <keyword type="struct" name="struct GstAllocationParams" link="gstreamer-GstMemory.html#GstAllocationParams"/>
+    <keyword type="function" name="GstAllocatorAllocFunction ()" link="gstreamer-GstMemory.html#GstAllocatorAllocFunction"/>
     <keyword type="function" name="GstMemoryMapFunction ()" link="gstreamer-GstMemory.html#GstMemoryMapFunction"/>
     <keyword type="function" name="GstMemoryUnmapFunction ()" link="gstreamer-GstMemory.html#GstMemoryUnmapFunction"/>
     <keyword type="function" name="GstMemoryFreeFunction ()" link="gstreamer-GstMemory.html#GstMemoryFreeFunction"/>
     <keyword type="function" name="GstMemoryCopyFunction ()" link="gstreamer-GstMemory.html#GstMemoryCopyFunction"/>
     <keyword type="function" name="GstMemoryShareFunction ()" link="gstreamer-GstMemory.html#GstMemoryShareFunction"/>
     <keyword type="function" name="GstMemoryIsSpanFunction ()" link="gstreamer-GstMemory.html#GstMemoryIsSpanFunction"/>
-    <keyword type="variable" name="gst_memory_alignment" link="gstreamer-GstMemory.html#gst-memory-alignment"/>
+    <keyword type="struct" name="struct GstMemoryInfo" link="gstreamer-GstMemory.html#GstMemoryInfo"/>
+    <keyword type="struct" name="GstAllocator" link="gstreamer-GstMemory.html#GstAllocator"/>
+    <keyword type="function" name="gst_allocator_new ()" link="gstreamer-GstMemory.html#gst-allocator-new"/>
+    <keyword type="function" name="gst_allocator_get_memory_type ()" link="gstreamer-GstMemory.html#gst-allocator-get-memory-type"/>
+    <keyword type="function" name="gst_allocator_ref ()" link="gstreamer-GstMemory.html#gst-allocator-ref"/>
+    <keyword type="function" name="gst_allocator_unref ()" link="gstreamer-GstMemory.html#gst-allocator-unref"/>
+    <keyword type="macro" name="GST_ALLOCATOR_SYSMEM" link="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS"/>
+    <keyword type="function" name="gst_allocator_find ()" link="gstreamer-GstMemory.html#gst-allocator-find"/>
+    <keyword type="function" name="gst_allocator_register ()" link="gstreamer-GstMemory.html#gst-allocator-register"/>
+    <keyword type="function" name="gst_allocator_set_default ()" link="gstreamer-GstMemory.html#gst-allocator-set-default"/>
+    <keyword type="function" name="gst_allocation_params_init ()" link="gstreamer-GstMemory.html#gst-allocation-params-init"/>
+    <keyword type="function" name="gst_allocation_params_copy ()" link="gstreamer-GstMemory.html#gst-allocation-params-copy"/>
+    <keyword type="function" name="gst_allocation_params_free ()" link="gstreamer-GstMemory.html#gst-allocation-params-free"/>
     <keyword type="function" name="gst_allocator_alloc ()" link="gstreamer-GstMemory.html#gst-allocator-alloc"/>
     <keyword type="function" name="gst_memory_new_wrapped ()" link="gstreamer-GstMemory.html#gst-memory-new-wrapped"/>
     <keyword type="function" name="gst_memory_ref ()" link="gstreamer-GstMemory.html#gst-memory-ref"/>
     <keyword type="function" name="gst_memory_unref ()" link="gstreamer-GstMemory.html#gst-memory-unref"/>
+    <keyword type="function" name="gst_memory_is_exclusive ()" link="gstreamer-GstMemory.html#gst-memory-is-exclusive"/>
     <keyword type="function" name="gst_memory_get_sizes ()" link="gstreamer-GstMemory.html#gst-memory-get-sizes"/>
     <keyword type="function" name="gst_memory_resize ()" link="gstreamer-GstMemory.html#gst-memory-resize"/>
+    <keyword type="function" name="gst_memory_make_mapped ()" link="gstreamer-GstMemory.html#gst-memory-make-mapped"/>
     <keyword type="function" name="gst_memory_map ()" link="gstreamer-GstMemory.html#gst-memory-map"/>
     <keyword type="function" name="gst_memory_unmap ()" link="gstreamer-GstMemory.html#gst-memory-unmap"/>
     <keyword type="function" name="gst_memory_copy ()" link="gstreamer-GstMemory.html#gst-memory-copy"/>
     <keyword type="function" name="gst_memory_share ()" link="gstreamer-GstMemory.html#gst-memory-share"/>
     <keyword type="function" name="gst_memory_is_span ()" link="gstreamer-GstMemory.html#gst-memory-is-span"/>
-    <keyword type="macro" name="GST_ALLOCATOR_SYSMEM" link="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS"/>
-    <keyword type="function" name="gst_allocator_find ()" link="gstreamer-GstMemory.html#gst-allocator-find"/>
-    <keyword type="function" name="gst_allocator_register ()" link="gstreamer-GstMemory.html#gst-allocator-register"/>
-    <keyword type="function" name="gst_allocator_set_default ()" link="gstreamer-GstMemory.html#gst-allocator-set-default"/>
     <keyword type="struct" name="struct GstMessage" link="gstreamer-GstMessage.html#GstMessage"/>
     <keyword type="enum" name="enum GstMessageType" link="gstreamer-GstMessage.html#GstMessageType"/>
     <keyword type="macro" name="GST_MESSAGE_SRC()" link="gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS"/>
@@ -783,7 +774,6 @@
     <keyword type="macro" name="GST_MESSAGE_SEQNUM()" link="gstreamer-GstMessage.html#GST-MESSAGE-SEQNUM:CAPS"/>
     <keyword type="macro" name="GST_MESSAGE_TYPE()" link="gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS"/>
     <keyword type="macro" name="GST_MESSAGE_TYPE_NAME()" link="gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS" since="0.10.4"/>
-    <keyword type="macro" name="GST_MESSAGE_TRACE_NAME" link="gstreamer-GstMessage.html#GST-MESSAGE-TRACE-NAME:CAPS"/>
     <keyword type="function" name="gst_message_type_to_quark ()" link="gstreamer-GstMessage.html#gst-message-type-to-quark"/>
     <keyword type="function" name="gst_message_type_get_name ()" link="gstreamer-GstMessage.html#gst-message-type-get-name"/>
     <keyword type="function" name="gst_message_ref ()" link="gstreamer-GstMessage.html#gst-message-ref"/>
@@ -795,7 +785,7 @@
     <keyword type="function" name="gst_message_set_seqnum ()" link="gstreamer-GstMessage.html#gst-message-set-seqnum" since="0.10.22"/>
     <keyword type="function" name="gst_message_has_name ()" link="gstreamer-GstMessage.html#gst-message-has-name" since="0.10.20"/>
     <keyword type="macro" name="gst_message_is_writable()" link="gstreamer-GstMessage.html#gst-message-is-writable"/>
-    <keyword type="macro" name="gst_message_replace()" link="gstreamer-GstMessage.html#gst-message-replace"/>
+    <keyword type="function" name="gst_message_replace ()" link="gstreamer-GstMessage.html#gst-message-replace"/>
     <keyword type="function" name="gst_message_new_eos ()" link="gstreamer-GstMessage.html#gst-message-new-eos"/>
     <keyword type="function" name="gst_message_new_error ()" link="gstreamer-GstMessage.html#gst-message-new-error"/>
     <keyword type="function" name="gst_message_parse_error ()" link="gstreamer-GstMessage.html#gst-message-parse-error"/>
@@ -841,6 +831,8 @@
     <keyword type="function" name="gst_message_parse_qos ()" link="gstreamer-GstMessage.html#gst-message-parse-qos" since="0.10.29"/>
     <keyword type="function" name="gst_message_parse_qos_values ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-values" since="0.10.29"/>
     <keyword type="function" name="gst_message_parse_qos_stats ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-stats" since="0.10.29"/>
+    <keyword type="function" name="gst_message_new_toc ()" link="gstreamer-GstMessage.html#gst-message-new-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_message_parse_toc ()" link="gstreamer-GstMessage.html#gst-message-parse-toc" since="0.10.37"/>
     <keyword type="enum" name="enum GstStructureChangeType" link="gstreamer-GstMessage.html#GstStructureChangeType" since="0.10.22"/>
     <keyword type="function" name="gst_message_new_structure_change ()" link="gstreamer-GstMessage.html#gst-message-new-structure-change" since="0.10.22."/>
     <keyword type="function" name="gst_message_parse_structure_change ()" link="gstreamer-GstMessage.html#gst-message-parse-structure-change" since="0.10.22"/>
@@ -855,12 +847,20 @@
     <keyword type="function" name="gst_message_new_progress ()" link="gstreamer-GstMessage.html#gst-message-new-progress" since="0.10.33"/>
     <keyword type="function" name="gst_message_parse_progress ()" link="gstreamer-GstMessage.html#gst-message-parse-progress" since="0.10.33"/>
     <keyword type="struct" name="struct GstMeta" link="gstreamer-GstMeta.html#GstMeta"/>
+    <keyword type="enum" name="enum GstMetaFlags" link="gstreamer-GstMeta.html#GstMetaFlags"/>
+    <keyword type="macro" name="GST_META_FLAGS()" link="gstreamer-GstMeta.html#GST-META-FLAGS:CAPS"/>
+    <keyword type="macro" name="GST_META_FLAG_IS_SET()" link="gstreamer-GstMeta.html#GST-META-FLAG-IS-SET:CAPS"/>
+    <keyword type="macro" name="GST_META_FLAG_SET()" link="gstreamer-GstMeta.html#GST-META-FLAG-SET:CAPS"/>
+    <keyword type="macro" name="GST_META_FLAG_UNSET()" link="gstreamer-GstMeta.html#GST-META-FLAG-UNSET:CAPS"/>
     <keyword type="struct" name="struct GstMetaInfo" link="gstreamer-GstMeta.html#GstMetaInfo"/>
-    <keyword type="macro" name="GST_META_TRACE_NAME" link="gstreamer-GstMeta.html#GST-META-TRACE-NAME:CAPS"/>
     <keyword type="function" name="GstMetaInitFunction ()" link="gstreamer-GstMeta.html#GstMetaInitFunction"/>
     <keyword type="function" name="GstMetaFreeFunction ()" link="gstreamer-GstMeta.html#GstMetaFreeFunction"/>
-    <keyword type="function" name="GstMetaCopyFunction ()" link="gstreamer-GstMeta.html#GstMetaCopyFunction"/>
     <keyword type="function" name="GstMetaTransformFunction ()" link="gstreamer-GstMeta.html#GstMetaTransformFunction"/>
+    <keyword type="struct" name="GstMetaTransformCopy" link="gstreamer-GstMeta.html#GstMetaTransformCopy"/>
+    <keyword type="macro" name="GST_META_TRANSFORM_IS_COPY()" link="gstreamer-GstMeta.html#GST-META-TRANSFORM-IS-COPY:CAPS"/>
+    <keyword type="function" name="gst_meta_api_type_register ()" link="gstreamer-GstMeta.html#gst-meta-api-type-register"/>
+    <keyword type="function" name="gst_meta_api_type_has_tag ()" link="gstreamer-GstMeta.html#gst-meta-api-type-has-tag"/>
+    <keyword type="macro" name="GST_META_TAG_MEMORY" link="gstreamer-GstMeta.html#GST-META-TAG-MEMORY:CAPS"/>
     <keyword type="function" name="gst_meta_register ()" link="gstreamer-GstMeta.html#gst-meta-register"/>
     <keyword type="function" name="gst_meta_get_info ()" link="gstreamer-GstMeta.html#gst-meta-get-info"/>
     <keyword type="struct" name="struct GstMiniObject" link="gstreamer-GstMiniObject.html#GstMiniObject"/>
@@ -889,6 +889,7 @@
     <keyword type="function" name="gst_mini_object_replace ()" link="gstreamer-GstMiniObject.html#gst-mini-object-replace"/>
     <keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
     <keyword type="function" name="gst_mini_object_take ()" link="gstreamer-GstMiniObject.html#gst-mini-object-take"/>
+    <keyword type="" name="controlled properties" link="GstObject.html#idp25919984"/>
     <keyword type="struct" name="struct GstObject" link="GstObject.html#GstObject-struct"/>
     <keyword type="struct" name="struct GstObjectClass" link="GstObject.html#GstObjectClass"/>
     <keyword type="enum" name="enum GstObjectFlags" link="GstObject.html#GstObjectFlags"/>
@@ -918,6 +919,18 @@
     <keyword type="function" name="gst_object_ref_sink ()" link="GstObject.html#gst-object-ref-sink"/>
     <keyword type="function" name="gst_object_replace ()" link="GstObject.html#gst-object-replace"/>
     <keyword type="function" name="gst_object_get_path_string ()" link="GstObject.html#gst-object-get-path-string"/>
+    <keyword type="function" name="gst_object_suggest_next_sync ()" link="GstObject.html#gst-object-suggest-next-sync"/>
+    <keyword type="function" name="gst_object_sync_values ()" link="GstObject.html#gst-object-sync-values"/>
+    <keyword type="function" name="gst_object_has_active_control_bindings ()" link="GstObject.html#gst-object-has-active-control-bindings"/>
+    <keyword type="function" name="gst_object_set_control_bindings_disabled ()" link="GstObject.html#gst-object-set-control-bindings-disabled"/>
+    <keyword type="function" name="gst_object_set_control_binding_disabled ()" link="GstObject.html#gst-object-set-control-binding-disabled"/>
+    <keyword type="function" name="gst_object_add_control_binding ()" link="GstObject.html#gst-object-add-control-binding"/>
+    <keyword type="function" name="gst_object_get_control_binding ()" link="GstObject.html#gst-object-get-control-binding"/>
+    <keyword type="function" name="gst_object_remove_control_binding ()" link="GstObject.html#gst-object-remove-control-binding"/>
+    <keyword type="function" name="gst_object_get_value ()" link="GstObject.html#gst-object-get-value"/>
+    <keyword type="function" name="gst_object_get_value_array ()" link="GstObject.html#gst-object-get-value-array"/>
+    <keyword type="function" name="gst_object_get_control_rate ()" link="GstObject.html#gst-object-get-control-rate"/>
+    <keyword type="function" name="gst_object_set_control_rate ()" link="GstObject.html#gst-object-set-control-rate"/>
     <keyword type="property" name="The &quot;name&quot; property" link="GstObject.html#GstObject--name"/>
     <keyword type="property" name="The &quot;parent&quot; property" link="GstObject.html#GstObject--parent"/>
     <keyword type="signal" name="The &quot;deep-notify&quot; signal" link="GstObject.html#GstObject-deep-notify"/>
@@ -930,12 +943,7 @@
     <keyword type="enum" name="enum GstPadLinkCheck" link="GstPad.html#GstPadLinkCheck" since="0.10.30"/>
     <keyword type="macro" name="GST_PAD_LINK_CHECK_DEFAULT" link="GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS" since="0.10.30"/>
     <keyword type="enum" name="enum GstFlowReturn" link="GstPad.html#GstFlowReturn"/>
-    <keyword type="enum" name="enum GstActivateMode" link="GstPad.html#GstActivateMode"/>
-    <keyword type="enum" name="enum GstProbeReturn" link="GstPad.html#GstProbeReturn"/>
-    <keyword type="enum" name="enum GstProbeType" link="GstPad.html#GstProbeType"/>
-    <keyword type="macro" name="GST_PROBE_TYPE_BLOCKING" link="GstPad.html#GST-PROBE-TYPE-BLOCKING:CAPS"/>
-    <keyword type="macro" name="GST_PROBE_TYPE_DATA" link="GstPad.html#GST-PROBE-TYPE-DATA:CAPS"/>
-    <keyword type="macro" name="GST_PROBE_TYPE_SCHEDULING" link="GstPad.html#GST-PROBE-TYPE-SCHEDULING:CAPS"/>
+    <keyword type="enum" name="enum GstPadMode" link="GstPad.html#GstPadMode"/>
     <keyword type="macro" name="gst_pad_get_name()" link="GstPad.html#gst-pad-get-name"/>
     <keyword type="function" name="gst_pad_get_direction ()" link="GstPad.html#gst-pad-get-direction"/>
     <keyword type="macro" name="gst_pad_get_parent()" link="GstPad.html#gst-pad-get-parent"/>
@@ -946,58 +954,75 @@
     <keyword type="function" name="gst_pad_unlink ()" link="GstPad.html#gst-pad-unlink"/>
     <keyword type="function" name="gst_pad_is_linked ()" link="GstPad.html#gst-pad-is-linked"/>
     <keyword type="function" name="gst_pad_can_link ()" link="GstPad.html#gst-pad-can-link"/>
-    <keyword type="function" name="gst_pad_get_caps ()" link="GstPad.html#gst-pad-get-caps"/>
-    <keyword type="macro" name="gst_pad_get_caps_reffed()" link="GstPad.html#gst-pad-get-caps-reffed"/>
     <keyword type="function" name="gst_pad_get_allowed_caps ()" link="GstPad.html#gst-pad-get-allowed-caps"/>
     <keyword type="function" name="gst_pad_get_current_caps ()" link="GstPad.html#gst-pad-get-current-caps"/>
     <keyword type="function" name="gst_pad_get_pad_template_caps ()" link="GstPad.html#gst-pad-get-pad-template-caps"/>
     <keyword type="function" name="gst_pad_set_caps ()" link="GstPad.html#gst-pad-set-caps"/>
     <keyword type="function" name="gst_pad_get_peer ()" link="GstPad.html#gst-pad-get-peer"/>
-    <keyword type="function" name="gst_pad_peer_get_caps ()" link="GstPad.html#gst-pad-peer-get-caps"/>
-    <keyword type="macro" name="gst_pad_peer_get_caps_reffed()" link="GstPad.html#gst-pad-peer-get-caps-reffed"/>
     <keyword type="function" name="gst_pad_use_fixed_caps ()" link="GstPad.html#gst-pad-use-fixed-caps"/>
     <keyword type="function" name="gst_pad_has_current_caps ()" link="GstPad.html#gst-pad-has-current-caps"/>
     <keyword type="function" name="gst_pad_get_sticky_event ()" link="GstPad.html#gst-pad-get-sticky-event"/>
     <keyword type="function" name="GstPadStickyEventsForeachFunction ()" link="GstPad.html#GstPadStickyEventsForeachFunction"/>
     <keyword type="function" name="gst_pad_sticky_events_foreach ()" link="GstPad.html#gst-pad-sticky-events-foreach"/>
     <keyword type="function" name="gst_pad_is_active ()" link="GstPad.html#gst-pad-is-active"/>
-    <keyword type="function" name="gst_pad_is_blocked ()" link="GstPad.html#gst-pad-is-blocked"/>
-    <keyword type="function" name="gst_pad_is_blocking ()" link="GstPad.html#gst-pad-is-blocking" since="0.10.11"/>
+    <keyword type="enum" name="enum GstPadProbeReturn" link="GstPad.html#GstPadProbeReturn"/>
+    <keyword type="enum" name="enum GstPadProbeType" link="GstPad.html#GstPadProbeType"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_BLOCKING" link="GstPad.html#GST-PAD-PROBE-TYPE-BLOCKING:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_DATA_UPSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_DATA_BOTH" link="GstPad.html#GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_EVENT_BOTH" link="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_QUERY_BOTH" link="GstPad.html#GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_ALL_BOTH" link="GstPad.html#GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_TYPE_SCHEDULING" link="GstPad.html#GST-PAD-PROBE-TYPE-SCHEDULING:CAPS"/>
+    <keyword type="struct" name="struct GstPadProbeInfo" link="GstPad.html#GstPadProbeInfo"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_TYPE()" link="GstPad.html#GST-PAD-PROBE-INFO-TYPE:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_ID()" link="GstPad.html#GST-PAD-PROBE-INFO-ID:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_DATA()" link="GstPad.html#GST-PAD-PROBE-INFO-DATA:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_BUFFER()" link="GstPad.html#GST-PAD-PROBE-INFO-BUFFER:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_BUFFER_LIST()" link="GstPad.html#GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_EVENT()" link="GstPad.html#GST-PAD-PROBE-INFO-EVENT:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_QUERY()" link="GstPad.html#GST-PAD-PROBE-INFO-QUERY:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_OFFSET()" link="GstPad.html#GST-PAD-PROBE-INFO-OFFSET:CAPS"/>
+    <keyword type="macro" name="GST_PAD_PROBE_INFO_SIZE()" link="GstPad.html#GST-PAD-PROBE-INFO-SIZE:CAPS"/>
     <keyword type="function" name="GstPadProbeCallback ()" link="GstPad.html#GstPadProbeCallback"/>
     <keyword type="function" name="gst_pad_add_probe ()" link="GstPad.html#gst-pad-add-probe"/>
     <keyword type="function" name="gst_pad_remove_probe ()" link="GstPad.html#gst-pad-remove-probe"/>
+    <keyword type="function" name="gst_pad_is_blocked ()" link="GstPad.html#gst-pad-is-blocked"/>
+    <keyword type="function" name="gst_pad_is_blocking ()" link="GstPad.html#gst-pad-is-blocking" since="0.10.11"/>
     <keyword type="function" name="gst_pad_get_offset ()" link="GstPad.html#gst-pad-get-offset"/>
     <keyword type="function" name="gst_pad_set_offset ()" link="GstPad.html#gst-pad-set-offset"/>
     <keyword type="function" name="gst_pad_new ()" link="GstPad.html#gst-pad-new"/>
     <keyword type="function" name="gst_pad_new_from_template ()" link="GstPad.html#gst-pad-new-from-template"/>
     <keyword type="function" name="gst_pad_new_from_static_template ()" link="GstPad.html#gst-pad-new-from-static-template"/>
-    <keyword type="function" name="gst_pad_set_chain_function ()" link="GstPad.html#gst-pad-set-chain-function"/>
+    <keyword type="macro" name="gst_pad_set_chain_function()" link="GstPad.html#gst-pad-set-chain-function"/>
+    <keyword type="function" name="gst_pad_set_chain_function_full ()" link="GstPad.html#gst-pad-set-chain-function-full"/>
     <keyword type="function" name="GstPadChainFunction ()" link="GstPad.html#GstPadChainFunction"/>
-    <keyword type="function" name="gst_pad_set_chain_list_function ()" link="GstPad.html#gst-pad-set-chain-list-function" since="0.10.24"/>
+    <keyword type="macro" name="gst_pad_set_chain_list_function()" link="GstPad.html#gst-pad-set-chain-list-function"/>
+    <keyword type="function" name="gst_pad_set_chain_list_function_full ()" link="GstPad.html#gst-pad-set-chain-list-function-full" since="0.10.24"/>
     <keyword type="function" name="GstPadChainListFunction ()" link="GstPad.html#GstPadChainListFunction"/>
     <keyword type="function" name="gst_pad_get_range ()" link="GstPad.html#gst-pad-get-range"/>
-    <keyword type="function" name="gst_pad_set_getrange_function ()" link="GstPad.html#gst-pad-set-getrange-function"/>
+    <keyword type="macro" name="gst_pad_set_getrange_function()" link="GstPad.html#gst-pad-set-getrange-function"/>
+    <keyword type="function" name="gst_pad_set_getrange_function_full ()" link="GstPad.html#gst-pad-set-getrange-function-full"/>
     <keyword type="function" name="GstPadGetRangeFunction ()" link="GstPad.html#GstPadGetRangeFunction"/>
-    <keyword type="function" name="gst_pad_set_event_function ()" link="GstPad.html#gst-pad-set-event-function"/>
+    <keyword type="macro" name="gst_pad_set_event_function()" link="GstPad.html#gst-pad-set-event-function"/>
+    <keyword type="function" name="gst_pad_set_event_function_full ()" link="GstPad.html#gst-pad-set-event-function-full"/>
     <keyword type="function" name="GstPadEventFunction ()" link="GstPad.html#GstPadEventFunction"/>
-    <keyword type="function" name="gst_pad_set_link_function ()" link="GstPad.html#gst-pad-set-link-function"/>
+    <keyword type="macro" name="gst_pad_set_link_function()" link="GstPad.html#gst-pad-set-link-function"/>
+    <keyword type="function" name="gst_pad_set_link_function_full ()" link="GstPad.html#gst-pad-set-link-function-full"/>
     <keyword type="function" name="GstPadLinkFunction ()" link="GstPad.html#GstPadLinkFunction"/>
-    <keyword type="function" name="gst_pad_set_unlink_function ()" link="GstPad.html#gst-pad-set-unlink-function"/>
+    <keyword type="macro" name="gst_pad_set_unlink_function()" link="GstPad.html#gst-pad-set-unlink-function"/>
+    <keyword type="function" name="gst_pad_set_unlink_function_full ()" link="GstPad.html#gst-pad-set-unlink-function-full"/>
     <keyword type="function" name="GstPadUnlinkFunction ()" link="GstPad.html#GstPadUnlinkFunction"/>
-    <keyword type="function" name="gst_pad_accept_caps ()" link="GstPad.html#gst-pad-accept-caps"/>
-    <keyword type="function" name="gst_pad_set_acceptcaps_function ()" link="GstPad.html#gst-pad-set-acceptcaps-function"/>
-    <keyword type="function" name="GstPadAcceptCapsFunction ()" link="GstPad.html#GstPadAcceptCapsFunction"/>
-    <keyword type="function" name="gst_pad_set_getcaps_function ()" link="GstPad.html#gst-pad-set-getcaps-function"/>
-    <keyword type="function" name="GstPadGetCapsFunction ()" link="GstPad.html#GstPadGetCapsFunction"/>
-    <keyword type="function" name="gst_pad_proxy_getcaps ()" link="GstPad.html#gst-pad-proxy-getcaps"/>
-    <keyword type="function" name="gst_pad_fixate_caps ()" link="GstPad.html#gst-pad-fixate-caps"/>
-    <keyword type="function" name="gst_pad_set_fixatecaps_function ()" link="GstPad.html#gst-pad-set-fixatecaps-function"/>
-    <keyword type="function" name="GstPadFixateCapsFunction ()" link="GstPad.html#GstPadFixateCapsFunction"/>
-    <keyword type="function" name="gst_pad_peer_accept_caps ()" link="GstPad.html#gst-pad-peer-accept-caps"/>
-    <keyword type="function" name="gst_pad_set_activate_function ()" link="GstPad.html#gst-pad-set-activate-function"/>
+    <keyword type="function" name="gst_pad_proxy_query_caps ()" link="GstPad.html#gst-pad-proxy-query-caps"/>
+    <keyword type="function" name="gst_pad_proxy_query_accept_caps ()" link="GstPad.html#gst-pad-proxy-query-accept-caps"/>
+    <keyword type="macro" name="gst_pad_set_activate_function()" link="GstPad.html#gst-pad-set-activate-function"/>
+    <keyword type="function" name="gst_pad_set_activate_function_full ()" link="GstPad.html#gst-pad-set-activate-function-full"/>
     <keyword type="function" name="GstPadActivateFunction ()" link="GstPad.html#GstPadActivateFunction"/>
-    <keyword type="function" name="gst_pad_set_activatepush_function ()" link="GstPad.html#gst-pad-set-activatepush-function"/>
-    <keyword type="function" name="gst_pad_set_activatepull_function ()" link="GstPad.html#gst-pad-set-activatepull-function"/>
+    <keyword type="macro" name="gst_pad_set_activatemode_function()" link="GstPad.html#gst-pad-set-activatemode-function"/>
+    <keyword type="function" name="gst_pad_set_activatemode_function_full ()" link="GstPad.html#gst-pad-set-activatemode-function-full"/>
     <keyword type="function" name="GstPadActivateModeFunction ()" link="GstPad.html#GstPadActivateModeFunction"/>
     <keyword type="function" name="gst_pad_check_reconfigure ()" link="GstPad.html#gst-pad-check-reconfigure"/>
     <keyword type="function" name="gst_pad_mark_reconfigure ()" link="GstPad.html#gst-pad-mark-reconfigure"/>
@@ -1005,8 +1030,7 @@
     <keyword type="function" name="gst_pad_push_event ()" link="GstPad.html#gst-pad-push-event"/>
     <keyword type="function" name="gst_pad_push_list ()" link="GstPad.html#gst-pad-push-list" since="0.10.24"/>
     <keyword type="function" name="gst_pad_pull_range ()" link="GstPad.html#gst-pad-pull-range"/>
-    <keyword type="function" name="gst_pad_activate_pull ()" link="GstPad.html#gst-pad-activate-pull"/>
-    <keyword type="function" name="gst_pad_activate_push ()" link="GstPad.html#gst-pad-activate-push"/>
+    <keyword type="function" name="gst_pad_activate_mode ()" link="GstPad.html#gst-pad-activate-mode"/>
     <keyword type="function" name="gst_pad_send_event ()" link="GstPad.html#gst-pad-send-event"/>
     <keyword type="function" name="gst_pad_event_default ()" link="GstPad.html#gst-pad-event-default"/>
     <keyword type="function" name="gst_pad_query ()" link="GstPad.html#gst-pad-query"/>
@@ -1015,16 +1039,18 @@
     <keyword type="function" name="gst_pad_query_position ()" link="GstPad.html#gst-pad-query-position"/>
     <keyword type="function" name="gst_pad_query_duration ()" link="GstPad.html#gst-pad-query-duration"/>
     <keyword type="function" name="gst_pad_query_convert ()" link="GstPad.html#gst-pad-query-convert"/>
-    <keyword type="function" name="gst_pad_query_peer_position ()" link="GstPad.html#gst-pad-query-peer-position"/>
-    <keyword type="function" name="gst_pad_query_peer_duration ()" link="GstPad.html#gst-pad-query-peer-duration"/>
-    <keyword type="function" name="gst_pad_query_peer_convert ()" link="GstPad.html#gst-pad-query-peer-convert"/>
-    <keyword type="function" name="gst_pad_set_query_function ()" link="GstPad.html#gst-pad-set-query-function"/>
+    <keyword type="function" name="gst_pad_query_accept_caps ()" link="GstPad.html#gst-pad-query-accept-caps"/>
+    <keyword type="function" name="gst_pad_query_caps ()" link="GstPad.html#gst-pad-query-caps"/>
+    <keyword type="function" name="gst_pad_peer_query_position ()" link="GstPad.html#gst-pad-peer-query-position"/>
+    <keyword type="function" name="gst_pad_peer_query_duration ()" link="GstPad.html#gst-pad-peer-query-duration"/>
+    <keyword type="function" name="gst_pad_peer_query_convert ()" link="GstPad.html#gst-pad-peer-query-convert"/>
+    <keyword type="function" name="gst_pad_peer_query_accept_caps ()" link="GstPad.html#gst-pad-peer-query-accept-caps"/>
+    <keyword type="function" name="gst_pad_peer_query_caps ()" link="GstPad.html#gst-pad-peer-query-caps"/>
+    <keyword type="macro" name="gst_pad_set_query_function()" link="GstPad.html#gst-pad-set-query-function"/>
+    <keyword type="function" name="gst_pad_set_query_function_full ()" link="GstPad.html#gst-pad-set-query-function-full"/>
     <keyword type="function" name="GstPadQueryFunction ()" link="GstPad.html#GstPadQueryFunction"/>
-    <keyword type="function" name="gst_pad_set_query_type_function ()" link="GstPad.html#gst-pad-set-query-type-function"/>
-    <keyword type="function" name="GstPadQueryTypeFunction ()" link="GstPad.html#GstPadQueryTypeFunction"/>
-    <keyword type="function" name="gst_pad_get_query_types ()" link="GstPad.html#gst-pad-get-query-types"/>
-    <keyword type="function" name="gst_pad_get_query_types_default ()" link="GstPad.html#gst-pad-get-query-types-default"/>
-    <keyword type="function" name="gst_pad_set_iterate_internal_links_function ()" link="GstPad.html#gst-pad-set-iterate-internal-links-function" since="0.10.21"/>
+    <keyword type="macro" name="gst_pad_set_iterate_internal_links_function()" link="GstPad.html#gst-pad-set-iterate-internal-links-function"/>
+    <keyword type="function" name="gst_pad_set_iterate_internal_links_function_full ()" link="GstPad.html#gst-pad-set-iterate-internal-links-function-full" since="0.10.21"/>
     <keyword type="function" name="GstPadIterIntLinkFunction ()" link="GstPad.html#GstPadIterIntLinkFunction"/>
     <keyword type="function" name="gst_pad_iterate_internal_links ()" link="GstPad.html#gst-pad-iterate-internal-links" since="0.10.21"/>
     <keyword type="function" name="gst_pad_iterate_internal_links_default ()" link="GstPad.html#gst-pad-iterate-internal-links-default" since="0.10.21"/>
@@ -1040,10 +1066,8 @@
     <keyword type="function" name="gst_pad_set_active ()" link="GstPad.html#gst-pad-set-active"/>
     <keyword type="macro" name="GST_PAD_GET_STREAM_LOCK()" link="GstPad.html#GST-PAD-GET-STREAM-LOCK:CAPS"/>
     <keyword type="macro" name="GST_PAD_STREAM_LOCK()" link="GstPad.html#GST-PAD-STREAM-LOCK:CAPS"/>
-    <keyword type="macro" name="GST_PAD_STREAM_LOCK_FULL()" link="GstPad.html#GST-PAD-STREAM-LOCK-FULL:CAPS"/>
     <keyword type="macro" name="GST_PAD_STREAM_TRYLOCK()" link="GstPad.html#GST-PAD-STREAM-TRYLOCK:CAPS"/>
     <keyword type="macro" name="GST_PAD_STREAM_UNLOCK()" link="GstPad.html#GST-PAD-STREAM-UNLOCK:CAPS"/>
-    <keyword type="macro" name="GST_PAD_STREAM_UNLOCK_FULL()" link="GstPad.html#GST-PAD-STREAM-UNLOCK-FULL:CAPS"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="GstPad.html#GstPad--caps"/>
     <keyword type="property" name="The &quot;direction&quot; property" link="GstPad.html#GstPad--direction"/>
     <keyword type="property" name="The &quot;template&quot; property" link="GstPad.html#GstPad--template"/>
@@ -1137,10 +1161,8 @@
     <keyword type="function" name="gst_plugin_add_dependency ()" link="GstPlugin.html#gst-plugin-add-dependency" since="0.10.22"/>
     <keyword type="function" name="gst_plugin_add_dependency_simple ()" link="GstPlugin.html#gst-plugin-add-dependency-simple" since="0.10.22"/>
     <keyword type="struct" name="struct GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
-    <keyword type="struct" name="GstTypeNameData" link="GstPluginFeature.html#GstTypeNameData"/>
     <keyword type="function" name="GstPluginFeatureFilter ()" link="GstPluginFeature.html#GstPluginFeatureFilter"/>
     <keyword type="enum" name="enum GstRank" link="GstPluginFeature.html#GstRank"/>
-    <keyword type="function" name="gst_plugin_feature_type_name_filter ()" link="GstPluginFeature.html#gst-plugin-feature-type-name-filter"/>
     <keyword type="function" name="gst_plugin_feature_set_rank ()" link="GstPluginFeature.html#gst-plugin-feature-set-rank"/>
     <keyword type="macro" name="gst_plugin_feature_set_name()" link="GstPluginFeature.html#gst-plugin-feature-set-name"/>
     <keyword type="function" name="gst_plugin_feature_get_rank ()" link="GstPluginFeature.html#gst-plugin-feature-get-rank"/>
@@ -1184,23 +1206,27 @@
     <keyword type="function" name="gst_preset_delete_preset ()" link="GstPreset.html#gst-preset-delete-preset" since="0.10.20"/>
     <keyword type="function" name="gst_preset_set_meta ()" link="GstPreset.html#gst-preset-set-meta" since="0.10.20"/>
     <keyword type="function" name="gst_preset_get_meta ()" link="GstPreset.html#gst-preset-get-meta" since="0.10.20"/>
+    <keyword type="function" name="gst_preset_set_app_dir ()" link="GstPreset.html#gst-preset-set-app-dir" since="0.10.36"/>
+    <keyword type="function" name="gst_preset_get_app_dir ()" link="GstPreset.html#gst-preset-get-app-dir" since="0.10.36"/>
     <keyword type="struct" name="struct GstQuery" link="gstreamer-GstQuery.html#GstQuery"/>
+    <keyword type="enum" name="enum GstQueryTypeFlags" link="gstreamer-GstQuery.html#GstQueryTypeFlags"/>
+    <keyword type="macro" name="GST_QUERY_TYPE_BOTH" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-BOTH:CAPS"/>
+    <keyword type="macro" name="GST_QUERY_MAKE_TYPE()" link="gstreamer-GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS"/>
     <keyword type="enum" name="enum GstQueryType" link="gstreamer-GstQuery.html#GstQueryType"/>
+    <keyword type="macro" name="GST_QUERY_TYPE()" link="gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS"/>
     <keyword type="macro" name="GST_QUERY_TYPE_NAME()" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS" since="0.10.4"/>
-    <keyword type="struct" name="struct GstQueryTypeDefinition" link="gstreamer-GstQuery.html#GstQueryTypeDefinition"/>
+    <keyword type="macro" name="GST_QUERY_IS_UPSTREAM()" link="gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_QUERY_IS_DOWNSTREAM()" link="gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS"/>
+    <keyword type="macro" name="GST_QUERY_IS_SERIALIZED()" link="gstreamer-GstQuery.html#GST-QUERY-IS-SERIALIZED:CAPS"/>
+    <keyword type="function" name="gst_query_type_get_flags ()" link="gstreamer-GstQuery.html#gst-query-type-get-flags"/>
     <keyword type="function" name="gst_query_type_get_name ()" link="gstreamer-GstQuery.html#gst-query-type-get-name"/>
     <keyword type="function" name="gst_query_type_to_quark ()" link="gstreamer-GstQuery.html#gst-query-type-to-quark"/>
-    <keyword type="function" name="gst_query_type_register ()" link="gstreamer-GstQuery.html#gst-query-type-register"/>
-    <keyword type="function" name="gst_query_type_get_by_nick ()" link="gstreamer-GstQuery.html#gst-query-type-get-by-nick"/>
-    <keyword type="function" name="gst_query_types_contains ()" link="gstreamer-GstQuery.html#gst-query-types-contains"/>
-    <keyword type="function" name="gst_query_type_get_details ()" link="gstreamer-GstQuery.html#gst-query-type-get-details"/>
-    <keyword type="function" name="gst_query_type_iterate_definitions ()" link="gstreamer-GstQuery.html#gst-query-type-iterate-definitions"/>
     <keyword type="function" name="gst_query_ref ()" link="gstreamer-GstQuery.html#gst-query-ref"/>
     <keyword type="function" name="gst_query_unref ()" link="gstreamer-GstQuery.html#gst-query-unref"/>
     <keyword type="function" name="gst_query_copy ()" link="gstreamer-GstQuery.html#gst-query-copy"/>
     <keyword type="macro" name="gst_query_make_writable()" link="gstreamer-GstQuery.html#gst-query-make-writable"/>
     <keyword type="macro" name="gst_query_is_writable()" link="gstreamer-GstQuery.html#gst-query-is-writable"/>
-    <keyword type="macro" name="gst_query_replace()" link="gstreamer-GstQuery.html#gst-query-replace"/>
+    <keyword type="function" name="gst_query_replace ()" link="gstreamer-GstQuery.html#gst-query-replace"/>
     <keyword type="function" name="gst_query_writable_structure ()" link="gstreamer-GstQuery.html#gst-query-writable-structure"/>
     <keyword type="function" name="gst_query_new_custom ()" link="gstreamer-GstQuery.html#gst-query-new-custom"/>
     <keyword type="function" name="gst_query_get_structure ()" link="gstreamer-GstQuery.html#gst-query-get-structure"/>
@@ -1227,6 +1253,15 @@
     <keyword type="function" name="gst_query_new_segment ()" link="gstreamer-GstQuery.html#gst-query-new-segment"/>
     <keyword type="function" name="gst_query_set_segment ()" link="gstreamer-GstQuery.html#gst-query-set-segment"/>
     <keyword type="function" name="gst_query_parse_segment ()" link="gstreamer-GstQuery.html#gst-query-parse-segment"/>
+    <keyword type="function" name="gst_query_new_caps ()" link="gstreamer-GstQuery.html#gst-query-new-caps"/>
+    <keyword type="function" name="gst_query_parse_caps ()" link="gstreamer-GstQuery.html#gst-query-parse-caps"/>
+    <keyword type="function" name="gst_query_set_caps_result ()" link="gstreamer-GstQuery.html#gst-query-set-caps-result"/>
+    <keyword type="function" name="gst_query_parse_caps_result ()" link="gstreamer-GstQuery.html#gst-query-parse-caps-result"/>
+    <keyword type="function" name="gst_query_intersect_caps_result ()" link="gstreamer-GstQuery.html#gst-query-intersect-caps-result"/>
+    <keyword type="function" name="gst_query_new_accept_caps ()" link="gstreamer-GstQuery.html#gst-query-new-accept-caps"/>
+    <keyword type="function" name="gst_query_parse_accept_caps ()" link="gstreamer-GstQuery.html#gst-query-parse-accept-caps"/>
+    <keyword type="function" name="gst_query_set_accept_caps_result ()" link="gstreamer-GstQuery.html#gst-query-set-accept-caps-result"/>
+    <keyword type="function" name="gst_query_parse_accept_caps_result ()" link="gstreamer-GstQuery.html#gst-query-parse-accept-caps-result"/>
     <keyword type="enum" name="enum GstBufferingMode" link="gstreamer-GstQuery.html#GstBufferingMode"/>
     <keyword type="function" name="gst_query_new_buffering ()" link="gstreamer-GstQuery.html#gst-query-new-buffering" since="0.10.20"/>
     <keyword type="function" name="gst_query_set_buffering_percent ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-percent" since="0.10.20"/>
@@ -1243,20 +1278,33 @@
     <keyword type="function" name="gst_query_set_uri ()" link="gstreamer-GstQuery.html#gst-query-set-uri" since="0.10.22"/>
     <keyword type="function" name="gst_query_new_allocation ()" link="gstreamer-GstQuery.html#gst-query-new-allocation"/>
     <keyword type="function" name="gst_query_parse_allocation ()" link="gstreamer-GstQuery.html#gst-query-parse-allocation"/>
-    <keyword type="function" name="gst_query_parse_allocation_params ()" link="gstreamer-GstQuery.html#gst-query-parse-allocation-params"/>
-    <keyword type="function" name="gst_query_parse_nth_allocation_memory ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-memory"/>
-    <keyword type="function" name="gst_query_parse_nth_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta"/>
-    <keyword type="function" name="gst_query_set_allocation_params ()" link="gstreamer-GstQuery.html#gst-query-set-allocation-params"/>
-    <keyword type="function" name="gst_query_add_allocation_memory ()" link="gstreamer-GstQuery.html#gst-query-add-allocation-memory"/>
+    <keyword type="function" name="gst_query_add_allocation_pool ()" link="gstreamer-GstQuery.html#gst-query-add-allocation-pool"/>
+    <keyword type="function" name="gst_query_get_n_allocation_pools ()" link="gstreamer-GstQuery.html#gst-query-get-n-allocation-pools"/>
+    <keyword type="function" name="gst_query_parse_nth_allocation_pool ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-pool"/>
+    <keyword type="function" name="gst_query_set_nth_allocation_pool ()" link="gstreamer-GstQuery.html#gst-query-set-nth-allocation-pool"/>
+    <keyword type="function" name="gst_query_add_allocation_param ()" link="gstreamer-GstQuery.html#gst-query-add-allocation-param"/>
+    <keyword type="function" name="gst_query_get_n_allocation_params ()" link="gstreamer-GstQuery.html#gst-query-get-n-allocation-params"/>
+    <keyword type="function" name="gst_query_parse_nth_allocation_param ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-param"/>
+    <keyword type="function" name="gst_query_set_nth_allocation_param ()" link="gstreamer-GstQuery.html#gst-query-set-nth-allocation-param"/>
     <keyword type="function" name="gst_query_add_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-add-allocation-meta"/>
-    <keyword type="function" name="gst_query_has_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-has-allocation-meta"/>
-    <keyword type="function" name="gst_query_get_n_allocation_memories ()" link="gstreamer-GstQuery.html#gst-query-get-n-allocation-memories"/>
     <keyword type="function" name="gst_query_get_n_allocation_metas ()" link="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas"/>
+    <keyword type="function" name="gst_query_parse_nth_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta"/>
+    <keyword type="function" name="gst_query_remove_nth_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta"/>
+    <keyword type="function" name="gst_query_has_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-has-allocation-meta"/>
+    <keyword type="enum" name="enum GstSchedulingFlags" link="gstreamer-GstQuery.html#GstSchedulingFlags"/>
     <keyword type="function" name="gst_query_new_scheduling ()" link="gstreamer-GstQuery.html#gst-query-new-scheduling"/>
     <keyword type="function" name="gst_query_parse_scheduling ()" link="gstreamer-GstQuery.html#gst-query-parse-scheduling"/>
     <keyword type="function" name="gst_query_set_scheduling ()" link="gstreamer-GstQuery.html#gst-query-set-scheduling"/>
+    <keyword type="function" name="gst_query_add_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-add-scheduling-mode"/>
+    <keyword type="function" name="gst_query_get_n_scheduling_modes ()" link="gstreamer-GstQuery.html#gst-query-get-n-scheduling-modes"/>
+    <keyword type="function" name="gst_query_parse_nth_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode"/>
+    <keyword type="function" name="gst_query_has_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-has-scheduling-mode"/>
+    <keyword type="function" name="gst_query_new_drain ()" link="gstreamer-GstQuery.html#gst-query-new-drain"/>
+    <keyword type="function" name="gst_query_new_toc ()" link="gstreamer-GstQuery.html#gst-query-new-toc"/>
+    <keyword type="function" name="gst_query_parse_toc ()" link="gstreamer-GstQuery.html#gst-query-parse-toc"/>
+    <keyword type="function" name="gst_query_set_toc ()" link="gstreamer-GstQuery.html#gst-query-set-toc"/>
     <keyword type="struct" name="struct GstRegistry" link="GstRegistry.html#GstRegistry-struct"/>
-    <keyword type="function" name="gst_registry_get_default ()" link="GstRegistry.html#gst-registry-get-default"/>
+    <keyword type="function" name="gst_registry_get ()" link="GstRegistry.html#gst-registry-get"/>
     <keyword type="function" name="gst_registry_get_feature_list ()" link="GstRegistry.html#gst-registry-get-feature-list"/>
     <keyword type="function" name="gst_registry_get_feature_list_cookie ()" link="GstRegistry.html#gst-registry-get-feature-list-cookie" since="0.10.26"/>
     <keyword type="function" name="gst_registry_get_feature_list_by_plugin ()" link="GstRegistry.html#gst-registry-get-feature-list-by-plugin"/>
@@ -1274,15 +1322,7 @@
     <keyword type="function" name="gst_registry_lookup ()" link="GstRegistry.html#gst-registry-lookup"/>
     <keyword type="function" name="gst_registry_remove_feature ()" link="GstRegistry.html#gst-registry-remove-feature"/>
     <keyword type="function" name="gst_registry_add_feature ()" link="GstRegistry.html#gst-registry-add-feature"/>
-    <keyword type="function" name="gst_default_registry_check_feature_version ()" link="GstRegistry.html#gst-default-registry-check-feature-version"/>
-    <keyword type="macro" name="gst_default_registry_get_path_list" link="GstRegistry.html#gst-default-registry-get-path-list"/>
-    <keyword type="macro" name="gst_default_registry_add_plugin()" link="GstRegistry.html#gst-default-registry-add-plugin"/>
-    <keyword type="macro" name="gst_default_registry_add_path()" link="GstRegistry.html#gst-default-registry-add-path"/>
-    <keyword type="macro" name="gst_default_registry_find_plugin()" link="GstRegistry.html#gst-default-registry-find-plugin"/>
-    <keyword type="macro" name="gst_default_registry_find_feature()" link="GstRegistry.html#gst-default-registry-find-feature"/>
-    <keyword type="macro" name="gst_default_registry_get_plugin_list" link="GstRegistry.html#gst-default-registry-get-plugin-list"/>
-    <keyword type="macro" name="gst_default_registry_get_feature_list_cookie" link="GstRegistry.html#gst-default-registry-get-feature-list-cookie" since="0.10.26"/>
-    <keyword type="macro" name="gst_default_registry_feature_filter()" link="GstRegistry.html#gst-default-registry-feature-filter"/>
+    <keyword type="function" name="gst_registry_check_feature_version ()" link="GstRegistry.html#gst-registry-check-feature-version"/>
     <keyword type="signal" name="The &quot;feature-added&quot; signal" link="GstRegistry.html#GstRegistry-feature-added"/>
     <keyword type="signal" name="The &quot;plugin-added&quot; signal" link="GstRegistry.html#GstRegistry-plugin-added"/>
     <keyword type="struct" name="struct GstSegment" link="gstreamer-GstSegment.html#GstSegment"/>
@@ -1301,11 +1341,11 @@
     <keyword type="struct" name="struct GstStructure" link="gstreamer-GstStructure.html#GstStructure"/>
     <keyword type="function" name="GstStructureForeachFunc ()" link="gstreamer-GstStructure.html#GstStructureForeachFunc"/>
     <keyword type="function" name="GstStructureMapFunc ()" link="gstreamer-GstStructure.html#GstStructureMapFunc"/>
-    <keyword type="function" name="gst_structure_empty_new ()" link="gstreamer-GstStructure.html#gst-structure-empty-new"/>
-    <keyword type="function" name="gst_structure_id_empty_new ()" link="gstreamer-GstStructure.html#gst-structure-id-empty-new"/>
+    <keyword type="function" name="gst_structure_new_empty ()" link="gstreamer-GstStructure.html#gst-structure-new-empty"/>
+    <keyword type="function" name="gst_structure_new_id_empty ()" link="gstreamer-GstStructure.html#gst-structure-new-id-empty"/>
     <keyword type="function" name="gst_structure_new ()" link="gstreamer-GstStructure.html#gst-structure-new"/>
     <keyword type="function" name="gst_structure_new_valist ()" link="gstreamer-GstStructure.html#gst-structure-new-valist"/>
-    <keyword type="function" name="gst_structure_id_new ()" link="gstreamer-GstStructure.html#gst-structure-id-new" since="0.10.24"/>
+    <keyword type="function" name="gst_structure_new_id ()" link="gstreamer-GstStructure.html#gst-structure-new-id" since="0.10.24"/>
     <keyword type="function" name="gst_structure_copy ()" link="gstreamer-GstStructure.html#gst-structure-copy"/>
     <keyword type="function" name="gst_structure_free ()" link="gstreamer-GstStructure.html#gst-structure-free"/>
     <keyword type="function" name="gst_structure_get_name ()" link="gstreamer-GstStructure.html#gst-structure-get-name"/>
@@ -1335,10 +1375,10 @@
     <keyword type="function" name="gst_structure_n_fields ()" link="gstreamer-GstStructure.html#gst-structure-n-fields"/>
     <keyword type="function" name="gst_structure_has_field ()" link="gstreamer-GstStructure.html#gst-structure-has-field"/>
     <keyword type="function" name="gst_structure_has_field_typed ()" link="gstreamer-GstStructure.html#gst-structure-has-field-typed"/>
-    <keyword type="function" name="gst_structure_is_equal ()" link="gstreamer-GstStructure.html#gst-structure-is-equal" since="0.10.35"/>
-    <keyword type="function" name="gst_structure_is_subset ()" link="gstreamer-GstStructure.html#gst-structure-is-subset" since="0.10.35"/>
-    <keyword type="function" name="gst_structure_can_intersect ()" link="gstreamer-GstStructure.html#gst-structure-can-intersect" since="0.10.35"/>
-    <keyword type="function" name="gst_structure_intersect ()" link="gstreamer-GstStructure.html#gst-structure-intersect" since="0.10.35"/>
+    <keyword type="function" name="gst_structure_is_equal ()" link="gstreamer-GstStructure.html#gst-structure-is-equal" since="0.10.36"/>
+    <keyword type="function" name="gst_structure_is_subset ()" link="gstreamer-GstStructure.html#gst-structure-is-subset" since="0.10.36"/>
+    <keyword type="function" name="gst_structure_can_intersect ()" link="gstreamer-GstStructure.html#gst-structure-can-intersect" since="0.10.36"/>
+    <keyword type="function" name="gst_structure_intersect ()" link="gstreamer-GstStructure.html#gst-structure-intersect" since="0.10.36"/>
     <keyword type="function" name="gst_structure_id_has_field ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field" since="0.10.26"/>
     <keyword type="function" name="gst_structure_id_has_field_typed ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field-typed" since="0.10.26"/>
     <keyword type="function" name="gst_structure_get_boolean ()" link="gstreamer-GstStructure.html#gst-structure-get-boolean"/>
@@ -1367,7 +1407,7 @@
     <keyword type="struct" name="struct GstSystemClock" link="GstSystemClock.html#GstSystemClock-struct"/>
     <keyword type="function" name="gst_system_clock_obtain ()" link="GstSystemClock.html#gst-system-clock-obtain"/>
     <keyword type="property" name="The &quot;clock-type&quot; property" link="GstSystemClock.html#GstSystemClock--clock-type"/>
-    <keyword type="typedef" name="GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
+    <keyword type="struct" name="GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
     <keyword type="enum" name="enum GstTagMergeMode" link="gstreamer-GstTagList.html#GstTagMergeMode"/>
     <keyword type="enum" name="enum GstTagFlag" link="gstreamer-GstTagList.html#GstTagFlag"/>
     <keyword type="function" name="GstTagForeachFunc ()" link="gstreamer-GstTagList.html#GstTagForeachFunc"/>
@@ -1422,6 +1462,7 @@
     <keyword type="macro" name="GST_TAG_ALBUM_PEAK" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS"/>
     <keyword type="macro" name="GST_TAG_REFERENCE_LEVEL" link="gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS" since="0.10.12"/>
     <keyword type="macro" name="GST_TAG_LANGUAGE_CODE" link="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_LANGUAGE_NAME" link="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS" since="0.10.37"/>
     <keyword type="macro" name="GST_TAG_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS" since="0.10.6"/>
     <keyword type="macro" name="GST_TAG_PREVIEW_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS" since="0.10.7"/>
     <keyword type="macro" name="GST_TAG_ATTACHMENT" link="gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS" since="0.10.21"/>
@@ -1460,16 +1501,21 @@
     <keyword type="function" name="gst_tag_get_description ()" link="gstreamer-GstTagList.html#gst-tag-get-description"/>
     <keyword type="function" name="gst_tag_get_flag ()" link="gstreamer-GstTagList.html#gst-tag-get-flag"/>
     <keyword type="function" name="gst_tag_is_fixed ()" link="gstreamer-GstTagList.html#gst-tag-is-fixed"/>
-    <keyword type="function" name="gst_tag_list_new ()" link="gstreamer-GstTagList.html#gst-tag-list-new"/>
-    <keyword type="function" name="gst_tag_list_new_full ()" link="gstreamer-GstTagList.html#gst-tag-list-new-full" since="0.10.24"/>
-    <keyword type="function" name="gst_tag_list_new_full_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-full-valist" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_list_new ()" link="gstreamer-GstTagList.html#gst-tag-list-new" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_list_new_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-new-empty"/>
+    <keyword type="function" name="gst_tag_list_new_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-valist" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string" since="0.10.36"/>
     <keyword type="function" name="gst_is_tag_list ()" link="gstreamer-GstTagList.html#gst-is-tag-list"/>
     <keyword type="function" name="gst_tag_list_is_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-is-empty" since="0.10.11"/>
+    <keyword type="function" name="gst_tag_list_is_equal ()" link="gstreamer-GstTagList.html#gst-tag-list-is-equal" since="0.10.36"/>
     <keyword type="function" name="gst_tag_list_copy ()" link="gstreamer-GstTagList.html#gst-tag-list-copy"/>
     <keyword type="function" name="gst_tag_list_insert ()" link="gstreamer-GstTagList.html#gst-tag-list-insert"/>
     <keyword type="function" name="gst_tag_list_merge ()" link="gstreamer-GstTagList.html#gst-tag-list-merge"/>
     <keyword type="function" name="gst_tag_list_free ()" link="gstreamer-GstTagList.html#gst-tag-list-free"/>
     <keyword type="function" name="gst_tag_list_get_tag_size ()" link="gstreamer-GstTagList.html#gst-tag-list-get-tag-size"/>
+    <keyword type="function" name="gst_tag_list_n_tags ()" link="gstreamer-GstTagList.html#gst-tag-list-n-tags"/>
+    <keyword type="function" name="gst_tag_list_nth_tag_name ()" link="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name"/>
     <keyword type="function" name="gst_tag_list_add ()" link="gstreamer-GstTagList.html#gst-tag-list-add"/>
     <keyword type="function" name="gst_tag_list_add_value ()" link="gstreamer-GstTagList.html#gst-tag-list-add-value" since="0.10.24"/>
     <keyword type="function" name="gst_tag_list_add_values ()" link="gstreamer-GstTagList.html#gst-tag-list-add-values"/>
@@ -1479,20 +1525,12 @@
     <keyword type="function" name="gst_tag_list_foreach ()" link="gstreamer-GstTagList.html#gst-tag-list-foreach"/>
     <keyword type="function" name="gst_tag_list_get_value_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-value-index"/>
     <keyword type="function" name="gst_tag_list_copy_value ()" link="gstreamer-GstTagList.html#gst-tag-list-copy-value"/>
-    <keyword type="function" name="gst_tag_list_get_char ()" link="gstreamer-GstTagList.html#gst-tag-list-get-char"/>
-    <keyword type="function" name="gst_tag_list_get_char_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-char-index"/>
-    <keyword type="function" name="gst_tag_list_get_uchar ()" link="gstreamer-GstTagList.html#gst-tag-list-get-uchar"/>
-    <keyword type="function" name="gst_tag_list_get_uchar_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-uchar-index"/>
     <keyword type="function" name="gst_tag_list_get_boolean ()" link="gstreamer-GstTagList.html#gst-tag-list-get-boolean"/>
     <keyword type="function" name="gst_tag_list_get_boolean_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-boolean-index"/>
     <keyword type="function" name="gst_tag_list_get_int ()" link="gstreamer-GstTagList.html#gst-tag-list-get-int"/>
     <keyword type="function" name="gst_tag_list_get_int_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-int-index"/>
     <keyword type="function" name="gst_tag_list_get_uint ()" link="gstreamer-GstTagList.html#gst-tag-list-get-uint"/>
     <keyword type="function" name="gst_tag_list_get_uint_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-uint-index"/>
-    <keyword type="function" name="gst_tag_list_get_long ()" link="gstreamer-GstTagList.html#gst-tag-list-get-long"/>
-    <keyword type="function" name="gst_tag_list_get_long_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-long-index"/>
-    <keyword type="function" name="gst_tag_list_get_ulong ()" link="gstreamer-GstTagList.html#gst-tag-list-get-ulong"/>
-    <keyword type="function" name="gst_tag_list_get_ulong_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-ulong-index"/>
     <keyword type="function" name="gst_tag_list_get_int64 ()" link="gstreamer-GstTagList.html#gst-tag-list-get-int64"/>
     <keyword type="function" name="gst_tag_list_get_int64_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-int64-index"/>
     <keyword type="function" name="gst_tag_list_get_uint64 ()" link="gstreamer-GstTagList.html#gst-tag-list-get-uint64"/>
@@ -1513,7 +1551,7 @@
     <keyword type="function" name="gst_tag_list_get_buffer ()" link="gstreamer-GstTagList.html#gst-tag-list-get-buffer" since="0.10.23"/>
     <keyword type="function" name="gst_tag_list_get_buffer_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" since="0.10.23"/>
     <keyword type="struct" name="GstTagSetter" link="GstTagSetter.html#GstTagSetter-struct"/>
-    <keyword type="struct" name="struct GstTagSetterIFace" link="GstTagSetter.html#GstTagSetterIFace"/>
+    <keyword type="struct" name="struct GstTagSetterInterface" link="GstTagSetter.html#GstTagSetterInterface"/>
     <keyword type="function" name="gst_tag_setter_reset_tags ()" link="GstTagSetter.html#gst-tag-setter-reset-tags" since="0.10.22"/>
     <keyword type="function" name="gst_tag_setter_merge_tags ()" link="GstTagSetter.html#gst-tag-setter-merge-tags"/>
     <keyword type="function" name="gst_tag_setter_add_tags ()" link="GstTagSetter.html#gst-tag-setter-add-tags"/>
@@ -1533,9 +1571,8 @@
     <keyword type="macro" name="GST_TASK_SIGNAL()" link="GstTask.html#GST-TASK-SIGNAL:CAPS"/>
     <keyword type="macro" name="GST_TASK_STATE()" link="GstTask.html#GST-TASK-STATE:CAPS"/>
     <keyword type="macro" name="GST_TASK_WAIT()" link="GstTask.html#GST-TASK-WAIT:CAPS"/>
-    <keyword type="function" name="gst_task_create ()" link="GstTask.html#gst-task-create"/>
+    <keyword type="function" name="gst_task_new ()" link="GstTask.html#gst-task-new"/>
     <keyword type="function" name="gst_task_set_lock ()" link="GstTask.html#gst-task-set-lock"/>
-    <keyword type="function" name="gst_task_set_priority ()" link="GstTask.html#gst-task-set-priority" since="0.10.24"/>
     <keyword type="function" name="gst_task_set_pool ()" link="GstTask.html#gst-task-set-pool" since="0.10.24"/>
     <keyword type="function" name="gst_task_get_pool ()" link="GstTask.html#gst-task-get-pool" since="0.10.24"/>
     <keyword type="struct" name="GstTaskThreadCallbacks" link="GstTask.html#GstTaskThreadCallbacks" since="0.10.24"/>
@@ -1555,6 +1592,28 @@
     <keyword type="function" name="gst_task_pool_push ()" link="GstTaskPool.html#gst-task-pool-push" since="0.10.24"/>
     <keyword type="function" name="gst_task_pool_join ()" link="GstTaskPool.html#gst-task-pool-join" since="0.10.24"/>
     <keyword type="function" name="gst_task_pool_cleanup ()" link="GstTaskPool.html#gst-task-pool-cleanup" since="0.10.24"/>
+    <keyword type="struct" name="struct GstToc" link="gstreamer-GstToc.html#GstToc"/>
+    <keyword type="struct" name="struct GstTocEntry" link="gstreamer-GstToc.html#GstTocEntry"/>
+    <keyword type="enum" name="enum GstTocEntryType" link="gstreamer-GstToc.html#GstTocEntryType"/>
+    <keyword type="function" name="gst_toc_entry_new ()" link="gstreamer-GstToc.html#gst-toc-entry-new" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_new_with_pad ()" link="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_free ()" link="gstreamer-GstToc.html#gst-toc-entry-free" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_new ()" link="gstreamer-GstToc.html#gst-toc-new" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_free ()" link="gstreamer-GstToc.html#gst-toc-free" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_copy ()" link="gstreamer-GstToc.html#gst-toc-entry-copy" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_copy ()" link="gstreamer-GstToc.html#gst-toc-copy" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_find_entry ()" link="gstreamer-GstToc.html#gst-toc-find-entry" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_get_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_entry_set_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" since="0.10.37"/>
+    <keyword type="struct" name="GstTocSetter" link="gstreamer-GstTocSetter.html#GstTocSetter"/>
+    <keyword type="struct" name="struct GstTocSetterIFace" link="gstreamer-GstTocSetter.html#GstTocSetterIFace"/>
+    <keyword type="function" name="gst_toc_setter_get_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_get_toc_copy ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_reset_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_set_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_get_toc_entry ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_get_toc_entry_copy ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" since="0.10.37"/>
+    <keyword type="function" name="gst_toc_setter_add_toc_entry ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" since="0.10.37"/>
     <keyword type="struct" name="struct GstTypeFind" link="gstreamer-GstTypeFind.html#GstTypeFind"/>
     <keyword type="function" name="GstTypeFindFunction ()" link="gstreamer-GstTypeFind.html#GstTypeFindFunction"/>
     <keyword type="enum" name="enum GstTypeFindProbability" link="gstreamer-GstTypeFind.html#GstTypeFindProbability"/>
@@ -1571,6 +1630,8 @@
     <keyword type="struct" name="GstURIHandler" link="gstreamer-GstUriHandler.html#GstURIHandler-struct"/>
     <keyword type="struct" name="struct GstURIHandlerInterface" link="gstreamer-GstUriHandler.html#GstURIHandlerInterface"/>
     <keyword type="enum" name="enum GstURIType" link="gstreamer-GstUriHandler.html#GstURIType"/>
+    <keyword type="enum" name="enum GstURIError" link="gstreamer-GstUriHandler.html#GstURIError"/>
+    <keyword type="function" name="gst_uri_error_quark ()" link="gstreamer-GstUriHandler.html#gst-uri-error-quark"/>
     <keyword type="macro" name="GST_URI_TYPE_IS_VALID()" link="gstreamer-GstUriHandler.html#GST-URI-TYPE-IS-VALID:CAPS"/>
     <keyword type="function" name="gst_uri_protocol_is_valid ()" link="gstreamer-GstUriHandler.html#gst-uri-protocol-is-valid"/>
     <keyword type="function" name="gst_uri_protocol_is_supported ()" link="gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported" since="0.10.13"/>
@@ -1585,8 +1646,6 @@
     <keyword type="function" name="gst_uri_handler_get_protocols ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols"/>
     <keyword type="function" name="gst_uri_handler_get_uri ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri"/>
     <keyword type="function" name="gst_uri_handler_set_uri ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-set-uri"/>
-    <keyword type="function" name="gst_uri_handler_new_uri ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-new-uri"/>
-    <keyword type="signal" name="The &quot;new-uri&quot; signal" link="gstreamer-GstUriHandler.html#GstURIHandler-new-uri"/>
     <keyword type="macro" name="GST_CALL_PARENT()" link="gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS"/>
     <keyword type="macro" name="GST_CALL_PARENT_WITH_DEFAULT()" link="gstreamer-GstUtils.html#GST-CALL-PARENT-WITH-DEFAULT:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT8()" link="gstreamer-GstUtils.html#GST-READ-UINT8:CAPS"/>
@@ -1643,7 +1702,6 @@
     <keyword type="function" name="gst_print_pad_caps ()" link="gstreamer-GstUtils.html#gst-print-pad-caps"/>
     <keyword type="macro" name="gst_guint64_to_gdouble()" link="gstreamer-GstUtils.html#gst-guint64-to-gdouble"/>
     <keyword type="macro" name="gst_gdouble_to_guint64()" link="gstreamer-GstUtils.html#gst-gdouble-to-guint64"/>
-    <keyword type="function" name="gst_type_register_static_full ()" link="gstreamer-GstUtils.html#gst-type-register-static-full" since="0.10.14"/>
     <keyword type="function" name="gst_util_dump_mem ()" link="gstreamer-GstUtils.html#gst-util-dump-mem"/>
     <keyword type="function" name="gst_util_uint64_scale ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale"/>
     <keyword type="function" name="gst_util_uint64_scale_round ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-round"/>
@@ -1652,6 +1710,7 @@
     <keyword type="function" name="gst_util_uint64_scale_int_round ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round"/>
     <keyword type="function" name="gst_util_uint64_scale_int_ceil ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil"/>
     <keyword type="function" name="gst_util_greatest_common_divisor ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor" since="0.10.26"/>
+    <keyword type="function" name="gst_util_greatest_common_divisor_int64 ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64" since="0.11.0"/>
     <keyword type="function" name="gst_util_fraction_to_double ()" link="gstreamer-GstUtils.html#gst-util-fraction-to-double" since="0.10.26"/>
     <keyword type="function" name="gst_util_double_to_fraction ()" link="gstreamer-GstUtils.html#gst-util-double-to-fraction" since="0.10.26"/>
     <keyword type="function" name="gst_util_fraction_multiply ()" link="gstreamer-GstUtils.html#gst-util-fraction-multiply" since="0.10.26"/>
@@ -1673,11 +1732,19 @@
     <keyword type="function" name="gst_value_set_int_range ()" link="gstreamer-GstValue.html#gst-value-set-int-range"/>
     <keyword type="function" name="gst_value_get_int_range_min ()" link="gstreamer-GstValue.html#gst-value-get-int-range-min"/>
     <keyword type="function" name="gst_value_get_int_range_max ()" link="gstreamer-GstValue.html#gst-value-get-int-range-max"/>
+    <keyword type="function" name="gst_value_set_int_range_step ()" link="gstreamer-GstValue.html#gst-value-set-int-range-step"/>
+    <keyword type="function" name="gst_value_get_int_range_step ()" link="gstreamer-GstValue.html#gst-value-get-int-range-step"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_BITMASK()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-BITMASK:CAPS"/>
+    <keyword type="macro" name="GST_TYPE_BITMASK" link="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS"/>
+    <keyword type="function" name="gst_value_set_bitmask ()" link="gstreamer-GstValue.html#gst-value-set-bitmask"/>
+    <keyword type="function" name="gst_value_get_bitmask ()" link="gstreamer-GstValue.html#gst-value-get-bitmask"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_INT64_RANGE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_TYPE_INT64_RANGE" link="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS" since="0.10.31"/>
     <keyword type="function" name="gst_value_set_int64_range ()" link="gstreamer-GstValue.html#gst-value-set-int64-range" since="0.10.31"/>
     <keyword type="function" name="gst_value_get_int64_range_min ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-min" since="0.10.31"/>
     <keyword type="function" name="gst_value_get_int64_range_max ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-max" since="0.10.31"/>
+    <keyword type="function" name="gst_value_set_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-set-int64-range-step" since="0.11.0"/>
+    <keyword type="function" name="gst_value_get_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-step" since="0.11.0"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_DOUBLE_RANGE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS"/>
     <keyword type="macro" name="GST_TYPE_DOUBLE_RANGE" link="gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS"/>
     <keyword type="function" name="gst_value_set_double_range ()" link="gstreamer-GstValue.html#gst-value-set-double-range"/>
@@ -1706,10 +1773,6 @@
     <keyword type="function" name="gst_value_get_fraction_range_min ()" link="gstreamer-GstValue.html#gst-value-get-fraction-range-min"/>
     <keyword type="function" name="gst_value_get_fraction_range_max ()" link="gstreamer-GstValue.html#gst-value-get-fraction-range-max"/>
     <keyword type="function" name="gst_value_set_fraction_range_full ()" link="gstreamer-GstValue.html#gst-value-set-fraction-range-full"/>
-    <keyword type="macro" name="GST_VALUE_HOLDS_DATE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE:CAPS"/>
-    <keyword type="macro" name="GST_TYPE_DATE" link="gstreamer-GstValue.html#GST-TYPE-DATE:CAPS"/>
-    <keyword type="function" name="gst_value_set_date ()" link="gstreamer-GstValue.html#gst-value-set-date"/>
-    <keyword type="function" name="gst_value_get_date ()" link="gstreamer-GstValue.html#gst-value-get-date"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_DATE_TIME()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS" since="0.10.31"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_CAPS()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS"/>
     <keyword type="function" name="gst_value_set_caps ()" link="gstreamer-GstValue.html#gst-value-set-caps"/>
@@ -1721,6 +1784,10 @@
     <keyword type="macro" name="gst_value_get_buffer()" link="gstreamer-GstValue.html#gst-value-get-buffer"/>
     <keyword type="macro" name="gst_value_set_buffer()" link="gstreamer-GstValue.html#gst-value-set-buffer"/>
     <keyword type="macro" name="gst_value_take_buffer()" link="gstreamer-GstValue.html#gst-value-take-buffer"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_SAMPLE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-SAMPLE:CAPS"/>
+    <keyword type="macro" name="gst_value_get_sample()" link="gstreamer-GstValue.html#gst-value-get-sample"/>
+    <keyword type="macro" name="gst_value_set_sample()" link="gstreamer-GstValue.html#gst-value-set-sample"/>
+    <keyword type="macro" name="gst_value_take_sample()" link="gstreamer-GstValue.html#gst-value-take-sample"/>
     <keyword type="macro" name="GST_VALUE_LESS_THAN" link="gstreamer-GstValue.html#GST-VALUE-LESS-THAN:CAPS"/>
     <keyword type="macro" name="GST_VALUE_EQUAL" link="gstreamer-GstValue.html#GST-VALUE-EQUAL:CAPS"/>
     <keyword type="macro" name="GST_VALUE_GREATER_THAN" link="gstreamer-GstValue.html#GST-VALUE-GREATER-THAN:CAPS"/>
@@ -1728,9 +1795,6 @@
     <keyword type="function" name="GstValueCompareFunc ()" link="gstreamer-GstValue.html#GstValueCompareFunc"/>
     <keyword type="function" name="GstValueSerializeFunc ()" link="gstreamer-GstValue.html#GstValueSerializeFunc"/>
     <keyword type="function" name="GstValueDeserializeFunc ()" link="gstreamer-GstValue.html#GstValueDeserializeFunc"/>
-    <keyword type="function" name="GstValueUnionFunc ()" link="gstreamer-GstValue.html#GstValueUnionFunc"/>
-    <keyword type="function" name="GstValueIntersectFunc ()" link="gstreamer-GstValue.html#GstValueIntersectFunc"/>
-    <keyword type="function" name="GstValueSubtractFunc ()" link="gstreamer-GstValue.html#GstValueSubtractFunc"/>
     <keyword type="struct" name="struct GstValueTable" link="gstreamer-GstValue.html#GstValueTable"/>
     <keyword type="function" name="gst_value_is_fixed ()" link="gstreamer-GstValue.html#gst-value-is-fixed"/>
     <keyword type="function" name="gst_value_register ()" link="gstreamer-GstValue.html#gst-value-register"/>
@@ -1741,13 +1805,11 @@
     <keyword type="function" name="gst_value_can_compare ()" link="gstreamer-GstValue.html#gst-value-can-compare"/>
     <keyword type="function" name="gst_value_union ()" link="gstreamer-GstValue.html#gst-value-union"/>
     <keyword type="function" name="gst_value_can_union ()" link="gstreamer-GstValue.html#gst-value-can-union"/>
-    <keyword type="function" name="gst_value_register_union_func ()" link="gstreamer-GstValue.html#gst-value-register-union-func"/>
     <keyword type="function" name="gst_value_subtract ()" link="gstreamer-GstValue.html#gst-value-subtract"/>
     <keyword type="function" name="gst_value_can_subtract ()" link="gstreamer-GstValue.html#gst-value-can-subtract"/>
-    <keyword type="function" name="gst_value_register_subtract_func ()" link="gstreamer-GstValue.html#gst-value-register-subtract-func"/>
     <keyword type="function" name="gst_value_intersect ()" link="gstreamer-GstValue.html#gst-value-intersect"/>
     <keyword type="function" name="gst_value_can_intersect ()" link="gstreamer-GstValue.html#gst-value-can-intersect"/>
-    <keyword type="function" name="gst_value_register_intersect_func ()" link="gstreamer-GstValue.html#gst-value-register-intersect-func"/>
+    <keyword type="function" name="gst_value_is_subset ()" link="gstreamer-GstValue.html#gst-value-is-subset"/>
     <keyword type="function" name="gst_value_array_append_value ()" link="gstreamer-GstValue.html#gst-value-array-append-value"/>
     <keyword type="function" name="gst_value_array_get_size ()" link="gstreamer-GstValue.html#gst-value-array-get-size"/>
     <keyword type="function" name="gst_value_array_get_value ()" link="gstreamer-GstValue.html#gst-value-array-get-value"/>
@@ -1839,31 +1901,8 @@
     <keyword type="function" name="gst_debug_print_stack_trace ()" link="gstreamer-GstInfo.html#gst-debug-print-stack-trace"/>
     <keyword type="macro" name="GST_TIME_FORMAT" link="gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS"/>
     <keyword type="macro" name="GST_TIME_ARGS()" link="gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS"/>
-    <keyword type="struct" name="struct GstTrace" link="gstreamer-GstTrace.html#GstTrace"/>
-    <keyword type="function" name="gst_trace_new ()" link="gstreamer-GstTrace.html#gst-trace-new"/>
-    <keyword type="function" name="gst_trace_destroy ()" link="gstreamer-GstTrace.html#gst-trace-destroy"/>
-    <keyword type="function" name="gst_trace_flush ()" link="gstreamer-GstTrace.html#gst-trace-flush"/>
-    <keyword type="function" name="gst_trace_text_flush ()" link="gstreamer-GstTrace.html#gst-trace-text-flush"/>
-    <keyword type="macro" name="gst_trace_add_entry()" link="gstreamer-GstTrace.html#gst-trace-add-entry"/>
-    <keyword type="macro" name="gst_trace_get_size()" link="gstreamer-GstTrace.html#gst-trace-get-size"/>
-    <keyword type="macro" name="gst_trace_get_offset()" link="gstreamer-GstTrace.html#gst-trace-get-offset"/>
-    <keyword type="macro" name="gst_trace_get_remaining()" link="gstreamer-GstTrace.html#gst-trace-get-remaining"/>
-    <keyword type="function" name="gst_trace_set_default ()" link="gstreamer-GstTrace.html#gst-trace-set-default"/>
-    <keyword type="function" name="gst_trace_read_tsc ()" link="gstreamer-GstTrace.html#gst-trace-read-tsc"/>
-    <keyword type="enum" name="enum GstAllocTraceFlags" link="gstreamer-GstTrace.html#GstAllocTraceFlags"/>
-    <keyword type="struct" name="struct GstAllocTrace" link="gstreamer-GstTrace.html#GstAllocTrace"/>
-    <keyword type="function" name="gst_alloc_trace_available ()" link="gstreamer-GstTrace.html#gst-alloc-trace-available"/>
-    <keyword type="function" name="gst_alloc_trace_list ()" link="gstreamer-GstTrace.html#gst-alloc-trace-list"/>
-    <keyword type="function" name="gst_alloc_trace_live_all ()" link="gstreamer-GstTrace.html#gst-alloc-trace-live-all"/>
-    <keyword type="function" name="gst_alloc_trace_print_all ()" link="gstreamer-GstTrace.html#gst-alloc-trace-print-all"/>
-    <keyword type="function" name="gst_alloc_trace_set_flags_all ()" link="gstreamer-GstTrace.html#gst-alloc-trace-set-flags-all"/>
-    <keyword type="function" name="gst_alloc_trace_get ()" link="gstreamer-GstTrace.html#gst-alloc-trace-get"/>
-    <keyword type="function" name="gst_alloc_trace_print ()" link="gstreamer-GstTrace.html#gst-alloc-trace-print"/>
-    <keyword type="function" name="gst_alloc_trace_print_live ()" link="gstreamer-GstTrace.html#gst-alloc-trace-print-live"/>
-    <keyword type="function" name="gst_alloc_trace_set_flags ()" link="gstreamer-GstTrace.html#gst-alloc-trace-set-flags"/>
-    <keyword type="macro" name="gst_alloc_trace_register()" link="gstreamer-GstTrace.html#gst-alloc-trace-register"/>
-    <keyword type="macro" name="gst_alloc_trace_new()" link="gstreamer-GstTrace.html#gst-alloc-trace-new"/>
-    <keyword type="macro" name="gst_alloc_trace_free()" link="gstreamer-GstTrace.html#gst-alloc-trace-free"/>
+    <keyword type="function" name="gst_debug_bin_to_dot_file ()" link="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file"/>
+    <keyword type="function" name="gst_debug_bin_to_dot_file_with_ts ()" link="gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts"/>
     <keyword type="constant" name="GST_BIN_FLAG_LAST" link="GstBin.html#GST-BIN-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_FLAG_LIVE" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LIVE:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_FLAG_DECODE_ONLY" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DECODE-ONLY:CAPS"/>
@@ -1875,18 +1914,18 @@
     <keyword type="constant" name="GST_BUFFER_FLAG_GAP" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_FLAG_DROPPABLE" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DROPPABLE:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_FLAG_DELTA_UNIT" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DELTA-UNIT:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_FLAG_IN_CAPS" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IN-CAPS"/>
     <keyword type="constant" name="GST_BUFFER_FLAG_LAST" link="gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_COPY_NONE" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-NONE:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_COPY_FLAGS" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-FLAGS:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_COPY_TIMESTAMPS" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-TIMESTAMPS:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_COPY_META" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-META:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_COPY_MEMORY" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-MEMORY:CAPS"/>
     <keyword type="constant" name="GST_BUFFER_COPY_MERGE" link="gstreamer-GstBuffer.html#GST-BUFFER-COPY-MERGE:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_POOL_FLAG_NONE" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-NONE:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_POOL_FLAG_KEY_UNIT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-KEY-UNIT:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_POOL_FLAG_DONTWAIT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-DONTWAIT:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_POOL_FLAG_DISCONT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-DISCONT:CAPS"/>
-    <keyword type="constant" name="GST_BUFFER_POOL_FLAG_LAST" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-LAST:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_POOL_ACQUIRE_FLAG_NONE" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-KEY-UNIT:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-DONTWAIT:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-DISCONT:CAPS"/>
+    <keyword type="constant" name="GST_BUFFER_POOL_ACQUIRE_FLAG_LAST" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_BUS_FLUSHING" link="GstBus.html#GST-BUS-FLUSHING:CAPS"/>
     <keyword type="constant" name="GST_BUS_FLAG_LAST" link="GstBus.html#GST-BUS-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_BUS_DROP" link="GstBus.html#GST-BUS-DROP:CAPS"/>
@@ -1894,7 +1933,7 @@
     <keyword type="constant" name="GST_BUS_ASYNC" link="GstBus.html#GST-BUS-ASYNC:CAPS"/>
     <keyword type="constant" name="GST_CAPS_INTERSECT_ZIG_ZAG" link="gstreamer-GstCaps.html#GST-CAPS-INTERSECT-ZIG-ZAG:CAPS"/>
     <keyword type="constant" name="GST_CAPS_INTERSECT_FIRST" link="gstreamer-GstCaps.html#GST-CAPS-INTERSECT-FIRST:CAPS"/>
-    <keyword type="constant" name="GST_CAPS_FLAGS_ANY" link="gstreamer-GstCaps.html#GST-CAPS-FLAGS-ANY:CAPS"/>
+    <keyword type="constant" name="GST_CAPS_FLAG_ANY" link="gstreamer-GstCaps.html#GST-CAPS-FLAG-ANY:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_ENTRY_SINGLE" link="GstClock.html#GST-CLOCK-ENTRY-SINGLE:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_ENTRY_PERIODIC" link="GstClock.html#GST-CLOCK-ENTRY-PERIODIC:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_OK" link="GstClock.html#GST-CLOCK-OK:CAPS"/>
@@ -1912,10 +1951,13 @@
     <keyword type="constant" name="GST_CLOCK_FLAG_CAN_SET_RESOLUTION" link="GstClock.html#GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_FLAG_CAN_SET_MASTER" link="GstClock.html#GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_FLAG_LAST" link="GstClock.html#GST-CLOCK-FLAG-LAST:CAPS"/>
-    <keyword type="constant" name="GST_ELEMENT_LOCKED_STATE" link="GstElement.html#GST-ELEMENT-LOCKED-STATE:CAPS"/>
-    <keyword type="constant" name="GST_ELEMENT_IS_SINK" link="GstElement.html#GST-ELEMENT-IS-SINK:CAPS"/>
-    <keyword type="constant" name="GST_ELEMENT_UNPARENTING" link="GstElement.html#GST-ELEMENT-UNPARENTING:CAPS"/>
-    <keyword type="constant" name="GST_ELEMENT_IS_SOURCE" link="GstElement.html#GST-ELEMENT-IS-SOURCE:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_UNPARENTING" link="GstElement.html#GST-ELEMENT-FLAG-UNPARENTING:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_LOCKED_STATE" link="GstElement.html#GST-ELEMENT-FLAG-LOCKED-STATE:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_SINK" link="GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_SOURCE" link="GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_PROVIDE_CLOCK" link="GstElement.html#GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_REQUIRE_CLOCK" link="GstElement.html#GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS"/>
+    <keyword type="constant" name="GST_ELEMENT_FLAG_INDEXABLE" link="GstElement.html#GST-ELEMENT-FLAG-INDEXABLE:CAPS"/>
     <keyword type="constant" name="GST_ELEMENT_FLAG_LAST" link="GstElement.html#GST-ELEMENT-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_STATE_VOID_PENDING" link="GstElement.html#GST-STATE-VOID-PENDING:CAPS"/>
     <keyword type="constant" name="GST_STATE_NULL" link="GstElement.html#GST-STATE-NULL:CAPS"/>
@@ -1987,31 +2029,38 @@
     <keyword type="constant" name="GST_EVENT_TYPE_DOWNSTREAM" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-DOWNSTREAM:CAPS"/>
     <keyword type="constant" name="GST_EVENT_TYPE_SERIALIZED" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-SERIALIZED:CAPS"/>
     <keyword type="constant" name="GST_EVENT_TYPE_STICKY" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_TYPE_STICKY_MULTI" link="gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY-MULTI:CAPS"/>
     <keyword type="constant" name="GST_EVENT_UNKNOWN" link="gstreamer-GstEvent.html#GST-EVENT-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_EVENT_FLUSH_START" link="gstreamer-GstEvent.html#GST-EVENT-FLUSH-START:CAPS"/>
     <keyword type="constant" name="GST_EVENT_FLUSH_STOP" link="gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_STREAM_START" link="gstreamer-GstEvent.html#GST-EVENT-STREAM-START:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CAPS" link="gstreamer-GstEvent.html#GST-EVENT-CAPS"/>
+    <keyword type="constant" name="GST_EVENT_STREAM_CONFIG" link="gstreamer-GstEvent.html#GST-EVENT-STREAM-CONFIG:CAPS"/>
     <keyword type="constant" name="GST_EVENT_SEGMENT" link="gstreamer-GstEvent.html#GST-EVENT-SEGMENT:CAPS"/>
     <keyword type="constant" name="GST_EVENT_TAG" link="gstreamer-GstEvent.html#GST-EVENT-TAG:CAPS"/>
     <keyword type="constant" name="GST_EVENT_BUFFERSIZE" link="gstreamer-GstEvent.html#GST-EVENT-BUFFERSIZE:CAPS"/>
     <keyword type="constant" name="GST_EVENT_SINK_MESSAGE" link="gstreamer-GstEvent.html#GST-EVENT-SINK-MESSAGE:CAPS"/>
     <keyword type="constant" name="GST_EVENT_EOS" link="gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_TOC" link="gstreamer-GstEvent.html#GST-EVENT-TOC:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_SEGMENT_DONE" link="gstreamer-GstEvent.html#GST-EVENT-SEGMENT-DONE:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_GAP" link="gstreamer-GstEvent.html#GST-EVENT-GAP:CAPS"/>
     <keyword type="constant" name="GST_EVENT_QOS" link="gstreamer-GstEvent.html#GST-EVENT-QOS:CAPS"/>
     <keyword type="constant" name="GST_EVENT_SEEK" link="gstreamer-GstEvent.html#GST-EVENT-SEEK:CAPS"/>
     <keyword type="constant" name="GST_EVENT_NAVIGATION" link="gstreamer-GstEvent.html#GST-EVENT-NAVIGATION:CAPS"/>
     <keyword type="constant" name="GST_EVENT_LATENCY" link="gstreamer-GstEvent.html#GST-EVENT-LATENCY:CAPS"/>
     <keyword type="constant" name="GST_EVENT_STEP" link="gstreamer-GstEvent.html#GST-EVENT-STEP:CAPS"/>
     <keyword type="constant" name="GST_EVENT_RECONFIGURE" link="gstreamer-GstEvent.html#GST-EVENT-RECONFIGURE:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_TOC_SELECT" link="gstreamer-GstEvent.html#GST-EVENT-TOC-SELECT:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CUSTOM_UPSTREAM" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-UPSTREAM:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CUSTOM_DOWNSTREAM" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CUSTOM_DOWNSTREAM_OOB" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS"/>
+    <keyword type="constant" name="GST_EVENT_CUSTOM_DOWNSTREAM_STICKY" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM-STICKY:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CUSTOM_BOTH" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH:CAPS"/>
     <keyword type="constant" name="GST_EVENT_CUSTOM_BOTH_OOB" link="gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH-OOB:CAPS"/>
     <keyword type="constant" name="GST_QOS_TYPE_OVERFLOW" link="gstreamer-GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS"/>
     <keyword type="constant" name="GST_QOS_TYPE_UNDERFLOW" link="gstreamer-GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS"/>
     <keyword type="constant" name="GST_QOS_TYPE_THROTTLE" link="gstreamer-GstEvent.html#GST-QOS-TYPE-THROTTLE:CAPS"/>
     <keyword type="constant" name="GST_SEEK_TYPE_NONE" link="gstreamer-GstEvent.html#GST-SEEK-TYPE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_SEEK_TYPE_CUR" link="gstreamer-GstEvent.html#GST-SEEK-TYPE-CUR:CAPS"/>
     <keyword type="constant" name="GST_SEEK_TYPE_SET" link="gstreamer-GstEvent.html#GST-SEEK-TYPE-SET:CAPS"/>
     <keyword type="constant" name="GST_SEEK_TYPE_END" link="gstreamer-GstEvent.html#GST-SEEK-TYPE-END:CAPS"/>
     <keyword type="constant" name="GST_SEEK_FLAG_NONE" link="gstreamer-GstEvent.html#GST-SEEK-FLAG-NONE:CAPS"/>
@@ -2020,32 +2069,13 @@
     <keyword type="constant" name="GST_SEEK_FLAG_KEY_UNIT" link="gstreamer-GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS"/>
     <keyword type="constant" name="GST_SEEK_FLAG_SEGMENT" link="gstreamer-GstEvent.html#GST-SEEK-FLAG-SEGMENT:CAPS"/>
     <keyword type="constant" name="GST_SEEK_FLAG_SKIP" link="gstreamer-GstEvent.html#GST-SEEK-FLAG-SKIP:CAPS"/>
+    <keyword type="constant" name="GST_STREAM_CONFIG_FLAG_NONE" link="gstreamer-GstEvent.html#GST-STREAM-CONFIG-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_UNDEFINED" link="gstreamer-GstFormat.html#GST-FORMAT-UNDEFINED:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_DEFAULT" link="gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_BYTES" link="gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_TIME" link="gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_BUFFERS" link="gstreamer-GstFormat.html#GST-FORMAT-BUFFERS:CAPS"/>
     <keyword type="constant" name="GST_FORMAT_PERCENT" link="gstreamer-GstFormat.html#GST-FORMAT-PERCENT:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_UNKNOWN" link="GstIndex.html#GST-INDEX-UNKNOWN:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_CERTAIN" link="GstIndex.html#GST-INDEX-CERTAIN:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_FUZZY" link="GstIndex.html#GST-INDEX-FUZZY:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_ENTRY_ID" link="GstIndex.html#GST-INDEX-ENTRY-ID:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_ENTRY_ASSOCIATION" link="GstIndex.html#GST-INDEX-ENTRY-ASSOCIATION:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_ENTRY_OBJECT" link="GstIndex.html#GST-INDEX-ENTRY-OBJECT:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_ENTRY_FORMAT" link="GstIndex.html#GST-INDEX-ENTRY-FORMAT:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_LOOKUP_EXACT" link="GstIndex.html#GST-INDEX-LOOKUP-EXACT:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_LOOKUP_BEFORE" link="GstIndex.html#GST-INDEX-LOOKUP-BEFORE:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_LOOKUP_AFTER" link="GstIndex.html#GST-INDEX-LOOKUP-AFTER:CAPS"/>
-    <keyword type="constant" name="GST_ASSOCIATION_FLAG_NONE" link="GstIndex.html#GST-ASSOCIATION-FLAG-NONE:CAPS"/>
-    <keyword type="constant" name="GST_ASSOCIATION_FLAG_KEY_UNIT" link="GstIndex.html#GST-ASSOCIATION-FLAG-KEY-UNIT:CAPS"/>
-    <keyword type="constant" name="GST_ASSOCIATION_FLAG_DELTA_UNIT" link="GstIndex.html#GST-ASSOCIATION-FLAG-DELTA-UNIT:CAPS"/>
-    <keyword type="constant" name="GST_ASSOCIATION_FLAG_LAST" link="GstIndex.html#GST-ASSOCIATION-FLAG-LAST:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_RESOLVER_CUSTOM" link="GstIndex.html#GST-INDEX-RESOLVER-CUSTOM:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_RESOLVER_GTYPE" link="GstIndex.html#GST-INDEX-RESOLVER-GTYPE:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_RESOLVER_PATH" link="GstIndex.html#GST-INDEX-RESOLVER-PATH:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_WRITABLE" link="GstIndex.html#GST-INDEX-WRITABLE:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_READABLE" link="GstIndex.html#GST-INDEX-READABLE:CAPS"/>
-    <keyword type="constant" name="GST_INDEX_FLAG_LAST" link="GstIndex.html#GST-INDEX-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_ITERATOR_ITEM_SKIP" link="gstreamer-GstIterator.html#GST-ITERATOR-ITEM-SKIP:CAPS"/>
     <keyword type="constant" name="GST_ITERATOR_ITEM_PASS" link="gstreamer-GstIterator.html#GST-ITERATOR-ITEM-PASS:CAPS"/>
     <keyword type="constant" name="GST_ITERATOR_ITEM_END" link="gstreamer-GstIterator.html#GST-ITERATOR-ITEM-END:CAPS"/>
@@ -2055,9 +2085,12 @@
     <keyword type="constant" name="GST_ITERATOR_ERROR" link="gstreamer-GstIterator.html#GST-ITERATOR-ERROR:CAPS"/>
     <keyword type="constant" name="GST_MEMORY_FLAG_READONLY" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-READONLY:CAPS"/>
     <keyword type="constant" name="GST_MEMORY_FLAG_NO_SHARE" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-NO-SHARE:CAPS"/>
+    <keyword type="constant" name="GST_MEMORY_FLAG_ZERO_PREFIXED" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"/>
+    <keyword type="constant" name="GST_MEMORY_FLAG_ZERO_PADDED" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"/>
     <keyword type="constant" name="GST_MEMORY_FLAG_LAST" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_MAP_READ" link="gstreamer-GstMemory.html#GST-MAP-READ:CAPS"/>
     <keyword type="constant" name="GST_MAP_WRITE" link="gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS"/>
+    <keyword type="constant" name="GST_MAP_FLAG_LAST" link="gstreamer-GstMemory.html#GST-MAP-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_UNKNOWN" link="gstreamer-GstMessage.html#GST-MESSAGE-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_EOS" link="gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_ERROR" link="gstreamer-GstMessage.html#GST-MESSAGE-ERROR:CAPS"/>
@@ -2085,6 +2118,7 @@
     <keyword type="constant" name="GST_MESSAGE_STEP_START" link="gstreamer-GstMessage.html#GST-MESSAGE-STEP-START:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_QOS" link="gstreamer-GstMessage.html#GST-MESSAGE-QOS:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_PROGRESS" link="gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS"/>
+    <keyword type="constant" name="GST_MESSAGE_TOC" link="gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_ANY" link="gstreamer-GstMessage.html#GST-MESSAGE-ANY:CAPS"/>
     <keyword type="constant" name="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK" link="gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS"/>
     <keyword type="constant" name="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK" link="gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS"/>
@@ -2100,18 +2134,24 @@
     <keyword type="constant" name="GST_PROGRESS_TYPE_COMPLETE" link="gstreamer-GstMessage.html#GST-PROGRESS-TYPE-COMPLETE:CAPS"/>
     <keyword type="constant" name="GST_PROGRESS_TYPE_CANCELED" link="gstreamer-GstMessage.html#GST-PROGRESS-TYPE-CANCELED:CAPS"/>
     <keyword type="constant" name="GST_PROGRESS_TYPE_ERROR" link="gstreamer-GstMessage.html#GST-PROGRESS-TYPE-ERROR:CAPS"/>
+    <keyword type="constant" name="GST_META_FLAG_NONE" link="gstreamer-GstMeta.html#GST-META-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_META_FLAG_READONLY" link="gstreamer-GstMeta.html#GST-META-FLAG-READONLY:CAPS"/>
+    <keyword type="constant" name="GST_META_FLAG_POOLED" link="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"/>
+    <keyword type="constant" name="GST_META_FLAG_LAST" link="gstreamer-GstMeta.html#GST-META-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_MINI_OBJECT_FLAG_LAST" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_OBJECT_FLAG_LAST" link="GstObject.html#GST-OBJECT-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_PAD_UNKNOWN" link="GstPad.html#GST-PAD-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_PAD_SRC" link="GstPad.html#GST-PAD-SRC:CAPS"/>
     <keyword type="constant" name="GST_PAD_SINK" link="GstPad.html#GST-PAD-SINK:CAPS"/>
-    <keyword type="constant" name="GST_PAD_BLOCKED" link="GstPad.html#GST-PAD-BLOCKED:CAPS"/>
-    <keyword type="constant" name="GST_PAD_FLUSHING" link="GstPad.html#GST-PAD-FLUSHING:CAPS"/>
-    <keyword type="constant" name="GST_PAD_IN_GETCAPS" link="GstPad.html#GST-PAD-IN-GETCAPS:CAPS"/>
-    <keyword type="constant" name="GST_PAD_BLOCKING" link="GstPad.html#GST-PAD-BLOCKING:CAPS"/>
-    <keyword type="constant" name="GST_PAD_NEED_RECONFIGURE" link="GstPad.html#GST-PAD-NEED-RECONFIGURE:CAPS"/>
-    <keyword type="constant" name="GST_PAD_NEED_EVENTS" link="GstPad.html#GST-PAD-NEED-EVENTS:CAPS"/>
-    <keyword type="constant" name="GST_PAD_FIXED_CAPS" link="GstPad.html#GST-PAD-FIXED-CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_BLOCKED" link="GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_FLUSHING" link="GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_BLOCKING" link="GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_NEED_PARENT" link="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_NEED_RECONFIGURE" link="GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_PENDING_EVENTS" link="GstPad.html#GST-PAD-FLAG-PENDING-EVENTS:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_FIXED_CAPS" link="GstPad.html#GST-PAD-FLAG-FIXED-CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_PROXY_CAPS" link="GstPad.html#GST-PAD-FLAG-PROXY-CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_PROXY_ALLOCATION" link="GstPad.html#GST-PAD-FLAG-PROXY-ALLOCATION:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_LAST" link="GstPad.html#GST-PAD-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_PAD_LINK_OK" link="GstPad.html#GST-PAD-LINK-OK:CAPS"/>
     <keyword type="constant" name="GST_PAD_LINK_WRONG_HIERARCHY" link="GstPad.html#GST-PAD-LINK-WRONG-HIERARCHY:CAPS"/>
@@ -2127,32 +2167,35 @@
     <keyword type="constant" name="GST_FLOW_CUSTOM_SUCCESS_2" link="GstPad.html#GST-FLOW-CUSTOM-SUCCESS-2:CAPS"/>
     <keyword type="constant" name="GST_FLOW_CUSTOM_SUCCESS_1" link="GstPad.html#GST-FLOW-CUSTOM-SUCCESS-1:CAPS"/>
     <keyword type="constant" name="GST_FLOW_CUSTOM_SUCCESS" link="GstPad.html#GST-FLOW-CUSTOM-SUCCESS:CAPS"/>
-    <keyword type="constant" name="GST_FLOW_RESEND" link="GstPad.html#GST-FLOW-RESEND:CAPS"/>
     <keyword type="constant" name="GST_FLOW_OK" link="GstPad.html#GST-FLOW-OK:CAPS"/>
     <keyword type="constant" name="GST_FLOW_NOT_LINKED" link="GstPad.html#GST-FLOW-NOT-LINKED:CAPS"/>
-    <keyword type="constant" name="GST_FLOW_WRONG_STATE" link="GstPad.html#GST-FLOW-WRONG-STATE:CAPS"/>
-    <keyword type="constant" name="GST_FLOW_UNEXPECTED" link="GstPad.html#GST-FLOW-UNEXPECTED:CAPS"/>
+    <keyword type="constant" name="GST_FLOW_FLUSHING" link="GstPad.html#GST-FLOW-FLUSHING:CAPS"/>
+    <keyword type="constant" name="GST_FLOW_EOS" link="GstPad.html#GST-FLOW-EOS:CAPS"/>
     <keyword type="constant" name="GST_FLOW_NOT_NEGOTIATED" link="GstPad.html#GST-FLOW-NOT-NEGOTIATED:CAPS"/>
     <keyword type="constant" name="GST_FLOW_ERROR" link="GstPad.html#GST-FLOW-ERROR:CAPS"/>
     <keyword type="constant" name="GST_FLOW_NOT_SUPPORTED" link="GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS"/>
     <keyword type="constant" name="GST_FLOW_CUSTOM_ERROR" link="GstPad.html#GST-FLOW-CUSTOM-ERROR:CAPS"/>
     <keyword type="constant" name="GST_FLOW_CUSTOM_ERROR_1" link="GstPad.html#GST-FLOW-CUSTOM-ERROR-1:CAPS"/>
     <keyword type="constant" name="GST_FLOW_CUSTOM_ERROR_2" link="GstPad.html#GST-FLOW-CUSTOM-ERROR-2:CAPS"/>
-    <keyword type="constant" name="GST_ACTIVATE_NONE" link="GstPad.html#GST-ACTIVATE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_ACTIVATE_PUSH" link="GstPad.html#GST-ACTIVATE-PUSH:CAPS"/>
-    <keyword type="constant" name="GST_ACTIVATE_PULL" link="GstPad.html#GST-ACTIVATE-PULL:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_DROP" link="GstPad.html#GST-PROBE-DROP:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_OK" link="GstPad.html#GST-PROBE-OK:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_REMOVE" link="GstPad.html#GST-PROBE-REMOVE:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_PASS" link="GstPad.html#GST-PROBE-PASS:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_INVALID" link="GstPad.html#GST-PROBE-TYPE-INVALID:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_IDLE" link="GstPad.html#GST-PROBE-TYPE-IDLE:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_BLOCK" link="GstPad.html#GST-PROBE-TYPE-BLOCK:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_BUFFER" link="GstPad.html#GST-PROBE-TYPE-BUFFER:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_BUFFER_LIST" link="GstPad.html#GST-PROBE-TYPE-BUFFER-LIST:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_EVENT" link="GstPad.html#GST-PROBE-TYPE-EVENT:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_PUSH" link="GstPad.html#GST-PROBE-TYPE-PUSH:CAPS"/>
-    <keyword type="constant" name="GST_PROBE_TYPE_PULL" link="GstPad.html#GST-PROBE-TYPE-PULL:CAPS"/>
+    <keyword type="constant" name="GST_PAD_MODE_NONE" link="GstPad.html#GST-PAD-MODE-NONE:CAPS"/>
+    <keyword type="constant" name="GST_PAD_MODE_PUSH" link="GstPad.html#GST-PAD-MODE-PUSH:CAPS"/>
+    <keyword type="constant" name="GST_PAD_MODE_PULL" link="GstPad.html#GST-PAD-MODE-PULL:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_DROP" link="GstPad.html#GST-PAD-PROBE-DROP:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_OK" link="GstPad.html#GST-PAD-PROBE-OK:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_REMOVE" link="GstPad.html#GST-PAD-PROBE-REMOVE:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_PASS" link="GstPad.html#GST-PAD-PROBE-PASS:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_INVALID" link="GstPad.html#GST-PAD-PROBE-TYPE-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_IDLE" link="GstPad.html#GST-PAD-PROBE-TYPE-IDLE:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_BLOCK" link="GstPad.html#GST-PAD-PROBE-TYPE-BLOCK:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_BUFFER" link="GstPad.html#GST-PAD-PROBE-TYPE-BUFFER:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_BUFFER_LIST" link="GstPad.html#GST-PAD-PROBE-TYPE-BUFFER-LIST:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-DOWNSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_EVENT_UPSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-UPSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_EVENT_FLUSH" link="GstPad.html#GST-PAD-PROBE-TYPE-EVENT-FLUSH:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-QUERY-DOWNSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_QUERY_UPSTREAM" link="GstPad.html#GST-PAD-PROBE-TYPE-QUERY-UPSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_PUSH" link="GstPad.html#GST-PAD-PROBE-TYPE-PUSH:CAPS"/>
+    <keyword type="constant" name="GST_PAD_PROBE_TYPE_PULL" link="GstPad.html#GST-PAD-PROBE-TYPE-PULL:CAPS"/>
     <keyword type="constant" name="GST_PAD_TEMPLATE_FLAG_LAST" link="GstPadTemplate.html#GST-PAD-TEMPLATE-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_PAD_ALWAYS" link="GstPadTemplate.html#GST-PAD-ALWAYS:CAPS"/>
     <keyword type="constant" name="GST_PAD_SOMETIMES" link="GstPadTemplate.html#GST-PAD-SOMETIMES:CAPS"/>
@@ -2181,7 +2224,10 @@
     <keyword type="constant" name="GST_RANK_MARGINAL" link="GstPluginFeature.html#GST-RANK-MARGINAL:CAPS"/>
     <keyword type="constant" name="GST_RANK_SECONDARY" link="GstPluginFeature.html#GST-RANK-SECONDARY:CAPS"/>
     <keyword type="constant" name="GST_RANK_PRIMARY" link="GstPluginFeature.html#GST-RANK-PRIMARY:CAPS"/>
-    <keyword type="constant" name="GST_QUERY_NONE" link="gstreamer-GstQuery.html#GST-QUERY-NONE:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_TYPE_UPSTREAM" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-UPSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_TYPE_DOWNSTREAM" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-DOWNSTREAM:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_TYPE_SERIALIZED" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-SERIALIZED:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_UNKNOWN" link="gstreamer-GstQuery.html#GST-QUERY-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_QUERY_POSITION" link="gstreamer-GstQuery.html#GST-QUERY-POSITION:CAPS"/>
     <keyword type="constant" name="GST_QUERY_DURATION" link="gstreamer-GstQuery.html#GST-QUERY-DURATION:CAPS"/>
     <keyword type="constant" name="GST_QUERY_LATENCY" link="gstreamer-GstQuery.html#GST-QUERY-LATENCY:CAPS"/>
@@ -2196,10 +2242,16 @@
     <keyword type="constant" name="GST_QUERY_URI" link="gstreamer-GstQuery.html#GST-QUERY-URI:CAPS"/>
     <keyword type="constant" name="GST_QUERY_ALLOCATION" link="gstreamer-GstQuery.html#GST-QUERY-ALLOCATION:CAPS"/>
     <keyword type="constant" name="GST_QUERY_SCHEDULING" link="gstreamer-GstQuery.html#GST-QUERY-SCHEDULING:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_ACCEPT_CAPS" link="gstreamer-GstQuery.html#GST-QUERY-ACCEPT-CAPS"/>
+    <keyword type="constant" name="GST_QUERY_CAPS" link="gstreamer-GstQuery.html#GST-QUERY-CAPS"/>
+    <keyword type="constant" name="GST_QUERY_DRAIN" link="gstreamer-GstQuery.html#GST-QUERY-DRAIN:CAPS"/>
+    <keyword type="constant" name="GST_QUERY_TOC" link="gstreamer-GstQuery.html#GST-QUERY-TOC:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_STREAM" link="gstreamer-GstQuery.html#GST-BUFFERING-STREAM:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_DOWNLOAD" link="gstreamer-GstQuery.html#GST-BUFFERING-DOWNLOAD:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_TIMESHIFT" link="gstreamer-GstQuery.html#GST-BUFFERING-TIMESHIFT:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_LIVE" link="gstreamer-GstQuery.html#GST-BUFFERING-LIVE:CAPS"/>
+    <keyword type="constant" name="GST_SCHEDULING_FLAG_SEEKABLE" link="gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEEKABLE:CAPS"/>
+    <keyword type="constant" name="GST_SCHEDULING_FLAG_SEQUENTIAL" link="gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS"/>
     <keyword type="constant" name="GST_SEGMENT_FLAG_NONE" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_SEGMENT_FLAG_RESET" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-RESET:CAPS"/>
     <keyword type="constant" name="GST_SEGMENT_FLAG_SKIP" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SKIP:CAPS"/>
@@ -2221,6 +2273,8 @@
     <keyword type="constant" name="GST_TASK_STARTED" link="GstTask.html#GST-TASK-STARTED:CAPS"/>
     <keyword type="constant" name="GST_TASK_STOPPED" link="GstTask.html#GST-TASK-STOPPED:CAPS"/>
     <keyword type="constant" name="GST_TASK_PAUSED" link="GstTask.html#GST-TASK-PAUSED:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_CHAPTER" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_EDITION" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-EDITION:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_NONE" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-NONE:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_MINIMUM" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-MINIMUM:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_POSSIBLE" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-POSSIBLE:CAPS"/>
@@ -2230,16 +2284,20 @@
     <keyword type="constant" name="GST_URI_UNKNOWN" link="gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_URI_SINK" link="gstreamer-GstUriHandler.html#GST-URI-SINK:CAPS"/>
     <keyword type="constant" name="GST_URI_SRC" link="gstreamer-GstUriHandler.html#GST-URI-SRC:CAPS"/>
+    <keyword type="constant" name="GST_URI_ERROR_BAD_PROTOCOL" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-PROTOCOL:CAPS"/>
+    <keyword type="constant" name="GST_URI_ERROR_BAD_URI" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-URI:CAPS"/>
+    <keyword type="constant" name="GST_URI_ERROR_BAD_STATE" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-STATE:CAPS"/>
+    <keyword type="constant" name="GST_URI_ERROR_BAD_REFERENCE" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-REFERENCE:CAPS"/>
     <keyword type="constant" name="GST_SEARCH_MODE_EXACT" link="gstreamer-GstUtils.html#GST-SEARCH-MODE-EXACT:CAPS"/>
     <keyword type="constant" name="GST_SEARCH_MODE_BEFORE" link="gstreamer-GstUtils.html#GST-SEARCH-MODE-BEFORE:CAPS"/>
     <keyword type="constant" name="GST_SEARCH_MODE_AFTER" link="gstreamer-GstUtils.html#GST-SEARCH-MODE-AFTER:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_NONE" link="gstreamer-GstInfo.html#GST-LEVEL-NONE:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_ERROR" link="gstreamer-GstInfo.html#GST-LEVEL-ERROR:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_WARNING" link="gstreamer-GstInfo.html#GST-LEVEL-WARNING:CAPS"/>
+    <keyword type="constant" name="GST_LEVEL_FIXME" link="gstreamer-GstInfo.html#GST-LEVEL-FIXME:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_INFO" link="gstreamer-GstInfo.html#GST-LEVEL-INFO:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_DEBUG" link="gstreamer-GstInfo.html#GST-LEVEL-DEBUG:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_LOG" link="gstreamer-GstInfo.html#GST-LEVEL-LOG:CAPS"/>
-    <keyword type="constant" name="GST_LEVEL_FIXME" link="gstreamer-GstInfo.html#GST-LEVEL-FIXME:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_TRACE" link="gstreamer-GstInfo.html#GST-LEVEL-TRACE:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_MEMDUMP" link="gstreamer-GstInfo.html#GST-LEVEL-MEMDUMP:CAPS"/>
     <keyword type="constant" name="GST_LEVEL_COUNT" link="gstreamer-GstInfo.html#GST-LEVEL-COUNT:CAPS"/>
@@ -2266,8 +2324,5 @@
     <keyword type="constant" name="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS" link="gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-NON-DEFAULT-PARAMS:CAPS"/>
     <keyword type="constant" name="GST_DEBUG_GRAPH_SHOW_STATES" link="gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-STATES:CAPS"/>
     <keyword type="constant" name="GST_DEBUG_GRAPH_SHOW_ALL" link="gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-ALL:CAPS"/>
-    <keyword type="constant" name="GST_ALLOC_TRACE_NONE" link="gstreamer-GstTrace.html#GST-ALLOC-TRACE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_ALLOC_TRACE_LIVE" link="gstreamer-GstTrace.html#GST-ALLOC-TRACE-LIVE:CAPS"/>
-    <keyword type="constant" name="GST_ALLOC_TRACE_MEM_LIVE" link="gstreamer-GstTrace.html#GST-ALLOC-TRACE-MEM-LIVE:CAPS"/>
   </functions>
 </book>
diff --git a/docs/gst/html/gstreamer.html b/docs/gst/html/gstreamer.html
index 9a60d08..e25f192 100644
--- a/docs/gst/html/gstreamer.html
+++ b/docs/gst/html/gstreamer.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Overview</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="prev" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="prev" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="next" href="gst-building.html" title="Building GStreamer and GStreamer Applications">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gst-building.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index db94fa4..de32534 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -2,9 +2,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer 0.11 Core Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<title>GStreamer 1.0 Core Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="next" href="gstreamer.html" title="GStreamer Overview">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -13,9 +13,9 @@
 <div class="book">
 <div class="titlepage">
 <div>
-<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 0.11 Core Reference Manual</p></th></tr></table></div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Core Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core 0.11 (0.11.1)
+      for GStreamer Core 1.0 (0.11.89.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
     </p></div>
@@ -49,7 +49,7 @@
 <span class="refentrytitle"><a href="GstBin.html">GstBin</a></span><span class="refpurpose"> — Base class and element that can contain other elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstBuffer.html">GstBuffer</a></span><span class="refpurpose"> — Data-passing buffer type, supporting sub-buffers.</span>
+<span class="refentrytitle"><a href="gstreamer-GstBuffer.html">GstBuffer</a></span><span class="refpurpose"> — Data-passing buffer type</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-GstBufferList.html">GstBufferList</a></span><span class="refpurpose"> — Lists of buffers for data-passing</span>
@@ -64,6 +64,9 @@
 <span class="refentrytitle"><a href="gstreamer-GstCaps.html">GstCaps</a></span><span class="refpurpose"> — Structure describing sets of media formats</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-GstSample.html">GstSample</a></span><span class="refpurpose"> — A media sample</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstChildProxy.html">GstChildProxy</a></span><span class="refpurpose"> — Interface for multi child elements.</span>
 </dt>
 <dt>
@@ -73,6 +76,12 @@
 <span class="refentrytitle"><a href="gstreamer-gstconfig.html">gstconfig</a></span><span class="refpurpose"> — Build configuration options</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="GstControlBinding.html">GstControlBinding</a></span><span class="refpurpose"> — attachment for control source sources</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GstControlSource.html">GstControlSource</a></span><span class="refpurpose"> — base class for control source sources</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstDateTime.html">GstDateTime</a></span><span class="refpurpose"> — A date, time and timezone structure</span>
 </dt>
 <dt>
@@ -89,21 +98,12 @@
                     a pipeline</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstFilter.html">GstFilter</a></span><span class="refpurpose"> — A utility function to filter GLists.</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gstreamer-GstFormat.html">GstFormat</a></span><span class="refpurpose"> — Dynamically register new data formats</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstGhostPad.html">GstGhostPad</a></span><span class="refpurpose"> — Pseudo link pads</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstIndex.html">GstIndex</a></span><span class="refpurpose"> — Generate indexes on objects</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GstIndexFactory.html">GstIndexFactory</a></span><span class="refpurpose"> — Create GstIndexes from a factory</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gstreamer-GstIterator.html">GstIterator</a></span><span class="refpurpose"> — Object to retrieve multiple elements in a threadsafe
 way.</span>
 </dt>
@@ -155,8 +155,8 @@
 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Dynamically register new query types. Provide functions
-                    to create queries, and to set and parse values in them.</span>
+<span class="refentrytitle"><a href="gstreamer-GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
+                    values in them.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstRegistry.html">GstRegistry</a></span><span class="refpurpose"> — Abstract base class for management of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> objects</span>
@@ -185,6 +185,13 @@
 <span class="refentrytitle"><a href="GstTaskPool.html">GstTaskPool</a></span><span class="refpurpose"> — Pool of GStreamer streaming threads</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-GstToc.html">GstToc</a></span><span class="refpurpose"> — Generic table of contents support</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gstreamer-GstTocSetter.html">GstTocSetter</a></span><span class="refpurpose"> — Element interface that allows setting and retrieval
+                    of the TOC</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstTypeFind.html">GstTypeFind</a></span><span class="refpurpose"> — Stream type detection</span>
 </dt>
 <dt>
@@ -205,14 +212,9 @@
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-support.html">GStreamer Core Support</a></span></dt>
-<dd><dl>
-<dt>
+<dd><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-GstInfo.html">GstInfo</a></span><span class="refpurpose"> — Debugging and logging facilities</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-GstTrace.html">GstTrace</a></span><span class="refpurpose"> — Tracing functionality</span>
-</dt>
-</dl></dd>
+</dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-hierarchy.html">Object Hierarchy</a></span></dt>
 <dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
 <dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated API</a></span></dt>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index 410d769..7799899 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -1,2526 +1,2578 @@
 <ONLINE href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/">
-<ANCHOR id="gst-building" href="gstreamer-0.11/gst-building.html">
-<ANCHOR id="gst-running" href="gstreamer-0.11/gst-running.html">
-<ANCHOR id="gstreamer-Gst" href="gstreamer-0.11/gstreamer-Gst.html">
-<ANCHOR id="gstreamer-Gst.synopsis" href="gstreamer-0.11/gstreamer-Gst.html#gstreamer-Gst.synopsis">
-<ANCHOR id="gstreamer-Gst.description" href="gstreamer-0.11/gstreamer-Gst.html#gstreamer-Gst.description">
-<ANCHOR id="gstreamer-Gst.details" href="gstreamer-0.11/gstreamer-Gst.html#gstreamer-Gst.details">
-<ANCHOR id="gst-init" href="gstreamer-0.11/gstreamer-Gst.html#gst-init">
-<ANCHOR id="gst-init-check" href="gstreamer-0.11/gstreamer-Gst.html#gst-init-check">
-<ANCHOR id="gst-init-get-option-group" href="gstreamer-0.11/gstreamer-Gst.html#gst-init-get-option-group">
-<ANCHOR id="gst-is-initialized" href="gstreamer-0.11/gstreamer-Gst.html#gst-is-initialized">
-<ANCHOR id="gst-deinit" href="gstreamer-0.11/gstreamer-Gst.html#gst-deinit">
-<ANCHOR id="gst-version" href="gstreamer-0.11/gstreamer-Gst.html#gst-version">
-<ANCHOR id="gst-version-string" href="gstreamer-0.11/gstreamer-Gst.html#gst-version-string">
-<ANCHOR id="gst-segtrap-is-enabled" href="gstreamer-0.11/gstreamer-Gst.html#gst-segtrap-is-enabled">
-<ANCHOR id="gst-segtrap-set-enabled" href="gstreamer-0.11/gstreamer-Gst.html#gst-segtrap-set-enabled">
-<ANCHOR id="gst-registry-fork-is-enabled" href="gstreamer-0.11/gstreamer-Gst.html#gst-registry-fork-is-enabled">
-<ANCHOR id="gst-registry-fork-set-enabled" href="gstreamer-0.11/gstreamer-Gst.html#gst-registry-fork-set-enabled">
-<ANCHOR id="gst-update-registry" href="gstreamer-0.11/gstreamer-Gst.html#gst-update-registry">
-<ANCHOR id="gstreamer-GstAtomicQueue" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html">
-<ANCHOR id="gstreamer-GstAtomicQueue.synopsis" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.synopsis">
-<ANCHOR id="gstreamer-GstAtomicQueue.description" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.description">
-<ANCHOR id="gstreamer-GstAtomicQueue.details" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.details">
-<ANCHOR id="GstAtomicQueue" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#GstAtomicQueue">
-<ANCHOR id="gst-atomic-queue-new" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-new">
-<ANCHOR id="gst-atomic-queue-ref" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-ref">
-<ANCHOR id="gst-atomic-queue-unref" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-unref">
-<ANCHOR id="gst-atomic-queue-push" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-push">
-<ANCHOR id="gst-atomic-queue-peek" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek">
-<ANCHOR id="gst-atomic-queue-pop" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop">
-<ANCHOR id="gst-atomic-queue-length" href="gstreamer-0.11/gstreamer-GstAtomicQueue.html#gst-atomic-queue-length">
-<ANCHOR id="GstBin" href="gstreamer-0.11/GstBin.html">
-<ANCHOR id="GstBin.synopsis" href="gstreamer-0.11/GstBin.html#GstBin.synopsis">
-<ANCHOR id="GstBin.object-hierarchy" href="gstreamer-0.11/GstBin.html#GstBin.object-hierarchy">
-<ANCHOR id="GstBin.implemented-interfaces" href="gstreamer-0.11/GstBin.html#GstBin.implemented-interfaces">
-<ANCHOR id="GstBin.properties" href="gstreamer-0.11/GstBin.html#GstBin.properties">
-<ANCHOR id="GstBin.signals" href="gstreamer-0.11/GstBin.html#GstBin.signals">
-<ANCHOR id="GstBin.description" href="gstreamer-0.11/GstBin.html#GstBin.description">
-<ANCHOR id="GstBin.details" href="gstreamer-0.11/GstBin.html#GstBin.details">
-<ANCHOR id="GstBin-struct" href="gstreamer-0.11/GstBin.html#GstBin-struct">
-<ANCHOR id="GstBinClass" href="gstreamer-0.11/GstBin.html#GstBinClass">
-<ANCHOR id="gst-bin-new" href="gstreamer-0.11/GstBin.html#gst-bin-new">
-<ANCHOR id="gst-bin-add" href="gstreamer-0.11/GstBin.html#gst-bin-add">
-<ANCHOR id="gst-bin-remove" href="gstreamer-0.11/GstBin.html#gst-bin-remove">
-<ANCHOR id="gst-bin-get-by-name" href="gstreamer-0.11/GstBin.html#gst-bin-get-by-name">
-<ANCHOR id="gst-bin-get-by-name-recurse-up" href="gstreamer-0.11/GstBin.html#gst-bin-get-by-name-recurse-up">
-<ANCHOR id="gst-bin-get-by-interface" href="gstreamer-0.11/GstBin.html#gst-bin-get-by-interface">
-<ANCHOR id="gst-bin-iterate-elements" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-elements">
-<ANCHOR id="gst-bin-iterate-recurse" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-recurse">
-<ANCHOR id="gst-bin-iterate-sinks" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-sinks">
-<ANCHOR id="gst-bin-iterate-sorted" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-sorted">
-<ANCHOR id="gst-bin-iterate-sources" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-sources">
-<ANCHOR id="gst-bin-iterate-all-by-interface" href="gstreamer-0.11/GstBin.html#gst-bin-iterate-all-by-interface">
-<ANCHOR id="gst-bin-recalculate-latency" href="gstreamer-0.11/GstBin.html#gst-bin-recalculate-latency">
-<ANCHOR id="gst-bin-add-many" href="gstreamer-0.11/GstBin.html#gst-bin-add-many">
-<ANCHOR id="gst-bin-remove-many" href="gstreamer-0.11/GstBin.html#gst-bin-remove-many">
-<ANCHOR id="gst-bin-find-unlinked-pad" href="gstreamer-0.11/GstBin.html#gst-bin-find-unlinked-pad">
-<ANCHOR id="GstBinFlags" href="gstreamer-0.11/GstBin.html#GstBinFlags">
-<ANCHOR id="GST-BIN-FLAG-LAST:CAPS" href="gstreamer-0.11/GstBin.html#GST-BIN-FLAG-LAST:CAPS">
-<ANCHOR id="GST-BIN-CHILDREN:CAPS" href="gstreamer-0.11/GstBin.html#GST-BIN-CHILDREN:CAPS">
-<ANCHOR id="GST-BIN-CHILDREN-COOKIE:CAPS" href="gstreamer-0.11/GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS">
-<ANCHOR id="GST-BIN-NUMCHILDREN:CAPS" href="gstreamer-0.11/GstBin.html#GST-BIN-NUMCHILDREN:CAPS">
-<ANCHOR id="GstBin.property-details" href="gstreamer-0.11/GstBin.html#GstBin.property-details">
-<ANCHOR id="GstBin--async-handling" href="gstreamer-0.11/GstBin.html#GstBin--async-handling">
-<ANCHOR id="GstBin--message-forward" href="gstreamer-0.11/GstBin.html#GstBin--message-forward">
-<ANCHOR id="GstBin.signal-details" href="gstreamer-0.11/GstBin.html#GstBin.signal-details">
-<ANCHOR id="GstBin-do-latency" href="gstreamer-0.11/GstBin.html#GstBin-do-latency">
-<ANCHOR id="GstBin-element-added" href="gstreamer-0.11/GstBin.html#GstBin-element-added">
-<ANCHOR id="GstBin-element-removed" href="gstreamer-0.11/GstBin.html#GstBin-element-removed">
-<ANCHOR id="gstreamer-GstBuffer" href="gstreamer-0.11/gstreamer-GstBuffer.html">
-<ANCHOR id="gstreamer-GstBuffer.synopsis" href="gstreamer-0.11/gstreamer-GstBuffer.html#gstreamer-GstBuffer.synopsis">
-<ANCHOR id="gstreamer-GstBuffer.description" href="gstreamer-0.11/gstreamer-GstBuffer.html#gstreamer-GstBuffer.description">
-<ANCHOR id="gstreamer-GstBuffer.details" href="gstreamer-0.11/gstreamer-GstBuffer.html#gstreamer-GstBuffer.details">
-<ANCHOR id="GstBuffer" href="gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer">
-<ANCHOR id="GstBufferFlags" href="gstreamer-0.11/gstreamer-GstBuffer.html#GstBufferFlags">
-<ANCHOR id="GST-BUFFER-FLAG-LIVE:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LIVE:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-DECODE-ONLY:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DECODE-ONLY:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-DISCONT:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DISCONT:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-RESYNC:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-RESYNC:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-CORRUPTED:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-CORRUPTED:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-MARKER:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-MARKER:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-HEADER:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-HEADER:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-GAP:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-DROPPABLE:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DROPPABLE:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-DELTA-UNIT:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DELTA-UNIT:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-IN-CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IN-CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-LAST:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LAST:CAPS">
-<ANCHOR id="GstBufferCopyFlags" href="gstreamer-0.11/gstreamer-GstBuffer.html#GstBufferCopyFlags">
-<ANCHOR id="GST-BUFFER-COPY-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-NONE:CAPS">
-<ANCHOR id="GST-BUFFER-COPY-FLAGS:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-FLAGS:CAPS">
-<ANCHOR id="GST-BUFFER-COPY-TIMESTAMPS:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-TIMESTAMPS:CAPS">
-<ANCHOR id="GST-BUFFER-COPY-MEMORY:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-MEMORY:CAPS">
-<ANCHOR id="GST-BUFFER-COPY-MERGE:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-MERGE:CAPS">
-<ANCHOR id="GST-BUFFER-FLAGS:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAGS:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-IS-SET:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-SET:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-SET:CAPS">
-<ANCHOR id="GST-BUFFER-FLAG-UNSET:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS">
-<ANCHOR id="GST-META-TIMING-INFO:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-META-TIMING-INFO:CAPS">
-<ANCHOR id="GstMetaTiming" href="gstreamer-0.11/gstreamer-GstBuffer.html#GstMetaTiming">
-<ANCHOR id="GST-BUFFER-TIMESTAMP:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP:CAPS">
-<ANCHOR id="GST-BUFFER-DURATION:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-DURATION:CAPS">
-<ANCHOR id="GST-BUFFER-OFFSET:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET:CAPS">
-<ANCHOR id="GST-BUFFER-OFFSET-END:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END:CAPS">
-<ANCHOR id="GST-BUFFER-OFFSET-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS">
-<ANCHOR id="GST-BUFFER-DURATION-IS-VALID:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-DURATION-IS-VALID:CAPS">
-<ANCHOR id="GST-BUFFER-TIMESTAMP-IS-VALID:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-TIMESTAMP-IS-VALID:CAPS">
-<ANCHOR id="GST-BUFFER-OFFSET-IS-VALID:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-IS-VALID:CAPS">
-<ANCHOR id="GST-BUFFER-OFFSET-END-IS-VALID:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS">
-<ANCHOR id="GST-BUFFER-IS-DISCONT:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS">
-<ANCHOR id="GST-BUFFER-TRACE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-TRACE-NAME:CAPS">
-<ANCHOR id="gst-buffer-new" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-new">
-<ANCHOR id="gst-buffer-new-and-alloc" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-new-and-alloc">
-<ANCHOR id="gst-buffer-new-allocate" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-new-allocate">
-<ANCHOR id="gst-buffer-new-wrapped" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-new-wrapped">
-<ANCHOR id="gst-buffer-new-wrapped-full" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full">
-<ANCHOR id="gst-buffer-ref" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-ref">
-<ANCHOR id="gst-buffer-unref" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref">
-<ANCHOR id="gst-buffer-get-sizes" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-get-sizes">
-<ANCHOR id="gst-buffer-get-size" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-get-size">
-<ANCHOR id="gst-buffer-resize" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-resize">
-<ANCHOR id="gst-buffer-set-size" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-set-size">
-<ANCHOR id="gst-buffer-n-memory" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-n-memory">
-<ANCHOR id="gst-buffer-take-memory" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-take-memory">
-<ANCHOR id="gst-buffer-peek-memory" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-peek-memory">
-<ANCHOR id="gst-buffer-remove-memory" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-remove-memory">
-<ANCHOR id="gst-buffer-remove-memory-range" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-remove-memory-range">
-<ANCHOR id="gst-buffer-join" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-join">
-<ANCHOR id="gst-buffer-merge" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-merge">
-<ANCHOR id="gst-buffer-map" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-map">
-<ANCHOR id="gst-buffer-unmap" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unmap">
-<ANCHOR id="gst-buffer-memcmp" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-memcmp">
-<ANCHOR id="gst-buffer-extract" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-extract">
-<ANCHOR id="gst-buffer-fill" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-fill">
-<ANCHOR id="gst-buffer-memset" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-memset">
-<ANCHOR id="GST-BUFFER-COPY-METADATA:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-METADATA:CAPS">
-<ANCHOR id="GST-BUFFER-COPY-ALL:CAPS" href="gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-COPY-ALL:CAPS">
-<ANCHOR id="gst-buffer-copy" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-copy">
-<ANCHOR id="gst-buffer-copy-into" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-copy-into">
-<ANCHOR id="gst-buffer-copy-region" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-copy-region">
-<ANCHOR id="gst-buffer-is-writable" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-is-writable">
-<ANCHOR id="gst-buffer-make-writable" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-make-writable">
-<ANCHOR id="gst-buffer-replace" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-replace">
-<ANCHOR id="gst-buffer-is-span-fast" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-is-span-fast">
-<ANCHOR id="gst-buffer-span" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-span">
-<ANCHOR id="gst-buffer-get-meta" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-get-meta">
-<ANCHOR id="gst-buffer-add-meta" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-add-meta">
-<ANCHOR id="gst-buffer-remove-meta" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-remove-meta">
-<ANCHOR id="gst-buffer-iterate-meta" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-iterate-meta">
-<ANCHOR id="gst-buffer-add-meta-timing" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-add-meta-timing">
-<ANCHOR id="gst-buffer-get-meta-timing" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-get-meta-timing">
-<ANCHOR id="gst-meta-timing-get-info" href="gstreamer-0.11/gstreamer-GstBuffer.html#gst-meta-timing-get-info">
-<ANCHOR id="gstreamer-GstBuffer.see-also" href="gstreamer-0.11/gstreamer-GstBuffer.html#gstreamer-GstBuffer.see-also">
-<ANCHOR id="gstreamer-GstBufferList" href="gstreamer-0.11/gstreamer-GstBufferList.html">
-<ANCHOR id="gstreamer-GstBufferList.synopsis" href="gstreamer-0.11/gstreamer-GstBufferList.html#gstreamer-GstBufferList.synopsis">
-<ANCHOR id="gstreamer-GstBufferList.description" href="gstreamer-0.11/gstreamer-GstBufferList.html#gstreamer-GstBufferList.description">
-<ANCHOR id="gstreamer-GstBufferList.details" href="gstreamer-0.11/gstreamer-GstBufferList.html#gstreamer-GstBufferList.details">
-<ANCHOR id="GstBufferList" href="gstreamer-0.11/gstreamer-GstBufferList.html#GstBufferList">
-<ANCHOR id="gst-buffer-list-new" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-new">
-<ANCHOR id="gst-buffer-list-sized-new" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-sized-new">
-<ANCHOR id="gst-buffer-list-len" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-len">
-<ANCHOR id="gst-buffer-list-add" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-add">
-<ANCHOR id="gst-buffer-list-insert" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-insert">
-<ANCHOR id="gst-buffer-list-remove" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-remove">
-<ANCHOR id="gst-buffer-list-ref" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-ref">
-<ANCHOR id="gst-buffer-list-unref" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-unref">
-<ANCHOR id="gst-buffer-list-copy" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-copy">
-<ANCHOR id="gst-buffer-list-is-writable" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-is-writable">
-<ANCHOR id="gst-buffer-list-make-writable" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-make-writable">
-<ANCHOR id="GstBufferListFunc" href="gstreamer-0.11/gstreamer-GstBufferList.html#GstBufferListFunc">
-<ANCHOR id="gst-buffer-list-foreach" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-foreach">
-<ANCHOR id="gst-buffer-list-get" href="gstreamer-0.11/gstreamer-GstBufferList.html#gst-buffer-list-get">
-<ANCHOR id="gstreamer-GstBufferList.see-also" href="gstreamer-0.11/gstreamer-GstBufferList.html#gstreamer-GstBufferList.see-also">
-<ANCHOR id="gstreamer-GstBufferPool" href="gstreamer-0.11/gstreamer-GstBufferPool.html">
-<ANCHOR id="gstreamer-GstBufferPool.synopsis" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.synopsis">
-<ANCHOR id="gstreamer-GstBufferPool.description" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.description">
-<ANCHOR id="gstreamer-GstBufferPool.details" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.details">
-<ANCHOR id="GstBufferPool" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GstBufferPool">
-<ANCHOR id="GstBufferPoolClass" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GstBufferPoolClass">
-<ANCHOR id="GstBufferPoolFlags" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GstBufferPoolFlags">
-<ANCHOR id="GST-BUFFER-POOL-FLAG-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-NONE:CAPS">
-<ANCHOR id="GST-BUFFER-POOL-FLAG-KEY-UNIT:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-KEY-UNIT:CAPS">
-<ANCHOR id="GST-BUFFER-POOL-FLAG-DONTWAIT:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-DONTWAIT:CAPS">
-<ANCHOR id="GST-BUFFER-POOL-FLAG-DISCONT:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-DISCONT:CAPS">
-<ANCHOR id="GST-BUFFER-POOL-FLAG-LAST:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-FLAG-LAST:CAPS">
-<ANCHOR id="GST-BUFFER-POOL-IS-FLUSHING:CAPS" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-IS-FLUSHING:CAPS">
-<ANCHOR id="GstBufferPoolParams" href="gstreamer-0.11/gstreamer-GstBufferPool.html#GstBufferPoolParams">
-<ANCHOR id="gst-buffer-pool-new" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-new">
-<ANCHOR id="gst-buffer-pool-config-get" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-get">
-<ANCHOR id="gst-buffer-pool-config-set" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set">
-<ANCHOR id="gst-buffer-pool-config-add-option" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option">
-<ANCHOR id="gst-buffer-pool-config-get-option" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-option">
-<ANCHOR id="gst-buffer-pool-config-has-option" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-has-option">
-<ANCHOR id="gst-buffer-pool-config-n-options" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options">
-<ANCHOR id="gst-buffer-pool-get-options" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-get-options">
-<ANCHOR id="gst-buffer-pool-has-option" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-has-option">
-<ANCHOR id="gst-buffer-pool-get-config" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-get-config">
-<ANCHOR id="gst-buffer-pool-set-config" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-set-config">
-<ANCHOR id="gst-buffer-pool-set-active" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-set-active">
-<ANCHOR id="gst-buffer-pool-is-active" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-is-active">
-<ANCHOR id="gst-buffer-pool-acquire-buffer" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer">
-<ANCHOR id="gst-buffer-pool-release-buffer" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer">
-<ANCHOR id="gstreamer-GstBufferPool.see-also" href="gstreamer-0.11/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.see-also">
-<ANCHOR id="GstBus" href="gstreamer-0.11/GstBus.html">
-<ANCHOR id="GstBus.synopsis" href="gstreamer-0.11/GstBus.html#GstBus.synopsis">
-<ANCHOR id="GstBus.object-hierarchy" href="gstreamer-0.11/GstBus.html#GstBus.object-hierarchy">
-<ANCHOR id="GstBus.properties" href="gstreamer-0.11/GstBus.html#GstBus.properties">
-<ANCHOR id="GstBus.signals" href="gstreamer-0.11/GstBus.html#GstBus.signals">
-<ANCHOR id="GstBus.description" href="gstreamer-0.11/GstBus.html#GstBus.description">
-<ANCHOR id="GstBus.details" href="gstreamer-0.11/GstBus.html#GstBus.details">
-<ANCHOR id="GstBus-struct" href="gstreamer-0.11/GstBus.html#GstBus-struct">
-<ANCHOR id="GstBusFlags" href="gstreamer-0.11/GstBus.html#GstBusFlags">
-<ANCHOR id="GST-BUS-FLUSHING:CAPS" href="gstreamer-0.11/GstBus.html#GST-BUS-FLUSHING:CAPS">
-<ANCHOR id="GST-BUS-FLAG-LAST:CAPS" href="gstreamer-0.11/GstBus.html#GST-BUS-FLAG-LAST:CAPS">
-<ANCHOR id="GstBusSyncReply" href="gstreamer-0.11/GstBus.html#GstBusSyncReply">
-<ANCHOR id="GST-BUS-DROP:CAPS" href="gstreamer-0.11/GstBus.html#GST-BUS-DROP:CAPS">
-<ANCHOR id="GST-BUS-PASS:CAPS" href="gstreamer-0.11/GstBus.html#GST-BUS-PASS:CAPS">
-<ANCHOR id="GST-BUS-ASYNC:CAPS" href="gstreamer-0.11/GstBus.html#GST-BUS-ASYNC:CAPS">
-<ANCHOR id="GstBusFunc" href="gstreamer-0.11/GstBus.html#GstBusFunc">
-<ANCHOR id="GstBusSyncHandler" href="gstreamer-0.11/GstBus.html#GstBusSyncHandler">
-<ANCHOR id="gst-bus-new" href="gstreamer-0.11/GstBus.html#gst-bus-new">
-<ANCHOR id="gst-bus-post" href="gstreamer-0.11/GstBus.html#gst-bus-post">
-<ANCHOR id="gst-bus-have-pending" href="gstreamer-0.11/GstBus.html#gst-bus-have-pending">
-<ANCHOR id="gst-bus-peek" href="gstreamer-0.11/GstBus.html#gst-bus-peek">
-<ANCHOR id="gst-bus-pop" href="gstreamer-0.11/GstBus.html#gst-bus-pop">
-<ANCHOR id="gst-bus-pop-filtered" href="gstreamer-0.11/GstBus.html#gst-bus-pop-filtered">
-<ANCHOR id="gst-bus-timed-pop" href="gstreamer-0.11/GstBus.html#gst-bus-timed-pop">
-<ANCHOR id="gst-bus-timed-pop-filtered" href="gstreamer-0.11/GstBus.html#gst-bus-timed-pop-filtered">
-<ANCHOR id="gst-bus-set-flushing" href="gstreamer-0.11/GstBus.html#gst-bus-set-flushing">
-<ANCHOR id="gst-bus-set-sync-handler" href="gstreamer-0.11/GstBus.html#gst-bus-set-sync-handler">
-<ANCHOR id="gst-bus-sync-signal-handler" href="gstreamer-0.11/GstBus.html#gst-bus-sync-signal-handler">
-<ANCHOR id="gst-bus-create-watch" href="gstreamer-0.11/GstBus.html#gst-bus-create-watch">
-<ANCHOR id="gst-bus-add-watch-full" href="gstreamer-0.11/GstBus.html#gst-bus-add-watch-full">
-<ANCHOR id="gst-bus-add-watch" href="gstreamer-0.11/GstBus.html#gst-bus-add-watch">
-<ANCHOR id="gst-bus-disable-sync-message-emission" href="gstreamer-0.11/GstBus.html#gst-bus-disable-sync-message-emission">
-<ANCHOR id="gst-bus-enable-sync-message-emission" href="gstreamer-0.11/GstBus.html#gst-bus-enable-sync-message-emission">
-<ANCHOR id="gst-bus-async-signal-func" href="gstreamer-0.11/GstBus.html#gst-bus-async-signal-func">
-<ANCHOR id="gst-bus-add-signal-watch" href="gstreamer-0.11/GstBus.html#gst-bus-add-signal-watch">
-<ANCHOR id="gst-bus-add-signal-watch-full" href="gstreamer-0.11/GstBus.html#gst-bus-add-signal-watch-full">
-<ANCHOR id="gst-bus-remove-signal-watch" href="gstreamer-0.11/GstBus.html#gst-bus-remove-signal-watch">
-<ANCHOR id="gst-bus-poll" href="gstreamer-0.11/GstBus.html#gst-bus-poll">
-<ANCHOR id="GstBus.property-details" href="gstreamer-0.11/GstBus.html#GstBus.property-details">
-<ANCHOR id="GstBus--enable-async" href="gstreamer-0.11/GstBus.html#GstBus--enable-async">
-<ANCHOR id="GstBus.signal-details" href="gstreamer-0.11/GstBus.html#GstBus.signal-details">
-<ANCHOR id="GstBus-message" href="gstreamer-0.11/GstBus.html#GstBus-message">
-<ANCHOR id="GstBus-sync-message" href="gstreamer-0.11/GstBus.html#GstBus-sync-message">
-<ANCHOR id="GstBus.see-also" href="gstreamer-0.11/GstBus.html#GstBus.see-also">
-<ANCHOR id="gstreamer-GstCaps" href="gstreamer-0.11/gstreamer-GstCaps.html">
-<ANCHOR id="gstreamer-GstCaps.synopsis" href="gstreamer-0.11/gstreamer-GstCaps.html#gstreamer-GstCaps.synopsis">
-<ANCHOR id="gstreamer-GstCaps.description" href="gstreamer-0.11/gstreamer-GstCaps.html#gstreamer-GstCaps.description">
-<ANCHOR id="gstreamer-GstCaps.details" href="gstreamer-0.11/gstreamer-GstCaps.html#gstreamer-GstCaps.details">
-<ANCHOR id="GstCaps" href="gstreamer-0.11/gstreamer-GstCaps.html#GstCaps">
-<ANCHOR id="GstStaticCaps" href="gstreamer-0.11/gstreamer-GstCaps.html#GstStaticCaps">
-<ANCHOR id="GstCapsIntersectMode" href="gstreamer-0.11/gstreamer-GstCaps.html#GstCapsIntersectMode">
-<ANCHOR id="GST-CAPS-INTERSECT-ZIG-ZAG:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-INTERSECT-ZIG-ZAG:CAPS">
-<ANCHOR id="GST-CAPS-INTERSECT-FIRST:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-INTERSECT-FIRST:CAPS">
-<ANCHOR id="GstCapsFlags" href="gstreamer-0.11/gstreamer-GstCaps.html#GstCapsFlags">
-<ANCHOR id="GST-CAPS-FLAGS-ANY:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-FLAGS-ANY:CAPS">
-<ANCHOR id="GST-CAPS-ANY:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-ANY:CAPS">
-<ANCHOR id="GST-CAPS-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-NONE:CAPS">
-<ANCHOR id="GST-CAPS-REFCOUNT:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-REFCOUNT:CAPS">
-<ANCHOR id="GST-CAPS-REFCOUNT-VALUE:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-REFCOUNT-VALUE:CAPS">
-<ANCHOR id="GST-STATIC-CAPS-ANY:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-STATIC-CAPS-ANY:CAPS">
-<ANCHOR id="GST-STATIC-CAPS-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-STATIC-CAPS-NONE:CAPS">
-<ANCHOR id="GST-CAPS-IS-SIMPLE:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-IS-SIMPLE:CAPS">
-<ANCHOR id="GST-STATIC-CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-STATIC-CAPS">
-<ANCHOR id="GST-CAPS-FLAGS:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-FLAGS:CAPS">
-<ANCHOR id="GST-CAPS-FLAG-IS-SET:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-FLAG-IS-SET:CAPS">
-<ANCHOR id="GST-CAPS-FLAG-SET:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-FLAG-SET:CAPS">
-<ANCHOR id="GST-CAPS-FLAG-UNSET:CAPS" href="gstreamer-0.11/gstreamer-GstCaps.html#GST-CAPS-FLAG-UNSET:CAPS">
-<ANCHOR id="gst-caps-new-empty" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-new-empty">
-<ANCHOR id="gst-caps-new-any" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-new-any">
-<ANCHOR id="gst-caps-new-simple" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-new-simple">
-<ANCHOR id="gst-caps-new-full" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-new-full">
-<ANCHOR id="gst-caps-new-full-valist" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-new-full-valist">
-<ANCHOR id="gst-caps-is-writable" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-writable">
-<ANCHOR id="gst-caps-copy" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-copy">
-<ANCHOR id="gst-caps-copy-nth" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-copy-nth">
-<ANCHOR id="gst-static-caps-get" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-static-caps-get">
-<ANCHOR id="gst-static-caps-cleanup" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-static-caps-cleanup">
-<ANCHOR id="gst-caps-append" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-append">
-<ANCHOR id="gst-caps-merge" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-merge">
-<ANCHOR id="gst-caps-append-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-append-structure">
-<ANCHOR id="gst-caps-remove-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-remove-structure">
-<ANCHOR id="gst-caps-steal-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-steal-structure">
-<ANCHOR id="gst-caps-merge-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-merge-structure">
-<ANCHOR id="gst-caps-get-size" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-get-size">
-<ANCHOR id="gst-caps-get-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-get-structure">
-<ANCHOR id="gst-caps-set-value" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-set-value">
-<ANCHOR id="gst-caps-set-simple" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-set-simple">
-<ANCHOR id="gst-caps-set-simple-valist" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-set-simple-valist">
-<ANCHOR id="gst-caps-is-any" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-any">
-<ANCHOR id="gst-caps-is-empty" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-empty">
-<ANCHOR id="gst-caps-is-fixed" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-fixed">
-<ANCHOR id="gst-caps-is-equal" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-equal">
-<ANCHOR id="gst-caps-is-equal-fixed" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-equal-fixed">
-<ANCHOR id="gst-caps-is-always-compatible" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-always-compatible">
-<ANCHOR id="gst-caps-is-subset" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-subset">
-<ANCHOR id="gst-caps-is-subset-structure" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-is-subset-structure">
-<ANCHOR id="gst-caps-can-intersect" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-can-intersect">
-<ANCHOR id="gst-caps-intersect" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-intersect">
-<ANCHOR id="gst-caps-intersect-full" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-intersect-full">
-<ANCHOR id="gst-caps-union" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-union">
-<ANCHOR id="gst-caps-normalize" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-normalize">
-<ANCHOR id="gst-caps-do-simplify" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-do-simplify">
-<ANCHOR id="gst-caps-replace" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-replace">
-<ANCHOR id="gst-caps-to-string" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-to-string">
-<ANCHOR id="gst-caps-from-string" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-from-string">
-<ANCHOR id="gst-caps-subtract" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-subtract">
-<ANCHOR id="gst-caps-make-writable" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-make-writable">
-<ANCHOR id="gst-caps-ref" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-ref">
-<ANCHOR id="gst-caps-truncate" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-truncate">
-<ANCHOR id="gst-caps-fixate" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-fixate">
-<ANCHOR id="gst-caps-unref" href="gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-unref">
-<ANCHOR id="gstreamer-GstCaps.see-also" href="gstreamer-0.11/gstreamer-GstCaps.html#gstreamer-GstCaps.see-also">
-<ANCHOR id="GstChildProxy" href="gstreamer-0.11/GstChildProxy.html">
-<ANCHOR id="GstChildProxy.synopsis" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.synopsis">
-<ANCHOR id="GstChildProxy.object-hierarchy" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.object-hierarchy">
-<ANCHOR id="GstChildProxy.prerequisites" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.prerequisites">
-<ANCHOR id="GstChildProxy.implementations" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.implementations">
-<ANCHOR id="GstChildProxy.signals" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.signals">
-<ANCHOR id="GstChildProxy.description" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.description">
-<ANCHOR id="GstChildProxy.details" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.details">
-<ANCHOR id="GstChildProxy-struct" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy-struct">
-<ANCHOR id="GstChildProxyInterface" href="gstreamer-0.11/GstChildProxy.html#GstChildProxyInterface">
-<ANCHOR id="gst-child-proxy-get-children-count" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get-children-count">
-<ANCHOR id="gst-child-proxy-get-child-by-name" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get-child-by-name">
-<ANCHOR id="gst-child-proxy-get-child-by-index" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get-child-by-index">
-<ANCHOR id="gst-child-proxy-lookup" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-lookup">
-<ANCHOR id="gst-child-proxy-get-property" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get-property">
-<ANCHOR id="gst-child-proxy-get-valist" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get-valist">
-<ANCHOR id="gst-child-proxy-get" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-get">
-<ANCHOR id="gst-child-proxy-set-property" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-set-property">
-<ANCHOR id="gst-child-proxy-set-valist" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-set-valist">
-<ANCHOR id="gst-child-proxy-set" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-set">
-<ANCHOR id="gst-child-proxy-child-added" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-child-added">
-<ANCHOR id="gst-child-proxy-child-removed" href="gstreamer-0.11/GstChildProxy.html#gst-child-proxy-child-removed">
-<ANCHOR id="GstChildProxy.signal-details" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.signal-details">
-<ANCHOR id="GstChildProxy-child-added" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy-child-added">
-<ANCHOR id="GstChildProxy-child-removed" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy-child-removed">
-<ANCHOR id="GstChildProxy.see-also" href="gstreamer-0.11/GstChildProxy.html#GstChildProxy.see-also">
-<ANCHOR id="GstClock" href="gstreamer-0.11/GstClock.html">
-<ANCHOR id="GstClock.synopsis" href="gstreamer-0.11/GstClock.html#GstClock.synopsis">
-<ANCHOR id="GstClock.object-hierarchy" href="gstreamer-0.11/GstClock.html#GstClock.object-hierarchy">
-<ANCHOR id="GstClock.properties" href="gstreamer-0.11/GstClock.html#GstClock.properties">
-<ANCHOR id="GstClock.description" href="gstreamer-0.11/GstClock.html#GstClock.description">
-<ANCHOR id="GstClock.details" href="gstreamer-0.11/GstClock.html#GstClock.details">
-<ANCHOR id="GstClock-struct" href="gstreamer-0.11/GstClock.html#GstClock-struct">
-<ANCHOR id="GstClockClass" href="gstreamer-0.11/GstClock.html#GstClockClass">
-<ANCHOR id="GstClockTime" href="gstreamer-0.11/GstClock.html#GstClockTime">
-<ANCHOR id="GstClockTimeDiff" href="gstreamer-0.11/GstClock.html#GstClockTimeDiff">
-<ANCHOR id="GstClockID" href="gstreamer-0.11/GstClock.html#GstClockID">
-<ANCHOR id="GST-CLOCK-TIME-NONE:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS">
-<ANCHOR id="GST-CLOCK-TIME-IS-VALID:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-IS-VALID:CAPS">
-<ANCHOR id="GST-SECOND:CAPS" href="gstreamer-0.11/GstClock.html#GST-SECOND:CAPS">
-<ANCHOR id="GST-MSECOND:CAPS" href="gstreamer-0.11/GstClock.html#GST-MSECOND:CAPS">
-<ANCHOR id="GST-USECOND:CAPS" href="gstreamer-0.11/GstClock.html#GST-USECOND:CAPS">
-<ANCHOR id="GST-NSECOND:CAPS" href="gstreamer-0.11/GstClock.html#GST-NSECOND:CAPS">
-<ANCHOR id="GST-TIME-AS-SECONDS:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-AS-SECONDS:CAPS">
-<ANCHOR id="GST-TIME-AS-MSECONDS:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-AS-MSECONDS:CAPS">
-<ANCHOR id="GST-TIME-AS-USECONDS:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-AS-USECONDS:CAPS">
-<ANCHOR id="GST-TIME-AS-NSECONDS:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-AS-NSECONDS:CAPS">
-<ANCHOR id="GST-CLOCK-DIFF:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-DIFF:CAPS">
-<ANCHOR id="GST-TIMEVAL-TO-TIME:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIMEVAL-TO-TIME:CAPS">
-<ANCHOR id="GST-TIME-TO-TIMEVAL:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-TO-TIMEVAL:CAPS">
-<ANCHOR id="GST-TIMESPEC-TO-TIME:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIMESPEC-TO-TIME:CAPS">
-<ANCHOR id="GST-TIME-TO-TIMESPEC:CAPS" href="gstreamer-0.11/GstClock.html#GST-TIME-TO-TIMESPEC:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-TRACE-NAME:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-TRACE-NAME:CAPS">
-<ANCHOR id="GstClockEntry" href="gstreamer-0.11/GstClock.html#GstClockEntry">
-<ANCHOR id="GstClockCallback" href="gstreamer-0.11/GstClock.html#GstClockCallback">
-<ANCHOR id="GstClockEntryType" href="gstreamer-0.11/GstClock.html#GstClockEntryType">
-<ANCHOR id="GST-CLOCK-ENTRY-SINGLE:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-SINGLE:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-PERIODIC:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-PERIODIC:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-CLOCK:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-CLOCK:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-TYPE:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-TYPE:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-TIME:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-TIME:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-INTERVAL:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-INTERVAL:CAPS">
-<ANCHOR id="GST-CLOCK-ENTRY-STATUS:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ENTRY-STATUS:CAPS">
-<ANCHOR id="GstClockReturn" href="gstreamer-0.11/GstClock.html#GstClockReturn">
-<ANCHOR id="GST-CLOCK-OK:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-OK:CAPS">
-<ANCHOR id="GST-CLOCK-EARLY:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-EARLY:CAPS">
-<ANCHOR id="GST-CLOCK-UNSCHEDULED:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-UNSCHEDULED:CAPS">
-<ANCHOR id="GST-CLOCK-BUSY:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-BUSY:CAPS">
-<ANCHOR id="GST-CLOCK-BADTIME:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-BADTIME:CAPS">
-<ANCHOR id="GST-CLOCK-ERROR:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-ERROR:CAPS">
-<ANCHOR id="GST-CLOCK-UNSUPPORTED:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-UNSUPPORTED:CAPS">
-<ANCHOR id="GST-CLOCK-DONE:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-DONE:CAPS">
-<ANCHOR id="GstClockFlags" href="gstreamer-0.11/GstClock.html#GstClockFlags">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-SINGLE-SYNC:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-DO-SINGLE-SYNC:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-SINGLE-ASYNC:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-DO-SINGLE-ASYNC:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-PERIODIC-SYNC:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-DO-PERIODIC-SYNC:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-PERIODIC-ASYNC:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-DO-PERIODIC-ASYNC:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS">
-<ANCHOR id="GST-CLOCK-FLAG-LAST:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAG-LAST:CAPS">
-<ANCHOR id="GST-CLOCK-FLAGS:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-FLAGS:CAPS">
-<ANCHOR id="GST-CLOCK-BROADCAST:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-BROADCAST:CAPS">
-<ANCHOR id="GST-CLOCK-COND:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-COND:CAPS">
-<ANCHOR id="GST-CLOCK-TIMED-WAIT:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-TIMED-WAIT:CAPS">
-<ANCHOR id="GST-CLOCK-WAIT:CAPS" href="gstreamer-0.11/GstClock.html#GST-CLOCK-WAIT:CAPS">
-<ANCHOR id="gst-clock-add-observation" href="gstreamer-0.11/GstClock.html#gst-clock-add-observation">
-<ANCHOR id="gst-clock-set-master" href="gstreamer-0.11/GstClock.html#gst-clock-set-master">
-<ANCHOR id="gst-clock-get-master" href="gstreamer-0.11/GstClock.html#gst-clock-get-master">
-<ANCHOR id="gst-clock-set-resolution" href="gstreamer-0.11/GstClock.html#gst-clock-set-resolution">
-<ANCHOR id="gst-clock-get-resolution" href="gstreamer-0.11/GstClock.html#gst-clock-get-resolution">
-<ANCHOR id="gst-clock-get-time" href="gstreamer-0.11/GstClock.html#gst-clock-get-time">
-<ANCHOR id="gst-clock-new-single-shot-id" href="gstreamer-0.11/GstClock.html#gst-clock-new-single-shot-id">
-<ANCHOR id="gst-clock-new-periodic-id" href="gstreamer-0.11/GstClock.html#gst-clock-new-periodic-id">
-<ANCHOR id="gst-clock-single-shot-id-reinit" href="gstreamer-0.11/GstClock.html#gst-clock-single-shot-id-reinit">
-<ANCHOR id="gst-clock-periodic-id-reinit" href="gstreamer-0.11/GstClock.html#gst-clock-periodic-id-reinit">
-<ANCHOR id="gst-clock-get-internal-time" href="gstreamer-0.11/GstClock.html#gst-clock-get-internal-time">
-<ANCHOR id="gst-clock-adjust-unlocked" href="gstreamer-0.11/GstClock.html#gst-clock-adjust-unlocked">
-<ANCHOR id="gst-clock-unadjust-unlocked" href="gstreamer-0.11/GstClock.html#gst-clock-unadjust-unlocked">
-<ANCHOR id="gst-clock-get-calibration" href="gstreamer-0.11/GstClock.html#gst-clock-get-calibration">
-<ANCHOR id="gst-clock-set-calibration" href="gstreamer-0.11/GstClock.html#gst-clock-set-calibration">
-<ANCHOR id="gst-clock-id-get-time" href="gstreamer-0.11/GstClock.html#gst-clock-id-get-time">
-<ANCHOR id="gst-clock-id-wait" href="gstreamer-0.11/GstClock.html#gst-clock-id-wait">
-<ANCHOR id="gst-clock-id-wait-async" href="gstreamer-0.11/GstClock.html#gst-clock-id-wait-async">
-<ANCHOR id="gst-clock-id-wait-async-full" href="gstreamer-0.11/GstClock.html#gst-clock-id-wait-async-full">
-<ANCHOR id="gst-clock-id-unschedule" href="gstreamer-0.11/GstClock.html#gst-clock-id-unschedule">
-<ANCHOR id="gst-clock-id-compare-func" href="gstreamer-0.11/GstClock.html#gst-clock-id-compare-func">
-<ANCHOR id="gst-clock-id-ref" href="gstreamer-0.11/GstClock.html#gst-clock-id-ref">
-<ANCHOR id="gst-clock-id-unref" href="gstreamer-0.11/GstClock.html#gst-clock-id-unref">
-<ANCHOR id="GstClock.property-details" href="gstreamer-0.11/GstClock.html#GstClock.property-details">
-<ANCHOR id="GstClock--stats" href="gstreamer-0.11/GstClock.html#GstClock--stats">
-<ANCHOR id="GstClock--timeout" href="gstreamer-0.11/GstClock.html#GstClock--timeout">
-<ANCHOR id="GstClock--window-size" href="gstreamer-0.11/GstClock.html#GstClock--window-size">
-<ANCHOR id="GstClock--window-threshold" href="gstreamer-0.11/GstClock.html#GstClock--window-threshold">
-<ANCHOR id="GstClock.see-also" href="gstreamer-0.11/GstClock.html#GstClock.see-also">
-<ANCHOR id="gstreamer-gstconfig" href="gstreamer-0.11/gstreamer-gstconfig.html">
-<ANCHOR id="gstreamer-gstconfig.synopsis" href="gstreamer-0.11/gstreamer-gstconfig.html#gstreamer-gstconfig.synopsis">
-<ANCHOR id="gstreamer-gstconfig.description" href="gstreamer-0.11/gstreamer-gstconfig.html#gstreamer-gstconfig.description">
-<ANCHOR id="gstreamer-gstconfig.details" href="gstreamer-0.11/gstreamer-gstconfig.html#gstreamer-gstconfig.details">
-<ANCHOR id="GST-DISABLE-GST-DEBUG:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-GST-DEBUG:CAPS">
-<ANCHOR id="GST-DISABLE-PARSE:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-PARSE:CAPS">
-<ANCHOR id="GST-DISABLE-TRACE:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-TRACE:CAPS">
-<ANCHOR id="GST-DISABLE-ALLOC-TRACE:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-ALLOC-TRACE:CAPS">
-<ANCHOR id="GST-DISABLE-REGISTRY:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-REGISTRY:CAPS">
-<ANCHOR id="GST-DISABLE-PLUGIN:CAPS" href="gstreamer-0.11/gstreamer-gstconfig.html#GST-DISABLE-PLUGIN:CAPS">
-<ANCHOR id="gstreamer-GstDateTime" href="gstreamer-0.11/gstreamer-GstDateTime.html">
-<ANCHOR id="gstreamer-GstDateTime.synopsis" href="gstreamer-0.11/gstreamer-GstDateTime.html#gstreamer-GstDateTime.synopsis">
-<ANCHOR id="gstreamer-GstDateTime.description" href="gstreamer-0.11/gstreamer-GstDateTime.html#gstreamer-GstDateTime.description">
-<ANCHOR id="gstreamer-GstDateTime.details" href="gstreamer-0.11/gstreamer-GstDateTime.html#gstreamer-GstDateTime.details">
-<ANCHOR id="GstDateTime" href="gstreamer-0.11/gstreamer-GstDateTime.html#GstDateTime">
-<ANCHOR id="GST-TYPE-DATE-TIME:CAPS" href="gstreamer-0.11/gstreamer-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS">
-<ANCHOR id="gst-date-time-get-day" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-day">
-<ANCHOR id="gst-date-time-get-month" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-month">
-<ANCHOR id="gst-date-time-get-hour" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-hour">
-<ANCHOR id="gst-date-time-get-microsecond" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-microsecond">
-<ANCHOR id="gst-date-time-get-minute" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-minute">
-<ANCHOR id="gst-date-time-get-time-zone-offset" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-time-zone-offset">
-<ANCHOR id="gst-date-time-get-second" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-second">
-<ANCHOR id="gst-date-time-get-year" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-get-year">
-<ANCHOR id="gst-date-time-new" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new">
-<ANCHOR id="gst-date-time-new-from-unix-epoch-local-time" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time">
-<ANCHOR id="gst-date-time-new-from-unix-epoch-utc" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc">
-<ANCHOR id="gst-date-time-new-local-time" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new-local-time">
-<ANCHOR id="gst-date-time-new-now-local-time" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new-now-local-time">
-<ANCHOR id="gst-date-time-new-now-utc" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-new-now-utc">
-<ANCHOR id="gst-date-time-ref" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-ref">
-<ANCHOR id="gst-date-time-unref" href="gstreamer-0.11/gstreamer-GstDateTime.html#gst-date-time-unref">
-<ANCHOR id="GstElement" href="gstreamer-0.11/GstElement.html">
-<ANCHOR id="GstElement.synopsis" href="gstreamer-0.11/GstElement.html#GstElement.synopsis">
-<ANCHOR id="GstElement.object-hierarchy" href="gstreamer-0.11/GstElement.html#GstElement.object-hierarchy">
-<ANCHOR id="GstElement.derived-interfaces" href="gstreamer-0.11/GstElement.html#GstElement.derived-interfaces">
-<ANCHOR id="GstElement.signals" href="gstreamer-0.11/GstElement.html#GstElement.signals">
-<ANCHOR id="GstElement.description" href="gstreamer-0.11/GstElement.html#GstElement.description">
-<ANCHOR id="GstElement.details" href="gstreamer-0.11/GstElement.html#GstElement.details">
-<ANCHOR id="GstElement-struct" href="gstreamer-0.11/GstElement.html#GstElement-struct">
-<ANCHOR id="GstElementClass" href="gstreamer-0.11/GstElement.html#GstElementClass">
-<ANCHOR id="GstElementFlags" href="gstreamer-0.11/GstElement.html#GstElementFlags">
-<ANCHOR id="GST-ELEMENT-LOCKED-STATE:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-LOCKED-STATE:CAPS">
-<ANCHOR id="GST-ELEMENT-IS-SINK:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-IS-SINK:CAPS">
-<ANCHOR id="GST-ELEMENT-UNPARENTING:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-UNPARENTING:CAPS">
-<ANCHOR id="GST-ELEMENT-IS-SOURCE:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-IS-SOURCE:CAPS">
-<ANCHOR id="GST-ELEMENT-FLAG-LAST:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-FLAG-LAST:CAPS">
-<ANCHOR id="GstState" href="gstreamer-0.11/GstElement.html#GstState">
-<ANCHOR id="GST-STATE-VOID-PENDING:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-VOID-PENDING:CAPS">
-<ANCHOR id="GST-STATE-NULL:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-NULL:CAPS">
-<ANCHOR id="GST-STATE-READY:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-READY:CAPS">
-<ANCHOR id="GST-STATE-PAUSED:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-PAUSED:CAPS">
-<ANCHOR id="GST-STATE-PLAYING:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-PLAYING:CAPS">
-<ANCHOR id="GstStateChange" href="gstreamer-0.11/GstElement.html#GstStateChange">
-<ANCHOR id="GST-STATE-CHANGE-NULL-TO-READY:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-NULL-TO-READY:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-READY-TO-PAUSED:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-READY-TO-PAUSED:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-PAUSED-TO-READY:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-PAUSED-TO-READY:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-READY-TO-NULL:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-READY-TO-NULL:CAPS">
-<ANCHOR id="GstStateChangeReturn" href="gstreamer-0.11/GstElement.html#GstStateChangeReturn">
-<ANCHOR id="GST-STATE-CHANGE-FAILURE:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-FAILURE:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-SUCCESS:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-ASYNC:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS">
-<ANCHOR id="GST-STATE-CHANGE-NO-PREROLL:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS">
-<ANCHOR id="GST-STATE:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE:CAPS">
-<ANCHOR id="GST-STATE-GET-NEXT:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-GET-NEXT:CAPS">
-<ANCHOR id="GST-STATE-NEXT:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-NEXT:CAPS">
-<ANCHOR id="GST-STATE-PENDING:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-PENDING:CAPS">
-<ANCHOR id="GST-STATE-RETURN:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-RETURN:CAPS">
-<ANCHOR id="GST-STATE-TARGET:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-TARGET:CAPS">
-<ANCHOR id="GST-STATE-TRANSITION:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-TRANSITION:CAPS">
-<ANCHOR id="GST-STATE-TRANSITION-CURRENT:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-TRANSITION-CURRENT:CAPS">
-<ANCHOR id="GST-STATE-TRANSITION-NEXT:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-TRANSITION-NEXT:CAPS">
-<ANCHOR id="GST-STATE-GET-LOCK:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-GET-LOCK:CAPS">
-<ANCHOR id="GST-STATE-GET-COND:CAPS" href="gstreamer-0.11/GstElement.html#GST-STATE-GET-COND:CAPS">
-<ANCHOR id="GST-ELEMENT-NAME:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-NAME:CAPS">
-<ANCHOR id="GST-ELEMENT-PARENT:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-PARENT:CAPS">
-<ANCHOR id="GST-ELEMENT-BUS:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-BUS:CAPS">
-<ANCHOR id="GST-ELEMENT-CLOCK:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-CLOCK:CAPS">
-<ANCHOR id="GST-ELEMENT-PADS:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-PADS:CAPS">
-<ANCHOR id="GST-ELEMENT-START-TIME:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-START-TIME:CAPS">
-<ANCHOR id="GST-ELEMENT-ERROR:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-ERROR:CAPS">
-<ANCHOR id="GST-ELEMENT-WARNING:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-WARNING:CAPS">
-<ANCHOR id="GST-ELEMENT-INFO:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-INFO:CAPS">
-<ANCHOR id="GST-ELEMENT-IS-LOCKED-STATE:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-AUTHOR:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-AUTHOR:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-DESCRIPTION:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-DESCRIPTION:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-DOC-URI:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-DOC-URI:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-ICON-NAME:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-ICON-NAME:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-KLASS:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-KLASS:CAPS">
-<ANCHOR id="GST-ELEMENT-METADATA-LONGNAME:CAPS" href="gstreamer-0.11/GstElement.html#GST-ELEMENT-METADATA-LONGNAME:CAPS">
-<ANCHOR id="gst-element-class-add-pad-template" href="gstreamer-0.11/GstElement.html#gst-element-class-add-pad-template">
-<ANCHOR id="gst-element-class-get-pad-template" href="gstreamer-0.11/GstElement.html#gst-element-class-get-pad-template">
-<ANCHOR id="gst-element-class-get-pad-template-list" href="gstreamer-0.11/GstElement.html#gst-element-class-get-pad-template-list">
-<ANCHOR id="gst-element-class-install-std-props" href="gstreamer-0.11/GstElement.html#gst-element-class-install-std-props">
-<ANCHOR id="gst-element-class-set-metadata" href="gstreamer-0.11/GstElement.html#gst-element-class-set-metadata">
-<ANCHOR id="gst-element-class-add-metadata" href="gstreamer-0.11/GstElement.html#gst-element-class-add-metadata">
-<ANCHOR id="gst-element-add-pad" href="gstreamer-0.11/GstElement.html#gst-element-add-pad">
-<ANCHOR id="gst-element-create-all-pads" href="gstreamer-0.11/GstElement.html#gst-element-create-all-pads">
-<ANCHOR id="gst-element-get-compatible-pad" href="gstreamer-0.11/GstElement.html#gst-element-get-compatible-pad">
-<ANCHOR id="gst-element-get-compatible-pad-template" href="gstreamer-0.11/GstElement.html#gst-element-get-compatible-pad-template">
-<ANCHOR id="gst-element-get-request-pad" href="gstreamer-0.11/GstElement.html#gst-element-get-request-pad">
-<ANCHOR id="gst-element-get-static-pad" href="gstreamer-0.11/GstElement.html#gst-element-get-static-pad">
-<ANCHOR id="gst-element-request-pad" href="gstreamer-0.11/GstElement.html#gst-element-request-pad">
-<ANCHOR id="gst-element-no-more-pads" href="gstreamer-0.11/GstElement.html#gst-element-no-more-pads">
-<ANCHOR id="gst-element-release-request-pad" href="gstreamer-0.11/GstElement.html#gst-element-release-request-pad">
-<ANCHOR id="gst-element-remove-pad" href="gstreamer-0.11/GstElement.html#gst-element-remove-pad">
-<ANCHOR id="gst-element-iterate-pads" href="gstreamer-0.11/GstElement.html#gst-element-iterate-pads">
-<ANCHOR id="gst-element-iterate-sink-pads" href="gstreamer-0.11/GstElement.html#gst-element-iterate-sink-pads">
-<ANCHOR id="gst-element-iterate-src-pads" href="gstreamer-0.11/GstElement.html#gst-element-iterate-src-pads">
-<ANCHOR id="gst-element-link" href="gstreamer-0.11/GstElement.html#gst-element-link">
-<ANCHOR id="gst-element-unlink" href="gstreamer-0.11/GstElement.html#gst-element-unlink">
-<ANCHOR id="gst-element-link-many" href="gstreamer-0.11/GstElement.html#gst-element-link-many">
-<ANCHOR id="gst-element-unlink-many" href="gstreamer-0.11/GstElement.html#gst-element-unlink-many">
-<ANCHOR id="gst-element-link-pads" href="gstreamer-0.11/GstElement.html#gst-element-link-pads">
-<ANCHOR id="gst-element-link-pads-full" href="gstreamer-0.11/GstElement.html#gst-element-link-pads-full">
-<ANCHOR id="gst-element-unlink-pads" href="gstreamer-0.11/GstElement.html#gst-element-unlink-pads">
-<ANCHOR id="gst-element-link-pads-filtered" href="gstreamer-0.11/GstElement.html#gst-element-link-pads-filtered">
-<ANCHOR id="gst-element-link-filtered" href="gstreamer-0.11/GstElement.html#gst-element-link-filtered">
-<ANCHOR id="gst-element-class-get-metadata" href="gstreamer-0.11/GstElement.html#gst-element-class-get-metadata">
-<ANCHOR id="gst-element-set-base-time" href="gstreamer-0.11/GstElement.html#gst-element-set-base-time">
-<ANCHOR id="gst-element-get-base-time" href="gstreamer-0.11/GstElement.html#gst-element-get-base-time">
-<ANCHOR id="gst-element-set-start-time" href="gstreamer-0.11/GstElement.html#gst-element-set-start-time">
-<ANCHOR id="gst-element-get-start-time" href="gstreamer-0.11/GstElement.html#gst-element-get-start-time">
-<ANCHOR id="gst-element-set-bus" href="gstreamer-0.11/GstElement.html#gst-element-set-bus">
-<ANCHOR id="gst-element-get-bus" href="gstreamer-0.11/GstElement.html#gst-element-get-bus">
-<ANCHOR id="gst-element-get-factory" href="gstreamer-0.11/GstElement.html#gst-element-get-factory">
-<ANCHOR id="gst-element-set-index" href="gstreamer-0.11/GstElement.html#gst-element-set-index">
-<ANCHOR id="gst-element-get-index" href="gstreamer-0.11/GstElement.html#gst-element-get-index">
-<ANCHOR id="gst-element-is-indexable" href="gstreamer-0.11/GstElement.html#gst-element-is-indexable">
-<ANCHOR id="gst-element-set-name" href="gstreamer-0.11/GstElement.html#gst-element-set-name">
-<ANCHOR id="gst-element-get-name" href="gstreamer-0.11/GstElement.html#gst-element-get-name">
-<ANCHOR id="gst-element-set-parent" href="gstreamer-0.11/GstElement.html#gst-element-set-parent">
-<ANCHOR id="gst-element-get-parent" href="gstreamer-0.11/GstElement.html#gst-element-get-parent">
-<ANCHOR id="gst-element-requires-clock" href="gstreamer-0.11/GstElement.html#gst-element-requires-clock">
-<ANCHOR id="gst-element-set-clock" href="gstreamer-0.11/GstElement.html#gst-element-set-clock">
-<ANCHOR id="gst-element-get-clock" href="gstreamer-0.11/GstElement.html#gst-element-get-clock">
-<ANCHOR id="gst-element-provides-clock" href="gstreamer-0.11/GstElement.html#gst-element-provides-clock">
-<ANCHOR id="gst-element-provide-clock" href="gstreamer-0.11/GstElement.html#gst-element-provide-clock">
-<ANCHOR id="gst-element-set-state" href="gstreamer-0.11/GstElement.html#gst-element-set-state">
-<ANCHOR id="gst-element-get-state" href="gstreamer-0.11/GstElement.html#gst-element-get-state">
-<ANCHOR id="gst-element-set-locked-state" href="gstreamer-0.11/GstElement.html#gst-element-set-locked-state">
-<ANCHOR id="gst-element-is-locked-state" href="gstreamer-0.11/GstElement.html#gst-element-is-locked-state">
-<ANCHOR id="gst-element-abort-state" href="gstreamer-0.11/GstElement.html#gst-element-abort-state">
-<ANCHOR id="gst-element-continue-state" href="gstreamer-0.11/GstElement.html#gst-element-continue-state">
-<ANCHOR id="gst-element-lost-state" href="gstreamer-0.11/GstElement.html#gst-element-lost-state">
-<ANCHOR id="gst-element-state-get-name" href="gstreamer-0.11/GstElement.html#gst-element-state-get-name">
-<ANCHOR id="gst-element-state-change-return-get-name" href="gstreamer-0.11/GstElement.html#gst-element-state-change-return-get-name">
-<ANCHOR id="gst-element-sync-state-with-parent" href="gstreamer-0.11/GstElement.html#gst-element-sync-state-with-parent">
-<ANCHOR id="gst-element-change-state" href="gstreamer-0.11/GstElement.html#gst-element-change-state">
-<ANCHOR id="gst-element-found-tags" href="gstreamer-0.11/GstElement.html#gst-element-found-tags">
-<ANCHOR id="gst-element-found-tags-for-pad" href="gstreamer-0.11/GstElement.html#gst-element-found-tags-for-pad">
-<ANCHOR id="gst-element-message-full" href="gstreamer-0.11/GstElement.html#gst-element-message-full">
-<ANCHOR id="gst-element-post-message" href="gstreamer-0.11/GstElement.html#gst-element-post-message">
-<ANCHOR id="gst-element-get-query-types" href="gstreamer-0.11/GstElement.html#gst-element-get-query-types">
-<ANCHOR id="gst-element-query" href="gstreamer-0.11/GstElement.html#gst-element-query">
-<ANCHOR id="gst-element-query-convert" href="gstreamer-0.11/GstElement.html#gst-element-query-convert">
-<ANCHOR id="gst-element-query-position" href="gstreamer-0.11/GstElement.html#gst-element-query-position">
-<ANCHOR id="gst-element-query-duration" href="gstreamer-0.11/GstElement.html#gst-element-query-duration">
-<ANCHOR id="gst-element-send-event" href="gstreamer-0.11/GstElement.html#gst-element-send-event">
-<ANCHOR id="gst-element-seek-simple" href="gstreamer-0.11/GstElement.html#gst-element-seek-simple">
-<ANCHOR id="gst-element-seek" href="gstreamer-0.11/GstElement.html#gst-element-seek">
-<ANCHOR id="GstElement.signal-details" href="gstreamer-0.11/GstElement.html#GstElement.signal-details">
-<ANCHOR id="GstElement-no-more-pads" href="gstreamer-0.11/GstElement.html#GstElement-no-more-pads">
-<ANCHOR id="GstElement-pad-added" href="gstreamer-0.11/GstElement.html#GstElement-pad-added">
-<ANCHOR id="GstElement-pad-removed" href="gstreamer-0.11/GstElement.html#GstElement-pad-removed">
-<ANCHOR id="GstElement.see-also" href="gstreamer-0.11/GstElement.html#GstElement.see-also">
-<ANCHOR id="GstElementFactory" href="gstreamer-0.11/GstElementFactory.html">
-<ANCHOR id="GstElementFactory.synopsis" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory.synopsis">
-<ANCHOR id="GstElementFactory.object-hierarchy" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory.object-hierarchy">
-<ANCHOR id="GstElementFactory.description" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory.description">
-<ANCHOR id="GstElementFactory.details" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory.details">
-<ANCHOR id="GstElementFactory-struct" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory-struct">
-<ANCHOR id="gst-element-register" href="gstreamer-0.11/GstElementFactory.html#gst-element-register">
-<ANCHOR id="gst-element-factory-find" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-find">
-<ANCHOR id="gst-element-factory-get-element-type" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-element-type">
-<ANCHOR id="gst-element-factory-get-metadata" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-metadata">
-<ANCHOR id="gst-element-factory-get-num-pad-templates" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-num-pad-templates">
-<ANCHOR id="gst-element-factory-get-uri-type" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-uri-type">
-<ANCHOR id="gst-element-factory-get-uri-protocols" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-uri-protocols">
-<ANCHOR id="gst-element-factory-has-interface" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-has-interface">
-<ANCHOR id="gst-element-factory-create" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-create">
-<ANCHOR id="gst-element-factory-make" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-make">
-<ANCHOR id="gst-element-factory-can-sink-all-caps" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-can-sink-all-caps">
-<ANCHOR id="gst-element-factory-can-src-all-caps" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-can-src-all-caps">
-<ANCHOR id="gst-element-factory-can-sink-any-caps" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-can-sink-any-caps">
-<ANCHOR id="gst-element-factory-can-src-any-caps" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-can-src-any-caps">
-<ANCHOR id="gst-element-factory-get-static-pad-templates" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-get-static-pad-templates">
-<ANCHOR id="GstElementFactoryListType" href="gstreamer-0.11/GstElementFactory.html#GstElementFactoryListType">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-ANY:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ANY:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DECODER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DEMUXER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEMUXER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DEPAYLOADER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEPAYLOADER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-ENCODER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ENCODER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-FORMATTER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-FORMATTER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MAX-ELEMENTS:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MAX-ELEMENTS:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-AUDIO:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-AUDIO:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-IMAGE:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-IMAGE:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-METADATA:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-METADATA:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-SUBTITLE:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-SUBTITLE:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-VIDEO:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-VIDEO:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MUXER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MUXER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-PARSER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PARSER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-PAYLOADER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PAYLOADER:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-SINK:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SINK:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-SRC:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SRC:CAPS">
-<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS" href="gstreamer-0.11/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS">
-<ANCHOR id="gst-element-factory-list-filter" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-list-filter">
-<ANCHOR id="gst-element-factory-list-get-elements" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-list-get-elements">
-<ANCHOR id="gst-element-factory-list-is-type" href="gstreamer-0.11/GstElementFactory.html#gst-element-factory-list-is-type">
-<ANCHOR id="GstElementFactory.see-also" href="gstreamer-0.11/GstElementFactory.html#GstElementFactory.see-also">
-<ANCHOR id="gstreamer-GstGError" href="gstreamer-0.11/gstreamer-GstGError.html">
-<ANCHOR id="gstreamer-GstGError.synopsis" href="gstreamer-0.11/gstreamer-GstGError.html#gstreamer-GstGError.synopsis">
-<ANCHOR id="gstreamer-GstGError.description" href="gstreamer-0.11/gstreamer-GstGError.html#gstreamer-GstGError.description">
-<ANCHOR id="gstreamer-GstGError.details" href="gstreamer-0.11/gstreamer-GstGError.html#gstreamer-GstGError.details">
-<ANCHOR id="GstCoreError" href="gstreamer-0.11/gstreamer-GstGError.html#GstCoreError">
-<ANCHOR id="GST-CORE-ERROR-FAILED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-FAILED:CAPS">
-<ANCHOR id="GST-CORE-ERROR-TOO-LAZY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-TOO-LAZY:CAPS">
-<ANCHOR id="GST-CORE-ERROR-NOT-IMPLEMENTED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-NOT-IMPLEMENTED:CAPS">
-<ANCHOR id="GST-CORE-ERROR-STATE-CHANGE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-STATE-CHANGE:CAPS">
-<ANCHOR id="GST-CORE-ERROR-PAD:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-PAD:CAPS">
-<ANCHOR id="GST-CORE-ERROR-THREAD:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-THREAD:CAPS">
-<ANCHOR id="GST-CORE-ERROR-NEGOTIATION:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-NEGOTIATION:CAPS">
-<ANCHOR id="GST-CORE-ERROR-EVENT:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-EVENT:CAPS">
-<ANCHOR id="GST-CORE-ERROR-SEEK:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-SEEK:CAPS">
-<ANCHOR id="GST-CORE-ERROR-CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-CAPS">
-<ANCHOR id="GST-CORE-ERROR-TAG:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-TAG:CAPS">
-<ANCHOR id="GST-CORE-ERROR-MISSING-PLUGIN:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-MISSING-PLUGIN:CAPS">
-<ANCHOR id="GST-CORE-ERROR-CLOCK:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-CLOCK:CAPS">
-<ANCHOR id="GST-CORE-ERROR-DISABLED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-DISABLED:CAPS">
-<ANCHOR id="GST-CORE-ERROR-NUM-ERRORS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR-NUM-ERRORS:CAPS">
-<ANCHOR id="GstLibraryError" href="gstreamer-0.11/gstreamer-GstGError.html#GstLibraryError">
-<ANCHOR id="GST-LIBRARY-ERROR-FAILED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-FAILED:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-TOO-LAZY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-TOO-LAZY:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-INIT:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-INIT:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-SHUTDOWN:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-SHUTDOWN:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-SETTINGS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-SETTINGS:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-ENCODE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-ENCODE:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR-NUM-ERRORS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR-NUM-ERRORS:CAPS">
-<ANCHOR id="GstResourceError" href="gstreamer-0.11/gstreamer-GstGError.html#GstResourceError">
-<ANCHOR id="GST-RESOURCE-ERROR-FAILED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-FAILED:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-TOO-LAZY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-TOO-LAZY:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-NOT-FOUND:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NOT-FOUND:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-BUSY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-BUSY:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-OPEN-READ:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-READ:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-OPEN-WRITE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-WRITE:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-OPEN-READ-WRITE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-READ-WRITE:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-CLOSE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-CLOSE:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-READ:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-READ:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-WRITE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-WRITE:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-SEEK:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SEEK:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-SYNC:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SYNC:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-SETTINGS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SETTINGS:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-NO-SPACE-LEFT:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NO-SPACE-LEFT:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR-NUM-ERRORS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NUM-ERRORS:CAPS">
-<ANCHOR id="GstStreamError" href="gstreamer-0.11/gstreamer-GstGError.html#GstStreamError">
-<ANCHOR id="GST-STREAM-ERROR-FAILED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-FAILED:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-TOO-LAZY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-TOO-LAZY:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-NOT-IMPLEMENTED:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-NOT-IMPLEMENTED:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-TYPE-NOT-FOUND:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-TYPE-NOT-FOUND:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-WRONG-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-WRONG-TYPE:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-CODEC-NOT-FOUND:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-CODEC-NOT-FOUND:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-DECODE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-DECODE:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-ENCODE:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-ENCODE:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-DEMUX:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-DEMUX:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-MUX:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-MUX:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-FORMAT:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-FORMAT:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-DECRYPT:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-DECRYPT:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-DECRYPT-NOKEY:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-DECRYPT-NOKEY:CAPS">
-<ANCHOR id="GST-STREAM-ERROR-NUM-ERRORS:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR-NUM-ERRORS:CAPS">
-<ANCHOR id="GST-CORE-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-CORE-ERROR:CAPS">
-<ANCHOR id="GST-LIBRARY-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-LIBRARY-ERROR:CAPS">
-<ANCHOR id="GST-RESOURCE-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-RESOURCE-ERROR:CAPS">
-<ANCHOR id="GST-STREAM-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-STREAM-ERROR:CAPS">
-<ANCHOR id="GST-ERROR-SYSTEM:CAPS" href="gstreamer-0.11/gstreamer-GstGError.html#GST-ERROR-SYSTEM:CAPS">
-<ANCHOR id="gst-error-get-message" href="gstreamer-0.11/gstreamer-GstGError.html#gst-error-get-message">
-<ANCHOR id="gstreamer-GstGError.see-also" href="gstreamer-0.11/gstreamer-GstGError.html#gstreamer-GstGError.see-also">
-<ANCHOR id="gstreamer-GstEvent" href="gstreamer-0.11/gstreamer-GstEvent.html">
-<ANCHOR id="gstreamer-GstEvent.synopsis" href="gstreamer-0.11/gstreamer-GstEvent.html#gstreamer-GstEvent.synopsis">
-<ANCHOR id="gstreamer-GstEvent.description" href="gstreamer-0.11/gstreamer-GstEvent.html#gstreamer-GstEvent.description">
-<ANCHOR id="gstreamer-GstEvent.details" href="gstreamer-0.11/gstreamer-GstEvent.html#gstreamer-GstEvent.details">
-<ANCHOR id="GstEvent" href="gstreamer-0.11/gstreamer-GstEvent.html#GstEvent">
-<ANCHOR id="GstEventTypeFlags" href="gstreamer-0.11/gstreamer-GstEvent.html#GstEventTypeFlags">
-<ANCHOR id="GST-EVENT-TYPE-UPSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-UPSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-TYPE-DOWNSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-DOWNSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-TYPE-SERIALIZED:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-SERIALIZED:CAPS">
-<ANCHOR id="GST-EVENT-TYPE-STICKY:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY:CAPS">
-<ANCHOR id="GST-EVENT-TYPE-BOTH:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS">
-<ANCHOR id="GST-EVENT-MAKE-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS">
-<ANCHOR id="GstEventType" href="gstreamer-0.11/gstreamer-GstEvent.html#GstEventType">
-<ANCHOR id="GST-EVENT-UNKNOWN:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-UNKNOWN:CAPS">
-<ANCHOR id="GST-EVENT-FLUSH-START:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-FLUSH-START:CAPS">
-<ANCHOR id="GST-EVENT-FLUSH-STOP:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS">
-<ANCHOR id="GST-EVENT-CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CAPS">
-<ANCHOR id="GST-EVENT-SEGMENT:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-SEGMENT:CAPS">
-<ANCHOR id="GST-EVENT-TAG:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TAG:CAPS">
-<ANCHOR id="GST-EVENT-BUFFERSIZE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-BUFFERSIZE:CAPS">
-<ANCHOR id="GST-EVENT-SINK-MESSAGE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-SINK-MESSAGE:CAPS">
-<ANCHOR id="GST-EVENT-EOS:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS">
-<ANCHOR id="GST-EVENT-QOS:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-QOS:CAPS">
-<ANCHOR id="GST-EVENT-SEEK:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-SEEK:CAPS">
-<ANCHOR id="GST-EVENT-NAVIGATION:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-NAVIGATION:CAPS">
-<ANCHOR id="GST-EVENT-LATENCY:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-LATENCY:CAPS">
-<ANCHOR id="GST-EVENT-STEP:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-STEP:CAPS">
-<ANCHOR id="GST-EVENT-RECONFIGURE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-RECONFIGURE:CAPS">
-<ANCHOR id="GST-EVENT-CUSTOM-UPSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-UPSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-CUSTOM-DOWNSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS">
-<ANCHOR id="GST-EVENT-CUSTOM-BOTH:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH:CAPS">
-<ANCHOR id="GST-EVENT-CUSTOM-BOTH-OOB:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH-OOB:CAPS">
-<ANCHOR id="GST-EVENT-TRACE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TRACE-NAME:CAPS">
-<ANCHOR id="GST-EVENT-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS">
-<ANCHOR id="GST-EVENT-TYPE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TYPE-NAME:CAPS">
-<ANCHOR id="GST-EVENT-TIMESTAMP:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-TIMESTAMP:CAPS">
-<ANCHOR id="GST-EVENT-SEQNUM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-SEQNUM:CAPS">
-<ANCHOR id="GST-EVENT-IS-UPSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-IS-UPSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-IS-DOWNSTREAM:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-IS-DOWNSTREAM:CAPS">
-<ANCHOR id="GST-EVENT-IS-SERIALIZED:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-IS-SERIALIZED:CAPS">
-<ANCHOR id="GST-EVENT-IS-STICKY:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-EVENT-IS-STICKY:CAPS">
-<ANCHOR id="gst-event-type-get-flags" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-type-get-flags">
-<ANCHOR id="gst-event-type-get-name" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-type-get-name">
-<ANCHOR id="gst-event-type-to-quark" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-type-to-quark">
-<ANCHOR id="gst-event-ref" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-ref">
-<ANCHOR id="gst-event-unref" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-unref">
-<ANCHOR id="gst-event-replace" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-replace">
-<ANCHOR id="gst-event-copy" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-copy">
-<ANCHOR id="gst-event-steal" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-steal">
-<ANCHOR id="gst-event-take" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-take">
-<ANCHOR id="gst-event-is-writable" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-is-writable">
-<ANCHOR id="gst-event-make-writable" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-make-writable">
-<ANCHOR id="gst-event-writable-structure" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-writable-structure">
-<ANCHOR id="gst-event-new-custom" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-custom">
-<ANCHOR id="gst-event-get-structure" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-get-structure">
-<ANCHOR id="gst-event-has-name" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-has-name">
-<ANCHOR id="gst-event-get-seqnum" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-get-seqnum">
-<ANCHOR id="gst-event-set-seqnum" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-set-seqnum">
-<ANCHOR id="gst-event-new-flush-start" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-flush-start">
-<ANCHOR id="gst-event-new-flush-stop" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-flush-stop">
-<ANCHOR id="gst-event-parse-flush-stop" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-flush-stop">
-<ANCHOR id="gst-event-new-eos" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-eos">
-<ANCHOR id="gst-event-new-segment" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-segment">
-<ANCHOR id="gst-event-parse-segment" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-segment">
-<ANCHOR id="gst-event-copy-segment" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-copy-segment">
-<ANCHOR id="gst-event-new-tag" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-tag">
-<ANCHOR id="gst-event-parse-tag" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-tag">
-<ANCHOR id="gst-event-new-buffer-size" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-buffer-size">
-<ANCHOR id="gst-event-parse-buffer-size" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-buffer-size">
-<ANCHOR id="GstQOSType" href="gstreamer-0.11/gstreamer-GstEvent.html#GstQOSType">
-<ANCHOR id="GST-QOS-TYPE-OVERFLOW:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS">
-<ANCHOR id="GST-QOS-TYPE-UNDERFLOW:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS">
-<ANCHOR id="GST-QOS-TYPE-THROTTLE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-QOS-TYPE-THROTTLE:CAPS">
-<ANCHOR id="gst-event-new-qos" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-qos">
-<ANCHOR id="gst-event-parse-qos" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-qos">
-<ANCHOR id="GstSeekType" href="gstreamer-0.11/gstreamer-GstEvent.html#GstSeekType">
-<ANCHOR id="GST-SEEK-TYPE-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-TYPE-NONE:CAPS">
-<ANCHOR id="GST-SEEK-TYPE-CUR:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-TYPE-CUR:CAPS">
-<ANCHOR id="GST-SEEK-TYPE-SET:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-TYPE-SET:CAPS">
-<ANCHOR id="GST-SEEK-TYPE-END:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-TYPE-END:CAPS">
-<ANCHOR id="GstSeekFlags" href="gstreamer-0.11/gstreamer-GstEvent.html#GstSeekFlags">
-<ANCHOR id="GST-SEEK-FLAG-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-NONE:CAPS">
-<ANCHOR id="GST-SEEK-FLAG-FLUSH:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-FLUSH:CAPS">
-<ANCHOR id="GST-SEEK-FLAG-ACCURATE:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-ACCURATE:CAPS">
-<ANCHOR id="GST-SEEK-FLAG-KEY-UNIT:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS">
-<ANCHOR id="GST-SEEK-FLAG-SEGMENT:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-SEGMENT:CAPS">
-<ANCHOR id="GST-SEEK-FLAG-SKIP:CAPS" href="gstreamer-0.11/gstreamer-GstEvent.html#GST-SEEK-FLAG-SKIP:CAPS">
-<ANCHOR id="gst-event-new-seek" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-seek">
-<ANCHOR id="gst-event-parse-seek" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-seek">
-<ANCHOR id="gst-event-new-navigation" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-navigation">
-<ANCHOR id="gst-event-new-latency" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-latency">
-<ANCHOR id="gst-event-parse-latency" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-latency">
-<ANCHOR id="gst-event-new-step" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-step">
-<ANCHOR id="gst-event-parse-step" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-step">
-<ANCHOR id="gst-event-new-sink-message" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-sink-message">
-<ANCHOR id="gst-event-parse-sink-message" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-sink-message">
-<ANCHOR id="gst-event-new-reconfigure" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-reconfigure">
-<ANCHOR id="gst-event-new-caps" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-new-caps">
-<ANCHOR id="gst-event-parse-caps" href="gstreamer-0.11/gstreamer-GstEvent.html#gst-event-parse-caps">
-<ANCHOR id="gstreamer-GstEvent.see-also" href="gstreamer-0.11/gstreamer-GstEvent.html#gstreamer-GstEvent.see-also">
-<ANCHOR id="gstreamer-GstFilter" href="gstreamer-0.11/gstreamer-GstFilter.html">
-<ANCHOR id="gstreamer-GstFilter.synopsis" href="gstreamer-0.11/gstreamer-GstFilter.html#gstreamer-GstFilter.synopsis">
-<ANCHOR id="gstreamer-GstFilter.description" href="gstreamer-0.11/gstreamer-GstFilter.html#gstreamer-GstFilter.description">
-<ANCHOR id="gstreamer-GstFilter.details" href="gstreamer-0.11/gstreamer-GstFilter.html#gstreamer-GstFilter.details">
-<ANCHOR id="GstFilterFunc" href="gstreamer-0.11/gstreamer-GstFilter.html#GstFilterFunc">
-<ANCHOR id="gst-filter-run" href="gstreamer-0.11/gstreamer-GstFilter.html#gst-filter-run">
-<ANCHOR id="gstreamer-GstFormat" href="gstreamer-0.11/gstreamer-GstFormat.html">
-<ANCHOR id="gstreamer-GstFormat.synopsis" href="gstreamer-0.11/gstreamer-GstFormat.html#gstreamer-GstFormat.synopsis">
-<ANCHOR id="gstreamer-GstFormat.description" href="gstreamer-0.11/gstreamer-GstFormat.html#gstreamer-GstFormat.description">
-<ANCHOR id="gstreamer-GstFormat.details" href="gstreamer-0.11/gstreamer-GstFormat.html#gstreamer-GstFormat.details">
-<ANCHOR id="GstFormat" href="gstreamer-0.11/gstreamer-GstFormat.html#GstFormat">
-<ANCHOR id="GST-FORMAT-UNDEFINED:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-UNDEFINED:CAPS">
-<ANCHOR id="GST-FORMAT-DEFAULT:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS">
-<ANCHOR id="GST-FORMAT-BYTES:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS">
-<ANCHOR id="GST-FORMAT-TIME:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS">
-<ANCHOR id="GST-FORMAT-BUFFERS:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-BUFFERS:CAPS">
-<ANCHOR id="GST-FORMAT-PERCENT:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-PERCENT:CAPS">
-<ANCHOR id="GST-FORMAT-PERCENT-MAX:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-PERCENT-MAX:CAPS">
-<ANCHOR id="GST-FORMAT-PERCENT-SCALE:CAPS" href="gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-PERCENT-SCALE:CAPS">
-<ANCHOR id="GstFormatDefinition" href="gstreamer-0.11/gstreamer-GstFormat.html#GstFormatDefinition">
-<ANCHOR id="gst-format-get-name" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-get-name">
-<ANCHOR id="gst-format-to-quark" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-to-quark">
-<ANCHOR id="gst-format-register" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-register">
-<ANCHOR id="gst-format-get-by-nick" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-get-by-nick">
-<ANCHOR id="gst-formats-contains" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-formats-contains">
-<ANCHOR id="gst-format-get-details" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-get-details">
-<ANCHOR id="gst-format-iterate-definitions" href="gstreamer-0.11/gstreamer-GstFormat.html#gst-format-iterate-definitions">
-<ANCHOR id="gstreamer-GstFormat.see-also" href="gstreamer-0.11/gstreamer-GstFormat.html#gstreamer-GstFormat.see-also">
-<ANCHOR id="GstGhostPad" href="gstreamer-0.11/GstGhostPad.html">
-<ANCHOR id="GstGhostPad.synopsis" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad.synopsis">
-<ANCHOR id="GstProxyPad" href="gstreamer-0.11/GstGhostPad.html#GstProxyPad">
-<ANCHOR id="GstGhostPad.object-hierarchy" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad.object-hierarchy">
-<ANCHOR id="GstGhostPad.description" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad.description">
-<ANCHOR id="GstGhostPad.details" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad.details">
-<ANCHOR id="GstProxyPad-struct" href="gstreamer-0.11/GstGhostPad.html#GstProxyPad-struct">
-<ANCHOR id="GstGhostPad-struct" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad-struct">
-<ANCHOR id="gst-ghost-pad-new" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-new">
-<ANCHOR id="gst-ghost-pad-new-no-target" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-new-no-target">
-<ANCHOR id="gst-ghost-pad-new-from-template" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-new-from-template">
-<ANCHOR id="gst-ghost-pad-new-no-target-from-template" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-new-no-target-from-template">
-<ANCHOR id="gst-ghost-pad-set-target" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-set-target">
-<ANCHOR id="gst-ghost-pad-get-target" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-get-target">
-<ANCHOR id="gst-ghost-pad-construct" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-construct">
-<ANCHOR id="gst-ghost-pad-unlink-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-unlink-default">
-<ANCHOR id="gst-ghost-pad-link-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-link-default">
-<ANCHOR id="gst-ghost-pad-activate-pull-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-activate-pull-default">
-<ANCHOR id="gst-ghost-pad-activate-push-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-activate-push-default">
-<ANCHOR id="gst-ghost-pad-internal-activate-push-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-internal-activate-push-default">
-<ANCHOR id="gst-ghost-pad-internal-activate-pull-default" href="gstreamer-0.11/GstGhostPad.html#gst-ghost-pad-internal-activate-pull-default">
-<ANCHOR id="gst-proxy-pad-get-internal" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-get-internal">
-<ANCHOR id="gst-proxy-pad-query-type-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-query-type-default">
-<ANCHOR id="gst-proxy-pad-event-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-event-default">
-<ANCHOR id="gst-proxy-pad-query-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-query-default">
-<ANCHOR id="gst-proxy-pad-iterate-internal-links-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default">
-<ANCHOR id="gst-proxy-pad-chain-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-chain-default">
-<ANCHOR id="gst-proxy-pad-chain-list-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-chain-list-default">
-<ANCHOR id="gst-proxy-pad-getrange-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-getrange-default">
-<ANCHOR id="gst-proxy-pad-getcaps-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-getcaps-default">
-<ANCHOR id="gst-proxy-pad-acceptcaps-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-acceptcaps-default">
-<ANCHOR id="gst-proxy-pad-fixatecaps-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-fixatecaps-default">
-<ANCHOR id="gst-proxy-pad-unlink-default" href="gstreamer-0.11/GstGhostPad.html#gst-proxy-pad-unlink-default">
-<ANCHOR id="GstGhostPad.see-also" href="gstreamer-0.11/GstGhostPad.html#GstGhostPad.see-also">
-<ANCHOR id="GstIndex" href="gstreamer-0.11/GstIndex.html">
-<ANCHOR id="GstIndex.synopsis" href="gstreamer-0.11/GstIndex.html#GstIndex.synopsis">
-<ANCHOR id="GstIndex.object-hierarchy" href="gstreamer-0.11/GstIndex.html#GstIndex.object-hierarchy">
-<ANCHOR id="GstIndex.properties" href="gstreamer-0.11/GstIndex.html#GstIndex.properties">
-<ANCHOR id="GstIndex.signals" href="gstreamer-0.11/GstIndex.html#GstIndex.signals">
-<ANCHOR id="GstIndex.description" href="gstreamer-0.11/GstIndex.html#GstIndex.description">
-<ANCHOR id="GstIndex.details" href="gstreamer-0.11/GstIndex.html#GstIndex.details">
-<ANCHOR id="GstIndex-struct" href="gstreamer-0.11/GstIndex.html#GstIndex-struct">
-<ANCHOR id="GstIndexEntry" href="gstreamer-0.11/GstIndex.html#GstIndexEntry">
-<ANCHOR id="GstIndexGroup" href="gstreamer-0.11/GstIndex.html#GstIndexGroup">
-<ANCHOR id="GstIndexCertainty" href="gstreamer-0.11/GstIndex.html#GstIndexCertainty">
-<ANCHOR id="GST-INDEX-UNKNOWN:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-UNKNOWN:CAPS">
-<ANCHOR id="GST-INDEX-CERTAIN:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-CERTAIN:CAPS">
-<ANCHOR id="GST-INDEX-FUZZY:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-FUZZY:CAPS">
-<ANCHOR id="GstIndexEntryType" href="gstreamer-0.11/GstIndex.html#GstIndexEntryType">
-<ANCHOR id="GST-INDEX-ENTRY-ID:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ENTRY-ID:CAPS">
-<ANCHOR id="GST-INDEX-ENTRY-ASSOCIATION:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ENTRY-ASSOCIATION:CAPS">
-<ANCHOR id="GST-INDEX-ENTRY-OBJECT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ENTRY-OBJECT:CAPS">
-<ANCHOR id="GST-INDEX-ENTRY-FORMAT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ENTRY-FORMAT:CAPS">
-<ANCHOR id="GstIndexLookupMethod" href="gstreamer-0.11/GstIndex.html#GstIndexLookupMethod">
-<ANCHOR id="GST-INDEX-LOOKUP-EXACT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-LOOKUP-EXACT:CAPS">
-<ANCHOR id="GST-INDEX-LOOKUP-BEFORE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-LOOKUP-BEFORE:CAPS">
-<ANCHOR id="GST-INDEX-LOOKUP-AFTER:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-LOOKUP-AFTER:CAPS">
-<ANCHOR id="GST-INDEX-NASSOCS:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-NASSOCS:CAPS">
-<ANCHOR id="GST-INDEX-ASSOC-FLAGS:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ASSOC-FLAGS:CAPS">
-<ANCHOR id="GST-INDEX-ASSOC-FORMAT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ASSOC-FORMAT:CAPS">
-<ANCHOR id="GST-INDEX-ASSOC-VALUE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ASSOC-VALUE:CAPS">
-<ANCHOR id="GstIndexAssociation" href="gstreamer-0.11/GstIndex.html#GstIndexAssociation">
-<ANCHOR id="GstAssocFlags" href="gstreamer-0.11/GstIndex.html#GstAssocFlags">
-<ANCHOR id="GST-ASSOCIATION-FLAG-NONE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-ASSOCIATION-FLAG-NONE:CAPS">
-<ANCHOR id="GST-ASSOCIATION-FLAG-KEY-UNIT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-ASSOCIATION-FLAG-KEY-UNIT:CAPS">
-<ANCHOR id="GST-ASSOCIATION-FLAG-DELTA-UNIT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-ASSOCIATION-FLAG-DELTA-UNIT:CAPS">
-<ANCHOR id="GST-ASSOCIATION-FLAG-LAST:CAPS" href="gstreamer-0.11/GstIndex.html#GST-ASSOCIATION-FLAG-LAST:CAPS">
-<ANCHOR id="GST-INDEX-FORMAT-FORMAT:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-FORMAT-FORMAT:CAPS">
-<ANCHOR id="GST-INDEX-FORMAT-KEY:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-FORMAT-KEY:CAPS">
-<ANCHOR id="GST-INDEX-ID-INVALID:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ID-INVALID:CAPS">
-<ANCHOR id="GST-INDEX-ID-DESCRIPTION:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-ID-DESCRIPTION:CAPS">
-<ANCHOR id="GstIndexFilter" href="gstreamer-0.11/GstIndex.html#GstIndexFilter">
-<ANCHOR id="GstIndexResolverMethod" href="gstreamer-0.11/GstIndex.html#GstIndexResolverMethod">
-<ANCHOR id="GST-INDEX-RESOLVER-CUSTOM:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-RESOLVER-CUSTOM:CAPS">
-<ANCHOR id="GST-INDEX-RESOLVER-GTYPE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-RESOLVER-GTYPE:CAPS">
-<ANCHOR id="GST-INDEX-RESOLVER-PATH:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-RESOLVER-PATH:CAPS">
-<ANCHOR id="GstIndexResolver" href="gstreamer-0.11/GstIndex.html#GstIndexResolver">
-<ANCHOR id="GstIndexFlags" href="gstreamer-0.11/GstIndex.html#GstIndexFlags">
-<ANCHOR id="GST-INDEX-WRITABLE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-WRITABLE:CAPS">
-<ANCHOR id="GST-INDEX-READABLE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-READABLE:CAPS">
-<ANCHOR id="GST-INDEX-FLAG-LAST:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-FLAG-LAST:CAPS">
-<ANCHOR id="GST-INDEX-IS-READABLE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-IS-READABLE:CAPS">
-<ANCHOR id="GST-INDEX-IS-WRITABLE:CAPS" href="gstreamer-0.11/GstIndex.html#GST-INDEX-IS-WRITABLE:CAPS">
-<ANCHOR id="gst-index-new" href="gstreamer-0.11/GstIndex.html#gst-index-new">
-<ANCHOR id="gst-index-commit" href="gstreamer-0.11/GstIndex.html#gst-index-commit">
-<ANCHOR id="gst-index-get-group" href="gstreamer-0.11/GstIndex.html#gst-index-get-group">
-<ANCHOR id="gst-index-new-group" href="gstreamer-0.11/GstIndex.html#gst-index-new-group">
-<ANCHOR id="gst-index-set-group" href="gstreamer-0.11/GstIndex.html#gst-index-set-group">
-<ANCHOR id="gst-index-set-certainty" href="gstreamer-0.11/GstIndex.html#gst-index-set-certainty">
-<ANCHOR id="gst-index-get-certainty" href="gstreamer-0.11/GstIndex.html#gst-index-get-certainty">
-<ANCHOR id="gst-index-set-filter" href="gstreamer-0.11/GstIndex.html#gst-index-set-filter">
-<ANCHOR id="gst-index-set-filter-full" href="gstreamer-0.11/GstIndex.html#gst-index-set-filter-full">
-<ANCHOR id="gst-index-set-resolver" href="gstreamer-0.11/GstIndex.html#gst-index-set-resolver">
-<ANCHOR id="gst-index-set-resolver-full" href="gstreamer-0.11/GstIndex.html#gst-index-set-resolver-full">
-<ANCHOR id="gst-index-get-writer-id" href="gstreamer-0.11/GstIndex.html#gst-index-get-writer-id">
-<ANCHOR id="gst-index-add-format" href="gstreamer-0.11/GstIndex.html#gst-index-add-format">
-<ANCHOR id="gst-index-add-association" href="gstreamer-0.11/GstIndex.html#gst-index-add-association">
-<ANCHOR id="gst-index-add-associationv" href="gstreamer-0.11/GstIndex.html#gst-index-add-associationv">
-<ANCHOR id="gst-index-add-object" href="gstreamer-0.11/GstIndex.html#gst-index-add-object">
-<ANCHOR id="gst-index-add-id" href="gstreamer-0.11/GstIndex.html#gst-index-add-id">
-<ANCHOR id="gst-index-get-assoc-entry" href="gstreamer-0.11/GstIndex.html#gst-index-get-assoc-entry">
-<ANCHOR id="gst-index-get-assoc-entry-full" href="gstreamer-0.11/GstIndex.html#gst-index-get-assoc-entry-full">
-<ANCHOR id="gst-index-entry-copy" href="gstreamer-0.11/GstIndex.html#gst-index-entry-copy">
-<ANCHOR id="gst-index-entry-free" href="gstreamer-0.11/GstIndex.html#gst-index-entry-free">
-<ANCHOR id="gst-index-entry-assoc-map" href="gstreamer-0.11/GstIndex.html#gst-index-entry-assoc-map">
-<ANCHOR id="GstIndex.property-details" href="gstreamer-0.11/GstIndex.html#GstIndex.property-details">
-<ANCHOR id="GstIndex--resolver" href="gstreamer-0.11/GstIndex.html#GstIndex--resolver">
-<ANCHOR id="GstIndex.signal-details" href="gstreamer-0.11/GstIndex.html#GstIndex.signal-details">
-<ANCHOR id="GstIndex-entry-added" href="gstreamer-0.11/GstIndex.html#GstIndex-entry-added">
-<ANCHOR id="GstIndex.see-also" href="gstreamer-0.11/GstIndex.html#GstIndex.see-also">
-<ANCHOR id="GstIndexFactory" href="gstreamer-0.11/GstIndexFactory.html">
-<ANCHOR id="GstIndexFactory.synopsis" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory.synopsis">
-<ANCHOR id="GstIndexFactory.object-hierarchy" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory.object-hierarchy">
-<ANCHOR id="GstIndexFactory.description" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory.description">
-<ANCHOR id="GstIndexFactory.details" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory.details">
-<ANCHOR id="GstIndexFactory-struct" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory-struct">
-<ANCHOR id="gst-index-factory-new" href="gstreamer-0.11/GstIndexFactory.html#gst-index-factory-new">
-<ANCHOR id="gst-index-factory-destroy" href="gstreamer-0.11/GstIndexFactory.html#gst-index-factory-destroy">
-<ANCHOR id="gst-index-factory-find" href="gstreamer-0.11/GstIndexFactory.html#gst-index-factory-find">
-<ANCHOR id="gst-index-factory-create" href="gstreamer-0.11/GstIndexFactory.html#gst-index-factory-create">
-<ANCHOR id="gst-index-factory-make" href="gstreamer-0.11/GstIndexFactory.html#gst-index-factory-make">
-<ANCHOR id="GstIndexFactory.see-also" href="gstreamer-0.11/GstIndexFactory.html#GstIndexFactory.see-also">
-<ANCHOR id="gstreamer-GstIterator" href="gstreamer-0.11/gstreamer-GstIterator.html">
-<ANCHOR id="gstreamer-GstIterator.synopsis" href="gstreamer-0.11/gstreamer-GstIterator.html#gstreamer-GstIterator.synopsis">
-<ANCHOR id="gstreamer-GstIterator.description" href="gstreamer-0.11/gstreamer-GstIterator.html#gstreamer-GstIterator.description">
-<ANCHOR id="gstreamer-GstIterator.details" href="gstreamer-0.11/gstreamer-GstIterator.html#gstreamer-GstIterator.details">
-<ANCHOR id="GstIterator" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIterator">
-<ANCHOR id="GstIteratorItem" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorItem">
-<ANCHOR id="GST-ITERATOR-ITEM-SKIP:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-SKIP:CAPS">
-<ANCHOR id="GST-ITERATOR-ITEM-PASS:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-PASS:CAPS">
-<ANCHOR id="GST-ITERATOR-ITEM-END:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-END:CAPS">
-<ANCHOR id="GstIteratorResult" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorResult">
-<ANCHOR id="GST-ITERATOR-DONE:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-DONE:CAPS">
-<ANCHOR id="GST-ITERATOR-OK:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-OK:CAPS">
-<ANCHOR id="GST-ITERATOR-RESYNC:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-RESYNC:CAPS">
-<ANCHOR id="GST-ITERATOR-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-ERROR:CAPS">
-<ANCHOR id="GstIteratorCopyFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorCopyFunction">
-<ANCHOR id="GstIteratorNextFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorNextFunction">
-<ANCHOR id="GstIteratorItemFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorItemFunction">
-<ANCHOR id="GstIteratorResyncFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorResyncFunction">
-<ANCHOR id="GstIteratorFreeFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorFreeFunction">
-<ANCHOR id="GstIteratorForeachFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorForeachFunction">
-<ANCHOR id="GstIteratorFoldFunction" href="gstreamer-0.11/gstreamer-GstIterator.html#GstIteratorFoldFunction">
-<ANCHOR id="GST-ITERATOR:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR:CAPS">
-<ANCHOR id="GST-ITERATOR-LOCK:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-LOCK:CAPS">
-<ANCHOR id="GST-ITERATOR-COOKIE:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-COOKIE:CAPS">
-<ANCHOR id="GST-ITERATOR-ORIG-COOKIE:CAPS" href="gstreamer-0.11/gstreamer-GstIterator.html#GST-ITERATOR-ORIG-COOKIE:CAPS">
-<ANCHOR id="gst-iterator-new" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-new">
-<ANCHOR id="gst-iterator-new-list" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-new-list">
-<ANCHOR id="gst-iterator-new-single" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-new-single">
-<ANCHOR id="gst-iterator-copy" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-copy">
-<ANCHOR id="gst-iterator-free" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-free">
-<ANCHOR id="gst-iterator-next" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-next">
-<ANCHOR id="gst-iterator-resync" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-resync">
-<ANCHOR id="gst-iterator-push" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-push">
-<ANCHOR id="gst-iterator-filter" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-filter">
-<ANCHOR id="gst-iterator-fold" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-fold">
-<ANCHOR id="gst-iterator-foreach" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-foreach">
-<ANCHOR id="gst-iterator-find-custom" href="gstreamer-0.11/gstreamer-GstIterator.html#gst-iterator-find-custom">
-<ANCHOR id="gstreamer-GstIterator.see-also" href="gstreamer-0.11/gstreamer-GstIterator.html#gstreamer-GstIterator.see-also">
-<ANCHOR id="gstreamer-GstMemory" href="gstreamer-0.11/gstreamer-GstMemory.html">
-<ANCHOR id="gstreamer-GstMemory.synopsis" href="gstreamer-0.11/gstreamer-GstMemory.html#gstreamer-GstMemory.synopsis">
-<ANCHOR id="gstreamer-GstMemory.description" href="gstreamer-0.11/gstreamer-GstMemory.html#gstreamer-GstMemory.description">
-<ANCHOR id="gstreamer-GstMemory.details" href="gstreamer-0.11/gstreamer-GstMemory.html#gstreamer-GstMemory.details">
-<ANCHOR id="GstMemory" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemory">
-<ANCHOR id="GstMemoryInfo" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryInfo">
-<ANCHOR id="GstAllocator" href="gstreamer-0.11/gstreamer-GstMemory.html#GstAllocator">
-<ANCHOR id="GST-MEMORY-IS-WRITABLE:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MEMORY-IS-WRITABLE:CAPS">
-<ANCHOR id="GstMemoryFlags" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryFlags">
-<ANCHOR id="GST-MEMORY-FLAG-READONLY:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MEMORY-FLAG-READONLY:CAPS">
-<ANCHOR id="GST-MEMORY-FLAG-NO-SHARE:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MEMORY-FLAG-NO-SHARE:CAPS">
-<ANCHOR id="GST-MEMORY-FLAG-LAST:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MEMORY-FLAG-LAST:CAPS">
-<ANCHOR id="GstMapFlags" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMapFlags">
-<ANCHOR id="GST-MAP-READ:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MAP-READ:CAPS">
-<ANCHOR id="GST-MAP-WRITE:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS">
-<ANCHOR id="GST-MAP-READWRITE:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS">
-<ANCHOR id="GstMemoryAllocFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryAllocFunction">
-<ANCHOR id="GstMemoryGetSizesFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryGetSizesFunction">
-<ANCHOR id="GstMemoryResizeFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryResizeFunction">
-<ANCHOR id="GstMemoryMapFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryMapFunction">
-<ANCHOR id="GstMemoryUnmapFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryUnmapFunction">
-<ANCHOR id="GstMemoryFreeFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryFreeFunction">
-<ANCHOR id="GstMemoryCopyFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryCopyFunction">
-<ANCHOR id="GstMemoryShareFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryShareFunction">
-<ANCHOR id="GstMemoryIsSpanFunction" href="gstreamer-0.11/gstreamer-GstMemory.html#GstMemoryIsSpanFunction">
-<ANCHOR id="gst-memory-alignment" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-alignment">
-<ANCHOR id="gst-allocator-alloc" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-allocator-alloc">
-<ANCHOR id="gst-memory-new-wrapped" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-new-wrapped">
-<ANCHOR id="gst-memory-ref" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-ref">
-<ANCHOR id="gst-memory-unref" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-unref">
-<ANCHOR id="gst-memory-get-sizes" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-get-sizes">
-<ANCHOR id="gst-memory-resize" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-resize">
-<ANCHOR id="gst-memory-map" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-map">
-<ANCHOR id="gst-memory-unmap" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-unmap">
-<ANCHOR id="gst-memory-copy" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-copy">
-<ANCHOR id="gst-memory-share" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-share">
-<ANCHOR id="gst-memory-is-span" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-memory-is-span">
-<ANCHOR id="GST-ALLOCATOR-SYSMEM:CAPS" href="gstreamer-0.11/gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS">
-<ANCHOR id="gst-allocator-find" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-allocator-find">
-<ANCHOR id="gst-allocator-register" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-allocator-register">
-<ANCHOR id="gst-allocator-set-default" href="gstreamer-0.11/gstreamer-GstMemory.html#gst-allocator-set-default">
-<ANCHOR id="gstreamer-GstMemory.see-also" href="gstreamer-0.11/gstreamer-GstMemory.html#gstreamer-GstMemory.see-also">
-<ANCHOR id="gstreamer-GstMessage" href="gstreamer-0.11/gstreamer-GstMessage.html">
-<ANCHOR id="gstreamer-GstMessage.synopsis" href="gstreamer-0.11/gstreamer-GstMessage.html#gstreamer-GstMessage.synopsis">
-<ANCHOR id="gstreamer-GstMessage.description" href="gstreamer-0.11/gstreamer-GstMessage.html#gstreamer-GstMessage.description">
-<ANCHOR id="gstreamer-GstMessage.details" href="gstreamer-0.11/gstreamer-GstMessage.html#gstreamer-GstMessage.details">
-<ANCHOR id="GstMessage" href="gstreamer-0.11/gstreamer-GstMessage.html#GstMessage">
-<ANCHOR id="GstMessageType" href="gstreamer-0.11/gstreamer-GstMessage.html#GstMessageType">
-<ANCHOR id="GST-MESSAGE-UNKNOWN:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-UNKNOWN:CAPS">
-<ANCHOR id="GST-MESSAGE-EOS:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS">
-<ANCHOR id="GST-MESSAGE-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-ERROR:CAPS">
-<ANCHOR id="GST-MESSAGE-WARNING:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-WARNING:CAPS">
-<ANCHOR id="GST-MESSAGE-INFO:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-INFO:CAPS">
-<ANCHOR id="GST-MESSAGE-TAG:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-TAG:CAPS">
-<ANCHOR id="GST-MESSAGE-BUFFERING:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-BUFFERING:CAPS">
-<ANCHOR id="GST-MESSAGE-STATE-CHANGED:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STATE-CHANGED:CAPS">
-<ANCHOR id="GST-MESSAGE-STATE-DIRTY:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STATE-DIRTY:CAPS">
-<ANCHOR id="GST-MESSAGE-STEP-DONE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STEP-DONE:CAPS">
-<ANCHOR id="GST-MESSAGE-CLOCK-PROVIDE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-CLOCK-PROVIDE:CAPS">
-<ANCHOR id="GST-MESSAGE-CLOCK-LOST:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-CLOCK-LOST:CAPS">
-<ANCHOR id="GST-MESSAGE-NEW-CLOCK:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-NEW-CLOCK:CAPS">
-<ANCHOR id="GST-MESSAGE-STRUCTURE-CHANGE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STRUCTURE-CHANGE:CAPS">
-<ANCHOR id="GST-MESSAGE-STREAM-STATUS:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STREAM-STATUS:CAPS">
-<ANCHOR id="GST-MESSAGE-APPLICATION:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-APPLICATION:CAPS">
-<ANCHOR id="GST-MESSAGE-ELEMENT:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS">
-<ANCHOR id="GST-MESSAGE-SEGMENT-START:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-START:CAPS">
-<ANCHOR id="GST-MESSAGE-SEGMENT-DONE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS">
-<ANCHOR id="GST-MESSAGE-DURATION:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-DURATION:CAPS">
-<ANCHOR id="GST-MESSAGE-LATENCY:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-LATENCY:CAPS">
-<ANCHOR id="GST-MESSAGE-ASYNC-START:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-START:CAPS">
-<ANCHOR id="GST-MESSAGE-ASYNC-DONE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS">
-<ANCHOR id="GST-MESSAGE-REQUEST-STATE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS">
-<ANCHOR id="GST-MESSAGE-STEP-START:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-STEP-START:CAPS">
-<ANCHOR id="GST-MESSAGE-QOS:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-QOS:CAPS">
-<ANCHOR id="GST-MESSAGE-PROGRESS:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS">
-<ANCHOR id="GST-MESSAGE-ANY:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-ANY:CAPS">
-<ANCHOR id="GST-MESSAGE-SRC:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">
-<ANCHOR id="GST-MESSAGE-SRC-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SRC-NAME:CAPS">
-<ANCHOR id="GST-MESSAGE-TIMESTAMP:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-TIMESTAMP:CAPS">
-<ANCHOR id="GST-MESSAGE-SEQNUM:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SEQNUM:CAPS">
-<ANCHOR id="GST-MESSAGE-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">
-<ANCHOR id="GST-MESSAGE-TYPE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS">
-<ANCHOR id="GST-MESSAGE-TRACE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-TRACE-NAME:CAPS">
-<ANCHOR id="gst-message-type-to-quark" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-type-to-quark">
-<ANCHOR id="gst-message-type-get-name" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-type-get-name">
-<ANCHOR id="gst-message-ref" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-ref">
-<ANCHOR id="gst-message-unref" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-unref">
-<ANCHOR id="gst-message-copy" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-copy">
-<ANCHOR id="gst-message-get-structure" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-get-structure">
-<ANCHOR id="gst-message-make-writable" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-make-writable">
-<ANCHOR id="gst-message-get-seqnum" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-get-seqnum">
-<ANCHOR id="gst-message-set-seqnum" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-set-seqnum">
-<ANCHOR id="gst-message-has-name" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-has-name">
-<ANCHOR id="gst-message-is-writable" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-is-writable">
-<ANCHOR id="gst-message-replace" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-replace">
-<ANCHOR id="gst-message-new-eos" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-eos">
-<ANCHOR id="gst-message-new-error" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-error">
-<ANCHOR id="gst-message-parse-error" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-error">
-<ANCHOR id="gst-message-new-warning" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-warning">
-<ANCHOR id="gst-message-parse-warning" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-warning">
-<ANCHOR id="gst-message-new-info" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-info">
-<ANCHOR id="gst-message-parse-info" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-info">
-<ANCHOR id="gst-message-new-tag" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-tag">
-<ANCHOR id="gst-message-parse-tag" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-tag">
-<ANCHOR id="gst-message-new-buffering" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-buffering">
-<ANCHOR id="gst-message-parse-buffering" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-buffering">
-<ANCHOR id="gst-message-set-buffering-stats" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-set-buffering-stats">
-<ANCHOR id="gst-message-parse-buffering-stats" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-buffering-stats">
-<ANCHOR id="gst-message-new-state-changed" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-state-changed">
-<ANCHOR id="gst-message-parse-state-changed" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-state-changed">
-<ANCHOR id="gst-message-new-state-dirty" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-state-dirty">
-<ANCHOR id="gst-message-new-step-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-step-done">
-<ANCHOR id="gst-message-parse-step-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-step-done">
-<ANCHOR id="gst-message-new-clock-provide" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-clock-provide">
-<ANCHOR id="gst-message-parse-clock-provide" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-clock-provide">
-<ANCHOR id="gst-message-new-clock-lost" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-clock-lost">
-<ANCHOR id="gst-message-parse-clock-lost" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-clock-lost">
-<ANCHOR id="gst-message-new-new-clock" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-new-clock">
-<ANCHOR id="gst-message-parse-new-clock" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-new-clock">
-<ANCHOR id="gst-message-new-application" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-application">
-<ANCHOR id="gst-message-new-element" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-element">
-<ANCHOR id="gst-message-new-custom" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-custom">
-<ANCHOR id="gst-message-new-segment-start" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-segment-start">
-<ANCHOR id="gst-message-parse-segment-start" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-segment-start">
-<ANCHOR id="gst-message-new-segment-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-segment-done">
-<ANCHOR id="gst-message-parse-segment-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-segment-done">
-<ANCHOR id="gst-message-new-duration" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-duration">
-<ANCHOR id="gst-message-parse-duration" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-duration">
-<ANCHOR id="gst-message-new-latency" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-latency">
-<ANCHOR id="gst-message-new-async-start" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-async-start">
-<ANCHOR id="gst-message-new-async-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-async-done">
-<ANCHOR id="gst-message-parse-async-done" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-async-done">
-<ANCHOR id="gst-message-new-step-start" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-step-start">
-<ANCHOR id="gst-message-parse-step-start" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-step-start">
-<ANCHOR id="gst-message-new-qos" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-qos">
-<ANCHOR id="gst-message-set-qos-values" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-set-qos-values">
-<ANCHOR id="gst-message-set-qos-stats" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-set-qos-stats">
-<ANCHOR id="gst-message-parse-qos" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-qos">
-<ANCHOR id="gst-message-parse-qos-values" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-qos-values">
-<ANCHOR id="gst-message-parse-qos-stats" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-qos-stats">
-<ANCHOR id="GstStructureChangeType" href="gstreamer-0.11/gstreamer-GstMessage.html#GstStructureChangeType">
-<ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS">
-<ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS">
-<ANCHOR id="gst-message-new-structure-change" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-structure-change">
-<ANCHOR id="gst-message-parse-structure-change" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-structure-change">
-<ANCHOR id="gst-message-new-request-state" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-request-state">
-<ANCHOR id="gst-message-parse-request-state" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-request-state">
-<ANCHOR id="GstStreamStatusType" href="gstreamer-0.11/gstreamer-GstMessage.html#GstStreamStatusType">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-CREATE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-CREATE:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-ENTER:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-ENTER:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-LEAVE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-LEAVE:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-DESTROY:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-DESTROY:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-START:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-START:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-PAUSE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-PAUSE:CAPS">
-<ANCHOR id="GST-STREAM-STATUS-TYPE-STOP:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-STOP:CAPS">
-<ANCHOR id="gst-message-new-stream-status" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-stream-status">
-<ANCHOR id="gst-message-parse-stream-status" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-stream-status">
-<ANCHOR id="gst-message-set-stream-status-object" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-set-stream-status-object">
-<ANCHOR id="gst-message-get-stream-status-object" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-get-stream-status-object">
-<ANCHOR id="GstProgressType" href="gstreamer-0.11/gstreamer-GstMessage.html#GstProgressType">
-<ANCHOR id="GST-PROGRESS-TYPE-START:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-START:CAPS">
-<ANCHOR id="GST-PROGRESS-TYPE-CONTINUE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-CONTINUE:CAPS">
-<ANCHOR id="GST-PROGRESS-TYPE-COMPLETE:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-COMPLETE:CAPS">
-<ANCHOR id="GST-PROGRESS-TYPE-CANCELED:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-CANCELED:CAPS">
-<ANCHOR id="GST-PROGRESS-TYPE-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-ERROR:CAPS">
-<ANCHOR id="gst-message-new-progress" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-new-progress">
-<ANCHOR id="gst-message-parse-progress" href="gstreamer-0.11/gstreamer-GstMessage.html#gst-message-parse-progress">
-<ANCHOR id="gstreamer-GstMessage.see-also" href="gstreamer-0.11/gstreamer-GstMessage.html#gstreamer-GstMessage.see-also">
-<ANCHOR id="gstreamer-GstMeta" href="gstreamer-0.11/gstreamer-GstMeta.html">
-<ANCHOR id="gstreamer-GstMeta.synopsis" href="gstreamer-0.11/gstreamer-GstMeta.html#gstreamer-GstMeta.synopsis">
-<ANCHOR id="gstreamer-GstMeta.description" href="gstreamer-0.11/gstreamer-GstMeta.html#gstreamer-GstMeta.description">
-<ANCHOR id="gstreamer-GstMeta.details" href="gstreamer-0.11/gstreamer-GstMeta.html#gstreamer-GstMeta.details">
-<ANCHOR id="GstMeta" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMeta">
-<ANCHOR id="GstMetaInfo" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMetaInfo">
-<ANCHOR id="GST-META-TRACE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstMeta.html#GST-META-TRACE-NAME:CAPS">
-<ANCHOR id="GstMetaInitFunction" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMetaInitFunction">
-<ANCHOR id="GstMetaFreeFunction" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMetaFreeFunction">
-<ANCHOR id="GstMetaCopyFunction" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMetaCopyFunction">
-<ANCHOR id="GstMetaTransformFunction" href="gstreamer-0.11/gstreamer-GstMeta.html#GstMetaTransformFunction">
-<ANCHOR id="gst-meta-register" href="gstreamer-0.11/gstreamer-GstMeta.html#gst-meta-register">
-<ANCHOR id="gst-meta-get-info" href="gstreamer-0.11/gstreamer-GstMeta.html#gst-meta-get-info">
-<ANCHOR id="gstreamer-GstMiniObject" href="gstreamer-0.11/gstreamer-GstMiniObject.html">
-<ANCHOR id="gstreamer-GstMiniObject.synopsis" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.synopsis">
-<ANCHOR id="gstreamer-GstMiniObject.description" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.description">
-<ANCHOR id="gstreamer-GstMiniObject.details" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.details">
-<ANCHOR id="GstMiniObject" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject">
-<ANCHOR id="GstMiniObjectFlags" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObjectFlags">
-<ANCHOR id="GST-MINI-OBJECT-FLAG-LAST:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS">
-<ANCHOR id="GstMiniObjectCopyFunction" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction">
-<ANCHOR id="GstMiniObjectDisposeFunction" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction">
-<ANCHOR id="GstMiniObjectFreeFunction" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction">
-<ANCHOR id="GstMiniObjectWeakNotify" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify">
-<ANCHOR id="GST-MINI-OBJECT-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-TYPE:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-FLAGS:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAGS:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-FLAG-IS-SET:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-IS-SET:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-FLAG-SET:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-SET:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-FLAG-UNSET:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-UNSET:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-REFCOUNT:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-SIZE:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS">
-<ANCHOR id="GST-DEFINE-MINI-OBJECT-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS">
-<ANCHOR id="gst-mini-object-init" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-init">
-<ANCHOR id="gst-mini-object-copy" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-copy">
-<ANCHOR id="gst-mini-object-is-writable" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-is-writable">
-<ANCHOR id="gst-mini-object-make-writable" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-make-writable">
-<ANCHOR id="gst-mini-object-ref" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-ref">
-<ANCHOR id="gst-mini-object-unref" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-unref">
-<ANCHOR id="gst-mini-object-weak-ref" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-weak-ref">
-<ANCHOR id="gst-mini-object-weak-unref" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-weak-unref">
-<ANCHOR id="gst-mini-object-replace" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-replace">
-<ANCHOR id="gst-mini-object-steal" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-steal">
-<ANCHOR id="gst-mini-object-take" href="gstreamer-0.11/gstreamer-GstMiniObject.html#gst-mini-object-take">
-<ANCHOR id="GstObject" href="gstreamer-0.11/GstObject.html">
-<ANCHOR id="GstObject.synopsis" href="gstreamer-0.11/GstObject.html#GstObject.synopsis">
-<ANCHOR id="GstObject.object-hierarchy" href="gstreamer-0.11/GstObject.html#GstObject.object-hierarchy">
-<ANCHOR id="GstObject.derived-interfaces" href="gstreamer-0.11/GstObject.html#GstObject.derived-interfaces">
-<ANCHOR id="GstObject.properties" href="gstreamer-0.11/GstObject.html#GstObject.properties">
-<ANCHOR id="GstObject.signals" href="gstreamer-0.11/GstObject.html#GstObject.signals">
-<ANCHOR id="GstObject.description" href="gstreamer-0.11/GstObject.html#GstObject.description">
-<ANCHOR id="GstObject.details" href="gstreamer-0.11/GstObject.html#GstObject.details">
-<ANCHOR id="GstObject-struct" href="gstreamer-0.11/GstObject.html#GstObject-struct">
-<ANCHOR id="GstObjectClass" href="gstreamer-0.11/GstObject.html#GstObjectClass">
-<ANCHOR id="GstObjectFlags" href="gstreamer-0.11/GstObject.html#GstObjectFlags">
-<ANCHOR id="GST-OBJECT-FLAG-LAST:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-FLAG-LAST:CAPS">
-<ANCHOR id="GST-OBJECT-FLAGS:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-FLAGS:CAPS">
-<ANCHOR id="GST-OBJECT-FLAG-IS-SET:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-FLAG-IS-SET:CAPS">
-<ANCHOR id="GST-OBJECT-FLAG-SET:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-FLAG-SET:CAPS">
-<ANCHOR id="GST-OBJECT-FLAG-UNSET:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-FLAG-UNSET:CAPS">
-<ANCHOR id="GST-OBJECT-NAME:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-NAME:CAPS">
-<ANCHOR id="GST-OBJECT-PARENT:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-PARENT:CAPS">
-<ANCHOR id="GST-OBJECT-REFCOUNT:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-REFCOUNT:CAPS">
-<ANCHOR id="GST-OBJECT-REFCOUNT-VALUE:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-REFCOUNT-VALUE:CAPS">
-<ANCHOR id="GST-OBJECT-LOCK:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-LOCK:CAPS">
-<ANCHOR id="GST-OBJECT-TRYLOCK:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-TRYLOCK:CAPS">
-<ANCHOR id="GST-OBJECT-UNLOCK:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-UNLOCK:CAPS">
-<ANCHOR id="GST-OBJECT-GET-LOCK:CAPS" href="gstreamer-0.11/GstObject.html#GST-OBJECT-GET-LOCK:CAPS">
-<ANCHOR id="gst-object-set-name" href="gstreamer-0.11/GstObject.html#gst-object-set-name">
-<ANCHOR id="gst-object-get-name" href="gstreamer-0.11/GstObject.html#gst-object-get-name">
-<ANCHOR id="gst-object-set-parent" href="gstreamer-0.11/GstObject.html#gst-object-set-parent">
-<ANCHOR id="gst-object-get-parent" href="gstreamer-0.11/GstObject.html#gst-object-get-parent">
-<ANCHOR id="gst-object-unparent" href="gstreamer-0.11/GstObject.html#gst-object-unparent">
-<ANCHOR id="gst-object-default-deep-notify" href="gstreamer-0.11/GstObject.html#gst-object-default-deep-notify">
-<ANCHOR id="gst-object-default-error" href="gstreamer-0.11/GstObject.html#gst-object-default-error">
-<ANCHOR id="gst-object-check-uniqueness" href="gstreamer-0.11/GstObject.html#gst-object-check-uniqueness">
-<ANCHOR id="gst-object-has-ancestor" href="gstreamer-0.11/GstObject.html#gst-object-has-ancestor">
-<ANCHOR id="gst-object-ref" href="gstreamer-0.11/GstObject.html#gst-object-ref">
-<ANCHOR id="gst-object-unref" href="gstreamer-0.11/GstObject.html#gst-object-unref">
-<ANCHOR id="gst-object-ref-sink" href="gstreamer-0.11/GstObject.html#gst-object-ref-sink">
-<ANCHOR id="gst-object-replace" href="gstreamer-0.11/GstObject.html#gst-object-replace">
-<ANCHOR id="gst-object-get-path-string" href="gstreamer-0.11/GstObject.html#gst-object-get-path-string">
-<ANCHOR id="GstObject.property-details" href="gstreamer-0.11/GstObject.html#GstObject.property-details">
-<ANCHOR id="GstObject--name" href="gstreamer-0.11/GstObject.html#GstObject--name">
-<ANCHOR id="GstObject--parent" href="gstreamer-0.11/GstObject.html#GstObject--parent">
-<ANCHOR id="GstObject.signal-details" href="gstreamer-0.11/GstObject.html#GstObject.signal-details">
-<ANCHOR id="GstObject-deep-notify" href="gstreamer-0.11/GstObject.html#GstObject-deep-notify">
-<ANCHOR id="GstPad" href="gstreamer-0.11/GstPad.html">
-<ANCHOR id="GstPad.synopsis" href="gstreamer-0.11/GstPad.html#GstPad.synopsis">
-<ANCHOR id="GstPad.object-hierarchy" href="gstreamer-0.11/GstPad.html#GstPad.object-hierarchy">
-<ANCHOR id="GstPad.properties" href="gstreamer-0.11/GstPad.html#GstPad.properties">
-<ANCHOR id="GstPad.signals" href="gstreamer-0.11/GstPad.html#GstPad.signals">
-<ANCHOR id="GstPad.description" href="gstreamer-0.11/GstPad.html#GstPad.description">
-<ANCHOR id="GstPad.details" href="gstreamer-0.11/GstPad.html#GstPad.details">
-<ANCHOR id="GstPad-struct" href="gstreamer-0.11/GstPad.html#GstPad-struct">
-<ANCHOR id="GstPadDirection" href="gstreamer-0.11/GstPad.html#GstPadDirection">
-<ANCHOR id="GST-PAD-UNKNOWN:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-UNKNOWN:CAPS">
-<ANCHOR id="GST-PAD-SRC:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-SRC:CAPS">
-<ANCHOR id="GST-PAD-SINK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-SINK:CAPS">
-<ANCHOR id="GstPadFlags" href="gstreamer-0.11/GstPad.html#GstPadFlags">
-<ANCHOR id="GST-PAD-BLOCKED:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-BLOCKED:CAPS">
-<ANCHOR id="GST-PAD-FLUSHING:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-FLUSHING:CAPS">
-<ANCHOR id="GST-PAD-IN-GETCAPS:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-IN-GETCAPS:CAPS">
-<ANCHOR id="GST-PAD-BLOCKING:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-BLOCKING:CAPS">
-<ANCHOR id="GST-PAD-NEED-RECONFIGURE:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-NEED-RECONFIGURE:CAPS">
-<ANCHOR id="GST-PAD-NEED-EVENTS:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-NEED-EVENTS:CAPS">
-<ANCHOR id="GST-PAD-FIXED-CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-FIXED-CAPS">
-<ANCHOR id="GST-PAD-FLAG-LAST:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-FLAG-LAST:CAPS">
-<ANCHOR id="GstPadLinkReturn" href="gstreamer-0.11/GstPad.html#GstPadLinkReturn">
-<ANCHOR id="GST-PAD-LINK-OK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-OK:CAPS">
-<ANCHOR id="GST-PAD-LINK-WRONG-HIERARCHY:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-WRONG-HIERARCHY:CAPS">
-<ANCHOR id="GST-PAD-LINK-WAS-LINKED:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-WAS-LINKED:CAPS">
-<ANCHOR id="GST-PAD-LINK-WRONG-DIRECTION:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-WRONG-DIRECTION:CAPS">
-<ANCHOR id="GST-PAD-LINK-NOFORMAT:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-NOFORMAT:CAPS">
-<ANCHOR id="GST-PAD-LINK-NOSCHED:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-NOSCHED:CAPS">
-<ANCHOR id="GST-PAD-LINK-REFUSED:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-REFUSED:CAPS">
-<ANCHOR id="GST-PAD-LINK-FAILED:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-FAILED:CAPS">
-<ANCHOR id="GST-PAD-LINK-SUCCESSFUL:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-SUCCESSFUL:CAPS">
-<ANCHOR id="GstPadLinkCheck" href="gstreamer-0.11/GstPad.html#GstPadLinkCheck">
-<ANCHOR id="GST-PAD-LINK-CHECK-NOTHING:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-CHECK-NOTHING:CAPS">
-<ANCHOR id="GST-PAD-LINK-CHECK-HIERARCHY:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-CHECK-HIERARCHY:CAPS">
-<ANCHOR id="GST-PAD-LINK-CHECK-TEMPLATE-CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-CHECK-TEMPLATE-CAPS">
-<ANCHOR id="GST-PAD-LINK-CHECK-CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-CHECK-CAPS">
-<ANCHOR id="GST-PAD-LINK-CHECK-DEFAULT:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS">
-<ANCHOR id="GstFlowReturn" href="gstreamer-0.11/GstPad.html#GstFlowReturn">
-<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS-2:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-SUCCESS-2:CAPS">
-<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS-1:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-SUCCESS-1:CAPS">
-<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-SUCCESS:CAPS">
-<ANCHOR id="GST-FLOW-RESEND:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-RESEND:CAPS">
-<ANCHOR id="GST-FLOW-OK:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS">
-<ANCHOR id="GST-FLOW-NOT-LINKED:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-NOT-LINKED:CAPS">
-<ANCHOR id="GST-FLOW-WRONG-STATE:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-WRONG-STATE:CAPS">
-<ANCHOR id="GST-FLOW-UNEXPECTED:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-UNEXPECTED:CAPS">
-<ANCHOR id="GST-FLOW-NOT-NEGOTIATED:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-NOT-NEGOTIATED:CAPS">
-<ANCHOR id="GST-FLOW-ERROR:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-ERROR:CAPS">
-<ANCHOR id="GST-FLOW-NOT-SUPPORTED:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS">
-<ANCHOR id="GST-FLOW-CUSTOM-ERROR:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-ERROR:CAPS">
-<ANCHOR id="GST-FLOW-CUSTOM-ERROR-1:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-ERROR-1:CAPS">
-<ANCHOR id="GST-FLOW-CUSTOM-ERROR-2:CAPS" href="gstreamer-0.11/GstPad.html#GST-FLOW-CUSTOM-ERROR-2:CAPS">
-<ANCHOR id="GstActivateMode" href="gstreamer-0.11/GstPad.html#GstActivateMode">
-<ANCHOR id="GST-ACTIVATE-NONE:CAPS" href="gstreamer-0.11/GstPad.html#GST-ACTIVATE-NONE:CAPS">
-<ANCHOR id="GST-ACTIVATE-PUSH:CAPS" href="gstreamer-0.11/GstPad.html#GST-ACTIVATE-PUSH:CAPS">
-<ANCHOR id="GST-ACTIVATE-PULL:CAPS" href="gstreamer-0.11/GstPad.html#GST-ACTIVATE-PULL:CAPS">
-<ANCHOR id="GstProbeReturn" href="gstreamer-0.11/GstPad.html#GstProbeReturn">
-<ANCHOR id="GST-PROBE-DROP:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-DROP:CAPS">
-<ANCHOR id="GST-PROBE-OK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-OK:CAPS">
-<ANCHOR id="GST-PROBE-REMOVE:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-REMOVE:CAPS">
-<ANCHOR id="GST-PROBE-PASS:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-PASS:CAPS">
-<ANCHOR id="GstProbeType" href="gstreamer-0.11/GstPad.html#GstProbeType">
-<ANCHOR id="GST-PROBE-TYPE-INVALID:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-INVALID:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-IDLE:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-IDLE:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-BLOCK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-BLOCK:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-BUFFER:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-BUFFER:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-BUFFER-LIST:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-BUFFER-LIST:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-EVENT:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-EVENT:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-PUSH:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-PUSH:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-PULL:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-PULL:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-BLOCKING:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-BLOCKING:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-DATA:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-DATA:CAPS">
-<ANCHOR id="GST-PROBE-TYPE-SCHEDULING:CAPS" href="gstreamer-0.11/GstPad.html#GST-PROBE-TYPE-SCHEDULING:CAPS">
-<ANCHOR id="gst-pad-get-name" href="gstreamer-0.11/GstPad.html#gst-pad-get-name">
-<ANCHOR id="gst-pad-get-direction" href="gstreamer-0.11/GstPad.html#gst-pad-get-direction">
-<ANCHOR id="gst-pad-get-parent" href="gstreamer-0.11/GstPad.html#gst-pad-get-parent">
-<ANCHOR id="gst-pad-get-parent-element" href="gstreamer-0.11/GstPad.html#gst-pad-get-parent-element">
-<ANCHOR id="gst-pad-get-pad-template" href="gstreamer-0.11/GstPad.html#gst-pad-get-pad-template">
-<ANCHOR id="gst-pad-link" href="gstreamer-0.11/GstPad.html#gst-pad-link">
-<ANCHOR id="gst-pad-link-full" href="gstreamer-0.11/GstPad.html#gst-pad-link-full">
-<ANCHOR id="gst-pad-unlink" href="gstreamer-0.11/GstPad.html#gst-pad-unlink">
-<ANCHOR id="gst-pad-is-linked" href="gstreamer-0.11/GstPad.html#gst-pad-is-linked">
-<ANCHOR id="gst-pad-can-link" href="gstreamer-0.11/GstPad.html#gst-pad-can-link">
-<ANCHOR id="gst-pad-get-caps" href="gstreamer-0.11/GstPad.html#gst-pad-get-caps">
-<ANCHOR id="gst-pad-get-caps-reffed" href="gstreamer-0.11/GstPad.html#gst-pad-get-caps-reffed">
-<ANCHOR id="gst-pad-get-allowed-caps" href="gstreamer-0.11/GstPad.html#gst-pad-get-allowed-caps">
-<ANCHOR id="gst-pad-get-current-caps" href="gstreamer-0.11/GstPad.html#gst-pad-get-current-caps">
-<ANCHOR id="gst-pad-get-pad-template-caps" href="gstreamer-0.11/GstPad.html#gst-pad-get-pad-template-caps">
-<ANCHOR id="gst-pad-set-caps" href="gstreamer-0.11/GstPad.html#gst-pad-set-caps">
-<ANCHOR id="gst-pad-get-peer" href="gstreamer-0.11/GstPad.html#gst-pad-get-peer">
-<ANCHOR id="gst-pad-peer-get-caps" href="gstreamer-0.11/GstPad.html#gst-pad-peer-get-caps">
-<ANCHOR id="gst-pad-peer-get-caps-reffed" href="gstreamer-0.11/GstPad.html#gst-pad-peer-get-caps-reffed">
-<ANCHOR id="gst-pad-use-fixed-caps" href="gstreamer-0.11/GstPad.html#gst-pad-use-fixed-caps">
-<ANCHOR id="gst-pad-has-current-caps" href="gstreamer-0.11/GstPad.html#gst-pad-has-current-caps">
-<ANCHOR id="gst-pad-get-sticky-event" href="gstreamer-0.11/GstPad.html#gst-pad-get-sticky-event">
-<ANCHOR id="GstPadStickyEventsForeachFunction" href="gstreamer-0.11/GstPad.html#GstPadStickyEventsForeachFunction">
-<ANCHOR id="gst-pad-sticky-events-foreach" href="gstreamer-0.11/GstPad.html#gst-pad-sticky-events-foreach">
-<ANCHOR id="gst-pad-is-active" href="gstreamer-0.11/GstPad.html#gst-pad-is-active">
-<ANCHOR id="gst-pad-is-blocked" href="gstreamer-0.11/GstPad.html#gst-pad-is-blocked">
-<ANCHOR id="gst-pad-is-blocking" href="gstreamer-0.11/GstPad.html#gst-pad-is-blocking">
-<ANCHOR id="GstPadProbeCallback" href="gstreamer-0.11/GstPad.html#GstPadProbeCallback">
-<ANCHOR id="gst-pad-add-probe" href="gstreamer-0.11/GstPad.html#gst-pad-add-probe">
-<ANCHOR id="gst-pad-remove-probe" href="gstreamer-0.11/GstPad.html#gst-pad-remove-probe">
-<ANCHOR id="gst-pad-get-offset" href="gstreamer-0.11/GstPad.html#gst-pad-get-offset">
-<ANCHOR id="gst-pad-set-offset" href="gstreamer-0.11/GstPad.html#gst-pad-set-offset">
-<ANCHOR id="gst-pad-new" href="gstreamer-0.11/GstPad.html#gst-pad-new">
-<ANCHOR id="gst-pad-new-from-template" href="gstreamer-0.11/GstPad.html#gst-pad-new-from-template">
-<ANCHOR id="gst-pad-new-from-static-template" href="gstreamer-0.11/GstPad.html#gst-pad-new-from-static-template">
-<ANCHOR id="gst-pad-set-chain-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-chain-function">
-<ANCHOR id="GstPadChainFunction" href="gstreamer-0.11/GstPad.html#GstPadChainFunction">
-<ANCHOR id="gst-pad-set-chain-list-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-chain-list-function">
-<ANCHOR id="GstPadChainListFunction" href="gstreamer-0.11/GstPad.html#GstPadChainListFunction">
-<ANCHOR id="gst-pad-get-range" href="gstreamer-0.11/GstPad.html#gst-pad-get-range">
-<ANCHOR id="gst-pad-set-getrange-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-getrange-function">
-<ANCHOR id="GstPadGetRangeFunction" href="gstreamer-0.11/GstPad.html#GstPadGetRangeFunction">
-<ANCHOR id="gst-pad-set-event-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-event-function">
-<ANCHOR id="GstPadEventFunction" href="gstreamer-0.11/GstPad.html#GstPadEventFunction">
-<ANCHOR id="gst-pad-set-link-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-link-function">
-<ANCHOR id="GstPadLinkFunction" href="gstreamer-0.11/GstPad.html#GstPadLinkFunction">
-<ANCHOR id="gst-pad-set-unlink-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-unlink-function">
-<ANCHOR id="GstPadUnlinkFunction" href="gstreamer-0.11/GstPad.html#GstPadUnlinkFunction">
-<ANCHOR id="gst-pad-accept-caps" href="gstreamer-0.11/GstPad.html#gst-pad-accept-caps">
-<ANCHOR id="gst-pad-set-acceptcaps-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-acceptcaps-function">
-<ANCHOR id="GstPadAcceptCapsFunction" href="gstreamer-0.11/GstPad.html#GstPadAcceptCapsFunction">
-<ANCHOR id="gst-pad-set-getcaps-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-getcaps-function">
-<ANCHOR id="GstPadGetCapsFunction" href="gstreamer-0.11/GstPad.html#GstPadGetCapsFunction">
-<ANCHOR id="gst-pad-proxy-getcaps" href="gstreamer-0.11/GstPad.html#gst-pad-proxy-getcaps">
-<ANCHOR id="gst-pad-fixate-caps" href="gstreamer-0.11/GstPad.html#gst-pad-fixate-caps">
-<ANCHOR id="gst-pad-set-fixatecaps-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-fixatecaps-function">
-<ANCHOR id="GstPadFixateCapsFunction" href="gstreamer-0.11/GstPad.html#GstPadFixateCapsFunction">
-<ANCHOR id="gst-pad-peer-accept-caps" href="gstreamer-0.11/GstPad.html#gst-pad-peer-accept-caps">
-<ANCHOR id="gst-pad-set-activate-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-activate-function">
-<ANCHOR id="GstPadActivateFunction" href="gstreamer-0.11/GstPad.html#GstPadActivateFunction">
-<ANCHOR id="gst-pad-set-activatepush-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-activatepush-function">
-<ANCHOR id="gst-pad-set-activatepull-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-activatepull-function">
-<ANCHOR id="GstPadActivateModeFunction" href="gstreamer-0.11/GstPad.html#GstPadActivateModeFunction">
-<ANCHOR id="gst-pad-check-reconfigure" href="gstreamer-0.11/GstPad.html#gst-pad-check-reconfigure">
-<ANCHOR id="gst-pad-mark-reconfigure" href="gstreamer-0.11/GstPad.html#gst-pad-mark-reconfigure">
-<ANCHOR id="gst-pad-push" href="gstreamer-0.11/GstPad.html#gst-pad-push">
-<ANCHOR id="gst-pad-push-event" href="gstreamer-0.11/GstPad.html#gst-pad-push-event">
-<ANCHOR id="gst-pad-push-list" href="gstreamer-0.11/GstPad.html#gst-pad-push-list">
-<ANCHOR id="gst-pad-pull-range" href="gstreamer-0.11/GstPad.html#gst-pad-pull-range">
-<ANCHOR id="gst-pad-activate-pull" href="gstreamer-0.11/GstPad.html#gst-pad-activate-pull">
-<ANCHOR id="gst-pad-activate-push" href="gstreamer-0.11/GstPad.html#gst-pad-activate-push">
-<ANCHOR id="gst-pad-send-event" href="gstreamer-0.11/GstPad.html#gst-pad-send-event">
-<ANCHOR id="gst-pad-event-default" href="gstreamer-0.11/GstPad.html#gst-pad-event-default">
-<ANCHOR id="gst-pad-query" href="gstreamer-0.11/GstPad.html#gst-pad-query">
-<ANCHOR id="gst-pad-peer-query" href="gstreamer-0.11/GstPad.html#gst-pad-peer-query">
-<ANCHOR id="gst-pad-query-default" href="gstreamer-0.11/GstPad.html#gst-pad-query-default">
-<ANCHOR id="gst-pad-query-position" href="gstreamer-0.11/GstPad.html#gst-pad-query-position">
-<ANCHOR id="gst-pad-query-duration" href="gstreamer-0.11/GstPad.html#gst-pad-query-duration">
-<ANCHOR id="gst-pad-query-convert" href="gstreamer-0.11/GstPad.html#gst-pad-query-convert">
-<ANCHOR id="gst-pad-query-peer-position" href="gstreamer-0.11/GstPad.html#gst-pad-query-peer-position">
-<ANCHOR id="gst-pad-query-peer-duration" href="gstreamer-0.11/GstPad.html#gst-pad-query-peer-duration">
-<ANCHOR id="gst-pad-query-peer-convert" href="gstreamer-0.11/GstPad.html#gst-pad-query-peer-convert">
-<ANCHOR id="gst-pad-set-query-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-query-function">
-<ANCHOR id="GstPadQueryFunction" href="gstreamer-0.11/GstPad.html#GstPadQueryFunction">
-<ANCHOR id="gst-pad-set-query-type-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-query-type-function">
-<ANCHOR id="GstPadQueryTypeFunction" href="gstreamer-0.11/GstPad.html#GstPadQueryTypeFunction">
-<ANCHOR id="gst-pad-get-query-types" href="gstreamer-0.11/GstPad.html#gst-pad-get-query-types">
-<ANCHOR id="gst-pad-get-query-types-default" href="gstreamer-0.11/GstPad.html#gst-pad-get-query-types-default">
-<ANCHOR id="gst-pad-set-iterate-internal-links-function" href="gstreamer-0.11/GstPad.html#gst-pad-set-iterate-internal-links-function">
-<ANCHOR id="GstPadIterIntLinkFunction" href="gstreamer-0.11/GstPad.html#GstPadIterIntLinkFunction">
-<ANCHOR id="gst-pad-iterate-internal-links" href="gstreamer-0.11/GstPad.html#gst-pad-iterate-internal-links">
-<ANCHOR id="gst-pad-iterate-internal-links-default" href="gstreamer-0.11/GstPad.html#gst-pad-iterate-internal-links-default">
-<ANCHOR id="gst-pad-set-element-private" href="gstreamer-0.11/GstPad.html#gst-pad-set-element-private">
-<ANCHOR id="gst-pad-get-element-private" href="gstreamer-0.11/GstPad.html#gst-pad-get-element-private">
-<ANCHOR id="GstPadForwardFunction" href="gstreamer-0.11/GstPad.html#GstPadForwardFunction">
-<ANCHOR id="gst-pad-forward" href="gstreamer-0.11/GstPad.html#gst-pad-forward">
-<ANCHOR id="gst-pad-chain" href="gstreamer-0.11/GstPad.html#gst-pad-chain">
-<ANCHOR id="gst-pad-chain-list" href="gstreamer-0.11/GstPad.html#gst-pad-chain-list">
-<ANCHOR id="gst-pad-start-task" href="gstreamer-0.11/GstPad.html#gst-pad-start-task">
-<ANCHOR id="gst-pad-pause-task" href="gstreamer-0.11/GstPad.html#gst-pad-pause-task">
-<ANCHOR id="gst-pad-stop-task" href="gstreamer-0.11/GstPad.html#gst-pad-stop-task">
-<ANCHOR id="gst-pad-set-active" href="gstreamer-0.11/GstPad.html#gst-pad-set-active">
-<ANCHOR id="GST-PAD-GET-STREAM-LOCK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-GET-STREAM-LOCK:CAPS">
-<ANCHOR id="GST-PAD-STREAM-LOCK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-STREAM-LOCK:CAPS">
-<ANCHOR id="GST-PAD-STREAM-LOCK-FULL:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-STREAM-LOCK-FULL:CAPS">
-<ANCHOR id="GST-PAD-STREAM-TRYLOCK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-STREAM-TRYLOCK:CAPS">
-<ANCHOR id="GST-PAD-STREAM-UNLOCK:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-STREAM-UNLOCK:CAPS">
-<ANCHOR id="GST-PAD-STREAM-UNLOCK-FULL:CAPS" href="gstreamer-0.11/GstPad.html#GST-PAD-STREAM-UNLOCK-FULL:CAPS">
-<ANCHOR id="GstPad.property-details" href="gstreamer-0.11/GstPad.html#GstPad.property-details">
-<ANCHOR id="GstPad--caps" href="gstreamer-0.11/GstPad.html#GstPad--caps">
-<ANCHOR id="GstPad--direction" href="gstreamer-0.11/GstPad.html#GstPad--direction">
-<ANCHOR id="GstPad--template" href="gstreamer-0.11/GstPad.html#GstPad--template">
-<ANCHOR id="GstPad.signal-details" href="gstreamer-0.11/GstPad.html#GstPad.signal-details">
-<ANCHOR id="GstPad-linked" href="gstreamer-0.11/GstPad.html#GstPad-linked">
-<ANCHOR id="GstPad-unlinked" href="gstreamer-0.11/GstPad.html#GstPad-unlinked">
-<ANCHOR id="GstPad.see-also" href="gstreamer-0.11/GstPad.html#GstPad.see-also">
-<ANCHOR id="GstPadTemplate" href="gstreamer-0.11/GstPadTemplate.html">
-<ANCHOR id="GstPadTemplate.synopsis" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.synopsis">
-<ANCHOR id="GstPadTemplate.object-hierarchy" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.object-hierarchy">
-<ANCHOR id="GstPadTemplate.properties" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.properties">
-<ANCHOR id="GstPadTemplate.signals" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.signals">
-<ANCHOR id="GstPadTemplate.description" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.description">
-<ANCHOR id="GstPadTemplate.details" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.details">
-<ANCHOR id="GstStaticPadTemplate" href="gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate">
-<ANCHOR id="GST-STATIC-PAD-TEMPLATE:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-STATIC-PAD-TEMPLATE:CAPS">
-<ANCHOR id="gst-static-pad-template-get" href="gstreamer-0.11/GstPadTemplate.html#gst-static-pad-template-get">
-<ANCHOR id="gst-static-pad-template-get-caps" href="gstreamer-0.11/GstPadTemplate.html#gst-static-pad-template-get-caps">
-<ANCHOR id="GstPadTemplate-struct" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate-struct">
-<ANCHOR id="GstPadTemplateFlags" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplateFlags">
-<ANCHOR id="GST-PAD-TEMPLATE-FLAG-LAST:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-FLAG-LAST:CAPS">
-<ANCHOR id="GstPadPresence" href="gstreamer-0.11/GstPadTemplate.html#GstPadPresence">
-<ANCHOR id="GST-PAD-ALWAYS:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-ALWAYS:CAPS">
-<ANCHOR id="GST-PAD-SOMETIMES:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-SOMETIMES:CAPS">
-<ANCHOR id="GST-PAD-REQUEST:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-REQUEST:CAPS">
-<ANCHOR id="GST-PAD-TEMPLATE-NAME-TEMPLATE:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-NAME-TEMPLATE:CAPS">
-<ANCHOR id="GST-PAD-TEMPLATE-DIRECTION:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-DIRECTION:CAPS">
-<ANCHOR id="GST-PAD-TEMPLATE-PRESENCE:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-PRESENCE:CAPS">
-<ANCHOR id="GST-PAD-TEMPLATE-CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-CAPS">
-<ANCHOR id="GST-PAD-TEMPLATE-IS-FIXED:CAPS" href="gstreamer-0.11/GstPadTemplate.html#GST-PAD-TEMPLATE-IS-FIXED:CAPS">
-<ANCHOR id="gst-pad-template-new" href="gstreamer-0.11/GstPadTemplate.html#gst-pad-template-new">
-<ANCHOR id="gst-pad-template-get-caps" href="gstreamer-0.11/GstPadTemplate.html#gst-pad-template-get-caps">
-<ANCHOR id="GstPadTemplate.property-details" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.property-details">
-<ANCHOR id="GstPadTemplate--caps" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate--caps">
-<ANCHOR id="GstPadTemplate--direction" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate--direction">
-<ANCHOR id="GstPadTemplate--name-template" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate--name-template">
-<ANCHOR id="GstPadTemplate--presence" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate--presence">
-<ANCHOR id="GstPadTemplate.signal-details" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.signal-details">
-<ANCHOR id="GstPadTemplate-pad-created" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate-pad-created">
-<ANCHOR id="GstPadTemplate.see-also" href="gstreamer-0.11/GstPadTemplate.html#GstPadTemplate.see-also">
-<ANCHOR id="gstreamer-GstParamSpec" href="gstreamer-0.11/gstreamer-GstParamSpec.html">
-<ANCHOR id="gstreamer-GstParamSpec.synopsis" href="gstreamer-0.11/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.synopsis">
-<ANCHOR id="gstreamer-GstParamSpec.description" href="gstreamer-0.11/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.description">
-<ANCHOR id="gstreamer-GstParamSpec.details" href="gstreamer-0.11/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.details">
-<ANCHOR id="GST-PARAM-CONTROLLABLE:CAPS" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GST-PARAM-CONTROLLABLE:CAPS">
-<ANCHOR id="GST-PARAM-USER-SHIFT:CAPS" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GST-PARAM-USER-SHIFT:CAPS">
-<ANCHOR id="GST-PARAM-MUTABLE-PAUSED:CAPS" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PAUSED:CAPS">
-<ANCHOR id="GST-PARAM-MUTABLE-PLAYING:CAPS" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PLAYING:CAPS">
-<ANCHOR id="GST-PARAM-MUTABLE-READY:CAPS" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-READY:CAPS">
-<ANCHOR id="GstParamSpecFraction" href="gstreamer-0.11/gstreamer-GstParamSpec.html#GstParamSpecFraction">
-<ANCHOR id="gst-param-spec-fraction" href="gstreamer-0.11/gstreamer-GstParamSpec.html#gst-param-spec-fraction">
-<ANCHOR id="gstreamer-GstParse" href="gstreamer-0.11/gstreamer-GstParse.html">
-<ANCHOR id="gstreamer-GstParse.synopsis" href="gstreamer-0.11/gstreamer-GstParse.html#gstreamer-GstParse.synopsis">
-<ANCHOR id="gstreamer-GstParse.description" href="gstreamer-0.11/gstreamer-GstParse.html#gstreamer-GstParse.description">
-<ANCHOR id="gstreamer-GstParse.details" href="gstreamer-0.11/gstreamer-GstParse.html#gstreamer-GstParse.details">
-<ANCHOR id="gst-parse-error-quark" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-error-quark">
-<ANCHOR id="GST-PARSE-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR:CAPS">
-<ANCHOR id="GstParseError" href="gstreamer-0.11/gstreamer-GstParse.html#GstParseError">
-<ANCHOR id="GST-PARSE-ERROR-SYNTAX:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-SYNTAX:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-NO-SUCH-ELEMENT:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-NO-SUCH-ELEMENT:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-NO-SUCH-PROPERTY:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-NO-SUCH-PROPERTY:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-LINK:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-LINK:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-COULD-NOT-SET-PROPERTY:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-COULD-NOT-SET-PROPERTY:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-EMPTY-BIN:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-EMPTY-BIN:CAPS">
-<ANCHOR id="GST-PARSE-ERROR-EMPTY:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-ERROR-EMPTY:CAPS">
-<ANCHOR id="GstParseContext" href="gstreamer-0.11/gstreamer-GstParse.html#GstParseContext">
-<ANCHOR id="GstParseFlags" href="gstreamer-0.11/gstreamer-GstParse.html#GstParseFlags">
-<ANCHOR id="GST-PARSE-FLAG-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-FLAG-NONE:CAPS">
-<ANCHOR id="GST-PARSE-FLAG-FATAL-ERRORS:CAPS" href="gstreamer-0.11/gstreamer-GstParse.html#GST-PARSE-FLAG-FATAL-ERRORS:CAPS">
-<ANCHOR id="gst-parse-launch" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-launch">
-<ANCHOR id="gst-parse-launch-full" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-launch-full">
-<ANCHOR id="gst-parse-launchv" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-launchv">
-<ANCHOR id="gst-parse-launchv-full" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-launchv-full">
-<ANCHOR id="gst-parse-bin-from-description" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-bin-from-description">
-<ANCHOR id="gst-parse-bin-from-description-full" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-bin-from-description-full">
-<ANCHOR id="gst-parse-context-new" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-context-new">
-<ANCHOR id="gst-parse-context-free" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-context-free">
-<ANCHOR id="gst-parse-context-get-missing-elements" href="gstreamer-0.11/gstreamer-GstParse.html#gst-parse-context-get-missing-elements">
-<ANCHOR id="GstPipeline" href="gstreamer-0.11/GstPipeline.html">
-<ANCHOR id="GstPipeline.synopsis" href="gstreamer-0.11/GstPipeline.html#GstPipeline.synopsis">
-<ANCHOR id="GstPipeline.object-hierarchy" href="gstreamer-0.11/GstPipeline.html#GstPipeline.object-hierarchy">
-<ANCHOR id="GstPipeline.implemented-interfaces" href="gstreamer-0.11/GstPipeline.html#GstPipeline.implemented-interfaces">
-<ANCHOR id="GstPipeline.properties" href="gstreamer-0.11/GstPipeline.html#GstPipeline.properties">
-<ANCHOR id="GstPipeline.description" href="gstreamer-0.11/GstPipeline.html#GstPipeline.description">
-<ANCHOR id="GstPipeline.details" href="gstreamer-0.11/GstPipeline.html#GstPipeline.details">
-<ANCHOR id="GstPipeline-struct" href="gstreamer-0.11/GstPipeline.html#GstPipeline-struct">
-<ANCHOR id="GstPipelineFlags" href="gstreamer-0.11/GstPipeline.html#GstPipelineFlags">
-<ANCHOR id="GST-PIPELINE-FLAG-FIXED-CLOCK:CAPS" href="gstreamer-0.11/GstPipeline.html#GST-PIPELINE-FLAG-FIXED-CLOCK:CAPS">
-<ANCHOR id="GST-PIPELINE-FLAG-LAST:CAPS" href="gstreamer-0.11/GstPipeline.html#GST-PIPELINE-FLAG-LAST:CAPS">
-<ANCHOR id="gst-pipeline-new" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-new">
-<ANCHOR id="gst-pipeline-get-bus" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-get-bus">
-<ANCHOR id="gst-pipeline-set-clock" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-set-clock">
-<ANCHOR id="gst-pipeline-get-clock" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-get-clock">
-<ANCHOR id="gst-pipeline-use-clock" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-use-clock">
-<ANCHOR id="gst-pipeline-auto-clock" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-auto-clock">
-<ANCHOR id="gst-pipeline-set-auto-flush-bus" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-set-auto-flush-bus">
-<ANCHOR id="gst-pipeline-get-auto-flush-bus" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-get-auto-flush-bus">
-<ANCHOR id="gst-pipeline-set-delay" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-set-delay">
-<ANCHOR id="gst-pipeline-get-delay" href="gstreamer-0.11/GstPipeline.html#gst-pipeline-get-delay">
-<ANCHOR id="GstPipeline.property-details" href="gstreamer-0.11/GstPipeline.html#GstPipeline.property-details">
-<ANCHOR id="GstPipeline--auto-flush-bus" href="gstreamer-0.11/GstPipeline.html#GstPipeline--auto-flush-bus">
-<ANCHOR id="GstPipeline--delay" href="gstreamer-0.11/GstPipeline.html#GstPipeline--delay">
-<ANCHOR id="GstPipeline.see-also" href="gstreamer-0.11/GstPipeline.html#GstPipeline.see-also">
-<ANCHOR id="GstPlugin" href="gstreamer-0.11/GstPlugin.html">
-<ANCHOR id="GstPlugin.synopsis" href="gstreamer-0.11/GstPlugin.html#GstPlugin.synopsis">
-<ANCHOR id="GstPlugin.object-hierarchy" href="gstreamer-0.11/GstPlugin.html#GstPlugin.object-hierarchy">
-<ANCHOR id="GstPlugin.description" href="gstreamer-0.11/GstPlugin.html#GstPlugin.description">
-<ANCHOR id="GstPlugin.details" href="gstreamer-0.11/GstPlugin.html#GstPlugin.details">
-<ANCHOR id="gst-plugin-error-quark" href="gstreamer-0.11/GstPlugin.html#gst-plugin-error-quark">
-<ANCHOR id="GST-PLUGIN-ERROR:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-ERROR:CAPS">
-<ANCHOR id="GstPluginError" href="gstreamer-0.11/GstPlugin.html#GstPluginError">
-<ANCHOR id="GST-PLUGIN-ERROR-MODULE:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-ERROR-MODULE:CAPS">
-<ANCHOR id="GST-PLUGIN-ERROR-DEPENDENCIES:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-ERROR-DEPENDENCIES:CAPS">
-<ANCHOR id="GST-PLUGIN-ERROR-NAME-MISMATCH:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-ERROR-NAME-MISMATCH:CAPS">
-<ANCHOR id="GstPlugin-struct" href="gstreamer-0.11/GstPlugin.html#GstPlugin-struct">
-<ANCHOR id="GstPluginDesc" href="gstreamer-0.11/GstPlugin.html#GstPluginDesc">
-<ANCHOR id="GstPluginInitFunc" href="gstreamer-0.11/GstPlugin.html#GstPluginInitFunc">
-<ANCHOR id="GstPluginInitFullFunc" href="gstreamer-0.11/GstPlugin.html#GstPluginInitFullFunc">
-<ANCHOR id="GST-PLUGIN-DEFINE:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-DEFINE:CAPS">
-<ANCHOR id="GST-LICENSE-UNKNOWN:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-LICENSE-UNKNOWN:CAPS">
-<ANCHOR id="GstPluginFilter" href="gstreamer-0.11/GstPlugin.html#GstPluginFilter">
-<ANCHOR id="gst-plugin-get-name" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-name">
-<ANCHOR id="gst-plugin-get-description" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-description">
-<ANCHOR id="gst-plugin-get-filename" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-filename">
-<ANCHOR id="gst-plugin-get-license" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-license">
-<ANCHOR id="gst-plugin-get-package" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-package">
-<ANCHOR id="gst-plugin-get-origin" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-origin">
-<ANCHOR id="gst-plugin-get-source" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-source">
-<ANCHOR id="gst-plugin-get-version" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-version">
-<ANCHOR id="gst-plugin-get-module" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-module">
-<ANCHOR id="gst-plugin-is-loaded" href="gstreamer-0.11/GstPlugin.html#gst-plugin-is-loaded">
-<ANCHOR id="gst-plugin-get-cache-data" href="gstreamer-0.11/GstPlugin.html#gst-plugin-get-cache-data">
-<ANCHOR id="gst-plugin-set-cache-data" href="gstreamer-0.11/GstPlugin.html#gst-plugin-set-cache-data">
-<ANCHOR id="gst-plugin-name-filter" href="gstreamer-0.11/GstPlugin.html#gst-plugin-name-filter">
-<ANCHOR id="gst-plugin-load-file" href="gstreamer-0.11/GstPlugin.html#gst-plugin-load-file">
-<ANCHOR id="gst-plugin-load" href="gstreamer-0.11/GstPlugin.html#gst-plugin-load">
-<ANCHOR id="gst-plugin-load-by-name" href="gstreamer-0.11/GstPlugin.html#gst-plugin-load-by-name">
-<ANCHOR id="gst-plugin-list-free" href="gstreamer-0.11/GstPlugin.html#gst-plugin-list-free">
-<ANCHOR id="gst-plugin-register-static" href="gstreamer-0.11/GstPlugin.html#gst-plugin-register-static">
-<ANCHOR id="gst-plugin-register-static-full" href="gstreamer-0.11/GstPlugin.html#gst-plugin-register-static-full">
-<ANCHOR id="GstPluginFlags" href="gstreamer-0.11/GstPlugin.html#GstPluginFlags">
-<ANCHOR id="GST-PLUGIN-FLAG-CACHED:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-FLAG-CACHED:CAPS">
-<ANCHOR id="GST-PLUGIN-FLAG-BLACKLISTED:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-FLAG-BLACKLISTED:CAPS">
-<ANCHOR id="GstPluginDependencyFlags" href="gstreamer-0.11/GstPlugin.html#GstPluginDependencyFlags">
-<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-NONE:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-NONE:CAPS">
-<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-RECURSE:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-RECURSE:CAPS">
-<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-PATHS-ARE-DEFAULT-ONLY:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-PATHS-ARE-DEFAULT-ONLY:CAPS">
-<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-FILE-NAME-IS-SUFFIX:CAPS" href="gstreamer-0.11/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-FILE-NAME-IS-SUFFIX:CAPS">
-<ANCHOR id="gst-plugin-add-dependency" href="gstreamer-0.11/GstPlugin.html#gst-plugin-add-dependency">
-<ANCHOR id="gst-plugin-add-dependency-simple" href="gstreamer-0.11/GstPlugin.html#gst-plugin-add-dependency-simple">
-<ANCHOR id="GstPlugin.see-also" href="gstreamer-0.11/GstPlugin.html#GstPlugin.see-also">
-<ANCHOR id="GstPluginFeature" href="gstreamer-0.11/GstPluginFeature.html">
-<ANCHOR id="GstPluginFeature.synopsis" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature.synopsis">
-<ANCHOR id="GstPluginFeature.object-hierarchy" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature.object-hierarchy">
-<ANCHOR id="GstPluginFeature.description" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature.description">
-<ANCHOR id="GstPluginFeature.details" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature.details">
-<ANCHOR id="GstPluginFeature-struct" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature-struct">
-<ANCHOR id="GstTypeNameData" href="gstreamer-0.11/GstPluginFeature.html#GstTypeNameData">
-<ANCHOR id="GstPluginFeatureFilter" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeatureFilter">
-<ANCHOR id="GstRank" href="gstreamer-0.11/GstPluginFeature.html#GstRank">
-<ANCHOR id="GST-RANK-NONE:CAPS" href="gstreamer-0.11/GstPluginFeature.html#GST-RANK-NONE:CAPS">
-<ANCHOR id="GST-RANK-MARGINAL:CAPS" href="gstreamer-0.11/GstPluginFeature.html#GST-RANK-MARGINAL:CAPS">
-<ANCHOR id="GST-RANK-SECONDARY:CAPS" href="gstreamer-0.11/GstPluginFeature.html#GST-RANK-SECONDARY:CAPS">
-<ANCHOR id="GST-RANK-PRIMARY:CAPS" href="gstreamer-0.11/GstPluginFeature.html#GST-RANK-PRIMARY:CAPS">
-<ANCHOR id="gst-plugin-feature-type-name-filter" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-type-name-filter">
-<ANCHOR id="gst-plugin-feature-set-rank" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-set-rank">
-<ANCHOR id="gst-plugin-feature-set-name" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-set-name">
-<ANCHOR id="gst-plugin-feature-get-rank" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-get-rank">
-<ANCHOR id="gst-plugin-feature-get-name" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-get-name">
-<ANCHOR id="gst-plugin-feature-load" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-load">
-<ANCHOR id="gst-plugin-feature-list-copy" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-list-copy">
-<ANCHOR id="gst-plugin-feature-list-free" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-list-free">
-<ANCHOR id="GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS" href="gstreamer-0.11/GstPluginFeature.html#GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS">
-<ANCHOR id="gst-plugin-feature-check-version" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-check-version">
-<ANCHOR id="gst-plugin-feature-rank-compare-func" href="gstreamer-0.11/GstPluginFeature.html#gst-plugin-feature-rank-compare-func">
-<ANCHOR id="GstPluginFeature.see-also" href="gstreamer-0.11/GstPluginFeature.html#GstPluginFeature.see-also">
-<ANCHOR id="gstreamer-GstPoll" href="gstreamer-0.11/gstreamer-GstPoll.html">
-<ANCHOR id="gstreamer-GstPoll.synopsis" href="gstreamer-0.11/gstreamer-GstPoll.html#gstreamer-GstPoll.synopsis">
-<ANCHOR id="gstreamer-GstPoll.description" href="gstreamer-0.11/gstreamer-GstPoll.html#gstreamer-GstPoll.description">
-<ANCHOR id="gstreamer-GstPoll.details" href="gstreamer-0.11/gstreamer-GstPoll.html#gstreamer-GstPoll.details">
-<ANCHOR id="GstPoll" href="gstreamer-0.11/gstreamer-GstPoll.html#GstPoll">
-<ANCHOR id="GstPollFD" href="gstreamer-0.11/gstreamer-GstPoll.html#GstPollFD">
-<ANCHOR id="GST-POLL-FD-INIT:CAPS" href="gstreamer-0.11/gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS">
-<ANCHOR id="gst-poll-add-fd" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-add-fd">
-<ANCHOR id="gst-poll-fd-can-read" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-can-read">
-<ANCHOR id="gst-poll-fd-can-write" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-can-write">
-<ANCHOR id="gst-poll-fd-ctl-read" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-ctl-read">
-<ANCHOR id="gst-poll-fd-ctl-write" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-ctl-write">
-<ANCHOR id="gst-poll-fd-has-closed" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-has-closed">
-<ANCHOR id="gst-poll-fd-has-error" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-has-error">
-<ANCHOR id="gst-poll-fd-ignored" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-ignored">
-<ANCHOR id="gst-poll-fd-init" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-fd-init">
-<ANCHOR id="gst-poll-free" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-free">
-<ANCHOR id="gst-poll-new" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-new">
-<ANCHOR id="gst-poll-new-timer" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-new-timer">
-<ANCHOR id="gst-poll-get-read-gpollfd" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-get-read-gpollfd">
-<ANCHOR id="gst-poll-remove-fd" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-remove-fd">
-<ANCHOR id="gst-poll-restart" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-restart">
-<ANCHOR id="gst-poll-set-controllable" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-set-controllable">
-<ANCHOR id="gst-poll-set-flushing" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-set-flushing">
-<ANCHOR id="gst-poll-wait" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-wait">
-<ANCHOR id="gst-poll-read-control" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-read-control">
-<ANCHOR id="gst-poll-write-control" href="gstreamer-0.11/gstreamer-GstPoll.html#gst-poll-write-control">
-<ANCHOR id="GstPreset" href="gstreamer-0.11/GstPreset.html">
-<ANCHOR id="GstPreset.synopsis" href="gstreamer-0.11/GstPreset.html#GstPreset.synopsis">
-<ANCHOR id="GstPreset.object-hierarchy" href="gstreamer-0.11/GstPreset.html#GstPreset.object-hierarchy">
-<ANCHOR id="GstPreset.description" href="gstreamer-0.11/GstPreset.html#GstPreset.description">
-<ANCHOR id="GstPreset.details" href="gstreamer-0.11/GstPreset.html#GstPreset.details">
-<ANCHOR id="GstPreset-struct" href="gstreamer-0.11/GstPreset.html#GstPreset-struct">
-<ANCHOR id="GstPresetInterface" href="gstreamer-0.11/GstPreset.html#GstPresetInterface">
-<ANCHOR id="gst-preset-get-preset-names" href="gstreamer-0.11/GstPreset.html#gst-preset-get-preset-names">
-<ANCHOR id="gst-preset-get-property-names" href="gstreamer-0.11/GstPreset.html#gst-preset-get-property-names">
-<ANCHOR id="gst-preset-load-preset" href="gstreamer-0.11/GstPreset.html#gst-preset-load-preset">
-<ANCHOR id="gst-preset-save-preset" href="gstreamer-0.11/GstPreset.html#gst-preset-save-preset">
-<ANCHOR id="gst-preset-rename-preset" href="gstreamer-0.11/GstPreset.html#gst-preset-rename-preset">
-<ANCHOR id="gst-preset-delete-preset" href="gstreamer-0.11/GstPreset.html#gst-preset-delete-preset">
-<ANCHOR id="gst-preset-set-meta" href="gstreamer-0.11/GstPreset.html#gst-preset-set-meta">
-<ANCHOR id="gst-preset-get-meta" href="gstreamer-0.11/GstPreset.html#gst-preset-get-meta">
-<ANCHOR id="gstreamer-GstQuery" href="gstreamer-0.11/gstreamer-GstQuery.html">
-<ANCHOR id="gstreamer-GstQuery.synopsis" href="gstreamer-0.11/gstreamer-GstQuery.html#gstreamer-GstQuery.synopsis">
-<ANCHOR id="gstreamer-GstQuery.description" href="gstreamer-0.11/gstreamer-GstQuery.html#gstreamer-GstQuery.description">
-<ANCHOR id="gstreamer-GstQuery.details" href="gstreamer-0.11/gstreamer-GstQuery.html#gstreamer-GstQuery.details">
-<ANCHOR id="GstQuery" href="gstreamer-0.11/gstreamer-GstQuery.html#GstQuery">
-<ANCHOR id="GstQueryType" href="gstreamer-0.11/gstreamer-GstQuery.html#GstQueryType">
-<ANCHOR id="GST-QUERY-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-NONE:CAPS">
-<ANCHOR id="GST-QUERY-POSITION:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-POSITION:CAPS">
-<ANCHOR id="GST-QUERY-DURATION:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-DURATION:CAPS">
-<ANCHOR id="GST-QUERY-LATENCY:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-LATENCY:CAPS">
-<ANCHOR id="GST-QUERY-JITTER:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-JITTER:CAPS">
-<ANCHOR id="GST-QUERY-RATE:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-RATE:CAPS">
-<ANCHOR id="GST-QUERY-SEEKING:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-SEEKING:CAPS">
-<ANCHOR id="GST-QUERY-SEGMENT:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-SEGMENT:CAPS">
-<ANCHOR id="GST-QUERY-CONVERT:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-CONVERT:CAPS">
-<ANCHOR id="GST-QUERY-FORMATS:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-FORMATS:CAPS">
-<ANCHOR id="GST-QUERY-BUFFERING:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-BUFFERING:CAPS">
-<ANCHOR id="GST-QUERY-CUSTOM:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-CUSTOM:CAPS">
-<ANCHOR id="GST-QUERY-URI:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-URI:CAPS">
-<ANCHOR id="GST-QUERY-ALLOCATION:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-ALLOCATION:CAPS">
-<ANCHOR id="GST-QUERY-SCHEDULING:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-SCHEDULING:CAPS">
-<ANCHOR id="GST-QUERY-TYPE-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS">
-<ANCHOR id="GstQueryTypeDefinition" href="gstreamer-0.11/gstreamer-GstQuery.html#GstQueryTypeDefinition">
-<ANCHOR id="gst-query-type-get-name" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-get-name">
-<ANCHOR id="gst-query-type-to-quark" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-to-quark">
-<ANCHOR id="gst-query-type-register" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-register">
-<ANCHOR id="gst-query-type-get-by-nick" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-get-by-nick">
-<ANCHOR id="gst-query-types-contains" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-types-contains">
-<ANCHOR id="gst-query-type-get-details" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-get-details">
-<ANCHOR id="gst-query-type-iterate-definitions" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-type-iterate-definitions">
-<ANCHOR id="gst-query-ref" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-ref">
-<ANCHOR id="gst-query-unref" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-unref">
-<ANCHOR id="gst-query-copy" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-copy">
-<ANCHOR id="gst-query-make-writable" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-make-writable">
-<ANCHOR id="gst-query-is-writable" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-is-writable">
-<ANCHOR id="gst-query-replace" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-replace">
-<ANCHOR id="gst-query-writable-structure" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-writable-structure">
-<ANCHOR id="gst-query-new-custom" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-custom">
-<ANCHOR id="gst-query-get-structure" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-get-structure">
-<ANCHOR id="gst-query-new-convert" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-convert">
-<ANCHOR id="gst-query-set-convert" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-convert">
-<ANCHOR id="gst-query-parse-convert" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-convert">
-<ANCHOR id="gst-query-new-position" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-position">
-<ANCHOR id="gst-query-set-position" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-position">
-<ANCHOR id="gst-query-parse-position" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-position">
-<ANCHOR id="gst-query-new-duration" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-duration">
-<ANCHOR id="gst-query-set-duration" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-duration">
-<ANCHOR id="gst-query-parse-duration" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-duration">
-<ANCHOR id="gst-query-new-latency" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-latency">
-<ANCHOR id="gst-query-parse-latency" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-latency">
-<ANCHOR id="gst-query-set-latency" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-latency">
-<ANCHOR id="gst-query-new-seeking" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-seeking">
-<ANCHOR id="gst-query-set-seeking" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-seeking">
-<ANCHOR id="gst-query-parse-seeking" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-seeking">
-<ANCHOR id="gst-query-new-formats" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-formats">
-<ANCHOR id="gst-query-set-formats" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-formats">
-<ANCHOR id="gst-query-set-formatsv" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-formatsv">
-<ANCHOR id="gst-query-parse-n-formats" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-n-formats">
-<ANCHOR id="gst-query-parse-nth-format" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-nth-format">
-<ANCHOR id="gst-query-new-segment" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-segment">
-<ANCHOR id="gst-query-set-segment" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-segment">
-<ANCHOR id="gst-query-parse-segment" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-segment">
-<ANCHOR id="GstBufferingMode" href="gstreamer-0.11/gstreamer-GstQuery.html#GstBufferingMode">
-<ANCHOR id="GST-BUFFERING-STREAM:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-BUFFERING-STREAM:CAPS">
-<ANCHOR id="GST-BUFFERING-DOWNLOAD:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-BUFFERING-DOWNLOAD:CAPS">
-<ANCHOR id="GST-BUFFERING-TIMESHIFT:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-BUFFERING-TIMESHIFT:CAPS">
-<ANCHOR id="GST-BUFFERING-LIVE:CAPS" href="gstreamer-0.11/gstreamer-GstQuery.html#GST-BUFFERING-LIVE:CAPS">
-<ANCHOR id="gst-query-new-buffering" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-buffering">
-<ANCHOR id="gst-query-set-buffering-percent" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-buffering-percent">
-<ANCHOR id="gst-query-parse-buffering-percent" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-buffering-percent">
-<ANCHOR id="gst-query-set-buffering-stats" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-buffering-stats">
-<ANCHOR id="gst-query-parse-buffering-stats" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-buffering-stats">
-<ANCHOR id="gst-query-set-buffering-range" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-buffering-range">
-<ANCHOR id="gst-query-parse-buffering-range" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-buffering-range">
-<ANCHOR id="gst-query-add-buffering-range" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-add-buffering-range">
-<ANCHOR id="gst-query-get-n-buffering-ranges" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges">
-<ANCHOR id="gst-query-parse-nth-buffering-range" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-nth-buffering-range">
-<ANCHOR id="gst-query-new-uri" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-uri">
-<ANCHOR id="gst-query-parse-uri" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-uri">
-<ANCHOR id="gst-query-set-uri" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-uri">
-<ANCHOR id="gst-query-new-allocation" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-allocation">
-<ANCHOR id="gst-query-parse-allocation" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-allocation">
-<ANCHOR id="gst-query-parse-allocation-params" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-allocation-params">
-<ANCHOR id="gst-query-parse-nth-allocation-memory" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-memory">
-<ANCHOR id="gst-query-parse-nth-allocation-meta" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta">
-<ANCHOR id="gst-query-set-allocation-params" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-allocation-params">
-<ANCHOR id="gst-query-add-allocation-memory" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-add-allocation-memory">
-<ANCHOR id="gst-query-add-allocation-meta" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-add-allocation-meta">
-<ANCHOR id="gst-query-has-allocation-meta" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-has-allocation-meta">
-<ANCHOR id="gst-query-get-n-allocation-memories" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-get-n-allocation-memories">
-<ANCHOR id="gst-query-get-n-allocation-metas" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-get-n-allocation-metas">
-<ANCHOR id="gst-query-new-scheduling" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-new-scheduling">
-<ANCHOR id="gst-query-parse-scheduling" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-parse-scheduling">
-<ANCHOR id="gst-query-set-scheduling" href="gstreamer-0.11/gstreamer-GstQuery.html#gst-query-set-scheduling">
-<ANCHOR id="gstreamer-GstQuery.see-also" href="gstreamer-0.11/gstreamer-GstQuery.html#gstreamer-GstQuery.see-also">
-<ANCHOR id="GstRegistry" href="gstreamer-0.11/GstRegistry.html">
-<ANCHOR id="GstRegistry.synopsis" href="gstreamer-0.11/GstRegistry.html#GstRegistry.synopsis">
-<ANCHOR id="GstRegistry.object-hierarchy" href="gstreamer-0.11/GstRegistry.html#GstRegistry.object-hierarchy">
-<ANCHOR id="GstRegistry.signals" href="gstreamer-0.11/GstRegistry.html#GstRegistry.signals">
-<ANCHOR id="GstRegistry.description" href="gstreamer-0.11/GstRegistry.html#GstRegistry.description">
-<ANCHOR id="GstRegistry.details" href="gstreamer-0.11/GstRegistry.html#GstRegistry.details">
-<ANCHOR id="GstRegistry-struct" href="gstreamer-0.11/GstRegistry.html#GstRegistry-struct">
-<ANCHOR id="gst-registry-get-default" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-default">
-<ANCHOR id="gst-registry-get-feature-list" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-feature-list">
-<ANCHOR id="gst-registry-get-feature-list-cookie" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-feature-list-cookie">
-<ANCHOR id="gst-registry-get-feature-list-by-plugin" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-feature-list-by-plugin">
-<ANCHOR id="gst-registry-get-path-list" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-path-list">
-<ANCHOR id="gst-registry-get-plugin-list" href="gstreamer-0.11/GstRegistry.html#gst-registry-get-plugin-list">
-<ANCHOR id="gst-registry-add-plugin" href="gstreamer-0.11/GstRegistry.html#gst-registry-add-plugin">
-<ANCHOR id="gst-registry-remove-plugin" href="gstreamer-0.11/GstRegistry.html#gst-registry-remove-plugin">
-<ANCHOR id="gst-registry-plugin-filter" href="gstreamer-0.11/GstRegistry.html#gst-registry-plugin-filter">
-<ANCHOR id="gst-registry-feature-filter" href="gstreamer-0.11/GstRegistry.html#gst-registry-feature-filter">
-<ANCHOR id="gst-registry-find-plugin" href="gstreamer-0.11/GstRegistry.html#gst-registry-find-plugin">
-<ANCHOR id="gst-registry-find-feature" href="gstreamer-0.11/GstRegistry.html#gst-registry-find-feature">
-<ANCHOR id="gst-registry-lookup-feature" href="gstreamer-0.11/GstRegistry.html#gst-registry-lookup-feature">
-<ANCHOR id="gst-registry-add-path" href="gstreamer-0.11/GstRegistry.html#gst-registry-add-path">
-<ANCHOR id="gst-registry-scan-path" href="gstreamer-0.11/GstRegistry.html#gst-registry-scan-path">
-<ANCHOR id="gst-registry-lookup" href="gstreamer-0.11/GstRegistry.html#gst-registry-lookup">
-<ANCHOR id="gst-registry-remove-feature" href="gstreamer-0.11/GstRegistry.html#gst-registry-remove-feature">
-<ANCHOR id="gst-registry-add-feature" href="gstreamer-0.11/GstRegistry.html#gst-registry-add-feature">
-<ANCHOR id="gst-default-registry-check-feature-version" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-check-feature-version">
-<ANCHOR id="gst-default-registry-get-path-list" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-get-path-list">
-<ANCHOR id="gst-default-registry-add-plugin" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-add-plugin">
-<ANCHOR id="gst-default-registry-add-path" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-add-path">
-<ANCHOR id="gst-default-registry-find-plugin" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-find-plugin">
-<ANCHOR id="gst-default-registry-find-feature" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-find-feature">
-<ANCHOR id="gst-default-registry-get-plugin-list" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-get-plugin-list">
-<ANCHOR id="gst-default-registry-get-feature-list-cookie" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-get-feature-list-cookie">
-<ANCHOR id="gst-default-registry-feature-filter" href="gstreamer-0.11/GstRegistry.html#gst-default-registry-feature-filter">
-<ANCHOR id="GstRegistry.signal-details" href="gstreamer-0.11/GstRegistry.html#GstRegistry.signal-details">
-<ANCHOR id="GstRegistry-feature-added" href="gstreamer-0.11/GstRegistry.html#GstRegistry-feature-added">
-<ANCHOR id="GstRegistry-plugin-added" href="gstreamer-0.11/GstRegistry.html#GstRegistry-plugin-added">
-<ANCHOR id="GstRegistry.see-also" href="gstreamer-0.11/GstRegistry.html#GstRegistry.see-also">
-<ANCHOR id="gstreamer-GstSegment" href="gstreamer-0.11/gstreamer-GstSegment.html">
-<ANCHOR id="gstreamer-GstSegment.synopsis" href="gstreamer-0.11/gstreamer-GstSegment.html#gstreamer-GstSegment.synopsis">
-<ANCHOR id="gstreamer-GstSegment.description" href="gstreamer-0.11/gstreamer-GstSegment.html#gstreamer-GstSegment.description">
-<ANCHOR id="gstreamer-GstSegment.details" href="gstreamer-0.11/gstreamer-GstSegment.html#gstreamer-GstSegment.details">
-<ANCHOR id="GstSegment" href="gstreamer-0.11/gstreamer-GstSegment.html#GstSegment">
-<ANCHOR id="GstSegmentFlags" href="gstreamer-0.11/gstreamer-GstSegment.html#GstSegmentFlags">
-<ANCHOR id="GST-SEGMENT-FLAG-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-NONE:CAPS">
-<ANCHOR id="GST-SEGMENT-FLAG-RESET:CAPS" href="gstreamer-0.11/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-RESET:CAPS">
-<ANCHOR id="GST-SEGMENT-FLAG-SKIP:CAPS" href="gstreamer-0.11/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SKIP:CAPS">
-<ANCHOR id="gst-segment-clip" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-clip">
-<ANCHOR id="gst-segment-init" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-init">
-<ANCHOR id="gst-segment-new" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-new">
-<ANCHOR id="gst-segment-copy" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-copy">
-<ANCHOR id="gst-segment-free" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-free">
-<ANCHOR id="gst-segment-do-seek" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-do-seek">
-<ANCHOR id="gst-segment-to-running-time" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-to-running-time">
-<ANCHOR id="gst-segment-to-stream-time" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-to-stream-time">
-<ANCHOR id="gst-segment-to-position" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-to-position">
-<ANCHOR id="gst-segment-set-running-time" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-set-running-time">
-<ANCHOR id="gst-segment-copy-into" href="gstreamer-0.11/gstreamer-GstSegment.html#gst-segment-copy-into">
-<ANCHOR id="gstreamer-GstSegment.see-also" href="gstreamer-0.11/gstreamer-GstSegment.html#gstreamer-GstSegment.see-also">
-<ANCHOR id="gstreamer-GstStructure" href="gstreamer-0.11/gstreamer-GstStructure.html">
-<ANCHOR id="gstreamer-GstStructure.synopsis" href="gstreamer-0.11/gstreamer-GstStructure.html#gstreamer-GstStructure.synopsis">
-<ANCHOR id="gstreamer-GstStructure.description" href="gstreamer-0.11/gstreamer-GstStructure.html#gstreamer-GstStructure.description">
-<ANCHOR id="gstreamer-GstStructure.details" href="gstreamer-0.11/gstreamer-GstStructure.html#gstreamer-GstStructure.details">
-<ANCHOR id="GstStructure" href="gstreamer-0.11/gstreamer-GstStructure.html#GstStructure">
-<ANCHOR id="GstStructureForeachFunc" href="gstreamer-0.11/gstreamer-GstStructure.html#GstStructureForeachFunc">
-<ANCHOR id="GstStructureMapFunc" href="gstreamer-0.11/gstreamer-GstStructure.html#GstStructureMapFunc">
-<ANCHOR id="gst-structure-empty-new" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-empty-new">
-<ANCHOR id="gst-structure-id-empty-new" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-empty-new">
-<ANCHOR id="gst-structure-new" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-new">
-<ANCHOR id="gst-structure-new-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-new-valist">
-<ANCHOR id="gst-structure-id-new" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-new">
-<ANCHOR id="gst-structure-copy" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-copy">
-<ANCHOR id="gst-structure-free" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-free">
-<ANCHOR id="gst-structure-get-name" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-name">
-<ANCHOR id="gst-structure-has-name" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-has-name">
-<ANCHOR id="gst-structure-set-name" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-set-name">
-<ANCHOR id="gst-structure-get-name-id" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-name-id">
-<ANCHOR id="gst-structure-id-get" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-get">
-<ANCHOR id="gst-structure-id-get-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-get-valist">
-<ANCHOR id="gst-structure-id-get-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-get-value">
-<ANCHOR id="gst-structure-id-set-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-set-value">
-<ANCHOR id="gst-structure-id-take-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-take-value">
-<ANCHOR id="gst-structure-get" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get">
-<ANCHOR id="gst-structure-get-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-valist">
-<ANCHOR id="gst-structure-get-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-value">
-<ANCHOR id="gst-structure-set-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-set-value">
-<ANCHOR id="gst-structure-take-value" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-take-value">
-<ANCHOR id="gst-structure-set" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-set">
-<ANCHOR id="gst-structure-set-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-set-valist">
-<ANCHOR id="gst-structure-id-set" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-set">
-<ANCHOR id="gst-structure-id-set-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-set-valist">
-<ANCHOR id="gst-structure-remove-field" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-remove-field">
-<ANCHOR id="gst-structure-remove-fields" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-remove-fields">
-<ANCHOR id="gst-structure-remove-fields-valist" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-remove-fields-valist">
-<ANCHOR id="gst-structure-remove-all-fields" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-remove-all-fields">
-<ANCHOR id="gst-structure-get-field-type" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-field-type">
-<ANCHOR id="gst-structure-foreach" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-foreach">
-<ANCHOR id="gst-structure-n-fields" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-n-fields">
-<ANCHOR id="gst-structure-has-field" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-has-field">
-<ANCHOR id="gst-structure-has-field-typed" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-has-field-typed">
-<ANCHOR id="gst-structure-is-equal" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-is-equal">
-<ANCHOR id="gst-structure-is-subset" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-is-subset">
-<ANCHOR id="gst-structure-can-intersect" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-can-intersect">
-<ANCHOR id="gst-structure-intersect" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-intersect">
-<ANCHOR id="gst-structure-id-has-field" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-has-field">
-<ANCHOR id="gst-structure-id-has-field-typed" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-id-has-field-typed">
-<ANCHOR id="gst-structure-get-boolean" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-boolean">
-<ANCHOR id="gst-structure-get-int" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-int">
-<ANCHOR id="gst-structure-get-uint" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-uint">
-<ANCHOR id="gst-structure-get-double" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-double">
-<ANCHOR id="gst-structure-get-string" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-string">
-<ANCHOR id="gst-structure-get-date" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-date">
-<ANCHOR id="gst-structure-get-date-time" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-date-time">
-<ANCHOR id="gst-structure-get-clock-time" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-clock-time">
-<ANCHOR id="gst-structure-get-enum" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-enum">
-<ANCHOR id="gst-structure-get-fraction" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-get-fraction">
-<ANCHOR id="gst-structure-map-in-place" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-map-in-place">
-<ANCHOR id="gst-structure-nth-field-name" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-nth-field-name">
-<ANCHOR id="gst-structure-set-parent-refcount" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-set-parent-refcount">
-<ANCHOR id="gst-structure-to-string" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-to-string">
-<ANCHOR id="gst-structure-from-string" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-from-string">
-<ANCHOR id="gst-structure-fixate" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate">
-<ANCHOR id="gst-structure-fixate-field" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field">
-<ANCHOR id="gst-structure-fixate-field-nearest-int" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-int">
-<ANCHOR id="gst-structure-fixate-field-nearest-double" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-double">
-<ANCHOR id="gst-structure-fixate-field-nearest-fraction" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-fraction">
-<ANCHOR id="gst-structure-fixate-field-boolean" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field-boolean">
-<ANCHOR id="gst-structure-fixate-field-string" href="gstreamer-0.11/gstreamer-GstStructure.html#gst-structure-fixate-field-string">
-<ANCHOR id="gstreamer-GstStructure.see-also" href="gstreamer-0.11/gstreamer-GstStructure.html#gstreamer-GstStructure.see-also">
-<ANCHOR id="GstSystemClock" href="gstreamer-0.11/GstSystemClock.html">
-<ANCHOR id="GstSystemClock.synopsis" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.synopsis">
-<ANCHOR id="GstSystemClock.object-hierarchy" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.object-hierarchy">
-<ANCHOR id="GstSystemClock.properties" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.properties">
-<ANCHOR id="GstSystemClock.description" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.description">
-<ANCHOR id="GstSystemClock.details" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.details">
-<ANCHOR id="GstClockType" href="gstreamer-0.11/GstSystemClock.html#GstClockType">
-<ANCHOR id="GST-CLOCK-TYPE-REALTIME:CAPS" href="gstreamer-0.11/GstSystemClock.html#GST-CLOCK-TYPE-REALTIME:CAPS">
-<ANCHOR id="GST-CLOCK-TYPE-MONOTONIC:CAPS" href="gstreamer-0.11/GstSystemClock.html#GST-CLOCK-TYPE-MONOTONIC:CAPS">
-<ANCHOR id="GstSystemClock-struct" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock-struct">
-<ANCHOR id="gst-system-clock-obtain" href="gstreamer-0.11/GstSystemClock.html#gst-system-clock-obtain">
-<ANCHOR id="GstSystemClock.property-details" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.property-details">
-<ANCHOR id="GstSystemClock--clock-type" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock--clock-type">
-<ANCHOR id="GstSystemClock.see-also" href="gstreamer-0.11/GstSystemClock.html#GstSystemClock.see-also">
-<ANCHOR id="gstreamer-GstTagList" href="gstreamer-0.11/gstreamer-GstTagList.html">
-<ANCHOR id="gstreamer-GstTagList.synopsis" href="gstreamer-0.11/gstreamer-GstTagList.html#gstreamer-GstTagList.synopsis">
-<ANCHOR id="gstreamer-GstTagList.description" href="gstreamer-0.11/gstreamer-GstTagList.html#gstreamer-GstTagList.description">
-<ANCHOR id="gstreamer-GstTagList.details" href="gstreamer-0.11/gstreamer-GstTagList.html#gstreamer-GstTagList.details">
-<ANCHOR id="GstTagList" href="gstreamer-0.11/gstreamer-GstTagList.html#GstTagList">
-<ANCHOR id="GstTagMergeMode" href="gstreamer-0.11/gstreamer-GstTagList.html#GstTagMergeMode">
-<ANCHOR id="GST-TAG-MERGE-UNDEFINED:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-UNDEFINED:CAPS">
-<ANCHOR id="GST-TAG-MERGE-REPLACE-ALL:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-REPLACE-ALL:CAPS">
-<ANCHOR id="GST-TAG-MERGE-REPLACE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS">
-<ANCHOR id="GST-TAG-MERGE-APPEND:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-APPEND:CAPS">
-<ANCHOR id="GST-TAG-MERGE-PREPEND:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-PREPEND:CAPS">
-<ANCHOR id="GST-TAG-MERGE-KEEP:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-KEEP:CAPS">
-<ANCHOR id="GST-TAG-MERGE-KEEP-ALL:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-KEEP-ALL:CAPS">
-<ANCHOR id="GST-TAG-MERGE-COUNT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MERGE-COUNT:CAPS">
-<ANCHOR id="GstTagFlag" href="gstreamer-0.11/gstreamer-GstTagList.html#GstTagFlag">
-<ANCHOR id="GST-TAG-FLAG-UNDEFINED:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-FLAG-UNDEFINED:CAPS">
-<ANCHOR id="GST-TAG-FLAG-META:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-FLAG-META:CAPS">
-<ANCHOR id="GST-TAG-FLAG-ENCODED:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-FLAG-ENCODED:CAPS">
-<ANCHOR id="GST-TAG-FLAG-DECODED:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-FLAG-DECODED:CAPS">
-<ANCHOR id="GST-TAG-FLAG-COUNT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-FLAG-COUNT:CAPS">
-<ANCHOR id="GstTagForeachFunc" href="gstreamer-0.11/gstreamer-GstTagList.html#GstTagForeachFunc">
-<ANCHOR id="GstTagMergeFunc" href="gstreamer-0.11/gstreamer-GstTagList.html#GstTagMergeFunc">
-<ANCHOR id="GST-TAG-TITLE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TITLE:CAPS">
-<ANCHOR id="GST-TAG-TITLE-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TITLE-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-ARTIST:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ARTIST:CAPS">
-<ANCHOR id="GST-TAG-ARTIST-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ARTIST-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-ALBUM:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-ARTIST:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-DATE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DATE:CAPS">
-<ANCHOR id="GST-TAG-DATE-TIME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DATE-TIME:CAPS">
-<ANCHOR id="GST-TAG-GENRE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GENRE:CAPS">
-<ANCHOR id="GST-TAG-COMMENT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-COMMENT:CAPS">
-<ANCHOR id="GST-TAG-EXTENDED-COMMENT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS">
-<ANCHOR id="GST-TAG-TRACK-NUMBER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TRACK-NUMBER:CAPS">
-<ANCHOR id="GST-TAG-TRACK-COUNT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TRACK-COUNT:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-VOLUME-NUMBER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-NUMBER:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-VOLUME-COUNT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-COUNT:CAPS">
-<ANCHOR id="GST-TAG-LOCATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS">
-<ANCHOR id="GST-TAG-HOMEPAGE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-HOMEPAGE:CAPS">
-<ANCHOR id="GST-TAG-DESCRIPTION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DESCRIPTION:CAPS">
-<ANCHOR id="GST-TAG-VERSION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-VERSION:CAPS">
-<ANCHOR id="GST-TAG-ISRC:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ISRC:CAPS">
-<ANCHOR id="GST-TAG-ORGANIZATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ORGANIZATION:CAPS">
-<ANCHOR id="GST-TAG-COPYRIGHT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-COPYRIGHT:CAPS">
-<ANCHOR id="GST-TAG-COPYRIGHT-URI:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-COPYRIGHT-URI:CAPS">
-<ANCHOR id="GST-TAG-ENCODED-BY:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ENCODED-BY:CAPS">
-<ANCHOR id="GST-TAG-COMPOSER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-COMPOSER:CAPS">
-<ANCHOR id="GST-TAG-CONTACT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-CONTACT:CAPS">
-<ANCHOR id="GST-TAG-LICENSE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-LICENSE:CAPS">
-<ANCHOR id="GST-TAG-LICENSE-URI:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-LICENSE-URI:CAPS">
-<ANCHOR id="GST-TAG-PERFORMER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-PERFORMER:CAPS">
-<ANCHOR id="GST-TAG-DURATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DURATION:CAPS">
-<ANCHOR id="GST-TAG-CODEC:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS">
-<ANCHOR id="GST-TAG-VIDEO-CODEC:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS">
-<ANCHOR id="GST-TAG-AUDIO-CODEC:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS">
-<ANCHOR id="GST-TAG-SUBTITLE-CODEC:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SUBTITLE-CODEC:CAPS">
-<ANCHOR id="GST-TAG-CONTAINER-FORMAT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-CONTAINER-FORMAT:CAPS">
-<ANCHOR id="GST-TAG-BITRATE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-BITRATE:CAPS">
-<ANCHOR id="GST-TAG-NOMINAL-BITRATE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-NOMINAL-BITRATE:CAPS">
-<ANCHOR id="GST-TAG-MINIMUM-BITRATE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MINIMUM-BITRATE:CAPS">
-<ANCHOR id="GST-TAG-MAXIMUM-BITRATE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-MAXIMUM-BITRATE:CAPS">
-<ANCHOR id="GST-TAG-SERIAL:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SERIAL:CAPS">
-<ANCHOR id="GST-TAG-ENCODER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ENCODER:CAPS">
-<ANCHOR id="GST-TAG-ENCODER-VERSION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ENCODER-VERSION:CAPS">
-<ANCHOR id="GST-TAG-TRACK-GAIN:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS">
-<ANCHOR id="GST-TAG-TRACK-PEAK:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-GAIN:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS">
-<ANCHOR id="GST-TAG-ALBUM-PEAK:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS">
-<ANCHOR id="GST-TAG-REFERENCE-LEVEL:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS">
-<ANCHOR id="GST-TAG-LANGUAGE-CODE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS">
-<ANCHOR id="GST-TAG-IMAGE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS">
-<ANCHOR id="GST-TAG-PREVIEW-IMAGE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS">
-<ANCHOR id="GST-TAG-ATTACHMENT:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS">
-<ANCHOR id="GST-TAG-BEATS-PER-MINUTE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-BEATS-PER-MINUTE:CAPS">
-<ANCHOR id="GST-TAG-KEYWORDS:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-KEYWORDS:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-NAME:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-LATITUDE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LATITUDE:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-LONGITUDE:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LONGITUDE:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-ELEVATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-ELEVATION:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-CITY:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CITY:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-COUNTRY:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-COUNTRY:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-MOVEMENT-SPEED:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-SPEED:CAPS">
-<ANCHOR id="GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS">
-<ANCHOR id="GST-TAG-SHOW-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SHOW-NAME:CAPS">
-<ANCHOR id="GST-TAG-SHOW-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SHOW-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-SHOW-EPISODE-NUMBER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SHOW-EPISODE-NUMBER:CAPS">
-<ANCHOR id="GST-TAG-SHOW-SEASON-NUMBER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-SHOW-SEASON-NUMBER:CAPS">
-<ANCHOR id="GST-TAG-LYRICS:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-LYRICS:CAPS">
-<ANCHOR id="GST-TAG-COMPOSER-SORTNAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-COMPOSER-SORTNAME:CAPS">
-<ANCHOR id="GST-TAG-GROUPING:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-GROUPING:CAPS">
-<ANCHOR id="GST-TAG-USER-RATING:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-USER-RATING:CAPS">
-<ANCHOR id="GST-TAG-DEVICE-MANUFACTURER:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DEVICE-MANUFACTURER:CAPS">
-<ANCHOR id="GST-TAG-DEVICE-MODEL:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-DEVICE-MODEL:CAPS">
-<ANCHOR id="GST-TAG-APPLICATION-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-APPLICATION-NAME:CAPS">
-<ANCHOR id="GST-TAG-APPLICATION-DATA:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS">
-<ANCHOR id="GST-TAG-IMAGE-ORIENTATION:CAPS" href="gstreamer-0.11/gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS">
-<ANCHOR id="gst-tag-register" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-register">
-<ANCHOR id="gst-tag-merge-use-first" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-merge-use-first">
-<ANCHOR id="gst-tag-merge-strings-with-comma" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma">
-<ANCHOR id="gst-tag-exists" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-exists">
-<ANCHOR id="gst-tag-get-type" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-get-type">
-<ANCHOR id="gst-tag-get-nick" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-get-nick">
-<ANCHOR id="gst-tag-get-description" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-get-description">
-<ANCHOR id="gst-tag-get-flag" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-get-flag">
-<ANCHOR id="gst-tag-is-fixed" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-is-fixed">
-<ANCHOR id="gst-tag-list-new" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-new">
-<ANCHOR id="gst-tag-list-new-full" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-new-full">
-<ANCHOR id="gst-tag-list-new-full-valist" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-new-full-valist">
-<ANCHOR id="gst-is-tag-list" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-is-tag-list">
-<ANCHOR id="gst-tag-list-is-empty" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-is-empty">
-<ANCHOR id="gst-tag-list-copy" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-copy">
-<ANCHOR id="gst-tag-list-insert" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-insert">
-<ANCHOR id="gst-tag-list-merge" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-merge">
-<ANCHOR id="gst-tag-list-free" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-free">
-<ANCHOR id="gst-tag-list-get-tag-size" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-tag-size">
-<ANCHOR id="gst-tag-list-add" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-add">
-<ANCHOR id="gst-tag-list-add-value" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-add-value">
-<ANCHOR id="gst-tag-list-add-values" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-add-values">
-<ANCHOR id="gst-tag-list-add-valist" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-add-valist">
-<ANCHOR id="gst-tag-list-add-valist-values" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-add-valist-values">
-<ANCHOR id="gst-tag-list-remove-tag" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-remove-tag">
-<ANCHOR id="gst-tag-list-foreach" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-foreach">
-<ANCHOR id="gst-tag-list-get-value-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-value-index">
-<ANCHOR id="gst-tag-list-copy-value" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-copy-value">
-<ANCHOR id="gst-tag-list-get-char" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-char">
-<ANCHOR id="gst-tag-list-get-char-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-char-index">
-<ANCHOR id="gst-tag-list-get-uchar" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uchar">
-<ANCHOR id="gst-tag-list-get-uchar-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uchar-index">
-<ANCHOR id="gst-tag-list-get-boolean" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-boolean">
-<ANCHOR id="gst-tag-list-get-boolean-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-boolean-index">
-<ANCHOR id="gst-tag-list-get-int" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-int">
-<ANCHOR id="gst-tag-list-get-int-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-int-index">
-<ANCHOR id="gst-tag-list-get-uint" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uint">
-<ANCHOR id="gst-tag-list-get-uint-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uint-index">
-<ANCHOR id="gst-tag-list-get-long" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-long">
-<ANCHOR id="gst-tag-list-get-long-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-long-index">
-<ANCHOR id="gst-tag-list-get-ulong" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-ulong">
-<ANCHOR id="gst-tag-list-get-ulong-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-ulong-index">
-<ANCHOR id="gst-tag-list-get-int64" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-int64">
-<ANCHOR id="gst-tag-list-get-int64-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-int64-index">
-<ANCHOR id="gst-tag-list-get-uint64" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uint64">
-<ANCHOR id="gst-tag-list-get-uint64-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-uint64-index">
-<ANCHOR id="gst-tag-list-get-float" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-float">
-<ANCHOR id="gst-tag-list-get-float-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-float-index">
-<ANCHOR id="gst-tag-list-get-double" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-double">
-<ANCHOR id="gst-tag-list-get-double-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-double-index">
-<ANCHOR id="gst-tag-list-get-string" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-string">
-<ANCHOR id="gst-tag-list-get-string-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-string-index">
-<ANCHOR id="gst-tag-list-peek-string-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-peek-string-index">
-<ANCHOR id="gst-tag-list-get-pointer" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-pointer">
-<ANCHOR id="gst-tag-list-get-pointer-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-pointer-index">
-<ANCHOR id="gst-tag-list-get-date" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-date">
-<ANCHOR id="gst-tag-list-get-date-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-date-index">
-<ANCHOR id="gst-tag-list-get-date-time" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-date-time">
-<ANCHOR id="gst-tag-list-get-date-time-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-date-time-index">
-<ANCHOR id="gst-tag-list-get-buffer" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-buffer">
-<ANCHOR id="gst-tag-list-get-buffer-index" href="gstreamer-0.11/gstreamer-GstTagList.html#gst-tag-list-get-buffer-index">
-<ANCHOR id="GstTagSetter" href="gstreamer-0.11/GstTagSetter.html">
-<ANCHOR id="GstTagSetter.synopsis" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter.synopsis">
-<ANCHOR id="GstTagSetter.object-hierarchy" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter.object-hierarchy">
-<ANCHOR id="GstTagSetter.prerequisites" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter.prerequisites">
-<ANCHOR id="GstTagSetter.description" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter.description">
-<ANCHOR id="GstTagSetter.details" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter.details">
-<ANCHOR id="GstTagSetter-struct" href="gstreamer-0.11/GstTagSetter.html#GstTagSetter-struct">
-<ANCHOR id="GstTagSetterIFace" href="gstreamer-0.11/GstTagSetter.html#GstTagSetterIFace">
-<ANCHOR id="gst-tag-setter-reset-tags" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-reset-tags">
-<ANCHOR id="gst-tag-setter-merge-tags" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-merge-tags">
-<ANCHOR id="gst-tag-setter-add-tags" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-add-tags">
-<ANCHOR id="gst-tag-setter-add-tag-value" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-add-tag-value">
-<ANCHOR id="gst-tag-setter-add-tag-values" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-add-tag-values">
-<ANCHOR id="gst-tag-setter-add-tag-valist" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-add-tag-valist">
-<ANCHOR id="gst-tag-setter-add-tag-valist-values" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-add-tag-valist-values">
-<ANCHOR id="gst-tag-setter-get-tag-list" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-get-tag-list">
-<ANCHOR id="gst-tag-setter-set-tag-merge-mode" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-set-tag-merge-mode">
-<ANCHOR id="gst-tag-setter-get-tag-merge-mode" href="gstreamer-0.11/GstTagSetter.html#gst-tag-setter-get-tag-merge-mode">
-<ANCHOR id="GstTask" href="gstreamer-0.11/GstTask.html">
-<ANCHOR id="GstTask.synopsis" href="gstreamer-0.11/GstTask.html#GstTask.synopsis">
-<ANCHOR id="GstTask.object-hierarchy" href="gstreamer-0.11/GstTask.html#GstTask.object-hierarchy">
-<ANCHOR id="GstTask.description" href="gstreamer-0.11/GstTask.html#GstTask.description">
-<ANCHOR id="GstTask.details" href="gstreamer-0.11/GstTask.html#GstTask.details">
-<ANCHOR id="GstTask-struct" href="gstreamer-0.11/GstTask.html#GstTask-struct">
-<ANCHOR id="GstTaskFunction" href="gstreamer-0.11/GstTask.html#GstTaskFunction">
-<ANCHOR id="GstTaskState" href="gstreamer-0.11/GstTask.html#GstTaskState">
-<ANCHOR id="GST-TASK-STARTED:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-STARTED:CAPS">
-<ANCHOR id="GST-TASK-STOPPED:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-STOPPED:CAPS">
-<ANCHOR id="GST-TASK-PAUSED:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-PAUSED:CAPS">
-<ANCHOR id="GST-TASK-BROADCAST:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-BROADCAST:CAPS">
-<ANCHOR id="GST-TASK-GET-COND:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-GET-COND:CAPS">
-<ANCHOR id="GST-TASK-GET-LOCK:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-GET-LOCK:CAPS">
-<ANCHOR id="GST-TASK-SIGNAL:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-SIGNAL:CAPS">
-<ANCHOR id="GST-TASK-STATE:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-STATE:CAPS">
-<ANCHOR id="GST-TASK-WAIT:CAPS" href="gstreamer-0.11/GstTask.html#GST-TASK-WAIT:CAPS">
-<ANCHOR id="gst-task-create" href="gstreamer-0.11/GstTask.html#gst-task-create">
-<ANCHOR id="gst-task-set-lock" href="gstreamer-0.11/GstTask.html#gst-task-set-lock">
-<ANCHOR id="gst-task-set-priority" href="gstreamer-0.11/GstTask.html#gst-task-set-priority">
-<ANCHOR id="gst-task-set-pool" href="gstreamer-0.11/GstTask.html#gst-task-set-pool">
-<ANCHOR id="gst-task-get-pool" href="gstreamer-0.11/GstTask.html#gst-task-get-pool">
-<ANCHOR id="GstTaskThreadCallbacks" href="gstreamer-0.11/GstTask.html#GstTaskThreadCallbacks">
-<ANCHOR id="gst-task-set-thread-callbacks" href="gstreamer-0.11/GstTask.html#gst-task-set-thread-callbacks">
-<ANCHOR id="gst-task-get-state" href="gstreamer-0.11/GstTask.html#gst-task-get-state">
-<ANCHOR id="gst-task-set-state" href="gstreamer-0.11/GstTask.html#gst-task-set-state">
-<ANCHOR id="gst-task-pause" href="gstreamer-0.11/GstTask.html#gst-task-pause">
-<ANCHOR id="gst-task-start" href="gstreamer-0.11/GstTask.html#gst-task-start">
-<ANCHOR id="gst-task-stop" href="gstreamer-0.11/GstTask.html#gst-task-stop">
-<ANCHOR id="gst-task-join" href="gstreamer-0.11/GstTask.html#gst-task-join">
-<ANCHOR id="gst-task-cleanup-all" href="gstreamer-0.11/GstTask.html#gst-task-cleanup-all">
-<ANCHOR id="GstTask.see-also" href="gstreamer-0.11/GstTask.html#GstTask.see-also">
-<ANCHOR id="GstTaskPool" href="gstreamer-0.11/GstTaskPool.html">
-<ANCHOR id="GstTaskPool.synopsis" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool.synopsis">
-<ANCHOR id="GstTaskPool.object-hierarchy" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool.object-hierarchy">
-<ANCHOR id="GstTaskPool.description" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool.description">
-<ANCHOR id="GstTaskPool.details" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool.details">
-<ANCHOR id="GstTaskPool-struct" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool-struct">
-<ANCHOR id="GstTaskPoolClass" href="gstreamer-0.11/GstTaskPool.html#GstTaskPoolClass">
-<ANCHOR id="GstTaskPoolFunction" href="gstreamer-0.11/GstTaskPool.html#GstTaskPoolFunction">
-<ANCHOR id="gst-task-pool-new" href="gstreamer-0.11/GstTaskPool.html#gst-task-pool-new">
-<ANCHOR id="gst-task-pool-prepare" href="gstreamer-0.11/GstTaskPool.html#gst-task-pool-prepare">
-<ANCHOR id="gst-task-pool-push" href="gstreamer-0.11/GstTaskPool.html#gst-task-pool-push">
-<ANCHOR id="gst-task-pool-join" href="gstreamer-0.11/GstTaskPool.html#gst-task-pool-join">
-<ANCHOR id="gst-task-pool-cleanup" href="gstreamer-0.11/GstTaskPool.html#gst-task-pool-cleanup">
-<ANCHOR id="GstTaskPool.see-also" href="gstreamer-0.11/GstTaskPool.html#GstTaskPool.see-also">
-<ANCHOR id="gstreamer-GstTypeFind" href="gstreamer-0.11/gstreamer-GstTypeFind.html">
-<ANCHOR id="gstreamer-GstTypeFind.synopsis" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.synopsis">
-<ANCHOR id="gstreamer-GstTypeFind.description" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.description">
-<ANCHOR id="gstreamer-GstTypeFind.details" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.details">
-<ANCHOR id="GstTypeFind" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFind">
-<ANCHOR id="GstTypeFindFunction" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindFunction">
-<ANCHOR id="GstTypeFindProbability" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability">
-<ANCHOR id="GST-TYPE-FIND-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-NONE:CAPS">
-<ANCHOR id="GST-TYPE-FIND-MINIMUM:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MINIMUM:CAPS">
-<ANCHOR id="GST-TYPE-FIND-POSSIBLE:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-POSSIBLE:CAPS">
-<ANCHOR id="GST-TYPE-FIND-LIKELY:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-LIKELY:CAPS">
-<ANCHOR id="GST-TYPE-FIND-NEARLY-CERTAIN:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-NEARLY-CERTAIN:CAPS">
-<ANCHOR id="GST-TYPE-FIND-MAXIMUM:CAPS" href="gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS">
-<ANCHOR id="gst-type-find-peek" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gst-type-find-peek">
-<ANCHOR id="gst-type-find-suggest" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gst-type-find-suggest">
-<ANCHOR id="gst-type-find-suggest-simple" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gst-type-find-suggest-simple">
-<ANCHOR id="gst-type-find-get-length" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gst-type-find-get-length">
-<ANCHOR id="gst-type-find-register" href="gstreamer-0.11/gstreamer-GstTypeFind.html#gst-type-find-register">
-<ANCHOR id="GstTypeFindFactory" href="gstreamer-0.11/GstTypeFindFactory.html">
-<ANCHOR id="GstTypeFindFactory.synopsis" href="gstreamer-0.11/GstTypeFindFactory.html#GstTypeFindFactory.synopsis">
-<ANCHOR id="GstTypeFindFactory.object-hierarchy" href="gstreamer-0.11/GstTypeFindFactory.html#GstTypeFindFactory.object-hierarchy">
-<ANCHOR id="GstTypeFindFactory.description" href="gstreamer-0.11/GstTypeFindFactory.html#GstTypeFindFactory.description">
-<ANCHOR id="GstTypeFindFactory.details" href="gstreamer-0.11/GstTypeFindFactory.html#GstTypeFindFactory.details">
-<ANCHOR id="GstTypeFindFactory-struct" href="gstreamer-0.11/GstTypeFindFactory.html#GstTypeFindFactory-struct">
-<ANCHOR id="gst-type-find-factory-get-list" href="gstreamer-0.11/GstTypeFindFactory.html#gst-type-find-factory-get-list">
-<ANCHOR id="gst-type-find-factory-get-extensions" href="gstreamer-0.11/GstTypeFindFactory.html#gst-type-find-factory-get-extensions">
-<ANCHOR id="gst-type-find-factory-get-caps" href="gstreamer-0.11/GstTypeFindFactory.html#gst-type-find-factory-get-caps">
-<ANCHOR id="gst-type-find-factory-call-function" href="gstreamer-0.11/GstTypeFindFactory.html#gst-type-find-factory-call-function">
-<ANCHOR id="gstreamer-GstUriHandler" href="gstreamer-0.11/gstreamer-GstUriHandler.html">
-<ANCHOR id="gstreamer-GstUriHandler.synopsis" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.synopsis">
-<ANCHOR id="GstURIHandler" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler">
-<ANCHOR id="gstreamer-GstUriHandler.object-hierarchy" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.object-hierarchy">
-<ANCHOR id="gstreamer-GstUriHandler.signals" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.signals">
-<ANCHOR id="gstreamer-GstUriHandler.description" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.description">
-<ANCHOR id="gstreamer-GstUriHandler.details" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.details">
-<ANCHOR id="GstURIHandler-struct" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler-struct">
-<ANCHOR id="GstURIHandlerInterface" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandlerInterface">
-<ANCHOR id="GstURIType" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIType">
-<ANCHOR id="GST-URI-UNKNOWN:CAPS" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS">
-<ANCHOR id="GST-URI-SINK:CAPS" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GST-URI-SINK:CAPS">
-<ANCHOR id="GST-URI-SRC:CAPS" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GST-URI-SRC:CAPS">
-<ANCHOR id="GST-URI-TYPE-IS-VALID:CAPS" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GST-URI-TYPE-IS-VALID:CAPS">
-<ANCHOR id="gst-uri-protocol-is-valid" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-protocol-is-valid">
-<ANCHOR id="gst-uri-protocol-is-supported" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported">
-<ANCHOR id="gst-uri-is-valid" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-is-valid">
-<ANCHOR id="gst-uri-has-protocol" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-has-protocol">
-<ANCHOR id="gst-uri-get-protocol" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-get-protocol">
-<ANCHOR id="gst-uri-get-location" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-get-location">
-<ANCHOR id="gst-uri-construct" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-construct">
-<ANCHOR id="gst-filename-to-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-filename-to-uri">
-<ANCHOR id="gst-element-make-from-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-element-make-from-uri">
-<ANCHOR id="gst-uri-handler-get-uri-type" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type">
-<ANCHOR id="gst-uri-handler-get-protocols" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols">
-<ANCHOR id="gst-uri-handler-get-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-handler-get-uri">
-<ANCHOR id="gst-uri-handler-set-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-handler-set-uri">
-<ANCHOR id="gst-uri-handler-new-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gst-uri-handler-new-uri">
-<ANCHOR id="gstreamer-GstUriHandler.signal-details" href="gstreamer-0.11/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.signal-details">
-<ANCHOR id="GstURIHandler-new-uri" href="gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler-new-uri">
-<ANCHOR id="gstreamer-GstUtils" href="gstreamer-0.11/gstreamer-GstUtils.html">
-<ANCHOR id="gstreamer-GstUtils.synopsis" href="gstreamer-0.11/gstreamer-GstUtils.html#gstreamer-GstUtils.synopsis">
-<ANCHOR id="gstreamer-GstUtils.description" href="gstreamer-0.11/gstreamer-GstUtils.html#gstreamer-GstUtils.description">
-<ANCHOR id="gstreamer-GstUtils.details" href="gstreamer-0.11/gstreamer-GstUtils.html#gstreamer-GstUtils.details">
-<ANCHOR id="GST-CALL-PARENT:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS">
-<ANCHOR id="GST-CALL-PARENT-WITH-DEFAULT:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-CALL-PARENT-WITH-DEFAULT:CAPS">
-<ANCHOR id="GST-READ-UINT8:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT8:CAPS">
-<ANCHOR id="GST-READ-UINT16-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT16-LE:CAPS">
-<ANCHOR id="GST-READ-UINT16-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT16-BE:CAPS">
-<ANCHOR id="GST-READ-UINT24-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT24-LE:CAPS">
-<ANCHOR id="GST-READ-UINT24-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT24-BE:CAPS">
-<ANCHOR id="GST-READ-UINT32-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT32-LE:CAPS">
-<ANCHOR id="GST-READ-UINT32-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT32-BE:CAPS">
-<ANCHOR id="GST-READ-UINT64-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT64-LE:CAPS">
-<ANCHOR id="GST-READ-UINT64-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-UINT64-BE:CAPS">
-<ANCHOR id="GST-READ-FLOAT-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS">
-<ANCHOR id="GST-READ-FLOAT-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS">
-<ANCHOR id="GST-READ-DOUBLE-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS">
-<ANCHOR id="GST-READ-DOUBLE-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS">
-<ANCHOR id="GST-WRITE-UINT8:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT8:CAPS">
-<ANCHOR id="GST-WRITE-UINT16-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT16-LE:CAPS">
-<ANCHOR id="GST-WRITE-UINT16-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT16-BE:CAPS">
-<ANCHOR id="GST-WRITE-UINT24-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT24-LE:CAPS">
-<ANCHOR id="GST-WRITE-UINT24-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT24-BE:CAPS">
-<ANCHOR id="GST-WRITE-UINT32-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT32-LE:CAPS">
-<ANCHOR id="GST-WRITE-UINT32-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT32-BE:CAPS">
-<ANCHOR id="GST-WRITE-UINT64-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT64-LE:CAPS">
-<ANCHOR id="GST-WRITE-UINT64-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-UINT64-BE:CAPS">
-<ANCHOR id="GST-WRITE-FLOAT-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS">
-<ANCHOR id="GST-WRITE-FLOAT-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS">
-<ANCHOR id="GST-WRITE-DOUBLE-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS">
-<ANCHOR id="GST-WRITE-DOUBLE-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS">
-<ANCHOR id="GST-ROUND-UP-2:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-2:CAPS">
-<ANCHOR id="GST-ROUND-UP-4:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-4:CAPS">
-<ANCHOR id="GST-ROUND-UP-8:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-8:CAPS">
-<ANCHOR id="GST-ROUND-UP-16:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-16:CAPS">
-<ANCHOR id="GST-ROUND-UP-32:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-32:CAPS">
-<ANCHOR id="GST-ROUND-UP-64:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-UP-64:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-2:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-2:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-4:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-4:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-8:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-8:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-16:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-16:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-32:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-32:CAPS">
-<ANCHOR id="GST-ROUND-DOWN-64:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-ROUND-DOWN-64:CAPS">
-<ANCHOR id="GDOUBLE-FROM-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GDOUBLE-FROM-BE:CAPS">
-<ANCHOR id="GDOUBLE-FROM-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GDOUBLE-FROM-LE:CAPS">
-<ANCHOR id="GDOUBLE-SWAP-LE-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GDOUBLE-SWAP-LE-BE:CAPS">
-<ANCHOR id="GDOUBLE-TO-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GDOUBLE-TO-BE:CAPS">
-<ANCHOR id="GDOUBLE-TO-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GDOUBLE-TO-LE:CAPS">
-<ANCHOR id="GFLOAT-FROM-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GFLOAT-FROM-BE:CAPS">
-<ANCHOR id="GFLOAT-FROM-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GFLOAT-FROM-LE:CAPS">
-<ANCHOR id="GFLOAT-SWAP-LE-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GFLOAT-SWAP-LE-BE:CAPS">
-<ANCHOR id="GFLOAT-TO-BE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GFLOAT-TO-BE:CAPS">
-<ANCHOR id="GFLOAT-TO-LE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS">
-<ANCHOR id="gst-flow-get-name" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-flow-get-name">
-<ANCHOR id="gst-flow-to-quark" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-flow-to-quark">
-<ANCHOR id="gst-print-element-args" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-print-element-args">
-<ANCHOR id="gst-print-pad-caps" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-print-pad-caps">
-<ANCHOR id="gst-guint64-to-gdouble" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-guint64-to-gdouble">
-<ANCHOR id="gst-gdouble-to-guint64" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-gdouble-to-guint64">
-<ANCHOR id="gst-type-register-static-full" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-type-register-static-full">
-<ANCHOR id="gst-util-dump-mem" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-dump-mem">
-<ANCHOR id="gst-util-uint64-scale" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale">
-<ANCHOR id="gst-util-uint64-scale-round" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale-round">
-<ANCHOR id="gst-util-uint64-scale-ceil" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale-ceil">
-<ANCHOR id="gst-util-uint64-scale-int" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale-int">
-<ANCHOR id="gst-util-uint64-scale-int-round" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale-int-round">
-<ANCHOR id="gst-util-uint64-scale-int-ceil" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil">
-<ANCHOR id="gst-util-greatest-common-divisor" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-greatest-common-divisor">
-<ANCHOR id="gst-util-fraction-to-double" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-fraction-to-double">
-<ANCHOR id="gst-util-double-to-fraction" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-double-to-fraction">
-<ANCHOR id="gst-util-fraction-multiply" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-fraction-multiply">
-<ANCHOR id="gst-util-fraction-add" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-fraction-add">
-<ANCHOR id="gst-util-fraction-compare" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-fraction-compare">
-<ANCHOR id="gst-util-seqnum-next" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-seqnum-next">
-<ANCHOR id="gst-util-seqnum-compare" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-seqnum-compare">
-<ANCHOR id="gst-util-set-object-arg" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-set-object-arg">
-<ANCHOR id="gst-util-set-value-from-string" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-set-value-from-string">
-<ANCHOR id="gst-util-get-timestamp" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-get-timestamp">
-<ANCHOR id="GstSearchMode" href="gstreamer-0.11/gstreamer-GstUtils.html#GstSearchMode">
-<ANCHOR id="GST-SEARCH-MODE-EXACT:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-SEARCH-MODE-EXACT:CAPS">
-<ANCHOR id="GST-SEARCH-MODE-BEFORE:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-SEARCH-MODE-BEFORE:CAPS">
-<ANCHOR id="GST-SEARCH-MODE-AFTER:CAPS" href="gstreamer-0.11/gstreamer-GstUtils.html#GST-SEARCH-MODE-AFTER:CAPS">
-<ANCHOR id="gst-util-array-binary-search" href="gstreamer-0.11/gstreamer-GstUtils.html#gst-util-array-binary-search">
-<ANCHOR id="gstreamer-GstValue" href="gstreamer-0.11/gstreamer-GstValue.html">
-<ANCHOR id="gstreamer-GstValue.synopsis" href="gstreamer-0.11/gstreamer-GstValue.html#gstreamer-GstValue.synopsis">
-<ANCHOR id="gstreamer-GstValue.description" href="gstreamer-0.11/gstreamer-GstValue.html#gstreamer-GstValue.description">
-<ANCHOR id="gstreamer-GstValue.details" href="gstreamer-0.11/gstreamer-GstValue.html#gstreamer-GstValue.details">
-<ANCHOR id="GST-MAKE-FOURCC:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS">
-<ANCHOR id="GST-STR-FOURCC:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-STR-FOURCC:CAPS">
-<ANCHOR id="GST-FOURCC-FORMAT:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS">
-<ANCHOR id="GST-FOURCC-ARGS:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS">
-<ANCHOR id="GST-VALUE-HOLDS-INT-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-INT-RANGE:CAPS">
-<ANCHOR id="GST-TYPE-INT-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-INT-RANGE:CAPS">
-<ANCHOR id="gst-value-set-int-range" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-int-range">
-<ANCHOR id="gst-value-get-int-range-min" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-int-range-min">
-<ANCHOR id="gst-value-get-int-range-max" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-int-range-max">
-<ANCHOR id="GST-VALUE-HOLDS-INT64-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS">
-<ANCHOR id="GST-TYPE-INT64-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS">
-<ANCHOR id="gst-value-set-int64-range" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-int64-range">
-<ANCHOR id="gst-value-get-int64-range-min" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-int64-range-min">
-<ANCHOR id="gst-value-get-int64-range-max" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-int64-range-max">
-<ANCHOR id="GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS">
-<ANCHOR id="GST-TYPE-DOUBLE-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS">
-<ANCHOR id="gst-value-set-double-range" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-double-range">
-<ANCHOR id="gst-value-get-double-range-min" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-double-range-min">
-<ANCHOR id="gst-value-get-double-range-max" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-double-range-max">
-<ANCHOR id="GST-VALUE-HOLDS-LIST:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-LIST:CAPS">
-<ANCHOR id="GST-TYPE-LIST:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-LIST:CAPS">
-<ANCHOR id="GST-VALUE-HOLDS-ARRAY:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-ARRAY:CAPS">
-<ANCHOR id="GST-TYPE-ARRAY:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS">
-<ANCHOR id="gst-value-list-append-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-append-value">
-<ANCHOR id="gst-value-list-prepend-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-prepend-value">
-<ANCHOR id="gst-value-list-concat" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-concat">
-<ANCHOR id="gst-value-list-merge" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-merge">
-<ANCHOR id="gst-value-list-get-size" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-get-size">
-<ANCHOR id="gst-value-list-get-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-list-get-value">
-<ANCHOR id="GST-VALUE-HOLDS-FRACTION:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-FRACTION:CAPS">
-<ANCHOR id="GST-TYPE-FRACTION:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS">
-<ANCHOR id="gst-value-set-fraction" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-fraction">
-<ANCHOR id="gst-value-get-fraction-numerator" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-fraction-numerator">
-<ANCHOR id="gst-value-get-fraction-denominator" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-fraction-denominator">
-<ANCHOR id="gst-value-fraction-multiply" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-fraction-multiply">
-<ANCHOR id="gst-value-fraction-subtract" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-fraction-subtract">
-<ANCHOR id="GST-VALUE-HOLDS-FRACTION-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-FRACTION-RANGE:CAPS">
-<ANCHOR id="GST-TYPE-FRACTION-RANGE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-FRACTION-RANGE:CAPS">
-<ANCHOR id="gst-value-set-fraction-range" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-fraction-range">
-<ANCHOR id="gst-value-get-fraction-range-min" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-fraction-range-min">
-<ANCHOR id="gst-value-get-fraction-range-max" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-fraction-range-max">
-<ANCHOR id="gst-value-set-fraction-range-full" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-fraction-range-full">
-<ANCHOR id="GST-VALUE-HOLDS-DATE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE:CAPS">
-<ANCHOR id="GST-TYPE-DATE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-TYPE-DATE:CAPS">
-<ANCHOR id="gst-value-set-date" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-date">
-<ANCHOR id="gst-value-get-date" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-date">
-<ANCHOR id="GST-VALUE-HOLDS-DATE-TIME:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS">
-<ANCHOR id="GST-VALUE-HOLDS-CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS">
-<ANCHOR id="gst-value-set-caps" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-caps">
-<ANCHOR id="gst-value-get-caps" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-caps">
-<ANCHOR id="GST-VALUE-HOLDS-STRUCTURE:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS">
-<ANCHOR id="gst-value-set-structure" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-structure">
-<ANCHOR id="gst-value-get-structure" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-structure">
-<ANCHOR id="GST-VALUE-HOLDS-BUFFER:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-HOLDS-BUFFER:CAPS">
-<ANCHOR id="gst-value-get-buffer" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-get-buffer">
-<ANCHOR id="gst-value-set-buffer" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-set-buffer">
-<ANCHOR id="gst-value-take-buffer" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-take-buffer">
-<ANCHOR id="GST-VALUE-LESS-THAN:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-LESS-THAN:CAPS">
-<ANCHOR id="GST-VALUE-EQUAL:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-EQUAL:CAPS">
-<ANCHOR id="GST-VALUE-GREATER-THAN:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-GREATER-THAN:CAPS">
-<ANCHOR id="GST-VALUE-UNORDERED:CAPS" href="gstreamer-0.11/gstreamer-GstValue.html#GST-VALUE-UNORDERED:CAPS">
-<ANCHOR id="GstValueCompareFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueCompareFunc">
-<ANCHOR id="GstValueSerializeFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueSerializeFunc">
-<ANCHOR id="GstValueDeserializeFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueDeserializeFunc">
-<ANCHOR id="GstValueUnionFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueUnionFunc">
-<ANCHOR id="GstValueIntersectFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueIntersectFunc">
-<ANCHOR id="GstValueSubtractFunc" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueSubtractFunc">
-<ANCHOR id="GstValueTable" href="gstreamer-0.11/gstreamer-GstValue.html#GstValueTable">
-<ANCHOR id="gst-value-is-fixed" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-is-fixed">
-<ANCHOR id="gst-value-register" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-register">
-<ANCHOR id="gst-value-init-and-copy" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-init-and-copy">
-<ANCHOR id="gst-value-serialize" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-serialize">
-<ANCHOR id="gst-value-deserialize" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-deserialize">
-<ANCHOR id="gst-value-compare" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-compare">
-<ANCHOR id="gst-value-can-compare" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-can-compare">
-<ANCHOR id="gst-value-union" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-union">
-<ANCHOR id="gst-value-can-union" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-can-union">
-<ANCHOR id="gst-value-register-union-func" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-register-union-func">
-<ANCHOR id="gst-value-subtract" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-subtract">
-<ANCHOR id="gst-value-can-subtract" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-can-subtract">
-<ANCHOR id="gst-value-register-subtract-func" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-register-subtract-func">
-<ANCHOR id="gst-value-intersect" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-intersect">
-<ANCHOR id="gst-value-can-intersect" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-can-intersect">
-<ANCHOR id="gst-value-register-intersect-func" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-register-intersect-func">
-<ANCHOR id="gst-value-array-append-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-array-append-value">
-<ANCHOR id="gst-value-array-get-size" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-array-get-size">
-<ANCHOR id="gst-value-array-get-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-array-get-value">
-<ANCHOR id="gst-value-array-prepend-value" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-array-prepend-value">
-<ANCHOR id="gst-value-fixate" href="gstreamer-0.11/gstreamer-GstValue.html#gst-value-fixate">
-<ANCHOR id="gstreamer-GstVersion" href="gstreamer-0.11/gstreamer-GstVersion.html">
-<ANCHOR id="gstreamer-GstVersion.synopsis" href="gstreamer-0.11/gstreamer-GstVersion.html#gstreamer-GstVersion.synopsis">
-<ANCHOR id="gstreamer-GstVersion.description" href="gstreamer-0.11/gstreamer-GstVersion.html#gstreamer-GstVersion.description">
-<ANCHOR id="gstreamer-GstVersion.details" href="gstreamer-0.11/gstreamer-GstVersion.html#gstreamer-GstVersion.details">
-<ANCHOR id="GST-VERSION-MAJOR:CAPS" href="gstreamer-0.11/gstreamer-GstVersion.html#GST-VERSION-MAJOR:CAPS">
-<ANCHOR id="GST-VERSION-MINOR:CAPS" href="gstreamer-0.11/gstreamer-GstVersion.html#GST-VERSION-MINOR:CAPS">
-<ANCHOR id="GST-VERSION-MICRO:CAPS" href="gstreamer-0.11/gstreamer-GstVersion.html#GST-VERSION-MICRO:CAPS">
-<ANCHOR id="GST-VERSION-NANO:CAPS" href="gstreamer-0.11/gstreamer-GstVersion.html#GST-VERSION-NANO:CAPS">
-<ANCHOR id="GST-CHECK-VERSION:CAPS" href="gstreamer-0.11/gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS">
-<ANCHOR id="gstreamer-GstInfo" href="gstreamer-0.11/gstreamer-GstInfo.html">
-<ANCHOR id="gstreamer-GstInfo.synopsis" href="gstreamer-0.11/gstreamer-GstInfo.html#gstreamer-GstInfo.synopsis">
-<ANCHOR id="gstreamer-GstInfo.description" href="gstreamer-0.11/gstreamer-GstInfo.html#gstreamer-GstInfo.description">
-<ANCHOR id="gstreamer-GstInfo.details" href="gstreamer-0.11/gstreamer-GstInfo.html#gstreamer-GstInfo.details">
-<ANCHOR id="GstDebugLevel" href="gstreamer-0.11/gstreamer-GstInfo.html#GstDebugLevel">
-<ANCHOR id="GST-LEVEL-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-NONE:CAPS">
-<ANCHOR id="GST-LEVEL-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-ERROR:CAPS">
-<ANCHOR id="GST-LEVEL-WARNING:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-WARNING:CAPS">
-<ANCHOR id="GST-LEVEL-INFO:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-INFO:CAPS">
-<ANCHOR id="GST-LEVEL-DEBUG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-DEBUG:CAPS">
-<ANCHOR id="GST-LEVEL-LOG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-LOG:CAPS">
-<ANCHOR id="GST-LEVEL-FIXME:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-FIXME:CAPS">
-<ANCHOR id="GST-LEVEL-TRACE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-TRACE:CAPS">
-<ANCHOR id="GST-LEVEL-MEMDUMP:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-MEMDUMP:CAPS">
-<ANCHOR id="GST-LEVEL-COUNT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-COUNT:CAPS">
-<ANCHOR id="GST-LEVEL-DEFAULT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LEVEL-DEFAULT:CAPS">
-<ANCHOR id="GstDebugColorFlags" href="gstreamer-0.11/gstreamer-GstInfo.html#GstDebugColorFlags">
-<ANCHOR id="GST-DEBUG-FG-BLACK:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-BLACK:CAPS">
-<ANCHOR id="GST-DEBUG-FG-RED:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-RED:CAPS">
-<ANCHOR id="GST-DEBUG-FG-GREEN:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-GREEN:CAPS">
-<ANCHOR id="GST-DEBUG-FG-YELLOW:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-YELLOW:CAPS">
-<ANCHOR id="GST-DEBUG-FG-BLUE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-BLUE:CAPS">
-<ANCHOR id="GST-DEBUG-FG-MAGENTA:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-MAGENTA:CAPS">
-<ANCHOR id="GST-DEBUG-FG-CYAN:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-CYAN:CAPS">
-<ANCHOR id="GST-DEBUG-FG-WHITE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FG-WHITE:CAPS">
-<ANCHOR id="GST-DEBUG-BG-BLACK:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-BLACK:CAPS">
-<ANCHOR id="GST-DEBUG-BG-RED:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-RED:CAPS">
-<ANCHOR id="GST-DEBUG-BG-GREEN:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-GREEN:CAPS">
-<ANCHOR id="GST-DEBUG-BG-YELLOW:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-YELLOW:CAPS">
-<ANCHOR id="GST-DEBUG-BG-BLUE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-BLUE:CAPS">
-<ANCHOR id="GST-DEBUG-BG-MAGENTA:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-MAGENTA:CAPS">
-<ANCHOR id="GST-DEBUG-BG-CYAN:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-CYAN:CAPS">
-<ANCHOR id="GST-DEBUG-BG-WHITE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BG-WHITE:CAPS">
-<ANCHOR id="GST-DEBUG-BOLD:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BOLD:CAPS">
-<ANCHOR id="GST-DEBUG-UNDERLINE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-UNDERLINE:CAPS">
-<ANCHOR id="GstDebugCategory" href="gstreamer-0.11/gstreamer-GstInfo.html#GstDebugCategory">
-<ANCHOR id="GstDebugGraphDetails" href="gstreamer-0.11/gstreamer-GstInfo.html#GstDebugGraphDetails">
-<ANCHOR id="GST-DEBUG-GRAPH-SHOW-MEDIA-TYPE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-MEDIA-TYPE:CAPS">
-<ANCHOR id="GST-DEBUG-GRAPH-SHOW-CAPS-DETAILS:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-CAPS-DETAILS:CAPS">
-<ANCHOR id="GST-DEBUG-GRAPH-SHOW-NON-DEFAULT-PARAMS:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-NON-DEFAULT-PARAMS:CAPS">
-<ANCHOR id="GST-DEBUG-GRAPH-SHOW-STATES:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-STATES:CAPS">
-<ANCHOR id="GST-DEBUG-GRAPH-SHOW-ALL:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-ALL:CAPS">
-<ANCHOR id="GST-STR-NULL:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-STR-NULL:CAPS">
-<ANCHOR id="GST-DEBUG-PAD-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-PAD-NAME:CAPS">
-<ANCHOR id="GST-FUNCTION:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-FUNCTION:CAPS">
-<ANCHOR id="GstLogFunction" href="gstreamer-0.11/gstreamer-GstInfo.html#GstLogFunction">
-<ANCHOR id="gst-debug-log" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-log">
-<ANCHOR id="gst-debug-log-valist" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-log-valist">
-<ANCHOR id="gst-debug-message-get" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-message-get">
-<ANCHOR id="gst-debug-log-default" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-log-default">
-<ANCHOR id="gst-debug-level-get-name" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-level-get-name">
-<ANCHOR id="gst-debug-add-log-function" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-add-log-function">
-<ANCHOR id="gst-debug-remove-log-function" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-remove-log-function">
-<ANCHOR id="gst-debug-remove-log-function-by-data" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-remove-log-function-by-data">
-<ANCHOR id="gst-debug-set-active" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-set-active">
-<ANCHOR id="gst-debug-is-active" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-is-active">
-<ANCHOR id="gst-debug-set-colored" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-set-colored">
-<ANCHOR id="gst-debug-is-colored" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-is-colored">
-<ANCHOR id="gst-debug-set-default-threshold" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-set-default-threshold">
-<ANCHOR id="gst-debug-get-default-threshold" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-get-default-threshold">
-<ANCHOR id="gst-debug-set-threshold-for-name" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-set-threshold-for-name">
-<ANCHOR id="gst-debug-unset-threshold-for-name" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-unset-threshold-for-name">
-<ANCHOR id="GST-DEBUG-CATEGORY:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY:CAPS">
-<ANCHOR id="GST-DEBUG-CATEGORY-EXTERN:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-EXTERN:CAPS">
-<ANCHOR id="GST-DEBUG-CATEGORY-STATIC:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">
-<ANCHOR id="GST-DEBUG-CATEGORY-INIT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">
-<ANCHOR id="GST-DEBUG-CATEGORY-GET:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS">
-<ANCHOR id="gst-debug-category-free" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-free">
-<ANCHOR id="gst-debug-category-set-threshold" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-set-threshold">
-<ANCHOR id="gst-debug-category-reset-threshold" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-reset-threshold">
-<ANCHOR id="gst-debug-category-get-threshold" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-get-threshold">
-<ANCHOR id="gst-debug-category-get-name" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-get-name">
-<ANCHOR id="gst-debug-category-get-color" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-get-color">
-<ANCHOR id="gst-debug-category-get-description" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-category-get-description">
-<ANCHOR id="gst-debug-get-all-categories" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-get-all-categories">
-<ANCHOR id="gst-debug-construct-term-color" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-construct-term-color">
-<ANCHOR id="gst-debug-construct-win-color" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-construct-win-color">
-<ANCHOR id="GST-CAT-LEVEL-LOG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-LEVEL-LOG:CAPS">
-<ANCHOR id="GST-CAT-ERROR-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-ERROR-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-WARNING-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-WARNING-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-INFO-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-INFO-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-DEBUG-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-DEBUG-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-LOG-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-LOG-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-FIXME-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-FIXME-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-TRACE-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-TRACE-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-MEMDUMP-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-MEMDUMP-OBJECT:CAPS">
-<ANCHOR id="GST-CAT-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-ERROR:CAPS">
-<ANCHOR id="GST-CAT-WARNING:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-WARNING:CAPS">
-<ANCHOR id="GST-CAT-INFO:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-INFO:CAPS">
-<ANCHOR id="GST-CAT-DEBUG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-DEBUG:CAPS">
-<ANCHOR id="GST-CAT-LOG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-LOG:CAPS">
-<ANCHOR id="GST-CAT-FIXME:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-FIXME:CAPS">
-<ANCHOR id="GST-CAT-TRACE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-TRACE:CAPS">
-<ANCHOR id="GST-CAT-MEMDUMP:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-CAT-MEMDUMP:CAPS">
-<ANCHOR id="GST-ERROR-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-ERROR-OBJECT:CAPS">
-<ANCHOR id="GST-WARNING-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-WARNING-OBJECT:CAPS">
-<ANCHOR id="GST-INFO-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-INFO-OBJECT:CAPS">
-<ANCHOR id="GST-DEBUG-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-OBJECT:CAPS">
-<ANCHOR id="GST-LOG-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">
-<ANCHOR id="GST-FIXME-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-FIXME-OBJECT:CAPS">
-<ANCHOR id="GST-TRACE-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-TRACE-OBJECT:CAPS">
-<ANCHOR id="GST-MEMDUMP-OBJECT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-MEMDUMP-OBJECT:CAPS">
-<ANCHOR id="GST-ERROR:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-ERROR:CAPS">
-<ANCHOR id="GST-WARNING:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-WARNING:CAPS">
-<ANCHOR id="GST-INFO:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-INFO:CAPS">
-<ANCHOR id="GST-DEBUG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG:CAPS">
-<ANCHOR id="GST-LOG:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-LOG:CAPS">
-<ANCHOR id="GST-FIXME:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-FIXME:CAPS">
-<ANCHOR id="GST-TRACE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-TRACE:CAPS">
-<ANCHOR id="GST-MEMDUMP:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-MEMDUMP:CAPS">
-<ANCHOR id="GST-DEBUG-REGISTER-FUNCPTR:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-REGISTER-FUNCPTR:CAPS">
-<ANCHOR id="GST-DEBUG-FUNCPTR:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR:CAPS">
-<ANCHOR id="GST-DEBUG-FUNCPTR-NAME:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR-NAME:CAPS">
-<ANCHOR id="GST-DEBUG-BIN-TO-DOT-FILE:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS">
-<ANCHOR id="GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS">
-<ANCHOR id="gst-debug-print-stack-trace" href="gstreamer-0.11/gstreamer-GstInfo.html#gst-debug-print-stack-trace">
-<ANCHOR id="GST-TIME-FORMAT:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS">
-<ANCHOR id="GST-TIME-ARGS:CAPS" href="gstreamer-0.11/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">
-<ANCHOR id="gstreamer-GstInfo.see-also" href="gstreamer-0.11/gstreamer-GstInfo.html#gstreamer-GstInfo.see-also">
-<ANCHOR id="gstreamer-GstTrace" href="gstreamer-0.11/gstreamer-GstTrace.html">
-<ANCHOR id="gstreamer-GstTrace.synopsis" href="gstreamer-0.11/gstreamer-GstTrace.html#gstreamer-GstTrace.synopsis">
-<ANCHOR id="gstreamer-GstTrace.description" href="gstreamer-0.11/gstreamer-GstTrace.html#gstreamer-GstTrace.description">
-<ANCHOR id="gstreamer-GstTrace.details" href="gstreamer-0.11/gstreamer-GstTrace.html#gstreamer-GstTrace.details">
-<ANCHOR id="GstTrace" href="gstreamer-0.11/gstreamer-GstTrace.html#GstTrace">
-<ANCHOR id="gst-trace-new" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-new">
-<ANCHOR id="gst-trace-destroy" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-destroy">
-<ANCHOR id="gst-trace-flush" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-flush">
-<ANCHOR id="gst-trace-text-flush" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-text-flush">
-<ANCHOR id="gst-trace-add-entry" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-add-entry">
-<ANCHOR id="gst-trace-get-size" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-get-size">
-<ANCHOR id="gst-trace-get-offset" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-get-offset">
-<ANCHOR id="gst-trace-get-remaining" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-get-remaining">
-<ANCHOR id="gst-trace-set-default" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-set-default">
-<ANCHOR id="gst-trace-read-tsc" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-trace-read-tsc">
-<ANCHOR id="GstAllocTraceFlags" href="gstreamer-0.11/gstreamer-GstTrace.html#GstAllocTraceFlags">
-<ANCHOR id="GST-ALLOC-TRACE-NONE:CAPS" href="gstreamer-0.11/gstreamer-GstTrace.html#GST-ALLOC-TRACE-NONE:CAPS">
-<ANCHOR id="GST-ALLOC-TRACE-LIVE:CAPS" href="gstreamer-0.11/gstreamer-GstTrace.html#GST-ALLOC-TRACE-LIVE:CAPS">
-<ANCHOR id="GST-ALLOC-TRACE-MEM-LIVE:CAPS" href="gstreamer-0.11/gstreamer-GstTrace.html#GST-ALLOC-TRACE-MEM-LIVE:CAPS">
-<ANCHOR id="GstAllocTrace" href="gstreamer-0.11/gstreamer-GstTrace.html#GstAllocTrace">
-<ANCHOR id="gst-alloc-trace-available" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-available">
-<ANCHOR id="gst-alloc-trace-list" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-list">
-<ANCHOR id="gst-alloc-trace-live-all" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-live-all">
-<ANCHOR id="gst-alloc-trace-print-all" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-print-all">
-<ANCHOR id="gst-alloc-trace-set-flags-all" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-set-flags-all">
-<ANCHOR id="gst-alloc-trace-get" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-get">
-<ANCHOR id="gst-alloc-trace-print" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-print">
-<ANCHOR id="gst-alloc-trace-print-live" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-print-live">
-<ANCHOR id="gst-alloc-trace-set-flags" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-set-flags">
-<ANCHOR id="gst-alloc-trace-register" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-register">
-<ANCHOR id="gst-alloc-trace-new" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-new">
-<ANCHOR id="gst-alloc-trace-free" href="gstreamer-0.11/gstreamer-GstTrace.html#gst-alloc-trace-free">
-<ANCHOR id="annotation-glossterm-out" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-allow-none" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-inout" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-inout">
-<ANCHOR id="annotation-glossterm-closure" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-closure">
-<ANCHOR id="annotation-glossterm-transfer none" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-transfer none">
-<ANCHOR id="annotation-glossterm-array" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-array">
-<ANCHOR id="annotation-glossterm-element-type" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-element-type">
-<ANCHOR id="annotation-glossterm-in" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-in">
-<ANCHOR id="annotation-glossterm-transfer container" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-transfer container">
-<ANCHOR id="annotation-glossterm-transfer full" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-transfer full">
-<ANCHOR id="annotation-glossterm-scope call" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-scope call">
-<ANCHOR id="annotation-glossterm-type" href="gstreamer-0.11/annotation-glossary.html#annotation-glossterm-type">
+<ANCHOR id="gst-building" href="gstreamer-1.0/gst-building.html">
+<ANCHOR id="gst-running" href="gstreamer-1.0/gst-running.html">
+<ANCHOR id="gstreamer-Gst" href="gstreamer-1.0/gstreamer-Gst.html">
+<ANCHOR id="gstreamer-Gst.synopsis" href="gstreamer-1.0/gstreamer-Gst.html#gstreamer-Gst.synopsis">
+<ANCHOR id="gstreamer-Gst.description" href="gstreamer-1.0/gstreamer-Gst.html#gstreamer-Gst.description">
+<ANCHOR id="gstreamer-Gst.details" href="gstreamer-1.0/gstreamer-Gst.html#gstreamer-Gst.details">
+<ANCHOR id="gst-init" href="gstreamer-1.0/gstreamer-Gst.html#gst-init">
+<ANCHOR id="gst-init-check" href="gstreamer-1.0/gstreamer-Gst.html#gst-init-check">
+<ANCHOR id="gst-init-get-option-group" href="gstreamer-1.0/gstreamer-Gst.html#gst-init-get-option-group">
+<ANCHOR id="gst-is-initialized" href="gstreamer-1.0/gstreamer-Gst.html#gst-is-initialized">
+<ANCHOR id="gst-deinit" href="gstreamer-1.0/gstreamer-Gst.html#gst-deinit">
+<ANCHOR id="gst-version" href="gstreamer-1.0/gstreamer-Gst.html#gst-version">
+<ANCHOR id="gst-version-string" href="gstreamer-1.0/gstreamer-Gst.html#gst-version-string">
+<ANCHOR id="gst-segtrap-is-enabled" href="gstreamer-1.0/gstreamer-Gst.html#gst-segtrap-is-enabled">
+<ANCHOR id="gst-segtrap-set-enabled" href="gstreamer-1.0/gstreamer-Gst.html#gst-segtrap-set-enabled">
+<ANCHOR id="gst-registry-fork-is-enabled" href="gstreamer-1.0/gstreamer-Gst.html#gst-registry-fork-is-enabled">
+<ANCHOR id="gst-registry-fork-set-enabled" href="gstreamer-1.0/gstreamer-Gst.html#gst-registry-fork-set-enabled">
+<ANCHOR id="gst-update-registry" href="gstreamer-1.0/gstreamer-Gst.html#gst-update-registry">
+<ANCHOR id="gstreamer-GstAtomicQueue" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html">
+<ANCHOR id="gstreamer-GstAtomicQueue.synopsis" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.synopsis">
+<ANCHOR id="gstreamer-GstAtomicQueue.description" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.description">
+<ANCHOR id="gstreamer-GstAtomicQueue.details" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gstreamer-GstAtomicQueue.details">
+<ANCHOR id="GstAtomicQueue" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#GstAtomicQueue">
+<ANCHOR id="gst-atomic-queue-new" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-new">
+<ANCHOR id="gst-atomic-queue-ref" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-ref">
+<ANCHOR id="gst-atomic-queue-unref" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-unref">
+<ANCHOR id="gst-atomic-queue-push" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-push">
+<ANCHOR id="gst-atomic-queue-peek" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek">
+<ANCHOR id="gst-atomic-queue-pop" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop">
+<ANCHOR id="gst-atomic-queue-length" href="gstreamer-1.0/gstreamer-GstAtomicQueue.html#gst-atomic-queue-length">
+<ANCHOR id="GstBin" href="gstreamer-1.0/GstBin.html">
+<ANCHOR id="GstBin.synopsis" href="gstreamer-1.0/GstBin.html#GstBin.synopsis">
+<ANCHOR id="GstBin.object-hierarchy" href="gstreamer-1.0/GstBin.html#GstBin.object-hierarchy">
+<ANCHOR id="GstBin.implemented-interfaces" href="gstreamer-1.0/GstBin.html#GstBin.implemented-interfaces">
+<ANCHOR id="GstBin.properties" href="gstreamer-1.0/GstBin.html#GstBin.properties">
+<ANCHOR id="GstBin.signals" href="gstreamer-1.0/GstBin.html#GstBin.signals">
+<ANCHOR id="GstBin.description" href="gstreamer-1.0/GstBin.html#GstBin.description">
+<ANCHOR id="GstBin.details" href="gstreamer-1.0/GstBin.html#GstBin.details">
+<ANCHOR id="GstBin-struct" href="gstreamer-1.0/GstBin.html#GstBin-struct">
+<ANCHOR id="GstBinClass" href="gstreamer-1.0/GstBin.html#GstBinClass">
+<ANCHOR id="gst-bin-new" href="gstreamer-1.0/GstBin.html#gst-bin-new">
+<ANCHOR id="gst-bin-add" href="gstreamer-1.0/GstBin.html#gst-bin-add">
+<ANCHOR id="gst-bin-remove" href="gstreamer-1.0/GstBin.html#gst-bin-remove">
+<ANCHOR id="gst-bin-get-by-name" href="gstreamer-1.0/GstBin.html#gst-bin-get-by-name">
+<ANCHOR id="gst-bin-get-by-name-recurse-up" href="gstreamer-1.0/GstBin.html#gst-bin-get-by-name-recurse-up">
+<ANCHOR id="gst-bin-get-by-interface" href="gstreamer-1.0/GstBin.html#gst-bin-get-by-interface">
+<ANCHOR id="gst-bin-iterate-elements" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-elements">
+<ANCHOR id="gst-bin-iterate-recurse" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-recurse">
+<ANCHOR id="gst-bin-iterate-sinks" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-sinks">
+<ANCHOR id="gst-bin-iterate-sorted" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-sorted">
+<ANCHOR id="gst-bin-iterate-sources" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-sources">
+<ANCHOR id="gst-bin-iterate-all-by-interface" href="gstreamer-1.0/GstBin.html#gst-bin-iterate-all-by-interface">
+<ANCHOR id="gst-bin-recalculate-latency" href="gstreamer-1.0/GstBin.html#gst-bin-recalculate-latency">
+<ANCHOR id="gst-bin-add-many" href="gstreamer-1.0/GstBin.html#gst-bin-add-many">
+<ANCHOR id="gst-bin-remove-many" href="gstreamer-1.0/GstBin.html#gst-bin-remove-many">
+<ANCHOR id="gst-bin-find-unlinked-pad" href="gstreamer-1.0/GstBin.html#gst-bin-find-unlinked-pad">
+<ANCHOR id="GstBinFlags" href="gstreamer-1.0/GstBin.html#GstBinFlags">
+<ANCHOR id="GST-BIN-FLAG-LAST:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-FLAG-LAST:CAPS">
+<ANCHOR id="GST-BIN-CHILDREN:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-CHILDREN:CAPS">
+<ANCHOR id="GST-BIN-CHILDREN-COOKIE:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS">
+<ANCHOR id="GST-BIN-NUMCHILDREN:CAPS" href="gstreamer-1.0/GstBin.html#GST-BIN-NUMCHILDREN:CAPS">
+<ANCHOR id="GstBin.property-details" href="gstreamer-1.0/GstBin.html#GstBin.property-details">
+<ANCHOR id="GstBin--async-handling" href="gstreamer-1.0/GstBin.html#GstBin--async-handling">
+<ANCHOR id="GstBin--message-forward" href="gstreamer-1.0/GstBin.html#GstBin--message-forward">
+<ANCHOR id="GstBin.signal-details" href="gstreamer-1.0/GstBin.html#GstBin.signal-details">
+<ANCHOR id="GstBin-do-latency" href="gstreamer-1.0/GstBin.html#GstBin-do-latency">
+<ANCHOR id="GstBin-element-added" href="gstreamer-1.0/GstBin.html#GstBin-element-added">
+<ANCHOR id="GstBin-element-removed" href="gstreamer-1.0/GstBin.html#GstBin-element-removed">
+<ANCHOR id="gstreamer-GstBuffer" href="gstreamer-1.0/gstreamer-GstBuffer.html">
+<ANCHOR id="gstreamer-GstBuffer.synopsis" href="gstreamer-1.0/gstreamer-GstBuffer.html#gstreamer-GstBuffer.synopsis">
+<ANCHOR id="gstreamer-GstBuffer.description" href="gstreamer-1.0/gstreamer-GstBuffer.html#gstreamer-GstBuffer.description">
+<ANCHOR id="gstreamer-GstBuffer.details" href="gstreamer-1.0/gstreamer-GstBuffer.html#gstreamer-GstBuffer.details">
+<ANCHOR id="GstBuffer" href="gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer">
+<ANCHOR id="GstBufferFlags" href="gstreamer-1.0/gstreamer-GstBuffer.html#GstBufferFlags">
+<ANCHOR id="GST-BUFFER-FLAG-LIVE:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LIVE:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-DECODE-ONLY:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DECODE-ONLY:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-DISCONT:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DISCONT:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-RESYNC:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-RESYNC:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-CORRUPTED:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-CORRUPTED:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-MARKER:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-MARKER:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-HEADER:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-HEADER:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-GAP:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-DROPPABLE:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DROPPABLE:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-DELTA-UNIT:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-DELTA-UNIT:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-LAST:CAPS">
+<ANCHOR id="GST-BUFFER-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAGS:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-SET:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-SET:CAPS">
+<ANCHOR id="GST-BUFFER-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-BUFFER-PTS:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-PTS:CAPS">
+<ANCHOR id="GST-BUFFER-DTS:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-DTS:CAPS">
+<ANCHOR id="GST-BUFFER-DURATION:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-DURATION:CAPS">
+<ANCHOR id="GST-BUFFER-OFFSET:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET:CAPS">
+<ANCHOR id="GST-BUFFER-OFFSET-END:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END:CAPS">
+<ANCHOR id="GST-BUFFER-OFFSET-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS">
+<ANCHOR id="GST-BUFFER-DURATION-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-DURATION-IS-VALID:CAPS">
+<ANCHOR id="GST-BUFFER-PTS-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-PTS-IS-VALID:CAPS">
+<ANCHOR id="GST-BUFFER-DTS-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-DTS-IS-VALID:CAPS">
+<ANCHOR id="GST-BUFFER-OFFSET-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-IS-VALID:CAPS">
+<ANCHOR id="GST-BUFFER-OFFSET-END-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS">
+<ANCHOR id="GST-BUFFER-IS-DISCONT:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS">
+<ANCHOR id="gst-buffer-new" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new">
+<ANCHOR id="gst-buffer-new-allocate" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new-allocate">
+<ANCHOR id="gst-buffer-new-wrapped" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new-wrapped">
+<ANCHOR id="gst-buffer-new-wrapped-full" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full">
+<ANCHOR id="gst-buffer-ref" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-ref">
+<ANCHOR id="gst-buffer-unref" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref">
+<ANCHOR id="gst-buffer-get-sizes" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-sizes">
+<ANCHOR id="gst-buffer-get-size" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-size">
+<ANCHOR id="gst-buffer-resize" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-resize">
+<ANCHOR id="gst-buffer-set-size" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-set-size">
+<ANCHOR id="gst-buffer-n-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-n-memory">
+<ANCHOR id="gst-buffer-insert-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-insert-memory">
+<ANCHOR id="gst-buffer-replace-memory-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace-memory-range">
+<ANCHOR id="gst-buffer-get-memory-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-memory-range">
+<ANCHOR id="gst-buffer-remove-memory-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-memory-range">
+<ANCHOR id="gst-buffer-find-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-find-memory">
+<ANCHOR id="gst-buffer-prepend-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-prepend-memory">
+<ANCHOR id="gst-buffer-append-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-append-memory">
+<ANCHOR id="gst-buffer-replace-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace-memory">
+<ANCHOR id="gst-buffer-replace-all-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace-all-memory">
+<ANCHOR id="gst-buffer-get-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-memory">
+<ANCHOR id="gst-buffer-get-all-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-all-memory">
+<ANCHOR id="gst-buffer-remove-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-memory">
+<ANCHOR id="gst-buffer-remove-all-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-all-memory">
+<ANCHOR id="gst-buffer-map" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-map">
+<ANCHOR id="gst-buffer-unmap" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unmap">
+<ANCHOR id="gst-buffer-memcmp" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-memcmp">
+<ANCHOR id="gst-buffer-extract" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-extract">
+<ANCHOR id="gst-buffer-fill" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-fill">
+<ANCHOR id="gst-buffer-memset" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-memset">
+<ANCHOR id="GstBufferCopyFlags" href="gstreamer-1.0/gstreamer-GstBuffer.html#GstBufferCopyFlags">
+<ANCHOR id="GST-BUFFER-COPY-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-NONE:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-FLAGS:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-TIMESTAMPS:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-TIMESTAMPS:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-META:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-META:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-MEMORY:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-MEMORY:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-MERGE:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-MERGE:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-METADATA:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-METADATA:CAPS">
+<ANCHOR id="GST-BUFFER-COPY-ALL:CAPS" href="gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-COPY-ALL:CAPS">
+<ANCHOR id="gst-buffer-copy" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-copy">
+<ANCHOR id="gst-buffer-copy-into" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-copy-into">
+<ANCHOR id="gst-buffer-copy-region" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-copy-region">
+<ANCHOR id="gst-buffer-is-writable" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-is-writable">
+<ANCHOR id="gst-buffer-make-writable" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-make-writable">
+<ANCHOR id="gst-buffer-replace" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace">
+<ANCHOR id="gst-buffer-append" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-append">
+<ANCHOR id="gst-buffer-get-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-meta">
+<ANCHOR id="gst-buffer-add-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-add-meta">
+<ANCHOR id="gst-buffer-remove-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-meta">
+<ANCHOR id="gst-buffer-iterate-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-iterate-meta">
+<ANCHOR id="GstBufferForeachMetaFunc" href="gstreamer-1.0/gstreamer-GstBuffer.html#GstBufferForeachMetaFunc">
+<ANCHOR id="gst-buffer-foreach-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-foreach-meta">
+<ANCHOR id="gstreamer-GstBuffer.see-also" href="gstreamer-1.0/gstreamer-GstBuffer.html#gstreamer-GstBuffer.see-also">
+<ANCHOR id="gstreamer-GstBufferList" href="gstreamer-1.0/gstreamer-GstBufferList.html">
+<ANCHOR id="gstreamer-GstBufferList.synopsis" href="gstreamer-1.0/gstreamer-GstBufferList.html#gstreamer-GstBufferList.synopsis">
+<ANCHOR id="gstreamer-GstBufferList.description" href="gstreamer-1.0/gstreamer-GstBufferList.html#gstreamer-GstBufferList.description">
+<ANCHOR id="gstreamer-GstBufferList.details" href="gstreamer-1.0/gstreamer-GstBufferList.html#gstreamer-GstBufferList.details">
+<ANCHOR id="GstBufferList" href="gstreamer-1.0/gstreamer-GstBufferList.html#GstBufferList">
+<ANCHOR id="gst-buffer-list-new" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-new">
+<ANCHOR id="gst-buffer-list-new-sized" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-new-sized">
+<ANCHOR id="gst-buffer-list-length" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-length">
+<ANCHOR id="gst-buffer-list-add" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-add">
+<ANCHOR id="gst-buffer-list-insert" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-insert">
+<ANCHOR id="gst-buffer-list-remove" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-remove">
+<ANCHOR id="gst-buffer-list-ref" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-ref">
+<ANCHOR id="gst-buffer-list-unref" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-unref">
+<ANCHOR id="gst-buffer-list-copy" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-copy">
+<ANCHOR id="gst-buffer-list-is-writable" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-is-writable">
+<ANCHOR id="gst-buffer-list-make-writable" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-make-writable">
+<ANCHOR id="GstBufferListFunc" href="gstreamer-1.0/gstreamer-GstBufferList.html#GstBufferListFunc">
+<ANCHOR id="gst-buffer-list-foreach" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-foreach">
+<ANCHOR id="gst-buffer-list-get" href="gstreamer-1.0/gstreamer-GstBufferList.html#gst-buffer-list-get">
+<ANCHOR id="gstreamer-GstBufferList.see-also" href="gstreamer-1.0/gstreamer-GstBufferList.html#gstreamer-GstBufferList.see-also">
+<ANCHOR id="gstreamer-GstBufferPool" href="gstreamer-1.0/gstreamer-GstBufferPool.html">
+<ANCHOR id="gstreamer-GstBufferPool.synopsis" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.synopsis">
+<ANCHOR id="gstreamer-GstBufferPool.description" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.description">
+<ANCHOR id="gstreamer-GstBufferPool.details" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.details">
+<ANCHOR id="GstBufferPool" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPool">
+<ANCHOR id="GstBufferPoolClass" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPoolClass">
+<ANCHOR id="GST-BUFFER-POOL-IS-FLUSHING:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-IS-FLUSHING:CAPS">
+<ANCHOR id="gst-buffer-pool-new" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-new">
+<ANCHOR id="gst-buffer-pool-config-get-params" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-params">
+<ANCHOR id="gst-buffer-pool-config-set-params" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-params">
+<ANCHOR id="gst-buffer-pool-config-get-allocator" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-allocator">
+<ANCHOR id="gst-buffer-pool-config-set-allocator" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator">
+<ANCHOR id="gst-buffer-pool-config-n-options" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options">
+<ANCHOR id="gst-buffer-pool-config-add-option" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option">
+<ANCHOR id="gst-buffer-pool-config-get-option" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-option">
+<ANCHOR id="gst-buffer-pool-config-has-option" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-config-has-option">
+<ANCHOR id="gst-buffer-pool-get-options" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-get-options">
+<ANCHOR id="gst-buffer-pool-has-option" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-has-option">
+<ANCHOR id="gst-buffer-pool-get-config" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-get-config">
+<ANCHOR id="gst-buffer-pool-set-config" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-set-config">
+<ANCHOR id="gst-buffer-pool-set-active" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-set-active">
+<ANCHOR id="gst-buffer-pool-is-active" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-is-active">
+<ANCHOR id="GstBufferPoolAcquireFlags" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags">
+<ANCHOR id="GST-BUFFER-POOL-ACQUIRE-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-NONE:CAPS">
+<ANCHOR id="GST-BUFFER-POOL-ACQUIRE-FLAG-KEY-UNIT:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-KEY-UNIT:CAPS">
+<ANCHOR id="GST-BUFFER-POOL-ACQUIRE-FLAG-DONTWAIT:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-DONTWAIT:CAPS">
+<ANCHOR id="GST-BUFFER-POOL-ACQUIRE-FLAG-DISCONT:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-DISCONT:CAPS">
+<ANCHOR id="GST-BUFFER-POOL-ACQUIRE-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GST-BUFFER-POOL-ACQUIRE-FLAG-LAST:CAPS">
+<ANCHOR id="GstBufferPoolAcquireParams" href="gstreamer-1.0/gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams">
+<ANCHOR id="gst-buffer-pool-acquire-buffer" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer">
+<ANCHOR id="gst-buffer-pool-release-buffer" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer">
+<ANCHOR id="gstreamer-GstBufferPool.see-also" href="gstreamer-1.0/gstreamer-GstBufferPool.html#gstreamer-GstBufferPool.see-also">
+<ANCHOR id="GstBus" href="gstreamer-1.0/GstBus.html">
+<ANCHOR id="GstBus.synopsis" href="gstreamer-1.0/GstBus.html#GstBus.synopsis">
+<ANCHOR id="GstBus.object-hierarchy" href="gstreamer-1.0/GstBus.html#GstBus.object-hierarchy">
+<ANCHOR id="GstBus.properties" href="gstreamer-1.0/GstBus.html#GstBus.properties">
+<ANCHOR id="GstBus.signals" href="gstreamer-1.0/GstBus.html#GstBus.signals">
+<ANCHOR id="GstBus.description" href="gstreamer-1.0/GstBus.html#GstBus.description">
+<ANCHOR id="GstBus.details" href="gstreamer-1.0/GstBus.html#GstBus.details">
+<ANCHOR id="GstBus-struct" href="gstreamer-1.0/GstBus.html#GstBus-struct">
+<ANCHOR id="GstBusFlags" href="gstreamer-1.0/GstBus.html#GstBusFlags">
+<ANCHOR id="GST-BUS-FLUSHING:CAPS" href="gstreamer-1.0/GstBus.html#GST-BUS-FLUSHING:CAPS">
+<ANCHOR id="GST-BUS-FLAG-LAST:CAPS" href="gstreamer-1.0/GstBus.html#GST-BUS-FLAG-LAST:CAPS">
+<ANCHOR id="GstBusSyncReply" href="gstreamer-1.0/GstBus.html#GstBusSyncReply">
+<ANCHOR id="GST-BUS-DROP:CAPS" href="gstreamer-1.0/GstBus.html#GST-BUS-DROP:CAPS">
+<ANCHOR id="GST-BUS-PASS:CAPS" href="gstreamer-1.0/GstBus.html#GST-BUS-PASS:CAPS">
+<ANCHOR id="GST-BUS-ASYNC:CAPS" href="gstreamer-1.0/GstBus.html#GST-BUS-ASYNC:CAPS">
+<ANCHOR id="GstBusFunc" href="gstreamer-1.0/GstBus.html#GstBusFunc">
+<ANCHOR id="GstBusSyncHandler" href="gstreamer-1.0/GstBus.html#GstBusSyncHandler">
+<ANCHOR id="gst-bus-new" href="gstreamer-1.0/GstBus.html#gst-bus-new">
+<ANCHOR id="gst-bus-post" href="gstreamer-1.0/GstBus.html#gst-bus-post">
+<ANCHOR id="gst-bus-have-pending" href="gstreamer-1.0/GstBus.html#gst-bus-have-pending">
+<ANCHOR id="gst-bus-peek" href="gstreamer-1.0/GstBus.html#gst-bus-peek">
+<ANCHOR id="gst-bus-pop" href="gstreamer-1.0/GstBus.html#gst-bus-pop">
+<ANCHOR id="gst-bus-pop-filtered" href="gstreamer-1.0/GstBus.html#gst-bus-pop-filtered">
+<ANCHOR id="gst-bus-timed-pop" href="gstreamer-1.0/GstBus.html#gst-bus-timed-pop">
+<ANCHOR id="gst-bus-timed-pop-filtered" href="gstreamer-1.0/GstBus.html#gst-bus-timed-pop-filtered">
+<ANCHOR id="gst-bus-set-flushing" href="gstreamer-1.0/GstBus.html#gst-bus-set-flushing">
+<ANCHOR id="gst-bus-set-sync-handler" href="gstreamer-1.0/GstBus.html#gst-bus-set-sync-handler">
+<ANCHOR id="gst-bus-sync-signal-handler" href="gstreamer-1.0/GstBus.html#gst-bus-sync-signal-handler">
+<ANCHOR id="gst-bus-create-watch" href="gstreamer-1.0/GstBus.html#gst-bus-create-watch">
+<ANCHOR id="gst-bus-add-watch-full" href="gstreamer-1.0/GstBus.html#gst-bus-add-watch-full">
+<ANCHOR id="gst-bus-add-watch" href="gstreamer-1.0/GstBus.html#gst-bus-add-watch">
+<ANCHOR id="gst-bus-disable-sync-message-emission" href="gstreamer-1.0/GstBus.html#gst-bus-disable-sync-message-emission">
+<ANCHOR id="gst-bus-enable-sync-message-emission" href="gstreamer-1.0/GstBus.html#gst-bus-enable-sync-message-emission">
+<ANCHOR id="gst-bus-async-signal-func" href="gstreamer-1.0/GstBus.html#gst-bus-async-signal-func">
+<ANCHOR id="gst-bus-add-signal-watch" href="gstreamer-1.0/GstBus.html#gst-bus-add-signal-watch">
+<ANCHOR id="gst-bus-add-signal-watch-full" href="gstreamer-1.0/GstBus.html#gst-bus-add-signal-watch-full">
+<ANCHOR id="gst-bus-remove-signal-watch" href="gstreamer-1.0/GstBus.html#gst-bus-remove-signal-watch">
+<ANCHOR id="gst-bus-poll" href="gstreamer-1.0/GstBus.html#gst-bus-poll">
+<ANCHOR id="GstBus.property-details" href="gstreamer-1.0/GstBus.html#GstBus.property-details">
+<ANCHOR id="GstBus--enable-async" href="gstreamer-1.0/GstBus.html#GstBus--enable-async">
+<ANCHOR id="GstBus.signal-details" href="gstreamer-1.0/GstBus.html#GstBus.signal-details">
+<ANCHOR id="GstBus-message" href="gstreamer-1.0/GstBus.html#GstBus-message">
+<ANCHOR id="GstBus-sync-message" href="gstreamer-1.0/GstBus.html#GstBus-sync-message">
+<ANCHOR id="GstBus.see-also" href="gstreamer-1.0/GstBus.html#GstBus.see-also">
+<ANCHOR id="gstreamer-GstCaps" href="gstreamer-1.0/gstreamer-GstCaps.html">
+<ANCHOR id="gstreamer-GstCaps.synopsis" href="gstreamer-1.0/gstreamer-GstCaps.html#gstreamer-GstCaps.synopsis">
+<ANCHOR id="gstreamer-GstCaps.description" href="gstreamer-1.0/gstreamer-GstCaps.html#gstreamer-GstCaps.description">
+<ANCHOR id="gstreamer-GstCaps.details" href="gstreamer-1.0/gstreamer-GstCaps.html#gstreamer-GstCaps.details">
+<ANCHOR id="GstCaps" href="gstreamer-1.0/gstreamer-GstCaps.html#GstCaps">
+<ANCHOR id="GstStaticCaps" href="gstreamer-1.0/gstreamer-GstCaps.html#GstStaticCaps">
+<ANCHOR id="GstCapsIntersectMode" href="gstreamer-1.0/gstreamer-GstCaps.html#GstCapsIntersectMode">
+<ANCHOR id="GST-CAPS-INTERSECT-ZIG-ZAG:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-INTERSECT-ZIG-ZAG:CAPS">
+<ANCHOR id="GST-CAPS-INTERSECT-FIRST:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-INTERSECT-FIRST:CAPS">
+<ANCHOR id="GstCapsFlags" href="gstreamer-1.0/gstreamer-GstCaps.html#GstCapsFlags">
+<ANCHOR id="GST-CAPS-FLAG-ANY:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-FLAG-ANY:CAPS">
+<ANCHOR id="GST-CAPS-ANY:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-ANY:CAPS">
+<ANCHOR id="GST-CAPS-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-NONE:CAPS">
+<ANCHOR id="GST-CAPS-REFCOUNT:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-REFCOUNT:CAPS">
+<ANCHOR id="GST-CAPS-REFCOUNT-VALUE:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-REFCOUNT-VALUE:CAPS">
+<ANCHOR id="GST-STATIC-CAPS-ANY:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-STATIC-CAPS-ANY:CAPS">
+<ANCHOR id="GST-STATIC-CAPS-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-STATIC-CAPS-NONE:CAPS">
+<ANCHOR id="GST-CAPS-IS-SIMPLE:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-IS-SIMPLE:CAPS">
+<ANCHOR id="GST-STATIC-CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-STATIC-CAPS">
+<ANCHOR id="GST-CAPS-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-FLAGS:CAPS">
+<ANCHOR id="GST-CAPS-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-CAPS-FLAG-SET:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-FLAG-SET:CAPS">
+<ANCHOR id="GST-CAPS-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstCaps.html#GST-CAPS-FLAG-UNSET:CAPS">
+<ANCHOR id="gst-caps-new-empty" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-empty">
+<ANCHOR id="gst-caps-new-empty-simple" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-empty-simple">
+<ANCHOR id="gst-caps-new-any" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-any">
+<ANCHOR id="gst-caps-new-simple" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-simple">
+<ANCHOR id="gst-caps-new-full" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-full">
+<ANCHOR id="gst-caps-new-full-valist" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-full-valist">
+<ANCHOR id="gst-caps-is-writable" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-writable">
+<ANCHOR id="gst-caps-copy" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-copy">
+<ANCHOR id="gst-caps-copy-nth" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-copy-nth">
+<ANCHOR id="gst-static-caps-get" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-static-caps-get">
+<ANCHOR id="gst-static-caps-cleanup" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-static-caps-cleanup">
+<ANCHOR id="gst-caps-append" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-append">
+<ANCHOR id="gst-caps-merge" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-merge">
+<ANCHOR id="gst-caps-append-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-append-structure">
+<ANCHOR id="gst-caps-remove-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-remove-structure">
+<ANCHOR id="gst-caps-steal-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-steal-structure">
+<ANCHOR id="gst-caps-merge-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-merge-structure">
+<ANCHOR id="gst-caps-get-size" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-get-size">
+<ANCHOR id="gst-caps-get-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-get-structure">
+<ANCHOR id="gst-caps-set-value" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-set-value">
+<ANCHOR id="gst-caps-set-simple" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-set-simple">
+<ANCHOR id="gst-caps-set-simple-valist" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-set-simple-valist">
+<ANCHOR id="gst-caps-is-any" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-any">
+<ANCHOR id="gst-caps-is-empty" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-empty">
+<ANCHOR id="gst-caps-is-fixed" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-fixed">
+<ANCHOR id="gst-caps-is-equal" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-equal">
+<ANCHOR id="gst-caps-is-equal-fixed" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-equal-fixed">
+<ANCHOR id="gst-caps-is-strictly-equal" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-strictly-equal">
+<ANCHOR id="gst-caps-is-always-compatible" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-always-compatible">
+<ANCHOR id="gst-caps-is-subset" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-subset">
+<ANCHOR id="gst-caps-is-subset-structure" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-is-subset-structure">
+<ANCHOR id="gst-caps-can-intersect" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-can-intersect">
+<ANCHOR id="gst-caps-intersect" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-intersect">
+<ANCHOR id="gst-caps-intersect-full" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-intersect-full">
+<ANCHOR id="gst-caps-normalize" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-normalize">
+<ANCHOR id="gst-caps-simplify" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-simplify">
+<ANCHOR id="gst-caps-replace" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-replace">
+<ANCHOR id="gst-caps-take" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-take">
+<ANCHOR id="gst-caps-to-string" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-to-string">
+<ANCHOR id="gst-caps-from-string" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-from-string">
+<ANCHOR id="gst-caps-subtract" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-subtract">
+<ANCHOR id="gst-caps-make-writable" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-make-writable">
+<ANCHOR id="gst-caps-truncate" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-truncate">
+<ANCHOR id="gst-caps-fixate" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-fixate">
+<ANCHOR id="gst-caps-ref" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-ref">
+<ANCHOR id="gst-caps-unref" href="gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref">
+<ANCHOR id="gstreamer-GstCaps.see-also" href="gstreamer-1.0/gstreamer-GstCaps.html#gstreamer-GstCaps.see-also">
+<ANCHOR id="gstreamer-GstSample" href="gstreamer-1.0/gstreamer-GstSample.html">
+<ANCHOR id="gstreamer-GstSample.synopsis" href="gstreamer-1.0/gstreamer-GstSample.html#gstreamer-GstSample.synopsis">
+<ANCHOR id="gstreamer-GstSample.description" href="gstreamer-1.0/gstreamer-GstSample.html#gstreamer-GstSample.description">
+<ANCHOR id="gstreamer-GstSample.details" href="gstreamer-1.0/gstreamer-GstSample.html#gstreamer-GstSample.details">
+<ANCHOR id="GstSample" href="gstreamer-1.0/gstreamer-GstSample.html#GstSample">
+<ANCHOR id="gst-sample-get-buffer" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-get-buffer">
+<ANCHOR id="gst-sample-get-caps" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-get-caps">
+<ANCHOR id="gst-sample-get-info" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-get-info">
+<ANCHOR id="gst-sample-get-segment" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-get-segment">
+<ANCHOR id="gst-sample-new" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-new">
+<ANCHOR id="gst-sample-ref" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-ref">
+<ANCHOR id="gst-sample-unref" href="gstreamer-1.0/gstreamer-GstSample.html#gst-sample-unref">
+<ANCHOR id="gstreamer-GstSample.see-also" href="gstreamer-1.0/gstreamer-GstSample.html#gstreamer-GstSample.see-also">
+<ANCHOR id="GstChildProxy" href="gstreamer-1.0/GstChildProxy.html">
+<ANCHOR id="GstChildProxy.synopsis" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.synopsis">
+<ANCHOR id="GstChildProxy.object-hierarchy" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.object-hierarchy">
+<ANCHOR id="GstChildProxy.prerequisites" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.prerequisites">
+<ANCHOR id="GstChildProxy.implementations" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.implementations">
+<ANCHOR id="GstChildProxy.signals" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.signals">
+<ANCHOR id="GstChildProxy.description" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.description">
+<ANCHOR id="GstChildProxy.details" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.details">
+<ANCHOR id="GstChildProxy-struct" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy-struct">
+<ANCHOR id="GstChildProxyInterface" href="gstreamer-1.0/GstChildProxy.html#GstChildProxyInterface">
+<ANCHOR id="gst-child-proxy-get-children-count" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get-children-count">
+<ANCHOR id="gst-child-proxy-get-child-by-name" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get-child-by-name">
+<ANCHOR id="gst-child-proxy-get-child-by-index" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get-child-by-index">
+<ANCHOR id="gst-child-proxy-lookup" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-lookup">
+<ANCHOR id="gst-child-proxy-get-property" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get-property">
+<ANCHOR id="gst-child-proxy-get-valist" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get-valist">
+<ANCHOR id="gst-child-proxy-get" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-get">
+<ANCHOR id="gst-child-proxy-set-property" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-set-property">
+<ANCHOR id="gst-child-proxy-set-valist" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-set-valist">
+<ANCHOR id="gst-child-proxy-set" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-set">
+<ANCHOR id="gst-child-proxy-child-added" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-child-added">
+<ANCHOR id="gst-child-proxy-child-removed" href="gstreamer-1.0/GstChildProxy.html#gst-child-proxy-child-removed">
+<ANCHOR id="GstChildProxy.signal-details" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.signal-details">
+<ANCHOR id="GstChildProxy-child-added" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy-child-added">
+<ANCHOR id="GstChildProxy-child-removed" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy-child-removed">
+<ANCHOR id="GstChildProxy.see-also" href="gstreamer-1.0/GstChildProxy.html#GstChildProxy.see-also">
+<ANCHOR id="GstClock" href="gstreamer-1.0/GstClock.html">
+<ANCHOR id="GstClock.synopsis" href="gstreamer-1.0/GstClock.html#GstClock.synopsis">
+<ANCHOR id="GstClock.object-hierarchy" href="gstreamer-1.0/GstClock.html#GstClock.object-hierarchy">
+<ANCHOR id="GstClock.properties" href="gstreamer-1.0/GstClock.html#GstClock.properties">
+<ANCHOR id="GstClock.description" href="gstreamer-1.0/GstClock.html#GstClock.description">
+<ANCHOR id="GstClock.details" href="gstreamer-1.0/GstClock.html#GstClock.details">
+<ANCHOR id="GstClock-struct" href="gstreamer-1.0/GstClock.html#GstClock-struct">
+<ANCHOR id="GstClockClass" href="gstreamer-1.0/GstClock.html#GstClockClass">
+<ANCHOR id="GstClockTime" href="gstreamer-1.0/GstClock.html#GstClockTime">
+<ANCHOR id="GstClockTimeDiff" href="gstreamer-1.0/GstClock.html#GstClockTimeDiff">
+<ANCHOR id="GstClockID" href="gstreamer-1.0/GstClock.html#GstClockID">
+<ANCHOR id="GST-CLOCK-TIME-NONE:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-TIME-NONE:CAPS">
+<ANCHOR id="GST-CLOCK-TIME-IS-VALID:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-TIME-IS-VALID:CAPS">
+<ANCHOR id="GST-SECOND:CAPS" href="gstreamer-1.0/GstClock.html#GST-SECOND:CAPS">
+<ANCHOR id="GST-MSECOND:CAPS" href="gstreamer-1.0/GstClock.html#GST-MSECOND:CAPS">
+<ANCHOR id="GST-USECOND:CAPS" href="gstreamer-1.0/GstClock.html#GST-USECOND:CAPS">
+<ANCHOR id="GST-NSECOND:CAPS" href="gstreamer-1.0/GstClock.html#GST-NSECOND:CAPS">
+<ANCHOR id="GST-TIME-AS-SECONDS:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-AS-SECONDS:CAPS">
+<ANCHOR id="GST-TIME-AS-MSECONDS:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-AS-MSECONDS:CAPS">
+<ANCHOR id="GST-TIME-AS-USECONDS:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-AS-USECONDS:CAPS">
+<ANCHOR id="GST-TIME-AS-NSECONDS:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-AS-NSECONDS:CAPS">
+<ANCHOR id="GST-CLOCK-DIFF:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-DIFF:CAPS">
+<ANCHOR id="GST-TIMEVAL-TO-TIME:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIMEVAL-TO-TIME:CAPS">
+<ANCHOR id="GST-TIME-TO-TIMEVAL:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-TO-TIMEVAL:CAPS">
+<ANCHOR id="GST-TIMESPEC-TO-TIME:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIMESPEC-TO-TIME:CAPS">
+<ANCHOR id="GST-TIME-TO-TIMESPEC:CAPS" href="gstreamer-1.0/GstClock.html#GST-TIME-TO-TIMESPEC:CAPS">
+<ANCHOR id="GstClockEntry" href="gstreamer-1.0/GstClock.html#GstClockEntry">
+<ANCHOR id="GstClockCallback" href="gstreamer-1.0/GstClock.html#GstClockCallback">
+<ANCHOR id="GstClockEntryType" href="gstreamer-1.0/GstClock.html#GstClockEntryType">
+<ANCHOR id="GST-CLOCK-ENTRY-SINGLE:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-SINGLE:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-PERIODIC:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-PERIODIC:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-CLOCK:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-CLOCK:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-TYPE:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-TYPE:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-TIME:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-TIME:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-INTERVAL:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-INTERVAL:CAPS">
+<ANCHOR id="GST-CLOCK-ENTRY-STATUS:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ENTRY-STATUS:CAPS">
+<ANCHOR id="GstClockReturn" href="gstreamer-1.0/GstClock.html#GstClockReturn">
+<ANCHOR id="GST-CLOCK-OK:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-OK:CAPS">
+<ANCHOR id="GST-CLOCK-EARLY:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-EARLY:CAPS">
+<ANCHOR id="GST-CLOCK-UNSCHEDULED:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-UNSCHEDULED:CAPS">
+<ANCHOR id="GST-CLOCK-BUSY:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-BUSY:CAPS">
+<ANCHOR id="GST-CLOCK-BADTIME:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-BADTIME:CAPS">
+<ANCHOR id="GST-CLOCK-ERROR:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-ERROR:CAPS">
+<ANCHOR id="GST-CLOCK-UNSUPPORTED:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-UNSUPPORTED:CAPS">
+<ANCHOR id="GST-CLOCK-DONE:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-DONE:CAPS">
+<ANCHOR id="GstClockFlags" href="gstreamer-1.0/GstClock.html#GstClockFlags">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-SINGLE-SYNC:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-DO-SINGLE-SYNC:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-SINGLE-ASYNC:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-DO-SINGLE-ASYNC:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-PERIODIC-SYNC:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-DO-PERIODIC-SYNC:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-DO-PERIODIC-ASYNC:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-DO-PERIODIC-ASYNC:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS">
+<ANCHOR id="GST-CLOCK-FLAG-LAST:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAG-LAST:CAPS">
+<ANCHOR id="GST-CLOCK-FLAGS:CAPS" href="gstreamer-1.0/GstClock.html#GST-CLOCK-FLAGS:CAPS">
+<ANCHOR id="gst-clock-add-observation" href="gstreamer-1.0/GstClock.html#gst-clock-add-observation">
+<ANCHOR id="gst-clock-set-master" href="gstreamer-1.0/GstClock.html#gst-clock-set-master">
+<ANCHOR id="gst-clock-get-master" href="gstreamer-1.0/GstClock.html#gst-clock-get-master">
+<ANCHOR id="gst-clock-set-resolution" href="gstreamer-1.0/GstClock.html#gst-clock-set-resolution">
+<ANCHOR id="gst-clock-get-resolution" href="gstreamer-1.0/GstClock.html#gst-clock-get-resolution">
+<ANCHOR id="gst-clock-get-time" href="gstreamer-1.0/GstClock.html#gst-clock-get-time">
+<ANCHOR id="gst-clock-new-single-shot-id" href="gstreamer-1.0/GstClock.html#gst-clock-new-single-shot-id">
+<ANCHOR id="gst-clock-new-periodic-id" href="gstreamer-1.0/GstClock.html#gst-clock-new-periodic-id">
+<ANCHOR id="gst-clock-single-shot-id-reinit" href="gstreamer-1.0/GstClock.html#gst-clock-single-shot-id-reinit">
+<ANCHOR id="gst-clock-periodic-id-reinit" href="gstreamer-1.0/GstClock.html#gst-clock-periodic-id-reinit">
+<ANCHOR id="gst-clock-get-internal-time" href="gstreamer-1.0/GstClock.html#gst-clock-get-internal-time">
+<ANCHOR id="gst-clock-adjust-unlocked" href="gstreamer-1.0/GstClock.html#gst-clock-adjust-unlocked">
+<ANCHOR id="gst-clock-unadjust-unlocked" href="gstreamer-1.0/GstClock.html#gst-clock-unadjust-unlocked">
+<ANCHOR id="gst-clock-get-calibration" href="gstreamer-1.0/GstClock.html#gst-clock-get-calibration">
+<ANCHOR id="gst-clock-set-calibration" href="gstreamer-1.0/GstClock.html#gst-clock-set-calibration">
+<ANCHOR id="gst-clock-get-timeout" href="gstreamer-1.0/GstClock.html#gst-clock-get-timeout">
+<ANCHOR id="gst-clock-set-timeout" href="gstreamer-1.0/GstClock.html#gst-clock-set-timeout">
+<ANCHOR id="gst-clock-id-get-time" href="gstreamer-1.0/GstClock.html#gst-clock-id-get-time">
+<ANCHOR id="gst-clock-id-wait" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait">
+<ANCHOR id="gst-clock-id-wait-async" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait-async">
+<ANCHOR id="gst-clock-id-wait-async-full" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait-async-full">
+<ANCHOR id="gst-clock-id-unschedule" href="gstreamer-1.0/GstClock.html#gst-clock-id-unschedule">
+<ANCHOR id="gst-clock-id-compare-func" href="gstreamer-1.0/GstClock.html#gst-clock-id-compare-func">
+<ANCHOR id="gst-clock-id-ref" href="gstreamer-1.0/GstClock.html#gst-clock-id-ref">
+<ANCHOR id="gst-clock-id-unref" href="gstreamer-1.0/GstClock.html#gst-clock-id-unref">
+<ANCHOR id="GstClock.property-details" href="gstreamer-1.0/GstClock.html#GstClock.property-details">
+<ANCHOR id="GstClock--timeout" href="gstreamer-1.0/GstClock.html#GstClock--timeout">
+<ANCHOR id="GstClock--window-size" href="gstreamer-1.0/GstClock.html#GstClock--window-size">
+<ANCHOR id="GstClock--window-threshold" href="gstreamer-1.0/GstClock.html#GstClock--window-threshold">
+<ANCHOR id="GstClock.see-also" href="gstreamer-1.0/GstClock.html#GstClock.see-also">
+<ANCHOR id="gstreamer-gstconfig" href="gstreamer-1.0/gstreamer-gstconfig.html">
+<ANCHOR id="gstreamer-gstconfig.synopsis" href="gstreamer-1.0/gstreamer-gstconfig.html#gstreamer-gstconfig.synopsis">
+<ANCHOR id="gstreamer-gstconfig.description" href="gstreamer-1.0/gstreamer-gstconfig.html#gstreamer-gstconfig.description">
+<ANCHOR id="gstreamer-gstconfig.details" href="gstreamer-1.0/gstreamer-gstconfig.html#gstreamer-gstconfig.details">
+<ANCHOR id="GST-DISABLE-GST-DEBUG:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-GST-DEBUG:CAPS">
+<ANCHOR id="GST-DISABLE-PARSE:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-PARSE:CAPS">
+<ANCHOR id="GST-DISABLE-TRACE:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-TRACE:CAPS">
+<ANCHOR id="GST-DISABLE-ALLOC-TRACE:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-ALLOC-TRACE:CAPS">
+<ANCHOR id="GST-DISABLE-REGISTRY:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-REGISTRY:CAPS">
+<ANCHOR id="GST-DISABLE-PLUGIN:CAPS" href="gstreamer-1.0/gstreamer-gstconfig.html#GST-DISABLE-PLUGIN:CAPS">
+<ANCHOR id="GstControlBinding" href="gstreamer-1.0/GstControlBinding.html">
+<ANCHOR id="GstControlBinding.synopsis" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.synopsis">
+<ANCHOR id="GstControlBinding.object-hierarchy" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.object-hierarchy">
+<ANCHOR id="GstControlBinding.properties" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.properties">
+<ANCHOR id="GstControlBinding.description" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.description">
+<ANCHOR id="GstControlBinding.details" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.details">
+<ANCHOR id="GstControlBinding-struct" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding-struct">
+<ANCHOR id="GstControlBindingClass" href="gstreamer-1.0/GstControlBinding.html#GstControlBindingClass">
+<ANCHOR id="GstControlBindingConvert" href="gstreamer-1.0/GstControlBinding.html#GstControlBindingConvert">
+<ANCHOR id="gst-control-binding-sync-values" href="gstreamer-1.0/GstControlBinding.html#gst-control-binding-sync-values">
+<ANCHOR id="gst-control-binding-get-value" href="gstreamer-1.0/GstControlBinding.html#gst-control-binding-get-value">
+<ANCHOR id="gst-control-binding-get-value-array" href="gstreamer-1.0/GstControlBinding.html#gst-control-binding-get-value-array">
+<ANCHOR id="gst-control-binding-set-disabled" href="gstreamer-1.0/GstControlBinding.html#gst-control-binding-set-disabled">
+<ANCHOR id="gst-control-binding-is-disabled" href="gstreamer-1.0/GstControlBinding.html#gst-control-binding-is-disabled">
+<ANCHOR id="GstControlBinding.property-details" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding.property-details">
+<ANCHOR id="GstControlBinding--name" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding--name">
+<ANCHOR id="GstControlBinding--object" href="gstreamer-1.0/GstControlBinding.html#GstControlBinding--object">
+<ANCHOR id="GstControlSource" href="gstreamer-1.0/GstControlSource.html">
+<ANCHOR id="GstControlSource.synopsis" href="gstreamer-1.0/GstControlSource.html#GstControlSource.synopsis">
+<ANCHOR id="GstControlSource.object-hierarchy" href="gstreamer-1.0/GstControlSource.html#GstControlSource.object-hierarchy">
+<ANCHOR id="GstControlSource.description" href="gstreamer-1.0/GstControlSource.html#GstControlSource.description">
+<ANCHOR id="GstControlSource.details" href="gstreamer-1.0/GstControlSource.html#GstControlSource.details">
+<ANCHOR id="GstValueArray" href="gstreamer-1.0/GstControlSource.html#GstValueArray">
+<ANCHOR id="GstControlSource-struct" href="gstreamer-1.0/GstControlSource.html#GstControlSource-struct">
+<ANCHOR id="GstControlSourceClass" href="gstreamer-1.0/GstControlSource.html#GstControlSourceClass">
+<ANCHOR id="GstControlSourceGetValue" href="gstreamer-1.0/GstControlSource.html#GstControlSourceGetValue">
+<ANCHOR id="GstControlSourceGetValueArray" href="gstreamer-1.0/GstControlSource.html#GstControlSourceGetValueArray">
+<ANCHOR id="GstTimedValue" href="gstreamer-1.0/GstControlSource.html#GstTimedValue">
+<ANCHOR id="gst-control-source-get-value" href="gstreamer-1.0/GstControlSource.html#gst-control-source-get-value">
+<ANCHOR id="gst-control-source-get-value-array" href="gstreamer-1.0/GstControlSource.html#gst-control-source-get-value-array">
+<ANCHOR id="gstreamer-GstDateTime" href="gstreamer-1.0/gstreamer-GstDateTime.html">
+<ANCHOR id="gstreamer-GstDateTime.synopsis" href="gstreamer-1.0/gstreamer-GstDateTime.html#gstreamer-GstDateTime.synopsis">
+<ANCHOR id="gstreamer-GstDateTime.description" href="gstreamer-1.0/gstreamer-GstDateTime.html#gstreamer-GstDateTime.description">
+<ANCHOR id="gstreamer-GstDateTime.details" href="gstreamer-1.0/gstreamer-GstDateTime.html#gstreamer-GstDateTime.details">
+<ANCHOR id="GstDateTime" href="gstreamer-1.0/gstreamer-GstDateTime.html#GstDateTime">
+<ANCHOR id="GST-TYPE-DATE-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS">
+<ANCHOR id="gst-date-time-get-day" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-day">
+<ANCHOR id="gst-date-time-get-month" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-month">
+<ANCHOR id="gst-date-time-get-hour" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-hour">
+<ANCHOR id="gst-date-time-get-microsecond" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-microsecond">
+<ANCHOR id="gst-date-time-get-minute" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-minute">
+<ANCHOR id="gst-date-time-get-time-zone-offset" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-time-zone-offset">
+<ANCHOR id="gst-date-time-get-second" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-second">
+<ANCHOR id="gst-date-time-get-year" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-get-year">
+<ANCHOR id="gst-date-time-new" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new">
+<ANCHOR id="gst-date-time-new-from-unix-epoch-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time">
+<ANCHOR id="gst-date-time-new-from-unix-epoch-utc" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc">
+<ANCHOR id="gst-date-time-new-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-local-time">
+<ANCHOR id="gst-date-time-new-now-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-now-local-time">
+<ANCHOR id="gst-date-time-new-now-utc" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-now-utc">
+<ANCHOR id="gst-date-time-ref" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-ref">
+<ANCHOR id="gst-date-time-unref" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-unref">
+<ANCHOR id="GstElement" href="gstreamer-1.0/GstElement.html">
+<ANCHOR id="GstElement.synopsis" href="gstreamer-1.0/GstElement.html#GstElement.synopsis">
+<ANCHOR id="GstElement.object-hierarchy" href="gstreamer-1.0/GstElement.html#GstElement.object-hierarchy">
+<ANCHOR id="GstElement.derived-interfaces" href="gstreamer-1.0/GstElement.html#GstElement.derived-interfaces">
+<ANCHOR id="GstElement.signals" href="gstreamer-1.0/GstElement.html#GstElement.signals">
+<ANCHOR id="GstElement.description" href="gstreamer-1.0/GstElement.html#GstElement.description">
+<ANCHOR id="GstElement.details" href="gstreamer-1.0/GstElement.html#GstElement.details">
+<ANCHOR id="GstElement-struct" href="gstreamer-1.0/GstElement.html#GstElement-struct">
+<ANCHOR id="GstElementClass" href="gstreamer-1.0/GstElement.html#GstElementClass">
+<ANCHOR id="GstElementFlags" href="gstreamer-1.0/GstElement.html#GstElementFlags">
+<ANCHOR id="GST-ELEMENT-FLAG-UNPARENTING:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-UNPARENTING:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-LOCKED-STATE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-LOCKED-STATE:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-SINK:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-SOURCE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-PROVIDE-CLOCK:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-REQUIRE-CLOCK:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-INDEXABLE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-INDEXABLE:CAPS">
+<ANCHOR id="GST-ELEMENT-FLAG-LAST:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-LAST:CAPS">
+<ANCHOR id="GstState" href="gstreamer-1.0/GstElement.html#GstState">
+<ANCHOR id="GST-STATE-VOID-PENDING:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-VOID-PENDING:CAPS">
+<ANCHOR id="GST-STATE-NULL:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-NULL:CAPS">
+<ANCHOR id="GST-STATE-READY:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-READY:CAPS">
+<ANCHOR id="GST-STATE-PAUSED:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-PAUSED:CAPS">
+<ANCHOR id="GST-STATE-PLAYING:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-PLAYING:CAPS">
+<ANCHOR id="GstStateChange" href="gstreamer-1.0/GstElement.html#GstStateChange">
+<ANCHOR id="GST-STATE-CHANGE-NULL-TO-READY:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-NULL-TO-READY:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-READY-TO-PAUSED:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-READY-TO-PAUSED:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-PAUSED-TO-PLAYING:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-PLAYING-TO-PAUSED:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-PAUSED-TO-READY:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-PAUSED-TO-READY:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-READY-TO-NULL:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-READY-TO-NULL:CAPS">
+<ANCHOR id="GstStateChangeReturn" href="gstreamer-1.0/GstElement.html#GstStateChangeReturn">
+<ANCHOR id="GST-STATE-CHANGE-FAILURE:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-FAILURE:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-SUCCESS:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-SUCCESS:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-ASYNC:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS">
+<ANCHOR id="GST-STATE-CHANGE-NO-PREROLL:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS">
+<ANCHOR id="GST-STATE:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE:CAPS">
+<ANCHOR id="GST-STATE-GET-NEXT:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-GET-NEXT:CAPS">
+<ANCHOR id="GST-STATE-NEXT:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-NEXT:CAPS">
+<ANCHOR id="GST-STATE-PENDING:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-PENDING:CAPS">
+<ANCHOR id="GST-STATE-RETURN:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-RETURN:CAPS">
+<ANCHOR id="GST-STATE-TARGET:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-TARGET:CAPS">
+<ANCHOR id="GST-STATE-TRANSITION:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-TRANSITION:CAPS">
+<ANCHOR id="GST-STATE-TRANSITION-CURRENT:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-TRANSITION-CURRENT:CAPS">
+<ANCHOR id="GST-STATE-TRANSITION-NEXT:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-TRANSITION-NEXT:CAPS">
+<ANCHOR id="GST-STATE-GET-LOCK:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-GET-LOCK:CAPS">
+<ANCHOR id="GST-STATE-GET-COND:CAPS" href="gstreamer-1.0/GstElement.html#GST-STATE-GET-COND:CAPS">
+<ANCHOR id="GST-ELEMENT-NAME:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-NAME:CAPS">
+<ANCHOR id="GST-ELEMENT-PARENT:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-PARENT:CAPS">
+<ANCHOR id="GST-ELEMENT-BUS:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-BUS:CAPS">
+<ANCHOR id="GST-ELEMENT-CLOCK:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-CLOCK:CAPS">
+<ANCHOR id="GST-ELEMENT-PADS:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-PADS:CAPS">
+<ANCHOR id="GST-ELEMENT-START-TIME:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-START-TIME:CAPS">
+<ANCHOR id="GST-ELEMENT-ERROR:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-ERROR:CAPS">
+<ANCHOR id="GST-ELEMENT-WARNING:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-WARNING:CAPS">
+<ANCHOR id="GST-ELEMENT-INFO:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-INFO:CAPS">
+<ANCHOR id="GST-ELEMENT-IS-LOCKED-STATE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-AUTHOR:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-AUTHOR:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-DESCRIPTION:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-DESCRIPTION:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-DOC-URI:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-DOC-URI:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-ICON-NAME:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-ICON-NAME:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-KLASS:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-KLASS:CAPS">
+<ANCHOR id="GST-ELEMENT-METADATA-LONGNAME:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-METADATA-LONGNAME:CAPS">
+<ANCHOR id="gst-element-class-add-pad-template" href="gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">
+<ANCHOR id="gst-element-class-get-pad-template" href="gstreamer-1.0/GstElement.html#gst-element-class-get-pad-template">
+<ANCHOR id="gst-element-class-get-pad-template-list" href="gstreamer-1.0/GstElement.html#gst-element-class-get-pad-template-list">
+<ANCHOR id="gst-element-class-set-metadata" href="gstreamer-1.0/GstElement.html#gst-element-class-set-metadata">
+<ANCHOR id="gst-element-class-set-static-metadata" href="gstreamer-1.0/GstElement.html#gst-element-class-set-static-metadata">
+<ANCHOR id="gst-element-class-add-metadata" href="gstreamer-1.0/GstElement.html#gst-element-class-add-metadata">
+<ANCHOR id="gst-element-class-add-static-metadata" href="gstreamer-1.0/GstElement.html#gst-element-class-add-static-metadata">
+<ANCHOR id="gst-element-add-pad" href="gstreamer-1.0/GstElement.html#gst-element-add-pad">
+<ANCHOR id="gst-element-create-all-pads" href="gstreamer-1.0/GstElement.html#gst-element-create-all-pads">
+<ANCHOR id="gst-element-get-compatible-pad" href="gstreamer-1.0/GstElement.html#gst-element-get-compatible-pad">
+<ANCHOR id="gst-element-get-compatible-pad-template" href="gstreamer-1.0/GstElement.html#gst-element-get-compatible-pad-template">
+<ANCHOR id="gst-element-get-request-pad" href="gstreamer-1.0/GstElement.html#gst-element-get-request-pad">
+<ANCHOR id="gst-element-get-static-pad" href="gstreamer-1.0/GstElement.html#gst-element-get-static-pad">
+<ANCHOR id="gst-element-request-pad" href="gstreamer-1.0/GstElement.html#gst-element-request-pad">
+<ANCHOR id="gst-element-no-more-pads" href="gstreamer-1.0/GstElement.html#gst-element-no-more-pads">
+<ANCHOR id="gst-element-release-request-pad" href="gstreamer-1.0/GstElement.html#gst-element-release-request-pad">
+<ANCHOR id="gst-element-remove-pad" href="gstreamer-1.0/GstElement.html#gst-element-remove-pad">
+<ANCHOR id="gst-element-iterate-pads" href="gstreamer-1.0/GstElement.html#gst-element-iterate-pads">
+<ANCHOR id="gst-element-iterate-sink-pads" href="gstreamer-1.0/GstElement.html#gst-element-iterate-sink-pads">
+<ANCHOR id="gst-element-iterate-src-pads" href="gstreamer-1.0/GstElement.html#gst-element-iterate-src-pads">
+<ANCHOR id="gst-element-link" href="gstreamer-1.0/GstElement.html#gst-element-link">
+<ANCHOR id="gst-element-unlink" href="gstreamer-1.0/GstElement.html#gst-element-unlink">
+<ANCHOR id="gst-element-link-many" href="gstreamer-1.0/GstElement.html#gst-element-link-many">
+<ANCHOR id="gst-element-unlink-many" href="gstreamer-1.0/GstElement.html#gst-element-unlink-many">
+<ANCHOR id="gst-element-link-pads" href="gstreamer-1.0/GstElement.html#gst-element-link-pads">
+<ANCHOR id="gst-element-link-pads-full" href="gstreamer-1.0/GstElement.html#gst-element-link-pads-full">
+<ANCHOR id="gst-element-unlink-pads" href="gstreamer-1.0/GstElement.html#gst-element-unlink-pads">
+<ANCHOR id="gst-element-link-pads-filtered" href="gstreamer-1.0/GstElement.html#gst-element-link-pads-filtered">
+<ANCHOR id="gst-element-link-filtered" href="gstreamer-1.0/GstElement.html#gst-element-link-filtered">
+<ANCHOR id="gst-element-class-get-metadata" href="gstreamer-1.0/GstElement.html#gst-element-class-get-metadata">
+<ANCHOR id="gst-element-set-base-time" href="gstreamer-1.0/GstElement.html#gst-element-set-base-time">
+<ANCHOR id="gst-element-get-base-time" href="gstreamer-1.0/GstElement.html#gst-element-get-base-time">
+<ANCHOR id="gst-element-set-start-time" href="gstreamer-1.0/GstElement.html#gst-element-set-start-time">
+<ANCHOR id="gst-element-get-start-time" href="gstreamer-1.0/GstElement.html#gst-element-get-start-time">
+<ANCHOR id="gst-element-set-bus" href="gstreamer-1.0/GstElement.html#gst-element-set-bus">
+<ANCHOR id="gst-element-get-bus" href="gstreamer-1.0/GstElement.html#gst-element-get-bus">
+<ANCHOR id="gst-element-get-factory" href="gstreamer-1.0/GstElement.html#gst-element-get-factory">
+<ANCHOR id="gst-element-set-name" href="gstreamer-1.0/GstElement.html#gst-element-set-name">
+<ANCHOR id="gst-element-get-name" href="gstreamer-1.0/GstElement.html#gst-element-get-name">
+<ANCHOR id="gst-element-set-parent" href="gstreamer-1.0/GstElement.html#gst-element-set-parent">
+<ANCHOR id="gst-element-get-parent" href="gstreamer-1.0/GstElement.html#gst-element-get-parent">
+<ANCHOR id="gst-element-set-clock" href="gstreamer-1.0/GstElement.html#gst-element-set-clock">
+<ANCHOR id="gst-element-get-clock" href="gstreamer-1.0/GstElement.html#gst-element-get-clock">
+<ANCHOR id="gst-element-provide-clock" href="gstreamer-1.0/GstElement.html#gst-element-provide-clock">
+<ANCHOR id="gst-element-set-state" href="gstreamer-1.0/GstElement.html#gst-element-set-state">
+<ANCHOR id="gst-element-get-state" href="gstreamer-1.0/GstElement.html#gst-element-get-state">
+<ANCHOR id="gst-element-set-locked-state" href="gstreamer-1.0/GstElement.html#gst-element-set-locked-state">
+<ANCHOR id="gst-element-is-locked-state" href="gstreamer-1.0/GstElement.html#gst-element-is-locked-state">
+<ANCHOR id="gst-element-abort-state" href="gstreamer-1.0/GstElement.html#gst-element-abort-state">
+<ANCHOR id="gst-element-continue-state" href="gstreamer-1.0/GstElement.html#gst-element-continue-state">
+<ANCHOR id="gst-element-lost-state" href="gstreamer-1.0/GstElement.html#gst-element-lost-state">
+<ANCHOR id="gst-element-state-get-name" href="gstreamer-1.0/GstElement.html#gst-element-state-get-name">
+<ANCHOR id="gst-element-state-change-return-get-name" href="gstreamer-1.0/GstElement.html#gst-element-state-change-return-get-name">
+<ANCHOR id="gst-element-sync-state-with-parent" href="gstreamer-1.0/GstElement.html#gst-element-sync-state-with-parent">
+<ANCHOR id="gst-element-change-state" href="gstreamer-1.0/GstElement.html#gst-element-change-state">
+<ANCHOR id="gst-element-message-full" href="gstreamer-1.0/GstElement.html#gst-element-message-full">
+<ANCHOR id="gst-element-post-message" href="gstreamer-1.0/GstElement.html#gst-element-post-message">
+<ANCHOR id="gst-element-query" href="gstreamer-1.0/GstElement.html#gst-element-query">
+<ANCHOR id="gst-element-query-convert" href="gstreamer-1.0/GstElement.html#gst-element-query-convert">
+<ANCHOR id="gst-element-query-position" href="gstreamer-1.0/GstElement.html#gst-element-query-position">
+<ANCHOR id="gst-element-query-duration" href="gstreamer-1.0/GstElement.html#gst-element-query-duration">
+<ANCHOR id="gst-element-send-event" href="gstreamer-1.0/GstElement.html#gst-element-send-event">
+<ANCHOR id="gst-element-seek-simple" href="gstreamer-1.0/GstElement.html#gst-element-seek-simple">
+<ANCHOR id="gst-element-seek" href="gstreamer-1.0/GstElement.html#gst-element-seek">
+<ANCHOR id="GstElement.signal-details" href="gstreamer-1.0/GstElement.html#GstElement.signal-details">
+<ANCHOR id="GstElement-no-more-pads" href="gstreamer-1.0/GstElement.html#GstElement-no-more-pads">
+<ANCHOR id="GstElement-pad-added" href="gstreamer-1.0/GstElement.html#GstElement-pad-added">
+<ANCHOR id="GstElement-pad-removed" href="gstreamer-1.0/GstElement.html#GstElement-pad-removed">
+<ANCHOR id="GstElement.see-also" href="gstreamer-1.0/GstElement.html#GstElement.see-also">
+<ANCHOR id="GstElementFactory" href="gstreamer-1.0/GstElementFactory.html">
+<ANCHOR id="GstElementFactory.synopsis" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory.synopsis">
+<ANCHOR id="GstElementFactory.object-hierarchy" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory.object-hierarchy">
+<ANCHOR id="GstElementFactory.description" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory.description">
+<ANCHOR id="GstElementFactory.details" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory.details">
+<ANCHOR id="GstElementFactory-struct" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory-struct">
+<ANCHOR id="gst-element-register" href="gstreamer-1.0/GstElementFactory.html#gst-element-register">
+<ANCHOR id="gst-element-factory-find" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-find">
+<ANCHOR id="gst-element-factory-get-element-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-element-type">
+<ANCHOR id="gst-element-factory-get-metadata" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-metadata">
+<ANCHOR id="gst-element-factory-get-num-pad-templates" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-num-pad-templates">
+<ANCHOR id="gst-element-factory-get-uri-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-type">
+<ANCHOR id="gst-element-factory-get-uri-protocols" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-protocols">
+<ANCHOR id="gst-element-factory-has-interface" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-has-interface">
+<ANCHOR id="gst-element-factory-create" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-create">
+<ANCHOR id="gst-element-factory-make" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-make">
+<ANCHOR id="gst-element-factory-can-sink-all-caps" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-can-sink-all-caps">
+<ANCHOR id="gst-element-factory-can-src-all-caps" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-can-src-all-caps">
+<ANCHOR id="gst-element-factory-can-sink-any-caps" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-can-sink-any-caps">
+<ANCHOR id="gst-element-factory-can-src-any-caps" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-can-src-any-caps">
+<ANCHOR id="gst-element-factory-get-static-pad-templates" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-static-pad-templates">
+<ANCHOR id="GstElementFactoryListType" href="gstreamer-1.0/GstElementFactory.html#GstElementFactoryListType">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-ANY:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ANY:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DECODER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DEMUXER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEMUXER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-DEPAYLOADER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEPAYLOADER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-ENCODER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ENCODER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-FORMATTER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-FORMATTER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MAX-ELEMENTS:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MAX-ELEMENTS:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-AUDIO:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-AUDIO:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-IMAGE:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-IMAGE:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-METADATA:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-METADATA:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-SUBTITLE:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-SUBTITLE:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-VIDEO:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-VIDEO:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-MUXER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MUXER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-PARSER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PARSER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-PAYLOADER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PAYLOADER:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-SINK:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SINK:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-SRC:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SRC:CAPS">
+<ANCHOR id="GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS" href="gstreamer-1.0/GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS">
+<ANCHOR id="gst-element-factory-list-filter" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-list-filter">
+<ANCHOR id="gst-element-factory-list-get-elements" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-list-get-elements">
+<ANCHOR id="gst-element-factory-list-is-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-list-is-type">
+<ANCHOR id="GstElementFactory.see-also" href="gstreamer-1.0/GstElementFactory.html#GstElementFactory.see-also">
+<ANCHOR id="gstreamer-GstGError" href="gstreamer-1.0/gstreamer-GstGError.html">
+<ANCHOR id="gstreamer-GstGError.synopsis" href="gstreamer-1.0/gstreamer-GstGError.html#gstreamer-GstGError.synopsis">
+<ANCHOR id="gstreamer-GstGError.description" href="gstreamer-1.0/gstreamer-GstGError.html#gstreamer-GstGError.description">
+<ANCHOR id="gstreamer-GstGError.details" href="gstreamer-1.0/gstreamer-GstGError.html#gstreamer-GstGError.details">
+<ANCHOR id="GstCoreError" href="gstreamer-1.0/gstreamer-GstGError.html#GstCoreError">
+<ANCHOR id="GST-CORE-ERROR-FAILED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-FAILED:CAPS">
+<ANCHOR id="GST-CORE-ERROR-TOO-LAZY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-TOO-LAZY:CAPS">
+<ANCHOR id="GST-CORE-ERROR-NOT-IMPLEMENTED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-NOT-IMPLEMENTED:CAPS">
+<ANCHOR id="GST-CORE-ERROR-STATE-CHANGE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-STATE-CHANGE:CAPS">
+<ANCHOR id="GST-CORE-ERROR-PAD:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-PAD:CAPS">
+<ANCHOR id="GST-CORE-ERROR-THREAD:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-THREAD:CAPS">
+<ANCHOR id="GST-CORE-ERROR-NEGOTIATION:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-NEGOTIATION:CAPS">
+<ANCHOR id="GST-CORE-ERROR-EVENT:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-EVENT:CAPS">
+<ANCHOR id="GST-CORE-ERROR-SEEK:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-SEEK:CAPS">
+<ANCHOR id="GST-CORE-ERROR-CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-CAPS">
+<ANCHOR id="GST-CORE-ERROR-TAG:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-TAG:CAPS">
+<ANCHOR id="GST-CORE-ERROR-MISSING-PLUGIN:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-MISSING-PLUGIN:CAPS">
+<ANCHOR id="GST-CORE-ERROR-CLOCK:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-CLOCK:CAPS">
+<ANCHOR id="GST-CORE-ERROR-DISABLED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-DISABLED:CAPS">
+<ANCHOR id="GST-CORE-ERROR-NUM-ERRORS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR-NUM-ERRORS:CAPS">
+<ANCHOR id="GstLibraryError" href="gstreamer-1.0/gstreamer-GstGError.html#GstLibraryError">
+<ANCHOR id="GST-LIBRARY-ERROR-FAILED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-FAILED:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-TOO-LAZY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-TOO-LAZY:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-INIT:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-INIT:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-SHUTDOWN:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-SHUTDOWN:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-SETTINGS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-SETTINGS:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-ENCODE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-ENCODE:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR-NUM-ERRORS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR-NUM-ERRORS:CAPS">
+<ANCHOR id="GstResourceError" href="gstreamer-1.0/gstreamer-GstGError.html#GstResourceError">
+<ANCHOR id="GST-RESOURCE-ERROR-FAILED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-FAILED:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-TOO-LAZY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-TOO-LAZY:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-NOT-FOUND:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NOT-FOUND:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-BUSY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-BUSY:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-OPEN-READ:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-READ:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-OPEN-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-WRITE:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-OPEN-READ-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-OPEN-READ-WRITE:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-CLOSE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-CLOSE:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-READ:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-READ:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-WRITE:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-SEEK:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SEEK:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-SYNC:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SYNC:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-SETTINGS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-SETTINGS:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-NO-SPACE-LEFT:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NO-SPACE-LEFT:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR-NUM-ERRORS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR-NUM-ERRORS:CAPS">
+<ANCHOR id="GstStreamError" href="gstreamer-1.0/gstreamer-GstGError.html#GstStreamError">
+<ANCHOR id="GST-STREAM-ERROR-FAILED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-FAILED:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-TOO-LAZY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-TOO-LAZY:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-NOT-IMPLEMENTED:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-NOT-IMPLEMENTED:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-TYPE-NOT-FOUND:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-TYPE-NOT-FOUND:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-WRONG-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-WRONG-TYPE:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-CODEC-NOT-FOUND:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-CODEC-NOT-FOUND:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-DECODE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-DECODE:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-ENCODE:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-ENCODE:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-DEMUX:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-DEMUX:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-MUX:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-MUX:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-FORMAT:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-FORMAT:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-DECRYPT:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-DECRYPT:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-DECRYPT-NOKEY:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-DECRYPT-NOKEY:CAPS">
+<ANCHOR id="GST-STREAM-ERROR-NUM-ERRORS:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR-NUM-ERRORS:CAPS">
+<ANCHOR id="GST-CORE-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-CORE-ERROR:CAPS">
+<ANCHOR id="GST-LIBRARY-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-LIBRARY-ERROR:CAPS">
+<ANCHOR id="GST-RESOURCE-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-RESOURCE-ERROR:CAPS">
+<ANCHOR id="GST-STREAM-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-STREAM-ERROR:CAPS">
+<ANCHOR id="GST-ERROR-SYSTEM:CAPS" href="gstreamer-1.0/gstreamer-GstGError.html#GST-ERROR-SYSTEM:CAPS">
+<ANCHOR id="gst-error-get-message" href="gstreamer-1.0/gstreamer-GstGError.html#gst-error-get-message">
+<ANCHOR id="gstreamer-GstGError.see-also" href="gstreamer-1.0/gstreamer-GstGError.html#gstreamer-GstGError.see-also">
+<ANCHOR id="gstreamer-GstEvent" href="gstreamer-1.0/gstreamer-GstEvent.html">
+<ANCHOR id="gstreamer-GstEvent.synopsis" href="gstreamer-1.0/gstreamer-GstEvent.html#gstreamer-GstEvent.synopsis">
+<ANCHOR id="gstreamer-GstEvent.description" href="gstreamer-1.0/gstreamer-GstEvent.html#gstreamer-GstEvent.description">
+<ANCHOR id="gstreamer-GstEvent.details" href="gstreamer-1.0/gstreamer-GstEvent.html#gstreamer-GstEvent.details">
+<ANCHOR id="GstEvent" href="gstreamer-1.0/gstreamer-GstEvent.html#GstEvent">
+<ANCHOR id="GstEventTypeFlags" href="gstreamer-1.0/gstreamer-GstEvent.html#GstEventTypeFlags">
+<ANCHOR id="GST-EVENT-TYPE-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-UPSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-DOWNSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-SERIALIZED:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-SERIALIZED:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-STICKY:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-STICKY-MULTI:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY-MULTI:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-BOTH:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-BOTH:CAPS">
+<ANCHOR id="GST-EVENT-MAKE-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-MAKE-TYPE:CAPS">
+<ANCHOR id="GstEventType" href="gstreamer-1.0/gstreamer-GstEvent.html#GstEventType">
+<ANCHOR id="GST-EVENT-UNKNOWN:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-UNKNOWN:CAPS">
+<ANCHOR id="GST-EVENT-FLUSH-START:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-FLUSH-START:CAPS">
+<ANCHOR id="GST-EVENT-FLUSH-STOP:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-FLUSH-STOP:CAPS">
+<ANCHOR id="GST-EVENT-STREAM-START:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-STREAM-START:CAPS">
+<ANCHOR id="GST-EVENT-CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CAPS">
+<ANCHOR id="GST-EVENT-STREAM-CONFIG:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-STREAM-CONFIG:CAPS">
+<ANCHOR id="GST-EVENT-SEGMENT:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-SEGMENT:CAPS">
+<ANCHOR id="GST-EVENT-TAG:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TAG:CAPS">
+<ANCHOR id="GST-EVENT-BUFFERSIZE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-BUFFERSIZE:CAPS">
+<ANCHOR id="GST-EVENT-SINK-MESSAGE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-SINK-MESSAGE:CAPS">
+<ANCHOR id="GST-EVENT-EOS:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-EOS:CAPS">
+<ANCHOR id="GST-EVENT-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TOC:CAPS">
+<ANCHOR id="GST-EVENT-SEGMENT-DONE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-SEGMENT-DONE:CAPS">
+<ANCHOR id="GST-EVENT-GAP:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-GAP:CAPS">
+<ANCHOR id="GST-EVENT-QOS:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-QOS:CAPS">
+<ANCHOR id="GST-EVENT-SEEK:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-SEEK:CAPS">
+<ANCHOR id="GST-EVENT-NAVIGATION:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-NAVIGATION:CAPS">
+<ANCHOR id="GST-EVENT-LATENCY:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-LATENCY:CAPS">
+<ANCHOR id="GST-EVENT-STEP:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-STEP:CAPS">
+<ANCHOR id="GST-EVENT-RECONFIGURE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-RECONFIGURE:CAPS">
+<ANCHOR id="GST-EVENT-TOC-SELECT:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TOC-SELECT:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-UPSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-DOWNSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM-OOB:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-DOWNSTREAM-STICKY:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-DOWNSTREAM-STICKY:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-BOTH:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH:CAPS">
+<ANCHOR id="GST-EVENT-CUSTOM-BOTH-OOB:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-CUSTOM-BOTH-OOB:CAPS">
+<ANCHOR id="GST-EVENT-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE:CAPS">
+<ANCHOR id="GST-EVENT-TYPE-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TYPE-NAME:CAPS">
+<ANCHOR id="GST-EVENT-TIMESTAMP:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-TIMESTAMP:CAPS">
+<ANCHOR id="GST-EVENT-SEQNUM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-SEQNUM:CAPS">
+<ANCHOR id="GST-EVENT-IS-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-IS-UPSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-IS-DOWNSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-IS-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-EVENT-IS-SERIALIZED:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-IS-SERIALIZED:CAPS">
+<ANCHOR id="GST-EVENT-IS-STICKY:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-EVENT-IS-STICKY:CAPS">
+<ANCHOR id="gst-event-type-get-flags" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-type-get-flags">
+<ANCHOR id="gst-event-type-get-name" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-type-get-name">
+<ANCHOR id="gst-event-type-to-quark" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-type-to-quark">
+<ANCHOR id="gst-event-ref" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-ref">
+<ANCHOR id="gst-event-unref" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-unref">
+<ANCHOR id="gst-event-replace" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-replace">
+<ANCHOR id="gst-event-copy" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-copy">
+<ANCHOR id="gst-event-steal" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-steal">
+<ANCHOR id="gst-event-take" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-take">
+<ANCHOR id="gst-event-is-writable" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-is-writable">
+<ANCHOR id="gst-event-make-writable" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-make-writable">
+<ANCHOR id="gst-event-writable-structure" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-writable-structure">
+<ANCHOR id="gst-event-new-custom" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-custom">
+<ANCHOR id="gst-event-get-structure" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-get-structure">
+<ANCHOR id="gst-event-has-name" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-has-name">
+<ANCHOR id="gst-event-get-seqnum" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-get-seqnum">
+<ANCHOR id="gst-event-set-seqnum" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-set-seqnum">
+<ANCHOR id="gst-event-new-flush-start" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-flush-start">
+<ANCHOR id="gst-event-new-flush-stop" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-flush-stop">
+<ANCHOR id="gst-event-parse-flush-stop" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-flush-stop">
+<ANCHOR id="gst-event-new-eos" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-eos">
+<ANCHOR id="gst-event-new-gap" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-gap">
+<ANCHOR id="gst-event-parse-gap" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-gap">
+<ANCHOR id="gst-event-new-stream-start" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-stream-start">
+<ANCHOR id="gst-event-new-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-segment">
+<ANCHOR id="gst-event-parse-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-segment">
+<ANCHOR id="gst-event-copy-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-copy-segment">
+<ANCHOR id="gst-event-new-tag" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-tag">
+<ANCHOR id="gst-event-parse-tag" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-tag">
+<ANCHOR id="gst-event-new-buffer-size" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-buffer-size">
+<ANCHOR id="gst-event-parse-buffer-size" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-buffer-size">
+<ANCHOR id="GstQOSType" href="gstreamer-1.0/gstreamer-GstEvent.html#GstQOSType">
+<ANCHOR id="GST-QOS-TYPE-OVERFLOW:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-QOS-TYPE-OVERFLOW:CAPS">
+<ANCHOR id="GST-QOS-TYPE-UNDERFLOW:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-QOS-TYPE-UNDERFLOW:CAPS">
+<ANCHOR id="GST-QOS-TYPE-THROTTLE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-QOS-TYPE-THROTTLE:CAPS">
+<ANCHOR id="gst-event-new-qos" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-qos">
+<ANCHOR id="gst-event-parse-qos" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-qos">
+<ANCHOR id="GstSeekType" href="gstreamer-1.0/gstreamer-GstEvent.html#GstSeekType">
+<ANCHOR id="GST-SEEK-TYPE-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-TYPE-NONE:CAPS">
+<ANCHOR id="GST-SEEK-TYPE-SET:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-TYPE-SET:CAPS">
+<ANCHOR id="GST-SEEK-TYPE-END:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-TYPE-END:CAPS">
+<ANCHOR id="GstSeekFlags" href="gstreamer-1.0/gstreamer-GstEvent.html#GstSeekFlags">
+<ANCHOR id="GST-SEEK-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-NONE:CAPS">
+<ANCHOR id="GST-SEEK-FLAG-FLUSH:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-FLUSH:CAPS">
+<ANCHOR id="GST-SEEK-FLAG-ACCURATE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-ACCURATE:CAPS">
+<ANCHOR id="GST-SEEK-FLAG-KEY-UNIT:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-KEY-UNIT:CAPS">
+<ANCHOR id="GST-SEEK-FLAG-SEGMENT:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-SEGMENT:CAPS">
+<ANCHOR id="GST-SEEK-FLAG-SKIP:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-SEEK-FLAG-SKIP:CAPS">
+<ANCHOR id="gst-event-new-seek" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-seek">
+<ANCHOR id="gst-event-parse-seek" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-seek">
+<ANCHOR id="gst-event-new-navigation" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-navigation">
+<ANCHOR id="gst-event-new-latency" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-latency">
+<ANCHOR id="gst-event-parse-latency" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-latency">
+<ANCHOR id="gst-event-new-step" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-step">
+<ANCHOR id="gst-event-parse-step" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-step">
+<ANCHOR id="gst-event-new-sink-message" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-sink-message">
+<ANCHOR id="gst-event-parse-sink-message" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-sink-message">
+<ANCHOR id="gst-event-new-reconfigure" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-reconfigure">
+<ANCHOR id="gst-event-new-caps" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-caps">
+<ANCHOR id="gst-event-parse-caps" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-caps">
+<ANCHOR id="GstStreamConfigFlags" href="gstreamer-1.0/gstreamer-GstEvent.html#GstStreamConfigFlags">
+<ANCHOR id="GST-STREAM-CONFIG-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstEvent.html#GST-STREAM-CONFIG-FLAG-NONE:CAPS">
+<ANCHOR id="gst-event-new-stream-config" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-stream-config">
+<ANCHOR id="gst-event-parse-stream-config" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-stream-config">
+<ANCHOR id="gst-event-set-stream-config-setup-data" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-set-stream-config-setup-data">
+<ANCHOR id="gst-event-parse-stream-config-setup-data" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-stream-config-setup-data">
+<ANCHOR id="gst-event-add-stream-config-header" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-add-stream-config-header">
+<ANCHOR id="gst-event-get-n-stream-config-headers" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-get-n-stream-config-headers">
+<ANCHOR id="gst-event-parse-nth-stream-config-header" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-nth-stream-config-header">
+<ANCHOR id="gst-event-new-toc" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-toc">
+<ANCHOR id="gst-event-parse-toc" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-toc">
+<ANCHOR id="gst-event-new-toc-select" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-toc-select">
+<ANCHOR id="gst-event-parse-toc-select" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-toc-select">
+<ANCHOR id="gstreamer-GstEvent.see-also" href="gstreamer-1.0/gstreamer-GstEvent.html#gstreamer-GstEvent.see-also">
+<ANCHOR id="gstreamer-GstFormat" href="gstreamer-1.0/gstreamer-GstFormat.html">
+<ANCHOR id="gstreamer-GstFormat.synopsis" href="gstreamer-1.0/gstreamer-GstFormat.html#gstreamer-GstFormat.synopsis">
+<ANCHOR id="gstreamer-GstFormat.description" href="gstreamer-1.0/gstreamer-GstFormat.html#gstreamer-GstFormat.description">
+<ANCHOR id="gstreamer-GstFormat.details" href="gstreamer-1.0/gstreamer-GstFormat.html#gstreamer-GstFormat.details">
+<ANCHOR id="GstFormat" href="gstreamer-1.0/gstreamer-GstFormat.html#GstFormat">
+<ANCHOR id="GST-FORMAT-UNDEFINED:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-UNDEFINED:CAPS">
+<ANCHOR id="GST-FORMAT-DEFAULT:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS">
+<ANCHOR id="GST-FORMAT-BYTES:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS">
+<ANCHOR id="GST-FORMAT-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS">
+<ANCHOR id="GST-FORMAT-BUFFERS:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BUFFERS:CAPS">
+<ANCHOR id="GST-FORMAT-PERCENT:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-PERCENT:CAPS">
+<ANCHOR id="GST-FORMAT-PERCENT-MAX:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-PERCENT-MAX:CAPS">
+<ANCHOR id="GST-FORMAT-PERCENT-SCALE:CAPS" href="gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-PERCENT-SCALE:CAPS">
+<ANCHOR id="GstFormatDefinition" href="gstreamer-1.0/gstreamer-GstFormat.html#GstFormatDefinition">
+<ANCHOR id="gst-format-get-name" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-get-name">
+<ANCHOR id="gst-format-to-quark" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-to-quark">
+<ANCHOR id="gst-format-register" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-register">
+<ANCHOR id="gst-format-get-by-nick" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-get-by-nick">
+<ANCHOR id="gst-formats-contains" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-formats-contains">
+<ANCHOR id="gst-format-get-details" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-get-details">
+<ANCHOR id="gst-format-iterate-definitions" href="gstreamer-1.0/gstreamer-GstFormat.html#gst-format-iterate-definitions">
+<ANCHOR id="gstreamer-GstFormat.see-also" href="gstreamer-1.0/gstreamer-GstFormat.html#gstreamer-GstFormat.see-also">
+<ANCHOR id="GstGhostPad" href="gstreamer-1.0/GstGhostPad.html">
+<ANCHOR id="GstGhostPad.synopsis" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.synopsis">
+<ANCHOR id="GstProxyPad" href="gstreamer-1.0/GstGhostPad.html#GstProxyPad">
+<ANCHOR id="GstGhostPad.object-hierarchy" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.object-hierarchy">
+<ANCHOR id="GstGhostPad.description" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.description">
+<ANCHOR id="GstGhostPad.details" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.details">
+<ANCHOR id="GstProxyPad-struct" href="gstreamer-1.0/GstGhostPad.html#GstProxyPad-struct">
+<ANCHOR id="GstGhostPad-struct" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad-struct">
+<ANCHOR id="gst-ghost-pad-new" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-new">
+<ANCHOR id="gst-ghost-pad-new-no-target" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-new-no-target">
+<ANCHOR id="gst-ghost-pad-new-from-template" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-new-from-template">
+<ANCHOR id="gst-ghost-pad-new-no-target-from-template" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-new-no-target-from-template">
+<ANCHOR id="gst-ghost-pad-set-target" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-set-target">
+<ANCHOR id="gst-ghost-pad-get-target" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-get-target">
+<ANCHOR id="gst-ghost-pad-construct" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-construct">
+<ANCHOR id="gst-ghost-pad-unlink-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-unlink-default">
+<ANCHOR id="gst-ghost-pad-link-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-link-default">
+<ANCHOR id="gst-ghost-pad-activate-mode-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-activate-mode-default">
+<ANCHOR id="gst-ghost-pad-internal-activate-mode-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default">
+<ANCHOR id="gst-proxy-pad-get-internal" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-get-internal">
+<ANCHOR id="gst-proxy-pad-event-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-event-default">
+<ANCHOR id="gst-proxy-pad-query-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-query-default">
+<ANCHOR id="gst-proxy-pad-iterate-internal-links-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default">
+<ANCHOR id="gst-proxy-pad-chain-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-chain-default">
+<ANCHOR id="gst-proxy-pad-chain-list-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-chain-list-default">
+<ANCHOR id="gst-proxy-pad-getrange-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-getrange-default">
+<ANCHOR id="gst-proxy-pad-unlink-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-unlink-default">
+<ANCHOR id="GstGhostPad.see-also" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.see-also">
+<ANCHOR id="gstreamer-GstIterator" href="gstreamer-1.0/gstreamer-GstIterator.html">
+<ANCHOR id="gstreamer-GstIterator.synopsis" href="gstreamer-1.0/gstreamer-GstIterator.html#gstreamer-GstIterator.synopsis">
+<ANCHOR id="gstreamer-GstIterator.description" href="gstreamer-1.0/gstreamer-GstIterator.html#gstreamer-GstIterator.description">
+<ANCHOR id="gstreamer-GstIterator.details" href="gstreamer-1.0/gstreamer-GstIterator.html#gstreamer-GstIterator.details">
+<ANCHOR id="GstIterator" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIterator">
+<ANCHOR id="GstIteratorItem" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorItem">
+<ANCHOR id="GST-ITERATOR-ITEM-SKIP:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-SKIP:CAPS">
+<ANCHOR id="GST-ITERATOR-ITEM-PASS:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-PASS:CAPS">
+<ANCHOR id="GST-ITERATOR-ITEM-END:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-ITEM-END:CAPS">
+<ANCHOR id="GstIteratorResult" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorResult">
+<ANCHOR id="GST-ITERATOR-DONE:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-DONE:CAPS">
+<ANCHOR id="GST-ITERATOR-OK:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-OK:CAPS">
+<ANCHOR id="GST-ITERATOR-RESYNC:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-RESYNC:CAPS">
+<ANCHOR id="GST-ITERATOR-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-ERROR:CAPS">
+<ANCHOR id="GstIteratorCopyFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorCopyFunction">
+<ANCHOR id="GstIteratorNextFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorNextFunction">
+<ANCHOR id="GstIteratorItemFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorItemFunction">
+<ANCHOR id="GstIteratorResyncFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorResyncFunction">
+<ANCHOR id="GstIteratorFreeFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorFreeFunction">
+<ANCHOR id="GstIteratorForeachFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorForeachFunction">
+<ANCHOR id="GstIteratorFoldFunction" href="gstreamer-1.0/gstreamer-GstIterator.html#GstIteratorFoldFunction">
+<ANCHOR id="GST-ITERATOR:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR:CAPS">
+<ANCHOR id="GST-ITERATOR-LOCK:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-LOCK:CAPS">
+<ANCHOR id="GST-ITERATOR-COOKIE:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-COOKIE:CAPS">
+<ANCHOR id="GST-ITERATOR-ORIG-COOKIE:CAPS" href="gstreamer-1.0/gstreamer-GstIterator.html#GST-ITERATOR-ORIG-COOKIE:CAPS">
+<ANCHOR id="gst-iterator-new" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-new">
+<ANCHOR id="gst-iterator-new-list" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-new-list">
+<ANCHOR id="gst-iterator-new-single" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-new-single">
+<ANCHOR id="gst-iterator-copy" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-copy">
+<ANCHOR id="gst-iterator-free" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-free">
+<ANCHOR id="gst-iterator-next" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-next">
+<ANCHOR id="gst-iterator-resync" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-resync">
+<ANCHOR id="gst-iterator-push" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-push">
+<ANCHOR id="gst-iterator-filter" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-filter">
+<ANCHOR id="gst-iterator-fold" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-fold">
+<ANCHOR id="gst-iterator-foreach" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-foreach">
+<ANCHOR id="gst-iterator-find-custom" href="gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-find-custom">
+<ANCHOR id="gstreamer-GstIterator.see-also" href="gstreamer-1.0/gstreamer-GstIterator.html#gstreamer-GstIterator.see-also">
+<ANCHOR id="gstreamer-GstMemory" href="gstreamer-1.0/gstreamer-GstMemory.html">
+<ANCHOR id="gstreamer-GstMemory.synopsis" href="gstreamer-1.0/gstreamer-GstMemory.html#gstreamer-GstMemory.synopsis">
+<ANCHOR id="gstreamer-GstMemory.description" href="gstreamer-1.0/gstreamer-GstMemory.html#gstreamer-GstMemory.description">
+<ANCHOR id="gstreamer-GstMemory.details" href="gstreamer-1.0/gstreamer-GstMemory.html#gstreamer-GstMemory.details">
+<ANCHOR id="GstMemoryFlags" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryFlags">
+<ANCHOR id="GST-MEMORY-FLAG-READONLY:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-READONLY:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-NO-SHARE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-NO-SHARE:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-ZERO-PADDED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-LAST:CAPS">
+<ANCHOR id="GST-MEMORY-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAGS:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-MEMORY-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-MEMORY-IS-READONLY:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS">
+<ANCHOR id="GST-MEMORY-IS-ZERO-PADDED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS">
+<ANCHOR id="GST-MEMORY-IS-ZERO-PREFIXED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS">
+<ANCHOR id="GstMemory" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemory">
+<ANCHOR id="GstMapFlags" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMapFlags">
+<ANCHOR id="GST-MAP-READ:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-READ:CAPS">
+<ANCHOR id="GST-MAP-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS">
+<ANCHOR id="GST-MAP-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-FLAG-LAST:CAPS">
+<ANCHOR id="GstMapInfo" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMapInfo">
+<ANCHOR id="GST-MAP-INFO-INIT:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS">
+<ANCHOR id="GST-MAP-READWRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS">
+<ANCHOR id="GstAllocationParams" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocationParams">
+<ANCHOR id="GstAllocatorAllocFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocatorAllocFunction">
+<ANCHOR id="GstMemoryMapFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryMapFunction">
+<ANCHOR id="GstMemoryUnmapFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryUnmapFunction">
+<ANCHOR id="GstMemoryFreeFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryFreeFunction">
+<ANCHOR id="GstMemoryCopyFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryCopyFunction">
+<ANCHOR id="GstMemoryShareFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryShareFunction">
+<ANCHOR id="GstMemoryIsSpanFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryIsSpanFunction">
+<ANCHOR id="GstMemoryInfo" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryInfo">
+<ANCHOR id="GstAllocator" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocator">
+<ANCHOR id="gst-allocator-new" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-new">
+<ANCHOR id="gst-allocator-get-memory-type" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-get-memory-type">
+<ANCHOR id="gst-allocator-ref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-ref">
+<ANCHOR id="gst-allocator-unref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-unref">
+<ANCHOR id="GST-ALLOCATOR-SYSMEM:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS">
+<ANCHOR id="gst-allocator-find" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-find">
+<ANCHOR id="gst-allocator-register" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-register">
+<ANCHOR id="gst-allocator-set-default" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-set-default">
+<ANCHOR id="gst-allocation-params-init" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-init">
+<ANCHOR id="gst-allocation-params-copy" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-copy">
+<ANCHOR id="gst-allocation-params-free" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-free">
+<ANCHOR id="gst-allocator-alloc" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-alloc">
+<ANCHOR id="gst-memory-new-wrapped" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-new-wrapped">
+<ANCHOR id="gst-memory-ref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-ref">
+<ANCHOR id="gst-memory-unref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unref">
+<ANCHOR id="gst-memory-is-exclusive" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-exclusive">
+<ANCHOR id="gst-memory-get-sizes" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-get-sizes">
+<ANCHOR id="gst-memory-resize" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-resize">
+<ANCHOR id="gst-memory-make-mapped" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-make-mapped">
+<ANCHOR id="gst-memory-map" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-map">
+<ANCHOR id="gst-memory-unmap" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unmap">
+<ANCHOR id="gst-memory-copy" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-copy">
+<ANCHOR id="gst-memory-share" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-share">
+<ANCHOR id="gst-memory-is-span" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-span">
+<ANCHOR id="gstreamer-GstMemory.see-also" href="gstreamer-1.0/gstreamer-GstMemory.html#gstreamer-GstMemory.see-also">
+<ANCHOR id="gstreamer-GstMessage" href="gstreamer-1.0/gstreamer-GstMessage.html">
+<ANCHOR id="gstreamer-GstMessage.synopsis" href="gstreamer-1.0/gstreamer-GstMessage.html#gstreamer-GstMessage.synopsis">
+<ANCHOR id="gstreamer-GstMessage.description" href="gstreamer-1.0/gstreamer-GstMessage.html#gstreamer-GstMessage.description">
+<ANCHOR id="gstreamer-GstMessage.details" href="gstreamer-1.0/gstreamer-GstMessage.html#gstreamer-GstMessage.details">
+<ANCHOR id="GstMessage" href="gstreamer-1.0/gstreamer-GstMessage.html#GstMessage">
+<ANCHOR id="GstMessageType" href="gstreamer-1.0/gstreamer-GstMessage.html#GstMessageType">
+<ANCHOR id="GST-MESSAGE-UNKNOWN:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-UNKNOWN:CAPS">
+<ANCHOR id="GST-MESSAGE-EOS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-EOS:CAPS">
+<ANCHOR id="GST-MESSAGE-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ERROR:CAPS">
+<ANCHOR id="GST-MESSAGE-WARNING:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-WARNING:CAPS">
+<ANCHOR id="GST-MESSAGE-INFO:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-INFO:CAPS">
+<ANCHOR id="GST-MESSAGE-TAG:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TAG:CAPS">
+<ANCHOR id="GST-MESSAGE-BUFFERING:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-BUFFERING:CAPS">
+<ANCHOR id="GST-MESSAGE-STATE-CHANGED:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STATE-CHANGED:CAPS">
+<ANCHOR id="GST-MESSAGE-STATE-DIRTY:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STATE-DIRTY:CAPS">
+<ANCHOR id="GST-MESSAGE-STEP-DONE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STEP-DONE:CAPS">
+<ANCHOR id="GST-MESSAGE-CLOCK-PROVIDE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-CLOCK-PROVIDE:CAPS">
+<ANCHOR id="GST-MESSAGE-CLOCK-LOST:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-CLOCK-LOST:CAPS">
+<ANCHOR id="GST-MESSAGE-NEW-CLOCK:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-NEW-CLOCK:CAPS">
+<ANCHOR id="GST-MESSAGE-STRUCTURE-CHANGE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STRUCTURE-CHANGE:CAPS">
+<ANCHOR id="GST-MESSAGE-STREAM-STATUS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STREAM-STATUS:CAPS">
+<ANCHOR id="GST-MESSAGE-APPLICATION:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-APPLICATION:CAPS">
+<ANCHOR id="GST-MESSAGE-ELEMENT:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS">
+<ANCHOR id="GST-MESSAGE-SEGMENT-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-START:CAPS">
+<ANCHOR id="GST-MESSAGE-SEGMENT-DONE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS">
+<ANCHOR id="GST-MESSAGE-DURATION:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-DURATION:CAPS">
+<ANCHOR id="GST-MESSAGE-LATENCY:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-LATENCY:CAPS">
+<ANCHOR id="GST-MESSAGE-ASYNC-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-START:CAPS">
+<ANCHOR id="GST-MESSAGE-ASYNC-DONE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS">
+<ANCHOR id="GST-MESSAGE-REQUEST-STATE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS">
+<ANCHOR id="GST-MESSAGE-STEP-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STEP-START:CAPS">
+<ANCHOR id="GST-MESSAGE-QOS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-QOS:CAPS">
+<ANCHOR id="GST-MESSAGE-PROGRESS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS">
+<ANCHOR id="GST-MESSAGE-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS">
+<ANCHOR id="GST-MESSAGE-ANY:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ANY:CAPS">
+<ANCHOR id="GST-MESSAGE-SRC:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">
+<ANCHOR id="GST-MESSAGE-SRC-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SRC-NAME:CAPS">
+<ANCHOR id="GST-MESSAGE-TIMESTAMP:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TIMESTAMP:CAPS">
+<ANCHOR id="GST-MESSAGE-SEQNUM:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SEQNUM:CAPS">
+<ANCHOR id="GST-MESSAGE-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">
+<ANCHOR id="GST-MESSAGE-TYPE-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS">
+<ANCHOR id="gst-message-type-to-quark" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-type-to-quark">
+<ANCHOR id="gst-message-type-get-name" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-type-get-name">
+<ANCHOR id="gst-message-ref" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-ref">
+<ANCHOR id="gst-message-unref" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-unref">
+<ANCHOR id="gst-message-copy" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-copy">
+<ANCHOR id="gst-message-get-structure" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-get-structure">
+<ANCHOR id="gst-message-make-writable" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-make-writable">
+<ANCHOR id="gst-message-get-seqnum" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-get-seqnum">
+<ANCHOR id="gst-message-set-seqnum" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-set-seqnum">
+<ANCHOR id="gst-message-has-name" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-has-name">
+<ANCHOR id="gst-message-is-writable" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-is-writable">
+<ANCHOR id="gst-message-replace" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-replace">
+<ANCHOR id="gst-message-new-eos" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-eos">
+<ANCHOR id="gst-message-new-error" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-error">
+<ANCHOR id="gst-message-parse-error" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-error">
+<ANCHOR id="gst-message-new-warning" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-warning">
+<ANCHOR id="gst-message-parse-warning" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-warning">
+<ANCHOR id="gst-message-new-info" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-info">
+<ANCHOR id="gst-message-parse-info" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-info">
+<ANCHOR id="gst-message-new-tag" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-tag">
+<ANCHOR id="gst-message-parse-tag" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-tag">
+<ANCHOR id="gst-message-new-buffering" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-buffering">
+<ANCHOR id="gst-message-parse-buffering" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-buffering">
+<ANCHOR id="gst-message-set-buffering-stats" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-set-buffering-stats">
+<ANCHOR id="gst-message-parse-buffering-stats" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-buffering-stats">
+<ANCHOR id="gst-message-new-state-changed" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-state-changed">
+<ANCHOR id="gst-message-parse-state-changed" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-state-changed">
+<ANCHOR id="gst-message-new-state-dirty" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-state-dirty">
+<ANCHOR id="gst-message-new-step-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-step-done">
+<ANCHOR id="gst-message-parse-step-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-step-done">
+<ANCHOR id="gst-message-new-clock-provide" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-clock-provide">
+<ANCHOR id="gst-message-parse-clock-provide" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-clock-provide">
+<ANCHOR id="gst-message-new-clock-lost" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-clock-lost">
+<ANCHOR id="gst-message-parse-clock-lost" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-clock-lost">
+<ANCHOR id="gst-message-new-new-clock" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-new-clock">
+<ANCHOR id="gst-message-parse-new-clock" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-new-clock">
+<ANCHOR id="gst-message-new-application" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-application">
+<ANCHOR id="gst-message-new-element" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-element">
+<ANCHOR id="gst-message-new-custom" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-custom">
+<ANCHOR id="gst-message-new-segment-start" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-segment-start">
+<ANCHOR id="gst-message-parse-segment-start" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-segment-start">
+<ANCHOR id="gst-message-new-segment-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-segment-done">
+<ANCHOR id="gst-message-parse-segment-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-segment-done">
+<ANCHOR id="gst-message-new-duration" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-duration">
+<ANCHOR id="gst-message-parse-duration" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-duration">
+<ANCHOR id="gst-message-new-latency" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-latency">
+<ANCHOR id="gst-message-new-async-start" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-async-start">
+<ANCHOR id="gst-message-new-async-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-async-done">
+<ANCHOR id="gst-message-parse-async-done" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-async-done">
+<ANCHOR id="gst-message-new-step-start" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-step-start">
+<ANCHOR id="gst-message-parse-step-start" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-step-start">
+<ANCHOR id="gst-message-new-qos" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-qos">
+<ANCHOR id="gst-message-set-qos-values" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-set-qos-values">
+<ANCHOR id="gst-message-set-qos-stats" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-set-qos-stats">
+<ANCHOR id="gst-message-parse-qos" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-qos">
+<ANCHOR id="gst-message-parse-qos-values" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-qos-values">
+<ANCHOR id="gst-message-parse-qos-stats" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-qos-stats">
+<ANCHOR id="gst-message-new-toc" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-toc">
+<ANCHOR id="gst-message-parse-toc" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-toc">
+<ANCHOR id="GstStructureChangeType" href="gstreamer-1.0/gstreamer-GstMessage.html#GstStructureChangeType">
+<ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS">
+<ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS">
+<ANCHOR id="gst-message-new-structure-change" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-structure-change">
+<ANCHOR id="gst-message-parse-structure-change" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-structure-change">
+<ANCHOR id="gst-message-new-request-state" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-request-state">
+<ANCHOR id="gst-message-parse-request-state" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-request-state">
+<ANCHOR id="GstStreamStatusType" href="gstreamer-1.0/gstreamer-GstMessage.html#GstStreamStatusType">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-CREATE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-CREATE:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-ENTER:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-ENTER:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-LEAVE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-LEAVE:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-DESTROY:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-DESTROY:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-START:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-PAUSE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-PAUSE:CAPS">
+<ANCHOR id="GST-STREAM-STATUS-TYPE-STOP:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STREAM-STATUS-TYPE-STOP:CAPS">
+<ANCHOR id="gst-message-new-stream-status" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-stream-status">
+<ANCHOR id="gst-message-parse-stream-status" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-stream-status">
+<ANCHOR id="gst-message-set-stream-status-object" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-set-stream-status-object">
+<ANCHOR id="gst-message-get-stream-status-object" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-get-stream-status-object">
+<ANCHOR id="GstProgressType" href="gstreamer-1.0/gstreamer-GstMessage.html#GstProgressType">
+<ANCHOR id="GST-PROGRESS-TYPE-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-START:CAPS">
+<ANCHOR id="GST-PROGRESS-TYPE-CONTINUE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-CONTINUE:CAPS">
+<ANCHOR id="GST-PROGRESS-TYPE-COMPLETE:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-COMPLETE:CAPS">
+<ANCHOR id="GST-PROGRESS-TYPE-CANCELED:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-CANCELED:CAPS">
+<ANCHOR id="GST-PROGRESS-TYPE-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-PROGRESS-TYPE-ERROR:CAPS">
+<ANCHOR id="gst-message-new-progress" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-progress">
+<ANCHOR id="gst-message-parse-progress" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-progress">
+<ANCHOR id="gstreamer-GstMessage.see-also" href="gstreamer-1.0/gstreamer-GstMessage.html#gstreamer-GstMessage.see-also">
+<ANCHOR id="gstreamer-GstMeta" href="gstreamer-1.0/gstreamer-GstMeta.html">
+<ANCHOR id="gstreamer-GstMeta.synopsis" href="gstreamer-1.0/gstreamer-GstMeta.html#gstreamer-GstMeta.synopsis">
+<ANCHOR id="gstreamer-GstMeta.description" href="gstreamer-1.0/gstreamer-GstMeta.html#gstreamer-GstMeta.description">
+<ANCHOR id="gstreamer-GstMeta.details" href="gstreamer-1.0/gstreamer-GstMeta.html#gstreamer-GstMeta.details">
+<ANCHOR id="GstMeta" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMeta">
+<ANCHOR id="GstMetaFlags" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaFlags">
+<ANCHOR id="GST-META-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-NONE:CAPS">
+<ANCHOR id="GST-META-FLAG-READONLY:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-READONLY:CAPS">
+<ANCHOR id="GST-META-FLAG-POOLED:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS">
+<ANCHOR id="GST-META-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-LAST:CAPS">
+<ANCHOR id="GST-META-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAGS:CAPS">
+<ANCHOR id="GST-META-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-META-FLAG-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-SET:CAPS">
+<ANCHOR id="GST-META-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-FLAG-UNSET:CAPS">
+<ANCHOR id="GstMetaInfo" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaInfo">
+<ANCHOR id="GstMetaInitFunction" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaInitFunction">
+<ANCHOR id="GstMetaFreeFunction" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaFreeFunction">
+<ANCHOR id="GstMetaTransformFunction" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaTransformFunction">
+<ANCHOR id="GstMetaTransformCopy" href="gstreamer-1.0/gstreamer-GstMeta.html#GstMetaTransformCopy">
+<ANCHOR id="GST-META-TRANSFORM-IS-COPY:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-TRANSFORM-IS-COPY:CAPS">
+<ANCHOR id="gst-meta-api-type-register" href="gstreamer-1.0/gstreamer-GstMeta.html#gst-meta-api-type-register">
+<ANCHOR id="gst-meta-api-type-has-tag" href="gstreamer-1.0/gstreamer-GstMeta.html#gst-meta-api-type-has-tag">
+<ANCHOR id="GST-META-TAG-MEMORY:CAPS" href="gstreamer-1.0/gstreamer-GstMeta.html#GST-META-TAG-MEMORY:CAPS">
+<ANCHOR id="gst-meta-register" href="gstreamer-1.0/gstreamer-GstMeta.html#gst-meta-register">
+<ANCHOR id="gst-meta-get-info" href="gstreamer-1.0/gstreamer-GstMeta.html#gst-meta-get-info">
+<ANCHOR id="gstreamer-GstMiniObject" href="gstreamer-1.0/gstreamer-GstMiniObject.html">
+<ANCHOR id="gstreamer-GstMiniObject.synopsis" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.synopsis">
+<ANCHOR id="gstreamer-GstMiniObject.description" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.description">
+<ANCHOR id="gstreamer-GstMiniObject.details" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.details">
+<ANCHOR id="GstMiniObject" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject">
+<ANCHOR id="GstMiniObjectFlags" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectFlags">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS">
+<ANCHOR id="GstMiniObjectCopyFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction">
+<ANCHOR id="GstMiniObjectDisposeFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction">
+<ANCHOR id="GstMiniObjectFreeFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction">
+<ANCHOR id="GstMiniObjectWeakNotify" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify">
+<ANCHOR id="GST-MINI-OBJECT-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-TYPE:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAGS:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-SET:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-REFCOUNT:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-SIZE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS">
+<ANCHOR id="GST-DEFINE-MINI-OBJECT-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS">
+<ANCHOR id="gst-mini-object-init" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-init">
+<ANCHOR id="gst-mini-object-copy" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-copy">
+<ANCHOR id="gst-mini-object-is-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-is-writable">
+<ANCHOR id="gst-mini-object-make-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-make-writable">
+<ANCHOR id="gst-mini-object-ref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-ref">
+<ANCHOR id="gst-mini-object-unref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-unref">
+<ANCHOR id="gst-mini-object-weak-ref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-weak-ref">
+<ANCHOR id="gst-mini-object-weak-unref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-weak-unref">
+<ANCHOR id="gst-mini-object-replace" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-replace">
+<ANCHOR id="gst-mini-object-steal" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-steal">
+<ANCHOR id="gst-mini-object-take" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-take">
+<ANCHOR id="GstObject" href="gstreamer-1.0/GstObject.html">
+<ANCHOR id="GstObject.synopsis" href="gstreamer-1.0/GstObject.html#GstObject.synopsis">
+<ANCHOR id="GstObject.object-hierarchy" href="gstreamer-1.0/GstObject.html#GstObject.object-hierarchy">
+<ANCHOR id="GstObject.properties" href="gstreamer-1.0/GstObject.html#GstObject.properties">
+<ANCHOR id="GstObject.signals" href="gstreamer-1.0/GstObject.html#GstObject.signals">
+<ANCHOR id="GstObject.description" href="gstreamer-1.0/GstObject.html#GstObject.description">
+<ANCHOR id="GstObject.details" href="gstreamer-1.0/GstObject.html#GstObject.details">
+<ANCHOR id="GstObject-struct" href="gstreamer-1.0/GstObject.html#GstObject-struct">
+<ANCHOR id="GstObjectClass" href="gstreamer-1.0/GstObject.html#GstObjectClass">
+<ANCHOR id="GstObjectFlags" href="gstreamer-1.0/GstObject.html#GstObjectFlags">
+<ANCHOR id="GST-OBJECT-FLAG-LAST:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-FLAG-LAST:CAPS">
+<ANCHOR id="GST-OBJECT-FLAGS:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-FLAGS:CAPS">
+<ANCHOR id="GST-OBJECT-FLAG-IS-SET:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-OBJECT-FLAG-SET:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-FLAG-SET:CAPS">
+<ANCHOR id="GST-OBJECT-FLAG-UNSET:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-OBJECT-NAME:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">
+<ANCHOR id="GST-OBJECT-PARENT:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-PARENT:CAPS">
+<ANCHOR id="GST-OBJECT-REFCOUNT:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-REFCOUNT:CAPS">
+<ANCHOR id="GST-OBJECT-REFCOUNT-VALUE:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-REFCOUNT-VALUE:CAPS">
+<ANCHOR id="GST-OBJECT-LOCK:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-LOCK:CAPS">
+<ANCHOR id="GST-OBJECT-TRYLOCK:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-TRYLOCK:CAPS">
+<ANCHOR id="GST-OBJECT-UNLOCK:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-UNLOCK:CAPS">
+<ANCHOR id="GST-OBJECT-GET-LOCK:CAPS" href="gstreamer-1.0/GstObject.html#GST-OBJECT-GET-LOCK:CAPS">
+<ANCHOR id="gst-object-set-name" href="gstreamer-1.0/GstObject.html#gst-object-set-name">
+<ANCHOR id="gst-object-get-name" href="gstreamer-1.0/GstObject.html#gst-object-get-name">
+<ANCHOR id="gst-object-set-parent" href="gstreamer-1.0/GstObject.html#gst-object-set-parent">
+<ANCHOR id="gst-object-get-parent" href="gstreamer-1.0/GstObject.html#gst-object-get-parent">
+<ANCHOR id="gst-object-unparent" href="gstreamer-1.0/GstObject.html#gst-object-unparent">
+<ANCHOR id="gst-object-default-deep-notify" href="gstreamer-1.0/GstObject.html#gst-object-default-deep-notify">
+<ANCHOR id="gst-object-default-error" href="gstreamer-1.0/GstObject.html#gst-object-default-error">
+<ANCHOR id="gst-object-check-uniqueness" href="gstreamer-1.0/GstObject.html#gst-object-check-uniqueness">
+<ANCHOR id="gst-object-has-ancestor" href="gstreamer-1.0/GstObject.html#gst-object-has-ancestor">
+<ANCHOR id="gst-object-ref" href="gstreamer-1.0/GstObject.html#gst-object-ref">
+<ANCHOR id="gst-object-unref" href="gstreamer-1.0/GstObject.html#gst-object-unref">
+<ANCHOR id="gst-object-ref-sink" href="gstreamer-1.0/GstObject.html#gst-object-ref-sink">
+<ANCHOR id="gst-object-replace" href="gstreamer-1.0/GstObject.html#gst-object-replace">
+<ANCHOR id="gst-object-get-path-string" href="gstreamer-1.0/GstObject.html#gst-object-get-path-string">
+<ANCHOR id="gst-object-suggest-next-sync" href="gstreamer-1.0/GstObject.html#gst-object-suggest-next-sync">
+<ANCHOR id="gst-object-sync-values" href="gstreamer-1.0/GstObject.html#gst-object-sync-values">
+<ANCHOR id="gst-object-has-active-control-bindings" href="gstreamer-1.0/GstObject.html#gst-object-has-active-control-bindings">
+<ANCHOR id="gst-object-set-control-bindings-disabled" href="gstreamer-1.0/GstObject.html#gst-object-set-control-bindings-disabled">
+<ANCHOR id="gst-object-set-control-binding-disabled" href="gstreamer-1.0/GstObject.html#gst-object-set-control-binding-disabled">
+<ANCHOR id="gst-object-add-control-binding" href="gstreamer-1.0/GstObject.html#gst-object-add-control-binding">
+<ANCHOR id="gst-object-get-control-binding" href="gstreamer-1.0/GstObject.html#gst-object-get-control-binding">
+<ANCHOR id="gst-object-remove-control-binding" href="gstreamer-1.0/GstObject.html#gst-object-remove-control-binding">
+<ANCHOR id="gst-object-get-value" href="gstreamer-1.0/GstObject.html#gst-object-get-value">
+<ANCHOR id="gst-object-get-value-array" href="gstreamer-1.0/GstObject.html#gst-object-get-value-array">
+<ANCHOR id="gst-object-get-control-rate" href="gstreamer-1.0/GstObject.html#gst-object-get-control-rate">
+<ANCHOR id="gst-object-set-control-rate" href="gstreamer-1.0/GstObject.html#gst-object-set-control-rate">
+<ANCHOR id="GstObject.property-details" href="gstreamer-1.0/GstObject.html#GstObject.property-details">
+<ANCHOR id="GstObject--name" href="gstreamer-1.0/GstObject.html#GstObject--name">
+<ANCHOR id="GstObject--parent" href="gstreamer-1.0/GstObject.html#GstObject--parent">
+<ANCHOR id="GstObject.signal-details" href="gstreamer-1.0/GstObject.html#GstObject.signal-details">
+<ANCHOR id="GstObject-deep-notify" href="gstreamer-1.0/GstObject.html#GstObject-deep-notify">
+<ANCHOR id="GstPad" href="gstreamer-1.0/GstPad.html">
+<ANCHOR id="GstPad.synopsis" href="gstreamer-1.0/GstPad.html#GstPad.synopsis">
+<ANCHOR id="GstPad.object-hierarchy" href="gstreamer-1.0/GstPad.html#GstPad.object-hierarchy">
+<ANCHOR id="GstPad.properties" href="gstreamer-1.0/GstPad.html#GstPad.properties">
+<ANCHOR id="GstPad.signals" href="gstreamer-1.0/GstPad.html#GstPad.signals">
+<ANCHOR id="GstPad.description" href="gstreamer-1.0/GstPad.html#GstPad.description">
+<ANCHOR id="GstPad.details" href="gstreamer-1.0/GstPad.html#GstPad.details">
+<ANCHOR id="GstPad-struct" href="gstreamer-1.0/GstPad.html#GstPad-struct">
+<ANCHOR id="GstPadDirection" href="gstreamer-1.0/GstPad.html#GstPadDirection">
+<ANCHOR id="GST-PAD-UNKNOWN:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-UNKNOWN:CAPS">
+<ANCHOR id="GST-PAD-SRC:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-SRC:CAPS">
+<ANCHOR id="GST-PAD-SINK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-SINK:CAPS">
+<ANCHOR id="GstPadFlags" href="gstreamer-1.0/GstPad.html#GstPadFlags">
+<ANCHOR id="GST-PAD-FLAG-BLOCKED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS">
+<ANCHOR id="GST-PAD-FLAG-FLUSHING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS">
+<ANCHOR id="GST-PAD-FLAG-BLOCKING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS">
+<ANCHOR id="GST-PAD-FLAG-NEED-PARENT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS">
+<ANCHOR id="GST-PAD-FLAG-NEED-RECONFIGURE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS">
+<ANCHOR id="GST-PAD-FLAG-PENDING-EVENTS:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PENDING-EVENTS:CAPS">
+<ANCHOR id="GST-PAD-FLAG-FIXED-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-FIXED-CAPS">
+<ANCHOR id="GST-PAD-FLAG-PROXY-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PROXY-CAPS">
+<ANCHOR id="GST-PAD-FLAG-PROXY-ALLOCATION:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PROXY-ALLOCATION:CAPS">
+<ANCHOR id="GST-PAD-FLAG-LAST:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-LAST:CAPS">
+<ANCHOR id="GstPadLinkReturn" href="gstreamer-1.0/GstPad.html#GstPadLinkReturn">
+<ANCHOR id="GST-PAD-LINK-OK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-OK:CAPS">
+<ANCHOR id="GST-PAD-LINK-WRONG-HIERARCHY:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-WRONG-HIERARCHY:CAPS">
+<ANCHOR id="GST-PAD-LINK-WAS-LINKED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-WAS-LINKED:CAPS">
+<ANCHOR id="GST-PAD-LINK-WRONG-DIRECTION:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-WRONG-DIRECTION:CAPS">
+<ANCHOR id="GST-PAD-LINK-NOFORMAT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-NOFORMAT:CAPS">
+<ANCHOR id="GST-PAD-LINK-NOSCHED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-NOSCHED:CAPS">
+<ANCHOR id="GST-PAD-LINK-REFUSED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-REFUSED:CAPS">
+<ANCHOR id="GST-PAD-LINK-FAILED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-FAILED:CAPS">
+<ANCHOR id="GST-PAD-LINK-SUCCESSFUL:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-SUCCESSFUL:CAPS">
+<ANCHOR id="GstPadLinkCheck" href="gstreamer-1.0/GstPad.html#GstPadLinkCheck">
+<ANCHOR id="GST-PAD-LINK-CHECK-NOTHING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-CHECK-NOTHING:CAPS">
+<ANCHOR id="GST-PAD-LINK-CHECK-HIERARCHY:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-CHECK-HIERARCHY:CAPS">
+<ANCHOR id="GST-PAD-LINK-CHECK-TEMPLATE-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-CHECK-TEMPLATE-CAPS">
+<ANCHOR id="GST-PAD-LINK-CHECK-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-CHECK-CAPS">
+<ANCHOR id="GST-PAD-LINK-CHECK-DEFAULT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS">
+<ANCHOR id="GstFlowReturn" href="gstreamer-1.0/GstPad.html#GstFlowReturn">
+<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS-2:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-SUCCESS-2:CAPS">
+<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS-1:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-SUCCESS-1:CAPS">
+<ANCHOR id="GST-FLOW-CUSTOM-SUCCESS:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-SUCCESS:CAPS">
+<ANCHOR id="GST-FLOW-OK:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS">
+<ANCHOR id="GST-FLOW-NOT-LINKED:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-NOT-LINKED:CAPS">
+<ANCHOR id="GST-FLOW-FLUSHING:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-FLUSHING:CAPS">
+<ANCHOR id="GST-FLOW-EOS:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-EOS:CAPS">
+<ANCHOR id="GST-FLOW-NOT-NEGOTIATED:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-NOT-NEGOTIATED:CAPS">
+<ANCHOR id="GST-FLOW-ERROR:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-ERROR:CAPS">
+<ANCHOR id="GST-FLOW-NOT-SUPPORTED:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-NOT-SUPPORTED:CAPS">
+<ANCHOR id="GST-FLOW-CUSTOM-ERROR:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-ERROR:CAPS">
+<ANCHOR id="GST-FLOW-CUSTOM-ERROR-1:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-ERROR-1:CAPS">
+<ANCHOR id="GST-FLOW-CUSTOM-ERROR-2:CAPS" href="gstreamer-1.0/GstPad.html#GST-FLOW-CUSTOM-ERROR-2:CAPS">
+<ANCHOR id="GstPadMode" href="gstreamer-1.0/GstPad.html#GstPadMode">
+<ANCHOR id="GST-PAD-MODE-NONE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-MODE-NONE:CAPS">
+<ANCHOR id="GST-PAD-MODE-PUSH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-MODE-PUSH:CAPS">
+<ANCHOR id="GST-PAD-MODE-PULL:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-MODE-PULL:CAPS">
+<ANCHOR id="gst-pad-get-name" href="gstreamer-1.0/GstPad.html#gst-pad-get-name">
+<ANCHOR id="gst-pad-get-direction" href="gstreamer-1.0/GstPad.html#gst-pad-get-direction">
+<ANCHOR id="gst-pad-get-parent" href="gstreamer-1.0/GstPad.html#gst-pad-get-parent">
+<ANCHOR id="gst-pad-get-parent-element" href="gstreamer-1.0/GstPad.html#gst-pad-get-parent-element">
+<ANCHOR id="gst-pad-get-pad-template" href="gstreamer-1.0/GstPad.html#gst-pad-get-pad-template">
+<ANCHOR id="gst-pad-link" href="gstreamer-1.0/GstPad.html#gst-pad-link">
+<ANCHOR id="gst-pad-link-full" href="gstreamer-1.0/GstPad.html#gst-pad-link-full">
+<ANCHOR id="gst-pad-unlink" href="gstreamer-1.0/GstPad.html#gst-pad-unlink">
+<ANCHOR id="gst-pad-is-linked" href="gstreamer-1.0/GstPad.html#gst-pad-is-linked">
+<ANCHOR id="gst-pad-can-link" href="gstreamer-1.0/GstPad.html#gst-pad-can-link">
+<ANCHOR id="gst-pad-get-allowed-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-allowed-caps">
+<ANCHOR id="gst-pad-get-current-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-current-caps">
+<ANCHOR id="gst-pad-get-pad-template-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-pad-template-caps">
+<ANCHOR id="gst-pad-set-caps" href="gstreamer-1.0/GstPad.html#gst-pad-set-caps">
+<ANCHOR id="gst-pad-get-peer" href="gstreamer-1.0/GstPad.html#gst-pad-get-peer">
+<ANCHOR id="gst-pad-use-fixed-caps" href="gstreamer-1.0/GstPad.html#gst-pad-use-fixed-caps">
+<ANCHOR id="gst-pad-has-current-caps" href="gstreamer-1.0/GstPad.html#gst-pad-has-current-caps">
+<ANCHOR id="gst-pad-get-sticky-event" href="gstreamer-1.0/GstPad.html#gst-pad-get-sticky-event">
+<ANCHOR id="GstPadStickyEventsForeachFunction" href="gstreamer-1.0/GstPad.html#GstPadStickyEventsForeachFunction">
+<ANCHOR id="gst-pad-sticky-events-foreach" href="gstreamer-1.0/GstPad.html#gst-pad-sticky-events-foreach">
+<ANCHOR id="gst-pad-is-active" href="gstreamer-1.0/GstPad.html#gst-pad-is-active">
+<ANCHOR id="GstPadProbeReturn" href="gstreamer-1.0/GstPad.html#GstPadProbeReturn">
+<ANCHOR id="GST-PAD-PROBE-DROP:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-DROP:CAPS">
+<ANCHOR id="GST-PAD-PROBE-OK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-OK:CAPS">
+<ANCHOR id="GST-PAD-PROBE-REMOVE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-REMOVE:CAPS">
+<ANCHOR id="GST-PAD-PROBE-PASS:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-PASS:CAPS">
+<ANCHOR id="GstPadProbeType" href="gstreamer-1.0/GstPad.html#GstPadProbeType">
+<ANCHOR id="GST-PAD-PROBE-TYPE-INVALID:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-INVALID:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-IDLE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-IDLE:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BLOCK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BLOCK:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BUFFER:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BUFFER:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BUFFER-LIST:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BUFFER-LIST:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-EVENT-DOWNSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-EVENT-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-EVENT-UPSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-EVENT-UPSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-EVENT-FLUSH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-EVENT-FLUSH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-QUERY-DOWNSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-QUERY-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-QUERY-UPSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-QUERY-UPSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-PUSH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-PUSH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-PULL:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-PULL:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BLOCKING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BLOCKING:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-BLOCK-UPSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-DATA-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-DATA-UPSTREAM:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-DATA-BOTH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-EVENT-BOTH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-QUERY-BOTH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-ALL-BOTH:CAPS">
+<ANCHOR id="GST-PAD-PROBE-TYPE-SCHEDULING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-TYPE-SCHEDULING:CAPS">
+<ANCHOR id="GstPadProbeInfo" href="gstreamer-1.0/GstPad.html#GstPadProbeInfo">
+<ANCHOR id="GST-PAD-PROBE-INFO-TYPE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-TYPE:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-ID:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-ID:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-DATA:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-DATA:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-BUFFER:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-BUFFER:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-BUFFER-LIST:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-EVENT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-EVENT:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-QUERY:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-QUERY:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-OFFSET:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-OFFSET:CAPS">
+<ANCHOR id="GST-PAD-PROBE-INFO-SIZE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-PROBE-INFO-SIZE:CAPS">
+<ANCHOR id="GstPadProbeCallback" href="gstreamer-1.0/GstPad.html#GstPadProbeCallback">
+<ANCHOR id="gst-pad-add-probe" href="gstreamer-1.0/GstPad.html#gst-pad-add-probe">
+<ANCHOR id="gst-pad-remove-probe" href="gstreamer-1.0/GstPad.html#gst-pad-remove-probe">
+<ANCHOR id="gst-pad-is-blocked" href="gstreamer-1.0/GstPad.html#gst-pad-is-blocked">
+<ANCHOR id="gst-pad-is-blocking" href="gstreamer-1.0/GstPad.html#gst-pad-is-blocking">
+<ANCHOR id="gst-pad-get-offset" href="gstreamer-1.0/GstPad.html#gst-pad-get-offset">
+<ANCHOR id="gst-pad-set-offset" href="gstreamer-1.0/GstPad.html#gst-pad-set-offset">
+<ANCHOR id="gst-pad-new" href="gstreamer-1.0/GstPad.html#gst-pad-new">
+<ANCHOR id="gst-pad-new-from-template" href="gstreamer-1.0/GstPad.html#gst-pad-new-from-template">
+<ANCHOR id="gst-pad-new-from-static-template" href="gstreamer-1.0/GstPad.html#gst-pad-new-from-static-template">
+<ANCHOR id="gst-pad-set-chain-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-chain-function">
+<ANCHOR id="gst-pad-set-chain-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-chain-function-full">
+<ANCHOR id="GstPadChainFunction" href="gstreamer-1.0/GstPad.html#GstPadChainFunction">
+<ANCHOR id="gst-pad-set-chain-list-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-chain-list-function">
+<ANCHOR id="gst-pad-set-chain-list-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-chain-list-function-full">
+<ANCHOR id="GstPadChainListFunction" href="gstreamer-1.0/GstPad.html#GstPadChainListFunction">
+<ANCHOR id="gst-pad-get-range" href="gstreamer-1.0/GstPad.html#gst-pad-get-range">
+<ANCHOR id="gst-pad-set-getrange-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-getrange-function">
+<ANCHOR id="gst-pad-set-getrange-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-getrange-function-full">
+<ANCHOR id="GstPadGetRangeFunction" href="gstreamer-1.0/GstPad.html#GstPadGetRangeFunction">
+<ANCHOR id="gst-pad-set-event-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-event-function">
+<ANCHOR id="gst-pad-set-event-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-event-function-full">
+<ANCHOR id="GstPadEventFunction" href="gstreamer-1.0/GstPad.html#GstPadEventFunction">
+<ANCHOR id="gst-pad-set-link-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-link-function">
+<ANCHOR id="gst-pad-set-link-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-link-function-full">
+<ANCHOR id="GstPadLinkFunction" href="gstreamer-1.0/GstPad.html#GstPadLinkFunction">
+<ANCHOR id="gst-pad-set-unlink-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-unlink-function">
+<ANCHOR id="gst-pad-set-unlink-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-unlink-function-full">
+<ANCHOR id="GstPadUnlinkFunction" href="gstreamer-1.0/GstPad.html#GstPadUnlinkFunction">
+<ANCHOR id="gst-pad-proxy-query-caps" href="gstreamer-1.0/GstPad.html#gst-pad-proxy-query-caps">
+<ANCHOR id="gst-pad-proxy-query-accept-caps" href="gstreamer-1.0/GstPad.html#gst-pad-proxy-query-accept-caps">
+<ANCHOR id="gst-pad-set-activate-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-activate-function">
+<ANCHOR id="gst-pad-set-activate-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-activate-function-full">
+<ANCHOR id="GstPadActivateFunction" href="gstreamer-1.0/GstPad.html#GstPadActivateFunction">
+<ANCHOR id="gst-pad-set-activatemode-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-activatemode-function">
+<ANCHOR id="gst-pad-set-activatemode-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-activatemode-function-full">
+<ANCHOR id="GstPadActivateModeFunction" href="gstreamer-1.0/GstPad.html#GstPadActivateModeFunction">
+<ANCHOR id="gst-pad-check-reconfigure" href="gstreamer-1.0/GstPad.html#gst-pad-check-reconfigure">
+<ANCHOR id="gst-pad-mark-reconfigure" href="gstreamer-1.0/GstPad.html#gst-pad-mark-reconfigure">
+<ANCHOR id="gst-pad-push" href="gstreamer-1.0/GstPad.html#gst-pad-push">
+<ANCHOR id="gst-pad-push-event" href="gstreamer-1.0/GstPad.html#gst-pad-push-event">
+<ANCHOR id="gst-pad-push-list" href="gstreamer-1.0/GstPad.html#gst-pad-push-list">
+<ANCHOR id="gst-pad-pull-range" href="gstreamer-1.0/GstPad.html#gst-pad-pull-range">
+<ANCHOR id="gst-pad-activate-mode" href="gstreamer-1.0/GstPad.html#gst-pad-activate-mode">
+<ANCHOR id="gst-pad-send-event" href="gstreamer-1.0/GstPad.html#gst-pad-send-event">
+<ANCHOR id="gst-pad-event-default" href="gstreamer-1.0/GstPad.html#gst-pad-event-default">
+<ANCHOR id="gst-pad-query" href="gstreamer-1.0/GstPad.html#gst-pad-query">
+<ANCHOR id="gst-pad-peer-query" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query">
+<ANCHOR id="gst-pad-query-default" href="gstreamer-1.0/GstPad.html#gst-pad-query-default">
+<ANCHOR id="gst-pad-query-position" href="gstreamer-1.0/GstPad.html#gst-pad-query-position">
+<ANCHOR id="gst-pad-query-duration" href="gstreamer-1.0/GstPad.html#gst-pad-query-duration">
+<ANCHOR id="gst-pad-query-convert" href="gstreamer-1.0/GstPad.html#gst-pad-query-convert">
+<ANCHOR id="gst-pad-query-accept-caps" href="gstreamer-1.0/GstPad.html#gst-pad-query-accept-caps">
+<ANCHOR id="gst-pad-query-caps" href="gstreamer-1.0/GstPad.html#gst-pad-query-caps">
+<ANCHOR id="gst-pad-peer-query-position" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query-position">
+<ANCHOR id="gst-pad-peer-query-duration" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query-duration">
+<ANCHOR id="gst-pad-peer-query-convert" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query-convert">
+<ANCHOR id="gst-pad-peer-query-accept-caps" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query-accept-caps">
+<ANCHOR id="gst-pad-peer-query-caps" href="gstreamer-1.0/GstPad.html#gst-pad-peer-query-caps">
+<ANCHOR id="gst-pad-set-query-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-query-function">
+<ANCHOR id="gst-pad-set-query-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-query-function-full">
+<ANCHOR id="GstPadQueryFunction" href="gstreamer-1.0/GstPad.html#GstPadQueryFunction">
+<ANCHOR id="gst-pad-set-iterate-internal-links-function" href="gstreamer-1.0/GstPad.html#gst-pad-set-iterate-internal-links-function">
+<ANCHOR id="gst-pad-set-iterate-internal-links-function-full" href="gstreamer-1.0/GstPad.html#gst-pad-set-iterate-internal-links-function-full">
+<ANCHOR id="GstPadIterIntLinkFunction" href="gstreamer-1.0/GstPad.html#GstPadIterIntLinkFunction">
+<ANCHOR id="gst-pad-iterate-internal-links" href="gstreamer-1.0/GstPad.html#gst-pad-iterate-internal-links">
+<ANCHOR id="gst-pad-iterate-internal-links-default" href="gstreamer-1.0/GstPad.html#gst-pad-iterate-internal-links-default">
+<ANCHOR id="gst-pad-set-element-private" href="gstreamer-1.0/GstPad.html#gst-pad-set-element-private">
+<ANCHOR id="gst-pad-get-element-private" href="gstreamer-1.0/GstPad.html#gst-pad-get-element-private">
+<ANCHOR id="GstPadForwardFunction" href="gstreamer-1.0/GstPad.html#GstPadForwardFunction">
+<ANCHOR id="gst-pad-forward" href="gstreamer-1.0/GstPad.html#gst-pad-forward">
+<ANCHOR id="gst-pad-chain" href="gstreamer-1.0/GstPad.html#gst-pad-chain">
+<ANCHOR id="gst-pad-chain-list" href="gstreamer-1.0/GstPad.html#gst-pad-chain-list">
+<ANCHOR id="gst-pad-start-task" href="gstreamer-1.0/GstPad.html#gst-pad-start-task">
+<ANCHOR id="gst-pad-pause-task" href="gstreamer-1.0/GstPad.html#gst-pad-pause-task">
+<ANCHOR id="gst-pad-stop-task" href="gstreamer-1.0/GstPad.html#gst-pad-stop-task">
+<ANCHOR id="gst-pad-set-active" href="gstreamer-1.0/GstPad.html#gst-pad-set-active">
+<ANCHOR id="GST-PAD-GET-STREAM-LOCK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-GET-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-PAD-STREAM-LOCK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-PAD-STREAM-TRYLOCK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-STREAM-TRYLOCK:CAPS">
+<ANCHOR id="GST-PAD-STREAM-UNLOCK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-STREAM-UNLOCK:CAPS">
+<ANCHOR id="GstPad.property-details" href="gstreamer-1.0/GstPad.html#GstPad.property-details">
+<ANCHOR id="GstPad--caps" href="gstreamer-1.0/GstPad.html#GstPad--caps">
+<ANCHOR id="GstPad--direction" href="gstreamer-1.0/GstPad.html#GstPad--direction">
+<ANCHOR id="GstPad--template" href="gstreamer-1.0/GstPad.html#GstPad--template">
+<ANCHOR id="GstPad.signal-details" href="gstreamer-1.0/GstPad.html#GstPad.signal-details">
+<ANCHOR id="GstPad-linked" href="gstreamer-1.0/GstPad.html#GstPad-linked">
+<ANCHOR id="GstPad-unlinked" href="gstreamer-1.0/GstPad.html#GstPad-unlinked">
+<ANCHOR id="GstPad.see-also" href="gstreamer-1.0/GstPad.html#GstPad.see-also">
+<ANCHOR id="GstPadTemplate" href="gstreamer-1.0/GstPadTemplate.html">
+<ANCHOR id="GstPadTemplate.synopsis" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.synopsis">
+<ANCHOR id="GstPadTemplate.object-hierarchy" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.object-hierarchy">
+<ANCHOR id="GstPadTemplate.properties" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.properties">
+<ANCHOR id="GstPadTemplate.signals" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.signals">
+<ANCHOR id="GstPadTemplate.description" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.description">
+<ANCHOR id="GstPadTemplate.details" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.details">
+<ANCHOR id="GstStaticPadTemplate" href="gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate">
+<ANCHOR id="GST-STATIC-PAD-TEMPLATE:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-STATIC-PAD-TEMPLATE:CAPS">
+<ANCHOR id="gst-static-pad-template-get" href="gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">
+<ANCHOR id="gst-static-pad-template-get-caps" href="gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get-caps">
+<ANCHOR id="GstPadTemplate-struct" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate-struct">
+<ANCHOR id="GstPadTemplateFlags" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplateFlags">
+<ANCHOR id="GST-PAD-TEMPLATE-FLAG-LAST:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-FLAG-LAST:CAPS">
+<ANCHOR id="GstPadPresence" href="gstreamer-1.0/GstPadTemplate.html#GstPadPresence">
+<ANCHOR id="GST-PAD-ALWAYS:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-ALWAYS:CAPS">
+<ANCHOR id="GST-PAD-SOMETIMES:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-SOMETIMES:CAPS">
+<ANCHOR id="GST-PAD-REQUEST:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-REQUEST:CAPS">
+<ANCHOR id="GST-PAD-TEMPLATE-NAME-TEMPLATE:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-NAME-TEMPLATE:CAPS">
+<ANCHOR id="GST-PAD-TEMPLATE-DIRECTION:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-DIRECTION:CAPS">
+<ANCHOR id="GST-PAD-TEMPLATE-PRESENCE:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-PRESENCE:CAPS">
+<ANCHOR id="GST-PAD-TEMPLATE-CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-CAPS">
+<ANCHOR id="GST-PAD-TEMPLATE-IS-FIXED:CAPS" href="gstreamer-1.0/GstPadTemplate.html#GST-PAD-TEMPLATE-IS-FIXED:CAPS">
+<ANCHOR id="gst-pad-template-new" href="gstreamer-1.0/GstPadTemplate.html#gst-pad-template-new">
+<ANCHOR id="gst-pad-template-get-caps" href="gstreamer-1.0/GstPadTemplate.html#gst-pad-template-get-caps">
+<ANCHOR id="GstPadTemplate.property-details" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.property-details">
+<ANCHOR id="GstPadTemplate--caps" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate--caps">
+<ANCHOR id="GstPadTemplate--direction" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate--direction">
+<ANCHOR id="GstPadTemplate--name-template" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate--name-template">
+<ANCHOR id="GstPadTemplate--presence" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate--presence">
+<ANCHOR id="GstPadTemplate.signal-details" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.signal-details">
+<ANCHOR id="GstPadTemplate-pad-created" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate-pad-created">
+<ANCHOR id="GstPadTemplate.see-also" href="gstreamer-1.0/GstPadTemplate.html#GstPadTemplate.see-also">
+<ANCHOR id="gstreamer-GstParamSpec" href="gstreamer-1.0/gstreamer-GstParamSpec.html">
+<ANCHOR id="gstreamer-GstParamSpec.synopsis" href="gstreamer-1.0/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.synopsis">
+<ANCHOR id="gstreamer-GstParamSpec.description" href="gstreamer-1.0/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.description">
+<ANCHOR id="gstreamer-GstParamSpec.details" href="gstreamer-1.0/gstreamer-GstParamSpec.html#gstreamer-GstParamSpec.details">
+<ANCHOR id="GST-PARAM-CONTROLLABLE:CAPS" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GST-PARAM-CONTROLLABLE:CAPS">
+<ANCHOR id="GST-PARAM-USER-SHIFT:CAPS" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GST-PARAM-USER-SHIFT:CAPS">
+<ANCHOR id="GST-PARAM-MUTABLE-PAUSED:CAPS" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PAUSED:CAPS">
+<ANCHOR id="GST-PARAM-MUTABLE-PLAYING:CAPS" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PLAYING:CAPS">
+<ANCHOR id="GST-PARAM-MUTABLE-READY:CAPS" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-READY:CAPS">
+<ANCHOR id="GstParamSpecFraction" href="gstreamer-1.0/gstreamer-GstParamSpec.html#GstParamSpecFraction">
+<ANCHOR id="gst-param-spec-fraction" href="gstreamer-1.0/gstreamer-GstParamSpec.html#gst-param-spec-fraction">
+<ANCHOR id="gstreamer-GstParse" href="gstreamer-1.0/gstreamer-GstParse.html">
+<ANCHOR id="gstreamer-GstParse.synopsis" href="gstreamer-1.0/gstreamer-GstParse.html#gstreamer-GstParse.synopsis">
+<ANCHOR id="gstreamer-GstParse.description" href="gstreamer-1.0/gstreamer-GstParse.html#gstreamer-GstParse.description">
+<ANCHOR id="gstreamer-GstParse.details" href="gstreamer-1.0/gstreamer-GstParse.html#gstreamer-GstParse.details">
+<ANCHOR id="gst-parse-error-quark" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-error-quark">
+<ANCHOR id="GST-PARSE-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR:CAPS">
+<ANCHOR id="GstParseError" href="gstreamer-1.0/gstreamer-GstParse.html#GstParseError">
+<ANCHOR id="GST-PARSE-ERROR-SYNTAX:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-SYNTAX:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-NO-SUCH-ELEMENT:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-NO-SUCH-ELEMENT:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-NO-SUCH-PROPERTY:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-NO-SUCH-PROPERTY:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-LINK:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-LINK:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-COULD-NOT-SET-PROPERTY:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-COULD-NOT-SET-PROPERTY:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-EMPTY-BIN:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-EMPTY-BIN:CAPS">
+<ANCHOR id="GST-PARSE-ERROR-EMPTY:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-ERROR-EMPTY:CAPS">
+<ANCHOR id="GstParseContext" href="gstreamer-1.0/gstreamer-GstParse.html#GstParseContext">
+<ANCHOR id="GstParseFlags" href="gstreamer-1.0/gstreamer-GstParse.html#GstParseFlags">
+<ANCHOR id="GST-PARSE-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-FLAG-NONE:CAPS">
+<ANCHOR id="GST-PARSE-FLAG-FATAL-ERRORS:CAPS" href="gstreamer-1.0/gstreamer-GstParse.html#GST-PARSE-FLAG-FATAL-ERRORS:CAPS">
+<ANCHOR id="gst-parse-launch" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launch">
+<ANCHOR id="gst-parse-launch-full" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launch-full">
+<ANCHOR id="gst-parse-launchv" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launchv">
+<ANCHOR id="gst-parse-launchv-full" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launchv-full">
+<ANCHOR id="gst-parse-bin-from-description" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-bin-from-description">
+<ANCHOR id="gst-parse-bin-from-description-full" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-bin-from-description-full">
+<ANCHOR id="gst-parse-context-new" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-context-new">
+<ANCHOR id="gst-parse-context-free" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-context-free">
+<ANCHOR id="gst-parse-context-get-missing-elements" href="gstreamer-1.0/gstreamer-GstParse.html#gst-parse-context-get-missing-elements">
+<ANCHOR id="GstPipeline" href="gstreamer-1.0/GstPipeline.html">
+<ANCHOR id="GstPipeline.synopsis" href="gstreamer-1.0/GstPipeline.html#GstPipeline.synopsis">
+<ANCHOR id="GstPipeline.object-hierarchy" href="gstreamer-1.0/GstPipeline.html#GstPipeline.object-hierarchy">
+<ANCHOR id="GstPipeline.implemented-interfaces" href="gstreamer-1.0/GstPipeline.html#GstPipeline.implemented-interfaces">
+<ANCHOR id="GstPipeline.properties" href="gstreamer-1.0/GstPipeline.html#GstPipeline.properties">
+<ANCHOR id="GstPipeline.description" href="gstreamer-1.0/GstPipeline.html#GstPipeline.description">
+<ANCHOR id="GstPipeline.details" href="gstreamer-1.0/GstPipeline.html#GstPipeline.details">
+<ANCHOR id="GstPipeline-struct" href="gstreamer-1.0/GstPipeline.html#GstPipeline-struct">
+<ANCHOR id="GstPipelineFlags" href="gstreamer-1.0/GstPipeline.html#GstPipelineFlags">
+<ANCHOR id="GST-PIPELINE-FLAG-FIXED-CLOCK:CAPS" href="gstreamer-1.0/GstPipeline.html#GST-PIPELINE-FLAG-FIXED-CLOCK:CAPS">
+<ANCHOR id="GST-PIPELINE-FLAG-LAST:CAPS" href="gstreamer-1.0/GstPipeline.html#GST-PIPELINE-FLAG-LAST:CAPS">
+<ANCHOR id="gst-pipeline-new" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-new">
+<ANCHOR id="gst-pipeline-get-bus" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-bus">
+<ANCHOR id="gst-pipeline-set-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-set-clock">
+<ANCHOR id="gst-pipeline-get-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-clock">
+<ANCHOR id="gst-pipeline-use-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-use-clock">
+<ANCHOR id="gst-pipeline-auto-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-auto-clock">
+<ANCHOR id="gst-pipeline-set-auto-flush-bus" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-set-auto-flush-bus">
+<ANCHOR id="gst-pipeline-get-auto-flush-bus" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-auto-flush-bus">
+<ANCHOR id="gst-pipeline-set-delay" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-set-delay">
+<ANCHOR id="gst-pipeline-get-delay" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-delay">
+<ANCHOR id="GstPipeline.property-details" href="gstreamer-1.0/GstPipeline.html#GstPipeline.property-details">
+<ANCHOR id="GstPipeline--auto-flush-bus" href="gstreamer-1.0/GstPipeline.html#GstPipeline--auto-flush-bus">
+<ANCHOR id="GstPipeline--delay" href="gstreamer-1.0/GstPipeline.html#GstPipeline--delay">
+<ANCHOR id="GstPipeline.see-also" href="gstreamer-1.0/GstPipeline.html#GstPipeline.see-also">
+<ANCHOR id="GstPlugin" href="gstreamer-1.0/GstPlugin.html">
+<ANCHOR id="GstPlugin.synopsis" href="gstreamer-1.0/GstPlugin.html#GstPlugin.synopsis">
+<ANCHOR id="GstPlugin.object-hierarchy" href="gstreamer-1.0/GstPlugin.html#GstPlugin.object-hierarchy">
+<ANCHOR id="GstPlugin.description" href="gstreamer-1.0/GstPlugin.html#GstPlugin.description">
+<ANCHOR id="GstPlugin.details" href="gstreamer-1.0/GstPlugin.html#GstPlugin.details">
+<ANCHOR id="gst-plugin-error-quark" href="gstreamer-1.0/GstPlugin.html#gst-plugin-error-quark">
+<ANCHOR id="GST-PLUGIN-ERROR:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-ERROR:CAPS">
+<ANCHOR id="GstPluginError" href="gstreamer-1.0/GstPlugin.html#GstPluginError">
+<ANCHOR id="GST-PLUGIN-ERROR-MODULE:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-ERROR-MODULE:CAPS">
+<ANCHOR id="GST-PLUGIN-ERROR-DEPENDENCIES:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-ERROR-DEPENDENCIES:CAPS">
+<ANCHOR id="GST-PLUGIN-ERROR-NAME-MISMATCH:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-ERROR-NAME-MISMATCH:CAPS">
+<ANCHOR id="GstPlugin-struct" href="gstreamer-1.0/GstPlugin.html#GstPlugin-struct">
+<ANCHOR id="GstPluginDesc" href="gstreamer-1.0/GstPlugin.html#GstPluginDesc">
+<ANCHOR id="GstPluginInitFunc" href="gstreamer-1.0/GstPlugin.html#GstPluginInitFunc">
+<ANCHOR id="GstPluginInitFullFunc" href="gstreamer-1.0/GstPlugin.html#GstPluginInitFullFunc">
+<ANCHOR id="GST-PLUGIN-DEFINE:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-DEFINE:CAPS">
+<ANCHOR id="GST-LICENSE-UNKNOWN:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-LICENSE-UNKNOWN:CAPS">
+<ANCHOR id="GstPluginFilter" href="gstreamer-1.0/GstPlugin.html#GstPluginFilter">
+<ANCHOR id="gst-plugin-get-name" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-name">
+<ANCHOR id="gst-plugin-get-description" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-description">
+<ANCHOR id="gst-plugin-get-filename" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-filename">
+<ANCHOR id="gst-plugin-get-license" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-license">
+<ANCHOR id="gst-plugin-get-package" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-package">
+<ANCHOR id="gst-plugin-get-origin" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-origin">
+<ANCHOR id="gst-plugin-get-source" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-source">
+<ANCHOR id="gst-plugin-get-version" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-version">
+<ANCHOR id="gst-plugin-get-module" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-module">
+<ANCHOR id="gst-plugin-is-loaded" href="gstreamer-1.0/GstPlugin.html#gst-plugin-is-loaded">
+<ANCHOR id="gst-plugin-get-cache-data" href="gstreamer-1.0/GstPlugin.html#gst-plugin-get-cache-data">
+<ANCHOR id="gst-plugin-set-cache-data" href="gstreamer-1.0/GstPlugin.html#gst-plugin-set-cache-data">
+<ANCHOR id="gst-plugin-name-filter" href="gstreamer-1.0/GstPlugin.html#gst-plugin-name-filter">
+<ANCHOR id="gst-plugin-load-file" href="gstreamer-1.0/GstPlugin.html#gst-plugin-load-file">
+<ANCHOR id="gst-plugin-load" href="gstreamer-1.0/GstPlugin.html#gst-plugin-load">
+<ANCHOR id="gst-plugin-load-by-name" href="gstreamer-1.0/GstPlugin.html#gst-plugin-load-by-name">
+<ANCHOR id="gst-plugin-list-free" href="gstreamer-1.0/GstPlugin.html#gst-plugin-list-free">
+<ANCHOR id="gst-plugin-register-static" href="gstreamer-1.0/GstPlugin.html#gst-plugin-register-static">
+<ANCHOR id="gst-plugin-register-static-full" href="gstreamer-1.0/GstPlugin.html#gst-plugin-register-static-full">
+<ANCHOR id="GstPluginFlags" href="gstreamer-1.0/GstPlugin.html#GstPluginFlags">
+<ANCHOR id="GST-PLUGIN-FLAG-CACHED:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-FLAG-CACHED:CAPS">
+<ANCHOR id="GST-PLUGIN-FLAG-BLACKLISTED:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-FLAG-BLACKLISTED:CAPS">
+<ANCHOR id="GstPluginDependencyFlags" href="gstreamer-1.0/GstPlugin.html#GstPluginDependencyFlags">
+<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-NONE:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-NONE:CAPS">
+<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-RECURSE:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-RECURSE:CAPS">
+<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-PATHS-ARE-DEFAULT-ONLY:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-PATHS-ARE-DEFAULT-ONLY:CAPS">
+<ANCHOR id="GST-PLUGIN-DEPENDENCY-FLAG-FILE-NAME-IS-SUFFIX:CAPS" href="gstreamer-1.0/GstPlugin.html#GST-PLUGIN-DEPENDENCY-FLAG-FILE-NAME-IS-SUFFIX:CAPS">
+<ANCHOR id="gst-plugin-add-dependency" href="gstreamer-1.0/GstPlugin.html#gst-plugin-add-dependency">
+<ANCHOR id="gst-plugin-add-dependency-simple" href="gstreamer-1.0/GstPlugin.html#gst-plugin-add-dependency-simple">
+<ANCHOR id="GstPlugin.see-also" href="gstreamer-1.0/GstPlugin.html#GstPlugin.see-also">
+<ANCHOR id="GstPluginFeature" href="gstreamer-1.0/GstPluginFeature.html">
+<ANCHOR id="GstPluginFeature.synopsis" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature.synopsis">
+<ANCHOR id="GstPluginFeature.object-hierarchy" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature.object-hierarchy">
+<ANCHOR id="GstPluginFeature.description" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature.description">
+<ANCHOR id="GstPluginFeature.details" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature.details">
+<ANCHOR id="GstPluginFeature-struct" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature-struct">
+<ANCHOR id="GstPluginFeatureFilter" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeatureFilter">
+<ANCHOR id="GstRank" href="gstreamer-1.0/GstPluginFeature.html#GstRank">
+<ANCHOR id="GST-RANK-NONE:CAPS" href="gstreamer-1.0/GstPluginFeature.html#GST-RANK-NONE:CAPS">
+<ANCHOR id="GST-RANK-MARGINAL:CAPS" href="gstreamer-1.0/GstPluginFeature.html#GST-RANK-MARGINAL:CAPS">
+<ANCHOR id="GST-RANK-SECONDARY:CAPS" href="gstreamer-1.0/GstPluginFeature.html#GST-RANK-SECONDARY:CAPS">
+<ANCHOR id="GST-RANK-PRIMARY:CAPS" href="gstreamer-1.0/GstPluginFeature.html#GST-RANK-PRIMARY:CAPS">
+<ANCHOR id="gst-plugin-feature-set-rank" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-set-rank">
+<ANCHOR id="gst-plugin-feature-set-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-set-name">
+<ANCHOR id="gst-plugin-feature-get-rank" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-rank">
+<ANCHOR id="gst-plugin-feature-get-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-name">
+<ANCHOR id="gst-plugin-feature-load" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-load">
+<ANCHOR id="gst-plugin-feature-list-copy" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-list-copy">
+<ANCHOR id="gst-plugin-feature-list-free" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-list-free">
+<ANCHOR id="GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS" href="gstreamer-1.0/GstPluginFeature.html#GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS">
+<ANCHOR id="gst-plugin-feature-check-version" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-check-version">
+<ANCHOR id="gst-plugin-feature-rank-compare-func" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-rank-compare-func">
+<ANCHOR id="GstPluginFeature.see-also" href="gstreamer-1.0/GstPluginFeature.html#GstPluginFeature.see-also">
+<ANCHOR id="gstreamer-GstPoll" href="gstreamer-1.0/gstreamer-GstPoll.html">
+<ANCHOR id="gstreamer-GstPoll.synopsis" href="gstreamer-1.0/gstreamer-GstPoll.html#gstreamer-GstPoll.synopsis">
+<ANCHOR id="gstreamer-GstPoll.description" href="gstreamer-1.0/gstreamer-GstPoll.html#gstreamer-GstPoll.description">
+<ANCHOR id="gstreamer-GstPoll.details" href="gstreamer-1.0/gstreamer-GstPoll.html#gstreamer-GstPoll.details">
+<ANCHOR id="GstPoll" href="gstreamer-1.0/gstreamer-GstPoll.html#GstPoll">
+<ANCHOR id="GstPollFD" href="gstreamer-1.0/gstreamer-GstPoll.html#GstPollFD">
+<ANCHOR id="GST-POLL-FD-INIT:CAPS" href="gstreamer-1.0/gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS">
+<ANCHOR id="gst-poll-add-fd" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-add-fd">
+<ANCHOR id="gst-poll-fd-can-read" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-can-read">
+<ANCHOR id="gst-poll-fd-can-write" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-can-write">
+<ANCHOR id="gst-poll-fd-ctl-read" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-ctl-read">
+<ANCHOR id="gst-poll-fd-ctl-write" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-ctl-write">
+<ANCHOR id="gst-poll-fd-has-closed" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-has-closed">
+<ANCHOR id="gst-poll-fd-has-error" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-has-error">
+<ANCHOR id="gst-poll-fd-ignored" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-ignored">
+<ANCHOR id="gst-poll-fd-init" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-fd-init">
+<ANCHOR id="gst-poll-free" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-free">
+<ANCHOR id="gst-poll-new" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-new">
+<ANCHOR id="gst-poll-new-timer" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-new-timer">
+<ANCHOR id="gst-poll-get-read-gpollfd" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-get-read-gpollfd">
+<ANCHOR id="gst-poll-remove-fd" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-remove-fd">
+<ANCHOR id="gst-poll-restart" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-restart">
+<ANCHOR id="gst-poll-set-controllable" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-set-controllable">
+<ANCHOR id="gst-poll-set-flushing" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-set-flushing">
+<ANCHOR id="gst-poll-wait" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-wait">
+<ANCHOR id="gst-poll-read-control" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-read-control">
+<ANCHOR id="gst-poll-write-control" href="gstreamer-1.0/gstreamer-GstPoll.html#gst-poll-write-control">
+<ANCHOR id="GstPreset" href="gstreamer-1.0/GstPreset.html">
+<ANCHOR id="GstPreset.synopsis" href="gstreamer-1.0/GstPreset.html#GstPreset.synopsis">
+<ANCHOR id="GstPreset.object-hierarchy" href="gstreamer-1.0/GstPreset.html#GstPreset.object-hierarchy">
+<ANCHOR id="GstPreset.description" href="gstreamer-1.0/GstPreset.html#GstPreset.description">
+<ANCHOR id="GstPreset.details" href="gstreamer-1.0/GstPreset.html#GstPreset.details">
+<ANCHOR id="GstPreset-struct" href="gstreamer-1.0/GstPreset.html#GstPreset-struct">
+<ANCHOR id="GstPresetInterface" href="gstreamer-1.0/GstPreset.html#GstPresetInterface">
+<ANCHOR id="gst-preset-get-preset-names" href="gstreamer-1.0/GstPreset.html#gst-preset-get-preset-names">
+<ANCHOR id="gst-preset-get-property-names" href="gstreamer-1.0/GstPreset.html#gst-preset-get-property-names">
+<ANCHOR id="gst-preset-load-preset" href="gstreamer-1.0/GstPreset.html#gst-preset-load-preset">
+<ANCHOR id="gst-preset-save-preset" href="gstreamer-1.0/GstPreset.html#gst-preset-save-preset">
+<ANCHOR id="gst-preset-rename-preset" href="gstreamer-1.0/GstPreset.html#gst-preset-rename-preset">
+<ANCHOR id="gst-preset-delete-preset" href="gstreamer-1.0/GstPreset.html#gst-preset-delete-preset">
+<ANCHOR id="gst-preset-set-meta" href="gstreamer-1.0/GstPreset.html#gst-preset-set-meta">
+<ANCHOR id="gst-preset-get-meta" href="gstreamer-1.0/GstPreset.html#gst-preset-get-meta">
+<ANCHOR id="gst-preset-set-app-dir" href="gstreamer-1.0/GstPreset.html#gst-preset-set-app-dir">
+<ANCHOR id="gst-preset-get-app-dir" href="gstreamer-1.0/GstPreset.html#gst-preset-get-app-dir">
+<ANCHOR id="gstreamer-GstQuery" href="gstreamer-1.0/gstreamer-GstQuery.html">
+<ANCHOR id="gstreamer-GstQuery.synopsis" href="gstreamer-1.0/gstreamer-GstQuery.html#gstreamer-GstQuery.synopsis">
+<ANCHOR id="gstreamer-GstQuery.description" href="gstreamer-1.0/gstreamer-GstQuery.html#gstreamer-GstQuery.description">
+<ANCHOR id="gstreamer-GstQuery.details" href="gstreamer-1.0/gstreamer-GstQuery.html#gstreamer-GstQuery.details">
+<ANCHOR id="GstQuery" href="gstreamer-1.0/gstreamer-GstQuery.html#GstQuery">
+<ANCHOR id="GstQueryTypeFlags" href="gstreamer-1.0/gstreamer-GstQuery.html#GstQueryTypeFlags">
+<ANCHOR id="GST-QUERY-TYPE-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-UPSTREAM:CAPS">
+<ANCHOR id="GST-QUERY-TYPE-DOWNSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-QUERY-TYPE-SERIALIZED:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-SERIALIZED:CAPS">
+<ANCHOR id="GST-QUERY-TYPE-BOTH:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-BOTH:CAPS">
+<ANCHOR id="GST-QUERY-MAKE-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS">
+<ANCHOR id="GstQueryType" href="gstreamer-1.0/gstreamer-GstQuery.html#GstQueryType">
+<ANCHOR id="GST-QUERY-UNKNOWN:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-UNKNOWN:CAPS">
+<ANCHOR id="GST-QUERY-POSITION:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-POSITION:CAPS">
+<ANCHOR id="GST-QUERY-DURATION:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-DURATION:CAPS">
+<ANCHOR id="GST-QUERY-LATENCY:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-LATENCY:CAPS">
+<ANCHOR id="GST-QUERY-JITTER:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-JITTER:CAPS">
+<ANCHOR id="GST-QUERY-RATE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-RATE:CAPS">
+<ANCHOR id="GST-QUERY-SEEKING:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-SEEKING:CAPS">
+<ANCHOR id="GST-QUERY-SEGMENT:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-SEGMENT:CAPS">
+<ANCHOR id="GST-QUERY-CONVERT:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-CONVERT:CAPS">
+<ANCHOR id="GST-QUERY-FORMATS:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-FORMATS:CAPS">
+<ANCHOR id="GST-QUERY-BUFFERING:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-BUFFERING:CAPS">
+<ANCHOR id="GST-QUERY-CUSTOM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-CUSTOM:CAPS">
+<ANCHOR id="GST-QUERY-URI:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-URI:CAPS">
+<ANCHOR id="GST-QUERY-ALLOCATION:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-ALLOCATION:CAPS">
+<ANCHOR id="GST-QUERY-SCHEDULING:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-SCHEDULING:CAPS">
+<ANCHOR id="GST-QUERY-ACCEPT-CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-ACCEPT-CAPS">
+<ANCHOR id="GST-QUERY-CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-CAPS">
+<ANCHOR id="GST-QUERY-DRAIN:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-DRAIN:CAPS">
+<ANCHOR id="GST-QUERY-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TOC:CAPS">
+<ANCHOR id="GST-QUERY-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS">
+<ANCHOR id="GST-QUERY-TYPE-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS">
+<ANCHOR id="GST-QUERY-IS-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS">
+<ANCHOR id="GST-QUERY-IS-DOWNSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS">
+<ANCHOR id="GST-QUERY-IS-SERIALIZED:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-IS-SERIALIZED:CAPS">
+<ANCHOR id="gst-query-type-get-flags" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-type-get-flags">
+<ANCHOR id="gst-query-type-get-name" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-type-get-name">
+<ANCHOR id="gst-query-type-to-quark" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-type-to-quark">
+<ANCHOR id="gst-query-ref" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-ref">
+<ANCHOR id="gst-query-unref" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-unref">
+<ANCHOR id="gst-query-copy" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-copy">
+<ANCHOR id="gst-query-make-writable" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-make-writable">
+<ANCHOR id="gst-query-is-writable" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-is-writable">
+<ANCHOR id="gst-query-replace" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-replace">
+<ANCHOR id="gst-query-writable-structure" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-writable-structure">
+<ANCHOR id="gst-query-new-custom" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-custom">
+<ANCHOR id="gst-query-get-structure" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-structure">
+<ANCHOR id="gst-query-new-convert" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-convert">
+<ANCHOR id="gst-query-set-convert" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-convert">
+<ANCHOR id="gst-query-parse-convert" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-convert">
+<ANCHOR id="gst-query-new-position" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-position">
+<ANCHOR id="gst-query-set-position" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-position">
+<ANCHOR id="gst-query-parse-position" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-position">
+<ANCHOR id="gst-query-new-duration" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-duration">
+<ANCHOR id="gst-query-set-duration" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-duration">
+<ANCHOR id="gst-query-parse-duration" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-duration">
+<ANCHOR id="gst-query-new-latency" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-latency">
+<ANCHOR id="gst-query-parse-latency" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-latency">
+<ANCHOR id="gst-query-set-latency" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-latency">
+<ANCHOR id="gst-query-new-seeking" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-seeking">
+<ANCHOR id="gst-query-set-seeking" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-seeking">
+<ANCHOR id="gst-query-parse-seeking" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-seeking">
+<ANCHOR id="gst-query-new-formats" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-formats">
+<ANCHOR id="gst-query-set-formats" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-formats">
+<ANCHOR id="gst-query-set-formatsv" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-formatsv">
+<ANCHOR id="gst-query-parse-n-formats" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-n-formats">
+<ANCHOR id="gst-query-parse-nth-format" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-format">
+<ANCHOR id="gst-query-new-segment" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-segment">
+<ANCHOR id="gst-query-set-segment" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-segment">
+<ANCHOR id="gst-query-parse-segment" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-segment">
+<ANCHOR id="gst-query-new-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-caps">
+<ANCHOR id="gst-query-parse-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-caps">
+<ANCHOR id="gst-query-set-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-caps-result">
+<ANCHOR id="gst-query-parse-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-caps-result">
+<ANCHOR id="gst-query-intersect-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-intersect-caps-result">
+<ANCHOR id="gst-query-new-accept-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-accept-caps">
+<ANCHOR id="gst-query-parse-accept-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-accept-caps">
+<ANCHOR id="gst-query-set-accept-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-accept-caps-result">
+<ANCHOR id="gst-query-parse-accept-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-accept-caps-result">
+<ANCHOR id="GstBufferingMode" href="gstreamer-1.0/gstreamer-GstQuery.html#GstBufferingMode">
+<ANCHOR id="GST-BUFFERING-STREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-BUFFERING-STREAM:CAPS">
+<ANCHOR id="GST-BUFFERING-DOWNLOAD:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-BUFFERING-DOWNLOAD:CAPS">
+<ANCHOR id="GST-BUFFERING-TIMESHIFT:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-BUFFERING-TIMESHIFT:CAPS">
+<ANCHOR id="GST-BUFFERING-LIVE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-BUFFERING-LIVE:CAPS">
+<ANCHOR id="gst-query-new-buffering" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-buffering">
+<ANCHOR id="gst-query-set-buffering-percent" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-buffering-percent">
+<ANCHOR id="gst-query-parse-buffering-percent" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-buffering-percent">
+<ANCHOR id="gst-query-set-buffering-stats" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-buffering-stats">
+<ANCHOR id="gst-query-parse-buffering-stats" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-buffering-stats">
+<ANCHOR id="gst-query-set-buffering-range" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-buffering-range">
+<ANCHOR id="gst-query-parse-buffering-range" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-buffering-range">
+<ANCHOR id="gst-query-add-buffering-range" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-buffering-range">
+<ANCHOR id="gst-query-get-n-buffering-ranges" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges">
+<ANCHOR id="gst-query-parse-nth-buffering-range" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-buffering-range">
+<ANCHOR id="gst-query-new-uri" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-uri">
+<ANCHOR id="gst-query-parse-uri" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-uri">
+<ANCHOR id="gst-query-set-uri" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-uri">
+<ANCHOR id="gst-query-new-allocation" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-allocation">
+<ANCHOR id="gst-query-parse-allocation" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-allocation">
+<ANCHOR id="gst-query-add-allocation-pool" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-allocation-pool">
+<ANCHOR id="gst-query-get-n-allocation-pools" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-allocation-pools">
+<ANCHOR id="gst-query-parse-nth-allocation-pool" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-pool">
+<ANCHOR id="gst-query-set-nth-allocation-pool" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-nth-allocation-pool">
+<ANCHOR id="gst-query-add-allocation-param" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-allocation-param">
+<ANCHOR id="gst-query-get-n-allocation-params" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-allocation-params">
+<ANCHOR id="gst-query-parse-nth-allocation-param" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-param">
+<ANCHOR id="gst-query-set-nth-allocation-param" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-nth-allocation-param">
+<ANCHOR id="gst-query-add-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-allocation-meta">
+<ANCHOR id="gst-query-get-n-allocation-metas" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-allocation-metas">
+<ANCHOR id="gst-query-parse-nth-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta">
+<ANCHOR id="gst-query-remove-nth-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta">
+<ANCHOR id="gst-query-has-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-allocation-meta">
+<ANCHOR id="GstSchedulingFlags" href="gstreamer-1.0/gstreamer-GstQuery.html#GstSchedulingFlags">
+<ANCHOR id="GST-SCHEDULING-FLAG-SEEKABLE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEEKABLE:CAPS">
+<ANCHOR id="GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS">
+<ANCHOR id="gst-query-new-scheduling" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-scheduling">
+<ANCHOR id="gst-query-parse-scheduling" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-scheduling">
+<ANCHOR id="gst-query-set-scheduling" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-scheduling">
+<ANCHOR id="gst-query-add-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-add-scheduling-mode">
+<ANCHOR id="gst-query-get-n-scheduling-modes" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-scheduling-modes">
+<ANCHOR id="gst-query-parse-nth-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode">
+<ANCHOR id="gst-query-has-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-scheduling-mode">
+<ANCHOR id="gst-query-new-drain" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-drain">
+<ANCHOR id="gst-query-new-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-toc">
+<ANCHOR id="gst-query-parse-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-toc">
+<ANCHOR id="gst-query-set-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-toc">
+<ANCHOR id="gstreamer-GstQuery.see-also" href="gstreamer-1.0/gstreamer-GstQuery.html#gstreamer-GstQuery.see-also">
+<ANCHOR id="GstRegistry" href="gstreamer-1.0/GstRegistry.html">
+<ANCHOR id="GstRegistry.synopsis" href="gstreamer-1.0/GstRegistry.html#GstRegistry.synopsis">
+<ANCHOR id="GstRegistry.object-hierarchy" href="gstreamer-1.0/GstRegistry.html#GstRegistry.object-hierarchy">
+<ANCHOR id="GstRegistry.signals" href="gstreamer-1.0/GstRegistry.html#GstRegistry.signals">
+<ANCHOR id="GstRegistry.description" href="gstreamer-1.0/GstRegistry.html#GstRegistry.description">
+<ANCHOR id="GstRegistry.details" href="gstreamer-1.0/GstRegistry.html#GstRegistry.details">
+<ANCHOR id="GstRegistry-struct" href="gstreamer-1.0/GstRegistry.html#GstRegistry-struct">
+<ANCHOR id="gst-registry-get" href="gstreamer-1.0/GstRegistry.html#gst-registry-get">
+<ANCHOR id="gst-registry-get-feature-list" href="gstreamer-1.0/GstRegistry.html#gst-registry-get-feature-list">
+<ANCHOR id="gst-registry-get-feature-list-cookie" href="gstreamer-1.0/GstRegistry.html#gst-registry-get-feature-list-cookie">
+<ANCHOR id="gst-registry-get-feature-list-by-plugin" href="gstreamer-1.0/GstRegistry.html#gst-registry-get-feature-list-by-plugin">
+<ANCHOR id="gst-registry-get-path-list" href="gstreamer-1.0/GstRegistry.html#gst-registry-get-path-list">
+<ANCHOR id="gst-registry-get-plugin-list" href="gstreamer-1.0/GstRegistry.html#gst-registry-get-plugin-list">
+<ANCHOR id="gst-registry-add-plugin" href="gstreamer-1.0/GstRegistry.html#gst-registry-add-plugin">
+<ANCHOR id="gst-registry-remove-plugin" href="gstreamer-1.0/GstRegistry.html#gst-registry-remove-plugin">
+<ANCHOR id="gst-registry-plugin-filter" href="gstreamer-1.0/GstRegistry.html#gst-registry-plugin-filter">
+<ANCHOR id="gst-registry-feature-filter" href="gstreamer-1.0/GstRegistry.html#gst-registry-feature-filter">
+<ANCHOR id="gst-registry-find-plugin" href="gstreamer-1.0/GstRegistry.html#gst-registry-find-plugin">
+<ANCHOR id="gst-registry-find-feature" href="gstreamer-1.0/GstRegistry.html#gst-registry-find-feature">
+<ANCHOR id="gst-registry-lookup-feature" href="gstreamer-1.0/GstRegistry.html#gst-registry-lookup-feature">
+<ANCHOR id="gst-registry-add-path" href="gstreamer-1.0/GstRegistry.html#gst-registry-add-path">
+<ANCHOR id="gst-registry-scan-path" href="gstreamer-1.0/GstRegistry.html#gst-registry-scan-path">
+<ANCHOR id="gst-registry-lookup" href="gstreamer-1.0/GstRegistry.html#gst-registry-lookup">
+<ANCHOR id="gst-registry-remove-feature" href="gstreamer-1.0/GstRegistry.html#gst-registry-remove-feature">
+<ANCHOR id="gst-registry-add-feature" href="gstreamer-1.0/GstRegistry.html#gst-registry-add-feature">
+<ANCHOR id="gst-registry-check-feature-version" href="gstreamer-1.0/GstRegistry.html#gst-registry-check-feature-version">
+<ANCHOR id="GstRegistry.signal-details" href="gstreamer-1.0/GstRegistry.html#GstRegistry.signal-details">
+<ANCHOR id="GstRegistry-feature-added" href="gstreamer-1.0/GstRegistry.html#GstRegistry-feature-added">
+<ANCHOR id="GstRegistry-plugin-added" href="gstreamer-1.0/GstRegistry.html#GstRegistry-plugin-added">
+<ANCHOR id="GstRegistry.see-also" href="gstreamer-1.0/GstRegistry.html#GstRegistry.see-also">
+<ANCHOR id="gstreamer-GstSegment" href="gstreamer-1.0/gstreamer-GstSegment.html">
+<ANCHOR id="gstreamer-GstSegment.synopsis" href="gstreamer-1.0/gstreamer-GstSegment.html#gstreamer-GstSegment.synopsis">
+<ANCHOR id="gstreamer-GstSegment.description" href="gstreamer-1.0/gstreamer-GstSegment.html#gstreamer-GstSegment.description">
+<ANCHOR id="gstreamer-GstSegment.details" href="gstreamer-1.0/gstreamer-GstSegment.html#gstreamer-GstSegment.details">
+<ANCHOR id="GstSegment" href="gstreamer-1.0/gstreamer-GstSegment.html#GstSegment">
+<ANCHOR id="GstSegmentFlags" href="gstreamer-1.0/gstreamer-GstSegment.html#GstSegmentFlags">
+<ANCHOR id="GST-SEGMENT-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-NONE:CAPS">
+<ANCHOR id="GST-SEGMENT-FLAG-RESET:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-RESET:CAPS">
+<ANCHOR id="GST-SEGMENT-FLAG-SKIP:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SKIP:CAPS">
+<ANCHOR id="gst-segment-clip" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-clip">
+<ANCHOR id="gst-segment-init" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-init">
+<ANCHOR id="gst-segment-new" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-new">
+<ANCHOR id="gst-segment-copy" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-copy">
+<ANCHOR id="gst-segment-free" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-free">
+<ANCHOR id="gst-segment-do-seek" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-do-seek">
+<ANCHOR id="gst-segment-to-running-time" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-to-running-time">
+<ANCHOR id="gst-segment-to-stream-time" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-to-stream-time">
+<ANCHOR id="gst-segment-to-position" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-to-position">
+<ANCHOR id="gst-segment-set-running-time" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-set-running-time">
+<ANCHOR id="gst-segment-copy-into" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-copy-into">
+<ANCHOR id="gstreamer-GstSegment.see-also" href="gstreamer-1.0/gstreamer-GstSegment.html#gstreamer-GstSegment.see-also">
+<ANCHOR id="gstreamer-GstStructure" href="gstreamer-1.0/gstreamer-GstStructure.html">
+<ANCHOR id="gstreamer-GstStructure.synopsis" href="gstreamer-1.0/gstreamer-GstStructure.html#gstreamer-GstStructure.synopsis">
+<ANCHOR id="gstreamer-GstStructure.description" href="gstreamer-1.0/gstreamer-GstStructure.html#gstreamer-GstStructure.description">
+<ANCHOR id="gstreamer-GstStructure.details" href="gstreamer-1.0/gstreamer-GstStructure.html#gstreamer-GstStructure.details">
+<ANCHOR id="GstStructure" href="gstreamer-1.0/gstreamer-GstStructure.html#GstStructure">
+<ANCHOR id="GstStructureForeachFunc" href="gstreamer-1.0/gstreamer-GstStructure.html#GstStructureForeachFunc">
+<ANCHOR id="GstStructureMapFunc" href="gstreamer-1.0/gstreamer-GstStructure.html#GstStructureMapFunc">
+<ANCHOR id="gst-structure-new-empty" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new-empty">
+<ANCHOR id="gst-structure-new-id-empty" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new-id-empty">
+<ANCHOR id="gst-structure-new" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new">
+<ANCHOR id="gst-structure-new-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new-valist">
+<ANCHOR id="gst-structure-new-id" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-new-id">
+<ANCHOR id="gst-structure-copy" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-copy">
+<ANCHOR id="gst-structure-free" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-free">
+<ANCHOR id="gst-structure-get-name" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-name">
+<ANCHOR id="gst-structure-has-name" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-has-name">
+<ANCHOR id="gst-structure-set-name" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-set-name">
+<ANCHOR id="gst-structure-get-name-id" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-name-id">
+<ANCHOR id="gst-structure-id-get" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-get">
+<ANCHOR id="gst-structure-id-get-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-get-valist">
+<ANCHOR id="gst-structure-id-get-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-get-value">
+<ANCHOR id="gst-structure-id-set-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-set-value">
+<ANCHOR id="gst-structure-id-take-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-take-value">
+<ANCHOR id="gst-structure-get" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get">
+<ANCHOR id="gst-structure-get-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-valist">
+<ANCHOR id="gst-structure-get-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-value">
+<ANCHOR id="gst-structure-set-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-set-value">
+<ANCHOR id="gst-structure-take-value" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-take-value">
+<ANCHOR id="gst-structure-set" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-set">
+<ANCHOR id="gst-structure-set-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-set-valist">
+<ANCHOR id="gst-structure-id-set" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-set">
+<ANCHOR id="gst-structure-id-set-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-set-valist">
+<ANCHOR id="gst-structure-remove-field" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-remove-field">
+<ANCHOR id="gst-structure-remove-fields" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-remove-fields">
+<ANCHOR id="gst-structure-remove-fields-valist" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-remove-fields-valist">
+<ANCHOR id="gst-structure-remove-all-fields" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-remove-all-fields">
+<ANCHOR id="gst-structure-get-field-type" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-field-type">
+<ANCHOR id="gst-structure-foreach" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-foreach">
+<ANCHOR id="gst-structure-n-fields" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-n-fields">
+<ANCHOR id="gst-structure-has-field" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-has-field">
+<ANCHOR id="gst-structure-has-field-typed" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-has-field-typed">
+<ANCHOR id="gst-structure-is-equal" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-is-equal">
+<ANCHOR id="gst-structure-is-subset" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-is-subset">
+<ANCHOR id="gst-structure-can-intersect" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-can-intersect">
+<ANCHOR id="gst-structure-intersect" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-intersect">
+<ANCHOR id="gst-structure-id-has-field" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-has-field">
+<ANCHOR id="gst-structure-id-has-field-typed" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-id-has-field-typed">
+<ANCHOR id="gst-structure-get-boolean" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-boolean">
+<ANCHOR id="gst-structure-get-int" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-int">
+<ANCHOR id="gst-structure-get-uint" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-uint">
+<ANCHOR id="gst-structure-get-double" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-double">
+<ANCHOR id="gst-structure-get-string" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-string">
+<ANCHOR id="gst-structure-get-date" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-date">
+<ANCHOR id="gst-structure-get-date-time" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-date-time">
+<ANCHOR id="gst-structure-get-clock-time" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-clock-time">
+<ANCHOR id="gst-structure-get-enum" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-enum">
+<ANCHOR id="gst-structure-get-fraction" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-get-fraction">
+<ANCHOR id="gst-structure-map-in-place" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-map-in-place">
+<ANCHOR id="gst-structure-nth-field-name" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-nth-field-name">
+<ANCHOR id="gst-structure-set-parent-refcount" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-set-parent-refcount">
+<ANCHOR id="gst-structure-to-string" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-to-string">
+<ANCHOR id="gst-structure-from-string" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-from-string">
+<ANCHOR id="gst-structure-fixate" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate">
+<ANCHOR id="gst-structure-fixate-field" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field">
+<ANCHOR id="gst-structure-fixate-field-nearest-int" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-int">
+<ANCHOR id="gst-structure-fixate-field-nearest-double" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-double">
+<ANCHOR id="gst-structure-fixate-field-nearest-fraction" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-fraction">
+<ANCHOR id="gst-structure-fixate-field-boolean" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field-boolean">
+<ANCHOR id="gst-structure-fixate-field-string" href="gstreamer-1.0/gstreamer-GstStructure.html#gst-structure-fixate-field-string">
+<ANCHOR id="gstreamer-GstStructure.see-also" href="gstreamer-1.0/gstreamer-GstStructure.html#gstreamer-GstStructure.see-also">
+<ANCHOR id="GstSystemClock" href="gstreamer-1.0/GstSystemClock.html">
+<ANCHOR id="GstSystemClock.synopsis" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.synopsis">
+<ANCHOR id="GstSystemClock.object-hierarchy" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.object-hierarchy">
+<ANCHOR id="GstSystemClock.properties" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.properties">
+<ANCHOR id="GstSystemClock.description" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.description">
+<ANCHOR id="GstSystemClock.details" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.details">
+<ANCHOR id="GstClockType" href="gstreamer-1.0/GstSystemClock.html#GstClockType">
+<ANCHOR id="GST-CLOCK-TYPE-REALTIME:CAPS" href="gstreamer-1.0/GstSystemClock.html#GST-CLOCK-TYPE-REALTIME:CAPS">
+<ANCHOR id="GST-CLOCK-TYPE-MONOTONIC:CAPS" href="gstreamer-1.0/GstSystemClock.html#GST-CLOCK-TYPE-MONOTONIC:CAPS">
+<ANCHOR id="GstSystemClock-struct" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock-struct">
+<ANCHOR id="gst-system-clock-obtain" href="gstreamer-1.0/GstSystemClock.html#gst-system-clock-obtain">
+<ANCHOR id="GstSystemClock.property-details" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.property-details">
+<ANCHOR id="GstSystemClock--clock-type" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock--clock-type">
+<ANCHOR id="GstSystemClock.see-also" href="gstreamer-1.0/GstSystemClock.html#GstSystemClock.see-also">
+<ANCHOR id="gstreamer-GstTagList" href="gstreamer-1.0/gstreamer-GstTagList.html">
+<ANCHOR id="gstreamer-GstTagList.synopsis" href="gstreamer-1.0/gstreamer-GstTagList.html#gstreamer-GstTagList.synopsis">
+<ANCHOR id="gstreamer-GstTagList.description" href="gstreamer-1.0/gstreamer-GstTagList.html#gstreamer-GstTagList.description">
+<ANCHOR id="gstreamer-GstTagList.details" href="gstreamer-1.0/gstreamer-GstTagList.html#gstreamer-GstTagList.details">
+<ANCHOR id="GstTagList" href="gstreamer-1.0/gstreamer-GstTagList.html#GstTagList">
+<ANCHOR id="GstTagMergeMode" href="gstreamer-1.0/gstreamer-GstTagList.html#GstTagMergeMode">
+<ANCHOR id="GST-TAG-MERGE-UNDEFINED:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-UNDEFINED:CAPS">
+<ANCHOR id="GST-TAG-MERGE-REPLACE-ALL:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-REPLACE-ALL:CAPS">
+<ANCHOR id="GST-TAG-MERGE-REPLACE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS">
+<ANCHOR id="GST-TAG-MERGE-APPEND:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-APPEND:CAPS">
+<ANCHOR id="GST-TAG-MERGE-PREPEND:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-PREPEND:CAPS">
+<ANCHOR id="GST-TAG-MERGE-KEEP:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-KEEP:CAPS">
+<ANCHOR id="GST-TAG-MERGE-KEEP-ALL:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-KEEP-ALL:CAPS">
+<ANCHOR id="GST-TAG-MERGE-COUNT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MERGE-COUNT:CAPS">
+<ANCHOR id="GstTagFlag" href="gstreamer-1.0/gstreamer-GstTagList.html#GstTagFlag">
+<ANCHOR id="GST-TAG-FLAG-UNDEFINED:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-FLAG-UNDEFINED:CAPS">
+<ANCHOR id="GST-TAG-FLAG-META:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-FLAG-META:CAPS">
+<ANCHOR id="GST-TAG-FLAG-ENCODED:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-FLAG-ENCODED:CAPS">
+<ANCHOR id="GST-TAG-FLAG-DECODED:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-FLAG-DECODED:CAPS">
+<ANCHOR id="GST-TAG-FLAG-COUNT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-FLAG-COUNT:CAPS">
+<ANCHOR id="GstTagForeachFunc" href="gstreamer-1.0/gstreamer-GstTagList.html#GstTagForeachFunc">
+<ANCHOR id="GstTagMergeFunc" href="gstreamer-1.0/gstreamer-GstTagList.html#GstTagMergeFunc">
+<ANCHOR id="GST-TAG-TITLE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TITLE:CAPS">
+<ANCHOR id="GST-TAG-TITLE-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TITLE-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-ARTIST:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ARTIST:CAPS">
+<ANCHOR id="GST-TAG-ARTIST-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ARTIST-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-ALBUM:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-ARTIST:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-DATE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DATE:CAPS">
+<ANCHOR id="GST-TAG-DATE-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DATE-TIME:CAPS">
+<ANCHOR id="GST-TAG-GENRE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GENRE:CAPS">
+<ANCHOR id="GST-TAG-COMMENT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-COMMENT:CAPS">
+<ANCHOR id="GST-TAG-EXTENDED-COMMENT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS">
+<ANCHOR id="GST-TAG-TRACK-NUMBER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TRACK-NUMBER:CAPS">
+<ANCHOR id="GST-TAG-TRACK-COUNT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TRACK-COUNT:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-VOLUME-NUMBER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-NUMBER:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-VOLUME-COUNT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-COUNT:CAPS">
+<ANCHOR id="GST-TAG-LOCATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS">
+<ANCHOR id="GST-TAG-HOMEPAGE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-HOMEPAGE:CAPS">
+<ANCHOR id="GST-TAG-DESCRIPTION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DESCRIPTION:CAPS">
+<ANCHOR id="GST-TAG-VERSION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-VERSION:CAPS">
+<ANCHOR id="GST-TAG-ISRC:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ISRC:CAPS">
+<ANCHOR id="GST-TAG-ORGANIZATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ORGANIZATION:CAPS">
+<ANCHOR id="GST-TAG-COPYRIGHT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-COPYRIGHT:CAPS">
+<ANCHOR id="GST-TAG-COPYRIGHT-URI:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-COPYRIGHT-URI:CAPS">
+<ANCHOR id="GST-TAG-ENCODED-BY:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ENCODED-BY:CAPS">
+<ANCHOR id="GST-TAG-COMPOSER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-COMPOSER:CAPS">
+<ANCHOR id="GST-TAG-CONTACT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-CONTACT:CAPS">
+<ANCHOR id="GST-TAG-LICENSE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LICENSE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-URI:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LICENSE-URI:CAPS">
+<ANCHOR id="GST-TAG-PERFORMER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-PERFORMER:CAPS">
+<ANCHOR id="GST-TAG-DURATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DURATION:CAPS">
+<ANCHOR id="GST-TAG-CODEC:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS">
+<ANCHOR id="GST-TAG-VIDEO-CODEC:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS">
+<ANCHOR id="GST-TAG-AUDIO-CODEC:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS">
+<ANCHOR id="GST-TAG-SUBTITLE-CODEC:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SUBTITLE-CODEC:CAPS">
+<ANCHOR id="GST-TAG-CONTAINER-FORMAT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-CONTAINER-FORMAT:CAPS">
+<ANCHOR id="GST-TAG-BITRATE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-BITRATE:CAPS">
+<ANCHOR id="GST-TAG-NOMINAL-BITRATE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-NOMINAL-BITRATE:CAPS">
+<ANCHOR id="GST-TAG-MINIMUM-BITRATE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MINIMUM-BITRATE:CAPS">
+<ANCHOR id="GST-TAG-MAXIMUM-BITRATE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-MAXIMUM-BITRATE:CAPS">
+<ANCHOR id="GST-TAG-SERIAL:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SERIAL:CAPS">
+<ANCHOR id="GST-TAG-ENCODER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ENCODER:CAPS">
+<ANCHOR id="GST-TAG-ENCODER-VERSION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ENCODER-VERSION:CAPS">
+<ANCHOR id="GST-TAG-TRACK-GAIN:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS">
+<ANCHOR id="GST-TAG-TRACK-PEAK:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-GAIN:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS">
+<ANCHOR id="GST-TAG-ALBUM-PEAK:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS">
+<ANCHOR id="GST-TAG-REFERENCE-LEVEL:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS">
+<ANCHOR id="GST-TAG-LANGUAGE-CODE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS">
+<ANCHOR id="GST-TAG-LANGUAGE-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS">
+<ANCHOR id="GST-TAG-IMAGE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS">
+<ANCHOR id="GST-TAG-PREVIEW-IMAGE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS">
+<ANCHOR id="GST-TAG-ATTACHMENT:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS">
+<ANCHOR id="GST-TAG-BEATS-PER-MINUTE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-BEATS-PER-MINUTE:CAPS">
+<ANCHOR id="GST-TAG-KEYWORDS:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-KEYWORDS:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-NAME:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-LATITUDE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LATITUDE:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-LONGITUDE:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LONGITUDE:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-ELEVATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-ELEVATION:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-CITY:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CITY:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-COUNTRY:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-COUNTRY:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-MOVEMENT-SPEED:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-SPEED:CAPS">
+<ANCHOR id="GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS">
+<ANCHOR id="GST-TAG-SHOW-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SHOW-NAME:CAPS">
+<ANCHOR id="GST-TAG-SHOW-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SHOW-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-SHOW-EPISODE-NUMBER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SHOW-EPISODE-NUMBER:CAPS">
+<ANCHOR id="GST-TAG-SHOW-SEASON-NUMBER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-SHOW-SEASON-NUMBER:CAPS">
+<ANCHOR id="GST-TAG-LYRICS:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-LYRICS:CAPS">
+<ANCHOR id="GST-TAG-COMPOSER-SORTNAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-COMPOSER-SORTNAME:CAPS">
+<ANCHOR id="GST-TAG-GROUPING:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-GROUPING:CAPS">
+<ANCHOR id="GST-TAG-USER-RATING:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-USER-RATING:CAPS">
+<ANCHOR id="GST-TAG-DEVICE-MANUFACTURER:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DEVICE-MANUFACTURER:CAPS">
+<ANCHOR id="GST-TAG-DEVICE-MODEL:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-DEVICE-MODEL:CAPS">
+<ANCHOR id="GST-TAG-APPLICATION-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-APPLICATION-NAME:CAPS">
+<ANCHOR id="GST-TAG-APPLICATION-DATA:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS">
+<ANCHOR id="GST-TAG-IMAGE-ORIENTATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS">
+<ANCHOR id="gst-tag-register" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-register">
+<ANCHOR id="gst-tag-merge-use-first" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-use-first">
+<ANCHOR id="gst-tag-merge-strings-with-comma" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma">
+<ANCHOR id="gst-tag-exists" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-exists">
+<ANCHOR id="gst-tag-get-type" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-get-type">
+<ANCHOR id="gst-tag-get-nick" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-get-nick">
+<ANCHOR id="gst-tag-get-description" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-get-description">
+<ANCHOR id="gst-tag-get-flag" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-get-flag">
+<ANCHOR id="gst-tag-is-fixed" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-is-fixed">
+<ANCHOR id="gst-tag-list-new" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new">
+<ANCHOR id="gst-tag-list-new-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-empty">
+<ANCHOR id="gst-tag-list-new-valist" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-valist">
+<ANCHOR id="gst-tag-list-new-from-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-from-string">
+<ANCHOR id="gst-tag-list-to-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-to-string">
+<ANCHOR id="gst-is-tag-list" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-is-tag-list">
+<ANCHOR id="gst-tag-list-is-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-empty">
+<ANCHOR id="gst-tag-list-is-equal" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-equal">
+<ANCHOR id="gst-tag-list-copy" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-copy">
+<ANCHOR id="gst-tag-list-insert" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-insert">
+<ANCHOR id="gst-tag-list-merge" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-merge">
+<ANCHOR id="gst-tag-list-free" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-free">
+<ANCHOR id="gst-tag-list-get-tag-size" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-tag-size">
+<ANCHOR id="gst-tag-list-n-tags" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-n-tags">
+<ANCHOR id="gst-tag-list-nth-tag-name" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-nth-tag-name">
+<ANCHOR id="gst-tag-list-add" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-add">
+<ANCHOR id="gst-tag-list-add-value" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-add-value">
+<ANCHOR id="gst-tag-list-add-values" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-add-values">
+<ANCHOR id="gst-tag-list-add-valist" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-add-valist">
+<ANCHOR id="gst-tag-list-add-valist-values" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-add-valist-values">
+<ANCHOR id="gst-tag-list-remove-tag" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-remove-tag">
+<ANCHOR id="gst-tag-list-foreach" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-foreach">
+<ANCHOR id="gst-tag-list-get-value-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-value-index">
+<ANCHOR id="gst-tag-list-copy-value" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-copy-value">
+<ANCHOR id="gst-tag-list-get-boolean" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-boolean">
+<ANCHOR id="gst-tag-list-get-boolean-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-boolean-index">
+<ANCHOR id="gst-tag-list-get-int" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-int">
+<ANCHOR id="gst-tag-list-get-int-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-int-index">
+<ANCHOR id="gst-tag-list-get-uint" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-uint">
+<ANCHOR id="gst-tag-list-get-uint-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-uint-index">
+<ANCHOR id="gst-tag-list-get-int64" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-int64">
+<ANCHOR id="gst-tag-list-get-int64-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-int64-index">
+<ANCHOR id="gst-tag-list-get-uint64" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-uint64">
+<ANCHOR id="gst-tag-list-get-uint64-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-uint64-index">
+<ANCHOR id="gst-tag-list-get-float" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-float">
+<ANCHOR id="gst-tag-list-get-float-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-float-index">
+<ANCHOR id="gst-tag-list-get-double" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-double">
+<ANCHOR id="gst-tag-list-get-double-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-double-index">
+<ANCHOR id="gst-tag-list-get-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-string">
+<ANCHOR id="gst-tag-list-get-string-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-string-index">
+<ANCHOR id="gst-tag-list-peek-string-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-peek-string-index">
+<ANCHOR id="gst-tag-list-get-pointer" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-pointer">
+<ANCHOR id="gst-tag-list-get-pointer-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-pointer-index">
+<ANCHOR id="gst-tag-list-get-date" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date">
+<ANCHOR id="gst-tag-list-get-date-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-index">
+<ANCHOR id="gst-tag-list-get-date-time" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-time">
+<ANCHOR id="gst-tag-list-get-date-time-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-time-index">
+<ANCHOR id="gst-tag-list-get-buffer" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-buffer">
+<ANCHOR id="gst-tag-list-get-buffer-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-buffer-index">
+<ANCHOR id="GstTagSetter" href="gstreamer-1.0/GstTagSetter.html">
+<ANCHOR id="GstTagSetter.synopsis" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.synopsis">
+<ANCHOR id="GstTagSetter.object-hierarchy" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.object-hierarchy">
+<ANCHOR id="GstTagSetter.prerequisites" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.prerequisites">
+<ANCHOR id="GstTagSetter.description" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.description">
+<ANCHOR id="GstTagSetter.details" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.details">
+<ANCHOR id="GstTagSetter-struct" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter-struct">
+<ANCHOR id="GstTagSetterInterface" href="gstreamer-1.0/GstTagSetter.html#GstTagSetterInterface">
+<ANCHOR id="gst-tag-setter-reset-tags" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-reset-tags">
+<ANCHOR id="gst-tag-setter-merge-tags" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-merge-tags">
+<ANCHOR id="gst-tag-setter-add-tags" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-add-tags">
+<ANCHOR id="gst-tag-setter-add-tag-value" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-add-tag-value">
+<ANCHOR id="gst-tag-setter-add-tag-values" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-add-tag-values">
+<ANCHOR id="gst-tag-setter-add-tag-valist" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-add-tag-valist">
+<ANCHOR id="gst-tag-setter-add-tag-valist-values" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-add-tag-valist-values">
+<ANCHOR id="gst-tag-setter-get-tag-list" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-list">
+<ANCHOR id="gst-tag-setter-set-tag-merge-mode" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-set-tag-merge-mode">
+<ANCHOR id="gst-tag-setter-get-tag-merge-mode" href="gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-merge-mode">
+<ANCHOR id="GstTask" href="gstreamer-1.0/GstTask.html">
+<ANCHOR id="GstTask.synopsis" href="gstreamer-1.0/GstTask.html#GstTask.synopsis">
+<ANCHOR id="GstTask.object-hierarchy" href="gstreamer-1.0/GstTask.html#GstTask.object-hierarchy">
+<ANCHOR id="GstTask.description" href="gstreamer-1.0/GstTask.html#GstTask.description">
+<ANCHOR id="GstTask.details" href="gstreamer-1.0/GstTask.html#GstTask.details">
+<ANCHOR id="GstTask-struct" href="gstreamer-1.0/GstTask.html#GstTask-struct">
+<ANCHOR id="GstTaskFunction" href="gstreamer-1.0/GstTask.html#GstTaskFunction">
+<ANCHOR id="GstTaskState" href="gstreamer-1.0/GstTask.html#GstTaskState">
+<ANCHOR id="GST-TASK-STARTED:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-STARTED:CAPS">
+<ANCHOR id="GST-TASK-STOPPED:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-STOPPED:CAPS">
+<ANCHOR id="GST-TASK-PAUSED:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-PAUSED:CAPS">
+<ANCHOR id="GST-TASK-BROADCAST:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-BROADCAST:CAPS">
+<ANCHOR id="GST-TASK-GET-COND:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-GET-COND:CAPS">
+<ANCHOR id="GST-TASK-GET-LOCK:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-GET-LOCK:CAPS">
+<ANCHOR id="GST-TASK-SIGNAL:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-SIGNAL:CAPS">
+<ANCHOR id="GST-TASK-STATE:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-STATE:CAPS">
+<ANCHOR id="GST-TASK-WAIT:CAPS" href="gstreamer-1.0/GstTask.html#GST-TASK-WAIT:CAPS">
+<ANCHOR id="gst-task-new" href="gstreamer-1.0/GstTask.html#gst-task-new">
+<ANCHOR id="gst-task-set-lock" href="gstreamer-1.0/GstTask.html#gst-task-set-lock">
+<ANCHOR id="gst-task-set-pool" href="gstreamer-1.0/GstTask.html#gst-task-set-pool">
+<ANCHOR id="gst-task-get-pool" href="gstreamer-1.0/GstTask.html#gst-task-get-pool">
+<ANCHOR id="GstTaskThreadCallbacks" href="gstreamer-1.0/GstTask.html#GstTaskThreadCallbacks">
+<ANCHOR id="gst-task-set-thread-callbacks" href="gstreamer-1.0/GstTask.html#gst-task-set-thread-callbacks">
+<ANCHOR id="gst-task-get-state" href="gstreamer-1.0/GstTask.html#gst-task-get-state">
+<ANCHOR id="gst-task-set-state" href="gstreamer-1.0/GstTask.html#gst-task-set-state">
+<ANCHOR id="gst-task-pause" href="gstreamer-1.0/GstTask.html#gst-task-pause">
+<ANCHOR id="gst-task-start" href="gstreamer-1.0/GstTask.html#gst-task-start">
+<ANCHOR id="gst-task-stop" href="gstreamer-1.0/GstTask.html#gst-task-stop">
+<ANCHOR id="gst-task-join" href="gstreamer-1.0/GstTask.html#gst-task-join">
+<ANCHOR id="gst-task-cleanup-all" href="gstreamer-1.0/GstTask.html#gst-task-cleanup-all">
+<ANCHOR id="GstTask.see-also" href="gstreamer-1.0/GstTask.html#GstTask.see-also">
+<ANCHOR id="GstTaskPool" href="gstreamer-1.0/GstTaskPool.html">
+<ANCHOR id="GstTaskPool.synopsis" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool.synopsis">
+<ANCHOR id="GstTaskPool.object-hierarchy" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool.object-hierarchy">
+<ANCHOR id="GstTaskPool.description" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool.description">
+<ANCHOR id="GstTaskPool.details" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool.details">
+<ANCHOR id="GstTaskPool-struct" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool-struct">
+<ANCHOR id="GstTaskPoolClass" href="gstreamer-1.0/GstTaskPool.html#GstTaskPoolClass">
+<ANCHOR id="GstTaskPoolFunction" href="gstreamer-1.0/GstTaskPool.html#GstTaskPoolFunction">
+<ANCHOR id="gst-task-pool-new" href="gstreamer-1.0/GstTaskPool.html#gst-task-pool-new">
+<ANCHOR id="gst-task-pool-prepare" href="gstreamer-1.0/GstTaskPool.html#gst-task-pool-prepare">
+<ANCHOR id="gst-task-pool-push" href="gstreamer-1.0/GstTaskPool.html#gst-task-pool-push">
+<ANCHOR id="gst-task-pool-join" href="gstreamer-1.0/GstTaskPool.html#gst-task-pool-join">
+<ANCHOR id="gst-task-pool-cleanup" href="gstreamer-1.0/GstTaskPool.html#gst-task-pool-cleanup">
+<ANCHOR id="GstTaskPool.see-also" href="gstreamer-1.0/GstTaskPool.html#GstTaskPool.see-also">
+<ANCHOR id="gstreamer-GstToc" href="gstreamer-1.0/gstreamer-GstToc.html">
+<ANCHOR id="gstreamer-GstToc.synopsis" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.synopsis">
+<ANCHOR id="gstreamer-GstToc.description" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.description">
+<ANCHOR id="gstreamer-GstToc.details" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.details">
+<ANCHOR id="GstToc" href="gstreamer-1.0/gstreamer-GstToc.html#GstToc">
+<ANCHOR id="GstTocEntry" href="gstreamer-1.0/gstreamer-GstToc.html#GstTocEntry">
+<ANCHOR id="GstTocEntryType" href="gstreamer-1.0/gstreamer-GstToc.html#GstTocEntryType">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-EDITION:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-EDITION:CAPS">
+<ANCHOR id="gst-toc-entry-new" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-new">
+<ANCHOR id="gst-toc-entry-new-with-pad" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-new-with-pad">
+<ANCHOR id="gst-toc-entry-free" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-free">
+<ANCHOR id="gst-toc-new" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-new">
+<ANCHOR id="gst-toc-free" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-free">
+<ANCHOR id="gst-toc-entry-copy" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-copy">
+<ANCHOR id="gst-toc-copy" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-copy">
+<ANCHOR id="gst-toc-find-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-find-entry">
+<ANCHOR id="gst-toc-entry-get-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-start-stop">
+<ANCHOR id="gst-toc-entry-set-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-start-stop">
+<ANCHOR id="gstreamer-GstToc.see-also" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.see-also">
+<ANCHOR id="gstreamer-GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html">
+<ANCHOR id="gstreamer-GstTocSetter.synopsis" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.synopsis">
+<ANCHOR id="gstreamer-GstTocSetter.description" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.description">
+<ANCHOR id="gstreamer-GstTocSetter.details" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.details">
+<ANCHOR id="GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html#GstTocSetter">
+<ANCHOR id="GstTocSetterIFace" href="gstreamer-1.0/gstreamer-GstTocSetter.html#GstTocSetterIFace">
+<ANCHOR id="gst-toc-setter-get-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc">
+<ANCHOR id="gst-toc-setter-get-toc-copy" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy">
+<ANCHOR id="gst-toc-setter-reset-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc">
+<ANCHOR id="gst-toc-setter-set-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-set-toc">
+<ANCHOR id="gst-toc-setter-get-toc-entry" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry">
+<ANCHOR id="gst-toc-setter-get-toc-entry-copy" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy">
+<ANCHOR id="gst-toc-setter-add-toc-entry" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry">
+<ANCHOR id="gstreamer-GstTypeFind" href="gstreamer-1.0/gstreamer-GstTypeFind.html">
+<ANCHOR id="gstreamer-GstTypeFind.synopsis" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.synopsis">
+<ANCHOR id="gstreamer-GstTypeFind.description" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.description">
+<ANCHOR id="gstreamer-GstTypeFind.details" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.details">
+<ANCHOR id="GstTypeFind" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFind">
+<ANCHOR id="GstTypeFindFunction" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindFunction">
+<ANCHOR id="GstTypeFindProbability" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability">
+<ANCHOR id="GST-TYPE-FIND-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-NONE:CAPS">
+<ANCHOR id="GST-TYPE-FIND-MINIMUM:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MINIMUM:CAPS">
+<ANCHOR id="GST-TYPE-FIND-POSSIBLE:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-POSSIBLE:CAPS">
+<ANCHOR id="GST-TYPE-FIND-LIKELY:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-LIKELY:CAPS">
+<ANCHOR id="GST-TYPE-FIND-NEARLY-CERTAIN:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-NEARLY-CERTAIN:CAPS">
+<ANCHOR id="GST-TYPE-FIND-MAXIMUM:CAPS" href="gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS">
+<ANCHOR id="gst-type-find-peek" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gst-type-find-peek">
+<ANCHOR id="gst-type-find-suggest" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gst-type-find-suggest">
+<ANCHOR id="gst-type-find-suggest-simple" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gst-type-find-suggest-simple">
+<ANCHOR id="gst-type-find-get-length" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gst-type-find-get-length">
+<ANCHOR id="gst-type-find-register" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gst-type-find-register">
+<ANCHOR id="GstTypeFindFactory" href="gstreamer-1.0/GstTypeFindFactory.html">
+<ANCHOR id="GstTypeFindFactory.synopsis" href="gstreamer-1.0/GstTypeFindFactory.html#GstTypeFindFactory.synopsis">
+<ANCHOR id="GstTypeFindFactory.object-hierarchy" href="gstreamer-1.0/GstTypeFindFactory.html#GstTypeFindFactory.object-hierarchy">
+<ANCHOR id="GstTypeFindFactory.description" href="gstreamer-1.0/GstTypeFindFactory.html#GstTypeFindFactory.description">
+<ANCHOR id="GstTypeFindFactory.details" href="gstreamer-1.0/GstTypeFindFactory.html#GstTypeFindFactory.details">
+<ANCHOR id="GstTypeFindFactory-struct" href="gstreamer-1.0/GstTypeFindFactory.html#GstTypeFindFactory-struct">
+<ANCHOR id="gst-type-find-factory-get-list" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-list">
+<ANCHOR id="gst-type-find-factory-get-extensions" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-extensions">
+<ANCHOR id="gst-type-find-factory-get-caps" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-caps">
+<ANCHOR id="gst-type-find-factory-call-function" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-call-function">
+<ANCHOR id="gstreamer-GstUriHandler" href="gstreamer-1.0/gstreamer-GstUriHandler.html">
+<ANCHOR id="gstreamer-GstUriHandler.synopsis" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.synopsis">
+<ANCHOR id="GstURIHandler" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">
+<ANCHOR id="gstreamer-GstUriHandler.object-hierarchy" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.object-hierarchy">
+<ANCHOR id="gstreamer-GstUriHandler.description" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.description">
+<ANCHOR id="gstreamer-GstUriHandler.details" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.details">
+<ANCHOR id="GstURIHandler-struct" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler-struct">
+<ANCHOR id="GstURIHandlerInterface" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandlerInterface">
+<ANCHOR id="GstURIType" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIType">
+<ANCHOR id="GST-URI-UNKNOWN:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS">
+<ANCHOR id="GST-URI-SINK:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-SINK:CAPS">
+<ANCHOR id="GST-URI-SRC:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-SRC:CAPS">
+<ANCHOR id="GstURIError" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIError">
+<ANCHOR id="GST-URI-ERROR-BAD-PROTOCOL:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-PROTOCOL:CAPS">
+<ANCHOR id="GST-URI-ERROR-BAD-URI:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-URI:CAPS">
+<ANCHOR id="GST-URI-ERROR-BAD-STATE:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-STATE:CAPS">
+<ANCHOR id="GST-URI-ERROR-BAD-REFERENCE:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-REFERENCE:CAPS">
+<ANCHOR id="gst-uri-error-quark" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-error-quark">
+<ANCHOR id="GST-URI-TYPE-IS-VALID:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-TYPE-IS-VALID:CAPS">
+<ANCHOR id="gst-uri-protocol-is-valid" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-protocol-is-valid">
+<ANCHOR id="gst-uri-protocol-is-supported" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported">
+<ANCHOR id="gst-uri-is-valid" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-is-valid">
+<ANCHOR id="gst-uri-has-protocol" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-has-protocol">
+<ANCHOR id="gst-uri-get-protocol" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-get-protocol">
+<ANCHOR id="gst-uri-get-location" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-get-location">
+<ANCHOR id="gst-uri-construct" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-construct">
+<ANCHOR id="gst-filename-to-uri" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-filename-to-uri">
+<ANCHOR id="gst-element-make-from-uri" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-element-make-from-uri">
+<ANCHOR id="gst-uri-handler-get-uri-type" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type">
+<ANCHOR id="gst-uri-handler-get-protocols" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols">
+<ANCHOR id="gst-uri-handler-get-uri" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-handler-get-uri">
+<ANCHOR id="gst-uri-handler-set-uri" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gst-uri-handler-set-uri">
+<ANCHOR id="gstreamer-GstUtils" href="gstreamer-1.0/gstreamer-GstUtils.html">
+<ANCHOR id="gstreamer-GstUtils.synopsis" href="gstreamer-1.0/gstreamer-GstUtils.html#gstreamer-GstUtils.synopsis">
+<ANCHOR id="gstreamer-GstUtils.description" href="gstreamer-1.0/gstreamer-GstUtils.html#gstreamer-GstUtils.description">
+<ANCHOR id="gstreamer-GstUtils.details" href="gstreamer-1.0/gstreamer-GstUtils.html#gstreamer-GstUtils.details">
+<ANCHOR id="GST-CALL-PARENT:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS">
+<ANCHOR id="GST-CALL-PARENT-WITH-DEFAULT:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-CALL-PARENT-WITH-DEFAULT:CAPS">
+<ANCHOR id="GST-READ-UINT8:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT8:CAPS">
+<ANCHOR id="GST-READ-UINT16-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT16-LE:CAPS">
+<ANCHOR id="GST-READ-UINT16-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT16-BE:CAPS">
+<ANCHOR id="GST-READ-UINT24-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT24-LE:CAPS">
+<ANCHOR id="GST-READ-UINT24-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT24-BE:CAPS">
+<ANCHOR id="GST-READ-UINT32-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT32-LE:CAPS">
+<ANCHOR id="GST-READ-UINT32-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT32-BE:CAPS">
+<ANCHOR id="GST-READ-UINT64-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT64-LE:CAPS">
+<ANCHOR id="GST-READ-UINT64-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-UINT64-BE:CAPS">
+<ANCHOR id="GST-READ-FLOAT-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS">
+<ANCHOR id="GST-READ-FLOAT-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS">
+<ANCHOR id="GST-READ-DOUBLE-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS">
+<ANCHOR id="GST-READ-DOUBLE-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS">
+<ANCHOR id="GST-WRITE-UINT8:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT8:CAPS">
+<ANCHOR id="GST-WRITE-UINT16-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT16-LE:CAPS">
+<ANCHOR id="GST-WRITE-UINT16-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT16-BE:CAPS">
+<ANCHOR id="GST-WRITE-UINT24-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT24-LE:CAPS">
+<ANCHOR id="GST-WRITE-UINT24-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT24-BE:CAPS">
+<ANCHOR id="GST-WRITE-UINT32-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT32-LE:CAPS">
+<ANCHOR id="GST-WRITE-UINT32-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT32-BE:CAPS">
+<ANCHOR id="GST-WRITE-UINT64-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT64-LE:CAPS">
+<ANCHOR id="GST-WRITE-UINT64-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-UINT64-BE:CAPS">
+<ANCHOR id="GST-WRITE-FLOAT-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS">
+<ANCHOR id="GST-WRITE-FLOAT-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS">
+<ANCHOR id="GST-WRITE-DOUBLE-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS">
+<ANCHOR id="GST-WRITE-DOUBLE-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS">
+<ANCHOR id="GST-ROUND-UP-2:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-2:CAPS">
+<ANCHOR id="GST-ROUND-UP-4:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-4:CAPS">
+<ANCHOR id="GST-ROUND-UP-8:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-8:CAPS">
+<ANCHOR id="GST-ROUND-UP-16:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-16:CAPS">
+<ANCHOR id="GST-ROUND-UP-32:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-32:CAPS">
+<ANCHOR id="GST-ROUND-UP-64:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-UP-64:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-2:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-2:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-4:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-4:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-8:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-8:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-16:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-16:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-32:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-32:CAPS">
+<ANCHOR id="GST-ROUND-DOWN-64:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-ROUND-DOWN-64:CAPS">
+<ANCHOR id="GDOUBLE-FROM-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GDOUBLE-FROM-BE:CAPS">
+<ANCHOR id="GDOUBLE-FROM-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GDOUBLE-FROM-LE:CAPS">
+<ANCHOR id="GDOUBLE-SWAP-LE-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GDOUBLE-SWAP-LE-BE:CAPS">
+<ANCHOR id="GDOUBLE-TO-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GDOUBLE-TO-BE:CAPS">
+<ANCHOR id="GDOUBLE-TO-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GDOUBLE-TO-LE:CAPS">
+<ANCHOR id="GFLOAT-FROM-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-FROM-BE:CAPS">
+<ANCHOR id="GFLOAT-FROM-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-FROM-LE:CAPS">
+<ANCHOR id="GFLOAT-SWAP-LE-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-SWAP-LE-BE:CAPS">
+<ANCHOR id="GFLOAT-TO-BE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-TO-BE:CAPS">
+<ANCHOR id="GFLOAT-TO-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS">
+<ANCHOR id="gst-flow-get-name" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-flow-get-name">
+<ANCHOR id="gst-flow-to-quark" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-flow-to-quark">
+<ANCHOR id="gst-print-element-args" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-print-element-args">
+<ANCHOR id="gst-print-pad-caps" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-print-pad-caps">
+<ANCHOR id="gst-guint64-to-gdouble" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-guint64-to-gdouble">
+<ANCHOR id="gst-gdouble-to-guint64" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-gdouble-to-guint64">
+<ANCHOR id="gst-util-dump-mem" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-dump-mem">
+<ANCHOR id="gst-util-uint64-scale" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale">
+<ANCHOR id="gst-util-uint64-scale-round" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale-round">
+<ANCHOR id="gst-util-uint64-scale-ceil" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale-ceil">
+<ANCHOR id="gst-util-uint64-scale-int" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale-int">
+<ANCHOR id="gst-util-uint64-scale-int-round" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale-int-round">
+<ANCHOR id="gst-util-uint64-scale-int-ceil" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil">
+<ANCHOR id="gst-util-greatest-common-divisor" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-greatest-common-divisor">
+<ANCHOR id="gst-util-greatest-common-divisor-int64" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64">
+<ANCHOR id="gst-util-fraction-to-double" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-fraction-to-double">
+<ANCHOR id="gst-util-double-to-fraction" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-double-to-fraction">
+<ANCHOR id="gst-util-fraction-multiply" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-fraction-multiply">
+<ANCHOR id="gst-util-fraction-add" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-fraction-add">
+<ANCHOR id="gst-util-fraction-compare" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-fraction-compare">
+<ANCHOR id="gst-util-seqnum-next" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-seqnum-next">
+<ANCHOR id="gst-util-seqnum-compare" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-seqnum-compare">
+<ANCHOR id="gst-util-set-object-arg" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-set-object-arg">
+<ANCHOR id="gst-util-set-value-from-string" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-set-value-from-string">
+<ANCHOR id="gst-util-get-timestamp" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-get-timestamp">
+<ANCHOR id="GstSearchMode" href="gstreamer-1.0/gstreamer-GstUtils.html#GstSearchMode">
+<ANCHOR id="GST-SEARCH-MODE-EXACT:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-SEARCH-MODE-EXACT:CAPS">
+<ANCHOR id="GST-SEARCH-MODE-BEFORE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-SEARCH-MODE-BEFORE:CAPS">
+<ANCHOR id="GST-SEARCH-MODE-AFTER:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GST-SEARCH-MODE-AFTER:CAPS">
+<ANCHOR id="gst-util-array-binary-search" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-array-binary-search">
+<ANCHOR id="gstreamer-GstValue" href="gstreamer-1.0/gstreamer-GstValue.html">
+<ANCHOR id="gstreamer-GstValue.synopsis" href="gstreamer-1.0/gstreamer-GstValue.html#gstreamer-GstValue.synopsis">
+<ANCHOR id="gstreamer-GstValue.description" href="gstreamer-1.0/gstreamer-GstValue.html#gstreamer-GstValue.description">
+<ANCHOR id="gstreamer-GstValue.details" href="gstreamer-1.0/gstreamer-GstValue.html#gstreamer-GstValue.details">
+<ANCHOR id="GST-MAKE-FOURCC:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS">
+<ANCHOR id="GST-STR-FOURCC:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-STR-FOURCC:CAPS">
+<ANCHOR id="GST-FOURCC-FORMAT:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS">
+<ANCHOR id="GST-FOURCC-ARGS:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS">
+<ANCHOR id="GST-VALUE-HOLDS-INT-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-INT-RANGE:CAPS">
+<ANCHOR id="GST-TYPE-INT-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-INT-RANGE:CAPS">
+<ANCHOR id="gst-value-set-int-range" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-int-range">
+<ANCHOR id="gst-value-get-int-range-min" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int-range-min">
+<ANCHOR id="gst-value-get-int-range-max" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int-range-max">
+<ANCHOR id="gst-value-set-int-range-step" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-int-range-step">
+<ANCHOR id="gst-value-get-int-range-step" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int-range-step">
+<ANCHOR id="GST-VALUE-HOLDS-BITMASK:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-BITMASK:CAPS">
+<ANCHOR id="GST-TYPE-BITMASK:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS">
+<ANCHOR id="gst-value-set-bitmask" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-bitmask">
+<ANCHOR id="gst-value-get-bitmask" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-bitmask">
+<ANCHOR id="GST-VALUE-HOLDS-INT64-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS">
+<ANCHOR id="GST-TYPE-INT64-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS">
+<ANCHOR id="gst-value-set-int64-range" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-int64-range">
+<ANCHOR id="gst-value-get-int64-range-min" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int64-range-min">
+<ANCHOR id="gst-value-get-int64-range-max" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int64-range-max">
+<ANCHOR id="gst-value-set-int64-range-step" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-int64-range-step">
+<ANCHOR id="gst-value-get-int64-range-step" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-int64-range-step">
+<ANCHOR id="GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS">
+<ANCHOR id="GST-TYPE-DOUBLE-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS">
+<ANCHOR id="gst-value-set-double-range" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-double-range">
+<ANCHOR id="gst-value-get-double-range-min" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-double-range-min">
+<ANCHOR id="gst-value-get-double-range-max" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-double-range-max">
+<ANCHOR id="GST-VALUE-HOLDS-LIST:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-LIST:CAPS">
+<ANCHOR id="GST-TYPE-LIST:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-LIST:CAPS">
+<ANCHOR id="GST-VALUE-HOLDS-ARRAY:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-ARRAY:CAPS">
+<ANCHOR id="GST-TYPE-ARRAY:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS">
+<ANCHOR id="gst-value-list-append-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-append-value">
+<ANCHOR id="gst-value-list-prepend-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-prepend-value">
+<ANCHOR id="gst-value-list-concat" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-concat">
+<ANCHOR id="gst-value-list-merge" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-merge">
+<ANCHOR id="gst-value-list-get-size" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-get-size">
+<ANCHOR id="gst-value-list-get-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-list-get-value">
+<ANCHOR id="GST-VALUE-HOLDS-FRACTION:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-FRACTION:CAPS">
+<ANCHOR id="GST-TYPE-FRACTION:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS">
+<ANCHOR id="gst-value-set-fraction" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-fraction">
+<ANCHOR id="gst-value-get-fraction-numerator" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-fraction-numerator">
+<ANCHOR id="gst-value-get-fraction-denominator" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-fraction-denominator">
+<ANCHOR id="gst-value-fraction-multiply" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-fraction-multiply">
+<ANCHOR id="gst-value-fraction-subtract" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-fraction-subtract">
+<ANCHOR id="GST-VALUE-HOLDS-FRACTION-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-FRACTION-RANGE:CAPS">
+<ANCHOR id="GST-TYPE-FRACTION-RANGE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-TYPE-FRACTION-RANGE:CAPS">
+<ANCHOR id="gst-value-set-fraction-range" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-fraction-range">
+<ANCHOR id="gst-value-get-fraction-range-min" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-fraction-range-min">
+<ANCHOR id="gst-value-get-fraction-range-max" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-fraction-range-max">
+<ANCHOR id="gst-value-set-fraction-range-full" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-fraction-range-full">
+<ANCHOR id="GST-VALUE-HOLDS-DATE-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS">
+<ANCHOR id="GST-VALUE-HOLDS-CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS">
+<ANCHOR id="gst-value-set-caps" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-caps">
+<ANCHOR id="gst-value-get-caps" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-caps">
+<ANCHOR id="GST-VALUE-HOLDS-STRUCTURE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS">
+<ANCHOR id="gst-value-set-structure" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-structure">
+<ANCHOR id="gst-value-get-structure" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-structure">
+<ANCHOR id="GST-VALUE-HOLDS-BUFFER:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-BUFFER:CAPS">
+<ANCHOR id="gst-value-get-buffer" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-buffer">
+<ANCHOR id="gst-value-set-buffer" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-buffer">
+<ANCHOR id="gst-value-take-buffer" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-take-buffer">
+<ANCHOR id="GST-VALUE-HOLDS-SAMPLE:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-HOLDS-SAMPLE:CAPS">
+<ANCHOR id="gst-value-get-sample" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-get-sample">
+<ANCHOR id="gst-value-set-sample" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-set-sample">
+<ANCHOR id="gst-value-take-sample" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-take-sample">
+<ANCHOR id="GST-VALUE-LESS-THAN:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-LESS-THAN:CAPS">
+<ANCHOR id="GST-VALUE-EQUAL:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-EQUAL:CAPS">
+<ANCHOR id="GST-VALUE-GREATER-THAN:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-GREATER-THAN:CAPS">
+<ANCHOR id="GST-VALUE-UNORDERED:CAPS" href="gstreamer-1.0/gstreamer-GstValue.html#GST-VALUE-UNORDERED:CAPS">
+<ANCHOR id="GstValueCompareFunc" href="gstreamer-1.0/gstreamer-GstValue.html#GstValueCompareFunc">
+<ANCHOR id="GstValueSerializeFunc" href="gstreamer-1.0/gstreamer-GstValue.html#GstValueSerializeFunc">
+<ANCHOR id="GstValueDeserializeFunc" href="gstreamer-1.0/gstreamer-GstValue.html#GstValueDeserializeFunc">
+<ANCHOR id="GstValueTable" href="gstreamer-1.0/gstreamer-GstValue.html#GstValueTable">
+<ANCHOR id="gst-value-is-fixed" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-is-fixed">
+<ANCHOR id="gst-value-register" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-register">
+<ANCHOR id="gst-value-init-and-copy" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-init-and-copy">
+<ANCHOR id="gst-value-serialize" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-serialize">
+<ANCHOR id="gst-value-deserialize" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-deserialize">
+<ANCHOR id="gst-value-compare" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-compare">
+<ANCHOR id="gst-value-can-compare" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-can-compare">
+<ANCHOR id="gst-value-union" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-union">
+<ANCHOR id="gst-value-can-union" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-can-union">
+<ANCHOR id="gst-value-subtract" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-subtract">
+<ANCHOR id="gst-value-can-subtract" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-can-subtract">
+<ANCHOR id="gst-value-intersect" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-intersect">
+<ANCHOR id="gst-value-can-intersect" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-can-intersect">
+<ANCHOR id="gst-value-is-subset" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-is-subset">
+<ANCHOR id="gst-value-array-append-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-array-append-value">
+<ANCHOR id="gst-value-array-get-size" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-array-get-size">
+<ANCHOR id="gst-value-array-get-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-array-get-value">
+<ANCHOR id="gst-value-array-prepend-value" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-array-prepend-value">
+<ANCHOR id="gst-value-fixate" href="gstreamer-1.0/gstreamer-GstValue.html#gst-value-fixate">
+<ANCHOR id="gstreamer-GstVersion" href="gstreamer-1.0/gstreamer-GstVersion.html">
+<ANCHOR id="gstreamer-GstVersion.synopsis" href="gstreamer-1.0/gstreamer-GstVersion.html#gstreamer-GstVersion.synopsis">
+<ANCHOR id="gstreamer-GstVersion.description" href="gstreamer-1.0/gstreamer-GstVersion.html#gstreamer-GstVersion.description">
+<ANCHOR id="gstreamer-GstVersion.details" href="gstreamer-1.0/gstreamer-GstVersion.html#gstreamer-GstVersion.details">
+<ANCHOR id="GST-VERSION-MAJOR:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-VERSION-MAJOR:CAPS">
+<ANCHOR id="GST-VERSION-MINOR:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-VERSION-MINOR:CAPS">
+<ANCHOR id="GST-VERSION-MICRO:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-VERSION-MICRO:CAPS">
+<ANCHOR id="GST-VERSION-NANO:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-VERSION-NANO:CAPS">
+<ANCHOR id="GST-CHECK-VERSION:CAPS" href="gstreamer-1.0/gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS">
+<ANCHOR id="gstreamer-GstInfo" href="gstreamer-1.0/gstreamer-GstInfo.html">
+<ANCHOR id="gstreamer-GstInfo.synopsis" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.synopsis">
+<ANCHOR id="gstreamer-GstInfo.description" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.description">
+<ANCHOR id="gstreamer-GstInfo.details" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.details">
+<ANCHOR id="GstDebugLevel" href="gstreamer-1.0/gstreamer-GstInfo.html#GstDebugLevel">
+<ANCHOR id="GST-LEVEL-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-NONE:CAPS">
+<ANCHOR id="GST-LEVEL-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-ERROR:CAPS">
+<ANCHOR id="GST-LEVEL-WARNING:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-WARNING:CAPS">
+<ANCHOR id="GST-LEVEL-FIXME:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-FIXME:CAPS">
+<ANCHOR id="GST-LEVEL-INFO:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-INFO:CAPS">
+<ANCHOR id="GST-LEVEL-DEBUG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-DEBUG:CAPS">
+<ANCHOR id="GST-LEVEL-LOG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-LOG:CAPS">
+<ANCHOR id="GST-LEVEL-TRACE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-TRACE:CAPS">
+<ANCHOR id="GST-LEVEL-MEMDUMP:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-MEMDUMP:CAPS">
+<ANCHOR id="GST-LEVEL-COUNT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-COUNT:CAPS">
+<ANCHOR id="GST-LEVEL-DEFAULT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LEVEL-DEFAULT:CAPS">
+<ANCHOR id="GstDebugColorFlags" href="gstreamer-1.0/gstreamer-GstInfo.html#GstDebugColorFlags">
+<ANCHOR id="GST-DEBUG-FG-BLACK:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-BLACK:CAPS">
+<ANCHOR id="GST-DEBUG-FG-RED:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-RED:CAPS">
+<ANCHOR id="GST-DEBUG-FG-GREEN:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-GREEN:CAPS">
+<ANCHOR id="GST-DEBUG-FG-YELLOW:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-YELLOW:CAPS">
+<ANCHOR id="GST-DEBUG-FG-BLUE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-BLUE:CAPS">
+<ANCHOR id="GST-DEBUG-FG-MAGENTA:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-MAGENTA:CAPS">
+<ANCHOR id="GST-DEBUG-FG-CYAN:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-CYAN:CAPS">
+<ANCHOR id="GST-DEBUG-FG-WHITE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FG-WHITE:CAPS">
+<ANCHOR id="GST-DEBUG-BG-BLACK:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-BLACK:CAPS">
+<ANCHOR id="GST-DEBUG-BG-RED:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-RED:CAPS">
+<ANCHOR id="GST-DEBUG-BG-GREEN:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-GREEN:CAPS">
+<ANCHOR id="GST-DEBUG-BG-YELLOW:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-YELLOW:CAPS">
+<ANCHOR id="GST-DEBUG-BG-BLUE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-BLUE:CAPS">
+<ANCHOR id="GST-DEBUG-BG-MAGENTA:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-MAGENTA:CAPS">
+<ANCHOR id="GST-DEBUG-BG-CYAN:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-CYAN:CAPS">
+<ANCHOR id="GST-DEBUG-BG-WHITE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BG-WHITE:CAPS">
+<ANCHOR id="GST-DEBUG-BOLD:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BOLD:CAPS">
+<ANCHOR id="GST-DEBUG-UNDERLINE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-UNDERLINE:CAPS">
+<ANCHOR id="GstDebugCategory" href="gstreamer-1.0/gstreamer-GstInfo.html#GstDebugCategory">
+<ANCHOR id="GstDebugGraphDetails" href="gstreamer-1.0/gstreamer-GstInfo.html#GstDebugGraphDetails">
+<ANCHOR id="GST-DEBUG-GRAPH-SHOW-MEDIA-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-MEDIA-TYPE:CAPS">
+<ANCHOR id="GST-DEBUG-GRAPH-SHOW-CAPS-DETAILS:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-CAPS-DETAILS:CAPS">
+<ANCHOR id="GST-DEBUG-GRAPH-SHOW-NON-DEFAULT-PARAMS:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-NON-DEFAULT-PARAMS:CAPS">
+<ANCHOR id="GST-DEBUG-GRAPH-SHOW-STATES:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-STATES:CAPS">
+<ANCHOR id="GST-DEBUG-GRAPH-SHOW-ALL:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-GRAPH-SHOW-ALL:CAPS">
+<ANCHOR id="GST-STR-NULL:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-STR-NULL:CAPS">
+<ANCHOR id="GST-DEBUG-PAD-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-PAD-NAME:CAPS">
+<ANCHOR id="GST-FUNCTION:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-FUNCTION:CAPS">
+<ANCHOR id="GstLogFunction" href="gstreamer-1.0/gstreamer-GstInfo.html#GstLogFunction">
+<ANCHOR id="gst-debug-log" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-log">
+<ANCHOR id="gst-debug-log-valist" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-log-valist">
+<ANCHOR id="gst-debug-message-get" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-message-get">
+<ANCHOR id="gst-debug-log-default" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-log-default">
+<ANCHOR id="gst-debug-level-get-name" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-level-get-name">
+<ANCHOR id="gst-debug-add-log-function" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-add-log-function">
+<ANCHOR id="gst-debug-remove-log-function" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-remove-log-function">
+<ANCHOR id="gst-debug-remove-log-function-by-data" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-remove-log-function-by-data">
+<ANCHOR id="gst-debug-set-active" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-set-active">
+<ANCHOR id="gst-debug-is-active" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-is-active">
+<ANCHOR id="gst-debug-set-colored" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-set-colored">
+<ANCHOR id="gst-debug-is-colored" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-is-colored">
+<ANCHOR id="gst-debug-set-default-threshold" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-set-default-threshold">
+<ANCHOR id="gst-debug-get-default-threshold" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-get-default-threshold">
+<ANCHOR id="gst-debug-set-threshold-for-name" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-set-threshold-for-name">
+<ANCHOR id="gst-debug-unset-threshold-for-name" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-unset-threshold-for-name">
+<ANCHOR id="GST-DEBUG-CATEGORY:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY:CAPS">
+<ANCHOR id="GST-DEBUG-CATEGORY-EXTERN:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-EXTERN:CAPS">
+<ANCHOR id="GST-DEBUG-CATEGORY-STATIC:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">
+<ANCHOR id="GST-DEBUG-CATEGORY-INIT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">
+<ANCHOR id="GST-DEBUG-CATEGORY-GET:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS">
+<ANCHOR id="gst-debug-category-free" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-free">
+<ANCHOR id="gst-debug-category-set-threshold" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-set-threshold">
+<ANCHOR id="gst-debug-category-reset-threshold" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-reset-threshold">
+<ANCHOR id="gst-debug-category-get-threshold" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-get-threshold">
+<ANCHOR id="gst-debug-category-get-name" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-get-name">
+<ANCHOR id="gst-debug-category-get-color" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-get-color">
+<ANCHOR id="gst-debug-category-get-description" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-category-get-description">
+<ANCHOR id="gst-debug-get-all-categories" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-get-all-categories">
+<ANCHOR id="gst-debug-construct-term-color" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-construct-term-color">
+<ANCHOR id="gst-debug-construct-win-color" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-construct-win-color">
+<ANCHOR id="GST-CAT-LEVEL-LOG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-LEVEL-LOG:CAPS">
+<ANCHOR id="GST-CAT-ERROR-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-ERROR-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-WARNING-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-WARNING-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-INFO-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-INFO-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-DEBUG-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-DEBUG-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-LOG-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-LOG-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-FIXME-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-FIXME-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-TRACE-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-TRACE-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-MEMDUMP-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-MEMDUMP-OBJECT:CAPS">
+<ANCHOR id="GST-CAT-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-ERROR:CAPS">
+<ANCHOR id="GST-CAT-WARNING:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-WARNING:CAPS">
+<ANCHOR id="GST-CAT-INFO:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-INFO:CAPS">
+<ANCHOR id="GST-CAT-DEBUG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-DEBUG:CAPS">
+<ANCHOR id="GST-CAT-LOG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-LOG:CAPS">
+<ANCHOR id="GST-CAT-FIXME:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-FIXME:CAPS">
+<ANCHOR id="GST-CAT-TRACE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-TRACE:CAPS">
+<ANCHOR id="GST-CAT-MEMDUMP:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-CAT-MEMDUMP:CAPS">
+<ANCHOR id="GST-ERROR-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-ERROR-OBJECT:CAPS">
+<ANCHOR id="GST-WARNING-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-WARNING-OBJECT:CAPS">
+<ANCHOR id="GST-INFO-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-INFO-OBJECT:CAPS">
+<ANCHOR id="GST-DEBUG-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-OBJECT:CAPS">
+<ANCHOR id="GST-LOG-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">
+<ANCHOR id="GST-FIXME-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-FIXME-OBJECT:CAPS">
+<ANCHOR id="GST-TRACE-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-TRACE-OBJECT:CAPS">
+<ANCHOR id="GST-MEMDUMP-OBJECT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-MEMDUMP-OBJECT:CAPS">
+<ANCHOR id="GST-ERROR:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-ERROR:CAPS">
+<ANCHOR id="GST-WARNING:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-WARNING:CAPS">
+<ANCHOR id="GST-INFO:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-INFO:CAPS">
+<ANCHOR id="GST-DEBUG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG:CAPS">
+<ANCHOR id="GST-LOG:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG:CAPS">
+<ANCHOR id="GST-FIXME:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-FIXME:CAPS">
+<ANCHOR id="GST-TRACE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-TRACE:CAPS">
+<ANCHOR id="GST-MEMDUMP:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-MEMDUMP:CAPS">
+<ANCHOR id="GST-DEBUG-REGISTER-FUNCPTR:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-REGISTER-FUNCPTR:CAPS">
+<ANCHOR id="GST-DEBUG-FUNCPTR:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR:CAPS">
+<ANCHOR id="GST-DEBUG-FUNCPTR-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR-NAME:CAPS">
+<ANCHOR id="GST-DEBUG-BIN-TO-DOT-FILE:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS">
+<ANCHOR id="GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS">
+<ANCHOR id="gst-debug-print-stack-trace" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-print-stack-trace">
+<ANCHOR id="GST-TIME-FORMAT:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS">
+<ANCHOR id="GST-TIME-ARGS:CAPS" href="gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">
+<ANCHOR id="gst-debug-bin-to-dot-file" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-bin-to-dot-file">
+<ANCHOR id="gst-debug-bin-to-dot-file-with-ts" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts">
+<ANCHOR id="gstreamer-GstInfo.see-also" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.see-also">
+<ANCHOR id="annotation-glossterm-out" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-allow-none" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-inout" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-inout">
+<ANCHOR id="annotation-glossterm-closure" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-transfer none" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-array" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-element-type" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-in" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-in">
+<ANCHOR id="annotation-glossterm-transfer container" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-transfer container">
+<ANCHOR id="annotation-glossterm-transfer full" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-scope call" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-scope call">
+<ANCHOR id="annotation-glossterm-type" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-type">
diff --git a/docs/gst/html/libgstreamer.html b/docs/gst/html/libgstreamer.html
index ad20def..a10b468 100644
--- a/docs/gst/html/libgstreamer.html
+++ b/docs/gst/html/libgstreamer.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Core Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Core Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Core Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="prev" href="gst-running.html" title="Running GStreamer Applications">
 <link rel="next" href="gstreamer-Gst.html" title="Gst">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="gst-running.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Core Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-Gst.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -34,7 +34,7 @@
 <span class="refentrytitle"><a href="GstBin.html">GstBin</a></span><span class="refpurpose"> — Base class and element that can contain other elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstBuffer.html">GstBuffer</a></span><span class="refpurpose"> — Data-passing buffer type, supporting sub-buffers.</span>
+<span class="refentrytitle"><a href="gstreamer-GstBuffer.html">GstBuffer</a></span><span class="refpurpose"> — Data-passing buffer type</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-GstBufferList.html">GstBufferList</a></span><span class="refpurpose"> — Lists of buffers for data-passing</span>
@@ -49,6 +49,9 @@
 <span class="refentrytitle"><a href="gstreamer-GstCaps.html">GstCaps</a></span><span class="refpurpose"> — Structure describing sets of media formats</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-GstSample.html">GstSample</a></span><span class="refpurpose"> — A media sample</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstChildProxy.html">GstChildProxy</a></span><span class="refpurpose"> — Interface for multi child elements.</span>
 </dt>
 <dt>
@@ -58,6 +61,12 @@
 <span class="refentrytitle"><a href="gstreamer-gstconfig.html">gstconfig</a></span><span class="refpurpose"> — Build configuration options</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="GstControlBinding.html">GstControlBinding</a></span><span class="refpurpose"> — attachment for control source sources</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GstControlSource.html">GstControlSource</a></span><span class="refpurpose"> — base class for control source sources</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstDateTime.html">GstDateTime</a></span><span class="refpurpose"> — A date, time and timezone structure</span>
 </dt>
 <dt>
@@ -74,21 +83,12 @@
                     a pipeline</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstFilter.html">GstFilter</a></span><span class="refpurpose"> — A utility function to filter GLists.</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gstreamer-GstFormat.html">GstFormat</a></span><span class="refpurpose"> — Dynamically register new data formats</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstGhostPad.html">GstGhostPad</a></span><span class="refpurpose"> — Pseudo link pads</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstIndex.html">GstIndex</a></span><span class="refpurpose"> — Generate indexes on objects</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GstIndexFactory.html">GstIndexFactory</a></span><span class="refpurpose"> — Create GstIndexes from a factory</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gstreamer-GstIterator.html">GstIterator</a></span><span class="refpurpose"> — Object to retrieve multiple elements in a threadsafe
 way.</span>
 </dt>
@@ -140,8 +140,8 @@
 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Dynamically register new query types. Provide functions
-                    to create queries, and to set and parse values in them.</span>
+<span class="refentrytitle"><a href="gstreamer-GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
+                    values in them.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstRegistry.html">GstRegistry</a></span><span class="refpurpose"> — Abstract base class for management of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> objects</span>
@@ -170,6 +170,13 @@
 <span class="refentrytitle"><a href="GstTaskPool.html">GstTaskPool</a></span><span class="refpurpose"> — Pool of GStreamer streaming threads</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-GstToc.html">GstToc</a></span><span class="refpurpose"> — Generic table of contents support</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gstreamer-GstTocSetter.html">GstTocSetter</a></span><span class="refpurpose"> — Element interface that allows setting and retrieval
+                    of the TOC</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gstreamer-GstTypeFind.html">GstTypeFind</a></span><span class="refpurpose"> — Stream type detection</span>
 </dt>
 <dt>
@@ -190,7 +197,7 @@
 </dt>
 </dl></div>
 <p>
-      libgstreamer-0.11.so provides all the core GStreamer services,
+      libgstreamer-1.0.so provides all the core GStreamer services,
       including initialization, plugin management and types,
       as well as the object hierarchy that defines elements and bins,
       along with some more specialized elements.
diff --git a/docs/gst/running.xml b/docs/gst/running.xml
index 3800437..c84b0f6 100644
--- a/docs/gst/running.xml
+++ b/docs/gst/running.xml
@@ -43,7 +43,7 @@
     <para>
 plug-ins in the user's home directory.  These are stored in a directory called
 <filename>plugins</filename> inside the
-<filename>.gstreamer-&GST_MAJORMINOR;</filename> directory in the user's
+<filename>.gstreamer-&GST_API_VERSION;</filename> directory in the user's
 home directory.
     </para>
   </listitem>
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
index 0f96f96..60d7318 100644
--- a/docs/libs/Makefile.am
+++ b/docs/libs/Makefile.am
@@ -1,7 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
 # The name of the module, e.g. 'glib'.
-#DOC_MODULE=gstreamer-libs-@GST_MAJORMINOR@
+#DOC_MODULE=gstreamer-libs-@GST_API_VERSION@
 DOC_MODULE=gstreamer-libs
 
 # don't want $(DOC_MODULE)-scan.c to be built with -Werror
@@ -43,7 +43,6 @@
 IGNORE_HFILES = \
 	gstinterpolationcontrolsourceprivate.h \
 	gstlfocontrolsourceprivate.h \
-	gstcontrollerprivate.h \
 	gstgetbits_inl.h \
 	dp-private.h
 
@@ -60,9 +59,9 @@
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = -I$(top_builddir) -I$(top_builddir)/libs $(GST_OBJ_CFLAGS)
 GTKDOC_LIBS = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 2493ab6..86eaf68 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,6 +34,23 @@
 ###########################################################################
 # thomas: except of course that we did
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -98,14 +115,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -162,10 +184,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -178,10 +202,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -195,7 +219,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -212,6 +235,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -227,7 +254,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -260,6 +286,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -315,6 +342,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -348,7 +376,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -371,7 +398,7 @@
 top_srcdir = @top_srcdir@
 
 # The name of the module, e.g. 'glib'.
-#DOC_MODULE=gstreamer-libs-@GST_MAJORMINOR@
+#DOC_MODULE=gstreamer-libs-@GST_API_VERSION@
 DOC_MODULE = gstreamer-libs
 
 # for upload-doc.mak
@@ -414,7 +441,6 @@
 IGNORE_HFILES = \
 	gstinterpolationcontrolsourceprivate.h \
 	gstlfocontrolsourceprivate.h \
-	gstcontrollerprivate.h \
 	gstgetbits_inl.h \
 	dp-private.h
 
@@ -432,9 +458,9 @@
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = -I$(top_builddir) -I$(top_builddir)/libs $(GST_OBJ_CFLAGS)
 GTKDOC_LIBS = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
@@ -456,7 +482,7 @@
 GPATH = $(srcdir)
 
 # thomas: make docs parallel installable
-TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_API_VERSION@
 EXTRA_DIST = \
 	$(content_files)		\
 	$(extra_files)			\
@@ -512,6 +538,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -581,10 +608,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -813,7 +845,7 @@
 @ENABLE_GTK_DOC_TRUE@	fi; \
 @ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
 @ENABLE_GTK_DOC_TRUE@	@rm -f version.entities
@@ -871,7 +903,7 @@
 	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
 	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
 	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
-	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
+	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  (which gtkdoc-rebase >/dev/null && \
 	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \
diff --git a/docs/libs/gstreamer-libs-docs.sgml b/docs/libs/gstreamer-libs-docs.sgml
index 8f84966..1d98145 100644
--- a/docs/libs/gstreamer-libs-docs.sgml
+++ b/docs/libs/gstreamer-libs-docs.sgml
@@ -8,9 +8,9 @@
 ]>
 <book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
   <bookinfo>
-    <title>GStreamer &GST_MAJORMINOR; Library Reference Manual</title>
+    <title>GStreamer &GST_API_VERSION; Library Reference Manual</title>
     <releaseinfo>
-      for GStreamer Library &GST_MAJORMINOR; (&GST_VERSION;)
+      for GStreamer Library &GST_API_VERSION; (&GST_VERSION;)
       The latest version of this documentation can be found on-line at
       <ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</ulink>.
     </releaseinfo>
@@ -29,7 +29,7 @@
     <chapter id="gstreamer-base">
       <title>GStreamer Base and Utillity Classes</title>
       <para>
-        libgstbase-&GST_MAJORMINOR;.so provides some base classes to be extended
+        libgstbase-&GST_API_VERSION;.so provides some base classes to be extended
         by elements and utillity classes that are most useful for plugin developers.
       </para>
 
@@ -43,34 +43,27 @@
       <xi:include href="xml/gstbitreader.xml" />
       <xi:include href="xml/gstbytereader.xml" />
       <xi:include href="xml/gstbytewriter.xml" />
-      <xi:include href="xml/gstcollectpads.xml" />
+      <xi:include href="xml/gstcollectpads2.xml" />
       <xi:include href="xml/gsttypefindhelper.xml" />
-      <xi:include href="xml/gstdataqueue.xml" />
     </chapter>
 
     <chapter id="gstreamer-control">
       <title>GStreamer Dynamic Parameter Control</title>
       <para>
-        libgstcontroller-&GST_MAJORMINOR;.so provides functionality to animate
+        libgstcontroller-&GST_API_VERSION;.so provides functionality to animate
         element properties over time.
       </para>
 
-      <xi:include href="xml/gstcontroller.xml" />
-      <xi:include href="xml/gstcontrolsource.xml" />
+      <xi:include href="xml/gsttimedvaluecontrolsource.xml" />
       <xi:include href="xml/gstinterpolationcontrolsource.xml" />
       <xi:include href="xml/gstlfocontrolsource.xml" />
-      <xi:include href="xml/gstcontrollergobject.xml" />
-    </chapter>
-
-    <chapter id="gstreamer-dataprotocol">
-      <title>GStreamer Data Protocol</title>
-      <xi:include href="xml/gstdataprotocol.xml" />
+      <xi:include href="xml/gsttriggercontrolsource.xml" />
     </chapter>
 
     <chapter id="gstreamer-net">
       <title>GStreamer Network Classes</title>
       <para>
-        libgstnet-&GST_MAJORMINOR;.so provides network elements and objects.
+        libgstnet-&GST_API_VERSION;.so provides network elements and objects.
       </para>
 
       <xi:include href="xml/gstnetclientclock.xml" />
@@ -81,7 +74,7 @@
     <chapter id="gstreamer-check">
       <title>GStreamer Check Unit Testing</title>
       <para>
-        libgstcheck-&GST_MAJORMINOR;.so provides functionality for writing
+        libgstcheck-&GST_API_VERSION;.so provides functionality for writing
         unit tests that use the check framework.
       </para>
 
diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index 1e9e968..ee74cc1 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -13,100 +13,33 @@
 # <SUBSECTION Private>
 # </SECTION>
 
-<SECTION>
-<FILE>gstdataprotocol</FILE>
-<INCLUDE>gst/dataprotocol/dataprotocol.h</INCLUDE>
-GstDPHeaderFlag
-GstDPPayloadType
-
-GST_DP_HEADER_LENGTH
-GstDPVersion
-GST_DP_VERSION_MAJOR
-GST_DP_VERSION_MINOR
-
-gst_dp_init
-
-GstDPHeaderFromBufferFunction
-GstDPPacketFromCapsFunction
-GstDPPacketFromEventFunction
-GstDPPacketizer
-gst_dp_packetizer_new
-gst_dp_packetizer_free
-
-gst_dp_crc
-
-gst_dp_header_payload_length
-gst_dp_header_payload_type
-
-gst_dp_buffer_from_header
-gst_dp_caps_from_packet
-gst_dp_event_from_packet
-
-gst_dp_validate_header
-gst_dp_validate_payload
-gst_dp_validate_packet
-<SUBSECTION Standard>
-GST_TYPE_DP_VERSION
-gst_dp_version_get_type
-</SECTION>
+# control source classes
 
 <SECTION>
-<FILE>gstcontroller</FILE>
-<TITLE>GstController</TITLE>
-<INCLUDE>gst/controller/gstcontroller.h</INCLUDE>
-GstController
-gst_controller_init
-gst_controller_new
-gst_controller_new_list
-gst_controller_new_valist
-gst_controller_remove_properties
-gst_controller_remove_properties_list
-gst_controller_remove_properties_valist
-gst_controller_set_disabled
-gst_controller_set_property_disabled
-gst_controller_suggest_next_sync
-gst_controller_sync_values
-gst_controller_get_control_source
-gst_controller_set_control_source
-gst_controller_get
-gst_controller_get_value_arrays
-gst_controller_get_value_array
+<FILE>gsttimedvaluecontrolsource</FILE>
+<TITLE>GstTimedValueControlSource</TITLE>
+<INCLUDE>libs/controller/gsttimedvaluecontrolsource.h</INCLUDE>
+GstTimedValueControlSource
+gst_timed_value_control_source_find_control_point_iter
+gst_timed_value_control_source_set
+gst_timed_value_control_source_set_from_list
+gst_timed_value_control_source_get_all
+gst_timed_value_control_source_unset
+gst_timed_value_control_source_unset_all
+gst_timed_value_control_source_get_count
+gst_timed_value_control_source_get_base_value_type
+gst_timed_value_control_invalidate_cache
 <SUBSECTION Standard>
-GstControllerClass
-GstControllerPrivate
-GST_CONTROLLER
-GST_IS_CONTROLLER
-GST_CONTROLLER_CLASS
-GST_IS_CONTROLLER_CLASS
-GST_CONTROLLER_GET_CLASS
-GST_TYPE_CONTROLLER
+GstTimedValueControlSourceClass
+GstTimedValueControlSourcePrivate
+GST_TIMED_VALUE_CONTROL_SOURCE
+GST_IS_TIMED_VALUE_CONTROL_SOURCE
+GST_TIMED_VALUE_CONTROL_SOURCE_CLASS
+GST_IS_TIMED_VALUE_CONTROL_SOURCE_CLASS
+GST_TIMED_VALUE_CONTROL_SOURCE_GET_CLASS
+GST_TYPE_TIMED_VALUE_CONTROL_SOURCE
 <SUBSECTION Private>
-gst_controller_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gstcontrolsource</FILE>
-<TITLE>GstControlSource</TITLE>
-<INCLUDE>libs/controller/gstcontrolsource.h</INCLUDE>
-GstControlSource
-GstControlSourceClass
-GstControlSourceBind
-GstControlSourceGetValue
-GstControlSourceGetValueArray
-GstTimedValue
-GstValueArray
-gst_control_source_bind
-gst_control_source_get_value
-gst_control_source_get_value_array
-<SUBSECTION Standard>
-GST_CONTROL_SOURCE
-GST_IS_CONTROL_SOURCE
-GST_CONTROL_SOURCE_CLASS
-GST_IS_CONTROL_SOURCE_CLASS
-GST_CONTROL_SOURCE_GET_CLASS
-GST_TYPE_CONTROL_SOURCE
-<SUBSECTION Private>
-gst_control_source_get_type
+gst_timed_value_control_source_get_type
 </SECTION>
 
 <SECTION>
@@ -114,15 +47,8 @@
 <TITLE>GstInterpolationControlSource</TITLE>
 <INCLUDE>libs/controller/gstinterpolationcontrolsource.h</INCLUDE>
 GstInterpolationControlSource
-GstInterpolateMode
+GstInterpolationMode
 gst_interpolation_control_source_new
-gst_interpolation_control_source_set
-gst_interpolation_control_source_set_from_list
-gst_interpolation_control_source_set_interpolation_mode
-gst_interpolation_control_source_get_all
-gst_interpolation_control_source_unset
-gst_interpolation_control_source_unset_all
-gst_interpolation_control_source_get_count
 <SUBSECTION Standard>
 GstInterpolationControlSourceClass
 GstInterpolationControlSourcePrivate
@@ -132,8 +58,10 @@
 GST_IS_INTERPOLATION_CONTROL_SOURCE_CLASS
 GST_INTERPOLATION_CONTROL_SOURCE_GET_CLASS
 GST_TYPE_INTERPOLATION_CONTROL_SOURCE
+GST_TYPE_INTERPOLATION_MODE
 <SUBSECTION Private>
 gst_interpolation_control_source_get_type
+gst_interpolation_mode_get_type
 </SECTION>
 
 <SECTION>
@@ -159,23 +87,22 @@
 </SECTION>
 
 <SECTION>
-<FILE>gstcontrollergobject</FILE>
-<TITLE>GstControllerGObject</TITLE>
-<INCLUDE>libs/controller/gstcontroller.h</INCLUDE>
-gst_object_control_properties
-gst_object_uncontrol_properties
-gst_object_get_controller
-gst_object_set_controller
-gst_object_suggest_next_sync
-gst_object_sync_values
-gst_object_get_control_source
-gst_object_set_control_source
-gst_object_get_value_arrays
-gst_object_get_value_array
-gst_object_get_control_rate
-gst_object_set_control_rate
+<FILE>gsttriggercontrolsource</FILE>
+<TITLE>GstTriggerControlSource</TITLE>
+<INCLUDE>libs/controller/gsttriggercontrolsource.h</INCLUDE>
+GstTriggerControlSource
+gst_trigger_control_source_new
 <SUBSECTION Standard>
+GstTriggerControlSourceClass
+GstTriggerControlSourcePrivate
+GST_TRIGGER_CONTROL_SOURCE
+GST_IS_TRIGGER_CONTROL_SOURCE
+GST_TRIGGER_CONTROL_SOURCE_CLASS
+GST_IS_TRIGGER_CONTROL_SOURCE_CLASS
+GST_TRIGGER_CONTROL_SOURCE_GET_CLASS
+GST_TYPE_TRIGGER_CONTROL_SOURCE
 <SUBSECTION Private>
+gst_trigger_control_source_get_type
 </SECTION>
 
 # base classes
@@ -197,7 +124,8 @@
 gst_adapter_take
 gst_adapter_take_buffer
 gst_adapter_take_list
-gst_adapter_prev_timestamp
+gst_adapter_prev_pts
+gst_adapter_prev_dts
 gst_adapter_masked_scan_uint32
 gst_adapter_masked_scan_uint32_peek
 <SUBSECTION Standard>
@@ -323,7 +251,7 @@
 gst_base_sink_get_render_delay
 gst_base_sink_set_last_buffer_enabled
 gst_base_sink_is_last_buffer_enabled
-gst_base_sink_get_last_buffer
+gst_base_sink_get_last_sample
 gst_base_sink_set_blocksize
 gst_base_sink_get_blocksize
 gst_base_sink_get_throttle_time
@@ -379,9 +307,6 @@
 
 GST_BASE_TRANSFORM_FLOW_DROPPED
 
-GST_BASE_TRANSFORM_LOCK
-GST_BASE_TRANSFORM_UNLOCK
-
 <SUBSECTION Standard>
 GST_BASE_TRANSFORM
 GST_IS_BASE_TRANSFORM
@@ -690,52 +615,70 @@
 </SECTION>
 
 <SECTION>
-<FILE>gstcollectpads</FILE>
-<TITLE>GstCollectPads</TITLE>
-<INCLUDE>gst/base/gstcollectpads.h</INCLUDE>
-GstCollectData
-GstCollectPads
-GstCollectPadsFunction
-GstCollectPadsClipFunction
-GstCollectDataDestroyNotify
-gst_collect_pads_new
-gst_collect_pads_set_function
-gst_collect_pads_set_clip_function
-gst_collect_pads_add_pad
-gst_collect_pads_add_pad_full
-gst_collect_pads_remove_pad
-gst_collect_pads_is_active
-gst_collect_pads_collect
-gst_collect_pads_collect_range
-gst_collect_pads_start
-gst_collect_pads_stop
-gst_collect_pads_set_flushing
-gst_collect_pads_peek
-gst_collect_pads_pop
-gst_collect_pads_available
-gst_collect_pads_read_buffer
-gst_collect_pads_take_buffer
-gst_collect_pads_flush
-<SUBSECTION Standard>
-GstCollectPadsClass
-GstCollectPadsPrivate
-GST_COLLECT_PADS
-GST_IS_COLLECT_PADS
-GST_TYPE_COLLECT_PADS
-GST_COLLECT_PADS_CLASS
-GST_IS_COLLECT_PADS_CLASS
-GST_COLLECT_PADS_GET_CLASS
-<SUBSECTION Private>
-gst_collect_pads_get_type
-GST_COLLECT_PADS_GET_PAD_LOCK
-GST_COLLECT_PADS_PAD_LOCK
-GST_COLLECT_PADS_PAD_UNLOCK
-GST_COLLECT_PADS_BROADCAST
-GST_COLLECT_PADS_GET_COND
-GST_COLLECT_PADS_SIGNAL
-GST_COLLECT_PADS_WAIT
-</SECTION>
+<FILE>gstcollectpads2</FILE>
+<TITLE>GstCollectPads2</TITLE>
+<INCLUDE>gst/base/gstcollectpads2.h</INCLUDE>
+GstCollectPads2
+GstCollectData2
 
+GstCollectData2DestroyNotify
+GstCollectPads2BufferFunction
+GstCollectPads2CompareFunction
+GstCollectPads2EventFunction
+GstCollectPads2ClipFunction
+GstCollectPads2Function
+GstCollectPads2StateFlags
+
+GST_COLLECT_PADS2_STATE
+GST_COLLECT_PADS2_STATE_IS_SET
+GST_COLLECT_PADS2_STATE_SET
+GST_COLLECT_PADS2_STATE_UNSET
+
+GST_COLLECT_PADS2_GET_STREAM_LOCK
+GST_COLLECT_PADS2_STREAM_LOCK
+GST_COLLECT_PADS2_STREAM_UNLOCK
+
+gst_collect_pads2_new
+
+gst_collect_pads2_add_pad
+gst_collect_pads2_add_pad_full
+gst_collect_pads2_remove_pad
+
+gst_collect_pads2_start
+gst_collect_pads2_stop
+
+gst_collect_pads2_available
+gst_collect_pads2_is_active
+
+gst_collect_pads2_collect
+gst_collect_pads2_collect_range
+
+gst_collect_pads2_flush
+gst_collect_pads2_peek
+gst_collect_pads2_pop
+
+gst_collect_pads2_read
+gst_collect_pads2_read_buffer
+gst_collect_pads2_take_buffer
+
+gst_collect_pads2_set_buffer_function
+gst_collect_pads2_set_compare_function
+gst_collect_pads2_set_event_function
+gst_collect_pads2_set_clip_function
+gst_collect_pads2_set_flushing
+gst_collect_pads2_set_function
+gst_collect_pads2_set_waiting
+<SUBSECTION Standard>
+GstCollectPads2Class
+GST_COLLECT_PADS2
+GST_COLLECT_PADS2_CLASS
+GST_TYPE_COLLECT_PADS2
+GST_IS_COLLECT_PADS2
+GST_IS_COLLECT_PADS2_CLASS
+GST_COLLECT_PADS2_GET_CLASS
+gst_collect_pads2_get_type
+<SUBSECTION Private>
+</SECTION>
 
 <SECTION>
 <FILE>gstpushsrc</FILE>
@@ -768,38 +711,6 @@
 <SUBSECTION Private>
 </SECTION>
 
-<SECTION>
-<FILE>gstdataqueue</FILE>
-<TITLE>GstDataQueue</TITLE>
-<INCLUDE>gst/base/gstdataqueue.h</INCLUDE>
-GstDataQueue
-GstDataQueueSize
-GstDataQueueCheckFullFunction
-GstDataQueueItem
-GstDataQueueEmptyCallback
-GstDataQueueFullCallback
-gst_data_queue_new
-gst_data_queue_new_full
-gst_data_queue_push
-gst_data_queue_pop
-gst_data_queue_flush
-gst_data_queue_set_flushing
-gst_data_queue_drop_head
-gst_data_queue_is_full
-gst_data_queue_is_empty
-gst_data_queue_get_level
-gst_data_queue_limits_changed
-<SUBSECTION Standard>
-GstDataQueueClass
-GST_DATA_QUEUE
-GST_IS_DATA_QUEUE
-GST_TYPE_DATA_QUEUE
-GST_DATA_QUEUE_CLASS
-GST_IS_DATA_QUEUE_CLASS
-<SUBSECTION Private>
-gst_data_queue_get_type
-</SECTION>
-
 # net
 
 <SECTION>
diff --git a/docs/libs/gstreamer-libs.types b/docs/libs/gstreamer-libs.types
index a41e584..cfb552a 100644
--- a/docs/libs/gstreamer-libs.types
+++ b/docs/libs/gstreamer-libs.types
@@ -6,27 +6,27 @@
 #include <gst/base/gstbasesrc.h>
 #include <gst/base/gstbasesink.h>
 #include <gst/base/gstbasetransform.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstcollectpads2.h>
 #include <gst/base/gstpushsrc.h>
 
 gst_adapter_get_type
 gst_base_src_get_type
 gst_base_sink_get_type
 gst_base_transform_get_type
-gst_collect_pads_get_type
+gst_collect_pads2_get_type
 gst_push_src_get_type
 
 % controller
 
-#include <gst/controller/gstcontroller.h>
-#include <gst/controller/gstcontrolsource.h>
+#include <gst/controller/gsttimedvaluecontrolsource.h>
 #include <gst/controller/gstinterpolationcontrolsource.h>
 #include <gst/controller/gstlfocontrolsource.h>
+#include <gst/controller/gsttriggercontrolsource.h>
 
-gst_controller_get_type
-gst_control_source_get_type
+gst_timed_value_control_source_get_type
 gst_interpolation_control_source_get_type
 gst_lfo_control_source_get_type
+gst_trigger_control_source_get_type
 
 % net
 
diff --git a/docs/libs/html/GstAdapter.html b/docs/libs/html/GstAdapter.html
index 0538d61..e45d044 100644
--- a/docs/libs/html/GstAdapter.html
+++ b/docs/libs/html/GstAdapter.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstAdapter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="GstPushSrc.html" title="GstPushSrc">
 <link rel="next" href="gstreamer-libs-GstBitReader.html" title="GstBitReader">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstPushSrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstBitReader.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -46,38 +46,39 @@
 <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="returnvalue">GstAdapter</span></a> *        <a class="link" href="GstAdapter.html#gst-adapter-new" title="gst_adapter_new ()">gst_adapter_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-clear" title="gst_adapter_clear ()">gst_adapter_clear</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-push" title="gst_adapter_push ()">gst_adapter_push</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()">gst_adapter_map</a>                     (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-unmap" title="gst_adapter_unmap ()">gst_adapter_unmap</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> flush</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="returnvalue">gconstpointer</span></a>       <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()">gst_adapter_map</a>                     (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-unmap" title="gst_adapter_unmap ()">gst_adapter_unmap</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-copy" title="gst_adapter_copy ()">gst_adapter_copy</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-flush" title="gst_adapter_flush ()">gst_adapter_flush</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> flush</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="GstAdapter.html#gst-adapter-available" title="gst_adapter_available ()">gst_adapter_available</a>               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="GstAdapter.html#gst-adapter-available-fast" title="gst_adapter_available_fast ()">gst_adapter_available_fast</a>          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()">gst_adapter_take</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()">gst_adapter_take_buffer</a>             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> flush</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-available" title="gst_adapter_available ()">gst_adapter_available</a>               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-available-fast" title="gst_adapter_available_fast ()">gst_adapter_available_fast</a>          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()">gst_adapter_take</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()">gst_adapter_take_buffer</a>             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstAdapter.html#gst-adapter-take-list" title="gst_adapter_take_list ()">gst_adapter_take_list</a>               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-timestamp" title="gst_adapter_prev_timestamp ()">gst_adapter_prev_timestamp</a>          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *distance</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32" title="gst_adapter_masked_scan_uint32 ()">gst_adapter_masked_scan_uint32</a>      (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32-peek" title="gst_adapter_masked_scan_uint32_peek ()">gst_adapter_masked_scan_uint32_peek</a> (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *value</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-pts" title="gst_adapter_prev_pts ()">gst_adapter_prev_pts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-dts" title="gst_adapter_prev_dts ()">gst_adapter_prev_dts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32" title="gst_adapter_masked_scan_uint32 ()">gst_adapter_masked_scan_uint32</a>      (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32-peek" title="gst_adapter_masked_scan_uint32_peek ()">gst_adapter_masked_scan_uint32_peek</a> (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *value</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -116,32 +117,65 @@
 For example, a sink pad's chain function that needs to pass data to a library
 in 512-byte chunks could be implemented like this:
 </p>
-<div class="informalexample"><pre class="programlisting">
-static GstFlowReturn
-sink_pad_chain (GstPad *pad, GstBuffer *buffer)
-{
-  MyElement *this;
-  GstAdapter *adapter;
-  GstFlowReturn ret = GST_FLOW_OK;
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static</span> GstFlowReturn
+<span class="function">sink_pad_chain</span> <span class="gtkdoc opt">(</span>GstPad <span class="gtkdoc opt">*</span>pad<span class="gtkdoc opt">,</span> GstBuffer <span class="gtkdoc opt">*</span>buffer<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  MyElement <span class="gtkdoc opt">*</span><span class="keyword">this</span><span class="gtkdoc opt">;</span>
+  GstAdapter <span class="gtkdoc opt">*</span>adapter<span class="gtkdoc opt">;</span>
+  GstFlowReturn ret <span class="gtkdoc opt">=</span> GST_FLOW_OK<span class="gtkdoc opt">;</span>
 
-  // will give the element an extra ref; remember to drop it
-  this = MY_ELEMENT (gst_pad_get_parent (pad));
-  adapter = this-&gt;adapter;
+  <span class="gtkdoc slc">// will give the element an extra ref; remember to drop it</span>
+  <span class="keyword">this</span> <span class="gtkdoc opt">=</span> <span class="function">MY_ELEMENT</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/GstPad.html#gst-pad-get-parent">gst_pad_get_parent</a></span> <span class="gtkdoc opt">(</span>pad<span class="gtkdoc opt">));</span>
+  adapter <span class="gtkdoc opt">=</span> <span class="keyword">this</span><span class="gtkdoc opt">-&gt;</span>adapter<span class="gtkdoc opt">;</span>
 
-  // put buffer into adapter
-  gst_adapter_push (adapter, buffer);
-  // while we can read out 512 bytes, process them
-  while (gst_adapter_available (adapter) &gt;= 512 &amp;&amp; ret == GST_FLOW_OK) {
-    const guint8 *data = gst_adapter_map (adapter, 512);
-    // use flowreturn as an error value
-    ret = my_library_foo (data);
-    gst_adapter_unmap (adapter, 512);
-  }
+  <span class="gtkdoc slc">// put buffer into adapter</span>
+  <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-push">gst_adapter_push</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> buffer<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc slc">// while we can read out 512 bytes, process them</span>
+  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-available">gst_adapter_available</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">) &gt;=</span> <span class="number">512</span> <span class="gtkdoc opt">&amp;&amp;</span> ret <span class="gtkdoc opt">==</span> GST_FLOW_OK<span class="gtkdoc opt">) {</span>
+    <span class="gtkdoc kwb">const</span> guint8 <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-map">gst_adapter_map</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
+    <span class="gtkdoc slc">// use flowreturn as an error value</span>
+    ret <span class="gtkdoc opt">=</span> <span class="function">my_library_foo</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-unmap">gst_adapter_unmap</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-flush">gst_adapter_flush</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">}</span>
 
-  gst_object_unref (this);
-  return ret;
-}
-</pre></div>
+  <span class="function"><a href="../gstreamer-1.0/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span><span class="keyword">this</span><span class="gtkdoc opt">);</span>
+  <span class="keyword">return</span> ret<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
@@ -152,7 +186,7 @@
 An element using GstAdapter in its sink pad chain function should ensure that
 when the FLUSH_STOP event is received, that any queued data is cleared using
 <a class="link" href="GstAdapter.html#gst-adapter-clear" title="gst_adapter_clear ()"><code class="function">gst_adapter_clear()</code></a>. Data should also be cleared or processed on EOS and
-when changing state from <a href="../gstreamer-0.11/GstElement.html#GST-STATE-PAUSED:CAPS"><span class="type">GST_STATE_PAUSED</span></a> to <a href="../gstreamer-0.11/GstElement.html#GST-STATE-READY:CAPS"><span class="type">GST_STATE_READY</span></a>.
+when changing state from <a href="../gstreamer-1.0/GstElement.html#GST-STATE-PAUSED:CAPS"><span class="type">GST_STATE_PAUSED</span></a> to <a href="../gstreamer-1.0/GstElement.html#GST-STATE-READY:CAPS"><span class="type">GST_STATE_READY</span></a>.
 </p>
 <p>
 Also check the GST_BUFFER_FLAG_DISCONT flag on the buffer. Some elements might
@@ -161,7 +195,7 @@
 <p>
 Since 0.10.24, the adapter will keep track of the timestamps of the buffers
 that were pushed. The last seen timestamp before the current position
-can be queried with <a class="link" href="GstAdapter.html#gst-adapter-prev-timestamp" title="gst_adapter_prev_timestamp ()"><code class="function">gst_adapter_prev_timestamp()</code></a>. This function can
+can be queried with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-prev-timestamp"><code class="function">gst_adapter_prev_timestamp()</code></a>. This function can
 optionally return the amount of bytes between the start of the buffer that
 carried the timestamp and the current adapter position. The distance is
 useful when dealing with, for example, raw audio samples because it allows
@@ -185,7 +219,7 @@
 </p>
 <p>
 Note that <a class="link" href="GstAdapter.html#gst-adapter-push" title="gst_adapter_push ()"><code class="function">gst_adapter_push()</code></a> takes ownership of the buffer passed. Use
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> before pushing it into the adapter if you still want to
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> before pushing it into the adapter if you still want to
 access the buffer later. The adapter will never modify the data in the
 buffer pushed in it.
 </p>
@@ -238,7 +272,7 @@
 <div class="refsect2">
 <a name="gst-adapter-push"></a><h3>gst_adapter_push ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_push                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
 <p>
 Adds the data from <em class="parameter"><code>buf</code></em> to the data stored inside <em class="parameter"><code>adapter</code></em> and takes
 ownership of the buffer.
@@ -253,7 +287,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> to add to queue in the adapter. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> to add to queue in the adapter. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -262,20 +296,20 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-map"></a><h3>gst_adapter_map ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      gst_adapter_map                     (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="returnvalue">gconstpointer</span></a>       gst_adapter_map                     (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Gets the first <em class="parameter"><code>size</code></em> bytes stored in the <em class="parameter"><code>adapter</code></em>. The returned pointer is
 valid until the next function is called on the adapter.
 </p>
 <p>
-Note that setting the returned pointer as the data of a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is
+Note that setting the returned pointer as the data of a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is
 incorrect for general-purpose plugins. The reason is that if a downstream
 element stores the buffer so that it has access to it outside of the bounds
 of its chain function, the buffer will have an invalid data pointer after
 your element flushes the bytes. In that case you should use
 <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()"><code class="function">gst_adapter_take()</code></a>, which returns a freshly-allocated buffer that you can set
-as <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> malloc_data or the potentially more performant
+as <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> malloc_data or the potentially more performant
 <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()"><code class="function">gst_adapter_take_buffer()</code></a>.
 </p>
 <p>
@@ -305,34 +339,26 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-unmap"></a><h3>gst_adapter_unmap ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_unmap                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> flush</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_unmap                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);</pre>
 <p>
-Releases the memory obtained with the last <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()"><code class="function">gst_adapter_map()</code></a> and flushes
-<em class="parameter"><code>size</code></em> bytes from the adapter.
+Releases the memory obtained with the last <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()"><code class="function">gst_adapter_map()</code></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody>
-<tr>
+<tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
 <td>a <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>
 </td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flush</code></em> :</span></p></td>
-<td>the amount of bytes to flush</td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-copy"></a><h3>gst_adapter_copy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_copy                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *dest</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Copies <em class="parameter"><code>size</code></em> bytes of data starting at <em class="parameter"><code>offset</code></em> out of the buffers
 contained in <em class="parameter"><code>GstAdapter</code></em> into an array <em class="parameter"><code>dest</code></em> provided by the caller.
@@ -371,7 +397,7 @@
 <div class="refsect2">
 <a name="gst-adapter-flush"></a><h3>gst_adapter_flush ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_flush                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> flush</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> flush</code></em>);</pre>
 <p>
 Flushes the first <em class="parameter"><code>flush</code></em> bytes in the <em class="parameter"><code>adapter</code></em>. The caller must ensure that
 at least this many bytes are available.
@@ -397,7 +423,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-available"></a><h3>gst_adapter_available ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_adapter_available               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_adapter_available               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);</pre>
 <p>
 Gets the maximum amount of bytes available, that is it returns the maximum
 value that can be supplied to <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()"><code class="function">gst_adapter_map()</code></a> without that function
@@ -422,7 +448,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-available-fast"></a><h3>gst_adapter_available_fast ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_adapter_available_fast          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_adapter_available_fast          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);</pre>
 <p>
 Gets the maximum number of bytes that are immediately available without
 requiring any expensive operations (like copying the data into a
@@ -447,8 +473,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-take"></a><h3>gst_adapter_take ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_adapter_take                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_adapter_take                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);</pre>
 <p>
 Returns a freshly allocated buffer containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
 <em class="parameter"><code>adapter</code></em>. The returned bytes will be flushed from the adapter.
@@ -483,17 +509,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-take-buffer"></a><h3>gst_adapter_take_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_adapter_take_buffer             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_adapter_take_buffer             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);</pre>
 <p>
-Returns a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
+Returns a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
 <em class="parameter"><code>adapter</code></em>. The returned bytes will be flushed from the adapter.
 This function is potentially more performant than <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()"><code class="function">gst_adapter_take()</code></a>
 since it can reuse the memory in pushed buffers by subbuffering
 or merging.
 </p>
 <p>
-Caller owns returned value. <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after usage.
+Caller owns returned value. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after usage.
 </p>
 <p>
 Free-function: gst_buffer_unref
@@ -512,7 +538,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> of
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> of
 the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>nbytes</code></em> bytes are not available. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -524,7 +550,7 @@
 <div class="refsect2">
 <a name="gst-adapter-take-list"></a><h3>gst_adapter_take_list ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_adapter_take_list               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> nbytes</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);</pre>
 <p>
 Returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of buffers containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
 <em class="parameter"><code>adapter</code></em>. The returned bytes will be flushed from the adapter.
@@ -532,7 +558,7 @@
 performant because no memory should be copied.
 </p>
 <p>
-Caller owns returned list and contained buffers. <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> each
+Caller owns returned list and contained buffers. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> each
 buffer in the list before freeing the list after usage.
 </p>
 <div class="variablelist"><table border="0">
@@ -560,18 +586,18 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-adapter-prev-timestamp"></a><h3>gst_adapter_prev_timestamp ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_timestamp          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *distance</code></em>);</pre>
+<a name="gst-adapter-prev-pts"></a><h3>gst_adapter_prev_pts ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_pts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);</pre>
 <p>
-Get the timestamp that was before the current byte in the adapter. When
-<em class="parameter"><code>distance</code></em> is given, the amount of bytes between the timestamp and the current
+Get the pts that was before the current byte in the adapter. When
+<em class="parameter"><code>distance</code></em> is given, the amount of bytes between the pts and the current
 position is returned.
 </p>
 <p>
-The timestamp is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
+The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
 the adapter is first created or when it is cleared. This also means that before
-the first byte with a timestamp is removed from the adapter, the timestamp
+the first byte with a pts is removed from the adapter, the pts
 and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.
 </p>
 <div class="variablelist"><table border="0">
@@ -589,20 +615,55 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The previously seen timestamp.</td>
+<td>The previously seen pts.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-adapter-prev-dts"></a><h3>gst_adapter_prev_dts ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_dts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);</pre>
+<p>
+Get the dts that was before the current byte in the adapter. When
+<em class="parameter"><code>distance</code></em> is given, the amount of bytes between the dts and the current
+position is returned.
+</p>
+<p>
+The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
+the adapter is first created or when it is cleared. This also means that before
+the first byte with a dts is removed from the adapter, the dts
+and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>adapter</code></em> :</span></p></td>
+<td>a <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>distance</code></em> :</span></p></td>
+<td>pointer to location for distance, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The previously seen dts.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-masked-scan-uint32"></a><h3>gst_adapter_masked_scan_uint32 ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_adapter_masked_scan_uint32      (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_adapter_masked_scan_uint32      (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Scan for pattern <em class="parameter"><code>pattern</code></em> with applied mask <em class="parameter"><code>mask</code></em> in the adapter data,
 starting from offset <em class="parameter"><code>offset</code></em>.
@@ -676,12 +737,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-masked-scan-uint32-peek"></a><h3>gst_adapter_masked_scan_uint32_peek ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>               gst_adapter_masked_scan_uint32_peek (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *value</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_adapter_masked_scan_uint32_peek (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *value</code></em>);</pre>
 <p>
 Scan for pattern <em class="parameter"><code>pattern</code></em> with applied mask <em class="parameter"><code>mask</code></em> in the adapter data,
 starting from offset <em class="parameter"><code>offset</code></em>.  If a match is found, the value that matched
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index b95172f..c4049c7 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseSink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="GstBaseSrc.html" title="GstBaseSrc">
 <link rel="next" href="GstBaseTransform.html" title="GstBaseTransform">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstBaseSrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstBaseTransform.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,24 +49,24 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-query-latency" title="gst_base_sink_query_latency ()">gst_base_sink_query_latency</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *upstream_live</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-latency" title="gst_base_sink_get_latency ()">gst_base_sink_get_latency</a>           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-do-preroll" title="gst_base_sink_do_preroll ()">gst_base_sink_do_preroll</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()">gst_base_sink_wait_preroll</a>          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstBaseSink.html#gst-base-sink-wait-clock" title="gst_base_sink_wait_clock ()">gst_base_sink_wait_clock</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-eos" title="gst_base_sink_wait_eos ()">gst_base_sink_wait_eos</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-latency" title="gst_base_sink_get_latency ()">gst_base_sink_get_latency</a>           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-do-preroll" title="gst_base_sink_do_preroll ()">gst_base_sink_do_preroll</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()">gst_base_sink_wait_preroll</a>          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstBaseSink.html#gst-base-sink-wait-clock" title="gst_base_sink_wait_clock ()">gst_base_sink_wait_clock</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-eos" title="gst_base_sink_wait_eos ()">gst_base_sink_wait_eos</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-sync" title="gst_base_sink_set_sync ()">gst_base_sink_set_sync</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sync</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-get-sync" title="gst_base_sink_get_sync ()">gst_base_sink_get_sync</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-max-lateness" title="gst_base_sink_set_max_lateness ()">gst_base_sink_set_max_lateness</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> max_lateness</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="GstBaseSink.html#gst-base-sink-get-max-lateness" title="gst_base_sink_get_max_lateness ()">gst_base_sink_get_max_lateness</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> max_lateness</code></em>);
+<span class="returnvalue">gint64</span>              <a class="link" href="GstBaseSink.html#gst-base-sink-get-max-lateness" title="gst_base_sink_get_max_lateness ()">gst_base_sink_get_max_lateness</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-qos-enabled" title="gst_base_sink_set_qos_enabled ()">gst_base_sink_set_qos_enabled</a>       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-is-qos-enabled" title="gst_base_sink_is_qos_enabled ()">gst_base_sink_is_qos_enabled</a>        (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
@@ -74,31 +74,24 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-is-async-enabled" title="gst_base_sink_is_async_enabled ()">gst_base_sink_is_async_enabled</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-ts-offset" title="gst_base_sink_set_ts_offset ()">gst_base_sink_set_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    <a class="link" href="GstBaseSink.html#gst-base-sink-get-ts-offset" title="gst_base_sink_get_ts_offset ()">gst_base_sink_get_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    <a class="link" href="GstBaseSink.html#gst-base-sink-get-ts-offset" title="gst_base_sink_get_ts_offset ()">gst_base_sink_get_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-render-delay" title="gst_base_sink_set_render_delay ()">gst_base_sink_set_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-render-delay" title="gst_base_sink_get_render_delay ()">gst_base_sink_get_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-last-buffer-enabled" title="gst_base_sink_set_last_buffer_enabled ()">gst_base_sink_set_last_buffer_enabled</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-is-last-buffer-enabled" title="gst_base_sink_is_last_buffer_enabled ()">gst_base_sink_is_last_buffer_enabled</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstBaseSink.html#gst-base-sink-get-last-buffer" title="gst_base_sink_get_last_buffer ()">gst_base_sink_get_last_buffer</a>       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-render-delay" title="gst_base_sink_get_render_delay ()">gst_base_sink_get_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         <a class="link" href="GstBaseSink.html#gst-base-sink-get-last-sample" title="gst_base_sink_get_last_sample ()">gst_base_sink_get_last_sample</a>       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-blocksize" title="gst_base_sink_set_blocksize ()">gst_base_sink_set_blocksize</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blocksize</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstBaseSink.html#gst-base-sink-get-blocksize" title="gst_base_sink_get_blocksize ()">gst_base_sink_get_blocksize</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="GstBaseSink.html#gst-base-sink-get-throttle-time" title="gst_base_sink_get_throttle_time ()">gst_base_sink_get_throttle_time</a>     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<span class="returnvalue">guint64</span>             <a class="link" href="GstBaseSink.html#gst-base-sink-get-throttle-time" title="gst_base_sink_get_throttle_time ()">gst_base_sink_get_throttle_time</a>     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-throttle-time" title="gst_base_sink_set_throttle_time ()">gst_base_sink_set_throttle_time</a>     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> throttle</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> throttle</code></em>);
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PAD:CAPS" title="GST_BASE_SINK_PAD()">GST_BASE_SINK_PAD</a>                   (obj)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-COND:CAPS" title="GST_BASE_SINK_GET_PREROLL_COND()">GST_BASE_SINK_GET_PREROLL_COND</a>      (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-LOCK:CAPS" title="GST_BASE_SINK_GET_PREROLL_LOCK()">GST_BASE_SINK_GET_PREROLL_LOCK</a>      (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-BROADCAST:CAPS" title="GST_BASE_SINK_PREROLL_BROADCAST()">GST_BASE_SINK_PREROLL_BROADCAST</a>     (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-LOCK:CAPS" title="GST_BASE_SINK_PREROLL_LOCK()">GST_BASE_SINK_PREROLL_LOCK</a>          (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-SIGNAL:CAPS" title="GST_BASE_SINK_PREROLL_SIGNAL()">GST_BASE_SINK_PREROLL_SIGNAL</a>        (pad)
-#define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS" title="GST_BASE_SINK_PREROLL_TIMED_WAIT()">GST_BASE_SINK_PREROLL_TIMED_WAIT</a>    (pad,
-                                                         timeval)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-TRYLOCK:CAPS" title="GST_BASE_SINK_PREROLL_TRYLOCK()">GST_BASE_SINK_PREROLL_TRYLOCK</a>       (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-UNLOCK:CAPS" title="GST_BASE_SINK_PREROLL_UNLOCK()">GST_BASE_SINK_PREROLL_UNLOCK</a>        (pad)
 #define             <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-WAIT:CAPS" title="GST_BASE_SINK_PREROLL_WAIT()">GST_BASE_SINK_PREROLL_WAIT</a>          (pad)
@@ -109,8 +102,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseSink
 </pre>
 </div>
@@ -119,28 +112,28 @@
 <pre class="synopsis">
   "<a class="link" href="GstBaseSink.html#GstBaseSink--async" title='The "async" property'>async</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--blocksize" title='The "blocksize" property'>blocksize</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--enable-last-buffer" title='The "enable-last-buffer" property'>enable-last-buffer</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--last-buffer" title='The "last-buffer" property'>last-buffer</a>"              <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>*            : Read
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--max-lateness" title='The "max-lateness" property'>max-lateness</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--enable-last-sample" title='The "enable-last-sample" property'>enable-last-sample</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--last-sample" title='The "last-sample" property'>last-sample</a>"              <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--max-lateness" title='The "max-lateness" property'>max-lateness</a>"             <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--qos" title='The "qos" property'>qos</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--render-delay" title='The "render-delay" property'>render-delay</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--render-delay" title='The "render-delay" property'>render-delay</a>"             <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--sync" title='The "sync" property'>sync</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--throttle-time" title='The "throttle-time" property'>throttle-time</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--ts-offset" title='The "ts-offset" property'>ts-offset</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--throttle-time" title='The "throttle-time" property'>throttle-time</a>"            <span class="type">guint64</span>               : Read / Write
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--ts-offset" title='The "ts-offset" property'>ts-offset</a>"                <span class="type">gint64</span>                : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstBaseSink.description"></a><h2>Description</h2>
 <p>
 <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> is the base class for sink elements in GStreamer, such as
-xvimagesink or filesink. It is a layer on top of <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> that provides a
+xvimagesink or filesink. It is a layer on top of <a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> that provides a
 simplified interface to plugin writers. <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> handles many details
 for you, for example: preroll, clock synchronization, state changes,
 activation in push or pull mode, and queries.
 </p>
 <p>
 In most cases, when writing sink elements, there is no need to implement
-class methods from <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> or to set functions on pads, because the
+class methods from <a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> or to set functions on pads, because the
 <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> infrastructure should be sufficient.
 </p>
 <p>
@@ -148,25 +141,44 @@
 named "sink". A sink implementation (subclass of <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a>) should
 install a pad template in its class_init function, like so:
 </p>
-<div class="informalexample"><pre class="programlisting">
-static void
-my_element_class_init (GstMyElementClass *klass)
-{
-  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
+<span class="function">my_element_class_init</span> <span class="gtkdoc opt">(</span>GstMyElementClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
 
-  // sinktemplate should be a <a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction
-  // <a href="../gstreamer-0.11/GstPad.html#GST-PAD-SINK:CAPS">GST_PAD_SINK</a> and name "sink"
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&amp;sinktemplate));
-  // see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a>
-  gst_element_class_set_details (gstelement_class, &amp;details);
-}
-</pre></div>
+  <span class="gtkdoc slc">// sinktemplate should be a <a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction</span>
+  <span class="gtkdoc slc">// <a href="../gstreamer-1.0/GstPad.html#GST-PAD-SINK:CAPS">GST_PAD_SINK</a> and name &quot;sink&quot;</span>
+  <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>sinktemplate<span class="gtkdoc opt">));</span>
+  <span class="gtkdoc slc">// see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a></span>
+  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-set-details">gst_element_class_set_details</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">, &amp;</span>details<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
 <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will handle the prerolling correctly. This means that it will
-return <a href="../gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a> from a state change to PAUSED until the first
+return <a href="../gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a> from a state change to PAUSED until the first
 buffer arrives in this element. The base class will call the
 <a class="link" href="GstBaseSink.html#GstBaseSinkClass.preroll"><code class="function">GstBaseSinkClass.preroll()</code></a> vmethod with this preroll buffer and will then
 commit the state change to the next asynchronously pending state.
@@ -174,7 +186,7 @@
 <p>
 When the element is set to PLAYING, <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will synchronise on the
 clock using the times returned from <a class="link" href="GstBaseSink.html#GstBaseSinkClass.get-times"><code class="function">GstBaseSinkClass.get_times()</code></a>. If this
-function returns <a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a> for the start time, no synchronisation
+function returns <a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a> for the start time, no synchronisation
 will be done. Synchronisation can be disabled entirely by setting the object
 <a class="link" href="GstBaseSink.html#GstBaseSink--sync" title='The "sync" property'><span class="type">"sync"</span></a> property to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
 </p>
@@ -206,7 +218,7 @@
 </p>
 <p>
 <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will by default report the current playback position in
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> based on the current clock time and segment information.
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> based on the current clock time and segment information.
 If no clock has been set on the element, the query will be forwarded
 upstream.
 </p>
@@ -286,7 +298,7 @@
   gboolean      (*set_caps)     (GstBaseSink *sink, GstCaps *caps);
 
   /* fixate sink caps during pull-mode negotiation */
-  void          (*fixate)       (GstBaseSink *sink, GstCaps *caps);
+  GstCaps *     (*fixate)       (GstBaseSink *sink, GstCaps *caps);
   /* start or stop a pulling thread */
   gboolean      (*activate_pull)(GstBaseSink *sink, gboolean active);
 
@@ -312,9 +324,12 @@
   /* notify subclass of query */
   gboolean      (*query)        (GstBaseSink *sink, GstQuery *query);
 
-  /* notify subclass of event, preroll buffer or real buffer */
+  /* notify subclass of event */
   gboolean      (*event)        (GstBaseSink *sink, GstEvent *event);
+  /* wait for eos, subclasses should chain up to parent first */
+  GstFlowReturn (*wait_eos)     (GstBaseSink *sink, GstEvent *event);
 
+  /* notify subclass of preroll buffer or real buffer */
   GstFlowReturn (*preroll)      (GstBaseSink *sink, GstBuffer *buffer);
   GstFlowReturn (*render)       (GstBaseSink *sink, GstBuffer *buffer);
   /* Render a BufferList */
@@ -330,7 +345,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
@@ -343,8 +358,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.fixate"></a>fixate</code></em> ()</span></p></td>
-<td>Only useful in pull mode, this vmethod will be called in response to
-<a href="../gstreamer-0.11/GstPad.html#gst-pad-fixate-caps"><code class="function">gst_pad_fixate_caps()</code></a> being called on the sink pad. Implement if you have
+<td>Only useful in pull mode. Implement if you have
 ideas about what should be the default values for the caps you support.</td>
 </tr>
 <tr>
@@ -384,13 +398,18 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.query"></a>query</code></em> ()</span></p></td>
-<td>perform a <a href="../gstreamer-0.11/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> on the element. Since: 0.10.36</td>
+<td>perform a <a href="../gstreamer-1.0/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> on the element. Since: 0.10.36</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.event"></a>event</code></em> ()</span></p></td>
 <td>Override this to handle events arriving on the sink pad</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.wait-eos"></a>wait_eos</code></em> ()</span></p></td>
+<td>Override this to implement custom logic to wait for the EOS time.
+subclasses should always first chain up to the default implementation.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.preroll"></a>preroll</code></em> ()</span></p></td>
 <td>Called to present the preroll buffer if desired</td>
 </tr>
@@ -413,8 +432,8 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_sink_query_latency         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *upstream_live</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
 <p>
 Query the sink for the latency parameters. The latency will be queried from
 the upstream elements. <em class="parameter"><code>live</code></em> will be TRUE if <em class="parameter"><code>sink</code></em> is configured to
@@ -467,7 +486,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-latency"></a><h3>gst_base_sink_get_latency ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_latency           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_latency           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the currently configured latency.
 </p>
@@ -489,8 +508,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-do-preroll"></a><h3>gst_base_sink_do_preroll ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_do_preroll            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_do_preroll            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
 <p>
 If the <em class="parameter"><code>sink</code></em> spawns its own thread for pulling buffers from upstream it
 should call this method after it has pulled a buffer. If the element needed
@@ -515,7 +534,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
 continue. Any other return value should be returned from the render vmethod.</td>
 </tr>
 </tbody>
@@ -525,7 +544,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-wait-preroll"></a><h3>gst_base_sink_wait_preroll ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_preroll          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_preroll          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 If the <a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> method performs its own synchronisation
 against the clock it must unblock when going from PLAYING to the PAUSED state
@@ -533,9 +552,9 @@
 </p>
 <p>
 This function will block until a state change to PLAYING happens (in which
-case this function returns <a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
+case this function returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
 to a state change to READY or a FLUSH event (in which case this function
-returns <a href="../gstreamer-0.11/GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a>).
+returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
 </p>
 <p>
 This function should only be called with the PREROLL_LOCK held, like in the
@@ -551,7 +570,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
 continue. Any other return value should be returned from the render vmethod.</td>
 </tr>
 </tbody>
@@ -561,17 +580,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-wait-clock"></a><h3>gst_base_sink_wait_clock ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_base_sink_wait_clock            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_base_sink_wait_clock            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
 <p>
 This function will block until <em class="parameter"><code>time</code></em> is reached. It is usually called by
 subclasses that use their own internal synchronisation.
 </p>
 <p>
-If <em class="parameter"><code>time</code></em> is not valid, no sycnhronisation is done and <a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is
+If <em class="parameter"><code>time</code></em> is not valid, no sycnhronisation is done and <a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is
 returned. Likewise, if synchronisation is disabled in the element or there
-is no clock, no synchronisation is done and <a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is returned.
+is no clock, no synchronisation is done and <a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is returned.
 </p>
 <p>
 This function should only be called with the PREROLL_LOCK held, like when
@@ -602,7 +621,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="../gstreamer-0.11/GstClock.html#GstClockReturn"><span class="type">GstClockReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="type">GstClockReturn</span></a></td>
 </tr>
 </tbody>
 </table></div>
@@ -611,9 +630,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-wait-eos"></a><h3>gst_base_sink_wait_eos ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_eos              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_eos              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
 <p>
 This function will block until <em class="parameter"><code>time</code></em> is reached. It is usually called by
 subclasses that use their own internal synchronisation but want to let the
@@ -645,7 +664,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
 </tr>
 </tbody>
 </table></div>
@@ -705,7 +724,7 @@
 <div class="refsect2">
 <a name="gst-base-sink-set-max-lateness"></a><h3>gst_base_sink_set_max_lateness ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_max_lateness      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> max_lateness</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> max_lateness</code></em>);</pre>
 <p>
 Sets the new max lateness value to <em class="parameter"><code>max_lateness</code></em>. This value is
 used to decide if a buffer should be dropped or not based on the
@@ -730,7 +749,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-max-lateness"></a><h3>gst_base_sink_get_max_lateness ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_base_sink_get_max_lateness      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_base_sink_get_max_lateness      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Gets the max lateness value. See gst_base_sink_set_max_lateness for
 more details.
@@ -852,7 +871,7 @@
 <div class="refsect2">
 <a name="gst-base-sink-set-ts-offset"></a><h3>gst_base_sink_set_ts_offset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);</pre>
 <p>
 Adjust the synchronisation of <em class="parameter"><code>sink</code></em> with <em class="parameter"><code>offset</code></em>. A negative value will
 render buffers earlier than their timestamp. A positive value will delay
@@ -877,7 +896,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-ts-offset"></a><h3>gst_base_sink_get_ts_offset ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    gst_base_sink_get_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    gst_base_sink_get_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the synchronisation offset of <em class="parameter"><code>sink</code></em>.
 </p>
@@ -900,7 +919,7 @@
 <div class="refsect2">
 <a name="gst-base-sink-set-render-delay"></a><h3>gst_base_sink_set_render_delay ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);</pre>
 <p>
 Set the render delay in <em class="parameter"><code>sink</code></em> to <em class="parameter"><code>delay</code></em>. The render delay is the time
 between actual rendering of a buffer and its synchronisation time. Some
@@ -933,7 +952,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-render-delay"></a><h3>gst_base_sink_get_render_delay ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the render delay of <em class="parameter"><code>sink</code></em>. see <a class="link" href="GstBaseSink.html#gst-base-sink-set-render-delay" title="gst_base_sink_set_render_delay ()"><code class="function">gst_base_sink_set_render_delay()</code></a> for more
 information about the render delay.
@@ -956,66 +975,17 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-base-sink-set-last-buffer-enabled"></a><h3>gst_base_sink_set_last_buffer_enabled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_last_buffer_enabled
-                                                        (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<a name="gst-base-sink-get-last-sample"></a><h3>gst_base_sink_get_last_sample ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         gst_base_sink_get_last_sample       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
-Configures <em class="parameter"><code>sink</code></em> to store the last received buffer in the last-buffer
-property.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
-<td>the sink</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
-<td>the new enable-last-buffer value.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.30</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-base-sink-is-last-buffer-enabled"></a><h3>gst_base_sink_is_last_buffer_enabled ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_sink_is_last_buffer_enabled
-                                                        (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
-<p>
-Checks if <em class="parameter"><code>sink</code></em> is currently configured to store the last received buffer in
-the last-buffer property.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
-<td>the sink</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the sink is configured to store the last received buffer.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.30</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-base-sink-get-last-buffer"></a><h3>gst_base_sink_get_last_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_base_sink_get_last_buffer       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
-<p>
-Get the last buffer that arrived in the sink and was used for preroll or for
+Get the last sample that arrived in the sink and was used for preroll or for
 rendering. This property can be used to generate thumbnails.
 </p>
 <p>
-The <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> on the buffer can be used to determine the type of the buffer.
+The <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> on the sample can be used to determine the type of the buffer.
 </p>
 <p>
-Free-function: gst_buffer_unref
+Free-function: gst_sample_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1026,7 +996,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after usage.
+<td>a <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>. <a href="../gstreamer-1.0/gstreamer-GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage.
 This function returns NULL when no buffer has arrived in the sink yet
 or when the sink is not in PAUSED or PLAYING. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
@@ -1087,7 +1057,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-throttle-time"></a><h3>gst_base_sink_get_throttle_time ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_base_sink_get_throttle_time     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_base_sink_get_throttle_time     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the time that will be inserted between frames to control the 
 maximum buffers per second.
@@ -1112,7 +1082,7 @@
 <div class="refsect2">
 <a name="gst-base-sink-set-throttle-time"></a><h3>gst_base_sink_set_throttle_time ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_throttle_time     (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> throttle</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> throttle</code></em>);</pre>
 <p>
 Set the time that will be inserted between rendered buffers. This
 can be used to control the maximum buffers per second that the sink
@@ -1140,7 +1110,7 @@
 <pre class="programlisting">#define GST_BASE_SINK_PAD(obj)          (GST_BASE_SINK_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1153,13 +1123,13 @@
 <hr>
 <div class="refsect2">
 <a name="GST-BASE-SINK-GET-PREROLL-COND:CAPS"></a><h3>GST_BASE_SINK_GET_PREROLL_COND()</h3>
-<pre class="programlisting">#define GST_BASE_SINK_GET_PREROLL_COND(pad)   (GST_BASE_SINK_CAST(pad)-&gt;preroll_cond)
+<pre class="programlisting">#define GST_BASE_SINK_GET_PREROLL_COND(pad)   (&amp;GST_BASE_SINK_CAST(pad)-&gt;preroll_cond)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BASE-SINK-GET-PREROLL-LOCK:CAPS"></a><h3>GST_BASE_SINK_GET_PREROLL_LOCK()</h3>
-<pre class="programlisting">#define GST_BASE_SINK_GET_PREROLL_LOCK(pad)   (GST_BASE_SINK_CAST(pad)-&gt;preroll_lock)
+<pre class="programlisting">#define GST_BASE_SINK_GET_PREROLL_LOCK(pad)   (&amp;GST_BASE_SINK_CAST(pad)-&gt;preroll_lock)
 </pre>
 </div>
 <hr>
@@ -1182,11 +1152,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS"></a><h3>GST_BASE_SINK_PREROLL_TIMED_WAIT()</h3>
-<pre class="programlisting">#define             GST_BASE_SINK_PREROLL_TIMED_WAIT(pad, timeval)</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-BASE-SINK-PREROLL-TRYLOCK:CAPS"></a><h3>GST_BASE_SINK_PREROLL_TRYLOCK()</h3>
 <pre class="programlisting">#define GST_BASE_SINK_PREROLL_TRYLOCK(pad)    (g_mutex_trylock(GST_BASE_SINK_GET_PREROLL_LOCK(pad)))
 </pre>
@@ -1229,11 +1194,11 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBaseSink--enable-last-buffer"></a><h3>The <code class="literal">"enable-last-buffer"</code> property</h3>
-<pre class="programlisting">  "enable-last-buffer"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
+<a name="GstBaseSink--enable-last-sample"></a><h3>The <code class="literal">"enable-last-sample"</code> property</h3>
+<pre class="programlisting">  "enable-last-sample"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>
-Enable the last-buffer property. If FALSE, basesink doesn't keep a
-reference to the last buffer arrived and the last-buffer property is always
+Enable the last-sample property. If FALSE, basesink doesn't keep a
+reference to the last buffer arrived and the last-sample property is always
 set to NULL. This can be useful if you need buffers to be released as soon
 as possible, eg. if you're using a buffer pool.
 </p>
@@ -1242,8 +1207,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBaseSink--last-buffer"></a><h3>The <code class="literal">"last-buffer"</code> property</h3>
-<pre class="programlisting">  "last-buffer"              <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>*            : Read</pre>
+<a name="GstBaseSink--last-sample"></a><h3>The <code class="literal">"last-sample"</code> property</h3>
+<pre class="programlisting">  "last-sample"              <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read</pre>
 <p>
 The last buffer that arrived in the sink and was used for preroll or for
 rendering. This property can be used to generate thumbnails. This property
@@ -1254,7 +1219,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstBaseSink--max-lateness"></a><h3>The <code class="literal">"max-lateness"</code> property</h3>
-<pre class="programlisting">  "max-lateness"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "max-lateness"             <span class="type">gint64</span>                : Read / Write</pre>
 <p>Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited).</p>
 <p>Allowed values: &gt;= -1</p>
 <p>Default value: -1</p>
@@ -1269,7 +1234,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstBaseSink--render-delay"></a><h3>The <code class="literal">"render-delay"</code> property</h3>
-<pre class="programlisting">  "render-delay"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "render-delay"             <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 The additional delay between synchronisation and actual rendering of the
 media. This property will add additional latency to the device in order to
@@ -1288,7 +1253,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstBaseSink--throttle-time"></a><h3>The <code class="literal">"throttle-time"</code> property</h3>
-<pre class="programlisting">  "throttle-time"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "throttle-time"            <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 The time to insert between buffers. This property can be used to control
 the maximum amount of buffers per second to render. Setting this property
@@ -1300,7 +1265,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstBaseSink--ts-offset"></a><h3>The <code class="literal">"ts-offset"</code> property</h3>
-<pre class="programlisting">  "ts-offset"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>                : Read / Write</pre>
+<pre class="programlisting">  "ts-offset"                <span class="type">gint64</span>                : Read / Write</pre>
 <p>
 Controls the final synchronisation, a negative value will render the buffer
 earlier while a positive value delays playback. This property can be
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index cbe0e58..1cabaf4 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseSrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="gstreamer-libs-GstBaseParse.html" title="GstBaseParse">
 <link rel="next" href="GstBaseSink.html" title="GstBaseSink">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstBaseParse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstBaseSink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -47,16 +47,16 @@
 struct              <a class="link" href="GstBaseSrc.html#GstBaseSrc-struct" title="struct GstBaseSrc">GstBaseSrc</a>;
 struct              <a class="link" href="GstBaseSrc.html#GstBaseSrcClass" title="struct GstBaseSrcClass">GstBaseSrcClass</a>;
 enum                <a class="link" href="GstBaseSrc.html#GstBaseSrcFlags" title="enum GstBaseSrcFlags">GstBaseSrcFlags</a>;
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()">gst_base_src_wait_playing</a>           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()">gst_base_src_wait_playing</a>           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-is-live" title="gst_base_src_is_live ()">gst_base_src_is_live</a>                (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-live" title="gst_base_src_set_live ()">gst_base_src_set_live</a>               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> live</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-format" title="gst_base_src_set_format ()">gst_base_src_set_format</a>             (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-query-latency" title="gst_base_src_query_latency ()">gst_base_src_query_latency</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstBaseSrc.html#gst-base-src-get-blocksize" title="gst_base_src_get_blocksize ()">gst_base_src_get_blocksize</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-blocksize" title="gst_base_src_set_blocksize ()">gst_base_src_set_blocksize</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blocksize</code></em>);
@@ -66,11 +66,11 @@
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-dynamic-size" title="gst_base_src_set_dynamic_size ()">gst_base_src_set_dynamic_size</a>       (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-new-seamless-segment" title="gst_base_src_new_seamless_segment ()">gst_base_src_new_seamless_segment</a>   (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-set-caps" title="gst_base_src_set_caps ()">gst_base_src_set_caps</a>               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 #define             <a class="link" href="GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS" title="GST_BASE_SRC_PAD()">GST_BASE_SRC_PAD</a>                    (obj)
 </pre>
 </div>
@@ -79,8 +79,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseSrc
                            +----<a class="link" href="GstPushSrc.html" title="GstPushSrc">GstPushSrc</a>
 </pre>
@@ -108,17 +108,17 @@
 <p>
 </p>
 <p>
-The source can be configured to operate in any <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> with the
+The source can be configured to operate in any <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> with the
 <a class="link" href="GstBaseSrc.html#gst-base-src-set-format" title="gst_base_src_set_format ()"><code class="function">gst_base_src_set_format()</code></a> method. The currently set format determines
-the format of the internal <a href="../gstreamer-0.11/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> and any <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GST-EVENT-NEWSEGMENT:CAPS"><span class="type">GST_EVENT_NEWSEGMENT</span></a>
-events. The default format for <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>.
+the format of the internal <a href="../gstreamer-1.0/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> and any <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GST-EVENT-NEWSEGMENT:CAPS"><span class="type">GST_EVENT_NEWSEGMENT</span></a>
+events. The default format for <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>.
 </p>
 <p>
 <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> always supports push mode scheduling. If the following
 conditions are met, it also supports pull mode scheduling:
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>The format is set to <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a> (default).</p></li>
+<li class="listitem"><p>The format is set to <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a> (default).</p></li>
 <li class="listitem"><p><a class="link" href="GstBaseSrc.html#GstBaseSrcClass.is-seekable"><code class="function">GstBaseSrcClass.is_seekable()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p></li>
 </ul></div>
 <p>
@@ -127,7 +127,7 @@
 If all the conditions are met for operating in pull mode, <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is
 automatically seekable in push mode as well. The following conditions must
 be met to make the element seekable in push mode when the format is not
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>:
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>:
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
 <li class="listitem"><p>
@@ -164,7 +164,7 @@
 <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.create"><code class="function">GstBaseSrcClass.create()</code></a> method will not be called in PAUSED but only in
 PLAYING. To signal the pipeline that the element will not produce data, the
 return value from the READY to PAUSED state will be
-<a href="../gstreamer-0.11/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><span class="type">GST_STATE_CHANGE_NO_PREROLL</span></a>.
+<a href="../gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><span class="type">GST_STATE_CHANGE_NO_PREROLL</span></a>.
 </p>
 <p>
 A typical live source will timestamp the buffers it creates with the
@@ -200,25 +200,43 @@
 should be named "src". A source implementation (subclass of <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a>)
 should install a pad template in its class_init function, like so:
 </p>
-<div class="informalexample"><pre class="programlisting">
-static void
-my_element_class_init (GstMyElementClass *klass)
-{
-  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
-  // srctemplate should be a <a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction
-  // <a href="../gstreamer-0.11/GstPad.html#GST-PAD-SRC:CAPS">GST_PAD_SRC</a> and name "src"
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&amp;srctemplate));
-  // see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a>
-  gst_element_class_set_details (gstelement_class, &amp;details);
-}
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
+<span class="function">my_element_class_init</span> <span class="gtkdoc opt">(</span>GstMyElementClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc slc">// srctemplate should be a <a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction</span>
+  <span class="gtkdoc slc">// <a href="../gstreamer-1.0/GstPad.html#GST-PAD-SRC:CAPS">GST_PAD_SRC</a> and name &quot;src&quot;</span>
+  <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>srctemplate<span class="gtkdoc opt">));</span>
+  <span class="gtkdoc slc">// see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a></span>
+  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-set-details">gst_element_class_set_details</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">, &amp;</span>details<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <p>
 </p>
 <p>
 </p>
 <div class="refsect2">
-<a name="id523686"></a><h3>Controlled shutdown of live sources in applications</h3>
+<a name="idp9228272"></a><h3>Controlled shutdown of live sources in applications</h3>
 <p>
 Applications that record from a live source may want to stop recording
 in a controlled way, so that the recording is stopped, but the data
@@ -232,8 +250,8 @@
 <p>
 Since GStreamer 0.10.16 an application may send an EOS event to a source
 element to make it perform the EOS logic (send EOS event downstream or post a
-<a href="../gstreamer-0.11/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><span class="type">GST_MESSAGE_SEGMENT_DONE</span></a> on the bus). This can typically be done
-with the <a href="../gstreamer-0.11/GstElement.html#gst-element-send-event"><code class="function">gst_element_send_event()</code></a> function on the element or its parent bin.
+<a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><span class="type">GST_MESSAGE_SEGMENT_DONE</span></a> on the bus). This can typically be done
+with the <a href="../gstreamer-1.0/GstElement.html#gst-element-send-event"><code class="function">gst_element_send_event()</code></a> function on the element or its parent bin.
 </p>
 <p>
 After the EOS has been sent to the element, the application should wait for
@@ -269,7 +287,7 @@
   /* decide on caps */
   gboolean      (*negotiate)    (GstBaseSrc *src);
   /* called if, in negotiation, caps need fixating */
-  void          (*fixate)       (GstBaseSrc *src, GstCaps *caps);
+  GstCaps *     (*fixate)       (GstBaseSrc *src, GstCaps *caps);
   /* notify the subclass of new caps */
   gboolean      (*set_caps)     (GstBaseSrc *src, GstCaps *caps);
 
@@ -332,7 +350,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
@@ -359,7 +377,9 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSrcClass.start"></a>start</code></em> ()</span></p></td>
 <td>Start processing. Subclasses should open resources and prepare
-to produce data.</td>
+to produce data. Implementation should call <code class="function">gst_base_src_start_complete()</code>
+when the operation completes, either from the current thread or any other
+thread that finishes the start operation asynchronously.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSrcClass.stop"></a>stop</code></em> ()</span></p></td>
@@ -396,8 +416,8 @@
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSrcClass.unlock"></a>unlock</code></em> ()</span></p></td>
 <td>Unlock any pending access to the resource. Subclasses should
 unblock any blocked function ASAP. In particular, any <code class="function">create()</code> function in
-progress should be unblocked and should return GST_FLOW_WRONG_STATE. Any
-future <em class="parameter"><code>create</code></em>() function call should also return GST_FLOW_WRONG_STATE
+progress should be unblocked and should return GST_FLOW_FLUSHING. Any
+future <em class="parameter"><code>create</code></em>() function call should also return GST_FLOW_FLUSHING
 until the <em class="parameter"><code>unlock_stop</code></em>() function has been called.</td>
 </tr>
 <tr>
@@ -419,7 +439,7 @@
 When the subclass returns GST_FLOW_OK, it MUST return a buffer of the
 requested size unless fewer bytes are available because an EOS condition
 is near. No buffer should be returned when the return value is different
-from GST_FLOW_OK. A return value of GST_FLOW_UNEXPECTED signifies that the
+from GST_FLOW_OK. A return value of GST_FLOW_EOS signifies that the
 end of stream is reached. The default implementation will call <em class="parameter"><code>alloc</code></em> and
 then call <em class="parameter"><code>fill</code></em>.</td>
 </tr>
@@ -440,19 +460,25 @@
 <div class="refsect2">
 <a name="GstBaseSrcFlags"></a><h3>enum GstBaseSrcFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_BASE_SRC_STARTED           = (GST_ELEMENT_FLAG_LAST &lt;&lt; 0),
+  GST_BASE_SRC_FLAG_STARTING     = (GST_ELEMENT_FLAG_LAST &lt;&lt; 0),
+  GST_BASE_SRC_FLAG_STARTED      = (GST_ELEMENT_FLAG_LAST &lt;&lt; 1),
   /* padding */
-  GST_BASE_SRC_FLAG_LAST         = (GST_ELEMENT_FLAG_LAST &lt;&lt; 2)
+  GST_BASE_SRC_FLAG_LAST         = (GST_ELEMENT_FLAG_LAST &lt;&lt; 6)
 } GstBaseSrcFlags;
 </pre>
 <p>
-The <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> flags that a basesrc element may have.
+The <a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> flags that a basesrc element may have.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-BASE-SRC-STARTED:CAPS"></a><span class="term"><code class="literal">GST_BASE_SRC_STARTED</code></span></p></td>
+<td><p><a name="GST-BASE-SRC-FLAG-STARTING:CAPS"></a><span class="term"><code class="literal">GST_BASE_SRC_FLAG_STARTING</code></span></p></td>
+<td>has source is starting
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BASE-SRC-FLAG-STARTED:CAPS"></a><span class="term"><code class="literal">GST_BASE_SRC_FLAG_STARTED</code></span></p></td>
 <td>has source been started
 </td>
 </tr>
@@ -467,7 +493,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-src-wait-playing"></a><h3>gst_base_src_wait_playing ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_src_wait_playing           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_src_wait_playing           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);</pre>
 <p>
 If the <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.create"><code class="function">GstBaseSrcClass.create()</code></a> method performs its own synchronisation
 against the clock it must unblock when going from PLAYING to the PAUSED state
@@ -475,9 +501,9 @@
 </p>
 <p>
 This function will block until a state change to PLAYING happens (in which
-case this function returns <a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
+case this function returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
 to a state change to READY or a FLUSH event (in which case this function
-returns <a href="../gstreamer-0.11/GstPad.html#GST-FLOW-WRONG-STATE:CAPS"><span class="type">GST_FLOW_WRONG_STATE</span></a>).
+returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -489,7 +515,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if <em class="parameter"><code>src</code></em> is PLAYING and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if <em class="parameter"><code>src</code></em> is PLAYING and processing can
 continue. Any other return value should be returned from the create vmethod.</td>
 </tr>
 </tbody>
@@ -552,7 +578,7 @@
 <div class="refsect2">
 <a name="gst-base-src-set-format"></a><h3>gst_base_src_set_format ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_src_set_format             (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
 <p>
 Sets the default format of the source. This will be the format used
 for sending NEW_SEGMENT events and for performing seeks.
@@ -562,7 +588,7 @@
 operate in pull mode if the <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.is-seekable"><code class="function">GstBaseSrcClass.is_seekable()</code></a> returns TRUE.
 </p>
 <p>
-This function must only be called in states &lt; <a href="../gstreamer-0.11/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
+This function must only be called in states &lt; <a href="../gstreamer-1.0/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -584,8 +610,8 @@
 <a name="gst-base-src-query-latency"></a><h3>gst_base_src_query_latency ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_src_query_latency          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
 <p>
 Query the source for the latency parameters. <em class="parameter"><code>live</code></em> will be TRUE when <em class="parameter"><code>src</code></em> is
 configured as a live source. <em class="parameter"><code>min_latency</code></em> will be set to the difference
@@ -742,15 +768,15 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-src-new-seamless-segment"></a><h3>gst_base_src_new_seamless_segment ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_src_new_seamless_segment   (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> start</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> stop</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> position</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> position</code></em>);</pre>
 <p>
 Prepare a new seamless segment for emission downstream. This function must
 only be called by derived sub-classes, and only from the <code class="function">create()</code> function,
@@ -792,7 +818,7 @@
 <div class="refsect2">
 <a name="gst-base-src-set-caps"></a><h3>gst_base_src_set_caps ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_src_set_caps               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Set new caps on the basesrc source pad.
 </p>
@@ -806,7 +832,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
 </td>
 </tr>
 <tr>
@@ -823,7 +849,7 @@
 <pre class="programlisting">#define GST_BASE_SRC_PAD(obj)                 (GST_BASE_SRC_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/libs/html/GstBaseTransform.html b/docs/libs/html/GstBaseTransform.html
index 674142b..1634f86 100644
--- a/docs/libs/html/GstBaseTransform.html
+++ b/docs/libs/html/GstBaseTransform.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseTransform</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="GstBaseSink.html" title="GstBaseSink">
 <link rel="next" href="GstPushSrc.html" title="GstPushSrc">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstBaseSink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstPushSrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -57,21 +57,15 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-update-qos" title="gst_base_transform_update_qos ()">gst_base_transform_update_qos</a>       (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-set-gap-aware" title="gst_base_transform_set_gap_aware ()">gst_base_transform_set_gap_aware</a>    (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> gap_aware</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-suggest" title="gst_base_transform_suggest ()">gst_base_transform_suggest</a>          (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-reconfigure" title="gst_base_transform_reconfigure ()">gst_base_transform_reconfigure</a>      (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS" title="GST_BASE_TRANSFORM_SINK_NAME">GST_BASE_TRANSFORM_SINK_NAME</a>
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS" title="GST_BASE_TRANSFORM_SRC_NAME">GST_BASE_TRANSFORM_SRC_NAME</a>
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS" title="GST_BASE_TRANSFORM_SINK_PAD()">GST_BASE_TRANSFORM_SINK_PAD</a>         (obj)
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS" title="GST_BASE_TRANSFORM_SRC_PAD()">GST_BASE_TRANSFORM_SRC_PAD</a>          (obj)
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" title="GST_BASE_TRANSFORM_FLOW_DROPPED">GST_BASE_TRANSFORM_FLOW_DROPPED</a>
-#define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-LOCK:CAPS" title="GST_BASE_TRANSFORM_LOCK()">GST_BASE_TRANSFORM_LOCK</a>             (obj)
-#define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-UNLOCK:CAPS" title="GST_BASE_TRANSFORM_UNLOCK()">GST_BASE_TRANSFORM_UNLOCK</a>           (obj)
 </pre>
 </div>
 <div class="refsect1">
@@ -79,8 +73,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseTransform
 </pre>
 </div>
@@ -117,7 +111,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id529984"></a><h3>Use Cases</h3>
+<a name="idp8766032"></a><h3>Use Cases</h3>
 <p>
 </p>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -257,7 +251,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="id494548"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
+<a name="idp10669744"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
 <p>
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -325,12 +319,13 @@
   GstElementClass parent_class;
 
   gboolean       passthrough_on_same_caps;
+  gboolean       transform_ip_on_passthrough;
 
   /* virtual methods for subclasses */
   GstCaps* (*transform_caps) (GstBaseTransform *trans,
                                    GstPadDirection direction,
                                    GstCaps *caps, GstCaps *filter);
-  void		(*fixate_caps)	  (GstBaseTransform *trans,
+  GstCaps* (*fixate_caps)	  (GstBaseTransform *trans,
                                    GstPadDirection direction, GstCaps *caps,
                                    GstCaps *othercaps);
   gboolean      (*accept_caps)    (GstBaseTransform *trans, GstPadDirection direction,
@@ -340,10 +335,13 @@
   gboolean      (*query)          (GstBaseTransform *trans, GstPadDirection direction,
                                    GstQuery *query);
 
-  /* propose allocation query parameters for input buffers */
-  gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *query);
   /* decide allocation query for output buffers */
-  gboolean      (*decide_allocation) (GstBaseTransform *trans, GstQuery *query);
+  gboolean      (*decide_allocation)  (GstBaseTransform *trans, GstQuery *query);
+  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query, GType api);
+
+  /* propose allocation query parameters for input buffers */
+  gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query,
+                                       GstQuery *query);
 
   /* transform size */
   gboolean      (*transform_size) (GstBaseTransform *trans,
@@ -365,8 +363,11 @@
   GstFlowReturn (*prepare_output_buffer) (GstBaseTransform * trans,
                                           GstBuffer *input, GstBuffer **outbuf);
 
-  gboolean      (*copy_metadata)     (GstBaseTransform * trans, GstBuffer *input,
+  /* metadata */
+  gboolean      (*copy_metadata)     (GstBaseTransform *trans, GstBuffer *input,
                                       GstBuffer *outbuf);
+  gboolean      (*transform_meta)    (GstBaseTransform *trans, GstBuffer *outbuf,
+                                      GstMeta *meta, GstBuffer *inbuf);
 
   void          (*before_transform)  (GstBaseTransform *trans, GstBuffer *buffer);
 
@@ -386,13 +387,22 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.passthrough-on-same-caps"></a>passthrough_on_same_caps</code></em>;</span></p></td>
-<td>If set to TRUE, passthrough mode will be
-automatically enabled if the caps are the same.</td>
+<td>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, passthrough mode will be
+automatically enabled if the caps are the same.
+Set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> by default.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.transform-ip-on-passthrough"></a>transform_ip_on_passthrough</code></em>;</span></p></td>
+<td>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, <em class="parameter"><code>transform_ip</code></em> will be called in
+passthrough mode. The passed buffer might not be
+writable. When <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, neither <em class="parameter"><code>transform</code></em> nor
+<em class="parameter"><code>transform_ip</code></em> will be called in passthrough mode.
+Set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> by default.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-caps"></a>transform_caps</code></em> ()</span></p></td>
@@ -403,7 +413,9 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.fixate-caps"></a>fixate_caps</code></em> ()</span></p></td>
 <td>Optional. Given the pad in this direction and the given
-caps, fixate the caps on the other pad.</td>
+caps, fixate the caps on the other pad. The function takes
+ownership of <em class="parameter"><code>othercaps</code></em> and returns a fixated version of
+<em class="parameter"><code>othercaps</code></em>. <em class="parameter"><code>othercaps</code></em> is not guaranteed to be writable.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.accept-caps"></a>accept_caps</code></em> ()</span></p></td>
@@ -424,18 +436,32 @@
 query</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.propose-allocation"></a>propose_allocation</code></em> ()</span></p></td>
-<td>Propose buffer allocation parameters for upstream elements.
-This function is only called when not operating in
-passthrough mode. The default implementation is NULL.</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.decide-allocation"></a>decide_allocation</code></em> ()</span></p></td>
 <td>Setup the allocation parameters for allocating output
 buffers. The passed in query contains the result of the
 downstream allocation query. This function is only called
 when not operating in passthrough mode. The default
-implementation is NULL.</td>
+implementation will remove all memory dependent metadata.
+If there is ia <em class="parameter"><code>filter_meta</code></em> method implementation, it will
+be called for all metadata API in the downstream query,
+otherwise the metadata API is removed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.filter-meta"></a>filter_meta</code></em> ()</span></p></td>
+<td>Return TRUE if the metadata API should be proposed in the
+upstream allocation query. The default implementation is NULL
+and will cause all metadata to be removed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.propose-allocation"></a>propose_allocation</code></em> ()</span></p></td>
+<td>Propose buffer allocation parameters for upstream elements.
+This function must be implemented if the element reads or
+writes the buffer content. The query that was passed to
+the decide_allocation is passed in this method (or NULL
+when the element is in passthrough mode). The default
+implementation will pass the query downstream when in
+passthrough mode and will copy all the filtered metadata
+API in non-passthrough mode.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-size"></a>transform_size</code></em> ()</span></p></td>
@@ -494,6 +520,13 @@
 offsets of the buffer.</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.transform-meta"></a>transform_meta</code></em> ()</span></p></td>
+<td>Optional. Transform the metadata on the input buffer to the
+output buffer. By default this method is NULL and no
+metadata is copied. subclasses can implement this method and
+return TRUE if the metadata is to be copied.</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.before-transform"></a>before_transform</code></em> ()</span></p></td>
 <td>Optional. Since 0.10.22
 This method is called right before the base class will
@@ -678,8 +711,8 @@
 <a name="gst-base-transform-update-qos"></a><h3>gst_base_transform_update_qos ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_transform_update_qos       (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
 Set the QoS parameters in the transform. This function is called internally
 when a QOS event is received but subclasses can provide custom information
@@ -720,7 +753,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> gap_aware</code></em>);</pre>
 <p>
 If <em class="parameter"><code>gap_aware</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (the default), output buffers will have the
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"><code class="literal">GST_BUFFER_FLAG_GAP</code></a> flag unset.
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"><code class="literal">GST_BUFFER_FLAG_GAP</code></a> flag unset.
 </p>
 <p>
 If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the element must handle output buffers with this flag set
@@ -748,56 +781,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-base-transform-suggest"></a><h3>gst_base_transform_suggest ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_base_transform_suggest          (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>
-Instructs <em class="parameter"><code>trans</code></em> to suggest new <em class="parameter"><code>caps</code></em> upstream. A copy of <em class="parameter"><code>caps</code></em> will be
-taken.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
-<td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>caps to suggest. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>buffer size to suggest</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.21</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-base-transform-reconfigure"></a><h3>gst_base_transform_reconfigure ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_base_transform_reconfigure      (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>);</pre>
-<p>
-Instructs <em class="parameter"><code>trans</code></em> to renegotiate a new downstream transform on the next
-buffer. This function is typically called after properties on the transform
-were set that influence the output format.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>trans</code></em> :</span></p></td>
-<td>a <a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a>
-</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.21</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-BASE-TRANSFORM-SINK-NAME:CAPS"></a><h3>GST_BASE_TRANSFORM_SINK_NAME</h3>
 <pre class="programlisting">#define GST_BASE_TRANSFORM_SINK_NAME "sink"
 </pre>
@@ -820,7 +803,7 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_SINK_PAD(obj) (GST_BASE_TRANSFORM_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the sink <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the sink <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -837,7 +820,7 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_SRC_PAD(obj)		(GST_BASE_TRANSFORM_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the source <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -854,45 +837,11 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_FLOW_DROPPED   GST_FLOW_CUSTOM_SUCCESS
 </pre>
 <p>
-A <a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from transform and transform_ip to
+A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from transform and transform_ip to
 indicate that no output buffer was generated.
 </p>
 <p class="since">Since 0.10.13</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GST-BASE-TRANSFORM-LOCK:CAPS"></a><h3>GST_BASE_TRANSFORM_LOCK()</h3>
-<pre class="programlisting">#define GST_BASE_TRANSFORM_LOCK(obj)   g_mutex_lock (GST_BASE_TRANSFORM_CAST (obj)-&gt;transform_lock)
-</pre>
-<p>
-Obtain a lock to protect the transform function from concurrent access.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>base transform instance</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.13</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-BASE-TRANSFORM-UNLOCK:CAPS"></a><h3>GST_BASE_TRANSFORM_UNLOCK()</h3>
-<pre class="programlisting">#define GST_BASE_TRANSFORM_UNLOCK(obj) g_mutex_unlock (GST_BASE_TRANSFORM_CAST (obj)-&gt;transform_lock)
-</pre>
-<p>
-Release the lock that protects the transform function from concurrent access.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>base transform instance</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.13</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="GstBaseTransform.property-details"></a><h2>Property Details</h2>
diff --git a/docs/libs/html/GstCollectPads.html b/docs/libs/html/GstCollectPads.html
deleted file mode 100644
index ba368de..0000000
--- a/docs/libs/html/GstCollectPads.html
+++ /dev/null
@@ -1,952 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstCollectPads</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
-<link rel="prev" href="gstreamer-libs-GstByteWriter.html" title="GstByteWriter">
-<link rel="next" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-libs-GstByteWriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-libs-GstTypeFindHelper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GstCollectPads.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GstCollectPads.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GstCollectPads.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="GstCollectPads"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="GstCollectPads.top_of_page"></a>GstCollectPads</span></h2>
-<p>GstCollectPads — manages a set of pads that operate in collect mode</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GstCollectPads.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/base/gstcollectpads.h&gt;
-
-struct              <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData">GstCollectData</a>;
-struct              <a class="link" href="GstCollectPads.html#GstCollectPads-struct" title="struct GstCollectPads">GstCollectPads</a>;
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()">*GstCollectPadsFunction</a>)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         (<a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()">*GstCollectPadsClipFunction</a>)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()">*GstCollectDataDestroyNotify</a>)      (<em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="returnvalue">GstCollectPads</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-new" title="gst_collect_pads_new ()">gst_collect_pads_new</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-set-function" title="gst_collect_pads_set_function ()">gst_collect_pads_set_function</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()"><span class="type">GstCollectPadsFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-set-clip-function" title="gst_collect_pads_set_clip_function ()">gst_collect_pads_set_clip_function</a>  (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()"><span class="type">GstCollectPadsClipFunction</span></a> clipfunc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad" title="gst_collect_pads_add_pad ()">gst_collect_pads_add_pad</a>            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad-full" title="gst_collect_pads_add_pad_full ()">gst_collect_pads_add_pad_full</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()"><span class="type">GstCollectDataDestroyNotify</span></a> destroy_notify</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()">gst_collect_pads_remove_pad</a>         (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads.html#gst-collect-pads-is-active" title="gst_collect_pads_is_active ()">gst_collect_pads_is_active</a>          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()">gst_collect_pads_collect</a>            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()">gst_collect_pads_collect_range</a>      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-start" title="gst_collect_pads_start ()">gst_collect_pads_start</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-stop" title="gst_collect_pads_stop ()">gst_collect_pads_stop</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-set-flushing" title="gst_collect_pads_set_flushing ()">gst_collect_pads_set_flushing</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()">gst_collect_pads_peek</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-pop" title="gst_collect_pads_pop ()">gst_collect_pads_pop</a>                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads.html#gst-collect-pads-available" title="gst_collect_pads_available ()">gst_collect_pads_available</a>          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-read-buffer" title="gst_collect_pads_read_buffer ()">gst_collect_pads_read_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-take-buffer" title="gst_collect_pads_take_buffer ()">gst_collect_pads_take_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads.html#gst-collect-pads-flush" title="gst_collect_pads_flush ()">gst_collect_pads_flush</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstCollectPads.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----GstCollectPads
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstCollectPads.description"></a><h2>Description</h2>
-<p>
-Manages a set of pads that operate in collect mode. This means that control
-is given to the manager of this object when all pads have data.
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>
-    Collectpads are created with <a class="link" href="GstCollectPads.html#gst-collect-pads-new" title="gst_collect_pads_new ()"><code class="function">gst_collect_pads_new()</code></a>. A callback should then
-    be installed with <a class="link" href="GstCollectPads.html#gst-collect-pads-set-function" title="gst_collect_pads_set_function ()"><code class="function">gst_collect_pads_set_function()</code></a>.
-  </p></li>
-<li class="listitem"><p>
-    Pads are added to the collection with <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad" title="gst_collect_pads_add_pad ()"><code class="function">gst_collect_pads_add_pad()</code></a>/
-    <a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()"><code class="function">gst_collect_pads_remove_pad()</code></a>. The pad
-    has to be a sinkpad. The chain and event functions of the pad are
-    overridden. The element_private of the pad is used to store
-    private information for the collectpads.
-  </p></li>
-<li class="listitem"><p>
-    For each pad, data is queued in the _chain function or by
-    performing a pull_range.
-  </p></li>
-<li class="listitem"><p>
-    When data is queued on all pads, the callback function is called.
-  </p></li>
-<li class="listitem"><p>
-    Data can be dequeued from the pad with the <a class="link" href="GstCollectPads.html#gst-collect-pads-pop" title="gst_collect_pads_pop ()"><code class="function">gst_collect_pads_pop()</code></a> method.
-    One can peek at the data with the <a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()"><code class="function">gst_collect_pads_peek()</code></a> function.
-    These functions will return NULL if the pad received an EOS event. When all
-    pads return NULL from a <a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()"><code class="function">gst_collect_pads_peek()</code></a>, the element can emit an EOS
-    event itself.
-  </p></li>
-<li class="listitem"><p>
-    Data can also be dequeued in byte units using the <a class="link" href="GstCollectPads.html#gst-collect-pads-available" title="gst_collect_pads_available ()"><code class="function">gst_collect_pads_available()</code></a>,
-    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html#gst-collect-pads-read"><code class="function">gst_collect_pads_read()</code></a> and <a class="link" href="GstCollectPads.html#gst-collect-pads-flush" title="gst_collect_pads_flush ()"><code class="function">gst_collect_pads_flush()</code></a> calls.
-  </p></li>
-<li class="listitem"><p>
-    Elements should call <a class="link" href="GstCollectPads.html#gst-collect-pads-start" title="gst_collect_pads_start ()"><code class="function">gst_collect_pads_start()</code></a> and <a class="link" href="GstCollectPads.html#gst-collect-pads-stop" title="gst_collect_pads_stop ()"><code class="function">gst_collect_pads_stop()</code></a> in
-    their state change functions to start and stop the processing of the collecpads.
-    The <a class="link" href="GstCollectPads.html#gst-collect-pads-stop" title="gst_collect_pads_stop ()"><code class="function">gst_collect_pads_stop()</code></a> call should be called before calling the parent
-    element state change function in the PAUSED_TO_READY state change to ensure
-    no pad is blocked and the element can finish streaming.
-  </p></li>
-<li class="listitem"><p>
-    <a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()"><code class="function">gst_collect_pads_collect()</code></a> and <a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()"><code class="function">gst_collect_pads_collect_range()</code></a> can be used by
-    elements that start a <a href="../gstreamer-0.11/GstTask.html"><span class="type">GstTask</span></a> to drive the collect_pads. This feature is however
-    not yet implemented.
-  </p></li>
-</ul></div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-05-10 (0.10.6)
-</p>
-</div>
-<div class="refsect1">
-<a name="GstCollectPads.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstCollectData"></a><h3>struct GstCollectData</h3>
-<pre class="programlisting">struct GstCollectData {
-  /* with LOCK of @collect */
-  GstCollectPads        *collect;
-  GstPad                *pad;
-  GstBuffer             *buffer;
-  guint                  pos;
-  GstSegment             segment;
-};
-</pre>
-<p>
-Structure used by the collect_pads.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *<em class="structfield"><code><a name="GstCollectData.collect"></a>collect</code></em>;</span></p></td>
-<td>owner <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *<em class="structfield"><code><a name="GstCollectData.pad"></a>pad</code></em>;</span></p></td>
-<td>
-<a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> managed by this data</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstCollectData.buffer"></a>buffer</code></em>;</span></p></td>
-<td>currently queued buffer.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstCollectData.pos"></a>pos</code></em>;</span></p></td>
-<td>position in the buffer</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> <em class="structfield"><code><a name="GstCollectData.segment"></a>segment</code></em>;</span></p></td>
-<td>last segment received.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstCollectPads-struct"></a><h3>struct GstCollectPads</h3>
-<pre class="programlisting">struct GstCollectPads {
-  GSList        *data;                  /* list of CollectData items */
-};
-</pre>
-<p>
-Collectpads object.
-Note that <em class="parameter"><code>data</code></em> is only reliable for iterating the list of <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a>
-when inside the <a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()"><span class="type">GstCollectPadsFunction</span></a> callback.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *<em class="structfield"><code><a name="GstCollectPads-struct.data"></a>data</code></em>;</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> managed by this <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstCollectPadsFunction"></a><h3>GstCollectPadsFunction ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsFunction)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-A function that will be called when all pads have received data.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> that triggered the callback</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data passed to <a class="link" href="GstCollectPads.html#gst-collect-pads-set-function" title="gst_collect_pads_set_function ()"><code class="function">gst_collect_pads_set_function()</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstCollectPadsClipFunction"></a><h3>GstCollectPadsClipFunction ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         (*GstCollectPadsClipFunction)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-A function that will be called when <em class="parameter"><code>buffer</code></em> is received on the pad managed
-by <em class="parameter"><code>data</code></em> in the collecpad object <em class="parameter"><code>pads</code></em>.
-</p>
-<p>
-The function should use the segment of <em class="parameter"><code>data</code></em> and the negotiated media type on
-the pad to perform clipping of <em class="parameter"><code>buffer</code></em>. 
-</p>
-<p>
-This function takes ownership of <em class="parameter"><code>buffer</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>a <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>a <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that contains the clipped data of <em class="parameter"><code>buffer</code></em> or NULL when
-the buffer has been clipped completely.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.26</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstCollectDataDestroyNotify"></a><h3>GstCollectDataDestroyNotify ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstCollectDataDestroyNotify)      (<em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);</pre>
-<p>
-A function that will be called when the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> will be freed.
-It is passed the pointer to the structure and should free any custom
-memory and resources allocated for it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> that will be freed</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-new"></a><h3>gst_collect_pads_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="returnvalue">GstCollectPads</span></a> *    gst_collect_pads_new                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new instance of <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>, or NULL in case of an error. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-set-function"></a><h3>gst_collect_pads_set_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads_set_function       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()"><span class="type">GstCollectPadsFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Set the callback function and user data that will be called when
-all the pads added to the collection have buffers queued.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function to set</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data passed to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-set-clip-function"></a><h3>gst_collect_pads_set_clip_function ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads_set_clip_function  (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()"><span class="type">GstCollectPadsClipFunction</span></a> clipfunc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Install a clipping function that is called right after a buffer is received
-on a pad managed by <em class="parameter"><code>pads</code></em>. See <a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()"><span class="type">GstCollectPadsClipFunction</span></a> for more info.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>clipfunc</code></em> :</span></p></td>
-<td>clip function to install</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data to pass to <em class="parameter"><code>clip_func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.26</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-add-pad"></a><h3>gst_collect_pads_add_pad ()</h3>
-<pre class="programlisting"><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    gst_collect_pads_add_pad            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>
-Add a pad to the collection of collect pads. The pad has to be
-a sinkpad. The refcount of the pad is incremented. Use
-<a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()"><code class="function">gst_collect_pads_remove_pad()</code></a> to remove the pad from the collection
-again.
-</p>
-<p>
-This function will override the chain and event functions of the pad
-along with the element_private data, which is used to store private
-information for the collectpads.
-</p>
-<p>
-You specify a size for the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure
-so that you can use it to store additional information.
-</p>
-<p>
-The pad will be automatically activated in push mode when <em class="parameter"><code>pads</code></em> is
-started.
-</p>
-<p>
-This function calls <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad-full" title="gst_collect_pads_add_pad_full ()"><code class="function">gst_collect_pads_add_pad_full()</code></a> passing a value of NULL
-for destroy_notify.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to add. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> to identify the new pad. Or NULL
-if wrong parameters are supplied.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-add-pad-full"></a><h3>gst_collect_pads_add_pad_full ()</h3>
-<pre class="programlisting"><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    gst_collect_pads_add_pad_full       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()"><span class="type">GstCollectDataDestroyNotify</span></a> destroy_notify</code></em>);</pre>
-<p>
-Add a pad to the collection of collect pads. The pad has to be
-a sinkpad. The refcount of the pad is incremented. Use
-<a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()"><code class="function">gst_collect_pads_remove_pad()</code></a> to remove the pad from the collection
-again.
-</p>
-<p>
-You specify a size for the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure
-so that you can use it to store additional information.
-</p>
-<p>
-You can also specify a <a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()"><span class="type">GstCollectDataDestroyNotify</span></a> that will be called
-just before the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure is freed. It is passed the
-pointer to the structure and should free any custom memory and resources
-allocated for it.
-</p>
-<p>
-The pad will be automatically activated in push mode when <em class="parameter"><code>pads</code></em> is
-started.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to add. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> structure</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>destroy_notify</code></em> :</span></p></td>
-<td>function to be called before the returned <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a>
-structure is freed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> to identify the new pad. Or NULL
-if wrong parameters are supplied.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-remove-pad"></a><h3>gst_collect_pads_remove_pad ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads_remove_pad         (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Remove a pad from the collection of collect pads. This function will also
-free the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> and all the resources that were allocated with
-<a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad" title="gst_collect_pads_add_pad ()"><code class="function">gst_collect_pads_add_pad()</code></a>.
-</p>
-<p>
-The pad will be deactivated automatically when <em class="parameter"><code>pads</code></em> is stopped.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to remove. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could be removed.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-is-active"></a><h3>gst_collect_pads_is_active ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads_is_active          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Check if a pad is active.
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad is active.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-collect"></a><h3>gst_collect_pads_collect ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads_collect            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);</pre>
-<p>
-Collect data on all pads. This function is usually called
-from a <a href="../gstreamer-0.11/GstTask.html"><span class="type">GstTask</span></a> function in an element.
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-collect-range"></a><h3>gst_collect_pads_collect_range ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads_collect_range      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
-<p>
-Collect data with <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>length</code></em> on all pads. This function
-is typically called in the getrange function of an element.
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset to collect</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the length to collect</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-start"></a><h3>gst_collect_pads_start ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads_start              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);</pre>
-<p>
-Starts the processing of data in the collect_pads.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-stop"></a><h3>gst_collect_pads_stop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads_stop               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);</pre>
-<p>
-Stops the processing of data in the collect_pads. this function
-will also unblock any blocking operations.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-set-flushing"></a><h3>gst_collect_pads_set_flushing ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads_set_flushing       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
-<p>
-Change the flushing state of all the pads in the collection. No pad
-is able to accept anymore data when <em class="parameter"><code>flushing</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. Calling this
-function with <em class="parameter"><code>flushing</code></em> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> makes <em class="parameter"><code>pads</code></em> accept data again.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flushing</code></em> :</span></p></td>
-<td>desired state of the pads</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.7.</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-peek"></a><h3>gst_collect_pads_peek ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_peek               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);</pre>
-<p>
-Peek at the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
-should be called with the <em class="parameter"><code>pads</code></em> LOCK held, such as in the callback
-handler.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to peek</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The buffer in <em class="parameter"><code>data</code></em> or NULL if no buffer is queued.
-should unref the buffer after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-pop"></a><h3>gst_collect_pads_pop ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_pop                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);</pre>
-<p>
-Pop the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
-should be called with the <em class="parameter"><code>pads</code></em> LOCK held, such as in the callback
-handler.
-</p>
-<p>
-Free-function: gst_buffer_unref
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to pop</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The buffer in <em class="parameter"><code>data</code></em> or NULL if no buffer was
-queued. You should unref the buffer after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-available"></a><h3>gst_collect_pads_available ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_collect_pads_available          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);</pre>
-<p>
-Query how much bytes can be read from each queued buffer. This means
-that the result of this call is the maximum number of bytes that can
-be read from each of the pads.
-</p>
-<p>
-This function should be called with <em class="parameter"><code>pads</code></em> LOCK held, such as
-in the callback.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The maximum number of bytes queued on all pads. This function
-returns 0 if a pad has no queued buffer.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-read-buffer"></a><h3>gst_collect_pads_read_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_read_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>
-Get a buffer of <em class="parameter"><code>size</code></em> bytes from the given pad <em class="parameter"><code>data</code></em>.
-</p>
-<p>
-This function should be called with <em class="parameter"><code>pads</code></em> LOCK held, such as in the callback.
-</p>
-<p>
-Free-function: gst_buffer_unref
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the number of bytes to read</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. The size of the buffer can be less
-that requested. A return of NULL signals that the pad is end-of-stream.
-Unref the buffer with <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after use.
-MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-take-buffer"></a><h3>gst_collect_pads_take_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_take_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>
-Get a buffer of <em class="parameter"><code>size</code></em> bytes from the given pad <em class="parameter"><code>data</code></em>. Flushes the amount
-of read bytes.
-</p>
-<p>
-This function should be called with <em class="parameter"><code>pads</code></em> LOCK held, such as in the callback.
-</p>
-<p>
-Free-function: gst_buffer_unref
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the number of bytes to read</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. The size of the buffer can be less
-that requested. A return of NULL signals that the pad is end-of-stream.
-Unref the buffer after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-flush"></a><h3>gst_collect_pads_flush ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_collect_pads_flush              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>
-Flush <em class="parameter"><code>size</code></em> bytes from the pad <em class="parameter"><code>data</code></em>.
-</p>
-<p>
-This function should be called with <em class="parameter"><code>pads</code></em> LOCK held, such as
-in the callback.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to query</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>the data to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the number of bytes to flush</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The number of bytes flushed. This can be less than <em class="parameter"><code>size</code></em> and
-is 0 if the pad was end-of-stream.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/GstCollectPads2.html b/docs/libs/html/GstCollectPads2.html
new file mode 100644
index 0000000..aa8960a
--- /dev/null
+++ b/docs/libs/html/GstCollectPads2.html
@@ -0,0 +1,1500 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstCollectPads2</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
+<link rel="prev" href="gstreamer-libs-GstByteWriter.html" title="GstByteWriter">
+<link rel="next" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-libs-GstByteWriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-libs-GstTypeFindHelper.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#GstCollectPads2.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstCollectPads2.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstCollectPads2.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstCollectPads2"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstCollectPads2.top_of_page"></a>GstCollectPads2</span></h2>
+<p>GstCollectPads2 — manages a set of pads that operate in collect mode</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstCollectPads2.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gst/base/gstcollectpads2.h&gt;
+
+struct              <a class="link" href="GstCollectPads2.html#GstCollectPads2-struct" title="struct GstCollectPads2">GstCollectPads2</a>;
+struct              <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2">GstCollectData2</a>;
+<span class="returnvalue">void</span>                (<a class="link" href="GstCollectPads2.html#GstCollectData2DestroyNotify" title="GstCollectData2DestroyNotify ()">*GstCollectData2DestroyNotify</a>)     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads2.html#GstCollectPads2BufferFunction" title="GstCollectPads2BufferFunction ()">*GstCollectPads2BufferFunction</a>)    (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (<a class="link" href="GstCollectPads2.html#GstCollectPads2CompareFunction" title="GstCollectPads2CompareFunction ()">*GstCollectPads2CompareFunction</a>)   (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data2</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstCollectPads2.html#GstCollectPads2EventFunction" title="GstCollectPads2EventFunction ()">*GstCollectPads2EventFunction</a>)     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads2.html#GstCollectPads2ClipFunction" title="GstCollectPads2ClipFunction ()">*GstCollectPads2ClipFunction</a>)      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads2.html#GstCollectPads2Function" title="GstCollectPads2Function ()">*GstCollectPads2Function</a>)          (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+enum                <a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags">GstCollectPads2StateFlags</a>;
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE:CAPS" title="GST_COLLECT_PADS2_STATE()">GST_COLLECT_PADS2_STATE</a>             (data)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-IS-SET:CAPS" title="GST_COLLECT_PADS2_STATE_IS_SET()">GST_COLLECT_PADS2_STATE_IS_SET</a>      (data,
+                                                         flag)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-SET:CAPS" title="GST_COLLECT_PADS2_STATE_SET()">GST_COLLECT_PADS2_STATE_SET</a>         (data,
+                                                         flag)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-UNSET:CAPS" title="GST_COLLECT_PADS2_STATE_UNSET()">GST_COLLECT_PADS2_STATE_UNSET</a>       (data,
+                                                         flag)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS" title="GST_COLLECT_PADS2_GET_STREAM_LOCK()">GST_COLLECT_PADS2_GET_STREAM_LOCK</a>   (pads)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-LOCK:CAPS" title="GST_COLLECT_PADS2_STREAM_LOCK()">GST_COLLECT_PADS2_STREAM_LOCK</a>       (pads)
+#define             <a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS" title="GST_COLLECT_PADS2_STREAM_UNLOCK()">GST_COLLECT_PADS2_STREAM_UNLOCK</a>     (pads)
+<a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="returnvalue">GstCollectPads2</span></a> *   <a class="link" href="GstCollectPads2.html#gst-collect-pads2-new" title="gst_collect_pads2_new ()">gst_collect_pads2_new</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="returnvalue">GstCollectData2</span></a> *   <a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad" title="gst_collect_pads2_add_pad ()">gst_collect_pads2_add_pad</a>           (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
+<a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="returnvalue">GstCollectData2</span></a> *   <a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad-full" title="gst_collect_pads2_add_pad_full ()">gst_collect_pads2_add_pad_full</a>      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2DestroyNotify" title="GstCollectData2DestroyNotify ()"><span class="type">GstCollectData2DestroyNotify</span></a> destroy_notify</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> lock</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads2.html#gst-collect-pads2-remove-pad" title="gst_collect_pads2_remove_pad ()">gst_collect_pads2_remove_pad</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-start" title="gst_collect_pads2_start ()">gst_collect_pads2_start</a>             (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-stop" title="gst_collect_pads2_stop ()">gst_collect_pads2_stop</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads2.html#gst-collect-pads2-available" title="gst_collect_pads2_available ()">gst_collect_pads2_available</a>         (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads2.html#gst-collect-pads2-is-active" title="gst_collect_pads2_is_active ()">gst_collect_pads2_is_active</a>         (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect" title="gst_collect_pads2_collect ()">gst_collect_pads2_collect</a>           (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect-range" title="gst_collect_pads2_collect_range ()">gst_collect_pads2_collect_range</a>     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads2.html#gst-collect-pads2-flush" title="gst_collect_pads2_flush ()">gst_collect_pads2_flush</a>             (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads2.html#gst-collect-pads2-peek" title="gst_collect_pads2_peek ()">gst_collect_pads2_peek</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads2.html#gst-collect-pads2-pop" title="gst_collect_pads2_pop ()">gst_collect_pads2_pop</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads2.html#gst-collect-pads2-read-buffer" title="gst_collect_pads2_read_buffer ()">gst_collect_pads2_read_buffer</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads2.html#gst-collect-pads2-take-buffer" title="gst_collect_pads2_take_buffer ()">gst_collect_pads2_take_buffer</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-buffer-function" title="gst_collect_pads2_set_buffer_function ()">gst_collect_pads2_set_buffer_function</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2BufferFunction" title="GstCollectPads2BufferFunction ()"><span class="type">GstCollectPads2BufferFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-compare-function" title="gst_collect_pads2_set_compare_function ()">gst_collect_pads2_set_compare_function</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2CompareFunction" title="GstCollectPads2CompareFunction ()"><span class="type">GstCollectPads2CompareFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-event-function" title="gst_collect_pads2_set_event_function ()">gst_collect_pads2_set_event_function</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2EventFunction" title="GstCollectPads2EventFunction ()"><span class="type">GstCollectPads2EventFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-clip-function" title="gst_collect_pads2_set_clip_function ()">gst_collect_pads2_set_clip_function</a> (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2ClipFunction" title="GstCollectPads2ClipFunction ()"><span class="type">GstCollectPads2ClipFunction</span></a> clipfunc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-flushing" title="gst_collect_pads2_set_flushing ()">gst_collect_pads2_set_flushing</a>      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-function" title="gst_collect_pads2_set_function ()">gst_collect_pads2_set_function</a>      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2Function" title="GstCollectPads2Function ()"><span class="type">GstCollectPads2Function</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-waiting" title="gst_collect_pads2_set_waiting ()">gst_collect_pads2_set_waiting</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> waiting</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstCollectPads2.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----GstCollectPads2
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstCollectPads2.description"></a><h2>Description</h2>
+<p>
+Manages a set of pads that operate in collect mode. This means that control
+is given to the manager of this object when all pads have data.
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+    Collectpads are created with <a class="link" href="GstCollectPads2.html#gst-collect-pads2-new" title="gst_collect_pads2_new ()"><code class="function">gst_collect_pads2_new()</code></a>. A callback should then
+    be installed with <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-function" title="gst_collect_pads2_set_function ()"><code class="function">gst_collect_pads2_set_function()</code></a>.
+  </p></li>
+<li class="listitem"><p>
+    Pads are added to the collection with <a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad" title="gst_collect_pads2_add_pad ()"><code class="function">gst_collect_pads2_add_pad()</code></a>/
+    <a class="link" href="GstCollectPads2.html#gst-collect-pads2-remove-pad" title="gst_collect_pads2_remove_pad ()"><code class="function">gst_collect_pads2_remove_pad()</code></a>. The pad
+    has to be a sinkpad. The chain and event functions of the pad are
+    overridden. The element_private of the pad is used to store
+    private information for the collectpads.
+  </p></li>
+<li class="listitem"><p>
+    For each pad, data is queued in the _chain function or by
+    performing a pull_range.
+  </p></li>
+<li class="listitem"><p>
+    When data is queued on all pads in waiting mode, the callback function is called.
+  </p></li>
+<li class="listitem"><p>
+    Data can be dequeued from the pad with the <a class="link" href="GstCollectPads2.html#gst-collect-pads2-pop" title="gst_collect_pads2_pop ()"><code class="function">gst_collect_pads2_pop()</code></a> method.
+    One can peek at the data with the <a class="link" href="GstCollectPads2.html#gst-collect-pads2-peek" title="gst_collect_pads2_peek ()"><code class="function">gst_collect_pads2_peek()</code></a> function.
+    These functions will return NULL if the pad received an EOS event. When all
+    pads return NULL from a <a class="link" href="GstCollectPads2.html#gst-collect-pads2-peek" title="gst_collect_pads2_peek ()"><code class="function">gst_collect_pads2_peek()</code></a>, the element can emit an EOS
+    event itself.
+  </p></li>
+<li class="listitem"><p>
+    Data can also be dequeued in byte units using the <a class="link" href="GstCollectPads2.html#gst-collect-pads2-available" title="gst_collect_pads2_available ()"><code class="function">gst_collect_pads2_available()</code></a>,
+    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstCollectPads2.html#gst-collect-pads2-read"><code class="function">gst_collect_pads2_read()</code></a> and <a class="link" href="GstCollectPads2.html#gst-collect-pads2-flush" title="gst_collect_pads2_flush ()"><code class="function">gst_collect_pads2_flush()</code></a> calls.
+  </p></li>
+<li class="listitem"><p>
+    Elements should call <a class="link" href="GstCollectPads2.html#gst-collect-pads2-start" title="gst_collect_pads2_start ()"><code class="function">gst_collect_pads2_start()</code></a> and <a class="link" href="GstCollectPads2.html#gst-collect-pads2-stop" title="gst_collect_pads2_stop ()"><code class="function">gst_collect_pads2_stop()</code></a> in
+    their state change functions to start and stop the processing of the collectpads.
+    The <a class="link" href="GstCollectPads2.html#gst-collect-pads2-stop" title="gst_collect_pads2_stop ()"><code class="function">gst_collect_pads2_stop()</code></a> call should be called before calling the parent
+    element state change function in the PAUSED_TO_READY state change to ensure
+    no pad is blocked and the element can finish streaming.
+  </p></li>
+<li class="listitem"><p>
+    <a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect" title="gst_collect_pads2_collect ()"><code class="function">gst_collect_pads2_collect()</code></a> and <a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect-range" title="gst_collect_pads2_collect_range ()"><code class="function">gst_collect_pads2_collect_range()</code></a> can be used by
+    elements that start a <a href="../gstreamer-1.0/GstTask.html"><span class="type">GstTask</span></a> to drive the collect_pads2. This feature is however
+    not yet implemented.
+  </p></li>
+<li class="listitem"><p>
+    <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-waiting" title="gst_collect_pads2_set_waiting ()"><code class="function">gst_collect_pads2_set_waiting()</code></a> sets a pad to waiting or non-waiting mode.
+    CollectPads element is not waiting for data to be collected on non-waiting pads.
+    Thus these pads may but need not have data when the callback is called.
+    All pads are in waiting mode by default.
+  </p></li>
+</ul></div>
+<p>
+</p>
+<p>
+Last reviewed on 2011-10-28 (0.10.36)
+</p>
+</div>
+<div class="refsect1">
+<a name="GstCollectPads2.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstCollectPads2-struct"></a><h3>struct GstCollectPads2</h3>
+<pre class="programlisting">struct GstCollectPads2 {
+  GSList        *data;                  /* list of CollectData items */
+};
+</pre>
+<p>
+Collectpads object.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *<em class="structfield"><code><a name="GstCollectPads2-struct.data"></a>data</code></em>;</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> managed by this <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectData2"></a><h3>struct GstCollectData2</h3>
+<pre class="programlisting">struct GstCollectData2 {
+  /* with STREAM_LOCK of @collect */
+  GstCollectPads2       *collect;
+  GstPad                *pad;
+  GstBuffer             *buffer;
+  guint                  pos;
+  GstSegment             segment;
+};
+</pre>
+<p>
+Structure used by the collect_pads2.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *<em class="structfield"><code><a name="GstCollectData2.collect"></a>collect</code></em>;</span></p></td>
+<td>owner <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *<em class="structfield"><code><a name="GstCollectData2.pad"></a>pad</code></em>;</span></p></td>
+<td>
+<a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> managed by this data</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstCollectData2.buffer"></a>buffer</code></em>;</span></p></td>
+<td>currently queued buffer.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstCollectData2.pos"></a>pos</code></em>;</span></p></td>
+<td>position in the buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> <em class="structfield"><code><a name="GstCollectData2.segment"></a>segment</code></em>;</span></p></td>
+<td>last segment received.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectData2DestroyNotify"></a><h3>GstCollectData2DestroyNotify ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstCollectData2DestroyNotify)     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);</pre>
+<p>
+A function that will be called when the <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> will be freed.
+It is passed the pointer to the structure and should free any custom
+memory and resources allocated for it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> that will be freed</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2BufferFunction"></a><h3>GstCollectPads2BufferFunction ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPads2BufferFunction)    (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function that will be called when a (considered oldest) buffer can be muxed.
+If all pads have reached EOS, this function is called with NULL <em class="parameter"><code>buffer</code></em>
+and NULL <em class="parameter"><code>data</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> that trigered the callback</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> of pad that has received the buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-buffer-function" title="gst_collect_pads2_set_buffer_function ()"><code class="function">gst_collect_pads2_set_buffer_function()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2CompareFunction"></a><h3>GstCollectPads2CompareFunction ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (*GstCollectPads2CompareFunction)   (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data2</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function for comparing two timestamps of buffers or newsegments collected on one pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html"><span class="type">GstCollectPads</span></a> that is comparing the timestamps</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data1</code></em> :</span></p></td>
+<td>the first <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp1</code></em> :</span></p></td>
+<td>the first timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data2</code></em> :</span></p></td>
+<td>the second <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp2</code></em> :</span></p></td>
+<td>the second timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-compare-function" title="gst_collect_pads2_set_compare_function ()"><code class="function">gst_collect_pads2_set_compare_function()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Integer less than zero when first timestamp is deemed older than the second one.
+Zero if the timestamps are deemed equally old.
+Integer greate than zero when second timestamp is deemed older than the first one.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2EventFunction"></a><h3>GstCollectPads2EventFunction ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstCollectPads2EventFunction)     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function that will be called while processing an event. It takes
+ownership of the event and is responsible for forwarding
+events downstream (with <a href="../gstreamer-1.0/GstPad.html#gst-pad-event-default"><code class="function">gst_pad_event_default()</code></a>) or dropping events.
+</p>
+<p>
+The STREAM_START, CAPS, STREAM_CONFIG, SEGMENT and EOS events should
+usually be dropped by this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> that trigered the callback</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> that received an event</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> received</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-event-function" title="gst_collect_pads2_set_event_function ()"><code class="function">gst_collect_pads2_set_event_function()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could handle the event</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2ClipFunction"></a><h3>GstCollectPads2ClipFunction ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPads2ClipFunction)      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function that will be called when <em class="parameter"><code>inbuffer</code></em> is received on the pad managed
+by <em class="parameter"><code>data</code></em> in the collecpad object <em class="parameter"><code>pads</code></em>.
+</p>
+<p>
+The function should use the segment of <em class="parameter"><code>data</code></em> and the negotiated media type on
+the pad to perform clipping of <em class="parameter"><code>inbuffer</code></em>.
+</p>
+<p>
+This function takes ownership of <em class="parameter"><code>inbuffer</code></em> and should output a buffer in
+<em class="parameter"><code>outbuffer</code></em> or return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in <em class="parameter"><code>outbuffer</code></em> if the buffer should be dropped.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>inbuffer</code></em> :</span></p></td>
+<td>the input <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>outbuffer</code></em> :</span></p></td>
+<td>the output <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that corresponds to the result of clipping.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2Function"></a><h3>GstCollectPads2Function ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPads2Function)          (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+A function that will be called when all pads have received data.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> that trigered the callback</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-function" title="gst_collect_pads2_set_function ()"><code class="function">gst_collect_pads2_set_function()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstCollectPads2StateFlags"></a><h3>enum GstCollectPads2StateFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_COLLECT_PADS2_STATE_EOS = 1 &lt;&lt; 0,
+  GST_COLLECT_PADS2_STATE_FLUSHING = 1 &lt;&lt; 1,
+  GST_COLLECT_PADS2_STATE_NEW_SEGMENT = 1 &lt;&lt; 2,
+  GST_COLLECT_PADS2_STATE_WAITING = 1 &lt;&lt; 3,
+  GST_COLLECT_PADS2_STATE_LOCKED = 1 &lt;&lt; 4
+} GstCollectPads2StateFlags;
+</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-COLLECT-PADS2-STATE-EOS:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS2_STATE_EOS</code></span></p></td>
+<td>Set if collectdata's pad is EOS.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-COLLECT-PADS2-STATE-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS2_STATE_FLUSHING</code></span></p></td>
+<td>Set if collectdata's pad is flushing.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-COLLECT-PADS2-STATE-NEW-SEGMENT:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS2_STATE_NEW_SEGMENT</code></span></p></td>
+<td>Set if collectdata's pad received a
+                                     new_segment event.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-COLLECT-PADS2-STATE-WAITING:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS2_STATE_WAITING</code></span></p></td>
+<td>Set if collectdata's pad must be waited
+                                     for when collecting.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-COLLECT-PADS2-STATE-LOCKED:CAPS"></a><span class="term"><code class="literal">GST_COLLECT_PADS2_STATE_LOCKED</code></span></p></td>
+<td>Set collectdata's pad WAITING state must
+                                     not be changed.
+<a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags"><span class="type">GstCollectPads2StateFlags</span></a> indicate private state of a collectdata('s pad).
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STATE:CAPS"></a><h3>GST_COLLECT_PADS2_STATE()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STATE(data)                 (((GstCollectData2 *) data)-&gt;state)
+</pre>
+<p>
+A flags word containing <a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags"><span class="type">GstCollectPads2StateFlags</span></a> flags set
+on this collected pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STATE-IS-SET:CAPS"></a><h3>GST_COLLECT_PADS2_STATE_IS_SET()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STATE_IS_SET(data,flag)     !!(GST_COLLECT_PADS2_STATE (data) &amp; flag)
+</pre>
+<p>
+Gives the status of a specific flag on a collected pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags"><span class="type">GstCollectPads2StateFlags</span></a> to check.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STATE-SET:CAPS"></a><h3>GST_COLLECT_PADS2_STATE_SET()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STATE_SET(data,flag)        (GST_COLLECT_PADS2_STATE (data) |= flag)
+</pre>
+<p>
+Sets a state flag on a collected pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags"><span class="type">GstCollectPads2StateFlags</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STATE-UNSET:CAPS"></a><h3>GST_COLLECT_PADS2_STATE_UNSET()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STATE_UNSET(data,flag)      (GST_COLLECT_PADS2_STATE (data) &amp;= ~(flag))
+</pre>
+<p>
+Clears a state flag on a collected pad.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>the <a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags"><span class="type">GstCollectPads2StateFlags</span></a> to clear.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS"></a><h3>GST_COLLECT_PADS2_GET_STREAM_LOCK()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_GET_STREAM_LOCK(pads) (&amp;((GstCollectPads2 *)pads)-&gt;stream_lock)
+</pre>
+<p>
+Get the stream lock of <em class="parameter"><code>pads</code></em>. The stream lock is used to coordinate and
+serialize execution among the various streams being collected, and in
+protecting the resources used to accomplish this.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STREAM-LOCK:CAPS"></a><h3>GST_COLLECT_PADS2_STREAM_LOCK()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STREAM_LOCK(pads)     g_rec_mutex_lock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))
+</pre>
+<p>
+Lock the stream lock of <em class="parameter"><code>pads</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS"></a><h3>GST_COLLECT_PADS2_STREAM_UNLOCK()</h3>
+<pre class="programlisting">#define GST_COLLECT_PADS2_STREAM_UNLOCK(pads)   g_rec_mutex_unlock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))
+</pre>
+<p>
+Unlock the stream lock of <em class="parameter"><code>pads</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>a <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-new"></a><h3>gst_collect_pads2_new ()</h3>
+<pre class="programlisting"><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="returnvalue">GstCollectPads2</span></a> *   gst_collect_pads2_new               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create a new instance of <span class="type">GstCollectsPads</span>.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a>, or NULL in case of an error. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-add-pad"></a><h3>gst_collect_pads2_add_pad ()</h3>
+<pre class="programlisting"><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="returnvalue">GstCollectData2</span></a> *   gst_collect_pads2_add_pad           (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+<p>
+Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-remove-pad" title="gst_collect_pads2_remove_pad ()"><code class="function">gst_collect_pads2_remove_pad()</code></a> to remove the pad from the collection
+again.
+</p>
+<p>
+You specify a size for the returned <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> structure
+so that you can use it to store additional information.
+</p>
+<p>
+The pad will be automatically activated in push mode when <em class="parameter"><code>pads</code></em> is
+started.
+</p>
+<p>
+This function calls <a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad-full" title="gst_collect_pads2_add_pad_full ()"><code class="function">gst_collect_pads2_add_pad_full()</code></a> passing a value of NULL
+for destroy_notify and TRUE for locked.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the pad to add. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of the returned <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> to identify the new pad. Or NULL
+if wrong parameters are supplied.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-add-pad-full"></a><h3>gst_collect_pads2_add_pad_full ()</h3>
+<pre class="programlisting"><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="returnvalue">GstCollectData2</span></a> *   gst_collect_pads2_add_pad_full      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2DestroyNotify" title="GstCollectData2DestroyNotify ()"><span class="type">GstCollectData2DestroyNotify</span></a> destroy_notify</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> lock</code></em>);</pre>
+<p>
+Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-remove-pad" title="gst_collect_pads2_remove_pad ()"><code class="function">gst_collect_pads2_remove_pad()</code></a> to remove the pad from the collection
+again.
+</p>
+<p>
+You specify a size for the returned <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> structure
+so that you can use it to store additional information.
+</p>
+<p>
+You can also specify a <a class="link" href="GstCollectPads2.html#GstCollectData2DestroyNotify" title="GstCollectData2DestroyNotify ()"><span class="type">GstCollectData2DestroyNotify</span></a> that will be called
+just before the <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> structure is freed. It is passed the
+pointer to the structure and should free any custom memory and resources
+allocated for it.
+</p>
+<p>
+Keeping a pad locked in waiting state is only relevant when using
+the default collection algorithm (providing the oldest buffer).
+It ensures a buffer must be available on this pad for a collection
+to take place.  This is of typical use to a muxer element where
+non-subtitle streams should always be in waiting state,
+e.g. to assure that caps information is available on all these streams
+when initial headers have to be written.
+</p>
+<p>
+The pad will be automatically activated in push mode when <em class="parameter"><code>pads</code></em> is
+started.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the pad to add. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size of the returned <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>destroy_notify</code></em> :</span></p></td>
+<td>function to be called before the returned <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a>
+structure is freed</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>lock</code></em> :</span></p></td>
+<td>whether to lock this pad in usual waiting state</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> to identify the new pad. Or NULL
+if wrong parameters are supplied.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-remove-pad"></a><h3>gst_collect_pads2_remove_pad ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads2_remove_pad        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<p>
+Remove a pad from the collection of collect pads. This function will also
+free the <a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> and all the resources that were allocated with
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad" title="gst_collect_pads2_add_pad ()"><code class="function">gst_collect_pads2_add_pad()</code></a>.
+</p>
+<p>
+The pad will be deactivated automatically when <em class="parameter"><code>pads</code></em> is stopped.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the pad to remove. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad could be removed.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-start"></a><h3>gst_collect_pads2_start ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_start             (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);</pre>
+<p>
+Starts the processing of data in the collect_pads2.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-stop"></a><h3>gst_collect_pads2_stop ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_stop              (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);</pre>
+<p>
+Stops the processing of data in the collect_pads2. this function
+will also unblock any blocking operations.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-available"></a><h3>gst_collect_pads2_available ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_collect_pads2_available         (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);</pre>
+<p>
+Query how much bytes can be read from each queued buffer. This means
+that the result of this call is the maximum number of bytes that can
+be read from each of the pads.
+</p>
+<p>
+This function should be called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as
+in the callback.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The maximum number of bytes queued on all pads. This function
+returns 0 if a pad has no queued buffer.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-is-active"></a><h3>gst_collect_pads2_is_active ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads2_is_active         (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<p>
+Check if a pad is active.
+</p>
+<p>
+This function is currently not implemented.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
+<td>the pad to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad is active.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-collect"></a><h3>gst_collect_pads2_collect ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads2_collect           (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>);</pre>
+<p>
+Collect data on all pads. This function is usually called
+from a <a href="../gstreamer-1.0/GstTask.html"><span class="type">GstTask</span></a> function in an element. 
+</p>
+<p>
+This function is currently not implemented.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-collect-range"></a><h3>gst_collect_pads2_collect_range ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads2_collect_range     (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
+<p>
+Collect data with <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>length</code></em> on all pads. This function
+is typically called in the getrange function of an element. 
+</p>
+<p>
+This function is currently not implemented.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>the offset to collect</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>the length to collect</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-flush"></a><h3>gst_collect_pads2_flush ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_collect_pads2_flush             (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+<p>
+Flush <em class="parameter"><code>size</code></em> bytes from the pad <em class="parameter"><code>data</code></em>.
+</p>
+<p>
+This function should be called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as
+in the callback.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the number of bytes to flush</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of bytes flushed This can be less than <em class="parameter"><code>size</code></em> and
+is 0 if the pad was end-of-stream.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-peek"></a><h3>gst_collect_pads2_peek ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads2_peek              (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);</pre>
+<p>
+Peek at the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
+should be called with the <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as in the callback
+handler.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to peek</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The buffer in <em class="parameter"><code>data</code></em> or NULL if no buffer is queued.
+should unref the buffer after usage.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-pop"></a><h3>gst_collect_pads2_pop ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads2_pop               (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>);</pre>
+<p>
+Pop the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
+should be called with the <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as in the callback
+handler.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to pop</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The buffer in <em class="parameter"><code>data</code></em> or NULL if no buffer was
+queued. You should unref the buffer after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-read-buffer"></a><h3>gst_collect_pads2_read_buffer ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads2_read_buffer       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+<p>
+Get a subbuffer of <em class="parameter"><code>size</code></em> bytes from the given pad <em class="parameter"><code>data</code></em>.
+</p>
+<p>
+This function should be called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as in the
+callback.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the number of bytes to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A sub buffer. The size of the buffer can be less that requested.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-take-buffer"></a><h3>gst_collect_pads2_take_buffer ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads2_take_buffer       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
+<p>
+Get a subbuffer of <em class="parameter"><code>size</code></em> bytes from the given pad <em class="parameter"><code>data</code></em>. Flushes the amount
+of read bytes.
+</p>
+<p>
+This function should be called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as in the
+callback.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to query</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the number of bytes to read</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A sub buffer. The size of the buffer can be less that requested.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-buffer-function"></a><h3>gst_collect_pads2_set_buffer_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_buffer_function
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2BufferFunction" title="GstCollectPads2BufferFunction ()"><span class="type">GstCollectPads2BufferFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Set the callback function and user data that will be called with
+the oldest buffer when all pads have been collected.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectpads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>the function to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-compare-function"></a><h3>gst_collect_pads2_set_compare_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_compare_function
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2CompareFunction" title="GstCollectPads2CompareFunction ()"><span class="type">GstCollectPads2CompareFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Set the timestamp comparison function.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the pads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>the function to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to the function. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-event-function"></a><h3>gst_collect_pads2_set_event_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_event_function
+                                                        (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2EventFunction" title="GstCollectPads2EventFunction ()"><span class="type">GstCollectPads2EventFunction</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Set the event callback function and user data that will be called after
+collectpads has processed and event originating from one of the collected
+pads.  If the event being processed is a serialized one, this callback is
+called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, otherwise not.  As this lock should be
+held when calling a number of CollectPads functions, it should be acquired
+if so (unusually) needed.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>the function to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to the function</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-clip-function"></a><h3>gst_collect_pads2_set_clip_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_clip_function (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2ClipFunction" title="GstCollectPads2ClipFunction ()"><span class="type">GstCollectPads2ClipFunction</span></a> clipfunc</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+Install a clipping function that is called right after a buffer is received
+on a pad managed by <em class="parameter"><code>pads</code></em>. See <span class="type">GstCollectPad2ClipFunction</span> for more info.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>clipfunc</code></em> :</span></p></td>
+<td>clip function to install</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data to pass to <em class="parameter"><code>clip_func</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-flushing"></a><h3>gst_collect_pads2_set_flushing ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_flushing      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
+<p>
+Change the flushing state of all the pads in the collection. No pad
+is able to accept anymore data when <em class="parameter"><code>flushing</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. Calling this
+function with <em class="parameter"><code>flushing</code></em> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> makes <em class="parameter"><code>pads</code></em> accept data again.
+Caller must ensure that downstream streaming (thread) is not blocked,
+e.g. by sending a FLUSH_START downstream.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flushing</code></em> :</span></p></td>
+<td>desired state of the pads</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-function"></a><h3>gst_collect_pads2_set_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_function      (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectPads2Function" title="GstCollectPads2Function ()"><span class="type">GstCollectPads2Function</span></a> func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>
+CollectPads provides a default collection algorithm that will determine
+the oldest buffer available on all of its pads, and then delegate
+to a configured callback.
+However, if circumstances are more complicated and/or more control
+is desired, this sets a callback that will be invoked instead when
+all the pads added to the collection have buffers queued.
+Evidently, this callback is not compatible with
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-buffer-function" title="gst_collect_pads2_set_buffer_function ()"><code class="function">gst_collect_pads2_set_buffer_function()</code></a> callback.
+If this callback is set, the former will be unset.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>the function to set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to the function</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-collect-pads2-set-waiting"></a><h3>gst_collect_pads2_set_waiting ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_collect_pads2_set_waiting       (<em class="parameter"><code><a class="link" href="GstCollectPads2.html" title="GstCollectPads2"><span class="type">GstCollectPads2</span></a> *pads</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2"><span class="type">GstCollectData2</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> waiting</code></em>);</pre>
+<p>
+Sets a pad to waiting or non-waiting mode, if at least this pad
+has not been created with locked waiting state,
+in which case nothing happens.
+</p>
+<p>
+This function should be called with <em class="parameter"><code>pads</code></em> STREAM_LOCK held, such as
+in the callback.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
+<td>the collectspads</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>the data to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>waiting</code></em> :</span></p></td>
+<td>boolean indicating whether this pad should operate
+in waiting or non-waiting mode</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/GstControlSource.html b/docs/libs/html/GstControlSource.html
deleted file mode 100644
index cf258ee..0000000
--- a/docs/libs/html/GstControlSource.html
+++ /dev/null
@@ -1,407 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstControlSource</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<link rel="prev" href="GstController.html" title="GstController">
-<link rel="next" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GstController.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="GstInterpolationControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GstControlSource.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GstControlSource.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GstControlSource.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="GstControlSource"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="GstControlSource.top_of_page"></a>GstControlSource</span></h2>
-<p>GstControlSource — base class for control source sources</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GstControlSource.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;libs/controller/gstcontrolsource.h&gt;
-
-struct              <a class="link" href="GstControlSource.html#GstControlSource-struct" title="struct GstControlSource">GstControlSource</a>;
-struct              <a class="link" href="GstControlSource.html#GstControlSourceClass" title="struct GstControlSourceClass">GstControlSourceClass</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstControlSource.html#GstControlSourceBind" title="GstControlSourceBind ()">*GstControlSourceBind</a>)             (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()">*GstControlSourceGetValue</a>)         (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()">*GstControlSourceGetValueArray</a>)    (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);
-struct              <a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue">GstTimedValue</a>;
-struct              <a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray">GstValueArray</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlSource.html#gst-control-source-bind" title="gst_control_source_bind ()">gst_control_source_bind</a>             (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()">gst_control_source_get_value</a>        (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()">gst_control_source_get_value_array</a>  (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GstControlSource
-         +----<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-         +----<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource">GstLFOControlSource</a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstControlSource.description"></a><h2>Description</h2>
-<p>
-The <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> is a base class for control value sources that could
-be used by <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> to get timestamp-value pairs.
-</p>
-<p>
-A <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> is used by first getting an instance, binding it to a
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> (for example by using <a class="link" href="GstController.html#gst-controller-set-control-source" title="gst_controller_set_control_source ()"><code class="function">gst_controller_set_control_source()</code></a>) and
-then by having it used by the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> or calling
-<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()"><code class="function">gst_control_source_get_value()</code></a> or <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()"><code class="function">gst_control_source_get_value_array()</code></a>.
-</p>
-<p>
-For implementing a new <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> one has to implement a
-<a class="link" href="GstControlSource.html#GstControlSourceBind" title="GstControlSourceBind ()"><span class="type">GstControlSourceBind</span></a> method, which will depending on the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> set up
-the control source for use and sets the <a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()"><span class="type">GstControlSourceGetValue</span></a> and
-<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()"><span class="type">GstControlSourceGetValueArray</span></a> functions. These are then used by
-<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()"><code class="function">gst_control_source_get_value()</code></a> or <a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()"><code class="function">gst_control_source_get_value_array()</code></a>
-to get values for specific timestamps.
-</p>
-</div>
-<div class="refsect1">
-<a name="GstControlSource.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstControlSource-struct"></a><h3>struct GstControlSource</h3>
-<pre class="programlisting">struct GstControlSource {
-  GstControlSourceGetValue get_value;             /* Returns the value for a property at a given timestamp */
-  GstControlSourceGetValueArray get_value_array;  /* Returns values for a property in a given timespan */
-};
-</pre>
-<p>
-The instance structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()"><span class="type">GstControlSourceGetValue</span></a> <em class="structfield"><code><a name="GstControlSource-struct.get-value"></a>get_value</code></em>;</span></p></td>
-<td>Function for returning a value for a given timestamp</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()"><span class="type">GstControlSourceGetValueArray</span></a> <em class="structfield"><code><a name="GstControlSource-struct.get-value-array"></a>get_value_array</code></em>;</span></p></td>
-<td>Function for returning a <a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> for a given timestamp</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstControlSourceClass"></a><h3>struct GstControlSourceClass</h3>
-<pre class="programlisting">struct GstControlSourceClass {
-  GObjectClass parent_class;
-  
-  GstControlSourceBind bind;  /* Binds the GstControlSource to a specific GParamSpec */
-};
-</pre>
-<p>
-The class structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstControlSourceClass.parent-class"></a>parent_class</code></em>;</span></p></td>
-<td>Parent class</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="GstControlSource.html#GstControlSourceBind" title="GstControlSourceBind ()"><span class="type">GstControlSourceBind</span></a> <em class="structfield"><code><a name="GstControlSourceClass.bind"></a>bind</code></em>;</span></p></td>
-<td>Class method for binding the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> to a specific GParamSpec</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstControlSourceBind"></a><h3>GstControlSourceBind ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstControlSourceBind)             (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);</pre>
-<p>
-Function for binding a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> that should be bound to</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the property could be bound to the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstControlSourceGetValue"></a><h3>GstControlSourceGetValue ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstControlSourceGetValue)         (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Function for returning a value for a given timestamp.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>timestamp for which a value should be calculated</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> which will be set to the result. It must be initialized to the correct type.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value was successfully calculated.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstControlSourceGetValueArray"></a><h3>GstControlSourceGetValueArray ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstControlSourceGetValueArray)    (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);</pre>
-<p>
-Function for returning a <a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> for a given timestamp.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>timestamp for which a value should be calculated</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
-<td>array to put control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values were successfully calculated.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTimedValue"></a><h3>struct GstTimedValue</h3>
-<pre class="programlisting">struct GstTimedValue {
-  GstClockTime timestamp;
-  GValue value;
-};
-</pre>
-<p>
-Structure for saving a timestamp and a value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstTimedValue.timestamp"></a>timestamp</code></em>;</span></p></td>
-<td>timestamp of the value change</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GstTimedValue.value"></a>value</code></em>;</span></p></td>
-<td>the corresponding value</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstValueArray"></a><h3>struct GstValueArray</h3>
-<pre class="programlisting">struct GstValueArray {
-  const gchar *property_name;
-  gint nbsamples;
-  GstClockTime sample_interval;
-  gpointer *values;
-};
-</pre>
-<p>
-Structure to receive multiple values at once.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstValueArray.property-name"></a>property_name</code></em>;</span></p></td>
-<td>the name of the property this array belongs to</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstValueArray.nbsamples"></a>nbsamples</code></em>;</span></p></td>
-<td>number of samples requested</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstValueArray.sample-interval"></a>sample_interval</code></em>;</span></p></td>
-<td>interval between each sample</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *<em class="structfield"><code><a name="GstValueArray.values"></a>values</code></em>;</span></p></td>
-<td>pointer to the array</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-control-source-bind"></a><h3>gst_control_source_bind ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_source_bind             (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> *pspec</code></em>);</pre>
-<p>
-Binds a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> to a specific property. This must be called only once for a
-<a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pspec</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> for the property for which this <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should generate values.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> was bound correctly, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-control-source-get-value"></a><h3>gst_control_source_get_value ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_source_get_value        (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Gets the value for this <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> at a given timestamp.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time for which the value should be returned</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>FALSE if the value couldn't be returned, TRUE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-control-source-get-value-array"></a><h3>gst_control_source_get_value_array ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_source_get_value_array  (<em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);</pre>
-<p>
-Gets an array of values for one element property.
-</p>
-<p>
-All fields of <em class="parameter"><code>value_array</code></em> must be filled correctly. Especially the
-<em class="parameter"><code>value_array-&gt;values</code></em> array must be big enough to keep the requested amount
-of values.
-</p>
-<p>
-The type of the values in the array is the same as the property's type.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
-<td>array to put control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/GstController.html b/docs/libs/html/GstController.html
deleted file mode 100644
index 94ef42b..0000000
--- a/docs/libs/html/GstController.html
+++ /dev/null
@@ -1,681 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstController</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<link rel="prev" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<link rel="next" href="GstControlSource.html" title="GstControlSource">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-control.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="GstControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GstController.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GstController.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GstController.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GstController.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="GstController"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="GstController.top_of_page"></a>GstController</span></h2>
-<p>GstController — dynamic parameter control subsystem</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GstController.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/controller/gstcontroller.h&gt;
-
-struct              <a class="link" href="GstController.html#GstController-struct" title="struct GstController">GstController</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-init" title="gst_controller_init ()">gst_controller_init</a>                 (<em class="parameter"><code><span class="type">int</span> *argc</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> ***argv</code></em>);
-<a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     <a class="link" href="GstController.html#gst-controller-new" title="gst_controller_new ()">gst_controller_new</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     <a class="link" href="GstController.html#gst-controller-new-list" title="gst_controller_new_list ()">gst_controller_new_list</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);
-<a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     <a class="link" href="GstController.html#gst-controller-new-valist" title="gst_controller_new_valist ()">gst_controller_new_valist</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-remove-properties" title="gst_controller_remove_properties ()">gst_controller_remove_properties</a>    (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-remove-properties-list" title="gst_controller_remove_properties_list ()">gst_controller_remove_properties_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-remove-properties-valist" title="gst_controller_remove_properties_valist ()">gst_controller_remove_properties_valist</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstController.html#gst-controller-set-disabled" title="gst_controller_set_disabled ()">gst_controller_set_disabled</a>         (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstController.html#gst-controller-set-property-disabled" title="gst_controller_set_property_disabled ()">gst_controller_set_property_disabled</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstController.html#gst-controller-suggest-next-sync" title="gst_controller_suggest_next_sync ()">gst_controller_suggest_next_sync</a>    (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()">gst_controller_sync_values</a>          (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
-<a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstController.html#gst-controller-get-control-source" title="gst_controller_get_control_source ()">gst_controller_get_control_source</a>   (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-set-control-source" title="gst_controller_set_control_source ()">gst_controller_set_control_source</a>   (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>);
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            <a class="link" href="GstController.html#gst-controller-get" title="gst_controller_get ()">gst_controller_get</a>                  (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-get-value-arrays" title="gst_controller_get_value_arrays ()">gst_controller_get_value_arrays</a>     (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstController.html#gst-controller-get-value-array" title="gst_controller_get_value_array ()">gst_controller_get_value_array</a>      (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstController.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GstController
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstController.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GstController.html#GstController--control-rate" title='The "control-rate" property'>control-rate</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
-</pre>
-</div>
-<div class="refsect1">
-<a name="GstController.description"></a><h2>Description</h2>
-<p>
-The controller subsystem offers a lightweight way to adjust gobject
-properties over stream-time. It works by using time-stamped value pairs that
-are queued for element-properties. At run-time the elements continously pull
-values changes for the current stream-time.
-</p>
-<p>
-What needs to be changed in a <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a>?
-Very little - it is just two steps to make a plugin controllable!
-</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><p>
-    mark gobject-properties paramspecs that make sense to be controlled,
-    by GST_PARAM_CONTROLLABLE.
-  </p></li>
-<li class="listitem"><p>
-    when processing data (get, chain, loop function) at the beginning call
-    gst_object_sync_values(element,timestamp).
-    This will made the controller to update all gobject properties that are under
-    control with the current values based on timestamp.
-  </p></li>
-</ol></div>
-<p>
-</p>
-<p>
-What needs to be done in applications?
-Again its not a lot to change.
-</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><p>
-    first put some properties under control, by calling
-    controller = gst_object_control_properties (object, "prop1", "prop2",...);
-  </p></li>
-<li class="listitem"><p>
-    Get a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for the property and set it up.
-    csource = <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()"><code class="function">gst_interpolation_control_source_new()</code></a>;
-    gst_interpolation_control_source_set_interpolation_mode(csource, mode);
-    gst_interpolation_control_source_set (csource,0 * GST_SECOND, value1);
-    gst_interpolation_control_source_set (csource,1 * GST_SECOND, value2);
-  </p></li>
-<li class="listitem"><p>
-    Set the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> in the controller.
-    gst_controller_set_control_source (controller, "prop1", csource);
-  </p></li>
-<li class="listitem"><p>
-    start your pipeline
-  </p></li>
-</ol></div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="GstController.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstController-struct"></a><h3>struct GstController</h3>
-<pre class="programlisting">struct GstController;</pre>
-<p>
-The instance structure of GstController
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-init"></a><h3>gst_controller_init ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_init                 (<em class="parameter"><code><span class="type">int</span> *argc</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> ***argv</code></em>);</pre>
-<p>
-Initializes the use of the controller library. Suggested to be called right
-after <a href="../gstreamer-0.11/gstreamer-Gst.html#gst-init"><code class="function">gst_init()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>argc</code></em> :</span></p></td>
-<td>pointer to the commandline argument count</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>argv</code></em> :</span></p></td>
-<td>pointer to the commandline argument values</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-new"></a><h3>gst_controller_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     gst_controller_new                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Creates a new GstController for the given object's properties
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object of which some properties should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new controller.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-new-list"></a><h3>gst_controller_new_list ()</h3>
-<pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     gst_controller_new_list             (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);</pre>
-<p>
-Creates a new GstController for the given object's properties
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object of which some properties should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>list of property names that should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new controller.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-new-valist"></a><h3>gst_controller_new_valist ()</h3>
-<pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     gst_controller_new_valist           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-Creates a new GstController for the given object's properties
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object of which some properties should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new controller.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-remove-properties"></a><h3>gst_controller_remove_properties ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_remove_properties    (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Removes the given object properties from the controller
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object from which some properties should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-remove-properties-list"></a><h3>gst_controller_remove_properties_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_remove_properties_list
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *list</code></em>);</pre>
-<p>
-Removes the given object properties from the controller
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object from which some properties should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of property names that should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-remove-properties-valist"></a><h3>gst_controller_remove_properties_valist ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_remove_properties_valist
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-Removes the given object properties from the controller
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object from which some properties should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be removed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property isn't handled by the controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-set-disabled"></a><h3>gst_controller_set_disabled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_controller_set_disabled         (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
-<p>
-This function is used to disable all properties of the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a>
-for some time, i.e. <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()"><code class="function">gst_controller_sync_values()</code></a> will do nothing.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> which should be disabled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td>
-<td>boolean that specifies whether to disable the controller
-or not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-set-property-disabled"></a><h3>gst_controller_set_property_disabled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_controller_set_property_disabled
-                                                        (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
-<p>
-This function is used to disable the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> on a property for
-some time, i.e. <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()"><code class="function">gst_controller_sync_values()</code></a> will do nothing for the
-property.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> which should be disabled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>property to disable</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>disabled</code></em> :</span></p></td>
-<td>boolean that specifies whether to disable the controller
-or not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-suggest-next-sync"></a><h3>gst_controller_suggest_next_sync ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_controller_suggest_next_sync    (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>);</pre>
-<p>
-Returns a suggestion for timestamps where buffers should be split
-to get best controller results.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller that handles the values</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>Returns the suggested timestamp or <a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a>
-if no control-rate was set.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.13</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-sync-values"></a><h3>gst_controller_sync_values ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_sync_values          (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>
-Sets the properties of the element, according to the controller that (maybe)
-handles them and for the given timestamp.
-</p>
-<p>
-If this function fails, it is most likely the application developers fault.
-Most probably the control sources are not setup correctly.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller that handles the values</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the controller values could be applied to the object
-properties, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-get-control-source"></a><h3>gst_controller_get_control_source ()</h3>
-<pre class="programlisting"><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> *  gst_controller_get_control_source   (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre>
-<p>
-Gets the corresponding <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for the property. This should be unreferenced
-again after use.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be get</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em> or NULL if the property is not
-controlled by this controller or no <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> was assigned yet.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-set-control-source"></a><h3>gst_controller_set_control_source ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_set_control_source   (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>);</pre>
-<p>
-Sets the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em>. If there already was a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>
-for this property it will be unreferenced.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be set</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>csource</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> that should be used for the property</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the given property isn't handled by the controller or the new <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>
-couldn't be bound to the property, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if everything worked as expected.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-get"></a><h3>gst_controller_get ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            gst_controller_get                  (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>
-Gets the value for the given controller-handled property at the requested
-time.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller object which handles the properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>the name of the property to get</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time the control-change should be read from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the GValue of the property at the given time, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-property isn't handled by the controller</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-get-value-arrays"></a><h3>gst_controller_get_value_arrays ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_get_value_arrays     (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>);</pre>
-<p>
-Function to be able to get an array of values for one or more given element
-properties.
-</p>
-<p>
-All fields of the <a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><code class="literal">GstValueArray</code></a> in the list must be filled correctly.
-Especially the GstValueArray-&gt;values arrays must be big enough to keep
-the requested amount of values.
-</p>
-<p>
-The types of the values in the array are the same as the property's type.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>
-<p>This doesn't modify the controlled GObject properties!</p>
-</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller that handles the values</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_arrays</code></em> :</span></p></td>
-<td>list to return the control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array(s) could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-controller-get-value-array"></a><h3>gst_controller_get_value_array ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_controller_get_value_array      (<em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);</pre>
-<p>
-Function to be able to get an array of values for one element property.
-</p>
-<p>
-All fields of <em class="parameter"><code>value_array</code></em> must be filled correctly. Especially the
-<em class="parameter"><code>value_array-&gt;values</code></em> array must be big enough to keep the requested amount
-of values (as indicated by the nbsamples field).
-</p>
-<p>
-The type of the values in the array is the same as the property's type.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>
-<p>This doesn't modify the controlled GObject property!</p>
-</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the controller that handles the values</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
-<td>array to put control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="GstController.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstController--control-rate"></a><h3>The <code class="literal">"control-rate"</code> property</h3>
-<pre class="programlisting">  "control-rate"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
-<p>Controlled properties will be updated at least every control-rate nanoseconds.</p>
-<p>Allowed values: [1,4294967295]</p>
-<p>Default value: 100000000</p>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/GstInterpolationControlSource.html b/docs/libs/html/GstInterpolationControlSource.html
index d5b6a6e..b8244c9 100644
--- a/docs/libs/html/GstInterpolationControlSource.html
+++ b/docs/libs/html/GstInterpolationControlSource.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstInterpolationControlSource</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<link rel="prev" href="GstControlSource.html" title="GstControlSource">
+<link rel="prev" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">
 <link rel="next" href="GstLFOControlSource.html" title="GstLFOControlSource">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -14,10 +14,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="GstControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstTimedValueControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstLFOControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -26,6 +26,8 @@
                   <a href="#GstInterpolationControlSource.description" class="shortcut">Description</a>
                    | 
                   <a href="#GstInterpolationControlSource.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#GstInterpolationControlSource.properties" class="shortcut">Properties</a>
 </td></tr>
 </table>
 <div class="refentry">
@@ -43,49 +45,38 @@
 #include &lt;libs/controller/gstinterpolationcontrolsource.h&gt;
 
 struct              <a class="link" href="GstInterpolationControlSource.html#GstInterpolationControlSource-struct" title="struct GstInterpolationControlSource">GstInterpolationControlSource</a>;
-enum                <a class="link" href="GstInterpolationControlSource.html#GstInterpolateMode" title="enum GstInterpolateMode">GstInterpolateMode</a>;
-<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="returnvalue">GstInterpolationControlSource</span></a> * <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()">gst_interpolation_control_source_new</a>
+enum                <a class="link" href="GstInterpolationControlSource.html#GstInterpolationMode" title="enum GstInterpolationMode">GstInterpolationMode</a>;
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()">gst_interpolation_control_source_new</a>
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set" title="gst_interpolation_control_source_set ()">gst_interpolation_control_source_set</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set-from-list" title="gst_interpolation_control_source_set_from_list ()">gst_interpolation_control_source_set_from_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *timedvalues</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set-interpolation-mode" title="gst_interpolation_control_source_set_interpolation_mode ()">gst_interpolation_control_source_set_interpolation_mode</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html#GstInterpolateMode" title="enum GstInterpolateMode"><span class="type">GstInterpolateMode</span></a> mode</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-get-all" title="gst_interpolation_control_source_get_all ()">gst_interpolation_control_source_get_all</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-unset" title="gst_interpolation_control_source_unset ()">gst_interpolation_control_source_unset</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-unset-all" title="gst_interpolation_control_source_unset_all ()">gst_interpolation_control_source_unset_all</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-get-count" title="gst_interpolation_control_source_get_count ()">gst_interpolation_control_source_get_count</a>
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstInterpolationControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-         +----GstInterpolationControlSource
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
+                     +----<a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+                           +----GstInterpolationControlSource
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstInterpolationControlSource.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="GstInterpolationControlSource.html#GstInterpolationControlSource--mode" title='The "mode" property'>mode</a>"                     <a class="link" href="GstInterpolationControlSource.html#GstInterpolationMode" title="enum GstInterpolationMode"><span class="type">GstInterpolationMode</span></a>  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstInterpolationControlSource.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> is a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>, that interpolates values between user-given
+<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that interpolates values between user-given
 control points. It supports several interpolation modes and property types.
 </p>
 <p>
 To use <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> get a new instance by calling
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()"><code class="function">gst_interpolation_control_source_new()</code></a>, bind it to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>, select a interpolation mode with
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set-interpolation-mode" title="gst_interpolation_control_source_set_interpolation_mode ()"><code class="function">gst_interpolation_control_source_set_interpolation_mode()</code></a> and set some control points by calling
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set" title="gst_interpolation_control_source_set ()"><code class="function">gst_interpolation_control_source_set()</code></a>.
+<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()"><code class="function">gst_interpolation_control_source_new()</code></a>, bind it to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> and set some
+control points by calling <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set" title="gst_timed_value_control_source_set ()"><code class="function">gst_timed_value_control_source_set()</code></a>.
 </p>
 <p>
 All functions are MT-safe.
@@ -97,20 +88,17 @@
 <a name="GstInterpolationControlSource-struct"></a><h3>struct GstInterpolationControlSource</h3>
 <pre class="programlisting">struct GstInterpolationControlSource;</pre>
 <p>
-The instance structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstInterpolateMode"></a><h3>enum GstInterpolateMode</h3>
+<a name="GstInterpolationMode"></a><h3>enum GstInterpolationMode</h3>
 <pre class="programlisting">typedef enum {
-  GST_INTERPOLATE_NONE,
-  GST_INTERPOLATE_TRIGGER,
-  GST_INTERPOLATE_LINEAR,
-  GST_INTERPOLATE_QUADRATIC,
-  GST_INTERPOLATE_CUBIC,
-  GST_INTERPOLATE_USER
-} GstInterpolateMode;
+  GST_INTERPOLATION_MODE_NONE,
+  GST_INTERPOLATION_MODE_LINEAR,
+  GST_INTERPOLATION_MODE_CUBIC
+} GstInterpolationMode;
 </pre>
 <p>
 The various interpolation modes available.
@@ -119,43 +107,27 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-INTERPOLATE-NONE:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_NONE</code></span></p></td>
+<td><p><a name="GST-INTERPOLATION-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATION_MODE_NONE</code></span></p></td>
 <td>steps-like interpolation, default
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-INTERPOLATE-TRIGGER:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_TRIGGER</code></span></p></td>
-<td>returns the default value of the property,
-except for times with specific values
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INTERPOLATE-LINEAR:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_LINEAR</code></span></p></td>
+<td><p><a name="GST-INTERPOLATION-MODE-LINEAR:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATION_MODE_LINEAR</code></span></p></td>
 <td>linear interpolation
 </td>
 </tr>
 <tr>
-<td><p><a name="GST-INTERPOLATE-QUADRATIC:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_QUADRATIC</code></span></p></td>
-<td>square interpolation (deprecated, maps to cubic)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-INTERPOLATE-CUBIC:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_CUBIC</code></span></p></td>
+<td><p><a name="GST-INTERPOLATION-MODE-CUBIC:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATION_MODE_CUBIC</code></span></p></td>
 <td>cubic interpolation
 </td>
 </tr>
-<tr>
-<td><p><a name="GST-INTERPOLATE-USER:CAPS"></a><span class="term"><code class="literal">GST_INTERPOLATE_USER</code></span></p></td>
-<td>user-provided interpolation (not yet available)
-</td>
-</tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-interpolation-control-source-new"></a><h3>gst_interpolation_control_source_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="returnvalue">GstInterpolationControlSource</span></a> * gst_interpolation_control_source_new
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_interpolation_control_source_new
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This returns a new, unbound <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a>.
@@ -164,194 +136,19 @@
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new, unbound <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a>.</td>
+<td>a new, unbound <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr></tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-set"></a><h3>gst_interpolation_control_source_set ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_interpolation_control_source_set
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Set the value of given controller-handled property at a certain time.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time the control-change is scheduled for</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the control-value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>FALSE if the values couldn't be set, TRUE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="GstInterpolationControlSource.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="gst-interpolation-control-source-set-from-list"></a><h3>gst_interpolation_control_source_set_from_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_interpolation_control_source_set_from_list
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *timedvalues</code></em>);</pre>
-<p>
-Sets multiple timed values at once.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timedvalues</code></em> :</span></p></td>
-<td>a list with <a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue"><span class="type">GstTimedValue</span></a> items</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>FALSE if the values couldn't be set, TRUE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-set-interpolation-mode"></a><h3>gst_interpolation_control_source_set_interpolation_mode ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_interpolation_control_source_set_interpolation_mode
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html#GstInterpolateMode" title="enum GstInterpolateMode"><span class="type">GstInterpolateMode</span></a> mode</code></em>);</pre>
-<p>
-Sets the given interpolation mode.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>
-<p>User interpolation is not yet available and quadratic interpolation
-is deprecated and maps to cubic interpolation.</p>
-</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
-<td>interpolation mode</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the interpolation mode could be set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-get-all"></a><h3>gst_interpolation_control_source_get_all ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_interpolation_control_source_get_all
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);</pre>
-<p>
-Returns a read-only copy of the list of <a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue"><span class="type">GstTimedValue</span></a> for the given property.
-Free the list after done with it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> to get the list from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the list, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property isn't handled by the controller</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-unset"></a><h3>gst_interpolation_control_source_unset ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_interpolation_control_source_unset
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>
-Used to remove the value of given controller-handled property at a certain
-time.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time the control-change should be removed from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-unset-all"></a><h3>gst_interpolation_control_source_unset_all ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_interpolation_control_source_unset_all
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);</pre>
-<p>
-Used to remove all time-stamped values of given controller-handled property
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> object</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-interpolation-control-source-get-count"></a><h3>gst_interpolation_control_source_get_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_interpolation_control_source_get_count
-                                                        (<em class="parameter"><code><a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> *self</code></em>);</pre>
-<p>
-Returns the number of control points that are set.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> to get the number of values from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the number of control points that are set.</td>
-</tr>
-</tbody>
-</table></div>
+<a name="GstInterpolationControlSource--mode"></a><h3>The <code class="literal">"mode"</code> property</h3>
+<pre class="programlisting">  "mode"                     <a class="link" href="GstInterpolationControlSource.html#GstInterpolationMode" title="enum GstInterpolationMode"><span class="type">GstInterpolationMode</span></a>  : Read / Write</pre>
+<p>Interpolation mode.</p>
+<p>Default value: GST_INTERPOLATION_MODE_NONE</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/GstLFOControlSource.html b/docs/libs/html/GstLFOControlSource.html
index c4c963d..bf44a2d 100644
--- a/docs/libs/html/GstLFOControlSource.html
+++ b/docs/libs/html/GstLFOControlSource.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstLFOControlSource</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
 <link rel="prev" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">
-<link rel="next" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">
+<link rel="next" href="GstTriggerControlSource.html" title="GstTriggerControlSource">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="GstInterpolationControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-libs-GstControllerGObject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="GstTriggerControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#GstLFOControlSource.synopsis" class="shortcut">Top</a>
@@ -46,31 +46,33 @@
 
 struct              <a class="link" href="GstLFOControlSource.html#GstLFOControlSource-struct" title="struct GstLFOControlSource">GstLFOControlSource</a>;
 enum                <a class="link" href="GstLFOControlSource.html#GstLFOWaveform" title="enum GstLFOWaveform">GstLFOWaveform</a>;
-<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="returnvalue">GstLFOControlSource</span></a> * <a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()">gst_lfo_control_source_new</a>        (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()">gst_lfo_control_source_new</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstLFOControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-         +----GstLFOControlSource
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
+                     +----GstLFOControlSource
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstLFOControlSource.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--amplitude" title='The "amplitude" property'>amplitude</a>"                <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>*               : Read / Write
+  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--amplitude" title='The "amplitude" property'>amplitude</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
   "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--frequency" title='The "frequency" property'>frequency</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
-  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--offset" title='The "offset" property'>offset</a>"                   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>*               : Read / Write
-  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--timeshift" title='The "timeshift" property'>timeshift</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--offset" title='The "offset" property'>offset</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write
+  "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--timeshift" title='The "timeshift" property'>timeshift</a>"                <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="GstLFOControlSource.html#GstLFOControlSource--waveform" title='The "waveform" property'>waveform</a>"                 <a class="link" href="GstLFOControlSource.html#GstLFOWaveform" title="enum GstLFOWaveform"><span class="type">GstLFOWaveform</span></a>        : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstLFOControlSource.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> is a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>, that provides several periodic waveforms
+<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that provides several periodic waveforms
 as control values. It supports all fundamental, numeric GValue types as property.
 </p>
 <p>
@@ -88,7 +90,7 @@
 <a name="GstLFOControlSource-struct"></a><h3>struct GstLFOControlSource</h3>
 <pre class="programlisting">struct GstLFOControlSource;</pre>
 <p>
-The instance structure of <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
@@ -139,7 +141,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-lfo-control-source-new"></a><h3>gst_lfo_control_source_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="returnvalue">GstLFOControlSource</span></a> * gst_lfo_control_source_new        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_lfo_control_source_new          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This returns a new, unbound <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
 </p>
@@ -147,7 +149,8 @@
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new, unbound <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.</td>
+<td>a new, unbound <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr></tbody>
 </table></div>
 </div>
@@ -156,14 +159,12 @@
 <a name="GstLFOControlSource.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstLFOControlSource--amplitude"></a><h3>The <code class="literal">"amplitude"</code> property</h3>
-<pre class="programlisting">  "amplitude"                <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "amplitude"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
 <p>
 Specifies the amplitude for the waveform of this <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
 </p>
-<p>
-It should be given as a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a type that can be transformed
-to the type of the bound property.
-</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 1</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -180,19 +181,17 @@
 <hr>
 <div class="refsect2">
 <a name="GstLFOControlSource--offset"></a><h3>The <code class="literal">"offset"</code> property</h3>
-<pre class="programlisting">  "offset"                   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "offset"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>               : Read / Write</pre>
 <p>
-Specifies the offset for the waveform of this <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
+Specifies the value offset for the waveform of this <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
 </p>
-<p>
-It should be given as a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a type that can be transformed
-to the type of the bound property.
-</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 1</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstLFOControlSource--timeshift"></a><h3>The <code class="literal">"timeshift"</code> property</h3>
-<pre class="programlisting">  "timeshift"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "timeshift"                <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 Specifies the timeshift to the right that should be used for the waveform
 of this <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> in nanoseconds.
diff --git a/docs/libs/html/GstNetClientClock.html b/docs/libs/html/GstNetClientClock.html
index 891757a..0055651 100644
--- a/docs/libs/html/GstNetClientClock.html
+++ b/docs/libs/html/GstNetClientClock.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetClientClock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-net.html" title="GStreamer Network Classes">
 <link rel="prev" href="gstreamer-net.html" title="GStreamer Network Classes">
 <link rel="next" href="gstreamer-libs-GstNetTimePacket.html" title="GstNetTimePacket">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-net.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-net.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstNetTimePacket.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -46,10 +46,10 @@
 #include &lt;gst/net/gstnet.h&gt;
 
 struct              <a class="link" href="GstNetClientClock.html#GstNetClientClock-struct" title="struct GstNetClientClock">GstNetClientClock</a>;
-<a href="../gstreamer-0.11/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstNetClientClock.html#gst-net-client-clock-new" title="gst_net_client_clock_new ()">gst_net_client_clock_new</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+<a href="../gstreamer-1.0/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstNetClientClock.html#gst-net-client-clock-new" title="gst_net_client_clock_new ()">gst_net_client_clock_new</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *remote_address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> remote_port</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -57,9 +57,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstClock.html">GstClock</a>
-                     +----<a href="../gstreamer-0.11/GstSystemClock.html">GstSystemClock</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstClock.html">GstClock</a>
+                     +----<a href="../gstreamer-1.0/GstSystemClock.html">GstSystemClock</a>
                            +----GstNetClientClock
 </pre>
 </div>
@@ -73,7 +73,7 @@
 <div class="refsect1">
 <a name="GstNetClientClock.description"></a><h2>Description</h2>
 <p>
-This object implements a custom <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> that synchronizes its time
+This object implements a custom <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> that synchronizes its time
 to a remote time provider such as <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>.
 </p>
 <p>
@@ -86,12 +86,12 @@
 parameters based on the local and remote observations.
 </p>
 <p>
-Various parameters of the clock can be configured with the parent <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>
+Various parameters of the clock can be configured with the parent <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>
 "timeout", "window-size" and "window-threshold" object properties.
 </p>
 <p>
-A <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> is typically set on a <a href="../gstreamer-0.11/GstPipeline.html"><span class="type">GstPipeline</span></a> with 
-<a href="../gstreamer-0.11/GstPipeline.html#gst-pipeline-use-clock"><code class="function">gst_pipeline_use_clock()</code></a>.
+A <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> is typically set on a <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a> with 
+<a href="../gstreamer-1.0/GstPipeline.html#gst-pipeline-use-clock"><code class="function">gst_pipeline_use_clock()</code></a>.
 </p>
 <p>
 Last reviewed on 2005-11-23 (0.9.5)
@@ -109,10 +109,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-client-clock-new"></a><h3>gst_net_client_clock_new ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_net_client_clock_new            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_net_client_clock_new            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *remote_address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> remote_port</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);</pre>
 <p>
 Create a new <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> that will report the time
 provided by the <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> on <em class="parameter"><code>remote_address</code></em> and 
@@ -139,7 +139,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> that receives a time from the remote
+<td>a new <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> that receives a time from the remote
 clock.</td>
 </tr>
 </tbody>
@@ -151,7 +151,7 @@
 <div class="refsect2">
 <a name="GstNetClientClock--address"></a><h3>The <code class="literal">"address"</code> property</h3>
 <pre class="programlisting">  "address"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
-<p>The address of the machine providing a time server, as a dotted quad (x.x.x.x).</p>
+<p>The IP address of the machine providing a time server.</p>
 <p>Default value: "127.0.0.1"</p>
 </div>
 <hr>
@@ -165,7 +165,7 @@
 </div>
 <div class="refsect1">
 <a name="GstNetClientClock.see-also"></a><h2>See Also</h2>
-<a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>, <a href="../gstreamer-0.11/GstPipeline.html"><span class="type">GstPipeline</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>, <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/GstNetTimeProvider.html b/docs/libs/html/GstNetTimeProvider.html
index 65342c8..9c11fbc 100644
--- a/docs/libs/html/GstNetTimeProvider.html
+++ b/docs/libs/html/GstNetTimeProvider.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetTimeProvider</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-net.html" title="GStreamer Network Classes">
 <link rel="prev" href="gstreamer-libs-GstNetTimePacket.html" title="GstNetTimePacket">
 <link rel="next" href="gstreamer-check.html" title="GStreamer Check Unit Testing">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstNetTimePacket.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-net.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-check.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -46,7 +46,7 @@
 #include &lt;gst/net/gstnet.h&gt;
 
 struct              <a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider-struct" title="struct GstNetTimeProvider">GstNetTimeProvider</a>;
-<a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()">gst_net_time_provider_new</a>          (<em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
+<a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()">gst_net_time_provider_new</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port</code></em>);
 </pre>
@@ -56,7 +56,7 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
                +----GstNetTimeProvider
 </pre>
 </div>
@@ -65,25 +65,25 @@
 <pre class="synopsis">
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--active" title='The "active" property'>active</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--address" title='The "address" property'>address</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
-  "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--clock" title='The "clock" property'>clock</a>"                    <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write
+  "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--clock" title='The "clock" property'>clock</a>"                    <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstNetTimeProvider.description"></a><h2>Description</h2>
 <p>
-This object exposes the time of a <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> on the network.
+This object exposes the time of a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> on the network.
 </p>
 <p>
 A <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> is created with <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()"><code class="function">gst_net_time_provider_new()</code></a> which
-takes a <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>, an address and a port number as arguments.
+takes a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, an address and a port number as arguments.
 </p>
 <p>
 After creating the object, a client clock such as <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> can
 query the exposed clock over the network for its values.
 </p>
 <p>
-The <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> typically wraps the clock used by a <a href="../gstreamer-0.11/GstPipeline.html"><span class="type">GstPipeline</span></a>.
+The <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> typically wraps the clock used by a <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>.
 </p>
 <p>
 Last reviewed on 2005-11-23 (0.9.5)
@@ -101,7 +101,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-provider-new"></a><h3>gst_net_time_provider_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * gst_net_time_provider_new          (<em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
+<pre class="programlisting"><a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * gst_net_time_provider_new          (<em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port</code></em>);</pre>
 <p>
@@ -112,7 +112,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a> to export over the network</td>
+<td>a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> to export over the network</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
@@ -149,7 +149,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstNetTimeProvider--clock"></a><h3>The <code class="literal">"clock"</code> property</h3>
-<pre class="programlisting">  "clock"                    <a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write</pre>
+<pre class="programlisting">  "clock"                    <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write</pre>
 <p>The clock to export over the network.</p>
 </div>
 <hr>
@@ -163,7 +163,7 @@
 </div>
 <div class="refsect1">
 <a name="GstNetTimeProvider.see-also"></a><h2>See Also</h2>
-<a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a href="../gstreamer-0.11/GstPipeline.html"><span class="type">GstPipeline</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/GstPushSrc.html b/docs/libs/html/GstPushSrc.html
index de88f41..05c2c43 100644
--- a/docs/libs/html/GstPushSrc.html
+++ b/docs/libs/html/GstPushSrc.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstPushSrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="GstBaseTransform.html" title="GstBaseTransform">
 <link rel="next" href="GstAdapter.html" title="GstAdapter">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstBaseTransform.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstAdapter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -50,8 +50,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----<a class="link" href="GstBaseSrc.html" title="GstBaseSrc">GstBaseSrc</a>
                            +----GstPushSrc
 </pre>
diff --git a/docs/libs/html/GstTimedValueControlSource.html b/docs/libs/html/GstTimedValueControlSource.html
new file mode 100644
index 0000000..b81d608
--- /dev/null
+++ b/docs/libs/html/GstTimedValueControlSource.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstTimedValueControlSource</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
+<link rel="prev" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
+<link rel="next" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gstreamer-control.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="GstInterpolationControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#GstTimedValueControlSource.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstTimedValueControlSource.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstTimedValueControlSource.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstTimedValueControlSource"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstTimedValueControlSource.top_of_page"></a>GstTimedValueControlSource</span></h2>
+<p>GstTimedValueControlSource — timed value control source base class</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstTimedValueControlSource.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libs/controller/gsttimedvaluecontrolsource.h&gt;
+
+struct              <a class="link" href="GstTimedValueControlSource.html#GstTimedValueControlSource-struct" title="struct GstTimedValueControlSource">GstTimedValueControlSource</a>;
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *     <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter" title="gst_timed_value_control_source_find_control_point_iter ()">gst_timed_value_control_source_find_control_point_iter</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set" title="gst_timed_value_control_source_set ()">gst_timed_value_control_source_set</a>  (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> value</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set-from-list" title="gst_timed_value_control_source_set_from_list ()">gst_timed_value_control_source_set_from_list</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *timedvalues</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-get-all" title="gst_timed_value_control_source_get_all ()">gst_timed_value_control_source_get_all</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset" title="gst_timed_value_control_source_unset ()">gst_timed_value_control_source_unset</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset-all" title="gst_timed_value_control_source_unset_all ()">gst_timed_value_control_source_unset_all</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-get-count" title="gst_timed_value_control_source_get_count ()">gst_timed_value_control_source_get_count</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-invalidate-cache" title="gst_timed_value_control_invalidate_cache ()">gst_timed_value_control_invalidate_cache</a>
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTimedValueControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
+                     +----GstTimedValueControlSource
+                           +----<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
+                           +----<a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTimedValueControlSource.description"></a><h2>Description</h2>
+<p>
+Base class for <span class="type">GstContrlSources</span> that use time-stamped values.
+</p>
+<p>
+When overriding bind, chain up first to give this bind implementation a
+chance to setup things.
+</p>
+<p>
+All functions are MT-safe.
+</p>
+</div>
+<div class="refsect1">
+<a name="GstTimedValueControlSource.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTimedValueControlSource-struct"></a><h3>struct GstTimedValueControlSource</h3>
+<pre class="programlisting">struct GstTimedValueControlSource;</pre>
+<p>
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-find-control-point-iter"></a><h3>gst_timed_value_control_source_find_control_point_iter ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *     gst_timed_value_control_source_find_control_point_iter
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+<p>
+Find last value before given timestamp in control point list.
+If all values in the control point list come after the given
+timestamp or no values exist, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.
+</p>
+<p>
+For use in control source implementations.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the control source to search in</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the search key</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the found <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequenceIter"><span class="type">GSequenceIter</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-set"></a><h3>gst_timed_value_control_source_set ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_timed_value_control_source_set  (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> value</code></em>);</pre>
+<p>
+Set the value of given controller-handled property at a certain time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time the control-change is scheduled for</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>the control-value</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if the values couldn't be set, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-set-from-list"></a><h3>gst_timed_value_control_source_set_from_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_timed_value_control_source_set_from_list
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *timedvalues</code></em>);</pre>
+<p>
+Sets multiple timed values at once.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timedvalues</code></em> :</span></p></td>
+<td>a list
+with <a href="../gstreamer-1.0/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> items. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstController.TimedValue]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if the values couldn't be set, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-get-all"></a><h3>gst_timed_value_control_source_get_all ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_timed_value_control_source_get_all
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);</pre>
+<p>
+Returns a read-only copy of the list of <a href="../gstreamer-1.0/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> for the given property.
+Free the list after done with it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> to get the list from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a copy
+of the list, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the property isn't handled by the controller. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstController.TimedValue]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-unset"></a><h3>gst_timed_value_control_source_unset ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_timed_value_control_source_unset
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+<p>
+Used to remove the value of given controller-handled property at a certain
+time.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> object</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the time the control-change should be removed from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-unset-all"></a><h3>gst_timed_value_control_source_unset_all ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_timed_value_control_source_unset_all
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);</pre>
+<p>
+Used to remove all time-stamped values of given controller-handled property
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> object</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-source-get-count"></a><h3>gst_timed_value_control_source_get_count ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_timed_value_control_source_get_count
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);</pre>
+<p>
+Get the number of control points that are set.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> to get the number of values from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of control points that are set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-timed-value-control-invalidate-cache"></a><h3>gst_timed_value_control_invalidate_cache ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_timed_value_control_invalidate_cache
+                                                        (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);</pre>
+<p>
+Reset the controlled value cache.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>the <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/GstTriggerControlSource.html b/docs/libs/html/GstTriggerControlSource.html
new file mode 100644
index 0000000..b4a91d0
--- /dev/null
+++ b/docs/libs/html/GstTriggerControlSource.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstTriggerControlSource</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
+<link rel="prev" href="GstLFOControlSource.html" title="GstLFOControlSource">
+<link rel="next" href="gstreamer-net.html" title="GStreamer Network Classes">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="GstLFOControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-net.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#GstTriggerControlSource.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#GstTriggerControlSource.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#GstTriggerControlSource.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#GstTriggerControlSource.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="GstTriggerControlSource"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GstTriggerControlSource.top_of_page"></a>GstTriggerControlSource</span></h2>
+<p>GstTriggerControlSource — interpolation control source</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GstTriggerControlSource.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;libs/controller/gsttriggercontrolsource.h&gt;
+
+struct              <a class="link" href="GstTriggerControlSource.html#GstTriggerControlSource-struct" title="struct GstTriggerControlSource">GstTriggerControlSource</a>;
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstTriggerControlSource.html#gst-trigger-control-source-new" title="gst_trigger_control_source_new ()">gst_trigger_control_source_new</a>      (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTriggerControlSource.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
+                     +----<a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+                           +----GstTriggerControlSource
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTriggerControlSource.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="GstTriggerControlSource.html#GstTriggerControlSource--tolerance" title='The "tolerance" property'>tolerance</a>"                <span class="type">gint64</span>                : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="GstTriggerControlSource.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that returns values from user-given
+control points. It allows for a tolerance on the time-stamps.
+</p>
+<p>
+To use <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a> get a new instance by calling
+<a class="link" href="GstTriggerControlSource.html#gst-trigger-control-source-new" title="gst_trigger_control_source_new ()"><code class="function">gst_trigger_control_source_new()</code></a>, bind it to a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> and set some
+control points by calling <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set" title="gst_timed_value_control_source_set ()"><code class="function">gst_timed_value_control_source_set()</code></a>.
+</p>
+<p>
+All functions are MT-safe.
+</p>
+</div>
+<div class="refsect1">
+<a name="GstTriggerControlSource.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTriggerControlSource-struct"></a><h3>struct GstTriggerControlSource</h3>
+<pre class="programlisting">struct GstTriggerControlSource;</pre>
+<p>
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-trigger-control-source-new"></a><h3>gst_trigger_control_source_new ()</h3>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_trigger_control_source_new      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+This returns a new, unbound <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new, unbound <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GstTriggerControlSource.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstTriggerControlSource--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
+<pre class="programlisting">  "tolerance"                <span class="type">gint64</span>                : Read / Write</pre>
+<p>Amount of ns a control time can be off to still trigger.</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
index 7f0f21d..b55e929 100644
--- a/docs/libs/html/annotation-glossary.html
+++ b/docs/libs/html/annotation-glossary.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td> </td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -32,6 +32,8 @@
                       | 
                    <a class="shortcut" href="#glsE">E</a>
                       | 
+                   <a class="shortcut" href="#glsT">T</a>
+                      | 
                    <a class="shortcut" href="#glsI">I</a>
                       | 
                    <a class="shortcut" href="#glsS">S</a>
@@ -66,6 +68,10 @@
 <dt>
 <a name="annotation-glossterm-element-type"></a>element-type</dt>
 <dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt>
+<a name="annotation-glossterm-transfer%20container"></a>transfer container</dt>
+<dd><p>Free data container after the code is done.</p></dd>
 <a name="glsI"></a><h3 class="title">I</h3>
 <dt>
 <a name="annotation-glossterm-in"></a>in</dt>
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index 6f373fa..36e79ce 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index f82b0a2..d1add83 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="prev" href="gstreamer-hierarchy.html" title="Object Hierarchy">
 <link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-hierarchy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -27,8 +27,6 @@
                       | 
                    <a class="shortcut" href="#idxC">C</a>
                       | 
-                   <a class="shortcut" href="#idxD">D</a>
-                      | 
                    <a class="shortcut" href="#idxE">E</a>
                       | 
                    <a class="shortcut" href="#idxF">F</a>
@@ -39,15 +37,11 @@
                       | 
                    <a class="shortcut" href="#idxN">N</a>
                       | 
-                   <a class="shortcut" href="#idxO">O</a>
-                      | 
                    <a class="shortcut" href="#idxP">P</a>
                       | 
                    <a class="shortcut" href="#idxS">S</a>
                       | 
                    <a class="shortcut" href="#idxT">T</a>
-                      | 
-                   <a class="shortcut" href="#idxV">V</a>
 </td></tr>
 </table>
 <div class="index">
@@ -95,7 +89,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstAdapter.html#gst-adapter-prev-timestamp" title="gst_adapter_prev_timestamp ()">gst_adapter_prev_timestamp</a>, function in <a class="link" href="GstAdapter.html" title="GstAdapter">GstAdapter</a>
+<a class="link" href="GstAdapter.html#gst-adapter-prev-dts" title="gst_adapter_prev_dts ()">gst_adapter_prev_dts</a>, function in <a class="link" href="GstAdapter.html" title="GstAdapter">GstAdapter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstAdapter.html#gst-adapter-prev-pts" title="gst_adapter_prev_pts ()">gst_adapter_prev_pts</a>, function in <a class="link" href="GstAdapter.html" title="GstAdapter">GstAdapter</a>
 </dt>
 <dd></dd>
 <dt>
@@ -204,11 +202,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#GstBaseSink--enable-last-buffer" title='The "enable-last-buffer" property'>GstBaseSink:enable-last-buffer</a>, object property in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
+<a class="link" href="GstBaseSink.html#GstBaseSink--enable-last-sample" title='The "enable-last-sample" property'>GstBaseSink:enable-last-sample</a>, object property in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#GstBaseSink--last-buffer" title='The "last-buffer" property'>GstBaseSink:last-buffer</a>, object property in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
+<a class="link" href="GstBaseSink.html#GstBaseSink--last-sample" title='The "last-sample" property'>GstBaseSink:last-sample</a>, object property in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
 <dt>
@@ -304,10 +302,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-QUEUED:CAPS" title="GST_BASE_PARSE_FLOW_QUEUED">GST_BASE_PARSE_FLOW_QUEUED</a>, macro in <a class="link" href="gstreamer-libs-GstBaseParse.html" title="GstBaseParse">GstBaseParse</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()">gst_base_parse_frame_free</a>, function in <a class="link" href="gstreamer-libs-GstBaseParse.html" title="GstBaseParse">GstBaseParse</a>
 </dt>
 <dd></dd>
@@ -376,7 +370,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#gst-base-sink-get-last-buffer" title="gst_base_sink_get_last_buffer ()">gst_base_sink_get_last_buffer</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
+<a class="link" href="GstBaseSink.html#gst-base-sink-get-last-sample" title="gst_base_sink_get_last_sample ()">gst_base_sink_get_last_sample</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
 <dt>
@@ -416,10 +410,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#gst-base-sink-is-last-buffer-enabled" title="gst_base_sink_is_last_buffer_enabled ()">gst_base_sink_is_last_buffer_enabled</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseSink.html#gst-base-sink-is-qos-enabled" title="gst_base_sink_is_qos_enabled ()">gst_base_sink_is_qos_enabled</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
@@ -440,10 +430,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS" title="GST_BASE_SINK_PREROLL_TIMED_WAIT()">GST_BASE_SINK_PREROLL_TIMED_WAIT</a>, macro in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseSink.html#GST-BASE-SINK-PREROLL-TRYLOCK:CAPS" title="GST_BASE_SINK_PREROLL_TRYLOCK()">GST_BASE_SINK_PREROLL_TRYLOCK</a>, macro in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
@@ -468,10 +454,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#gst-base-sink-set-last-buffer-enabled" title="gst_base_sink_set_last_buffer_enabled ()">gst_base_sink_set_last_buffer_enabled</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseSink.html#gst-base-sink-set-max-lateness" title="gst_base_sink_set_max_lateness ()">gst_base_sink_set_max_lateness</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
@@ -576,14 +558,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-LOCK:CAPS" title="GST_BASE_TRANSFORM_LOCK()">GST_BASE_TRANSFORM_LOCK</a>, macro in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstBaseTransform.html#gst-base-transform-reconfigure" title="gst_base_transform_reconfigure ()">gst_base_transform_reconfigure</a>, function in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseTransform.html#gst-base-transform-set-gap-aware" title="gst_base_transform_set_gap_aware ()">gst_base_transform_set_gap_aware</a>, function in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
 </dt>
 <dd></dd>
@@ -616,14 +590,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseTransform.html#gst-base-transform-suggest" title="gst_base_transform_suggest ()">gst_base_transform_suggest</a>, function in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-UNLOCK:CAPS" title="GST_BASE_TRANSFORM_UNLOCK()">GST_BASE_TRANSFORM_UNLOCK</a>, macro in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseTransform.html#gst-base-transform-update-qos" title="gst_base_transform_update_qos ()">gst_base_transform_update_qos</a>, function in <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
 </dt>
 <dd></dd>
@@ -1577,95 +1543,155 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData">GstCollectData</a>, struct in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectData2" title="struct GstCollectData2">GstCollectData2</a>, struct in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()">GstCollectDataDestroyNotify</a>, user_function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectData2DestroyNotify" title="GstCollectData2DestroyNotify ()">GstCollectData2DestroyNotify</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#GstCollectPads-struct" title="struct GstCollectPads">GstCollectPads</a>, struct in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2-struct" title="struct GstCollectPads2">GstCollectPads2</a>, struct in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()">GstCollectPadsClipFunction</a>, user_function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2BufferFunction" title="GstCollectPads2BufferFunction ()">GstCollectPads2BufferFunction</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()">GstCollectPadsFunction</a>, user_function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2ClipFunction" title="GstCollectPads2ClipFunction ()">GstCollectPads2ClipFunction</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad" title="gst_collect_pads_add_pad ()">gst_collect_pads_add_pad</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2CompareFunction" title="GstCollectPads2CompareFunction ()">GstCollectPads2CompareFunction</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad-full" title="gst_collect_pads_add_pad_full ()">gst_collect_pads_add_pad_full</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2EventFunction" title="GstCollectPads2EventFunction ()">GstCollectPads2EventFunction</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-available" title="gst_collect_pads_available ()">gst_collect_pads_available</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2Function" title="GstCollectPads2Function ()">GstCollectPads2Function</a>, user_function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()">gst_collect_pads_collect</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GstCollectPads2StateFlags" title="enum GstCollectPads2StateFlags">GstCollectPads2StateFlags</a>, enum in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()">gst_collect_pads_collect_range</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad" title="gst_collect_pads2_add_pad ()">gst_collect_pads2_add_pad</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-flush" title="gst_collect_pads_flush ()">gst_collect_pads_flush</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-add-pad-full" title="gst_collect_pads2_add_pad_full ()">gst_collect_pads2_add_pad_full</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-is-active" title="gst_collect_pads_is_active ()">gst_collect_pads_is_active</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-available" title="gst_collect_pads2_available ()">gst_collect_pads2_available</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-new" title="gst_collect_pads_new ()">gst_collect_pads_new</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect" title="gst_collect_pads2_collect ()">gst_collect_pads2_collect</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()">gst_collect_pads_peek</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-collect-range" title="gst_collect_pads2_collect_range ()">gst_collect_pads2_collect_range</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-pop" title="gst_collect_pads_pop ()">gst_collect_pads_pop</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-flush" title="gst_collect_pads2_flush ()">gst_collect_pads2_flush</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-read-buffer" title="gst_collect_pads_read_buffer ()">gst_collect_pads_read_buffer</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS" title="GST_COLLECT_PADS2_GET_STREAM_LOCK()">GST_COLLECT_PADS2_GET_STREAM_LOCK</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()">gst_collect_pads_remove_pad</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-is-active" title="gst_collect_pads2_is_active ()">gst_collect_pads2_is_active</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-set-clip-function" title="gst_collect_pads_set_clip_function ()">gst_collect_pads_set_clip_function</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-new" title="gst_collect_pads2_new ()">gst_collect_pads2_new</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-set-flushing" title="gst_collect_pads_set_flushing ()">gst_collect_pads_set_flushing</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-peek" title="gst_collect_pads2_peek ()">gst_collect_pads2_peek</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-set-function" title="gst_collect_pads_set_function ()">gst_collect_pads_set_function</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-pop" title="gst_collect_pads2_pop ()">gst_collect_pads2_pop</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-start" title="gst_collect_pads_start ()">gst_collect_pads_start</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-read-buffer" title="gst_collect_pads2_read_buffer ()">gst_collect_pads2_read_buffer</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-stop" title="gst_collect_pads_stop ()">gst_collect_pads_stop</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-remove-pad" title="gst_collect_pads2_remove_pad ()">gst_collect_pads2_remove_pad</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-take-buffer" title="gst_collect_pads_take_buffer ()">gst_collect_pads_take_buffer</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-buffer-function" title="gst_collect_pads2_set_buffer_function ()">gst_collect_pads2_set_buffer_function</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-clip-function" title="gst_collect_pads2_set_clip_function ()">gst_collect_pads2_set_clip_function</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-compare-function" title="gst_collect_pads2_set_compare_function ()">gst_collect_pads2_set_compare_function</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-event-function" title="gst_collect_pads2_set_event_function ()">gst_collect_pads2_set_event_function</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-flushing" title="gst_collect_pads2_set_flushing ()">gst_collect_pads2_set_flushing</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-function" title="gst_collect_pads2_set_function ()">gst_collect_pads2_set_function</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-set-waiting" title="gst_collect_pads2_set_waiting ()">gst_collect_pads2_set_waiting</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-start" title="gst_collect_pads2_start ()">gst_collect_pads2_start</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE:CAPS" title="GST_COLLECT_PADS2_STATE()">GST_COLLECT_PADS2_STATE</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-IS-SET:CAPS" title="GST_COLLECT_PADS2_STATE_IS_SET()">GST_COLLECT_PADS2_STATE_IS_SET</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-SET:CAPS" title="GST_COLLECT_PADS2_STATE_SET()">GST_COLLECT_PADS2_STATE_SET</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-UNSET:CAPS" title="GST_COLLECT_PADS2_STATE_UNSET()">GST_COLLECT_PADS2_STATE_UNSET</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-stop" title="gst_collect_pads2_stop ()">gst_collect_pads2_stop</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-LOCK:CAPS" title="GST_COLLECT_PADS2_STREAM_LOCK()">GST_COLLECT_PADS2_STREAM_LOCK</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS" title="GST_COLLECT_PADS2_STREAM_UNLOCK()">GST_COLLECT_PADS2_STREAM_UNLOCK</a>, macro in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstCollectPads2.html#gst-collect-pads2-take-buffer" title="gst_collect_pads2_take_buffer ()">gst_collect_pads2_take_buffer</a>, function in <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1680,267 +1706,6 @@
 <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset" title="gst_consistency_checker_reset ()">gst_consistency_checker_reset</a>, function in <a class="link" href="gstreamer-libs-GstStreamConsistency.html" title="GstStreamConsistency">GstStreamConsistency</a>
 </dt>
 <dd></dd>
-<dt>
-<a class="link" href="GstController.html#GstController-struct" title="struct GstController">GstController</a>, struct in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#GstController--control-rate" title='The "control-rate" property'>GstController:control-rate</a>, object property in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-get" title="gst_controller_get ()">gst_controller_get</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-get-control-source" title="gst_controller_get_control_source ()">gst_controller_get_control_source</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-get-value-array" title="gst_controller_get_value_array ()">gst_controller_get_value_array</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-get-value-arrays" title="gst_controller_get_value_arrays ()">gst_controller_get_value_arrays</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-init" title="gst_controller_init ()">gst_controller_init</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-new" title="gst_controller_new ()">gst_controller_new</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-new-list" title="gst_controller_new_list ()">gst_controller_new_list</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-new-valist" title="gst_controller_new_valist ()">gst_controller_new_valist</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-remove-properties" title="gst_controller_remove_properties ()">gst_controller_remove_properties</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-remove-properties-list" title="gst_controller_remove_properties_list ()">gst_controller_remove_properties_list</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-remove-properties-valist" title="gst_controller_remove_properties_valist ()">gst_controller_remove_properties_valist</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-set-control-source" title="gst_controller_set_control_source ()">gst_controller_set_control_source</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-set-disabled" title="gst_controller_set_disabled ()">gst_controller_set_disabled</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-set-property-disabled" title="gst_controller_set_property_disabled ()">gst_controller_set_property_disabled</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-suggest-next-sync" title="gst_controller_suggest_next_sync ()">gst_controller_suggest_next_sync</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()">gst_controller_sync_values</a>, function in <a class="link" href="GstController.html" title="GstController">GstController</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#GstControlSource-struct" title="struct GstControlSource">GstControlSource</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#GstControlSourceBind" title="GstControlSourceBind ()">GstControlSourceBind</a>, user_function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#GstControlSourceClass" title="struct GstControlSourceClass">GstControlSourceClass</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#GstControlSourceGetValue" title="GstControlSourceGetValue ()">GstControlSourceGetValue</a>, user_function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#GstControlSourceGetValueArray" title="GstControlSourceGetValueArray ()">GstControlSourceGetValueArray</a>, user_function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#gst-control-source-bind" title="gst_control_source_bind ()">gst_control_source_bind</a>, function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#gst-control-source-get-value" title="gst_control_source_get_value ()">gst_control_source_get_value</a>, function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstControlSource.html#gst-control-source-get-value-array" title="gst_control_source_get_value_array ()">gst_control_source_get_value_array</a>, function in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
-<a name="idxD"></a><h3 class="title">D</h3>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue">GstDataQueue</a>, struct in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()">GstDataQueueCheckFullFunction</a>, user_function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback" title="GstDataQueueEmptyCallback ()">GstDataQueueEmptyCallback</a>, user_function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback" title="GstDataQueueFullCallback ()">GstDataQueueFullCallback</a>, user_function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem">GstDataQueueItem</a>, struct in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueSize" title="struct GstDataQueueSize">GstDataQueueSize</a>, struct in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head" title="gst_data_queue_drop_head ()">gst_data_queue_drop_head</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-flush" title="gst_data_queue_flush ()">gst_data_queue_flush</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level" title="gst_data_queue_get_level ()">gst_data_queue_get_level</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty" title="gst_data_queue_is_empty ()">gst_data_queue_is_empty</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full" title="gst_data_queue_is_full ()">gst_data_queue_is_full</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed" title="gst_data_queue_limits_changed ()">gst_data_queue_limits_changed</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-new" title="gst_data_queue_new ()">gst_data_queue_new</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-new-full" title="gst_data_queue_new_full ()">gst_data_queue_new_full</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" title="gst_data_queue_pop ()">gst_data_queue_pop</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" title="gst_data_queue_push ()">gst_data_queue_push</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing" title="gst_data_queue_set_flushing ()">gst_data_queue_set_flushing</a>, function in <a class="link" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">GstDataQueue</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag">GstDPHeaderFlag</a>, enum in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFromBufferFunction" title="GstDPHeaderFromBufferFunction ()">GstDPHeaderFromBufferFunction</a>, user_function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromCapsFunction" title="GstDPPacketFromCapsFunction ()">GstDPPacketFromCapsFunction</a>, user_function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromEventFunction" title="GstDPPacketFromEventFunction ()">GstDPPacketFromEventFunction</a>, user_function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer">GstDPPacketizer</a>, struct in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType" title="enum GstDPPayloadType">GstDPPayloadType</a>, enum in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion">GstDPVersion</a>, enum in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-buffer-from-header" title="gst_dp_buffer_from_header ()">gst_dp_buffer_from_header</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-caps-from-packet" title="gst_dp_caps_from_packet ()">gst_dp_caps_from_packet</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-crc" title="gst_dp_crc ()">gst_dp_crc</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-event-from-packet" title="gst_dp_event_from_packet ()">gst_dp_event_from_packet</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-LENGTH:CAPS" title="GST_DP_HEADER_LENGTH">GST_DP_HEADER_LENGTH</a>, macro in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-length" title="gst_dp_header_payload_length ()">gst_dp_header_payload_length</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-type" title="gst_dp_header_payload_type ()">gst_dp_header_payload_type</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-init" title="gst_dp_init ()">gst_dp_init</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-free" title="gst_dp_packetizer_free ()">gst_dp_packetizer_free</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-new" title="gst_dp_packetizer_new ()">gst_dp_packetizer_new</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-header" title="gst_dp_validate_header ()">gst_dp_validate_header</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet" title="gst_dp_validate_packet ()">gst_dp_validate_packet</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-payload" title="gst_dp_validate_payload ()">gst_dp_validate_payload</a>, function in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MAJOR:CAPS" title="GST_DP_VERSION_MAJOR">GST_DP_VERSION_MAJOR</a>, macro in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MINOR:CAPS" title="GST_DP_VERSION_MINOR">GST_DP_VERSION_MINOR</a>, macro in <a class="link" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">gstdataprotocol</a>
-</dt>
-<dd></dd>
 <a name="idxE"></a><h3 class="title">E</h3>
 <dt>
 <a class="link" href="gstreamer-libs-GstCheck.html#GST-END-TEST:CAPS" title="GST_END_TEST">GST_END_TEST</a>, macro in <a class="link" href="gstreamer-libs-GstCheck.html" title="GstCheck">GstCheck</a>
@@ -1973,45 +1738,21 @@
 <dd></dd>
 <a name="idxI"></a><h3 class="title">I</h3>
 <dt>
-<a class="link" href="GstInterpolationControlSource.html#GstInterpolateMode" title="enum GstInterpolateMode">GstInterpolateMode</a>, enum in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstInterpolationControlSource.html#GstInterpolationControlSource-struct" title="struct GstInterpolationControlSource">GstInterpolationControlSource</a>, struct in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-get-all" title="gst_interpolation_control_source_get_all ()">gst_interpolation_control_source_get_all</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
+<a class="link" href="GstInterpolationControlSource.html#GstInterpolationControlSource--mode" title='The "mode" property'>GstInterpolationControlSource:mode</a>, object property in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-get-count" title="gst_interpolation_control_source_get_count ()">gst_interpolation_control_source_get_count</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
+<a class="link" href="GstInterpolationControlSource.html#GstInterpolationMode" title="enum GstInterpolationMode">GstInterpolationMode</a>, enum in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
 </dt>
 <dd></dd>
 <dt>
 <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()">gst_interpolation_control_source_new</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
 </dt>
 <dd></dd>
-<dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set" title="gst_interpolation_control_source_set ()">gst_interpolation_control_source_set</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set-from-list" title="gst_interpolation_control_source_set_from_list ()">gst_interpolation_control_source_set_from_list</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-set-interpolation-mode" title="gst_interpolation_control_source_set_interpolation_mode ()">gst_interpolation_control_source_set_interpolation_mode</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-unset" title="gst_interpolation_control_source_unset ()">gst_interpolation_control_source_unset</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-unset-all" title="gst_interpolation_control_source_unset_all ()">gst_interpolation_control_source_unset_all</a>, function in <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-</dt>
-<dd></dd>
 <a name="idxL"></a><h3 class="title">L</h3>
 <dt>
 <a class="link" href="GstLFOControlSource.html#GstLFOControlSource-struct" title="struct GstLFOControlSource">GstLFOControlSource</a>, struct in <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource">GstLFOControlSource</a>
@@ -2110,55 +1851,6 @@
 <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()">gst_net_time_provider_new</a>, function in <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider">GstNetTimeProvider</a>
 </dt>
 <dd></dd>
-<a name="idxO"></a><h3 class="title">O</h3>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-control-properties" title="gst_object_control_properties ()">gst_object_control_properties</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-controller" title="gst_object_get_controller ()">gst_object_get_controller</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-rate" title="gst_object_get_control_rate ()">gst_object_get_control_rate</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-source" title="gst_object_get_control_source ()">gst_object_get_control_source</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-array" title="gst_object_get_value_array ()">gst_object_get_value_array</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-arrays" title="gst_object_get_value_arrays ()">gst_object_get_value_arrays</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-controller" title="gst_object_set_controller ()">gst_object_set_controller</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-rate" title="gst_object_set_control_rate ()">gst_object_set_control_rate</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-source" title="gst_object_set_control_source ()">gst_object_set_control_source</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-suggest-next-sync" title="gst_object_suggest_next_sync ()">gst_object_suggest_next_sync</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-sync-values" title="gst_object_sync_values ()">gst_object_sync_values</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-uncontrol-properties" title="gst_object_uncontrol_properties ()">gst_object_uncontrol_properties</a>, function in <a class="link" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">GstControllerGObject</a>
-</dt>
-<dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
 <a class="link" href="GstPushSrc.html#GstPushSrc-struct" title="struct GstPushSrc">GstPushSrc</a>, struct in <a class="link" href="GstPushSrc.html" title="GstPushSrc">GstPushSrc</a>
@@ -2175,7 +1867,51 @@
 <dd></dd>
 <a name="idxT"></a><h3 class="title">T</h3>
 <dt>
-<a class="link" href="GstControlSource.html#GstTimedValue" title="struct GstTimedValue">GstTimedValue</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
+<a class="link" href="GstTimedValueControlSource.html#GstTimedValueControlSource-struct" title="struct GstTimedValueControlSource">GstTimedValueControlSource</a>, struct in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-invalidate-cache" title="gst_timed_value_control_invalidate_cache ()">gst_timed_value_control_invalidate_cache</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter" title="gst_timed_value_control_source_find_control_point_iter ()">gst_timed_value_control_source_find_control_point_iter</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-get-all" title="gst_timed_value_control_source_get_all ()">gst_timed_value_control_source_get_all</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-get-count" title="gst_timed_value_control_source_get_count ()">gst_timed_value_control_source_get_count</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set" title="gst_timed_value_control_source_set ()">gst_timed_value_control_source_set</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set-from-list" title="gst_timed_value_control_source_set_from_list ()">gst_timed_value_control_source_set_from_list</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset" title="gst_timed_value_control_source_unset ()">gst_timed_value_control_source_unset</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset-all" title="gst_timed_value_control_source_unset_all ()">gst_timed_value_control_source_unset_all</a>, function in <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTriggerControlSource.html#GstTriggerControlSource-struct" title="struct GstTriggerControlSource">GstTriggerControlSource</a>, struct in <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTriggerControlSource.html#GstTriggerControlSource--tolerance" title='The "tolerance" property'>GstTriggerControlSource:tolerance</a>, object property in <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTriggerControlSource.html#gst-trigger-control-source-new" title="gst_trigger_control_source_new ()">gst_trigger_control_source_new</a>, function in <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2202,15 +1938,6 @@
 <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()">gst_type_find_helper_get_range</a>, function in <a class="link" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">GstTypeFindHelper</a>
 </dt>
 <dd></dd>
-<dt>
-<a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range-ext" title="gst_type_find_helper_get_range_ext ()">gst_type_find_helper_get_range_ext</a>, function in <a class="link" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">GstTypeFindHelper</a>
-</dt>
-<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
-<dt>
-<a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray">GstValueArray</a>, struct in <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-</dt>
-<dd></dd>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/libs/html/gstreamer-base.html b/docs/libs/html/gstreamer-base.html
index e612111..bb86f2a 100644
--- a/docs/libs/html/gstreamer-base.html
+++ b/docs/libs/html/gstreamer-base.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Base and Utillity Classes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
 <link rel="prev" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
 <link rel="next" href="gstreamer-libs-GstBaseParse.html" title="GstBaseParse">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="gstreamer-libs.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-libs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstBaseParse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -53,17 +53,14 @@
     types to a memory buffer and allows reading</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstCollectPads.html">GstCollectPads</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
+<span class="refentrytitle"><a href="GstCollectPads2.html">GstCollectPads2</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstTypeFindHelper.html">GstTypeFindHelper</a></span><span class="refpurpose"> — Utility functions for typefinding</span>
 </dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstDataQueue.html">GstDataQueue</a></span><span class="refpurpose"> — Threadsafe queueing object</span>
-</dt>
 </dl></div>
 <p>
-        libgstbase-0.11.so provides some base classes to be extended
+        libgstbase-1.0.so provides some base classes to be extended
         by elements and utillity classes that are most useful for plugin developers.
       </p>
 </div>
diff --git a/docs/libs/html/gstreamer-check.html b/docs/libs/html/gstreamer-check.html
index 0c5fdbb..c15f61c 100644
--- a/docs/libs/html/gstreamer-check.html
+++ b/docs/libs/html/gstreamer-check.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Check Unit Testing</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
 <link rel="prev" href="GstNetTimeProvider.html" title="GstNetTimeProvider">
 <link rel="next" href="gstreamer-libs-GstCheck.html" title="GstCheck">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="GstNetTimeProvider.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-libs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstCheck.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -34,7 +34,7 @@
 </dt>
 </dl></div>
 <p>
-        libgstcheck-0.11.so provides functionality for writing
+        libgstcheck-1.0.so provides functionality for writing
         unit tests that use the check framework.
       </p>
 </div>
diff --git a/docs/libs/html/gstreamer-control.html b/docs/libs/html/gstreamer-control.html
index 8c3b4d1..a71f974 100644
--- a/docs/libs/html/gstreamer-control.html
+++ b/docs/libs/html/gstreamer-control.html
@@ -3,31 +3,28 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Dynamic Parameter Control</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
-<link rel="prev" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">
-<link rel="next" href="GstController.html" title="GstController">
+<link rel="prev" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">
+<link rel="next" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gstreamer-libs-GstDataQueue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-libs-GstTypeFindHelper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-libs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="GstController.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="GstTimedValueControlSource.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-control"></a>GStreamer Dynamic Parameter Control</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
-<span class="refentrytitle"><a href="GstController.html">GstController</a></span><span class="refpurpose"> — dynamic parameter control subsystem</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GstControlSource.html">GstControlSource</a></span><span class="refpurpose"> — base class for control source sources</span>
+<span class="refentrytitle"><a href="GstTimedValueControlSource.html">GstTimedValueControlSource</a></span><span class="refpurpose"> — timed value control source base class</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstInterpolationControlSource.html">GstInterpolationControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
@@ -36,11 +33,11 @@
 <span class="refentrytitle"><a href="GstLFOControlSource.html">GstLFOControlSource</a></span><span class="refpurpose"> — LFO control source</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstControllerGObject.html">GstControllerGObject</a></span><span class="refpurpose"> — <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> convenience methods for using dynamic properties</span>
+<span class="refentrytitle"><a href="GstTriggerControlSource.html">GstTriggerControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
 </dt>
 </dl></div>
 <p>
-        libgstcontroller-0.11.so provides functionality to animate
+        libgstcontroller-1.0.so provides functionality to animate
         element properties over time.
       </p>
 </div>
diff --git a/docs/libs/html/gstreamer-dataprotocol.html b/docs/libs/html/gstreamer-dataprotocol.html
deleted file mode 100644
index 5900540..0000000
--- a/docs/libs/html/gstreamer-dataprotocol.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer Data Protocol</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
-<link rel="prev" href="gstreamer-libs-GstControllerGObject.html" title="GstControllerGObject">
-<link rel="next" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gstreamer-libs-GstControllerGObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-libs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-libs-gstdataprotocol.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gstreamer-dataprotocol"></a>GStreamer Data Protocol</h2></div></div></div>
-<div class="toc"><dl><dt>
-<span class="refentrytitle"><a href="gstreamer-libs-gstdataprotocol.html">gstdataprotocol</a></span><span class="refpurpose"> — Serialization of caps, buffers and events.</span>
-</dt></dl></div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-hierarchy.html b/docs/libs/html/gstreamer-hierarchy.html
index 2867f95..0304992 100644
--- a/docs/libs/html/gstreamer-hierarchy.html
+++ b/docs/libs/html/gstreamer-hierarchy.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="prev" href="gstreamer-libs-GstStreamConsistency.html" title="GstStreamConsistency">
 <link rel="next" href="api-index-full.html" title="API Index">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstStreamConsistency.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -25,22 +25,23 @@
 <pre class="screen">
     <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-            <a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-                <a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+            <a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+                <a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                     <a class="link" href="GstBaseSrc.html" title="GstBaseSrc">GstBaseSrc</a>
                         <a class="link" href="GstPushSrc.html" title="GstPushSrc">GstPushSrc</a>
                     <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
                     <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-                <a href="../gstreamer-0.11/GstClock.html">GstClock</a>
-                    <a href="../gstreamer-0.11/GstSystemClock.html">GstSystemClock</a>
+                <a href="../gstreamer-1.0/GstClock.html">GstClock</a>
+                    <a href="../gstreamer-1.0/GstSystemClock.html">GstSystemClock</a>
                         <a class="link" href="GstNetClientClock.html" title="GstNetClientClock">GstNetClientClock</a>
-                <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
+                <a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
+                    <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
+                        <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
+                        <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
+                    <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource">GstLFOControlSource</a>
+                <a class="link" href="GstCollectPads2.html" title="GstCollectPads2">GstCollectPads2</a>
                 <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider">GstNetTimeProvider</a>
         <a class="link" href="GstAdapter.html" title="GstAdapter">GstAdapter</a>
-        <a class="link" href="GstController.html" title="GstController">GstController</a>
-        <a class="link" href="GstControlSource.html" title="GstControlSource">GstControlSource</a>
-            <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
-            <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource">GstLFOControlSource</a>
 </pre>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gstreamer-libs-GstBaseParse.html b/docs/libs/html/gstreamer-libs-GstBaseParse.html
index 3317774..606e661 100644
--- a/docs/libs/html/gstreamer-libs-GstBaseParse.html
+++ b/docs/libs/html/gstreamer-libs-GstBaseParse.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBaseParse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="next" href="GstBaseSrc.html" title="GstBaseSrc">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-base.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstBaseSrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -43,8 +43,8 @@
 struct              <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse">GstBaseParse</a>;
 struct              <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseClass" title="struct GstBaseParseClass">GstBaseParseClass</a>;
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration" title="gst_base_parse_set_duration ()">gst_base_parse_set_duration</a>         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate" title="gst_base_parse_set_average_bitrate ()">gst_base_parse_set_average_bitrate</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bitrate</code></em>);
@@ -62,32 +62,31 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_out</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" title="gst_base_parse_set_latency ()">gst_base_parse_set_latency</a>          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default" title="gst_base_parse_convert_default ()">gst_base_parse_convert_default</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry" title="gst_base_parse_add_index_entry ()">gst_base_parse_add_index_entry</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);
                     <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame">GstBaseParseFrame</a>;
 enum                <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags">GstBaseParseFrameFlags</a>;
-<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a>            (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a>            (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" title="gst_base_parse_frame_init ()">gst_base_parse_frame_init</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()">gst_base_parse_frame_free</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS" title="GST_BASE_PARSE_DRAINING()">GST_BASE_PARSE_DRAINING</a>             (parse)
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS" title="GST_BASE_PARSE_FLAG_DRAINING">GST_BASE_PARSE_FLAG_DRAINING</a>
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS" title="GST_BASE_PARSE_FLAG_LOST_SYNC">GST_BASE_PARSE_FLAG_LOST_SYNC</a>
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS" title="GST_BASE_PARSE_FLOW_DROPPED">GST_BASE_PARSE_FLOW_DROPPED</a>
-#define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-QUEUED:CAPS" title="GST_BASE_PARSE_FLOW_QUEUED">GST_BASE_PARSE_FLOW_QUEUED</a>
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" title="GST_BASE_PARSE_LOST_SYNC()">GST_BASE_PARSE_LOST_SYNC</a>            (parse)
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" title="GST_BASE_PARSE_SINK_PAD()">GST_BASE_PARSE_SINK_PAD</a>             (obj)
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" title="GST_BASE_PARSE_SRC_PAD()">GST_BASE_PARSE_SRC_PAD</a>              (obj)
@@ -127,14 +126,16 @@
 <p class="title"><b>Set-up phase</b></p>
 <ul class="itemizedlist" type="disc">
 <li class="listitem"><p>
-    GstBaseParse class calls <em class="parameter"><code>set_sink_caps</code></em> to inform the subclass about
-    incoming sinkpad caps. Subclass should set the srcpad caps accordingly.
-  </p></li>
-<li class="listitem"><p>
     GstBaseParse calls <em class="parameter"><code>start</code></em> to inform subclass that data processing is
     about to start now.
   </p></li>
 <li class="listitem"><p>
+    GstBaseParse class calls <em class="parameter"><code>set_sink_caps</code></em> to inform the subclass about
+    incoming sinkpad caps. Subclass could already set the srcpad caps
+    accordingly, but this might be delayed until calling
+    <code class="function">gst_base_parse_finish_frame()</code> with a non-queued frame.
+  </p></li>
+<li class="listitem"><p>
      At least at this point subclass needs to tell the GstBaseParse class
      how big data chunks it wants to receive (min_frame_size). It can do
      this with <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size" title="gst_base_parse_set_min_frame_size ()"><code class="function">gst_base_parse_set_min_frame_size()</code></a>.
@@ -153,37 +154,46 @@
       by pulling it from upstream or collecting buffers in an internal
       <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a>.
     </p></li>
-<li class="listitem"><p>
+<li class="listitem">
+<p>
       A buffer of (at least) min_frame_size bytes is passed to subclass with
-      <em class="parameter"><code>check_valid_frame</code></em>. Subclass checks the contents and returns TRUE
-      if the buffer contains a valid frame. It also needs to set the
-      <em class="parameter"><code>framesize</code></em> according to the detected frame size. If buffer didn't
-      contain a valid frame, this call must return FALSE and optionally
-      set the <em class="parameter"><code>skipsize</code></em> value to inform base class that how many bytes
-      it needs to skip in order to find a valid frame. <em class="parameter"><code>framesize</code></em> can always
-      indicate a new minimum for current frame parsing.  Indicating G_MAXUINT
-      for requested amount means subclass simply needs best available
-      subsequent data.  In push mode this amounts to an additional input buffer
-      (thus minimal additional latency), in pull mode this amounts to some
-      arbitrary reasonable buffer size increase.  The passed buffer
-      is read-only.  Note that <em class="parameter"><code>check_valid_frame</code></em> might receive any small
-      amount of input data when leftover data is being drained (e.g. at EOS).
-    </p></li>
-<li class="listitem"><p>
-      After valid frame is found, it will be passed again to subclass with
-      <em class="parameter"><code>parse_frame</code></em> call. Now subclass is responsible for parsing the
-      frame contents and setting the caps, and buffer metadata (e.g.
-      buffer timestamp and duration, or keyframe if applicable).
+      <em class="parameter"><code>handle_frame</code></em>. Subclass checks the contents and can optionally
+      return GST_FLOW_OK along with an amount of data to be skipped to find
+      a valid frame (which will result in a subsequent DISCONT).
+      If, otherwise, the buffer does not hold a complete frame,
+      <em class="parameter"><code>handle_frame</code></em> can merely return and will be called again when additional
+      data is available.  In push mode this amounts to an
+      additional input buffer (thus minimal additional latency), in pull mode
+      this amounts to some arbitrary reasonable buffer size increase.
+      Of course, <code class="function">gst_base_parse_set_min_size()</code> could also be used if a very
+      specific known amount of additional data is required.
+      If, however, the buffer holds a complete valid frame, it can pass
+      the size of this frame to <code class="function">gst_base_parse_finish_frame()</code>.
+      If acting as a converter, it can also merely indicate consumed input data
+      while simultaneously providing custom output data.
+      Note that baseclass performs some processing (such as tracking
+      overall consumed data rate versus duration) for each finished frame,
+      but other state is only updated upon each call to <em class="parameter"><code>handle_frame</code></em>
+      (such as tracking upstream input timestamp).
+      </p>
+<p>
+      Subclass is also responsible for setting the buffer metadata
+      (e.g. buffer timestamp and duration, or keyframe if applicable).
       (although the latter can also be done by GstBaseParse if it is
       appropriately configured, see below).  Frame is provided with
       timestamp derived from upstream (as much as generally possible),
       duration obtained from configuration (see below), and offset
       if meaningful (in pull mode).
-    </p></li>
+      </p>
+<p>
+      Note that <em class="parameter"><code>check_valid_frame</code></em> might receive any small
+      amount of input data when leftover data is being drained (e.g. at EOS).
+    </p>
+</li>
 <li class="listitem"><p>
-      Finally the buffer can be pushed downstream and the parsing loop starts
-      over again.  Just prior to actually pushing the buffer in question,
-      it is passed to <em class="parameter"><code>pre_push_buffer</code></em> which gives subclass yet one
+      As part of finish frame processing,
+      just prior to actually pushing the buffer in question,
+      it is passed to <em class="parameter"><code>pre_push_frame</code></em> which gives subclass yet one
       last chance to examine buffer metadata, or to send some custom (tag)
       events, or to perform custom (segment) filtering.
     </p></li>
@@ -211,9 +221,9 @@
 when base class calls subclass' <em class="parameter"><code>set_sink_caps</code></em> function).
 </p>
 <p>
-This base class uses <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
+This base class uses <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
 subclass conversion routine needs to know that conversion from
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
 frame number that can be found from the given byte position.
 </p>
 <p>
@@ -237,12 +247,9 @@
      done with <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size" title="gst_base_parse_set_min_frame_size ()"><code class="function">gst_base_parse_set_min_frame_size()</code></a> function.
   </p></li>
 <li class="listitem"><p>
-     Examine data chunks passed to subclass with <em class="parameter"><code>check_valid_frame</code></em>
-     and tell if they contain a valid frame
-  </p></li>
-<li class="listitem"><p>
-     Set the caps and timestamp to frame that is passed to subclass with
-     <em class="parameter"><code>parse_frame</code></em> function.
+     Examine data chunks passed to subclass with <em class="parameter"><code>handle_frame</code></em> and pass
+     proper frame(s) to <code class="function">gst_base_parse_finish_frame()</code>, and setting src pad
+     caps and timestamps on frame.
   </p></li>
 <li class="listitem"><p>Provide conversion functions</p></li>
 <li class="listitem"><p>
@@ -285,7 +292,7 @@
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
 <td>the parent element.</td>
 </tr></tbody>
 </table></div>
@@ -305,14 +312,10 @@
   gboolean      (*set_sink_caps)      (GstBaseParse * parse,
                                        GstCaps      * caps);
 
-  gboolean      (*check_valid_frame)  (GstBaseParse      * parse,
+  GstFlowReturn (*handle_frame)       (GstBaseParse      * parse,
                                        GstBaseParseFrame * frame,
-                                       guint             * framesize,
                                        gint              * skipsize);
 
-  GstFlowReturn (*parse_frame)        (GstBaseParse      * parse,
-                                       GstBaseParseFrame * frame);
-
   GstFlowReturn (*pre_push_frame)     (GstBaseParse      * parse,
                                        GstBaseParseFrame * frame);
 
@@ -322,11 +325,17 @@
                                        GstFormat      dest_format,
                                        gint64       * dest_value);
 
-  gboolean      (*event)              (GstBaseParse * parse,
+  gboolean      (*sink_event)         (GstBaseParse * parse,
                                        GstEvent     * event);
 
   gboolean      (*src_event)          (GstBaseParse * parse,
                                        GstEvent     * event);
+
+  GstCaps *     (*get_sink_caps)      (GstBaseParse * parse,
+                                       GstCaps      * filter);
+
+  GstFlowReturn (*detect)             (GstBaseParse * parse,
+                                       GstBuffer    * buffer);
 };
 </pre>
 <p>
@@ -338,7 +347,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>the parent class</td>
 </tr>
 <tr>
@@ -358,16 +367,17 @@
 <td>allows the subclass to be notified of the actual caps set.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.check-valid-frame"></a>check_valid_frame</code></em> ()</span></p></td>
-<td>Check if the given piece of data contains a valid
-frame.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.parse-frame"></a>parse_frame</code></em> ()</span></p></td>
-<td>Parse the already checked frame. Subclass need to
-set the buffer timestamp, duration, caps and possibly
-other necessary metadata. This is called with srcpad's
-STREAM_LOCK held.</td>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Parses the input data into valid frames as defined by subclass
+which should be passed to <code class="function">gst_base_parse_finish_frame()</code>.
+The frame's input buffer is guaranteed writable,
+whereas the input frame ownership is held by caller
+(so subclass should make a copy if it needs to hang on).
+Input buffer (data) is provided by baseclass with as much
+metadata set as possible by baseclass according to upstream
+information and/or subclass settings,
+though subclass may still set buffer timestamp and duration
+if desired.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.pre-push-frame"></a>pre_push_frame</code></em> ()</span></p></td>
@@ -384,16 +394,28 @@
 Convert between formats.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.event"></a>event</code></em> ()</span></p></td>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.sink-event"></a>sink_event</code></em> ()</span></p></td>
 <td>Optional.
-Event handler on the sink pad. This function should return
-TRUE if the event was handled and can be dropped.</td>
+Event handler on the sink pad. This function should chain
+up to the parent implementation to let the default handler
+run.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.src-event"></a>src_event</code></em> ()</span></p></td>
 <td>Optional.
-Event handler on the source pad. Should return TRUE
-if the event was handled and can be dropped.</td>
+Event handler on the source pad. Should chain up to the
+parent to let the default handler run.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.get-sink-caps"></a>get_sink_caps</code></em> ()</span></p></td>
+<td>allows the subclass to do its own sink get caps if needed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseParseClass.detect"></a>detect</code></em> ()</span></p></td>
+<td>Optional.
+Called until it doesn't return GST_FLOW_OK anymore for
+the first buffers. Can be used by the subclass to detect
+the stream format. Since: 0.10.36</td>
 </tr>
 </tbody>
 </table></div>
@@ -402,8 +424,8 @@
 <div class="refsect2">
 <a name="gst-base-parse-set-duration"></a><h3>gst_base_parse_set_duration ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_parse_set_duration         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> duration</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);</pre>
 <p>
 Sets the duration of the currently playing media. Subclass can use this
@@ -423,7 +445,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fmt</code></em> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
@@ -504,9 +526,9 @@
 parsing, and the parser should operate in passthrough mode (which only
 applies when operating in push mode). That is, incoming buffers are
 pushed through unmodified, i.e. no <em class="parameter"><code>check_valid_frame</code></em> or <em class="parameter"><code>parse_frame</code></em>
-callbacks will be invoked, but <em class="parameter"><code>pre_push_buffer</code></em> will still be invoked,
+callbacks will be invoked, but <em class="parameter"><code>pre_push_frame</code></em> will still be invoked,
 so subclass can perform as much or as little is appropriate for
-passthrough semantics in <em class="parameter"><code>pre_push_buffer</code></em>.
+passthrough semantics in <em class="parameter"><code>pre_push_frame</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -623,8 +645,8 @@
 <div class="refsect2">
 <a name="gst-base-parse-set-latency"></a><h3>gst_base_parse_set_latency ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_parse_set_latency          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
 <p>
 Sets the minimum and maximum (which may likely be equal) latency introduced
 by the parsing process.  If there is such a latency, which depends on the
@@ -648,16 +670,16 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.34</p>
+<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-convert-default"></a><h3>gst_base_parse_convert_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_parse_convert_default      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
 <p>
 Default implementation of "convert" vmethod in <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> class.
 </p>
@@ -672,7 +694,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_format</code></em> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_value</code></em> :</span></p></td>
@@ -681,7 +703,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest_format</code></em> :</span></p></td>
 <td>
-<a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest_value</code></em> :</span></p></td>
@@ -699,8 +721,8 @@
 <div class="refsect2">
 <a name="gst-base-parse-add-index-entry"></a><h3>gst_base_parse_add_index_entry ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_parse_add_index_entry      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);</pre>
 <p>
@@ -747,7 +769,9 @@
 <a name="GstBaseParseFrame"></a><h3>GstBaseParseFrame</h3>
 <pre class="programlisting">typedef struct {
   GstBuffer * buffer;
+  GstBuffer * out_buffer;
   guint       flags;
+  guint64     offset;
   gint        overhead;
 } GstBaseParseFrame;
 </pre>
@@ -764,9 +788,12 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
-<td>data to check for valid frame or parsed frame.
-Subclass is allowed to replace this buffer.</td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
+<td>input data to be parsed for frames.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.out-buffer"></a>out_buffer</code></em>;</span></p></td>
+<td>(optional) (replacement) output data.</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstBaseParseFrame.flags"></a>flags</code></em>;</span></p></td>
@@ -775,6 +802,11 @@
 subsequent <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> actions.</td>
 </tr>
 <tr>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstBaseParseFrame.offset"></a>offset</code></em>;</span></p></td>
+<td>media specific offset of input frame
+Note that a converter may have a different one on the frame's buffer.</td>
+</tr>
+<tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstBaseParseFrame.overhead"></a>overhead</code></em>;</span></p></td>
 <td>subclass can set this to indicates the metadata overhead
 for the given frame, which is then used to enable more accurate bitrate
@@ -790,8 +822,11 @@
 <a name="GstBaseParseFrameFlags"></a><h3>enum GstBaseParseFrameFlags</h3>
 <pre class="programlisting">typedef enum {
   GST_BASE_PARSE_FRAME_FLAG_NONE         = 0,
-  GST_BASE_PARSE_FRAME_FLAG_NO_FRAME     = (1 &lt;&lt; 0),
-  GST_BASE_PARSE_FRAME_FLAG_CLIP         = (1 &lt;&lt; 1)
+  GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME    = (1 &lt;&lt; 0),
+  GST_BASE_PARSE_FRAME_FLAG_NO_FRAME     = (1 &lt;&lt; 1),
+  GST_BASE_PARSE_FRAME_FLAG_CLIP         = (1 &lt;&lt; 2),
+  GST_BASE_PARSE_FRAME_FLAG_DROP         = (1 &lt;&lt; 3),
+  GST_BASE_PARSE_FRAME_FLAG_QUEUE        = (1 &lt;&lt; 4)
 } GstBaseParseFrameFlags;
 </pre>
 <p>
@@ -806,6 +841,13 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME</code></span></p></td>
+<td>set by baseclass if current frame
+  is passed for processing to the subclass for the first time
+  (and not set on subsequent calls with same data).
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_NO_FRAME</code></span></p></td>
 <td>set to indicate this buffer should not be
   counted as frame, e.g. if this frame is dependent on a previous one.
@@ -816,11 +858,24 @@
 <tr>
 <td><p><a name="GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_CLIP</code></span></p></td>
 <td>
-<em class="parameter"><code>pre_push_buffer</code></em> can set this to indicate
+<em class="parameter"><code>pre_push_frame</code></em> can set this to indicate
    that regular segment clipping can still be performed (as opposed to
    any custom one having been done).
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-DROP:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_DROP</code></span></p></td>
+<td>indicates to <em class="parameter"><code>finish_frame</code></em> that the
+   the frame should be dropped (and might be handled internall by subclass)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BASE-PARSE-FRAME-FLAG-QUEUE:CAPS"></a><span class="term"><code class="literal">GST_BASE_PARSE_FRAME_FLAG_QUEUE</code></span></p></td>
+<td>indicates to <em class="parameter"><code>finish_frame</code></em> that the
+   the frame should be queued for now and processed fully later
+   when the first non-queued frame is finished
+</td>
+</tr>
 </tbody>
 </table></div>
 <p class="since">Since 0.10.33</p>
@@ -828,7 +883,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-frame-new"></a><h3>gst_base_parse_frame_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new            (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new            (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);</pre>
 <p>
@@ -841,7 +896,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -857,8 +912,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a newly-allocated <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. Free with
-<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()"><code class="function">gst_base_parse_frame_free()</code></a> when no longer needed, unless you gave
-away ownership to <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()"><code class="function">gst_base_parse_push_frame()</code></a>.</td>
+<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()"><code class="function">gst_base_parse_frame_free()</code></a> when no longer needed.</td>
 </tr>
 </tbody>
 </table></div>
@@ -893,13 +947,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-push-frame"></a><h3>gst_base_parse_push_frame ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_parse_push_frame           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_parse_push_frame           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);</pre>
 <p>
-Pushes the frame downstream, sends any pending events and
-does some timestamp and segment handling. Takes ownership
-of <em class="parameter"><code>frame</code></em> and will clear it (if it was initialised with
-<a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" title="gst_base_parse_frame_init ()"><code class="function">gst_base_parse_frame_init()</code></a>) or free it.
+Pushes the frame's buffer downstream, sends any pending events and
+does some timestamp and segment handling. Takes ownership of
+frame's buffer, though caller retains ownership of <em class="parameter"><code>frame</code></em>.
 </p>
 <p>
 This must be called with sinkpad STREAM_LOCK held.
@@ -914,12 +967,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
 </tr>
 </tbody>
 </table></div>
@@ -961,25 +1014,14 @@
 <pre class="programlisting">#define GST_BASE_PARSE_FLOW_DROPPED     GST_FLOW_CUSTOM_SUCCESS
 </pre>
 <p>
-A <a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
-indicate that no output buffer was generated, or from pre_push_buffer to
+A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
+indicate that no output buffer was generated, or from pre_push_frame to
 to forego pushing buffer.
 </p>
 <p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-BASE-PARSE-FLOW-QUEUED:CAPS"></a><h3>GST_BASE_PARSE_FLOW_QUEUED</h3>
-<pre class="programlisting">#define GST_BASE_PARSE_FLOW_QUEUED      GST_FLOW_CUSTOM_SUCCESS_1
-</pre>
-<p>
-A <a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse frame to indicate that
-the buffer will be queued to be pushed when the next OK
-</p>
-<p class="since">Since 0.10.33</p>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-BASE-PARSE-LOST-SYNC:CAPS"></a><h3>GST_BASE_PARSE_LOST_SYNC()</h3>
 <pre class="programlisting">#define GST_BASE_PARSE_LOST_SYNC(parse) (!!(GST_BASE_PARSE_CAST(parse)-&gt;flags &amp; GST_BASE_PARSE_FLAG_LOST_SYNC))
 </pre>
@@ -1001,7 +1043,7 @@
 <pre class="programlisting">#define GST_BASE_PARSE_SINK_PAD(obj)    (GST_BASE_PARSE_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the sink <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the sink <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1018,7 +1060,7 @@
 <pre class="programlisting">#define GST_BASE_PARSE_SRC_PAD(obj)    (GST_BASE_PARSE_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the source <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/libs/html/gstreamer-libs-GstBitReader.html b/docs/libs/html/gstreamer-libs-GstBitReader.html
index 3e65bbf..2f82f7e 100644
--- a/docs/libs/html/gstreamer-libs-GstBitReader.html
+++ b/docs/libs/html/gstreamer-libs-GstBitReader.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBitReader</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="GstAdapter.html" title="GstAdapter">
 <link rel="next" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstAdapter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstByteReader.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -43,11 +43,11 @@
                     <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader">GstBitReader</a>;
 #define             <a class="link" href="gstreamer-libs-GstBitReader.html#GST-BIT-READER-INIT:CAPS" title="GST_BIT_READER_INIT()">GST_BIT_READER_INIT</a>                 (data,
                                                          size)
-<a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="returnvalue">GstBitReader</span></a> *      <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-new" title="gst_bit_reader_new ()">gst_bit_reader_new</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="returnvalue">GstBitReader</span></a> *      <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-new" title="gst_bit_reader_new ()">gst_bit_reader_new</a>                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-free" title="gst_bit_reader_free ()">gst_bit_reader_free</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-init" title="gst_bit_reader_init ()">gst_bit_reader_init</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-pos" title="gst_bit_reader_get_pos ()">gst_bit_reader_get_pos</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-remaining" title="gst_bit_reader_get_remaining ()">gst_bit_reader_get_remaining</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>);
@@ -58,55 +58,55 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte" title="gst_bit_reader_skip_to_byte ()">gst_bit_reader_skip_to_byte</a>         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16" title="gst_bit_reader_get_bits_uint16 ()">gst_bit_reader_get_bits_uint16</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32" title="gst_bit_reader_get_bits_uint32 ()">gst_bit_reader_get_bits_uint32</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64" title="gst_bit_reader_get_bits_uint64 ()">gst_bit_reader_get_bits_uint64</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8" title="gst_bit_reader_get_bits_uint8 ()">gst_bit_reader_get_bits_uint8</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16" title="gst_bit_reader_peek_bits_uint16 ()">gst_bit_reader_peek_bits_uint16</a>     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32" title="gst_bit_reader_peek_bits_uint32 ()">gst_bit_reader_peek_bits_uint32</a>     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64" title="gst_bit_reader_peek_bits_uint64 ()">gst_bit_reader_peek_bits_uint64</a>     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8" title="gst_bit_reader_peek_bits_uint8 ()">gst_bit_reader_peek_bits_uint8</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-unchecked" title="gst_bit_reader_skip_unchecked ()">gst_bit_reader_skip_unchecked</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte-unchecked" title="gst_bit_reader_skip_to_byte_unchecked ()">gst_bit_reader_skip_to_byte_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked" title="gst_bit_reader_get_bits_uint16_unchecked ()">gst_bit_reader_get_bits_uint16_unchecked</a>
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked" title="gst_bit_reader_get_bits_uint16_unchecked ()">gst_bit_reader_get_bits_uint16_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked" title="gst_bit_reader_get_bits_uint32_unchecked ()">gst_bit_reader_get_bits_uint32_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked" title="gst_bit_reader_get_bits_uint32_unchecked ()">gst_bit_reader_get_bits_uint32_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked" title="gst_bit_reader_get_bits_uint64_unchecked ()">gst_bit_reader_get_bits_uint64_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked" title="gst_bit_reader_get_bits_uint64_unchecked ()">gst_bit_reader_get_bits_uint64_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked" title="gst_bit_reader_get_bits_uint8_unchecked ()">gst_bit_reader_get_bits_uint8_unchecked</a>
+<span class="returnvalue">guint8</span>              <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked" title="gst_bit_reader_get_bits_uint8_unchecked ()">gst_bit_reader_get_bits_uint8_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked" title="gst_bit_reader_peek_bits_uint16_unchecked ()">gst_bit_reader_peek_bits_uint16_unchecked</a>
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked" title="gst_bit_reader_peek_bits_uint16_unchecked ()">gst_bit_reader_peek_bits_uint16_unchecked</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked" title="gst_bit_reader_peek_bits_uint32_unchecked ()">gst_bit_reader_peek_bits_uint32_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked" title="gst_bit_reader_peek_bits_uint32_unchecked ()">gst_bit_reader_peek_bits_uint32_unchecked</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64-unchecked" title="gst_bit_reader_peek_bits_uint64_unchecked ()">gst_bit_reader_peek_bits_uint64_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64-unchecked" title="gst_bit_reader_peek_bits_uint64_unchecked ()">gst_bit_reader_peek_bits_uint64_unchecked</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked" title="gst_bit_reader_peek_bits_uint8_unchecked ()">gst_bit_reader_peek_bits_uint8_unchecked</a>
+<span class="returnvalue">guint8</span>              <a class="link" href="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked" title="gst_bit_reader_peek_bits_uint8_unchecked ()">gst_bit_reader_peek_bits_uint8_unchecked</a>
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);
 </pre>
@@ -138,7 +138,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstBitReader.data"></a>data</code></em>;</span></p></td>
+<td><p><span class="term">const <span class="type">guint8</span> *<em class="structfield"><code><a name="GstBitReader.data"></a>data</code></em>;</span></p></td>
 <td>Data from which the bit reader will read</td>
 </tr>
 <tr>
@@ -185,7 +185,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-new"></a><h3>gst_bit_reader_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="returnvalue">GstBitReader</span></a> *      gst_bit_reader_new                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="returnvalue">GstBitReader</span></a> *      gst_bit_reader_new                  (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Create a new <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance, which will read from <em class="parameter"><code>data</code></em>.
@@ -235,7 +235,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-init"></a><h3>gst_bit_reader_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_bit_reader_init                 (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Initializes a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance to read from <em class="parameter"><code>data</code></em>. This function
@@ -411,7 +411,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint16"></a><h3>gst_bit_reader_get_bits_uint16 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_get_bits_uint16      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
@@ -425,7 +425,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -445,7 +445,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint32"></a><h3>gst_bit_reader_get_bits_uint32 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_get_bits_uint32      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
@@ -459,7 +459,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -479,7 +479,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint64"></a><h3>gst_bit_reader_get_bits_uint64 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_get_bits_uint64      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
@@ -493,7 +493,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -513,7 +513,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint8"></a><h3>gst_bit_reader_get_bits_uint8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_get_bits_uint8       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> and update the current position.
@@ -527,7 +527,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -547,7 +547,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint16"></a><h3>gst_bit_reader_peek_bits_uint16 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_peek_bits_uint16     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
@@ -561,7 +561,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -581,7 +581,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint32"></a><h3>gst_bit_reader_peek_bits_uint32 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_peek_bits_uint32     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
@@ -595,7 +595,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -615,7 +615,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint64"></a><h3>gst_bit_reader_peek_bits_uint64 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_peek_bits_uint64     (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
@@ -629,7 +629,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -649,7 +649,7 @@
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint8"></a><h3>gst_bit_reader_peek_bits_uint8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bit_reader_peek_bits_uint8      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
 Read <em class="parameter"><code>nbits</code></em> bits into <em class="parameter"><code>val</code></em> but keep the current position.
@@ -663,7 +663,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -724,7 +724,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint16-unchecked"></a><h3>gst_bit_reader_get_bits_uint16_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_bit_reader_get_bits_uint16_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_bit_reader_get_bits_uint16_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -753,7 +753,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint32-unchecked"></a><h3>gst_bit_reader_get_bits_uint32_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_bit_reader_get_bits_uint32_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_bit_reader_get_bits_uint32_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -782,7 +782,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint64-unchecked"></a><h3>gst_bit_reader_get_bits_uint64_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_bit_reader_get_bits_uint64_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_bit_reader_get_bits_uint64_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -811,7 +811,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-get-bits-uint8-unchecked"></a><h3>gst_bit_reader_get_bits_uint8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_bit_reader_get_bits_uint8_unchecked
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_bit_reader_get_bits_uint8_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -840,7 +840,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint16-unchecked"></a><h3>gst_bit_reader_peek_bits_uint16_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_bit_reader_peek_bits_uint16_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_bit_reader_peek_bits_uint16_unchecked
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -869,7 +869,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint32-unchecked"></a><h3>gst_bit_reader_peek_bits_uint32_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_bit_reader_peek_bits_uint32_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_bit_reader_peek_bits_uint32_unchecked
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
@@ -898,14 +898,14 @@
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint64-unchecked"></a><h3>gst_bit_reader_peek_bits_uint64_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_bit_reader_peek_bits_uint64_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_bit_reader_peek_bits_uint64_unchecked
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bit-reader-peek-bits-uint8-unchecked"></a><h3>gst_bit_reader_peek_bits_uint8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_bit_reader_peek_bits_uint8_unchecked
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_bit_reader_peek_bits_uint8_unchecked
                                                         (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbits</code></em>);</pre>
 <p>
diff --git a/docs/libs/html/gstreamer-libs-GstBufferStraw.html b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
index f855867..b1a2ff0 100644
--- a/docs/libs/html/gstreamer-libs-GstBufferStraw.html
+++ b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstBufferStraw</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-check.html" title="GStreamer Check Unit Testing">
 <link rel="prev" href="gstreamer-libs-GstCheck.html" title="GstCheck">
 <link rel="next" href="gstreamer-libs-GstStreamConsistency.html" title="GstStreamConsistency">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstCheck.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-check.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstStreamConsistency.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -40,12 +40,12 @@
 <pre class="synopsis">
 #include &lt;gst/check/gstbufferstraw.h&gt;
 
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()">gst_buffer_straw_start_pipeline</a>     (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()">gst_buffer_straw_get_buffer</a>         (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline" title="gst_buffer_straw_stop_pipeline ()">gst_buffer_straw_stop_pipeline</a>      (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()">gst_buffer_straw_start_pipeline</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()">gst_buffer_straw_get_buffer</a>         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline" title="gst_buffer_straw_stop_pipeline ()">gst_buffer_straw_stop_pipeline</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -59,8 +59,8 @@
 <a name="gstreamer-libs-GstBufferStraw.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="gst-buffer-straw-start-pipeline"></a><h3>gst_buffer_straw_start_pipeline ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_start_pipeline     (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_start_pipeline     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Sets up a pipeline for buffer sucking. This will allow you to call
 <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()"><code class="function">gst_buffer_straw_get_buffer()</code></a> to access buffers as they pass over <em class="parameter"><code>pad</code></em>.
@@ -68,7 +68,7 @@
 <p>
 This function is normally used in unit tests that want to verify that a
 particular element is outputting correct buffers. For example, you would make
-a pipeline via <a href="../gstreamer-0.11/gstreamer-GstParse.html#gst-parse-launch"><code class="function">gst_parse_launch()</code></a>, pull out the pad you want to monitor, then
+a pipeline via <a href="../gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launch"><code class="function">gst_parse_launch()</code></a>, pull out the pad you want to monitor, then
 call <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()"><code class="function">gst_buffer_straw_get_buffer()</code></a> to get the buffers that pass through <em class="parameter"><code>pad</code></em>.
 The pipeline will block until you have sucked off the buffers.
 </p>
@@ -99,8 +99,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-straw-get-buffer"></a><h3>gst_buffer_straw_get_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_straw_get_buffer         (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_straw_get_buffer         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Get one buffer from <em class="parameter"><code>pad</code></em>. Implemented via buffer probes. This function will
 block until the pipeline passes a buffer over <em class="parameter"><code>pad</code></em>, so for robust behavior
@@ -126,7 +126,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the captured <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+<td>the captured <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -134,10 +134,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-straw-stop-pipeline"></a><h3>gst_buffer_straw_stop_pipeline ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_stop_pipeline      (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_stop_pipeline      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
-Set <em class="parameter"><code>bin</code></em> to <a href="../gstreamer-0.11/GstElement.html#GST-STATE-NULL:CAPS"><span class="type">GST_STATE_NULL</span></a> and release resource allocated in
+Set <em class="parameter"><code>bin</code></em> to <a href="../gstreamer-1.0/GstElement.html#GST-STATE-NULL:CAPS"><span class="type">GST_STATE_NULL</span></a> and release resource allocated in
 <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()"><code class="function">gst_buffer_straw_start_pipeline()</code></a>.
 </p>
 <p>
diff --git a/docs/libs/html/gstreamer-libs-GstByteReader.html b/docs/libs/html/gstreamer-libs-GstByteReader.html
index 372c195..45bc65d 100644
--- a/docs/libs/html/gstreamer-libs-GstByteReader.html
+++ b/docs/libs/html/gstreamer-libs-GstByteReader.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstByteReader</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="gstreamer-libs-GstBitReader.html" title="GstBitReader">
 <link rel="next" href="gstreamer-libs-GstByteWriter.html" title="GstByteWriter">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstBitReader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstByteWriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -44,11 +44,11 @@
                     <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader">GstByteReader</a>;
 #define             <a class="link" href="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" title="GST_BYTE_READER_INIT()">GST_BYTE_READER_INIT</a>                (data,
                                                          size)
-<a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="returnvalue">GstByteReader</span></a> *     <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-new" title="gst_byte_reader_new ()">gst_byte_reader_new</a>                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="returnvalue">GstByteReader</span></a> *     <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-new" title="gst_byte_reader_new ()">gst_byte_reader_new</a>                 (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-free" title="gst_byte_reader_free ()">gst_byte_reader_free</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" title="gst_byte_reader_init ()">gst_byte_reader_init</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-pos" title="gst_byte_reader_get_pos ()">gst_byte_reader_get_pos</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-remaining" title="gst_byte_reader_get_remaining ()">gst_byte_reader_get_remaining</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
@@ -58,77 +58,77 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip" title="gst_byte_reader_skip ()">gst_byte_reader_skip</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbytes</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8" title="gst_byte_reader_get_int8 ()">gst_byte_reader_get_int8</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint8</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be" title="gst_byte_reader_get_int16_be ()">gst_byte_reader_get_int16_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le" title="gst_byte_reader_get_int16_le ()">gst_byte_reader_get_int16_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be" title="gst_byte_reader_get_int24_be ()">gst_byte_reader_get_int24_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le" title="gst_byte_reader_get_int24_le ()">gst_byte_reader_get_int24_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be" title="gst_byte_reader_get_int32_be ()">gst_byte_reader_get_int32_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le" title="gst_byte_reader_get_int32_le ()">gst_byte_reader_get_int32_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be" title="gst_byte_reader_get_int64_be ()">gst_byte_reader_get_int64_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le" title="gst_byte_reader_get_int64_le ()">gst_byte_reader_get_int64_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8" title="gst_byte_reader_get_uint8 ()">gst_byte_reader_get_uint8</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be" title="gst_byte_reader_get_uint16_be ()">gst_byte_reader_get_uint16_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le" title="gst_byte_reader_get_uint16_le ()">gst_byte_reader_get_uint16_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be" title="gst_byte_reader_get_uint24_be ()">gst_byte_reader_get_uint24_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le" title="gst_byte_reader_get_uint24_le ()">gst_byte_reader_get_uint24_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be" title="gst_byte_reader_get_uint32_be ()">gst_byte_reader_get_uint32_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le" title="gst_byte_reader_get_uint32_le ()">gst_byte_reader_get_uint32_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be" title="gst_byte_reader_get_uint64_be ()">gst_byte_reader_get_uint64_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le" title="gst_byte_reader_get_uint64_le ()">gst_byte_reader_get_uint64_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8" title="gst_byte_reader_peek_int8 ()">gst_byte_reader_peek_int8</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint8</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be" title="gst_byte_reader_peek_int16_be ()">gst_byte_reader_peek_int16_be</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le" title="gst_byte_reader_peek_int16_le ()">gst_byte_reader_peek_int16_le</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be" title="gst_byte_reader_peek_int24_be ()">gst_byte_reader_peek_int24_be</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le" title="gst_byte_reader_peek_int24_le ()">gst_byte_reader_peek_int24_le</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be" title="gst_byte_reader_peek_int32_be ()">gst_byte_reader_peek_int32_be</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le" title="gst_byte_reader_peek_int32_le ()">gst_byte_reader_peek_int32_le</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be" title="gst_byte_reader_peek_int64_be ()">gst_byte_reader_peek_int64_be</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le" title="gst_byte_reader_peek_int64_le ()">gst_byte_reader_peek_int64_le</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8" title="gst_byte_reader_peek_uint8 ()">gst_byte_reader_peek_uint8</a>          (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be" title="gst_byte_reader_peek_uint16_be ()">gst_byte_reader_peek_uint16_be</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le" title="gst_byte_reader_peek_uint16_le ()">gst_byte_reader_peek_uint16_le</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be" title="gst_byte_reader_peek_uint24_be ()">gst_byte_reader_peek_uint24_be</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le" title="gst_byte_reader_peek_uint24_le ()">gst_byte_reader_peek_uint24_le</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be" title="gst_byte_reader_peek_uint32_be ()">gst_byte_reader_peek_uint32_be</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le" title="gst_byte_reader_peek_uint32_le ()">gst_byte_reader_peek_uint32_le</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be" title="gst_byte_reader_peek_uint64_be ()">gst_byte_reader_peek_uint64_be</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le" title="gst_byte_reader_peek_uint64_le ()">gst_byte_reader_peek_uint64_le</a>      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le" title="gst_byte_reader_get_float32_le ()">gst_byte_reader_get_float32_le</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be" title="gst_byte_reader_get_float32_be ()">gst_byte_reader_get_float32_be</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
@@ -147,16 +147,16 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data" title="gst_byte_reader_get_data ()">gst_byte_reader_get_data</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> **val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data" title="gst_byte_reader_dup_data ()">gst_byte_reader_dup_data</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> **val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data" title="gst_byte_reader_peek_data ()">gst_byte_reader_peek_data</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> **val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-masked-scan-uint32" title="gst_byte_reader_masked_scan_uint32 ()">gst_byte_reader_masked_scan_uint32</a>  (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 #define             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string" title="gst_byte_reader_get_string()">gst_byte_reader_get_string</a>          (reader,
@@ -172,83 +172,83 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf8" title="gst_byte_reader_dup_string_utf8 ()">gst_byte_reader_dup_string_utf8</a>     (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **str</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf16" title="gst_byte_reader_dup_string_utf16 ()">gst_byte_reader_dup_string_utf16</a>    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> **str</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> **str</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf32" title="gst_byte_reader_dup_string_utf32 ()">gst_byte_reader_dup_string_utf32</a>    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> **str</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> **str</code></em>);
 #define             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string" title="gst_byte_reader_skip_string()">gst_byte_reader_skip_string</a>         (reader)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf8" title="gst_byte_reader_skip_string_utf8 ()">gst_byte_reader_skip_string_utf8</a>    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf16" title="gst_byte_reader_skip_string_utf16 ()">gst_byte_reader_skip_string_utf16</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf32" title="gst_byte_reader_skip_string_utf32 ()">gst_byte_reader_skip_string_utf32</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-unchecked" title="gst_byte_reader_skip_unchecked ()">gst_byte_reader_skip_unchecked</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nbytes</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="returnvalue">gint8</span></a>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked" title="gst_byte_reader_get_int8_unchecked ()">gst_byte_reader_get_int8_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked" title="gst_byte_reader_get_int16_be_unchecked ()">gst_byte_reader_get_int16_be_unchecked</a>
+<span class="returnvalue">gint8</span>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked" title="gst_byte_reader_get_int8_unchecked ()">gst_byte_reader_get_int8_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
+<span class="returnvalue">gint16</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked" title="gst_byte_reader_get_int16_be_unchecked ()">gst_byte_reader_get_int16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked" title="gst_byte_reader_get_int16_le_unchecked ()">gst_byte_reader_get_int16_le_unchecked</a>
+<span class="returnvalue">gint16</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked" title="gst_byte_reader_get_int16_le_unchecked ()">gst_byte_reader_get_int16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked" title="gst_byte_reader_get_int24_be_unchecked ()">gst_byte_reader_get_int24_be_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked" title="gst_byte_reader_get_int24_be_unchecked ()">gst_byte_reader_get_int24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked" title="gst_byte_reader_get_int24_le_unchecked ()">gst_byte_reader_get_int24_le_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked" title="gst_byte_reader_get_int24_le_unchecked ()">gst_byte_reader_get_int24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked" title="gst_byte_reader_get_int32_be_unchecked ()">gst_byte_reader_get_int32_be_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked" title="gst_byte_reader_get_int32_be_unchecked ()">gst_byte_reader_get_int32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked" title="gst_byte_reader_get_int32_le_unchecked ()">gst_byte_reader_get_int32_le_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked" title="gst_byte_reader_get_int32_le_unchecked ()">gst_byte_reader_get_int32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked" title="gst_byte_reader_get_int64_be_unchecked ()">gst_byte_reader_get_int64_be_unchecked</a>
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked" title="gst_byte_reader_get_int64_be_unchecked ()">gst_byte_reader_get_int64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked" title="gst_byte_reader_get_int64_le_unchecked ()">gst_byte_reader_get_int64_le_unchecked</a>
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked" title="gst_byte_reader_get_int64_le_unchecked ()">gst_byte_reader_get_int64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked" title="gst_byte_reader_get_uint8_unchecked ()">gst_byte_reader_get_uint8_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked" title="gst_byte_reader_get_uint16_be_unchecked ()">gst_byte_reader_get_uint16_be_unchecked</a>
+<span class="returnvalue">guint8</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked" title="gst_byte_reader_get_uint8_unchecked ()">gst_byte_reader_get_uint8_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked" title="gst_byte_reader_get_uint16_be_unchecked ()">gst_byte_reader_get_uint16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked" title="gst_byte_reader_get_uint16_le_unchecked ()">gst_byte_reader_get_uint16_le_unchecked</a>
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked" title="gst_byte_reader_get_uint16_le_unchecked ()">gst_byte_reader_get_uint16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked" title="gst_byte_reader_get_uint24_be_unchecked ()">gst_byte_reader_get_uint24_be_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked" title="gst_byte_reader_get_uint24_be_unchecked ()">gst_byte_reader_get_uint24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked" title="gst_byte_reader_get_uint24_le_unchecked ()">gst_byte_reader_get_uint24_le_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked" title="gst_byte_reader_get_uint24_le_unchecked ()">gst_byte_reader_get_uint24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked" title="gst_byte_reader_get_uint32_be_unchecked ()">gst_byte_reader_get_uint32_be_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked" title="gst_byte_reader_get_uint32_be_unchecked ()">gst_byte_reader_get_uint32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked" title="gst_byte_reader_get_uint32_le_unchecked ()">gst_byte_reader_get_uint32_le_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked" title="gst_byte_reader_get_uint32_le_unchecked ()">gst_byte_reader_get_uint32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked" title="gst_byte_reader_get_uint64_be_unchecked ()">gst_byte_reader_get_uint64_be_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked" title="gst_byte_reader_get_uint64_be_unchecked ()">gst_byte_reader_get_uint64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked" title="gst_byte_reader_get_uint64_le_unchecked ()">gst_byte_reader_get_uint64_le_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked" title="gst_byte_reader_get_uint64_le_unchecked ()">gst_byte_reader_get_uint64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="returnvalue">gint8</span></a>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked" title="gst_byte_reader_peek_int8_unchecked ()">gst_byte_reader_peek_int8_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked" title="gst_byte_reader_peek_int16_be_unchecked ()">gst_byte_reader_peek_int16_be_unchecked</a>
+<span class="returnvalue">gint8</span>               <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked" title="gst_byte_reader_peek_int8_unchecked ()">gst_byte_reader_peek_int8_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
+<span class="returnvalue">gint16</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked" title="gst_byte_reader_peek_int16_be_unchecked ()">gst_byte_reader_peek_int16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked" title="gst_byte_reader_peek_int16_le_unchecked ()">gst_byte_reader_peek_int16_le_unchecked</a>
+<span class="returnvalue">gint16</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked" title="gst_byte_reader_peek_int16_le_unchecked ()">gst_byte_reader_peek_int16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked" title="gst_byte_reader_peek_int24_be_unchecked ()">gst_byte_reader_peek_int24_be_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked" title="gst_byte_reader_peek_int24_be_unchecked ()">gst_byte_reader_peek_int24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked" title="gst_byte_reader_peek_int24_le_unchecked ()">gst_byte_reader_peek_int24_le_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked" title="gst_byte_reader_peek_int24_le_unchecked ()">gst_byte_reader_peek_int24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked" title="gst_byte_reader_peek_int32_be_unchecked ()">gst_byte_reader_peek_int32_be_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked" title="gst_byte_reader_peek_int32_be_unchecked ()">gst_byte_reader_peek_int32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked" title="gst_byte_reader_peek_int32_le_unchecked ()">gst_byte_reader_peek_int32_le_unchecked</a>
+<span class="returnvalue">gint32</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked" title="gst_byte_reader_peek_int32_le_unchecked ()">gst_byte_reader_peek_int32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked" title="gst_byte_reader_peek_int64_be_unchecked ()">gst_byte_reader_peek_int64_be_unchecked</a>
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked" title="gst_byte_reader_peek_int64_be_unchecked ()">gst_byte_reader_peek_int64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked" title="gst_byte_reader_peek_int64_le_unchecked ()">gst_byte_reader_peek_int64_le_unchecked</a>
+<span class="returnvalue">gint64</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked" title="gst_byte_reader_peek_int64_le_unchecked ()">gst_byte_reader_peek_int64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked" title="gst_byte_reader_peek_uint8_unchecked ()">gst_byte_reader_peek_uint8_unchecked</a>
+<span class="returnvalue">guint8</span>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked" title="gst_byte_reader_peek_uint8_unchecked ()">gst_byte_reader_peek_uint8_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked" title="gst_byte_reader_peek_uint16_be_unchecked ()">gst_byte_reader_peek_uint16_be_unchecked</a>
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked" title="gst_byte_reader_peek_uint16_be_unchecked ()">gst_byte_reader_peek_uint16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked" title="gst_byte_reader_peek_uint16_le_unchecked ()">gst_byte_reader_peek_uint16_le_unchecked</a>
+<span class="returnvalue">guint16</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked" title="gst_byte_reader_peek_uint16_le_unchecked ()">gst_byte_reader_peek_uint16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked" title="gst_byte_reader_peek_uint24_be_unchecked ()">gst_byte_reader_peek_uint24_be_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked" title="gst_byte_reader_peek_uint24_be_unchecked ()">gst_byte_reader_peek_uint24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked" title="gst_byte_reader_peek_uint24_le_unchecked ()">gst_byte_reader_peek_uint24_le_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked" title="gst_byte_reader_peek_uint24_le_unchecked ()">gst_byte_reader_peek_uint24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked" title="gst_byte_reader_peek_uint32_be_unchecked ()">gst_byte_reader_peek_uint32_be_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked" title="gst_byte_reader_peek_uint32_be_unchecked ()">gst_byte_reader_peek_uint32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked" title="gst_byte_reader_peek_uint32_le_unchecked ()">gst_byte_reader_peek_uint32_le_unchecked</a>
+<span class="returnvalue">guint32</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked" title="gst_byte_reader_peek_uint32_le_unchecked ()">gst_byte_reader_peek_uint32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked" title="gst_byte_reader_peek_uint64_be_unchecked ()">gst_byte_reader_peek_uint64_be_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked" title="gst_byte_reader_peek_uint64_be_unchecked ()">gst_byte_reader_peek_uint64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked" title="gst_byte_reader_peek_uint64_le_unchecked ()">gst_byte_reader_peek_uint64_le_unchecked</a>
+<span class="returnvalue">guint64</span>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked" title="gst_byte_reader_peek_uint64_le_unchecked ()">gst_byte_reader_peek_uint64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>              <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le-unchecked" title="gst_byte_reader_get_float32_le_unchecked ()">gst_byte_reader_get_float32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
@@ -266,11 +266,11 @@
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be-unchecked" title="gst_byte_reader_peek_float64_be_unchecked ()">gst_byte_reader_peek_float64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked" title="gst_byte_reader_dup_data_unchecked ()">gst_byte_reader_dup_data_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
+<span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked" title="gst_byte_reader_dup_data_unchecked ()">gst_byte_reader_dup_data_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked" title="gst_byte_reader_get_data_unchecked ()">gst_byte_reader_get_data_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
+const <span class="returnvalue">guint8</span> *      <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked" title="gst_byte_reader_get_data_unchecked ()">gst_byte_reader_get_data_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked" title="gst_byte_reader_peek_data_unchecked ()">gst_byte_reader_peek_data_unchecked</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
+const <span class="returnvalue">guint8</span> *      <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked" title="gst_byte_reader_peek_data_unchecked ()">gst_byte_reader_peek_data_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -302,7 +302,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstByteReader.data"></a>data</code></em>;</span></p></td>
+<td><p><span class="term">const <span class="type">guint8</span> *<em class="structfield"><code><a name="GstByteReader.data"></a>data</code></em>;</span></p></td>
 <td>Data from which the bit reader will read</td>
 </tr>
 <tr>
@@ -345,7 +345,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-new"></a><h3>gst_byte_reader_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="returnvalue">GstByteReader</span></a> *     gst_byte_reader_new                 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="returnvalue">GstByteReader</span></a> *     gst_byte_reader_new                 (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Create a new <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance, which will read from <em class="parameter"><code>data</code></em>.
@@ -397,7 +397,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-init"></a><h3>gst_byte_reader_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_reader_init                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Initializes a <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> instance to read from <em class="parameter"><code>data</code></em>. This function
@@ -551,7 +551,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int8"></a><h3>gst_byte_reader_get_int8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int8            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint8</span> *val</code></em>);</pre>
 <p>
 Read a signed 8 bit integer into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
@@ -564,7 +564,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -580,7 +580,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int16-be"></a><h3>gst_byte_reader_get_int16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int16_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);</pre>
 <p>
 Read a signed 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -594,7 +594,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -610,7 +610,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int16-le"></a><h3>gst_byte_reader_get_int16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int16_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);</pre>
 <p>
 Read a signed 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -624,7 +624,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -640,7 +640,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int24-be"></a><h3>gst_byte_reader_get_int24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int24_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -654,7 +654,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -670,7 +670,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int24-le"></a><h3>gst_byte_reader_get_int24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int24_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -684,7 +684,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -700,7 +700,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int32-be"></a><h3>gst_byte_reader_get_int32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int32_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -714,7 +714,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -730,7 +730,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int32-le"></a><h3>gst_byte_reader_get_int32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int32_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -744,7 +744,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -760,7 +760,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int64-be"></a><h3>gst_byte_reader_get_int64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int64_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);</pre>
 <p>
 Read a signed 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -774,7 +774,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -790,7 +790,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-int64-le"></a><h3>gst_byte_reader_get_int64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_int64_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);</pre>
 <p>
 Read a signed 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -804,7 +804,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -820,7 +820,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint8"></a><h3>gst_byte_reader_get_uint8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint8           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 8 bit integer into <em class="parameter"><code>val</code></em> and update the current position.
 </p>
@@ -833,7 +833,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -849,7 +849,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint16-be"></a><h3>gst_byte_reader_get_uint16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint16_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -863,7 +863,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -879,7 +879,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint16-le"></a><h3>gst_byte_reader_get_uint16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint16_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -893,7 +893,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -909,7 +909,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint24-be"></a><h3>gst_byte_reader_get_uint24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint24_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -923,7 +923,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -939,7 +939,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint24-le"></a><h3>gst_byte_reader_get_uint24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint24_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -953,7 +953,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -969,7 +969,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint32-be"></a><h3>gst_byte_reader_get_uint32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint32_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -983,7 +983,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -999,7 +999,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint32-le"></a><h3>gst_byte_reader_get_uint32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint32_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -1013,7 +1013,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1029,7 +1029,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint64-be"></a><h3>gst_byte_reader_get_uint64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint64_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -1043,7 +1043,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1059,7 +1059,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint64-le"></a><h3>gst_byte_reader_get_uint64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_uint64_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 and update the current position.
@@ -1073,7 +1073,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1089,7 +1089,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int8"></a><h3>gst_byte_reader_peek_int8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int8           (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint8</span> *val</code></em>);</pre>
 <p>
 Read a signed 8 bit integer into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
@@ -1102,7 +1102,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1118,7 +1118,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int16-be"></a><h3>gst_byte_reader_peek_int16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int16_be       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);</pre>
 <p>
 Read a signed 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1132,7 +1132,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1148,7 +1148,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int16-le"></a><h3>gst_byte_reader_peek_int16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int16_le       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> *val</code></em>);</pre>
 <p>
 Read a signed 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1162,7 +1162,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1178,7 +1178,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int24-be"></a><h3>gst_byte_reader_peek_int24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int24_be       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1192,7 +1192,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1208,7 +1208,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int24-le"></a><h3>gst_byte_reader_peek_int24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int24_le       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1222,7 +1222,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1238,7 +1238,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int32-be"></a><h3>gst_byte_reader_peek_int32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int32_be       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1252,7 +1252,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1268,7 +1268,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int32-le"></a><h3>gst_byte_reader_peek_int32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int32_le       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> *val</code></em>);</pre>
 <p>
 Read a signed 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1282,7 +1282,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1298,7 +1298,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int64-be"></a><h3>gst_byte_reader_peek_int64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int64_be       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);</pre>
 <p>
 Read a signed 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1312,7 +1312,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1328,7 +1328,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int64-le"></a><h3>gst_byte_reader_peek_int64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_int64_le       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> *val</code></em>);</pre>
 <p>
 Read a signed 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1342,7 +1342,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">gint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1358,7 +1358,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint8"></a><h3>gst_byte_reader_peek_uint8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint8          (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 8 bit integer into <em class="parameter"><code>val</code></em> but keep the current position.
 </p>
@@ -1371,7 +1371,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint8</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1387,7 +1387,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint16-be"></a><h3>gst_byte_reader_peek_uint16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint16_be      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 16 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1401,7 +1401,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1417,7 +1417,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint16-le"></a><h3>gst_byte_reader_peek_uint16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint16_le      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 16 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1431,7 +1431,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint16</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1447,7 +1447,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint24-be"></a><h3>gst_byte_reader_peek_uint24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint24_be      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 24 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1461,7 +1461,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1477,7 +1477,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint24-le"></a><h3>gst_byte_reader_peek_uint24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint24_le      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 24 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1491,7 +1491,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1507,7 +1507,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint32-be"></a><h3>gst_byte_reader_peek_uint32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint32_be      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 32 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1521,7 +1521,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1537,7 +1537,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint32-le"></a><h3>gst_byte_reader_peek_uint32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint32_le      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 32 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1551,7 +1551,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint32</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1567,7 +1567,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint64-be"></a><h3>gst_byte_reader_peek_uint64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint64_be      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 64 bit big endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1581,7 +1581,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1597,7 +1597,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint64-le"></a><h3>gst_byte_reader_peek_uint64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_uint64_le      (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> *val</code></em>);</pre>
 <p>
 Read an unsigned 64 bit little endian integer into <em class="parameter"><code>val</code></em>
 but keep the current position.
@@ -1611,7 +1611,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>Pointer to a <span class="type">guint64</span> to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -1868,7 +1868,7 @@
 <a name="gst-byte-reader-get-data"></a><h3>gst_byte_reader_get_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_get_data            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> **val</code></em>);</pre>
 <p>
 Returns a constant pointer to the current data
 position if at least <em class="parameter"><code>size</code></em> bytes are left and
@@ -1888,7 +1888,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>address of a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+<span class="type">guint8</span> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
 </td>
 </tr>
 <tr>
@@ -1905,7 +1905,7 @@
 <a name="gst-byte-reader-dup-data"></a><h3>gst_byte_reader_dup_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_dup_data            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> **val</code></em>);</pre>
 <p>
 Free-function: g_free
 </p>
@@ -1928,7 +1928,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>address of a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+<span class="type">guint8</span> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
 </td>
 </tr>
 <tr>
@@ -1945,7 +1945,7 @@
 <a name="gst-byte-reader-peek-data"></a><h3>gst_byte_reader_peek_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_peek_data           (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **val</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> **val</code></em>);</pre>
 <p>
 Returns a constant pointer to the current data
 position if at least <em class="parameter"><code>size</code></em> bytes are left and
@@ -1965,7 +1965,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
 <td>address of a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+<span class="type">guint8</span> pointer variable in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
 </td>
 </tr>
 <tr>
@@ -1981,8 +1981,8 @@
 <div class="refsect2">
 <a name="gst-byte-reader-masked-scan-uint32"></a><h3>gst_byte_reader_masked_scan_uint32 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gst_byte_reader_masked_scan_uint32  (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mask</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pattern</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> pattern</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -2222,7 +2222,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-dup-string-utf16"></a><h3>gst_byte_reader_dup_string_utf16 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_dup_string_utf16    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> **str</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> **str</code></em>);</pre>
 <p>
 Free-function: g_free
 </p>
@@ -2253,7 +2253,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
 <td>address of a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> pointer varieble in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+<span class="type">guint16</span> pointer varieble in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
 </td>
 </tr>
 <tr>
@@ -2270,7 +2270,7 @@
 <div class="refsect2">
 <a name="gst-byte-reader-dup-string-utf32"></a><h3>gst_byte_reader_dup_string_utf32 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_reader_dup_string_utf32    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> **str</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> **str</code></em>);</pre>
 <p>
 Free-function: g_free
 </p>
@@ -2301,7 +2301,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
 <td>address of a
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> pointer varieble in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+<span class="type">guint32</span> pointer varieble in which to store the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
 </td>
 </tr>
 <tr>
@@ -2459,7 +2459,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int8-unchecked"></a><h3>gst_byte_reader_get_int8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="returnvalue">gint8</span></a>               gst_byte_reader_get_int8_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint8</span>               gst_byte_reader_get_int8_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an signed 8 bit integer without checking if there are enough bytes
 available in the byte reader and update the current position.
@@ -2482,7 +2482,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int16-be-unchecked"></a><h3>gst_byte_reader_get_int16_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              gst_byte_reader_get_int16_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint16</span>              gst_byte_reader_get_int16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 16 bit integer in big endian format without checking
@@ -2507,7 +2507,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int16-le-unchecked"></a><h3>gst_byte_reader_get_int16_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              gst_byte_reader_get_int16_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint16</span>              gst_byte_reader_get_int16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 16 bit integer in little endian format without checking
@@ -2532,7 +2532,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int24-be-unchecked"></a><h3>gst_byte_reader_get_int24_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_get_int24_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_get_int24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 24 bit integer in big endian format without checking
@@ -2557,7 +2557,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int24-le-unchecked"></a><h3>gst_byte_reader_get_int24_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_get_int24_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_get_int24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 24 bit integer in little endian format without checking
@@ -2582,7 +2582,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int32-be-unchecked"></a><h3>gst_byte_reader_get_int32_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_get_int32_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_get_int32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 32 bit integer in big endian format without checking
@@ -2607,7 +2607,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int32-le-unchecked"></a><h3>gst_byte_reader_get_int32_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_get_int32_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_get_int32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 32 bit integer in little endian format without checking
@@ -2632,7 +2632,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int64-be-unchecked"></a><h3>gst_byte_reader_get_int64_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_byte_reader_get_int64_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_byte_reader_get_int64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 64 bit integer in big endian format without checking
@@ -2657,7 +2657,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-int64-le-unchecked"></a><h3>gst_byte_reader_get_int64_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_byte_reader_get_int64_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_byte_reader_get_int64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 64 bit integer in little endian format without checking
@@ -2682,7 +2682,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint8-unchecked"></a><h3>gst_byte_reader_get_uint8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_byte_reader_get_uint8_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_byte_reader_get_uint8_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 8 bit integer without checking if there are enough bytes
 available in the byte reader and update the current position.
@@ -2705,7 +2705,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint16-be-unchecked"></a><h3>gst_byte_reader_get_uint16_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_byte_reader_get_uint16_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_byte_reader_get_uint16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 16 bit integer in big endian format without checking
@@ -2730,7 +2730,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint16-le-unchecked"></a><h3>gst_byte_reader_get_uint16_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_byte_reader_get_uint16_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_byte_reader_get_uint16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 16 bit integer in little endian format without checking
@@ -2755,7 +2755,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint24-be-unchecked"></a><h3>gst_byte_reader_get_uint24_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_get_uint24_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_get_uint24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 24 bit integer in big endian format without checking
@@ -2780,7 +2780,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint24-le-unchecked"></a><h3>gst_byte_reader_get_uint24_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_get_uint24_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_get_uint24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 24 bit integer in little endian format without checking
@@ -2805,7 +2805,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint32-be-unchecked"></a><h3>gst_byte_reader_get_uint32_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_get_uint32_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_get_uint32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 32 bit integer in big endian format without checking
@@ -2830,7 +2830,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint32-le-unchecked"></a><h3>gst_byte_reader_get_uint32_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_get_uint32_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_get_uint32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 32 bit integer in little endian format without checking
@@ -2855,7 +2855,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint64-be-unchecked"></a><h3>gst_byte_reader_get_uint64_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_byte_reader_get_uint64_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_byte_reader_get_uint64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 64 bit integer in big endian format without checking
@@ -2880,7 +2880,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-uint64-le-unchecked"></a><h3>gst_byte_reader_get_uint64_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_byte_reader_get_uint64_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_byte_reader_get_uint64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 64 bit integer in little endian format without checking
@@ -2905,7 +2905,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int8-unchecked"></a><h3>gst_byte_reader_peek_int8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="returnvalue">gint8</span></a>               gst_byte_reader_peek_int8_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint8</span>               gst_byte_reader_peek_int8_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an signed 8 bit integer without checking if there are enough bytes
 available in the byte reader, but do not advance the current read position.
@@ -2928,7 +2928,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int16-be-unchecked"></a><h3>gst_byte_reader_peek_int16_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              gst_byte_reader_peek_int16_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint16</span>              gst_byte_reader_peek_int16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 16 bit integer in big endian format without checking
@@ -2953,7 +2953,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int16-le-unchecked"></a><h3>gst_byte_reader_peek_int16_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="returnvalue">gint16</span></a>              gst_byte_reader_peek_int16_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint16</span>              gst_byte_reader_peek_int16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 16 bit integer in little endian format without checking
@@ -2978,7 +2978,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int24-be-unchecked"></a><h3>gst_byte_reader_peek_int24_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_peek_int24_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_peek_int24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 24 bit integer in big endian format without checking
@@ -3003,7 +3003,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int24-le-unchecked"></a><h3>gst_byte_reader_peek_int24_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_peek_int24_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_peek_int24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 24 bit integer in little endian format without checking
@@ -3028,7 +3028,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int32-be-unchecked"></a><h3>gst_byte_reader_peek_int32_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_peek_int32_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_peek_int32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 32 bit integer in big endian format without checking
@@ -3053,7 +3053,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int32-le-unchecked"></a><h3>gst_byte_reader_peek_int32_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>              gst_byte_reader_peek_int32_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint32</span>              gst_byte_reader_peek_int32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 32 bit integer in little endian format without checking
@@ -3078,7 +3078,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int64-be-unchecked"></a><h3>gst_byte_reader_peek_int64_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_byte_reader_peek_int64_be_unchecked
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_byte_reader_peek_int64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 64 bit integer in big endian format without checking
@@ -3103,7 +3103,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-int64-le-unchecked"></a><h3>gst_byte_reader_peek_int64_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              gst_byte_reader_peek_int64_le_unchecked
+<pre class="programlisting"><span class="returnvalue">gint64</span>              gst_byte_reader_peek_int64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read a signed 64 bit integer in little endian format without checking
@@ -3128,7 +3128,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint8-unchecked"></a><h3>gst_byte_reader_peek_uint8_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>              gst_byte_reader_peek_uint8_unchecked
+<pre class="programlisting"><span class="returnvalue">guint8</span>              gst_byte_reader_peek_uint8_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 8 bit integer without checking if there are enough bytes
@@ -3152,7 +3152,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint16-be-unchecked"></a><h3>gst_byte_reader_peek_uint16_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_byte_reader_peek_uint16_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_byte_reader_peek_uint16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 16 bit integer in big endian format without checking
@@ -3177,7 +3177,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint16-le-unchecked"></a><h3>gst_byte_reader_peek_uint16_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_byte_reader_peek_uint16_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint16</span>             gst_byte_reader_peek_uint16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 16 bit integer in little endian format without checking
@@ -3202,7 +3202,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint24-be-unchecked"></a><h3>gst_byte_reader_peek_uint24_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_peek_uint24_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_peek_uint24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 24 bit integer in big endian format without checking
@@ -3227,7 +3227,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint24-le-unchecked"></a><h3>gst_byte_reader_peek_uint24_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_peek_uint24_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_peek_uint24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 24 bit integer in little endian format without checking
@@ -3252,7 +3252,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint32-be-unchecked"></a><h3>gst_byte_reader_peek_uint32_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_peek_uint32_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_peek_uint32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 32 bit integer in big endian format without checking
@@ -3277,7 +3277,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint32-le-unchecked"></a><h3>gst_byte_reader_peek_uint32_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_byte_reader_peek_uint32_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint32</span>             gst_byte_reader_peek_uint32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 32 bit integer in little endian format without checking
@@ -3302,7 +3302,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint64-be-unchecked"></a><h3>gst_byte_reader_peek_uint64_be_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_byte_reader_peek_uint64_be_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_byte_reader_peek_uint64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 64 bit integer in big endian format without checking
@@ -3327,7 +3327,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-uint64-le-unchecked"></a><h3>gst_byte_reader_peek_uint64_le_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>             gst_byte_reader_peek_uint64_le_unchecked
+<pre class="programlisting"><span class="returnvalue">guint64</span>             gst_byte_reader_peek_uint64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <p>
 Read an unsigned 64 bit integer in little endian format without checking
@@ -3544,7 +3544,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-dup-data-unchecked"></a><h3>gst_byte_reader_dup_data_unchecked ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_byte_reader_dup_data_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint8</span> *            gst_byte_reader_dup_data_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Returns a newly-allocated copy of the data at the current data position
@@ -3578,7 +3578,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-get-data-unchecked"></a><h3>gst_byte_reader_get_data_unchecked ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      gst_byte_reader_get_data_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
+<pre class="programlisting">const <span class="returnvalue">guint8</span> *      gst_byte_reader_get_data_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Returns a constant pointer to the current data position without checking
@@ -3609,7 +3609,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-reader-peek-data-unchecked"></a><h3>gst_byte_reader_peek_data_unchecked ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *      gst_byte_reader_peek_data_unchecked (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">guint8</span> *      gst_byte_reader_peek_data_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteReader.html#GstByteReader" title="GstByteReader"><span class="type">GstByteReader</span></a> *reader</code></em>);</pre>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/libs/html/gstreamer-libs-GstByteWriter.html b/docs/libs/html/gstreamer-libs-GstByteWriter.html
index 10c659b..961e487 100644
--- a/docs/libs/html/gstreamer-libs-GstByteWriter.html
+++ b/docs/libs/html/gstreamer-libs-GstByteWriter.html
@@ -3,11 +3,11 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstByteWriter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <link rel="prev" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">
-<link rel="next" href="GstCollectPads.html" title="GstCollectPads">
+<link rel="next" href="GstCollectPads2.html" title="GstCollectPads2">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,8 +17,8 @@
 <td><a accesskey="p" href="gstreamer-libs-GstByteReader.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="GstCollectPads.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="GstCollectPads2.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-libs-GstByteWriter.synopsis" class="shortcut">Top</a>
@@ -43,25 +43,25 @@
 
                     <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter">GstByteWriter</a>;
 <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new" title="gst_byte_writer_new ()">gst_byte_writer_new</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data" title="gst_byte_writer_new_with_data ()">gst_byte_writer_new_with_data</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data" title="gst_byte_writer_new_with_data ()">gst_byte_writer_new_with_data</a>       (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> initialized</code></em>);
 <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-size" title="gst_byte_writer_new_with_size ()">gst_byte_writer_new_with_size</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fixed</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init" title="gst_byte_writer_init ()">gst_byte_writer_init</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-data" title="gst_byte_writer_init_with_data ()">gst_byte_writer_init_with_data</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> initialized</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-size" title="gst_byte_writer_init_with_size ()">gst_byte_writer_init_with_size</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fixed</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free" title="gst_byte_writer_free ()">gst_byte_writer_free</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer" title="gst_byte_writer_free_and_get_buffer ()">gst_byte_writer_free_and_get_buffer</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data" title="gst_byte_writer_free_and_get_data ()">gst_byte_writer_free_and_get_data</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer" title="gst_byte_writer_free_and_get_buffer ()">gst_byte_writer_free_and_get_buffer</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
+<span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data" title="gst_byte_writer_free_and_get_data ()">gst_byte_writer_free_and_get_data</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset" title="gst_byte_writer_reset ()">gst_byte_writer_reset</a>               (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data" title="gst_byte_writer_reset_and_get_data ()">gst_byte_writer_reset_and_get_data</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer" title="gst_byte_writer_reset_and_get_buffer ()">gst_byte_writer_reset_and_get_buffer</a>
+<span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data" title="gst_byte_writer_reset_and_get_data ()">gst_byte_writer_reset_and_get_data</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer" title="gst_byte_writer_reset_and_get_buffer ()">gst_byte_writer_reset_and_get_buffer</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos" title="gst_byte_writer_get_pos ()">gst_byte_writer_get_pos</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos" title="gst_byte_writer_set_pos ()">gst_byte_writer_set_pos</a>             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
@@ -71,41 +71,41 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-ensure-free-space" title="gst_byte_writer_ensure_free_space ()">gst_byte_writer_ensure_free_space</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8" title="gst_byte_writer_put_int8 ()">gst_byte_writer_put_int8</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint8</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be" title="gst_byte_writer_put_int16_be ()">gst_byte_writer_put_int16_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le" title="gst_byte_writer_put_int16_le ()">gst_byte_writer_put_int16_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be" title="gst_byte_writer_put_int24_be ()">gst_byte_writer_put_int24_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le" title="gst_byte_writer_put_int24_le ()">gst_byte_writer_put_int24_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be" title="gst_byte_writer_put_int32_be ()">gst_byte_writer_put_int32_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le" title="gst_byte_writer_put_int32_le ()">gst_byte_writer_put_int32_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be" title="gst_byte_writer_put_int64_be ()">gst_byte_writer_put_int64_be</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le" title="gst_byte_writer_put_int64_le ()">gst_byte_writer_put_int64_le</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8" title="gst_byte_writer_put_uint8 ()">gst_byte_writer_put_uint8</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be" title="gst_byte_writer_put_uint16_be ()">gst_byte_writer_put_uint16_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le" title="gst_byte_writer_put_uint16_le ()">gst_byte_writer_put_uint16_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be" title="gst_byte_writer_put_uint24_be ()">gst_byte_writer_put_uint24_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le" title="gst_byte_writer_put_uint24_le ()">gst_byte_writer_put_uint24_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be" title="gst_byte_writer_put_uint32_be ()">gst_byte_writer_put_uint32_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le" title="gst_byte_writer_put_uint32_le ()">gst_byte_writer_put_uint32_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be" title="gst_byte_writer_put_uint64_be ()">gst_byte_writer_put_uint64_be</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le" title="gst_byte_writer_put_uint64_le ()">gst_byte_writer_put_uint64_le</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be" title="gst_byte_writer_put_float32_be ()">gst_byte_writer_put_float32_be</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> val</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le" title="gst_byte_writer_put_float32_le ()">gst_byte_writer_put_float32_le</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
@@ -117,69 +117,69 @@
 #define             <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string" title="gst_byte_writer_put_string()">gst_byte_writer_put_string</a>          (writer,
                                                          data)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf16" title="gst_byte_writer_put_string_utf16 ()">gst_byte_writer_put_string_utf16</a>    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *data</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">guint16</span> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf32" title="gst_byte_writer_put_string_utf32 ()">gst_byte_writer_put_string_utf32</a>    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *data</code></em>);
+                                                         <em class="parameter"><code>const <span class="type">guint32</span> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf8" title="gst_byte_writer_put_string_utf8 ()">gst_byte_writer_put_string_utf8</a>     (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data" title="gst_byte_writer_put_data ()">gst_byte_writer_put_data</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill" title="gst_byte_writer_fill ()">gst_byte_writer_fill</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8-unchecked" title="gst_byte_writer_put_int8_unchecked ()">gst_byte_writer_put_int8_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint8</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be-unchecked" title="gst_byte_writer_put_int16_be_unchecked ()">gst_byte_writer_put_int16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le-unchecked" title="gst_byte_writer_put_int16_le_unchecked ()">gst_byte_writer_put_int16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be-unchecked" title="gst_byte_writer_put_int24_be_unchecked ()">gst_byte_writer_put_int24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le-unchecked" title="gst_byte_writer_put_int24_le_unchecked ()">gst_byte_writer_put_int24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be-unchecked" title="gst_byte_writer_put_int32_be_unchecked ()">gst_byte_writer_put_int32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le-unchecked" title="gst_byte_writer_put_int32_le_unchecked ()">gst_byte_writer_put_int32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be-unchecked" title="gst_byte_writer_put_int64_be_unchecked ()">gst_byte_writer_put_int64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le-unchecked" title="gst_byte_writer_put_int64_le_unchecked ()">gst_byte_writer_put_int64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8-unchecked" title="gst_byte_writer_put_uint8_unchecked ()">gst_byte_writer_put_uint8_unchecked</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be-unchecked" title="gst_byte_writer_put_uint16_be_unchecked ()">gst_byte_writer_put_uint16_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le-unchecked" title="gst_byte_writer_put_uint16_le_unchecked ()">gst_byte_writer_put_uint16_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be-unchecked" title="gst_byte_writer_put_uint24_be_unchecked ()">gst_byte_writer_put_uint24_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le-unchecked" title="gst_byte_writer_put_uint24_le_unchecked ()">gst_byte_writer_put_uint24_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be-unchecked" title="gst_byte_writer_put_uint32_be_unchecked ()">gst_byte_writer_put_uint32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le-unchecked" title="gst_byte_writer_put_uint32_le_unchecked ()">gst_byte_writer_put_uint32_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be-unchecked" title="gst_byte_writer_put_uint64_be_unchecked ()">gst_byte_writer_put_uint64_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le-unchecked" title="gst_byte_writer_put_uint64_le_unchecked ()">gst_byte_writer_put_uint64_le_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be-unchecked" title="gst_byte_writer_put_float32_be_unchecked ()">gst_byte_writer_put_float32_be_unchecked</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> val</code></em>);
@@ -193,10 +193,10 @@
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked" title="gst_byte_writer_put_data_unchecked ()">gst_byte_writer_put_data_unchecked</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked" title="gst_byte_writer_fill_unchecked ()">gst_byte_writer_fill_unchecked</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 </pre>
 </div>
@@ -273,7 +273,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-new-with-data"></a><h3>gst_byte_writer_new_with_data ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     gst_byte_writer_new_with_data       (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="returnvalue">GstByteWriter</span></a> *     gst_byte_writer_new_with_data       (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> initialized</code></em>);</pre>
 <p>
@@ -361,7 +361,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-init-with-data"></a><h3>gst_byte_writer_init_with_data ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_init_with_data      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> initialized</code></em>);</pre>
 <p>
@@ -445,10 +445,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-free-and-get-buffer"></a><h3>gst_byte_writer_free_and_get_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_free_and_get_buffer (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_free_and_get_buffer (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Frees <em class="parameter"><code>writer</code></em> and all memory allocated by it except
-the current data, which is returned as <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.
+the current data, which is returned as <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.
 </p>
 <p>
 Free-function: gst_buffer_unref
@@ -464,7 +464,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current data as buffer. <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
+<td>the current data as buffer. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
 after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -475,7 +475,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-free-and-get-data"></a><h3>gst_byte_writer_free_and_get_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_byte_writer_free_and_get_data   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> *            gst_byte_writer_free_and_get_data   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Frees <em class="parameter"><code>writer</code></em> and all memory allocated by it except
 the current data, which is returned.
@@ -522,7 +522,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-reset-and-get-data"></a><h3>gst_byte_writer_reset_and_get_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_byte_writer_reset_and_get_data  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> *            gst_byte_writer_reset_and_get_data  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Resets <em class="parameter"><code>writer</code></em> and returns the current data.
 </p>
@@ -549,7 +549,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-reset-and-get-buffer"></a><h3>gst_byte_writer_reset_and_get_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_reset_and_get_buffer
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_reset_and_get_buffer
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Resets <em class="parameter"><code>writer</code></em> and returns the current data as buffer.
@@ -567,7 +567,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current data as buffer. <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
+<td>the current data as buffer. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
 after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
@@ -703,7 +703,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int8"></a><h3>gst_byte_writer_put_int8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int8            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint8</span> val</code></em>);</pre>
 <p>
 Writes a signed 8 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -732,7 +732,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int16-be"></a><h3>gst_byte_writer_put_int16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int16_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -761,7 +761,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int16-le"></a><h3>gst_byte_writer_put_int16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int16_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -790,7 +790,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int24-be"></a><h3>gst_byte_writer_put_int24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int24_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -819,7 +819,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int24-le"></a><h3>gst_byte_writer_put_int24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int24_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -848,7 +848,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int32-be"></a><h3>gst_byte_writer_put_int32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int32_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -877,7 +877,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int32-le"></a><h3>gst_byte_writer_put_int32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int32_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -906,7 +906,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int64-be"></a><h3>gst_byte_writer_put_int64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int64_be        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -935,7 +935,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int64-le"></a><h3>gst_byte_writer_put_int64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_int64_le        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -964,7 +964,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint8"></a><h3>gst_byte_writer_put_uint8 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint8           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>);</pre>
 <p>
 Writes a unsigned 8 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -993,7 +993,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint16-be"></a><h3>gst_byte_writer_put_uint16_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint16_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1022,7 +1022,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint16-le"></a><h3>gst_byte_writer_put_uint16_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint16_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 16 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1051,7 +1051,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint24-be"></a><h3>gst_byte_writer_put_uint24_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint24_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1080,7 +1080,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint24-le"></a><h3>gst_byte_writer_put_uint24_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint24_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 24 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1109,7 +1109,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint32-be"></a><h3>gst_byte_writer_put_uint32_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint32_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1138,7 +1138,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint32-le"></a><h3>gst_byte_writer_put_uint32_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint32_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 32 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1167,7 +1167,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint64-be"></a><h3>gst_byte_writer_put_uint64_be ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint64_be       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1196,7 +1196,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint64-le"></a><h3>gst_byte_writer_put_uint64_le ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_uint64_le       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 64 bit integer to <em class="parameter"><code>writer</code></em>.
 </p>
@@ -1372,7 +1372,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-string-utf16"></a><h3>gst_byte_writer_put_string_utf16 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_string_utf16    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *data</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">guint16</span> *data</code></em>);</pre>
 <p>
 Writes a NUL-terminated UTF16 string to <em class="parameter"><code>writer</code></em> (including the terminator).
 </p>
@@ -1402,7 +1402,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-string-utf32"></a><h3>gst_byte_writer_put_string_utf32 ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_string_utf32    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *data</code></em>);</pre>
+                                                         <em class="parameter"><code>const <span class="type">guint32</span> *data</code></em>);</pre>
 <p>
 Writes a NUL-terminated UTF32 string to <em class="parameter"><code>writer</code></em> (including the terminator).
 </p>
@@ -1463,7 +1463,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-data"></a><h3>gst_byte_writer_put_data ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_put_data            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Writes <em class="parameter"><code>size</code></em> bytes of <em class="parameter"><code>data</code></em> to <em class="parameter"><code>writer</code></em>.
@@ -1498,7 +1498,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-fill"></a><h3>gst_byte_writer_fill ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_byte_writer_fill                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Writes <em class="parameter"><code>size</code></em> bytes containing <em class="parameter"><code>value</code></em> to <em class="parameter"><code>writer</code></em>.
@@ -1532,14 +1532,14 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-int8-unchecked"></a><h3>gst_byte_writer_put_int8_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int8_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint8"><span class="type">gint8</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint8</span> val</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-put-int16-be-unchecked"></a><h3>gst_byte_writer_put_int16_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 16 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1565,7 +1565,7 @@
 <a name="gst-byte-writer-put-int16-le-unchecked"></a><h3>gst_byte_writer_put_int16_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint16</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 16 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1591,7 +1591,7 @@
 <a name="gst-byte-writer-put-int24-be-unchecked"></a><h3>gst_byte_writer_put_int24_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 24 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1617,7 +1617,7 @@
 <a name="gst-byte-writer-put-int24-le-unchecked"></a><h3>gst_byte_writer_put_int24_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 24 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1643,7 +1643,7 @@
 <a name="gst-byte-writer-put-int32-be-unchecked"></a><h3>gst_byte_writer_put_int32_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 32 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1669,7 +1669,7 @@
 <a name="gst-byte-writer-put-int32-le-unchecked"></a><h3>gst_byte_writer_put_int32_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint32</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 32 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1695,7 +1695,7 @@
 <a name="gst-byte-writer-put-int64-be-unchecked"></a><h3>gst_byte_writer_put_int64_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);</pre>
 <p>
 Writes a signed big endian 64 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1721,7 +1721,7 @@
 <a name="gst-byte-writer-put-int64-le-unchecked"></a><h3>gst_byte_writer_put_int64_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_int64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gint64</span> val</code></em>);</pre>
 <p>
 Writes a signed little endian 64 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1746,7 +1746,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-uint8-unchecked"></a><h3>gst_byte_writer_put_uint8_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint8_unchecked (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint8</span> val</code></em>);</pre>
 <p>
 Writes a unsigned 8 bit integer to <em class="parameter"><code>writer</code></em> without checking if there
 is enough free space available in the byte writer.
@@ -1772,7 +1772,7 @@
 <a name="gst-byte-writer-put-uint16-be-unchecked"></a><h3>gst_byte_writer_put_uint16_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint16_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 16 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1798,7 +1798,7 @@
 <a name="gst-byte-writer-put-uint16-le-unchecked"></a><h3>gst_byte_writer_put_uint16_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint16_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint16</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 16 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1824,7 +1824,7 @@
 <a name="gst-byte-writer-put-uint24-be-unchecked"></a><h3>gst_byte_writer_put_uint24_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint24_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 24 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1850,7 +1850,7 @@
 <a name="gst-byte-writer-put-uint24-le-unchecked"></a><h3>gst_byte_writer_put_uint24_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint24_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 24 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1876,7 +1876,7 @@
 <a name="gst-byte-writer-put-uint32-be-unchecked"></a><h3>gst_byte_writer_put_uint32_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint32_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 32 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1902,7 +1902,7 @@
 <a name="gst-byte-writer-put-uint32-le-unchecked"></a><h3>gst_byte_writer_put_uint32_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint32_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint32</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 32 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1928,7 +1928,7 @@
 <a name="gst-byte-writer-put-uint64-be-unchecked"></a><h3>gst_byte_writer_put_uint64_be_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint64_be_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);</pre>
 <p>
 Writes a unsigned big endian 64 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -1954,7 +1954,7 @@
 <a name="gst-byte-writer-put-uint64-le-unchecked"></a><h3>gst_byte_writer_put_uint64_le_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_uint64_le_unchecked
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> val</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">guint64</span> val</code></em>);</pre>
 <p>
 Writes a unsigned little endian 64 bit integer to <em class="parameter"><code>writer</code></em> without
 checking if there is enough free space available in the byte writer.
@@ -2083,7 +2083,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-put-data-unchecked"></a><h3>gst_byte_writer_put_data_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_put_data_unchecked  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Writes <em class="parameter"><code>size</code></em> bytes of <em class="parameter"><code>data</code></em> to <em class="parameter"><code>writer</code></em> without
@@ -2114,7 +2114,7 @@
 <div class="refsect2">
 <a name="gst-byte-writer-fill-unchecked"></a><h3>gst_byte_writer_fill_unchecked ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_byte_writer_fill_unchecked      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint8</span> value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Writes <em class="parameter"><code>size</code></em> bytes containing <em class="parameter"><code>value</code></em> to <em class="parameter"><code>writer</code></em> without
diff --git a/docs/libs/html/gstreamer-libs-GstCheck.html b/docs/libs/html/gstreamer-libs-GstCheck.html
index 272bbfc..4a1b6cd 100644
--- a/docs/libs/html/gstreamer-libs-GstCheck.html
+++ b/docs/libs/html/gstreamer-libs-GstCheck.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstCheck</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-check.html" title="GStreamer Check Unit Testing">
 <link rel="prev" href="gstreamer-check.html" title="GStreamer Check Unit Testing">
 <link rel="next" href="gstreamer-libs-GstBufferStraw.html" title="GstBufferStraw">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-check.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-check.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-libs-GstBufferStraw.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -50,7 +50,7 @@
                                                          value)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#ASSERT-CRITICAL:CAPS" title="ASSERT_CRITICAL()">ASSERT_CRITICAL</a>                     (code)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#ASSERT-WARNING:CAPS" title="ASSERT_WARNING()">ASSERT_WARNING</a>                      (code)
-#define             <a class="link" href="gstreamer-libs-GstCheck.html#ASSERT-MINI-OBJECT-REFCOUNT:CAPS" title="ASSERT_MINI_OBJECT_REFCOUNT()">ASSERT_MINI_OBJECT_REFCOUNT</a>         (caps,
+#define             <a class="link" href="gstreamer-libs-GstCheck.html#ASSERT-MINI-OBJECT-REFCOUNT:CAPS" title="ASSERT_MINI_OBJECT_REFCOUNT()">ASSERT_MINI_OBJECT_REFCOUNT</a>         (miniobj,
                                                          name,
                                                          value)
 #define             <a class="link" href="gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT:CAPS" title="ASSERT_OBJECT_REFCOUNT()">ASSERT_OBJECT_REFCOUNT</a>              (object,
@@ -91,41 +91,43 @@
                                                          c)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-init" title="gst_check_init ()">gst_check_init</a>                      (<em class="parameter"><code><span class="type">int</span> *argc</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **argv[]</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-message-error" title="gst_check_message_error ()">gst_check_message_error</a>             (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-message-error" title="gst_check_message_error ()">gst_check_message_error</a>             (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>);
-<a href="../gstreamer-0.11/GstElement.html"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-element" title="gst_check_setup_element ()">gst_check_setup_element</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);
-<a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad" title="gst_check_setup_sink_pad ()">gst_check_setup_sink_pad</a>            (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad" title="gst_check_setup_src_pad ()">gst_check_setup_src_pad</a>             (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name" title="gst_check_setup_sink_pad_by_name ()">gst_check_setup_sink_pad_by_name</a>    (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<a href="../gstreamer-1.0/GstElement.html"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-element" title="gst_check_setup_element ()">gst_check_setup_element</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad" title="gst_check_setup_sink_pad ()">gst_check_setup_sink_pad</a>            (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad" title="gst_check_setup_src_pad ()">gst_check_setup_src_pad</a>             (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name" title="gst_check_setup_sink_pad_by_name ()">gst_check_setup_sink_pad_by_name</a>    (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name" title="gst_check_setup_src_pad_by_name ()">gst_check_setup_src_pad_by_name</a>     (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name" title="gst_check_setup_src_pad_by_name ()">gst_check_setup_src_pad_by_name</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name" title="gst_check_teardown_pad_by_name ()">gst_check_teardown_pad_by_name</a>      (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name" title="gst_check_teardown_pad_by_name ()">gst_check_teardown_pad_by_name</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-element" title="gst_check_teardown_element ()">gst_check_teardown_element</a>          (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad" title="gst_check_teardown_sink_pad ()">gst_check_teardown_sink_pad</a>         (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad" title="gst_check_teardown_src_pad ()">gst_check_teardown_src_pad</a>          (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-element" title="gst_check_teardown_element ()">gst_check_teardown_element</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad" title="gst_check_teardown_sink_pad ()">gst_check_teardown_sink_pad</a>         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad" title="gst_check_teardown_src_pad ()">gst_check_teardown_src_pad</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-drop-buffers" title="gst_check_drop_buffers ()">gst_check_drop_buffers</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-buffer-data" title="gst_check_buffer_data ()">gst_check_buffer_data</a>               (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-buffer-data" title="gst_check_buffer_data ()">gst_check_buffer_data</a>               (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-caps-equal" title="gst_check_caps_equal ()">gst_check_caps_equal</a>                (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-caps-equal" title="gst_check_caps_equal ()">gst_check_caps_equal</a>                (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list" title="gst_check_element_push_buffer_list ()">gst_check_element_push_buffer_list</a>  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer" title="gst_check_element_push_buffer ()">gst_check_element_push_buffer</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-run-suite" title="gst_check_run_suite ()">gst_check_run_suite</a>                 (<em class="parameter"><code><span class="type">Suite</span> *suite</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fname</code></em>);
@@ -185,7 +187,7 @@
 <hr>
 <div class="refsect2">
 <a name="ASSERT-MINI-OBJECT-REFCOUNT:CAPS"></a><h3>ASSERT_MINI_OBJECT_REFCOUNT()</h3>
-<pre class="programlisting">#define             ASSERT_MINI_OBJECT_REFCOUNT(caps, name, value)</pre>
+<pre class="programlisting">#define             ASSERT_MINI_OBJECT_REFCOUNT(miniobj, name, value)</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,11 +288,11 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value or expression</td>
+<td>a <span class="type">guint64</span> value or expression</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value or expression</td>
+<td>a <span class="type">guint64</span> value or expression</td>
 </tr>
 </tbody>
 </table></div>
@@ -309,11 +311,11 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value or expression</td>
+<td>a <span class="type">gint64</span> value or expression</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value or expression</td>
+<td>a <span class="type">gint64</span> value or expression</td>
 </tr>
 </tbody>
 </table></div>
@@ -411,11 +413,11 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value or expression</td>
+<td>a <span class="type">guint64</span> value or expression</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value or expression</td>
+<td>a <span class="type">guint64</span> value or expression</td>
 </tr>
 </tbody>
 </table></div>
@@ -435,11 +437,11 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value or expression</td>
+<td>a <span class="type">gint64</span> value or expression</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> value or expression</td>
+<td>a <span class="type">gint64</span> value or expression</td>
 </tr>
 </tbody>
 </table></div>
@@ -459,64 +461,62 @@
 <hr>
 <div class="refsect2">
 <a name="gst-check-message-error"></a><h3>gst_check_message_error ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_message_error             (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_message_error             (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-element"></a><h3>gst_check_setup_element ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstElement.html"><span class="returnvalue">GstElement</span></a> *        gst_check_setup_element             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstElement.html"><span class="returnvalue">GstElement</span></a> *        gst_check_setup_element             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-sink-pad"></a><h3>gst_check_setup_sink_pad ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad            (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad            (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-src-pad"></a><h3>gst_check_setup_src_pad ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad             (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad             (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-sink-pad-by-name"></a><h3>gst_check_setup_sink_pad_by_name ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad_by_name    (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad_by_name    (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-src-pad-by-name"></a><h3>gst_check_setup_src_pad_by_name ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad_by_name     (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad_by_name     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-pad-by-name"></a><h3>gst_check_teardown_pad_by_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_pad_by_name      (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_pad_by_name      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-element"></a><h3>gst_check_teardown_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_element          (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_element          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-sink-pad"></a><h3>gst_check_teardown_sink_pad ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_sink_pad         (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_sink_pad         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-src-pad"></a><h3>gst_check_teardown_src_pad ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_src_pad          (<em class="parameter"><code><a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_src_pad          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -531,9 +531,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-check-buffer-data"></a><h3>gst_check_buffer_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_buffer_data               (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_buffer_data               (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
 Compare the buffer contents with <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>.
 </p>
@@ -558,8 +558,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-check-caps-equal"></a><h3>gst_check_caps_equal ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_caps_equal                (<em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_caps_equal                (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
 <p>
 Compare two caps with gst_caps_is_equal and fail unless they are
 equal.
@@ -584,8 +584,10 @@
 <a name="gst-check-element-push-buffer-list"></a><h3>gst_check_element_push_buffer_list ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_check_element_push_buffer_list  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);</pre>
 <p>
 Create an <em class="parameter"><code>element</code></em> with the factory with the name and push the buffers in
 <em class="parameter"><code>buffer_in</code></em> to this element. The element should create the buffers equal to
@@ -605,11 +607,15 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer_in</code></em> :</span></p></td>
-<td>a list of buffers that needs to be puched to the element</td>
+<td>a list of buffers that needs to be
+puched to the element. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer_out</code></em> :</span></p></td>
-<td>a list of buffers that we expect from the element</td>
+<td>a list of buffers that we expect from
+the element. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>last_flow_return</code></em> :</span></p></td>
@@ -623,8 +629,10 @@
 <div class="refsect2">
 <a name="gst-check-element-push-buffer"></a><h3>gst_check_element_push_buffer ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_check_element_push_buffer       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);</pre>
 <p>
 Create an <em class="parameter"><code>element</code></em> with the factory with the name and push the
 <em class="parameter"><code>buffer_in</code></em> to this element. The element should create one buffer
diff --git a/docs/libs/html/gstreamer-libs-GstControllerGObject.html b/docs/libs/html/gstreamer-libs-GstControllerGObject.html
deleted file mode 100644
index 12d5af4..0000000
--- a/docs/libs/html/gstreamer-libs-GstControllerGObject.html
+++ /dev/null
@@ -1,464 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstControllerGObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<link rel="prev" href="GstLFOControlSource.html" title="GstLFOControlSource">
-<link rel="next" href="gstreamer-dataprotocol.html" title="GStreamer Data Protocol">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GstLFOControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-dataprotocol.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gstreamer-libs-GstControllerGObject.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gstreamer-libs-GstControllerGObject.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gstreamer-libs-GstControllerGObject"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-libs-GstControllerGObject.top_of_page"></a>GstControllerGObject</span></h2>
-<p>GstControllerGObject — <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> convenience methods for using dynamic properties</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gstreamer-libs-GstControllerGObject.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;libs/controller/gstcontroller.h&gt;
-
-<a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-control-properties" title="gst_object_control_properties ()">gst_object_control_properties</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-uncontrol-properties" title="gst_object_uncontrol_properties ()">gst_object_uncontrol_properties</a>     (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-controller" title="gst_object_get_controller ()">gst_object_get_controller</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-controller" title="gst_object_set_controller ()">gst_object_set_controller</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *controller</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-suggest-next-sync" title="gst_object_suggest_next_sync ()">gst_object_suggest_next_sync</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-sync-values" title="gst_object_sync_values ()">gst_object_sync_values</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
-<a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-source" title="gst_object_get_control_source ()">gst_object_get_control_source</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-source" title="gst_object_set_control_source ()">gst_object_set_control_source</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-arrays" title="gst_object_get_value_arrays ()">gst_object_get_value_arrays</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-array" title="gst_object_get_value_array ()">gst_object_get_value_array</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);
-<a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-rate" title="gst_object_get_control_rate ()">gst_object_get_control_rate</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-rate" title="gst_object_set_control_rate ()">gst_object_set_control_rate</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> control_rate</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-GstControllerGObject.description"></a><h2>Description</h2>
-<p>
-These methods allow to use some <a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> functionality directly from
-the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> class.
-</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-GstControllerGObject.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="gst-object-control-properties"></a><h3>gst_object_control_properties ()</h3>
-<pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     gst_object_control_properties       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Convenience function for GObject
-</p>
-<p>
-Creates a GstController that allows you to dynamically control one, or more, GObject properties.
-If the given GObject already has a GstController, it adds the given properties to the existing
-controller and returns that controller.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object of which some properties should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The GstController with which the user can control the given properties dynamically or NULL if
-one or more of the given properties aren't available, or cannot be controlled, for the given element.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-uncontrol-properties"></a><h3>gst_object_uncontrol_properties ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_uncontrol_properties     (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Convenience function for GObject
-</p>
-<p>
-Removes the given element's properties from it's controller
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object of which some properties should not be controlled anymore</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated list of property names that should be controlled</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if one of the given property names isn't handled by the
-controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-get-controller"></a><h3>gst_object_get_controller ()</h3>
-<pre class="programlisting"><a class="link" href="GstController.html" title="GstController"><span class="returnvalue">GstController</span></a> *     gst_object_get_controller           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
-<p>
-Gets the controller for the given GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the controller handling some of the given element's properties, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no controller</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-set-controller"></a><h3>gst_object_set_controller ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_set_controller           (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a> *controller</code></em>);</pre>
-<p>
-Sets the controller on the given GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that should get the controller</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>controller</code></em> :</span></p></td>
-<td>the controller object to plug in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the GObject already has an controller, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-suggest-next-sync"></a><h3>gst_object_suggest_next_sync ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_object_suggest_next_sync        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
-<p>
-Convenience function for GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>same thing as <a class="link" href="GstController.html#gst-controller-suggest-next-sync" title="gst_controller_suggest_next_sync ()"><code class="function">gst_controller_suggest_next_sync()</code></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.13</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-sync-values"></a><h3>gst_object_sync_values ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_sync_values              (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>
-Convenience function for GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>same thing as <a class="link" href="GstController.html#gst-controller-sync-values" title="gst_controller_sync_values ()"><code class="function">gst_controller_sync_values()</code></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-get-control-source"></a><h3>gst_object_get_control_source ()</h3>
-<pre class="programlisting"><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="returnvalue">GstControlSource</span></a> *  gst_object_get_control_source       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre>
-<p>
-Gets the corresponding <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for the property. This should be unreferenced
-again after use.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be get</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em> or NULL if the property is not
-controlled by this controller or no <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> was assigned yet.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-set-control-source"></a><h3>gst_object_set_control_source ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_set_control_source       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> *csource</code></em>);</pre>
-<p>
-Sets the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> for <em class="parameter"><code>property_name</code></em>. If there already was a <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>
-for this property it will be unreferenced.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the controller object</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
-<td>name of the property for which the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> should be set</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>csource</code></em> :</span></p></td>
-<td>the <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a> that should be used for the property</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the given property isn't handled by the controller or the new <a class="link" href="GstControlSource.html" title="GstControlSource"><span class="type">GstControlSource</span></a>
-couldn't be bound to the property, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if everything worked as expected.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-get-value-arrays"></a><h3>gst_object_get_value_arrays ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_get_value_arrays         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *value_arrays</code></em>);</pre>
-<p>
-Function to be able to get an array of values for one or more given element
-properties.
-</p>
-<p>
-If the GstValueArray-&gt;values array in list nodes is NULL, it will be created
-by the function.
-The type of the values in the array are the same as the property's type.
-</p>
-<p>
-The g_object_* functions are just convenience functions for GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_arrays</code></em> :</span></p></td>
-<td>list to return the control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array(s) could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-get-value-array"></a><h3>gst_object_get_value_array ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_get_value_array          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstControlSource.html#GstValueArray" title="struct GstValueArray"><span class="type">GstValueArray</span></a> *value_array</code></em>);</pre>
-<p>
-Function to be able to get an array of values for one element properties
-</p>
-<p>
-If the GstValueArray-&gt;values array is NULL, it will be created by the function.
-The type of the values in the array are the same as the property's type.
-</p>
-<p>
-The g_object_* functions are just convenience functions for GObject
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
-<td>the time that should be processed</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
-<td>array to put control-values in</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given array(s) could be filled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.9</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-get-control-rate"></a><h3>gst_object_get_control_rate ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_object_get_control_rate         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>);</pre>
-<p>
-Obtain the control-rate for this <em class="parameter"><code>object</code></em>. Audio processing <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a>
-objects will use this rate to sub-divide their processing loop and call
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> inbetween. The length of the processing segment
-should be up to <em class="parameter"><code>control</code></em>-rate nanoseconds.
-</p>
-<p>
-If the <em class="parameter"><code>object</code></em> is not under property control, this will return
-<a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a>. This allows the element to avoid the sub-dividing.
-</p>
-<p>
-The control-rate is not expected to change if the element is in
-<a href="../gstreamer-0.11/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or <a href="../gstreamer-0.11/GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the control rate in nanoseconds</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.10</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-object-set-control-rate"></a><h3>gst_object_set_control_rate ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_object_set_control_rate         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> control_rate</code></em>);</pre>
-<p>
-Change the control-rate for this <em class="parameter"><code>object</code></em>. Audio processing <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a>
-objects will use this rate to sub-divide their processing loop and call
-<a class="link" href="gstreamer-libs-GstControllerGObject.html#gst-object-sync-values" title="gst_object_sync_values ()"><code class="function">gst_object_sync_values()</code></a> inbetween. The length of the processing segment
-should be up to <em class="parameter"><code>control</code></em>-rate nanoseconds.
-</p>
-<p>
-The control-rate should not change if the element is in <a href="../gstreamer-0.11/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or
-<a href="../gstreamer-0.11/GstElement.html#GST-STATE-PLAYING:CAPS"><code class="literal">GST_STATE_PLAYING</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>the object that has controlled properties</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>control_rate</code></em> :</span></p></td>
-<td>the new control-rate in nanoseconds.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.10</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-GstControllerGObject.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstController.html" title="GstController"><span class="type">GstController</span></a>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs-GstDataQueue.html b/docs/libs/html/gstreamer-libs-GstDataQueue.html
deleted file mode 100644
index d79ee2c..0000000
--- a/docs/libs/html/gstreamer-libs-GstDataQueue.html
+++ /dev/null
@@ -1,544 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstDataQueue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
-<link rel="prev" href="gstreamer-libs-GstTypeFindHelper.html" title="GstTypeFindHelper">
-<link rel="next" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-libs-GstTypeFindHelper.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-control.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gstreamer-libs-GstDataQueue.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gstreamer-libs-GstDataQueue.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gstreamer-libs-GstDataQueue"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-libs-GstDataQueue.top_of_page"></a>GstDataQueue</span></h2>
-<p>GstDataQueue — Threadsafe queueing object</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gstreamer-libs-GstDataQueue.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/base/gstdataqueue.h&gt;
-
-struct              <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue">GstDataQueue</a>;
-struct              <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueSize" title="struct GstDataQueueSize">GstDataQueueSize</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()">*GstDataQueueCheckFullFunction</a>)    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> visible</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bytes</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);
-struct              <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem">GstDataQueueItem</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback" title="GstDataQueueEmptyCallback ()">*GstDataQueueEmptyCallback</a>)        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback" title="GstDataQueueFullCallback ()">*GstDataQueueFullCallback</a>)         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="returnvalue">GstDataQueue</span></a> *      <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-new" title="gst_data_queue_new ()">gst_data_queue_new</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()"><span class="type">GstDataQueueCheckFullFunction</span></a> checkfull</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="returnvalue">GstDataQueue</span></a> *      <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-new-full" title="gst_data_queue_new_full ()">gst_data_queue_new_full</a>             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()"><span class="type">GstDataQueueCheckFullFunction</span></a> checkfull</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback" title="GstDataQueueFullCallback ()"><span class="type">GstDataQueueFullCallback</span></a> fullcallback</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback" title="GstDataQueueEmptyCallback ()"><span class="type">GstDataQueueEmptyCallback</span></a> emptycallback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" title="gst_data_queue_push ()">gst_data_queue_push</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> *item</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" title="gst_data_queue_pop ()">gst_data_queue_pop</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> **item</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-flush" title="gst_data_queue_flush ()">gst_data_queue_flush</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing" title="gst_data_queue_set_flushing ()">gst_data_queue_set_flushing</a>         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head" title="gst_data_queue_drop_head ()">gst_data_queue_drop_head</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full" title="gst_data_queue_is_full ()">gst_data_queue_is_full</a>              (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty" title="gst_data_queue_is_empty ()">gst_data_queue_is_empty</a>             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level" title="gst_data_queue_get_level ()">gst_data_queue_get_level</a>            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueSize" title="struct GstDataQueueSize"><span class="type">GstDataQueueSize</span></a> *level</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed" title="gst_data_queue_limits_changed ()">gst_data_queue_limits_changed</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-GstDataQueue.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> is an object that handles threadsafe queueing of objects. It
-also provides size-related functionality. This object should be used for
-any <a href="../gstreamer-0.11/GstElement.html"><span class="type">GstElement</span></a> that wishes to provide some sort of queueing functionality.
-</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-GstDataQueue.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstDataQueue"></a><h3>struct GstDataQueue</h3>
-<pre class="programlisting">struct GstDataQueue {
-  GObject object;
-};
-</pre>
-<p>
-Opaque <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> <em class="structfield"><code><a name="GstDataQueue.object"></a>object</code></em>;</span></p></td>
-<td>the parent structure</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDataQueueSize"></a><h3>struct GstDataQueueSize</h3>
-<pre class="programlisting">struct GstDataQueueSize {
-  guint visible;
-  guint bytes;
-  guint64 time;
-};
-</pre>
-<p>
-Structure describing the size of a queue.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstDataQueueSize.visible"></a>visible</code></em>;</span></p></td>
-<td>number of buffers</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstDataQueueSize.bytes"></a>bytes</code></em>;</span></p></td>
-<td>number of bytes</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstDataQueueSize.time"></a>time</code></em>;</span></p></td>
-<td>amount of time</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDataQueueCheckFullFunction"></a><h3>GstDataQueueCheckFullFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstDataQueueCheckFullFunction)    (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> visible</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bytes</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);</pre>
-<p>
-The prototype of the function used to inform the queue that it should be
-considered as full.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
-<td>The number of visible items currently in the queue.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>bytes</code></em> :</span></p></td>
-<td>The amount of bytes currently in the queue.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
-<td>The accumulated duration of the items currently in the queue.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>checkdata</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> registered when the <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> was created.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the queue should be considered full.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDataQueueItem"></a><h3>struct GstDataQueueItem</h3>
-<pre class="programlisting">struct GstDataQueueItem {
-  GstMiniObject *object;
-  guint size;
-  guint64 duration;
-  gboolean visible;
-
-  /* user supplied destroy function */
-  GDestroyNotify destroy;
-};
-</pre>
-<p>
-Structure used by <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>. You can supply a different structure, as
-long as the top of the structure is identical to this structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *<em class="structfield"><code><a name="GstDataQueueItem.object"></a>object</code></em>;</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> to queue.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstDataQueueItem.size"></a>size</code></em>;</span></p></td>
-<td>the size in bytes of the miniobject.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstDataQueueItem.duration"></a>duration</code></em>;</span></p></td>
-<td>the duration in <a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> of the miniobject. Can not be
-<a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstDataQueueItem.visible"></a>visible</code></em>;</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>object</code></em> should be considered as a visible object.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> <em class="structfield"><code><a name="GstDataQueueItem.destroy"></a>destroy</code></em>;</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> function to use to free the <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a>.
-This function should also drop the reference to <em class="parameter"><code>object</code></em> the owner of the
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> is assumed to hold.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDataQueueEmptyCallback"></a><h3>GstDataQueueEmptyCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstDataQueueEmptyCallback)        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDataQueueFullCallback"></a><h3>GstDataQueueFullCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstDataQueueFullCallback)         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-new"></a><h3>gst_data_queue_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="returnvalue">GstDataQueue</span></a> *      gst_data_queue_new                  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()"><span class="type">GstDataQueueCheckFullFunction</span></a> checkfull</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>checkfull</code></em> :</span></p></td>
-<td>the callback used to tell if the element considers the queue full
-or not.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>checkdata</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> that will be given in the <em class="parameter"><code>checkfull</code></em> callback.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-new-full"></a><h3>gst_data_queue_new_full ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="returnvalue">GstDataQueue</span></a> *      gst_data_queue_new_full             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()"><span class="type">GstDataQueueCheckFullFunction</span></a> checkfull</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback" title="GstDataQueueFullCallback ()"><span class="type">GstDataQueueFullCallback</span></a> fullcallback</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback" title="GstDataQueueEmptyCallback ()"><span class="type">GstDataQueueEmptyCallback</span></a> emptycallback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> checkdata</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>. The difference with <em class="parameter"><code>gst_data_queue_new</code></em> is that it will
-not emit the 'full' and 'empty' signals, but instead calling directly <em class="parameter"><code>fullcallback</code></em>
-or <em class="parameter"><code>emptycallback</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>checkfull</code></em> :</span></p></td>
-<td>the callback used to tell if the element considers the queue full
-or not.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>fullcallback</code></em> :</span></p></td>
-<td>the callback which will be called when the queue is considered full.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>emptycallback</code></em> :</span></p></td>
-<td>the callback which will be called when the queue is considered empty.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>checkdata</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> that will be given in the <em class="parameter"><code>checkfull</code></em> callback.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.26</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-push"></a><h3>gst_data_queue_push ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_data_queue_push                 (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> *item</code></em>);</pre>
-<p>
-Pushes a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> (or a structure that begins with the same fields)
-on the <em class="parameter"><code>queue</code></em>. If the <em class="parameter"><code>queue</code></em> is full, the call will block until space is
-available, OR the <em class="parameter"><code>queue</code></em> is set to flushing state.
-MT safe.
-</p>
-<p>
-Note that this function has slightly different semantics than <a href="../gstreamer-0.11/GstPad.html#gst-pad-push"><code class="function">gst_pad_push()</code></a>
-and <a href="../gstreamer-0.11/GstPad.html#gst-pad-push-event"><code class="function">gst_pad_push_event()</code></a>: this function only takes ownership of <em class="parameter"><code>item</code></em> and
-the <a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> contained in <em class="parameter"><code>item</code></em> if the push was successful. If FALSE
-is returned, the caller is responsible for freeing <em class="parameter"><code>item</code></em> and its contents.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the <em class="parameter"><code>item</code></em> was successfully pushed on the <em class="parameter"><code>queue</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-pop"></a><h3>gst_data_queue_pop ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_data_queue_pop                  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a> **item</code></em>);</pre>
-<p>
-Retrieves the first <em class="parameter"><code>item</code></em> available on the <em class="parameter"><code>queue</code></em>. If the queue is currently
-empty, the call will block until at least one item is available, OR the
-<em class="parameter"><code>queue</code></em> is set to the flushing state.
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
-<td>pointer to store the returned <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" title="struct GstDataQueueItem"><span class="type">GstDataQueueItem</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if an <em class="parameter"><code>item</code></em> was successfully retrieved from the <em class="parameter"><code>queue</code></em>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-flush"></a><h3>gst_data_queue_flush ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_data_queue_flush                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);</pre>
-<p>
-Flushes all the contents of the <em class="parameter"><code>queue</code></em>. Any call to <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" title="gst_data_queue_push ()"><span class="type">gst_data_queue_push</span></a> and
-<a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" title="gst_data_queue_pop ()"><span class="type">gst_data_queue_pop</span></a> will be released.
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-set-flushing"></a><h3>gst_data_queue_set_flushing ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_data_queue_set_flushing         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
-<p>
-Sets the queue to flushing state if <em class="parameter"><code>flushing</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>. If set to flushing
-state, any incoming data on the <em class="parameter"><code>queue</code></em> will be discarded. Any call currently
-blocking on <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" title="gst_data_queue_push ()"><span class="type">gst_data_queue_push</span></a> or <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" title="gst_data_queue_pop ()"><span class="type">gst_data_queue_pop</span></a> will return straight
-away with a return value of <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. While the <em class="parameter"><code>queue</code></em> is in flushing state, 
-all calls to those two functions will return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.
-</p>
-<p>
-MT Safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flushing</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> stating if the queue will be flushing or not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-drop-head"></a><h3>gst_data_queue_drop_head ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_data_queue_drop_head            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>
-Pop and unref the head-most <a href="../gstreamer-0.11/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> with the given <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>The <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> to drop an item from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the item to drop.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if an element was removed.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-is-full"></a><h3>gst_data_queue_is_full ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_data_queue_is_full              (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);</pre>
-<p>
-Queries if <em class="parameter"><code>queue</code></em> is full. This check will be done using the
-<a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" title="GstDataQueueCheckFullFunction ()"><span class="type">GstDataQueueCheckFullFunction</span></a> registered with <em class="parameter"><code>queue</code></em>.
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>queue</code></em> is full.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-is-empty"></a><h3>gst_data_queue_is_empty ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_data_queue_is_empty             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);</pre>
-<p>
-Queries if there are any items in the <em class="parameter"><code>queue</code></em>.
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>queue</code></em> is empty.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-get-level"></a><h3>gst_data_queue_get_level ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_data_queue_get_level            (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueueSize" title="struct GstDataQueueSize"><span class="type">GstDataQueueSize</span></a> *level</code></em>);</pre>
-<p>
-Get the current level of the queue.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>The <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
-<td>the location to store the result</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-data-queue-limits-changed"></a><h3>gst_data_queue_limits_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_data_queue_limits_changed       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a> *queue</code></em>);</pre>
-<p>
-Inform the queue that the limits for the fullness check have changed and that
-any blocking <a class="link" href="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" title="gst_data_queue_push ()"><code class="function">gst_data_queue_push()</code></a> should be unblocked to recheck the limts.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>queue</code></em> :</span></p></td>
-<td>The <a class="link" href="gstreamer-libs-GstDataQueue.html#GstDataQueue" title="struct GstDataQueue"><span class="type">GstDataQueue</span></a>
-</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.11</p>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
index e6f0c2e..53f1ee6 100644
--- a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
+++ b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstNetTimePacket</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-net.html" title="GStreamer Network Classes">
 <link rel="prev" href="GstNetClientClock.html" title="GstNetClientClock">
 <link rel="next" href="GstNetTimeProvider.html" title="GstNetTimeProvider">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="GstNetClientClock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-net.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstNetTimeProvider.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -43,15 +43,15 @@
 
 struct              <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket">GstNetTimePacket</a>;
 #define             <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GST-NET-TIME-PACKET-SIZE:CAPS" title="GST_NET_TIME_PACKET_SIZE">GST_NET_TIME_PACKET_SIZE</a>
-<a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-new" title="gst_net_time_packet_new ()">gst_net_time_packet_new</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *buffer</code></em>);
-<a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-receive" title="gst_net_time_packet_receive ()">gst_net_time_packet_receive</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
-                                                         <em class="parameter"><code><span class="type">struct sockaddr</span> *addr</code></em>,
-                                                         <em class="parameter"><code><span class="type">socklen_t</span> *len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-send" title="gst_net_time_packet_send ()">gst_net_time_packet_send</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
-                                                         <em class="parameter"><code><span class="type">struct sockaddr</span> *addr</code></em>,
-                                                         <em class="parameter"><code><span class="type">socklen_t</span> len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-serialize" title="gst_net_time_packet_serialize ()">gst_net_time_packet_serialize</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>);
+<a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-new" title="gst_net_time_packet_new ()">gst_net_time_packet_new</a>             (<em class="parameter"><code>const <span class="type">guint8</span> *buffer</code></em>);
+<a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-receive" title="gst_net_time_packet_receive ()">gst_net_time_packet_receive</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocketAddress.html"><span class="type">GSocketAddress</span></a> **src_address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-send" title="gst_net_time_packet_send ()">gst_net_time_packet_send</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocketAddress.html"><span class="type">GSocketAddress</span></a> *dest_address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+<span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-serialize" title="gst_net_time_packet_serialize ()">gst_net_time_packet_serialize</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -80,11 +80,11 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.local-time"></a>local_time</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.local-time"></a>local_time</code></em>;</span></p></td>
 <td>the local time when this packet was sent</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="../gstreamer-0.11/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.remote-time"></a>remote_time</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.remote-time"></a>remote_time</code></em>;</span></p></td>
 <td>the remote time observation</td>
 </tr>
 </tbody>
@@ -102,7 +102,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-packet-new"></a><h3>gst_net_time_packet_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  gst_net_time_packet_new             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  gst_net_time_packet_new             (<em class="parameter"><code>const <span class="type">guint8</span> *buffer</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> from a buffer received over the network. The
 caller is responsible for ensuring that <em class="parameter"><code>buffer</code></em> is at least
@@ -110,7 +110,7 @@
 </p>
 <p>
 If <em class="parameter"><code>buffer</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the local and remote times will be set to
-<a href="../gstreamer-0.11/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>.
+<a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>.
 </p>
 <p>
 MT safe. Caller owns return value (g_free to free).
@@ -132,36 +132,34 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-packet-receive"></a><h3>gst_net_time_packet_receive ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  gst_net_time_packet_receive         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
-                                                         <em class="parameter"><code><span class="type">struct sockaddr</span> *addr</code></em>,
-                                                         <em class="parameter"><code><span class="type">socklen_t</span> *len</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="returnvalue">GstNetTimePacket</span></a> *  gst_net_time_packet_receive         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocketAddress.html"><span class="type">GSocketAddress</span></a> **src_address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>
-Receives a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> over a socket. Handles interrupted system calls,
-but otherwise returns NULL on error. See recvfrom(2) for more information on
-how to interpret <em class="parameter"><code>sockaddr</code></em>.
-</p>
-<p>
-MT safe. Caller owns return value (g_free to free).
+Receives a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> over a socket. Handles interrupted system
+calls, but otherwise returns NULL on error.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
-<td>a file descriptor created by socket(2)</td>
+<td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
+<td>socket to receive the time packet on</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>addr</code></em> :</span></p></td>
-<td>a pointer to a sockaddr to hold the address of the sender</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
-<td>a pointer to the size of the data pointed to by <em class="parameter"><code>addr</code></em>
+<td><p><span class="term"><em class="parameter"><code>src_addr</code></em> :</span></p></td>
+<td>address of variable to return sender address. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td>return address for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a>.</td>
+<td>a new <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a>, or NULL on error. Free
+with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -169,13 +167,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-packet-send"></a><h3>gst_net_time_packet_send ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_net_time_packet_send            (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
-                                                         <em class="parameter"><code><span class="type">struct sockaddr</span> *addr</code></em>,
-                                                         <em class="parameter"><code><span class="type">socklen_t</span> len</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_net_time_packet_send            (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GSocketAddress.html"><span class="type">GSocketAddress</span></a> *dest_address</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>
-Sends a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> over a socket. Essentially a thin wrapper around
-sendto(2) and <a class="link" href="gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-serialize" title="gst_net_time_packet_serialize ()"><code class="function">gst_net_time_packet_serialize()</code></a>. 
+Sends a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> over a socket.
 </p>
 <p>
 MT safe.
@@ -185,25 +182,23 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>packet</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a>
-</td>
+<td>the <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> to send</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
-<td>a file descriptor created by socket(2)</td>
+<td><p><span class="term"><em class="parameter"><code>socket</code></em> :</span></p></td>
+<td>socket to send the time packet on</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>addr</code></em> :</span></p></td>
-<td>a pointer to a sockaddr to hold the address of the sender</td>
+<td><p><span class="term"><em class="parameter"><code>dest_addr</code></em> :</span></p></td>
+<td>address to send the time packet to</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
-<td>the size of the data pointed to by <em class="parameter"><code>addr</code></em>
-</td>
+<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td>return address for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or NULL</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The return value of sendto(2).</td>
+<td>TRUE if successful, FALSE in case an error occured.</td>
 </tr>
 </tbody>
 </table></div>
@@ -211,7 +206,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-packet-serialize"></a><h3>gst_net_time_packet_serialize ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *            gst_net_time_packet_serialize       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> *            gst_net_time_packet_serialize       (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> *packet</code></em>);</pre>
 <p>
 Serialized a <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a> into a newly-allocated sequence of
 <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GST-NET-TIME-PACKET-SIZE:CAPS" title="GST_NET_TIME_PACKET_SIZE"><span class="type">GST_NET_TIME_PACKET_SIZE</span></a> bytes, in network byte order. The value returned is
@@ -239,7 +234,7 @@
 </div>
 <div class="refsect1">
 <a name="gstreamer-libs-GstNetTimePacket.see-also"></a><h2>See Also</h2>
-<a href="../gstreamer-0.11/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gstreamer-libs-GstStreamConsistency.html b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
index 514149d..8943a5f 100644
--- a/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
+++ b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstStreamConsistency</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-check.html" title="GStreamer Check Unit Testing">
 <link rel="prev" href="gstreamer-libs-GstBufferStraw.html" title="GstBufferStraw">
 <link rel="next" href="gstreamer-hierarchy.html" title="Object Hierarchy">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-libs-GstBufferStraw.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-check.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-hierarchy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -41,7 +41,7 @@
 #include &lt;gst/check/gstconsistencychecker.h&gt;
 
                     <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency">GstStreamConsistency</a>;
-<a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new" title="gst_consistency_checker_new ()">gst_consistency_checker_new</a>      (<em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new" title="gst_consistency_checker_new ()">gst_consistency_checker_new</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset" title="gst_consistency_checker_reset ()">gst_consistency_checker_reset</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> *consist</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free" title="gst_consistency_checker_free ()">gst_consistency_checker_free</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> *consist</code></em>);
 </pre>
@@ -66,20 +66,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-consistency-checker-new"></a><h3>gst_consistency_checker_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * gst_consistency_checker_new      (<em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * gst_consistency_checker_new      (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Sets up a data probe on the given pad which will raise assertions if the
 data flow is inconsistent.
 </p>
-<p>
-Currently only works for source pads.
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>The <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> on which the dataflow will be checked.</td>
+<td>The <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> on which the dataflow will be checked.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -110,7 +107,7 @@
 <a name="gst-consistency-checker-free"></a><h3>gst_consistency_checker_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_consistency_checker_free        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> *consist</code></em>);</pre>
 <p>
-Frees the allocated data and probe associated with <em class="parameter"><code>consist</code></em>.
+Frees the allocated data and probes associated with <em class="parameter"><code>consist</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
index 3dc6dd6..1afd585 100644
--- a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
+++ b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
@@ -3,22 +3,22 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GstTypeFindHelper</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
-<link rel="prev" href="GstCollectPads.html" title="GstCollectPads">
-<link rel="next" href="gstreamer-libs-GstDataQueue.html" title="GstDataQueue">
+<link rel="prev" href="GstCollectPads2.html" title="GstCollectPads2">
+<link rel="next" href="gstreamer-control.html" title="GStreamer Dynamic Parameter Control">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
 <tr valign="middle">
-<td><a accesskey="p" href="GstCollectPads.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstCollectPads2.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-libs-GstDataQueue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-control.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
 <a href="#gstreamer-libs-GstTypeFindHelper.synopsis" class="shortcut">Top</a>
@@ -40,31 +40,29 @@
 <pre class="synopsis">
 #include &lt;gst/base/gsttypefindhelper.h&gt;
 
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()">gst_type_find_helper</a>                (<em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer" title="gst_type_find_helper_for_buffer ()">gst_type_find_helper_for_buffer</a>     (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" title="gst_type_find_helper_for_extension ()">gst_type_find_helper_for_extension</a>  (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()">gst_type_find_helper</a>                (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> size</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer" title="gst_type_find_helper_for_buffer ()">gst_type_find_helper_for_buffer</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" title="gst_type_find_helper_for_extension ()">gst_type_find_helper_for_extension</a>  (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data" title="gst_type_find_helper_for_data ()">gst_type_find_helper_for_data</a>       (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
-<a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()">*GstTypeFindHelperGetRangeFunction</a>)
-                                                        (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data" title="gst_type_find_helper_for_data ()">gst_type_find_helper_for_data</a>       (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()">*GstTypeFindHelperGetRangeFunction</a>)
+                                                        (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()">gst_type_find_helper_get_range</a>      (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()">gst_type_find_helper_get_range</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range-ext" title="gst_type_find_helper_get_range_ext ()">gst_type_find_helper_get_range_ext</a>  (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> size</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -80,10 +78,10 @@
 <a name="gstreamer-libs-GstTypeFindHelper.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="gst-type-find-helper"></a><h3>gst_type_find_helper ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper                (<em class="parameter"><code><a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper                (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> size</code></em>);</pre>
 <p>
-Tries to find what type of data is flowing from the given source <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>.
+Tries to find what type of data is flowing from the given source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>.
 </p>
 <p>
 Free-function: gst_caps_unref
@@ -93,7 +91,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>A source <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>
+<td>A source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>
 </td>
 </tr>
 <tr>
@@ -102,8 +100,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
+Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -112,17 +110,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-buffer"></a><h3>gst_type_find_helper_for_buffer ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_buffer     (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_buffer     (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
-Tries to find what type of data is contained in the given <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>, the
+Tries to find what type of data is contained in the given <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>, the
 assumption being that the buffer represents the beginning of the stream or
 file.
 </p>
 <p>
 All available typefinders will be called on the data in order of rank. If
-a typefinding function returns a probability of <a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
+a typefinding function returns a probability of <a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
 typefinding is stopped immediately and the found caps will be returned
 right away. Otherwise, all available typefind functions will the tried,
 and the caps with the highest probability will be returned, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if
@@ -140,7 +138,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with data to typefind. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with data to typefind. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -151,9 +149,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
 if no type could be found. The caller should free the caps returned
-with <a href="../gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -162,10 +160,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-extension"></a><h3>gst_type_find_helper_for_extension ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_extension  (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_extension  (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>);</pre>
 <p>
-Tries to find the best <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> associated with <em class="parameter"><code>extension</code></em>.
+Tries to find the best <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> associated with <em class="parameter"><code>extension</code></em>.
 </p>
 <p>
 All available typefinders will be checked against the extension in order
@@ -189,9 +187,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to <em class="parameter"><code>extension</code></em>, or
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to <em class="parameter"><code>extension</code></em>, or
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no type could be found. The caller should free the caps
-returned with <a href="../gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+returned with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -201,10 +199,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-data"></a><h3>gst_type_find_helper_for_data ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_data       (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_data       (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
 Tries to find what type of data is contained in the given <em class="parameter"><code>data</code></em>, the
 assumption being that the data represents the beginning of the stream or
@@ -212,7 +210,7 @@
 </p>
 <p>
 All available typefinders will be called on the data in order of rank. If
-a typefinding function returns a probability of <a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
+a typefinding function returns a probability of <a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
 typefinding is stopped immediately and the found caps will be returned
 right away. Otherwise, all available typefind functions will the tried,
 and the caps with the highest probability will be returned, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if
@@ -246,9 +244,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
 if no type could be found. The caller should free the caps returned
-with <a href="../gstreamer-0.11/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -257,11 +255,12 @@
 <hr>
 <div class="refsect2">
 <a name="GstTypeFindHelperGetRangeFunction"></a><h3>GstTypeFindHelperGetRangeFunction ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstTypeFindHelperGetRangeFunction)
-                                                        (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstTypeFindHelperGetRangeFunction)
+                                                        (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 <p>
 This function will be called by <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()"><code class="function">gst_type_find_helper_get_range()</code></a> when
 typefinding functions request to peek at the data of a stream at certain
@@ -270,14 +269,18 @@
 return value.
 </p>
 <p>
-This function is supposed to behave exactly like a <a href="../gstreamer-0.11/GstPad.html#GstPadGetRangeFunction"><span class="type">GstPadGetRangeFunction</span></a>.
+This function is supposed to behave exactly like a <a href="../gstreamer-1.0/GstPad.html#GstPadGetRangeFunction"><span class="type">GstPadGetRangeFunction</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>a <a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> that will handle the getrange request</td>
+<td>a <a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> that will handle the getrange request</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>obj</code></em> or NULL</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
@@ -301,64 +304,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-get-range"></a><h3>gst_type_find_helper_get_range ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_get_range      (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_get_range      (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
-<p>
-Utility function to do pull-based typefinding. Unlike <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()"><code class="function">gst_type_find_helper()</code></a>
-however, this function will use the specified function <em class="parameter"><code>func</code></em> to obtain the
-data needed by the typefind functions, rather than operating on a given
-source pad. This is useful mostly for elements like tag demuxers which
-strip off data at the beginning and/or end of a file and want to typefind
-the stripped data stream before adding their own source pad (the specified
-callback can then call the upstream peer pad with offsets adjusted for the
-tag size, for example).
-</p>
-<p>
-Free-function: gst_caps_unref
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>A <a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> that will be passed as first argument to <em class="parameter"><code>func</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>A generic <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> that will
-be used to access data at random offsets when doing the typefinding. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>The length in bytes</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>prob</code></em> :</span></p></td>
-<td>location to store the probability of the found
-caps, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-type-find-helper-get-range-ext"></a><h3>gst_type_find_helper_get_range_ext ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_get_range_ext  (<em class="parameter"><code><a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint64</span> size</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>,
-                                                         <em class="parameter"><code><a href="../gstreamer-0.11/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
 Utility function to do pull-based typefinding. Unlike <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()"><code class="function">gst_type_find_helper()</code></a>
 however, this function will use the specified function <em class="parameter"><code>func</code></em> to obtain the
@@ -382,10 +333,14 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>A <a href="../gstreamer-0.11/GstObject.html"><span class="type">GstObject</span></a> that will be passed as first argument to <em class="parameter"><code>func</code></em>
+<td>A <a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> that will be passed as first argument to <em class="parameter"><code>func</code></em>
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>obj</code></em> or NULL</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
 <td>A generic <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> that will
 be used to access data at random offsets when doing the typefinding. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
@@ -407,8 +362,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
+Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
diff --git a/docs/libs/html/gstreamer-libs-gstdataprotocol.html b/docs/libs/html/gstreamer-libs-gstdataprotocol.html
deleted file mode 100644
index d8236c7..0000000
--- a/docs/libs/html/gstreamer-libs-gstdataprotocol.html
+++ /dev/null
@@ -1,671 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstdataprotocol</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="gstreamer-dataprotocol.html" title="GStreamer Data Protocol">
-<link rel="prev" href="gstreamer-dataprotocol.html" title="GStreamer Data Protocol">
-<link rel="next" href="gstreamer-net.html" title="GStreamer Network Classes">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gstreamer-dataprotocol.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-dataprotocol.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-net.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gstreamer-libs-gstdataprotocol.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gstreamer-libs-gstdataprotocol.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gstreamer-libs-gstdataprotocol"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gstreamer-libs-gstdataprotocol.top_of_page"></a>gstdataprotocol</span></h2>
-<p>gstdataprotocol — Serialization of caps, buffers and events.</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gstreamer-libs-gstdataprotocol.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">
-#include &lt;gst/dataprotocol/dataprotocol.h&gt;
-
-enum                <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag">GstDPHeaderFlag</a>;
-enum                <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType" title="enum GstDPPayloadType">GstDPPayloadType</a>;
-#define             <a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-LENGTH:CAPS" title="GST_DP_HEADER_LENGTH">GST_DP_HEADER_LENGTH</a>
-enum                <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion">GstDPVersion</a>;
-#define             <a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MAJOR:CAPS" title="GST_DP_VERSION_MAJOR">GST_DP_VERSION_MAJOR</a>
-#define             <a class="link" href="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MINOR:CAPS" title="GST_DP_VERSION_MINOR">GST_DP_VERSION_MINOR</a>
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-init" title="gst_dp_init ()">gst_dp_init</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFromBufferFunction" title="GstDPHeaderFromBufferFunction ()">*GstDPHeaderFromBufferFunction</a>)    (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromCapsFunction" title="GstDPPacketFromCapsFunction ()">*GstDPPacketFromCapsFunction</a>)      (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **payload</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromEventFunction" title="GstDPPacketFromEventFunction ()">*GstDPPacketFromEventFunction</a>)     (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **payload</code></em>);
-                    <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer">GstDPPacketizer</a>;
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="returnvalue">GstDPPacketizer</span></a> *   <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-new" title="gst_dp_packetizer_new ()">gst_dp_packetizer_new</a>               (<em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion"><span class="type">GstDPVersion</span></a> version</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-free" title="gst_dp_packetizer_free ()">gst_dp_packetizer_free</a>              (<em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="type">GstDPPacketizer</span></a> *packetizer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-crc" title="gst_dp_crc ()">gst_dp_crc</a>                          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-length" title="gst_dp_header_payload_length ()">gst_dp_header_payload_length</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType" title="enum GstDPPayloadType"><span class="returnvalue">GstDPPayloadType</span></a>    <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-type" title="gst_dp_header_payload_type ()">gst_dp_header_payload_type</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-buffer-from-header" title="gst_dp_buffer_from_header ()">gst_dp_buffer_from_header</a>           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-caps-from-packet" title="gst_dp_caps_from_packet ()">gst_dp_caps_from_packet</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);
-<a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-event-from-packet" title="gst_dp_event_from_packet ()">gst_dp_event_from_packet</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-header" title="gst_dp_validate_header ()">gst_dp_validate_header</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-payload" title="gst_dp_validate_payload ()">gst_dp_validate_payload</a>             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet" title="gst_dp_validate_packet ()">gst_dp_validate_packet</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-gstdataprotocol.description"></a><h2>Description</h2>
-<p>
-This helper library provides serialization of GstBuffer, GstCaps and
-GstEvent structures.
-</p>
-<p>
-This serialization is useful when GStreamer needs to interface with
-the outside world to transport data between distinct GStreamer pipelines.
-The connections with the outside world generally don't have mechanisms
-to transport properties of these structures.
-</p>
-<p>
-For example, transporting buffers across named pipes or network connections
-doesn't maintain the buffer size and separation.
-</p>
-<p>
-This data protocol assumes a reliable connection-oriented transport, such as
-TCP, a pipe, or a file.  The protocol does not serialize the caps for
-each buffer; instead, it transport the caps only when they change in the
-stream.  This implies that there will always be a caps packet before any
-buffer packets.
-</p>
-<p>
-The versioning of the protocol is independent of GStreamer's version.
-The major number gets incremented, and the minor reset, for incompatible
-changes.  The minor number gets incremented for compatible changes that
-allow clients who do not completely understand the newer protocol version
-to still decode what they do understand.
-</p>
-<p>
-Version 0.2 serializes only a small subset of all events, with a custom
-payload for each type.  Also, all GDP streams start with the initial caps
-packet.
-</p>
-<p>
-Version 1.0 serializes all events by taking the string representation of
-the event as the payload.  In addition, GDP streams can now start with
-events as well, as required by the new data stream model in GStreamer 0.10.
-</p>
-<p>
-Converting buffers, caps and events to GDP buffers is done using a
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="type">GstDPPacketizer</span></a> object and invoking its packetizer functions.
-For backwards-compatibility reasons, the old 0.2 methods are still
-available but deprecated.
-</p>
-<p>
-For reference, this image shows the byte layout of the GDP header:
-</p>
-<p>
-<img src="gdp-header.png">
-</p>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-gstdataprotocol.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstDPHeaderFlag"></a><h3>enum GstDPHeaderFlag</h3>
-<pre class="programlisting">typedef enum {
-  GST_DP_HEADER_FLAG_NONE        = 0,
-  GST_DP_HEADER_FLAG_CRC_HEADER  = (1 &lt;&lt; 0),
-  GST_DP_HEADER_FLAG_CRC_PAYLOAD = (1 &lt;&lt; 1),
-  GST_DP_HEADER_FLAG_CRC         = (1 &lt;&lt; 1) | (1 &lt;&lt; 0),
-} GstDPHeaderFlag;
-</pre>
-<p>
-header flags for the dataprotocol.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-DP-HEADER-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_DP_HEADER_FLAG_NONE</code></span></p></td>
-<td>No flag present.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-HEADER-FLAG-CRC-HEADER:CAPS"></a><span class="term"><code class="literal">GST_DP_HEADER_FLAG_CRC_HEADER</code></span></p></td>
-<td>a header CRC field is present.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-HEADER-FLAG-CRC-PAYLOAD:CAPS"></a><span class="term"><code class="literal">GST_DP_HEADER_FLAG_CRC_PAYLOAD</code></span></p></td>
-<td>a payload CRC field is present.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-HEADER-FLAG-CRC:CAPS"></a><span class="term"><code class="literal">GST_DP_HEADER_FLAG_CRC</code></span></p></td>
-<td>a CRC for header and payload is present.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPPayloadType"></a><h3>enum GstDPPayloadType</h3>
-<pre class="programlisting">typedef enum {
-  GST_DP_PAYLOAD_NONE            = 0,
-  GST_DP_PAYLOAD_BUFFER,
-  GST_DP_PAYLOAD_CAPS,
-  GST_DP_PAYLOAD_EVENT_NONE      = 64,
-} GstDPPayloadType;
-</pre>
-<p>
-The GDP payload types. a <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> payload type is encoded with the
-event type number starting from <em class="parameter"><code>GST_DP_PAYLOAD_EVENT_NONE</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-DP-PAYLOAD-NONE:CAPS"></a><span class="term"><code class="literal">GST_DP_PAYLOAD_NONE</code></span></p></td>
-<td>Invalid payload type.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-PAYLOAD-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_DP_PAYLOAD_BUFFER</code></span></p></td>
-<td>
-<a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> payload packet.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-PAYLOAD-CAPS"></a><span class="term"><code class="literal">GST_DP_PAYLOAD_CAPS</code></span></p></td>
-<td>
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> payload packet.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-PAYLOAD-EVENT-NONE:CAPS"></a><span class="term"><code class="literal">GST_DP_PAYLOAD_EVENT_NONE</code></span></p></td>
-<td>First value of <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> payload packets.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-DP-HEADER-LENGTH:CAPS"></a><h3>GST_DP_HEADER_LENGTH</h3>
-<pre class="programlisting">#define GST_DP_HEADER_LENGTH 62
-</pre>
-<p>
-The header size in bytes.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPVersion"></a><h3>enum GstDPVersion</h3>
-<pre class="programlisting">typedef enum {
-  GST_DP_VERSION_0_2 = 1,
-  GST_DP_VERSION_1_0,
-} GstDPVersion;
-</pre>
-<p>
-The version of the GDP protocol being used.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-DP-VERSION-0-2:CAPS"></a><span class="term"><code class="literal">GST_DP_VERSION_0_2</code></span></p></td>
-<td>protocol version 0.2
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-DP-VERSION-1-0:CAPS"></a><span class="term"><code class="literal">GST_DP_VERSION_1_0</code></span></p></td>
-<td>protocol version 1.0
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-DP-VERSION-MAJOR:CAPS"></a><h3>GST_DP_VERSION_MAJOR</h3>
-<pre class="programlisting">#define GST_DP_VERSION_MAJOR 0
-</pre>
-<p>
-The major version number of the GStreamer Data Protocol.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-DP-VERSION-MINOR:CAPS"></a><h3>GST_DP_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_DP_VERSION_MINOR 2
-</pre>
-<p>
-The minor version number of the GStreamer Data Protocol.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-init"></a><h3>gst_dp_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_dp_init                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Initialize GStreamer Data Protocol library.
-</p>
-<p>
-Should be called before using these functions from source linking
-to this source file.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPHeaderFromBufferFunction"></a><h3>GstDPHeaderFromBufferFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstDPHeaderFromBufferFunction)    (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPPacketFromCapsFunction"></a><h3>GstDPPacketFromCapsFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstDPPacketFromCapsFunction)      (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **payload</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPPacketFromEventFunction"></a><h3>GstDPPacketFromEventFunction ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstDPPacketFromEventFunction)     (<em class="parameter"><code>const <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag" title="enum GstDPHeaderFlag"><span class="type">GstDPHeaderFlag</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **header</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **payload</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstDPPacketizer"></a><h3>GstDPPacketizer</h3>
-<pre class="programlisting">typedef struct {
-  GstDPVersion version;
-
-  GstDPHeaderFromBufferFunction header_from_buffer;
-  GstDPPacketFromCapsFunction packet_from_caps;
-  GstDPPacketFromEventFunction packet_from_event;
-} GstDPPacketizer;
-</pre>
-<p>
-Data protocol packetizer handle.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion"><span class="type">GstDPVersion</span></a> <em class="structfield"><code><a name="GstDPPacketizer.version"></a>version</code></em>;</span></p></td>
-<td>the <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion"><span class="type">GstDPVersion</span></a> of the protocol to be used</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFromBufferFunction" title="GstDPHeaderFromBufferFunction ()"><span class="type">GstDPHeaderFromBufferFunction</span></a> <em class="structfield"><code><a name="GstDPPacketizer.header-from-buffer"></a>header_from_buffer</code></em>;</span></p></td>
-<td>buffer serializer function</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromCapsFunction" title="GstDPPacketFromCapsFunction ()"><span class="type">GstDPPacketFromCapsFunction</span></a> <em class="structfield"><code><a name="GstDPPacketizer.packet-from-caps"></a>packet_from_caps</code></em>;</span></p></td>
-<td>caps serializer function</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromEventFunction" title="GstDPPacketFromEventFunction ()"><span class="type">GstDPPacketFromEventFunction</span></a> <em class="structfield"><code><a name="GstDPPacketizer.packet-from-event"></a>packet_from_event</code></em>;</span></p></td>
-<td>event serializer function</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-packetizer-new"></a><h3>gst_dp_packetizer_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="returnvalue">GstDPPacketizer</span></a> *   gst_dp_packetizer_new               (<em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion"><span class="type">GstDPVersion</span></a> version</code></em>);</pre>
-<p>
-Creates a new packetizer.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPVersion" title="enum GstDPVersion"><span class="type">GstDPVersion</span></a> of the protocol to packetize for.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="type">GstDPPacketizer</span></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-packetizer-free"></a><h3>gst_dp_packetizer_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_dp_packetizer_free              (<em class="parameter"><code><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="type">GstDPPacketizer</span></a> *packetizer</code></em>);</pre>
-<p>
-Free the given packetizer.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>packetizer</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer" title="GstDPPacketizer"><span class="type">GstDPPacketizer</span></a> to free.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-crc"></a><h3>gst_dp_crc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>             gst_dp_crc                          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *buffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
-<p>
-Calculate a CRC for the given buffer over the given number of bytes.
-This is only provided for verification purposes; typical GDP users
-will not need this function.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>array of bytes</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the length of <em class="parameter"><code>buffer</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a two-byte CRC checksum.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-header-payload-length"></a><h3>gst_dp_header_payload_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>             gst_dp_header_payload_length        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);</pre>
-<p>
-Get the length of the payload described by <em class="parameter"><code>header</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte header of the packet array</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the length of the payload this header describes.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-header-payload-type"></a><h3>gst_dp_header_payload_type ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType" title="enum GstDPPayloadType"><span class="returnvalue">GstDPPayloadType</span></a>    gst_dp_header_payload_type          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);</pre>
-<p>
-Get the type of the payload described by <em class="parameter"><code>header</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte header of the packet array</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType" title="enum GstDPPayloadType"><span class="type">GstDPPayloadType</span></a> the payload this header describes.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-buffer-from-header"></a><h3>gst_dp_buffer_from_header ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_dp_buffer_from_header           (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);</pre>
-<p>
-Creates a newly allocated <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> from the given header.
-The buffer data needs to be copied into it before validating.
-</p>
-<p>
-Use this function if you want to pre-allocate a buffer based on the
-packet header to read the packet payload in to.
-</p>
-<p>
-This function does not check the header passed to it, use
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-header" title="gst_dp_validate_header ()"><code class="function">gst_dp_validate_header()</code></a> first if the header data is unchecked.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> if the buffer was successfully created, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-caps-from-packet"></a><h3>gst_dp_caps_from_packet ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_dp_caps_from_packet             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);</pre>
-<p>
-Creates a newly allocated <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> from the given packet.
-</p>
-<p>
-This function does not check the arguments passed to it, use
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet" title="gst_dp_validate_packet ()"><code class="function">gst_dp_validate_packet()</code></a> first if the header and payload data are
-unchecked.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
-<td>the byte array of the packet payload</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the caps represented in the packet,
-or NULL if the packet could not be converted.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-event-from-packet"></a><h3>gst_dp_event_from_packet ()</h3>
-<pre class="programlisting"><a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_dp_event_from_packet            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);</pre>
-<p>
-Creates a newly allocated <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> from the given packet.
-</p>
-<p>
-This function does not check the arguments passed to it, use
-<a class="link" href="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet" title="gst_dp_validate_packet ()"><code class="function">gst_dp_validate_packet()</code></a> first if the header and payload data are
-unchecked.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
-<td>the byte array of the packet payload</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> if the event was successfully created,
-or NULL if an event could not be read from the payload.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-validate-header"></a><h3>gst_dp_validate_header ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_dp_validate_header              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>);</pre>
-<p>
-Validates the given packet header by checking the CRC checksum.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the CRC matches, or no CRC checksum is present.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-validate-payload"></a><h3>gst_dp_validate_payload ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_dp_validate_payload             (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);</pre>
-<p>
-Validates the given packet payload using the given packet header
-by checking the CRC checksum.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
-<td>the byte array of the packet payload</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the CRC matches, or no CRC checksum is present.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-dp-validate-packet"></a><h3>gst_dp_validate_packet ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_dp_validate_packet              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> header_length</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *header</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *payload</code></em>);</pre>
-<p>
-Validates the given packet by checking version information and checksums.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header_length</code></em> :</span></p></td>
-<td>the length of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
-<td>the byte array of the packet header</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>payload</code></em> :</span></p></td>
-<td>the byte array of the packet payload</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet validates.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gstreamer-libs-gstdataprotocol.see-also"></a><h2>See Also</h2>
-<a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>, <a href="../gstreamer-0.11/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a>, <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs.devhelp2 b/docs/libs/html/gstreamer-libs.devhelp2
index f546d5c..fc20d81 100644
--- a/docs/libs/html/gstreamer-libs.devhelp2
+++ b/docs/libs/html/gstreamer-libs.devhelp2
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer 0.11 Library Reference Manual" link="index.html" author="" name="gstreamer-libs" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer 1.0 Library Reference Manual" link="index.html" author="" name="gstreamer-libs" version="2" language="c">
   <chapters>
     <sub name="GStreamer Libraries" link="gstreamer-libs.html">
       <sub name="GStreamer Base and Utillity Classes" link="gstreamer-base.html">
@@ -13,19 +13,14 @@
         <sub name="GstBitReader" link="gstreamer-libs-GstBitReader.html"/>
         <sub name="GstByteReader" link="gstreamer-libs-GstByteReader.html"/>
         <sub name="GstByteWriter" link="gstreamer-libs-GstByteWriter.html"/>
-        <sub name="GstCollectPads" link="GstCollectPads.html"/>
+        <sub name="GstCollectPads2" link="GstCollectPads2.html"/>
         <sub name="GstTypeFindHelper" link="gstreamer-libs-GstTypeFindHelper.html"/>
-        <sub name="GstDataQueue" link="gstreamer-libs-GstDataQueue.html"/>
       </sub>
       <sub name="GStreamer Dynamic Parameter Control" link="gstreamer-control.html">
-        <sub name="GstController" link="GstController.html"/>
-        <sub name="GstControlSource" link="GstControlSource.html"/>
+        <sub name="GstTimedValueControlSource" link="GstTimedValueControlSource.html"/>
         <sub name="GstInterpolationControlSource" link="GstInterpolationControlSource.html"/>
         <sub name="GstLFOControlSource" link="GstLFOControlSource.html"/>
-        <sub name="GstControllerGObject" link="gstreamer-libs-GstControllerGObject.html"/>
-      </sub>
-      <sub name="GStreamer Data Protocol" link="gstreamer-dataprotocol.html">
-        <sub name="gstdataprotocol" link="gstreamer-libs-gstdataprotocol.html"/>
+        <sub name="GstTriggerControlSource" link="GstTriggerControlSource.html"/>
       </sub>
       <sub name="GStreamer Network Classes" link="gstreamer-net.html">
         <sub name="GstNetClientClock" link="GstNetClientClock.html"/>
@@ -53,7 +48,7 @@
     <keyword type="function" name="gst_base_parse_set_syncable ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable" since="0.10.33"/>
     <keyword type="function" name="gst_base_parse_set_has_timing_info ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-has-timing-info" since="0.10.33"/>
     <keyword type="function" name="gst_base_parse_set_frame_rate ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-frame-rate" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_latency ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" since="0.10.34"/>
+    <keyword type="function" name="gst_base_parse_set_latency ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" since="0.10.36"/>
     <keyword type="function" name="gst_base_parse_convert_default ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default" since="0.10.33"/>
     <keyword type="function" name="gst_base_parse_add_index_entry ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry" since="0.10.33"/>
     <keyword type="struct" name="GstBaseParseFrame" link="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" since="0.10.33"/>
@@ -66,11 +61,10 @@
     <keyword type="macro" name="GST_BASE_PARSE_FLAG_DRAINING" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_FLAG_LOST_SYNC" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_FLOW_DROPPED" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS" since="0.10.33"/>
-    <keyword type="macro" name="GST_BASE_PARSE_FLOW_QUEUED" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-QUEUED:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" since="0.10.33"/>
     <keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" since="0.10.33"/>
-    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#id523686"/>
+    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp9228272"/>
     <keyword type="struct" name="struct GstBaseSrc" link="GstBaseSrc.html#GstBaseSrc-struct"/>
     <keyword type="struct" name="struct GstBaseSrcClass" link="GstBaseSrc.html#GstBaseSrcClass"/>
     <keyword type="enum" name="enum GstBaseSrcFlags" link="GstBaseSrc.html#GstBaseSrcFlags"/>
@@ -83,7 +77,7 @@
     <keyword type="function" name="gst_base_src_set_blocksize ()" link="GstBaseSrc.html#gst-base-src-set-blocksize" since="0.10.22"/>
     <keyword type="function" name="gst_base_src_get_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-get-do-timestamp" since="0.10.15"/>
     <keyword type="function" name="gst_base_src_set_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-set-do-timestamp" since="0.10.15"/>
-    <keyword type="function" name="gst_base_src_set_dynamic_size ()" link="GstBaseSrc.html#gst-base-src-set-dynamic-size" since="0.10.35"/>
+    <keyword type="function" name="gst_base_src_set_dynamic_size ()" link="GstBaseSrc.html#gst-base-src-set-dynamic-size" since="0.10.36"/>
     <keyword type="function" name="gst_base_src_new_seamless_segment ()" link="GstBaseSrc.html#gst-base-src-new-seamless-segment" since="0.10.26"/>
     <keyword type="function" name="gst_base_src_set_caps ()" link="GstBaseSrc.html#gst-base-src-set-caps"/>
     <keyword type="macro" name="GST_BASE_SRC_PAD()" link="GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS"/>
@@ -111,9 +105,7 @@
     <keyword type="function" name="gst_base_sink_get_ts_offset ()" link="GstBaseSink.html#gst-base-sink-get-ts-offset" since="0.10.15"/>
     <keyword type="function" name="gst_base_sink_set_render_delay ()" link="GstBaseSink.html#gst-base-sink-set-render-delay" since="0.10.21"/>
     <keyword type="function" name="gst_base_sink_get_render_delay ()" link="GstBaseSink.html#gst-base-sink-get-render-delay" since="0.10.21"/>
-    <keyword type="function" name="gst_base_sink_set_last_buffer_enabled ()" link="GstBaseSink.html#gst-base-sink-set-last-buffer-enabled" since="0.10.30"/>
-    <keyword type="function" name="gst_base_sink_is_last_buffer_enabled ()" link="GstBaseSink.html#gst-base-sink-is-last-buffer-enabled" since="0.10.30"/>
-    <keyword type="function" name="gst_base_sink_get_last_buffer ()" link="GstBaseSink.html#gst-base-sink-get-last-buffer" since="0.10.15"/>
+    <keyword type="function" name="gst_base_sink_get_last_sample ()" link="GstBaseSink.html#gst-base-sink-get-last-sample" since="0.10.15"/>
     <keyword type="function" name="gst_base_sink_set_blocksize ()" link="GstBaseSink.html#gst-base-sink-set-blocksize" since="0.10.22"/>
     <keyword type="function" name="gst_base_sink_get_blocksize ()" link="GstBaseSink.html#gst-base-sink-get-blocksize" since="0.10.22"/>
     <keyword type="function" name="gst_base_sink_get_throttle_time ()" link="GstBaseSink.html#gst-base-sink-get-throttle-time" since="0.10.33"/>
@@ -124,22 +116,21 @@
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_BROADCAST()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-BROADCAST:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_LOCK()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-LOCK:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_SIGNAL()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-SIGNAL:CAPS"/>
-    <keyword type="macro" name="GST_BASE_SINK_PREROLL_TIMED_WAIT()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_TRYLOCK()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-TRYLOCK:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_UNLOCK()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-UNLOCK:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_PREROLL_WAIT()" link="GstBaseSink.html#GST-BASE-SINK-PREROLL-WAIT:CAPS"/>
     <keyword type="property" name="The &quot;async&quot; property" link="GstBaseSink.html#GstBaseSink--async"/>
     <keyword type="property" name="The &quot;blocksize&quot; property" link="GstBaseSink.html#GstBaseSink--blocksize"/>
-    <keyword type="property" name="The &quot;enable-last-buffer&quot; property" link="GstBaseSink.html#GstBaseSink--enable-last-buffer"/>
-    <keyword type="property" name="The &quot;last-buffer&quot; property" link="GstBaseSink.html#GstBaseSink--last-buffer"/>
+    <keyword type="property" name="The &quot;enable-last-sample&quot; property" link="GstBaseSink.html#GstBaseSink--enable-last-sample"/>
+    <keyword type="property" name="The &quot;last-sample&quot; property" link="GstBaseSink.html#GstBaseSink--last-sample"/>
     <keyword type="property" name="The &quot;max-lateness&quot; property" link="GstBaseSink.html#GstBaseSink--max-lateness"/>
     <keyword type="property" name="The &quot;qos&quot; property" link="GstBaseSink.html#GstBaseSink--qos"/>
     <keyword type="property" name="The &quot;render-delay&quot; property" link="GstBaseSink.html#GstBaseSink--render-delay"/>
     <keyword type="property" name="The &quot;sync&quot; property" link="GstBaseSink.html#GstBaseSink--sync"/>
     <keyword type="property" name="The &quot;throttle-time&quot; property" link="GstBaseSink.html#GstBaseSink--throttle-time"/>
     <keyword type="property" name="The &quot;ts-offset&quot; property" link="GstBaseSink.html#GstBaseSink--ts-offset"/>
-    <keyword type="" name="Use Cases" link="GstBaseTransform.html#id529984"/>
-    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#id494548"/>
+    <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp8766032"/>
+    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp10669744"/>
     <keyword type="struct" name="struct GstBaseTransform" link="GstBaseTransform.html#GstBaseTransform-struct"/>
     <keyword type="struct" name="struct GstBaseTransformClass" link="GstBaseTransform.html#GstBaseTransformClass"/>
     <keyword type="function" name="gst_base_transform_is_passthrough ()" link="GstBaseTransform.html#gst-base-transform-is-passthrough"/>
@@ -150,15 +141,11 @@
     <keyword type="function" name="gst_base_transform_set_qos_enabled ()" link="GstBaseTransform.html#gst-base-transform-set-qos-enabled" since="0.10.5"/>
     <keyword type="function" name="gst_base_transform_update_qos ()" link="GstBaseTransform.html#gst-base-transform-update-qos" since="0.10.5"/>
     <keyword type="function" name="gst_base_transform_set_gap_aware ()" link="GstBaseTransform.html#gst-base-transform-set-gap-aware" since="0.10.16"/>
-    <keyword type="function" name="gst_base_transform_suggest ()" link="GstBaseTransform.html#gst-base-transform-suggest" since="0.10.21"/>
-    <keyword type="function" name="gst_base_transform_reconfigure ()" link="GstBaseTransform.html#gst-base-transform-reconfigure" since="0.10.21"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SINK_NAME" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SRC_NAME" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SINK_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS" since="0.10.4"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SRC_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS" since="0.10.4"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_FLOW_DROPPED" link="GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" since="0.10.13"/>
-    <keyword type="macro" name="GST_BASE_TRANSFORM_LOCK()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-LOCK:CAPS" since="0.10.13"/>
-    <keyword type="macro" name="GST_BASE_TRANSFORM_UNLOCK()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-UNLOCK:CAPS" since="0.10.13"/>
     <keyword type="property" name="The &quot;qos&quot; property" link="GstBaseTransform.html#GstBaseTransform--qos"/>
     <keyword type="struct" name="struct GstPushSrc" link="GstPushSrc.html#GstPushSrc-struct"/>
     <keyword type="struct" name="struct GstAdapter" link="GstAdapter.html#GstAdapter-struct"/>
@@ -174,7 +161,8 @@
     <keyword type="function" name="gst_adapter_take ()" link="GstAdapter.html#gst-adapter-take"/>
     <keyword type="function" name="gst_adapter_take_buffer ()" link="GstAdapter.html#gst-adapter-take-buffer" since="0.10.6"/>
     <keyword type="function" name="gst_adapter_take_list ()" link="GstAdapter.html#gst-adapter-take-list" since="0.10.31"/>
-    <keyword type="function" name="gst_adapter_prev_timestamp ()" link="GstAdapter.html#gst-adapter-prev-timestamp" since="0.10.24"/>
+    <keyword type="function" name="gst_adapter_prev_pts ()" link="GstAdapter.html#gst-adapter-prev-pts"/>
+    <keyword type="function" name="gst_adapter_prev_dts ()" link="GstAdapter.html#gst-adapter-prev-dts"/>
     <keyword type="function" name="gst_adapter_masked_scan_uint32 ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32" since="0.10.24"/>
     <keyword type="function" name="gst_adapter_masked_scan_uint32_peek ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32-peek" since="0.10.30"/>
     <keyword type="struct" name="GstBitReader" link="gstreamer-libs-GstBitReader.html#GstBitReader"/>
@@ -394,91 +382,63 @@
     <keyword type="function" name="gst_byte_writer_put_float64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le-unchecked" since="0.10.31"/>
     <keyword type="function" name="gst_byte_writer_put_data_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked" since="0.10.31"/>
     <keyword type="function" name="gst_byte_writer_fill_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked" since="0.10.31"/>
-    <keyword type="struct" name="struct GstCollectData" link="GstCollectPads.html#GstCollectData"/>
-    <keyword type="struct" name="struct GstCollectPads" link="GstCollectPads.html#GstCollectPads-struct"/>
-    <keyword type="function" name="GstCollectPadsFunction ()" link="GstCollectPads.html#GstCollectPadsFunction"/>
-    <keyword type="function" name="GstCollectPadsClipFunction ()" link="GstCollectPads.html#GstCollectPadsClipFunction" since="0.10.26"/>
-    <keyword type="function" name="GstCollectDataDestroyNotify ()" link="GstCollectPads.html#GstCollectDataDestroyNotify" since="0.10.12"/>
-    <keyword type="function" name="gst_collect_pads_new ()" link="GstCollectPads.html#gst-collect-pads-new"/>
-    <keyword type="function" name="gst_collect_pads_set_function ()" link="GstCollectPads.html#gst-collect-pads-set-function"/>
-    <keyword type="function" name="gst_collect_pads_set_clip_function ()" link="GstCollectPads.html#gst-collect-pads-set-clip-function" since="0.10.26"/>
-    <keyword type="function" name="gst_collect_pads_add_pad ()" link="GstCollectPads.html#gst-collect-pads-add-pad"/>
-    <keyword type="function" name="gst_collect_pads_add_pad_full ()" link="GstCollectPads.html#gst-collect-pads-add-pad-full" since="0.10.12"/>
-    <keyword type="function" name="gst_collect_pads_remove_pad ()" link="GstCollectPads.html#gst-collect-pads-remove-pad"/>
-    <keyword type="function" name="gst_collect_pads_is_active ()" link="GstCollectPads.html#gst-collect-pads-is-active"/>
-    <keyword type="function" name="gst_collect_pads_collect ()" link="GstCollectPads.html#gst-collect-pads-collect"/>
-    <keyword type="function" name="gst_collect_pads_collect_range ()" link="GstCollectPads.html#gst-collect-pads-collect-range"/>
-    <keyword type="function" name="gst_collect_pads_start ()" link="GstCollectPads.html#gst-collect-pads-start"/>
-    <keyword type="function" name="gst_collect_pads_stop ()" link="GstCollectPads.html#gst-collect-pads-stop"/>
-    <keyword type="function" name="gst_collect_pads_set_flushing ()" link="GstCollectPads.html#gst-collect-pads-set-flushing" since="0.10.7."/>
-    <keyword type="function" name="gst_collect_pads_peek ()" link="GstCollectPads.html#gst-collect-pads-peek"/>
-    <keyword type="function" name="gst_collect_pads_pop ()" link="GstCollectPads.html#gst-collect-pads-pop"/>
-    <keyword type="function" name="gst_collect_pads_available ()" link="GstCollectPads.html#gst-collect-pads-available"/>
-    <keyword type="function" name="gst_collect_pads_read_buffer ()" link="GstCollectPads.html#gst-collect-pads-read-buffer" since="0.10.18"/>
-    <keyword type="function" name="gst_collect_pads_take_buffer ()" link="GstCollectPads.html#gst-collect-pads-take-buffer" since="0.10.18"/>
-    <keyword type="function" name="gst_collect_pads_flush ()" link="GstCollectPads.html#gst-collect-pads-flush"/>
+    <keyword type="struct" name="struct GstCollectPads2" link="GstCollectPads2.html#GstCollectPads2-struct"/>
+    <keyword type="struct" name="struct GstCollectData2" link="GstCollectPads2.html#GstCollectData2" since="0.10.36"/>
+    <keyword type="function" name="GstCollectData2DestroyNotify ()" link="GstCollectPads2.html#GstCollectData2DestroyNotify" since="0.10.36"/>
+    <keyword type="function" name="GstCollectPads2BufferFunction ()" link="GstCollectPads2.html#GstCollectPads2BufferFunction" since="0.10.36"/>
+    <keyword type="function" name="GstCollectPads2CompareFunction ()" link="GstCollectPads2.html#GstCollectPads2CompareFunction" since="0.10.36"/>
+    <keyword type="function" name="GstCollectPads2EventFunction ()" link="GstCollectPads2.html#GstCollectPads2EventFunction" since="0.10.36"/>
+    <keyword type="function" name="GstCollectPads2ClipFunction ()" link="GstCollectPads2.html#GstCollectPads2ClipFunction" since="0.10.36"/>
+    <keyword type="function" name="GstCollectPads2Function ()" link="GstCollectPads2.html#GstCollectPads2Function" since="0.10.36"/>
+    <keyword type="enum" name="enum GstCollectPads2StateFlags" link="GstCollectPads2.html#GstCollectPads2StateFlags" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STATE()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STATE_IS_SET()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-IS-SET:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STATE_SET()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-SET:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STATE_UNSET()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-UNSET:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_GET_STREAM_LOCK()" link="GstCollectPads2.html#GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STREAM_LOCK()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-LOCK:CAPS" since="0.10.36"/>
+    <keyword type="macro" name="GST_COLLECT_PADS2_STREAM_UNLOCK()" link="GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_new ()" link="GstCollectPads2.html#gst-collect-pads2-new" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_add_pad ()" link="GstCollectPads2.html#gst-collect-pads2-add-pad" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_add_pad_full ()" link="GstCollectPads2.html#gst-collect-pads2-add-pad-full" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_remove_pad ()" link="GstCollectPads2.html#gst-collect-pads2-remove-pad" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_start ()" link="GstCollectPads2.html#gst-collect-pads2-start" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_stop ()" link="GstCollectPads2.html#gst-collect-pads2-stop" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_available ()" link="GstCollectPads2.html#gst-collect-pads2-available" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_is_active ()" link="GstCollectPads2.html#gst-collect-pads2-is-active" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_collect ()" link="GstCollectPads2.html#gst-collect-pads2-collect" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_collect_range ()" link="GstCollectPads2.html#gst-collect-pads2-collect-range" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_flush ()" link="GstCollectPads2.html#gst-collect-pads2-flush" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_peek ()" link="GstCollectPads2.html#gst-collect-pads2-peek" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_pop ()" link="GstCollectPads2.html#gst-collect-pads2-pop" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_read_buffer ()" link="GstCollectPads2.html#gst-collect-pads2-read-buffer" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_take_buffer ()" link="GstCollectPads2.html#gst-collect-pads2-take-buffer" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_buffer_function ()" link="GstCollectPads2.html#gst-collect-pads2-set-buffer-function" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_compare_function ()" link="GstCollectPads2.html#gst-collect-pads2-set-compare-function" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_event_function ()" link="GstCollectPads2.html#gst-collect-pads2-set-event-function" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_clip_function ()" link="GstCollectPads2.html#gst-collect-pads2-set-clip-function" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_flushing ()" link="GstCollectPads2.html#gst-collect-pads2-set-flushing" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_function ()" link="GstCollectPads2.html#gst-collect-pads2-set-function" since="0.10.36"/>
+    <keyword type="function" name="gst_collect_pads2_set_waiting ()" link="GstCollectPads2.html#gst-collect-pads2-set-waiting" since="0.10.36"/>
     <keyword type="function" name="gst_type_find_helper ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper"/>
     <keyword type="function" name="gst_type_find_helper_for_buffer ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer"/>
     <keyword type="function" name="gst_type_find_helper_for_extension ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" since="0.10.23"/>
     <keyword type="function" name="gst_type_find_helper_for_data ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data"/>
     <keyword type="function" name="GstTypeFindHelperGetRangeFunction ()" link="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction"/>
-    <keyword type="function" name="gst_type_find_helper_get_range ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range"/>
-    <keyword type="function" name="gst_type_find_helper_get_range_ext ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range-ext" since="0.10.26"/>
-    <keyword type="struct" name="struct GstDataQueue" link="gstreamer-libs-GstDataQueue.html#GstDataQueue" since="0.10.11"/>
-    <keyword type="struct" name="struct GstDataQueueSize" link="gstreamer-libs-GstDataQueue.html#GstDataQueueSize" since="0.10.11"/>
-    <keyword type="function" name="GstDataQueueCheckFullFunction ()" link="gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction" since="0.10.11"/>
-    <keyword type="struct" name="struct GstDataQueueItem" link="gstreamer-libs-GstDataQueue.html#GstDataQueueItem" since="0.10.11"/>
-    <keyword type="function" name="GstDataQueueEmptyCallback ()" link="gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback"/>
-    <keyword type="function" name="GstDataQueueFullCallback ()" link="gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback"/>
-    <keyword type="function" name="gst_data_queue_new ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-new"/>
-    <keyword type="function" name="gst_data_queue_new_full ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-new-full" since="0.10.26"/>
-    <keyword type="function" name="gst_data_queue_push ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-push" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_pop ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-pop" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_flush ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-flush" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_set_flushing ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_drop_head ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_is_full ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_is_empty ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_get_level ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level" since="0.10.11"/>
-    <keyword type="function" name="gst_data_queue_limits_changed ()" link="gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed" since="0.10.11"/>
-    <keyword type="struct" name="struct GstController" link="GstController.html#GstController-struct"/>
-    <keyword type="function" name="gst_controller_init ()" link="GstController.html#gst-controller-init"/>
-    <keyword type="function" name="gst_controller_new ()" link="GstController.html#gst-controller-new"/>
-    <keyword type="function" name="gst_controller_new_list ()" link="GstController.html#gst-controller-new-list"/>
-    <keyword type="function" name="gst_controller_new_valist ()" link="GstController.html#gst-controller-new-valist"/>
-    <keyword type="function" name="gst_controller_remove_properties ()" link="GstController.html#gst-controller-remove-properties"/>
-    <keyword type="function" name="gst_controller_remove_properties_list ()" link="GstController.html#gst-controller-remove-properties-list"/>
-    <keyword type="function" name="gst_controller_remove_properties_valist ()" link="GstController.html#gst-controller-remove-properties-valist"/>
-    <keyword type="function" name="gst_controller_set_disabled ()" link="GstController.html#gst-controller-set-disabled" since="0.10.14"/>
-    <keyword type="function" name="gst_controller_set_property_disabled ()" link="GstController.html#gst-controller-set-property-disabled" since="0.10.14"/>
-    <keyword type="function" name="gst_controller_suggest_next_sync ()" link="GstController.html#gst-controller-suggest-next-sync" since="0.10.13"/>
-    <keyword type="function" name="gst_controller_sync_values ()" link="GstController.html#gst-controller-sync-values"/>
-    <keyword type="function" name="gst_controller_get_control_source ()" link="GstController.html#gst-controller-get-control-source" since="0.10.14"/>
-    <keyword type="function" name="gst_controller_set_control_source ()" link="GstController.html#gst-controller-set-control-source" since="0.10.14"/>
-    <keyword type="function" name="gst_controller_get ()" link="GstController.html#gst-controller-get"/>
-    <keyword type="function" name="gst_controller_get_value_arrays ()" link="GstController.html#gst-controller-get-value-arrays"/>
-    <keyword type="function" name="gst_controller_get_value_array ()" link="GstController.html#gst-controller-get-value-array"/>
-    <keyword type="property" name="The &quot;control-rate&quot; property" link="GstController.html#GstController--control-rate"/>
-    <keyword type="struct" name="struct GstControlSource" link="GstControlSource.html#GstControlSource-struct"/>
-    <keyword type="struct" name="struct GstControlSourceClass" link="GstControlSource.html#GstControlSourceClass"/>
-    <keyword type="function" name="GstControlSourceBind ()" link="GstControlSource.html#GstControlSourceBind"/>
-    <keyword type="function" name="GstControlSourceGetValue ()" link="GstControlSource.html#GstControlSourceGetValue"/>
-    <keyword type="function" name="GstControlSourceGetValueArray ()" link="GstControlSource.html#GstControlSourceGetValueArray"/>
-    <keyword type="struct" name="struct GstTimedValue" link="GstControlSource.html#GstTimedValue"/>
-    <keyword type="struct" name="struct GstValueArray" link="GstControlSource.html#GstValueArray"/>
-    <keyword type="function" name="gst_control_source_bind ()" link="GstControlSource.html#gst-control-source-bind"/>
-    <keyword type="function" name="gst_control_source_get_value ()" link="GstControlSource.html#gst-control-source-get-value"/>
-    <keyword type="function" name="gst_control_source_get_value_array ()" link="GstControlSource.html#gst-control-source-get-value-array"/>
+    <keyword type="function" name="gst_type_find_helper_get_range ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" since="0.10.26"/>
+    <keyword type="struct" name="struct GstTimedValueControlSource" link="GstTimedValueControlSource.html#GstTimedValueControlSource-struct"/>
+    <keyword type="function" name="gst_timed_value_control_source_find_control_point_iter ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter"/>
+    <keyword type="function" name="gst_timed_value_control_source_set ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-set"/>
+    <keyword type="function" name="gst_timed_value_control_source_set_from_list ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-set-from-list"/>
+    <keyword type="function" name="gst_timed_value_control_source_get_all ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-get-all"/>
+    <keyword type="function" name="gst_timed_value_control_source_unset ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-unset"/>
+    <keyword type="function" name="gst_timed_value_control_source_unset_all ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-unset-all"/>
+    <keyword type="function" name="gst_timed_value_control_source_get_count ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-get-count"/>
+    <keyword type="function" name="gst_timed_value_control_invalidate_cache ()" link="GstTimedValueControlSource.html#gst-timed-value-control-invalidate-cache"/>
     <keyword type="struct" name="struct GstInterpolationControlSource" link="GstInterpolationControlSource.html#GstInterpolationControlSource-struct"/>
-    <keyword type="enum" name="enum GstInterpolateMode" link="GstInterpolationControlSource.html#GstInterpolateMode"/>
+    <keyword type="enum" name="enum GstInterpolationMode" link="GstInterpolationControlSource.html#GstInterpolationMode"/>
     <keyword type="function" name="gst_interpolation_control_source_new ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-new"/>
-    <keyword type="function" name="gst_interpolation_control_source_set ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-set"/>
-    <keyword type="function" name="gst_interpolation_control_source_set_from_list ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-set-from-list"/>
-    <keyword type="function" name="gst_interpolation_control_source_set_interpolation_mode ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-set-interpolation-mode"/>
-    <keyword type="function" name="gst_interpolation_control_source_get_all ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-get-all"/>
-    <keyword type="function" name="gst_interpolation_control_source_unset ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-unset"/>
-    <keyword type="function" name="gst_interpolation_control_source_unset_all ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-unset-all"/>
-    <keyword type="function" name="gst_interpolation_control_source_get_count ()" link="GstInterpolationControlSource.html#gst-interpolation-control-source-get-count"/>
+    <keyword type="property" name="The &quot;mode&quot; property" link="GstInterpolationControlSource.html#GstInterpolationControlSource--mode"/>
     <keyword type="struct" name="struct GstLFOControlSource" link="GstLFOControlSource.html#GstLFOControlSource-struct"/>
     <keyword type="enum" name="enum GstLFOWaveform" link="GstLFOControlSource.html#GstLFOWaveform"/>
     <keyword type="function" name="gst_lfo_control_source_new ()" link="GstLFOControlSource.html#gst-lfo-control-source-new"/>
@@ -487,40 +447,9 @@
     <keyword type="property" name="The &quot;offset&quot; property" link="GstLFOControlSource.html#GstLFOControlSource--offset"/>
     <keyword type="property" name="The &quot;timeshift&quot; property" link="GstLFOControlSource.html#GstLFOControlSource--timeshift"/>
     <keyword type="property" name="The &quot;waveform&quot; property" link="GstLFOControlSource.html#GstLFOControlSource--waveform"/>
-    <keyword type="function" name="gst_object_control_properties ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-control-properties" since="0.9"/>
-    <keyword type="function" name="gst_object_uncontrol_properties ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-uncontrol-properties" since="0.9"/>
-    <keyword type="function" name="gst_object_get_controller ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-get-controller" since="0.9"/>
-    <keyword type="function" name="gst_object_set_controller ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-set-controller" since="0.9"/>
-    <keyword type="function" name="gst_object_suggest_next_sync ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-suggest-next-sync" since="0.10.13"/>
-    <keyword type="function" name="gst_object_sync_values ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-sync-values" since="0.9"/>
-    <keyword type="function" name="gst_object_get_control_source ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-source" since="0.10.14"/>
-    <keyword type="function" name="gst_object_set_control_source ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-source" since="0.10.14"/>
-    <keyword type="function" name="gst_object_get_value_arrays ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-arrays" since="0.9"/>
-    <keyword type="function" name="gst_object_get_value_array ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-get-value-array" since="0.9"/>
-    <keyword type="function" name="gst_object_get_control_rate ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-get-control-rate" since="0.10.10"/>
-    <keyword type="function" name="gst_object_set_control_rate ()" link="gstreamer-libs-GstControllerGObject.html#gst-object-set-control-rate" since="0.10.10"/>
-    <keyword type="enum" name="enum GstDPHeaderFlag" link="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag"/>
-    <keyword type="enum" name="enum GstDPPayloadType" link="gstreamer-libs-gstdataprotocol.html#GstDPPayloadType"/>
-    <keyword type="macro" name="GST_DP_HEADER_LENGTH" link="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-LENGTH:CAPS"/>
-    <keyword type="enum" name="enum GstDPVersion" link="gstreamer-libs-gstdataprotocol.html#GstDPVersion"/>
-    <keyword type="macro" name="GST_DP_VERSION_MAJOR" link="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MAJOR:CAPS"/>
-    <keyword type="macro" name="GST_DP_VERSION_MINOR" link="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MINOR:CAPS"/>
-    <keyword type="function" name="gst_dp_init ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-init"/>
-    <keyword type="function" name="GstDPHeaderFromBufferFunction ()" link="gstreamer-libs-gstdataprotocol.html#GstDPHeaderFromBufferFunction"/>
-    <keyword type="function" name="GstDPPacketFromCapsFunction ()" link="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromCapsFunction"/>
-    <keyword type="function" name="GstDPPacketFromEventFunction ()" link="gstreamer-libs-gstdataprotocol.html#GstDPPacketFromEventFunction"/>
-    <keyword type="struct" name="GstDPPacketizer" link="gstreamer-libs-gstdataprotocol.html#GstDPPacketizer"/>
-    <keyword type="function" name="gst_dp_packetizer_new ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-new"/>
-    <keyword type="function" name="gst_dp_packetizer_free ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-free"/>
-    <keyword type="function" name="gst_dp_crc ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-crc"/>
-    <keyword type="function" name="gst_dp_header_payload_length ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-length"/>
-    <keyword type="function" name="gst_dp_header_payload_type ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-type"/>
-    <keyword type="function" name="gst_dp_buffer_from_header ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-buffer-from-header"/>
-    <keyword type="function" name="gst_dp_caps_from_packet ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-caps-from-packet"/>
-    <keyword type="function" name="gst_dp_event_from_packet ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-event-from-packet"/>
-    <keyword type="function" name="gst_dp_validate_header ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-header"/>
-    <keyword type="function" name="gst_dp_validate_payload ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-payload"/>
-    <keyword type="function" name="gst_dp_validate_packet ()" link="gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet"/>
+    <keyword type="struct" name="struct GstTriggerControlSource" link="GstTriggerControlSource.html#GstTriggerControlSource-struct"/>
+    <keyword type="function" name="gst_trigger_control_source_new ()" link="GstTriggerControlSource.html#gst-trigger-control-source-new"/>
+    <keyword type="property" name="The &quot;tolerance&quot; property" link="GstTriggerControlSource.html#GstTriggerControlSource--tolerance"/>
     <keyword type="struct" name="struct GstNetClientClock" link="GstNetClientClock.html#GstNetClientClock-struct"/>
     <keyword type="function" name="gst_net_client_clock_new ()" link="GstNetClientClock.html#gst-net-client-clock-new"/>
     <keyword type="property" name="The &quot;address&quot; property" link="GstNetClientClock.html#GstNetClientClock--address"/>
@@ -584,30 +513,26 @@
     <keyword type="function" name="gst_consistency_checker_reset ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset" since="0.10.24"/>
     <keyword type="function" name="gst_consistency_checker_free ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free" since="0.10.24"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NONE" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NO_FRAME" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_CLIP" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS"/>
-    <keyword type="constant" name="GST_BASE_SRC_STARTED" link="GstBaseSrc.html#GST-BASE-SRC-STARTED:CAPS"/>
+    <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_DROP" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-DROP:CAPS"/>
+    <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_QUEUE" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-QUEUE:CAPS"/>
+    <keyword type="constant" name="GST_BASE_SRC_FLAG_STARTING" link="GstBaseSrc.html#GST-BASE-SRC-FLAG-STARTING:CAPS"/>
+    <keyword type="constant" name="GST_BASE_SRC_FLAG_STARTED" link="GstBaseSrc.html#GST-BASE-SRC-FLAG-STARTED:CAPS"/>
     <keyword type="constant" name="GST_BASE_SRC_FLAG_LAST" link="GstBaseSrc.html#GST-BASE-SRC-FLAG-LAST:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_NONE" link="GstInterpolationControlSource.html#GST-INTERPOLATE-NONE:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_TRIGGER" link="GstInterpolationControlSource.html#GST-INTERPOLATE-TRIGGER:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_LINEAR" link="GstInterpolationControlSource.html#GST-INTERPOLATE-LINEAR:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_QUADRATIC" link="GstInterpolationControlSource.html#GST-INTERPOLATE-QUADRATIC:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_CUBIC" link="GstInterpolationControlSource.html#GST-INTERPOLATE-CUBIC:CAPS"/>
-    <keyword type="constant" name="GST_INTERPOLATE_USER" link="GstInterpolationControlSource.html#GST-INTERPOLATE-USER:CAPS"/>
+    <keyword type="constant" name="GST_COLLECT_PADS2_STATE_EOS" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-EOS:CAPS"/>
+    <keyword type="constant" name="GST_COLLECT_PADS2_STATE_FLUSHING" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-FLUSHING:CAPS"/>
+    <keyword type="constant" name="GST_COLLECT_PADS2_STATE_NEW_SEGMENT" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-NEW-SEGMENT:CAPS"/>
+    <keyword type="constant" name="GST_COLLECT_PADS2_STATE_WAITING" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-WAITING:CAPS"/>
+    <keyword type="constant" name="GST_COLLECT_PADS2_STATE_LOCKED" link="GstCollectPads2.html#GST-COLLECT-PADS2-STATE-LOCKED:CAPS"/>
+    <keyword type="constant" name="GST_INTERPOLATION_MODE_NONE" link="GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-NONE:CAPS"/>
+    <keyword type="constant" name="GST_INTERPOLATION_MODE_LINEAR" link="GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-LINEAR:CAPS"/>
+    <keyword type="constant" name="GST_INTERPOLATION_MODE_CUBIC" link="GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-CUBIC:CAPS"/>
     <keyword type="constant" name="GST_LFO_WAVEFORM_SINE" link="GstLFOControlSource.html#GST-LFO-WAVEFORM-SINE:CAPS"/>
     <keyword type="constant" name="GST_LFO_WAVEFORM_SQUARE" link="GstLFOControlSource.html#GST-LFO-WAVEFORM-SQUARE:CAPS"/>
     <keyword type="constant" name="GST_LFO_WAVEFORM_SAW" link="GstLFOControlSource.html#GST-LFO-WAVEFORM-SAW:CAPS"/>
     <keyword type="constant" name="GST_LFO_WAVEFORM_REVERSE_SAW" link="GstLFOControlSource.html#GST-LFO-WAVEFORM-REVERSE-SAW:CAPS"/>
     <keyword type="constant" name="GST_LFO_WAVEFORM_TRIANGLE" link="GstLFOControlSource.html#GST-LFO-WAVEFORM-TRIANGLE:CAPS"/>
-    <keyword type="constant" name="GST_DP_HEADER_FLAG_NONE" link="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-NONE:CAPS"/>
-    <keyword type="constant" name="GST_DP_HEADER_FLAG_CRC_HEADER" link="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC-HEADER:CAPS"/>
-    <keyword type="constant" name="GST_DP_HEADER_FLAG_CRC_PAYLOAD" link="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC-PAYLOAD:CAPS"/>
-    <keyword type="constant" name="GST_DP_HEADER_FLAG_CRC" link="gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC:CAPS"/>
-    <keyword type="constant" name="GST_DP_PAYLOAD_NONE" link="gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-NONE:CAPS"/>
-    <keyword type="constant" name="GST_DP_PAYLOAD_BUFFER" link="gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-BUFFER:CAPS"/>
-    <keyword type="constant" name="GST_DP_PAYLOAD_CAPS" link="gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-CAPS"/>
-    <keyword type="constant" name="GST_DP_PAYLOAD_EVENT_NONE" link="gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-EVENT-NONE:CAPS"/>
-    <keyword type="constant" name="GST_DP_VERSION_0_2" link="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-0-2:CAPS"/>
-    <keyword type="constant" name="GST_DP_VERSION_1_0" link="gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-1-0:CAPS"/>
   </functions>
 </book>
diff --git a/docs/libs/html/gstreamer-libs.html b/docs/libs/html/gstreamer-libs.html
index 10a2e1b..c78c045 100644
--- a/docs/libs/html/gstreamer-libs.html
+++ b/docs/libs/html/gstreamer-libs.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Part I. GStreamer Libraries</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer 0.11 Library Reference Manual">
-<link rel="prev" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="up" href="index.html" title="GStreamer 1.0 Library Reference Manual">
+<link rel="prev" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="next" href="gstreamer-base.html" title="GStreamer Base and Utillity Classes">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-base.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
@@ -57,22 +57,16 @@
     types to a memory buffer and allows reading</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstCollectPads.html">GstCollectPads</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
+<span class="refentrytitle"><a href="GstCollectPads2.html">GstCollectPads2</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstTypeFindHelper.html">GstTypeFindHelper</a></span><span class="refpurpose"> — Utility functions for typefinding</span>
 </dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstDataQueue.html">GstDataQueue</a></span><span class="refpurpose"> — Threadsafe queueing object</span>
-</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-control.html">GStreamer Dynamic Parameter Control</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="GstController.html">GstController</a></span><span class="refpurpose"> — dynamic parameter control subsystem</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GstControlSource.html">GstControlSource</a></span><span class="refpurpose"> — base class for control source sources</span>
+<span class="refentrytitle"><a href="GstTimedValueControlSource.html">GstTimedValueControlSource</a></span><span class="refpurpose"> — timed value control source base class</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstInterpolationControlSource.html">GstInterpolationControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
@@ -81,13 +75,9 @@
 <span class="refentrytitle"><a href="GstLFOControlSource.html">GstLFOControlSource</a></span><span class="refpurpose"> — LFO control source</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstControllerGObject.html">GstControllerGObject</a></span><span class="refpurpose"> — <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> convenience methods for using dynamic properties</span>
+<span class="refentrytitle"><a href="GstTriggerControlSource.html">GstTriggerControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="gstreamer-dataprotocol.html">GStreamer Data Protocol</a></span></dt>
-<dd><dl><dt>
-<span class="refentrytitle"><a href="gstreamer-libs-gstdataprotocol.html">gstdataprotocol</a></span><span class="refpurpose"> — Serialization of caps, buffers and events.</span>
-</dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-net.html">GStreamer Network Classes</a></span></dt>
 <dd><dl>
 <dt>
diff --git a/docs/libs/html/gstreamer-net.html b/docs/libs/html/gstreamer-net.html
index 8e54615..bddefc7 100644
--- a/docs/libs/html/gstreamer-net.html
+++ b/docs/libs/html/gstreamer-net.html
@@ -3,20 +3,20 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>GStreamer Network Classes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="up" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
-<link rel="prev" href="gstreamer-libs-gstdataprotocol.html" title="gstdataprotocol">
+<link rel="prev" href="GstTriggerControlSource.html" title="GstTriggerControlSource">
 <link rel="next" href="GstNetClientClock.html" title="GstNetClientClock">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gstreamer-libs-gstdataprotocol.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="GstTriggerControlSource.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="gstreamer-libs.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer 0.11 Library Reference Manual</th>
+<th width="100%" align="center">GStreamer 1.0 Library Reference Manual</th>
 <td><a accesskey="n" href="GstNetClientClock.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
@@ -37,7 +37,7 @@
 </dt>
 </dl></div>
 <p>
-        libgstnet-0.11.so provides network elements and objects.
+        libgstnet-1.0.so provides network elements and objects.
       </p>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 3cf5b81..77ca5d3 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -2,9 +2,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer 0.11 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer 0.11 Library Reference Manual">
+<title>GStreamer 1.0 Library Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Library Reference Manual">
 <link rel="next" href="gstreamer-libs.html" title="Part I. GStreamer Libraries">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -13,9 +13,9 @@
 <div class="book">
 <div class="titlepage">
 <div>
-<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 0.11 Library Reference Manual</p></th></tr></table></div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Library 0.11 (0.11.0.2)
+      for GStreamer Library 1.0 (0.11.89.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</a>.
     </p></div>
@@ -57,22 +57,16 @@
     types to a memory buffer and allows reading</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstCollectPads.html">GstCollectPads</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
+<span class="refentrytitle"><a href="GstCollectPads2.html">GstCollectPads2</a></span><span class="refpurpose"> — manages a set of pads that operate in collect mode</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-libs-GstTypeFindHelper.html">GstTypeFindHelper</a></span><span class="refpurpose"> — Utility functions for typefinding</span>
 </dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstDataQueue.html">GstDataQueue</a></span><span class="refpurpose"> — Threadsafe queueing object</span>
-</dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-control.html">GStreamer Dynamic Parameter Control</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="GstController.html">GstController</a></span><span class="refpurpose"> — dynamic parameter control subsystem</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GstControlSource.html">GstControlSource</a></span><span class="refpurpose"> — base class for control source sources</span>
+<span class="refentrytitle"><a href="GstTimedValueControlSource.html">GstTimedValueControlSource</a></span><span class="refpurpose"> — timed value control source base class</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstInterpolationControlSource.html">GstInterpolationControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
@@ -81,13 +75,9 @@
 <span class="refentrytitle"><a href="GstLFOControlSource.html">GstLFOControlSource</a></span><span class="refpurpose"> — LFO control source</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gstreamer-libs-GstControllerGObject.html">GstControllerGObject</a></span><span class="refpurpose"> — <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> convenience methods for using dynamic properties</span>
+<span class="refentrytitle"><a href="GstTriggerControlSource.html">GstTriggerControlSource</a></span><span class="refpurpose"> — interpolation control source</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="gstreamer-dataprotocol.html">GStreamer Data Protocol</a></span></dt>
-<dd><dl><dt>
-<span class="refentrytitle"><a href="gstreamer-libs-gstdataprotocol.html">gstdataprotocol</a></span><span class="refpurpose"> — Serialization of caps, buffers and events.</span>
-</dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-net.html">GStreamer Network Classes</a></span></dt>
 <dd><dl>
 <dt>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 25b9bd2..f0c3cb6 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -1,705 +1,624 @@
 <ONLINE href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/">
-<ANCHOR id="gstreamer-libs-GstBaseParse" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html">
-<ANCHOR id="gstreamer-libs-GstBaseParse.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.synopsis">
-<ANCHOR id="gstreamer-libs-GstBaseParse.description" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.description">
-<ANCHOR id="gstreamer-libs-GstBaseParse.details" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.details">
-<ANCHOR id="GstBaseParse" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GstBaseParse">
-<ANCHOR id="GstBaseParseClass" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GstBaseParseClass">
-<ANCHOR id="gst-base-parse-set-duration" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration">
-<ANCHOR id="gst-base-parse-set-average-bitrate" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate">
-<ANCHOR id="gst-base-parse-set-min-frame-size" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size">
-<ANCHOR id="gst-base-parse-set-passthrough" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-passthrough">
-<ANCHOR id="gst-base-parse-set-syncable" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable">
-<ANCHOR id="gst-base-parse-set-has-timing-info" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-has-timing-info">
-<ANCHOR id="gst-base-parse-set-frame-rate" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-frame-rate">
-<ANCHOR id="gst-base-parse-set-latency" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency">
-<ANCHOR id="gst-base-parse-convert-default" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default">
-<ANCHOR id="gst-base-parse-add-index-entry" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry">
-<ANCHOR id="GstBaseParseFrame" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GstBaseParseFrame">
-<ANCHOR id="GstBaseParseFrameFlags" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags">
-<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS">
-<ANCHOR id="gst-base-parse-frame-new" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new">
-<ANCHOR id="gst-base-parse-frame-init" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init">
-<ANCHOR id="gst-base-parse-frame-free" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free">
-<ANCHOR id="gst-base-parse-push-frame" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame">
-<ANCHOR id="GST-BASE-PARSE-DRAINING:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FLAG-DRAINING:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FLOW-DROPPED:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS">
-<ANCHOR id="GST-BASE-PARSE-FLOW-QUEUED:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-QUEUED:CAPS">
-<ANCHOR id="GST-BASE-PARSE-LOST-SYNC:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS">
-<ANCHOR id="GST-BASE-PARSE-SINK-PAD:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS">
-<ANCHOR id="GST-BASE-PARSE-SRC-PAD:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS">
-<ANCHOR id="gstreamer-libs-GstBaseParse.see-also" href="gstreamer-libs-0.11/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.see-also">
-<ANCHOR id="GstBaseSrc" href="gstreamer-libs-0.11/GstBaseSrc.html">
-<ANCHOR id="GstBaseSrc.synopsis" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.synopsis">
-<ANCHOR id="GstBaseSrc.object-hierarchy" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.object-hierarchy">
-<ANCHOR id="GstBaseSrc.properties" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.properties">
-<ANCHOR id="GstBaseSrc.description" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.description">
-<ANCHOR id="GstBaseSrc.details" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.details">
-<ANCHOR id="GstBaseSrc-struct" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc-struct">
-<ANCHOR id="GstBaseSrcClass" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrcClass">
-<ANCHOR id="GstBaseSrcFlags" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrcFlags">
-<ANCHOR id="GST-BASE-SRC-STARTED:CAPS" href="gstreamer-libs-0.11/GstBaseSrc.html#GST-BASE-SRC-STARTED:CAPS">
-<ANCHOR id="GST-BASE-SRC-FLAG-LAST:CAPS" href="gstreamer-libs-0.11/GstBaseSrc.html#GST-BASE-SRC-FLAG-LAST:CAPS">
-<ANCHOR id="gst-base-src-wait-playing" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-wait-playing">
-<ANCHOR id="gst-base-src-is-live" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-is-live">
-<ANCHOR id="gst-base-src-set-live" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-live">
-<ANCHOR id="gst-base-src-set-format" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-format">
-<ANCHOR id="gst-base-src-query-latency" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-query-latency">
-<ANCHOR id="gst-base-src-get-blocksize" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-get-blocksize">
-<ANCHOR id="gst-base-src-set-blocksize" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-blocksize">
-<ANCHOR id="gst-base-src-get-do-timestamp" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-get-do-timestamp">
-<ANCHOR id="gst-base-src-set-do-timestamp" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-do-timestamp">
-<ANCHOR id="gst-base-src-set-dynamic-size" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-dynamic-size">
-<ANCHOR id="gst-base-src-new-seamless-segment" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-new-seamless-segment">
-<ANCHOR id="gst-base-src-set-caps" href="gstreamer-libs-0.11/GstBaseSrc.html#gst-base-src-set-caps">
-<ANCHOR id="GST-BASE-SRC-PAD:CAPS" href="gstreamer-libs-0.11/GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS">
-<ANCHOR id="GstBaseSrc.property-details" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.property-details">
-<ANCHOR id="GstBaseSrc--blocksize" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc--blocksize">
-<ANCHOR id="GstBaseSrc--do-timestamp" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc--do-timestamp">
-<ANCHOR id="GstBaseSrc--num-buffers" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc--num-buffers">
-<ANCHOR id="GstBaseSrc--typefind" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc--typefind">
-<ANCHOR id="GstBaseSrc.see-also" href="gstreamer-libs-0.11/GstBaseSrc.html#GstBaseSrc.see-also">
-<ANCHOR id="GstBaseSink" href="gstreamer-libs-0.11/GstBaseSink.html">
-<ANCHOR id="GstBaseSink.synopsis" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.synopsis">
-<ANCHOR id="GstBaseSink.object-hierarchy" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.object-hierarchy">
-<ANCHOR id="GstBaseSink.properties" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.properties">
-<ANCHOR id="GstBaseSink.description" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.description">
-<ANCHOR id="GstBaseSink.details" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.details">
-<ANCHOR id="GstBaseSink-struct" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink-struct">
-<ANCHOR id="GstBaseSinkClass" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSinkClass">
-<ANCHOR id="gst-base-sink-query-latency" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-query-latency">
-<ANCHOR id="gst-base-sink-get-latency" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-latency">
-<ANCHOR id="gst-base-sink-do-preroll" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-do-preroll">
-<ANCHOR id="gst-base-sink-wait-preroll" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-wait-preroll">
-<ANCHOR id="gst-base-sink-wait-clock" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-wait-clock">
-<ANCHOR id="gst-base-sink-wait-eos" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-wait-eos">
-<ANCHOR id="gst-base-sink-set-sync" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-sync">
-<ANCHOR id="gst-base-sink-get-sync" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-sync">
-<ANCHOR id="gst-base-sink-set-max-lateness" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-max-lateness">
-<ANCHOR id="gst-base-sink-get-max-lateness" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-max-lateness">
-<ANCHOR id="gst-base-sink-set-qos-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-qos-enabled">
-<ANCHOR id="gst-base-sink-is-qos-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-is-qos-enabled">
-<ANCHOR id="gst-base-sink-set-async-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-async-enabled">
-<ANCHOR id="gst-base-sink-is-async-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-is-async-enabled">
-<ANCHOR id="gst-base-sink-set-ts-offset" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-ts-offset">
-<ANCHOR id="gst-base-sink-get-ts-offset" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-ts-offset">
-<ANCHOR id="gst-base-sink-set-render-delay" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-render-delay">
-<ANCHOR id="gst-base-sink-get-render-delay" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-render-delay">
-<ANCHOR id="gst-base-sink-set-last-buffer-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-last-buffer-enabled">
-<ANCHOR id="gst-base-sink-is-last-buffer-enabled" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-is-last-buffer-enabled">
-<ANCHOR id="gst-base-sink-get-last-buffer" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-last-buffer">
-<ANCHOR id="gst-base-sink-set-blocksize" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-blocksize">
-<ANCHOR id="gst-base-sink-get-blocksize" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-blocksize">
-<ANCHOR id="gst-base-sink-get-throttle-time" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-get-throttle-time">
-<ANCHOR id="gst-base-sink-set-throttle-time" href="gstreamer-libs-0.11/GstBaseSink.html#gst-base-sink-set-throttle-time">
-<ANCHOR id="GST-BASE-SINK-PAD:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PAD:CAPS">
-<ANCHOR id="GST-BASE-SINK-GET-PREROLL-COND:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-COND:CAPS">
-<ANCHOR id="GST-BASE-SINK-GET-PREROLL-LOCK:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-LOCK:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-BROADCAST:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-BROADCAST:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-LOCK:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-LOCK:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-SIGNAL:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-SIGNAL:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-TIMED-WAIT:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-TRYLOCK:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-TRYLOCK:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-UNLOCK:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-UNLOCK:CAPS">
-<ANCHOR id="GST-BASE-SINK-PREROLL-WAIT:CAPS" href="gstreamer-libs-0.11/GstBaseSink.html#GST-BASE-SINK-PREROLL-WAIT:CAPS">
-<ANCHOR id="GstBaseSink.property-details" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.property-details">
-<ANCHOR id="GstBaseSink--async" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--async">
-<ANCHOR id="GstBaseSink--blocksize" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--blocksize">
-<ANCHOR id="GstBaseSink--enable-last-buffer" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--enable-last-buffer">
-<ANCHOR id="GstBaseSink--last-buffer" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--last-buffer">
-<ANCHOR id="GstBaseSink--max-lateness" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--max-lateness">
-<ANCHOR id="GstBaseSink--qos" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--qos">
-<ANCHOR id="GstBaseSink--render-delay" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--render-delay">
-<ANCHOR id="GstBaseSink--sync" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--sync">
-<ANCHOR id="GstBaseSink--throttle-time" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--throttle-time">
-<ANCHOR id="GstBaseSink--ts-offset" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--ts-offset">
-<ANCHOR id="GstBaseSink.see-also" href="gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink.see-also">
-<ANCHOR id="GstBaseTransform" href="gstreamer-libs-0.11/GstBaseTransform.html">
-<ANCHOR id="GstBaseTransform.synopsis" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.synopsis">
-<ANCHOR id="GstBaseTransform.object-hierarchy" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.object-hierarchy">
-<ANCHOR id="GstBaseTransform.properties" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.properties">
-<ANCHOR id="GstBaseTransform.description" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.description">
-<ANCHOR id="GstBaseTransform.details" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.details">
-<ANCHOR id="GstBaseTransform-struct" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform-struct">
-<ANCHOR id="GstBaseTransformClass" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransformClass">
-<ANCHOR id="gst-base-transform-is-passthrough" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-is-passthrough">
-<ANCHOR id="gst-base-transform-set-passthrough" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-set-passthrough">
-<ANCHOR id="gst-base-transform-is-in-place" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-is-in-place">
-<ANCHOR id="gst-base-transform-set-in-place" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-set-in-place">
-<ANCHOR id="gst-base-transform-is-qos-enabled" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-is-qos-enabled">
-<ANCHOR id="gst-base-transform-set-qos-enabled" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-set-qos-enabled">
-<ANCHOR id="gst-base-transform-update-qos" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-update-qos">
-<ANCHOR id="gst-base-transform-set-gap-aware" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-set-gap-aware">
-<ANCHOR id="gst-base-transform-suggest" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-suggest">
-<ANCHOR id="gst-base-transform-reconfigure" href="gstreamer-libs-0.11/GstBaseTransform.html#gst-base-transform-reconfigure">
-<ANCHOR id="GST-BASE-TRANSFORM-SINK-NAME:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-SRC-NAME:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-SINK-PAD:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-SRC-PAD:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-LOCK:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-LOCK:CAPS">
-<ANCHOR id="GST-BASE-TRANSFORM-UNLOCK:CAPS" href="gstreamer-libs-0.11/GstBaseTransform.html#GST-BASE-TRANSFORM-UNLOCK:CAPS">
-<ANCHOR id="GstBaseTransform.property-details" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.property-details">
-<ANCHOR id="GstBaseTransform--qos" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform--qos">
-<ANCHOR id="GstBaseTransform.see-also" href="gstreamer-libs-0.11/GstBaseTransform.html#GstBaseTransform.see-also">
-<ANCHOR id="GstPushSrc" href="gstreamer-libs-0.11/GstPushSrc.html">
-<ANCHOR id="GstPushSrc.synopsis" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc.synopsis">
-<ANCHOR id="GstPushSrc.object-hierarchy" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc.object-hierarchy">
-<ANCHOR id="GstPushSrc.description" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc.description">
-<ANCHOR id="GstPushSrc.details" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc.details">
-<ANCHOR id="GstPushSrc-struct" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc-struct">
-<ANCHOR id="GstPushSrc.see-also" href="gstreamer-libs-0.11/GstPushSrc.html#GstPushSrc.see-also">
-<ANCHOR id="GstAdapter" href="gstreamer-libs-0.11/GstAdapter.html">
-<ANCHOR id="GstAdapter.synopsis" href="gstreamer-libs-0.11/GstAdapter.html#GstAdapter.synopsis">
-<ANCHOR id="GstAdapter.object-hierarchy" href="gstreamer-libs-0.11/GstAdapter.html#GstAdapter.object-hierarchy">
-<ANCHOR id="GstAdapter.description" href="gstreamer-libs-0.11/GstAdapter.html#GstAdapter.description">
-<ANCHOR id="GstAdapter.details" href="gstreamer-libs-0.11/GstAdapter.html#GstAdapter.details">
-<ANCHOR id="GstAdapter-struct" href="gstreamer-libs-0.11/GstAdapter.html#GstAdapter-struct">
-<ANCHOR id="gst-adapter-new" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-new">
-<ANCHOR id="gst-adapter-clear" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-clear">
-<ANCHOR id="gst-adapter-push" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-push">
-<ANCHOR id="gst-adapter-map" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-map">
-<ANCHOR id="gst-adapter-unmap" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-unmap">
-<ANCHOR id="gst-adapter-copy" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-copy">
-<ANCHOR id="gst-adapter-flush" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-flush">
-<ANCHOR id="gst-adapter-available" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-available">
-<ANCHOR id="gst-adapter-available-fast" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-available-fast">
-<ANCHOR id="gst-adapter-take" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-take">
-<ANCHOR id="gst-adapter-take-buffer" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-take-buffer">
-<ANCHOR id="gst-adapter-take-list" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-take-list">
-<ANCHOR id="gst-adapter-prev-timestamp" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-prev-timestamp">
-<ANCHOR id="gst-adapter-masked-scan-uint32" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-masked-scan-uint32">
-<ANCHOR id="gst-adapter-masked-scan-uint32-peek" href="gstreamer-libs-0.11/GstAdapter.html#gst-adapter-masked-scan-uint32-peek">
-<ANCHOR id="gstreamer-libs-GstBitReader" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html">
-<ANCHOR id="gstreamer-libs-GstBitReader.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.synopsis">
-<ANCHOR id="gstreamer-libs-GstBitReader.description" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.description">
-<ANCHOR id="gstreamer-libs-GstBitReader.details" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.details">
-<ANCHOR id="GstBitReader" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#GstBitReader">
-<ANCHOR id="GST-BIT-READER-INIT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#GST-BIT-READER-INIT:CAPS">
-<ANCHOR id="gst-bit-reader-new" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-new">
-<ANCHOR id="gst-bit-reader-free" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-free">
-<ANCHOR id="gst-bit-reader-init" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-init">
-<ANCHOR id="gst-bit-reader-get-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-pos">
-<ANCHOR id="gst-bit-reader-get-remaining" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-remaining">
-<ANCHOR id="gst-bit-reader-set-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-set-pos">
-<ANCHOR id="gst-bit-reader-get-size" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-size">
-<ANCHOR id="gst-bit-reader-skip" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip">
-<ANCHOR id="gst-bit-reader-skip-to-byte" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte">
-<ANCHOR id="gst-bit-reader-get-bits-uint16" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16">
-<ANCHOR id="gst-bit-reader-get-bits-uint32" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32">
-<ANCHOR id="gst-bit-reader-get-bits-uint64" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64">
-<ANCHOR id="gst-bit-reader-get-bits-uint8" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8">
-<ANCHOR id="gst-bit-reader-peek-bits-uint16" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16">
-<ANCHOR id="gst-bit-reader-peek-bits-uint32" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32">
-<ANCHOR id="gst-bit-reader-peek-bits-uint64" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64">
-<ANCHOR id="gst-bit-reader-peek-bits-uint8" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8">
-<ANCHOR id="gst-bit-reader-skip-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-unchecked">
-<ANCHOR id="gst-bit-reader-skip-to-byte-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte-unchecked">
-<ANCHOR id="gst-bit-reader-get-bits-uint16-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked">
-<ANCHOR id="gst-bit-reader-get-bits-uint32-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked">
-<ANCHOR id="gst-bit-reader-get-bits-uint64-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked">
-<ANCHOR id="gst-bit-reader-get-bits-uint8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked">
-<ANCHOR id="gst-bit-reader-peek-bits-uint16-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked">
-<ANCHOR id="gst-bit-reader-peek-bits-uint32-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked">
-<ANCHOR id="gst-bit-reader-peek-bits-uint64-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64-unchecked">
-<ANCHOR id="gst-bit-reader-peek-bits-uint8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked">
-<ANCHOR id="gstreamer-libs-GstByteReader" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html">
-<ANCHOR id="gstreamer-libs-GstByteReader.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.synopsis">
-<ANCHOR id="gstreamer-libs-GstByteReader.description" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.description">
-<ANCHOR id="gstreamer-libs-GstByteReader.details" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.details">
-<ANCHOR id="GstByteReader" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#GstByteReader">
-<ANCHOR id="GST-BYTE-READER-INIT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS">
-<ANCHOR id="gst-byte-reader-new" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-new">
-<ANCHOR id="gst-byte-reader-free" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-free">
-<ANCHOR id="gst-byte-reader-init" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-init">
-<ANCHOR id="gst-byte-reader-get-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-pos">
-<ANCHOR id="gst-byte-reader-get-remaining" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-remaining">
-<ANCHOR id="gst-byte-reader-set-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-set-pos">
-<ANCHOR id="gst-byte-reader-get-size" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-size">
-<ANCHOR id="gst-byte-reader-skip" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip">
-<ANCHOR id="gst-byte-reader-get-int8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8">
-<ANCHOR id="gst-byte-reader-get-int16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be">
-<ANCHOR id="gst-byte-reader-get-int16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le">
-<ANCHOR id="gst-byte-reader-get-int24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be">
-<ANCHOR id="gst-byte-reader-get-int24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le">
-<ANCHOR id="gst-byte-reader-get-int32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be">
-<ANCHOR id="gst-byte-reader-get-int32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le">
-<ANCHOR id="gst-byte-reader-get-int64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be">
-<ANCHOR id="gst-byte-reader-get-int64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le">
-<ANCHOR id="gst-byte-reader-get-uint8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8">
-<ANCHOR id="gst-byte-reader-get-uint16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be">
-<ANCHOR id="gst-byte-reader-get-uint16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le">
-<ANCHOR id="gst-byte-reader-get-uint24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be">
-<ANCHOR id="gst-byte-reader-get-uint24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le">
-<ANCHOR id="gst-byte-reader-get-uint32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be">
-<ANCHOR id="gst-byte-reader-get-uint32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le">
-<ANCHOR id="gst-byte-reader-get-uint64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be">
-<ANCHOR id="gst-byte-reader-get-uint64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le">
-<ANCHOR id="gst-byte-reader-peek-int8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8">
-<ANCHOR id="gst-byte-reader-peek-int16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be">
-<ANCHOR id="gst-byte-reader-peek-int16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le">
-<ANCHOR id="gst-byte-reader-peek-int24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be">
-<ANCHOR id="gst-byte-reader-peek-int24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le">
-<ANCHOR id="gst-byte-reader-peek-int32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be">
-<ANCHOR id="gst-byte-reader-peek-int32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le">
-<ANCHOR id="gst-byte-reader-peek-int64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be">
-<ANCHOR id="gst-byte-reader-peek-int64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le">
-<ANCHOR id="gst-byte-reader-peek-uint8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8">
-<ANCHOR id="gst-byte-reader-peek-uint16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be">
-<ANCHOR id="gst-byte-reader-peek-uint16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le">
-<ANCHOR id="gst-byte-reader-peek-uint24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be">
-<ANCHOR id="gst-byte-reader-peek-uint24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le">
-<ANCHOR id="gst-byte-reader-peek-uint32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be">
-<ANCHOR id="gst-byte-reader-peek-uint32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le">
-<ANCHOR id="gst-byte-reader-peek-uint64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be">
-<ANCHOR id="gst-byte-reader-peek-uint64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le">
-<ANCHOR id="gst-byte-reader-get-float32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le">
-<ANCHOR id="gst-byte-reader-get-float32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be">
-<ANCHOR id="gst-byte-reader-get-float64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le">
-<ANCHOR id="gst-byte-reader-get-float64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be">
-<ANCHOR id="gst-byte-reader-peek-float32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le">
-<ANCHOR id="gst-byte-reader-peek-float32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be">
-<ANCHOR id="gst-byte-reader-peek-float64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le">
-<ANCHOR id="gst-byte-reader-peek-float64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be">
-<ANCHOR id="gst-byte-reader-get-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data">
-<ANCHOR id="gst-byte-reader-dup-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data">
-<ANCHOR id="gst-byte-reader-peek-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data">
-<ANCHOR id="gst-byte-reader-masked-scan-uint32" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-masked-scan-uint32">
-<ANCHOR id="gst-byte-reader-get-string" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string">
-<ANCHOR id="gst-byte-reader-get-string-utf8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string-utf8">
-<ANCHOR id="gst-byte-reader-peek-string" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string">
-<ANCHOR id="gst-byte-reader-peek-string-utf8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string-utf8">
-<ANCHOR id="gst-byte-reader-dup-string" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string">
-<ANCHOR id="gst-byte-reader-dup-string-utf8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf8">
-<ANCHOR id="gst-byte-reader-dup-string-utf16" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf16">
-<ANCHOR id="gst-byte-reader-dup-string-utf32" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf32">
-<ANCHOR id="gst-byte-reader-skip-string" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string">
-<ANCHOR id="gst-byte-reader-skip-string-utf8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf8">
-<ANCHOR id="gst-byte-reader-skip-string-utf16" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf16">
-<ANCHOR id="gst-byte-reader-skip-string-utf32" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf32">
-<ANCHOR id="gst-byte-reader-skip-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-unchecked">
-<ANCHOR id="gst-byte-reader-get-int8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked">
-<ANCHOR id="gst-byte-reader-get-int16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-int16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-int24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-int24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-int32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-int32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-int64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-int64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-uint64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-int64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-uint64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-float32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-float32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be-unchecked">
-<ANCHOR id="gst-byte-reader-get-float64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le-unchecked">
-<ANCHOR id="gst-byte-reader-get-float64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-float32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-float32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be-unchecked">
-<ANCHOR id="gst-byte-reader-peek-float64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le-unchecked">
-<ANCHOR id="gst-byte-reader-peek-float64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be-unchecked">
-<ANCHOR id="gst-byte-reader-dup-data-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked">
-<ANCHOR id="gst-byte-reader-get-data-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked">
-<ANCHOR id="gst-byte-reader-peek-data-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked">
-<ANCHOR id="gstreamer-libs-GstByteWriter" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html">
-<ANCHOR id="gstreamer-libs-GstByteWriter.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.synopsis">
-<ANCHOR id="gstreamer-libs-GstByteWriter.description" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.description">
-<ANCHOR id="gstreamer-libs-GstByteWriter.details" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.details">
-<ANCHOR id="GstByteWriter" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#GstByteWriter">
-<ANCHOR id="gst-byte-writer-new" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new">
-<ANCHOR id="gst-byte-writer-new-with-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data">
-<ANCHOR id="gst-byte-writer-new-with-size" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-size">
-<ANCHOR id="gst-byte-writer-init" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init">
-<ANCHOR id="gst-byte-writer-init-with-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-data">
-<ANCHOR id="gst-byte-writer-init-with-size" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-size">
-<ANCHOR id="gst-byte-writer-free" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free">
-<ANCHOR id="gst-byte-writer-free-and-get-buffer" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer">
-<ANCHOR id="gst-byte-writer-free-and-get-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data">
-<ANCHOR id="gst-byte-writer-reset" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset">
-<ANCHOR id="gst-byte-writer-reset-and-get-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data">
-<ANCHOR id="gst-byte-writer-reset-and-get-buffer" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer">
-<ANCHOR id="gst-byte-writer-get-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos">
-<ANCHOR id="gst-byte-writer-set-pos" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos">
-<ANCHOR id="gst-byte-writer-get-remaining" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-remaining">
-<ANCHOR id="gst-byte-writer-get-size" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-size">
-<ANCHOR id="gst-byte-writer-ensure-free-space" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-ensure-free-space">
-<ANCHOR id="gst-byte-writer-put-int8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8">
-<ANCHOR id="gst-byte-writer-put-int16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be">
-<ANCHOR id="gst-byte-writer-put-int16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le">
-<ANCHOR id="gst-byte-writer-put-int24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be">
-<ANCHOR id="gst-byte-writer-put-int24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le">
-<ANCHOR id="gst-byte-writer-put-int32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be">
-<ANCHOR id="gst-byte-writer-put-int32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le">
-<ANCHOR id="gst-byte-writer-put-int64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be">
-<ANCHOR id="gst-byte-writer-put-int64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le">
-<ANCHOR id="gst-byte-writer-put-uint8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8">
-<ANCHOR id="gst-byte-writer-put-uint16-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be">
-<ANCHOR id="gst-byte-writer-put-uint16-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le">
-<ANCHOR id="gst-byte-writer-put-uint24-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be">
-<ANCHOR id="gst-byte-writer-put-uint24-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le">
-<ANCHOR id="gst-byte-writer-put-uint32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be">
-<ANCHOR id="gst-byte-writer-put-uint32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le">
-<ANCHOR id="gst-byte-writer-put-uint64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be">
-<ANCHOR id="gst-byte-writer-put-uint64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le">
-<ANCHOR id="gst-byte-writer-put-float32-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be">
-<ANCHOR id="gst-byte-writer-put-float32-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le">
-<ANCHOR id="gst-byte-writer-put-float64-be" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be">
-<ANCHOR id="gst-byte-writer-put-float64-le" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le">
-<ANCHOR id="gst-byte-writer-put-string" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string">
-<ANCHOR id="gst-byte-writer-put-string-utf16" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf16">
-<ANCHOR id="gst-byte-writer-put-string-utf32" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf32">
-<ANCHOR id="gst-byte-writer-put-string-utf8" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf8">
-<ANCHOR id="gst-byte-writer-put-data" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data">
-<ANCHOR id="gst-byte-writer-fill" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill">
-<ANCHOR id="gst-byte-writer-put-int8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8-unchecked">
-<ANCHOR id="gst-byte-writer-put-int16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-int16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-int24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-int24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-int32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-int32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-int64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-int64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint8-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint16-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint16-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint24-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint24-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-uint64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-float32-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-float32-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-float64-be-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be-unchecked">
-<ANCHOR id="gst-byte-writer-put-float64-le-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le-unchecked">
-<ANCHOR id="gst-byte-writer-put-data-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked">
-<ANCHOR id="gst-byte-writer-fill-unchecked" href="gstreamer-libs-0.11/gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked">
-<ANCHOR id="GstCollectPads" href="gstreamer-libs-0.11/GstCollectPads.html">
-<ANCHOR id="GstCollectPads.synopsis" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPads.synopsis">
-<ANCHOR id="GstCollectPads.object-hierarchy" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPads.object-hierarchy">
-<ANCHOR id="GstCollectPads.description" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPads.description">
-<ANCHOR id="GstCollectPads.details" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPads.details">
-<ANCHOR id="GstCollectData" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectData">
-<ANCHOR id="GstCollectPads-struct" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPads-struct">
-<ANCHOR id="GstCollectPadsFunction" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPadsFunction">
-<ANCHOR id="GstCollectPadsClipFunction" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectPadsClipFunction">
-<ANCHOR id="GstCollectDataDestroyNotify" href="gstreamer-libs-0.11/GstCollectPads.html#GstCollectDataDestroyNotify">
-<ANCHOR id="gst-collect-pads-new" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-new">
-<ANCHOR id="gst-collect-pads-set-function" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-set-function">
-<ANCHOR id="gst-collect-pads-set-clip-function" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-set-clip-function">
-<ANCHOR id="gst-collect-pads-add-pad" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-add-pad">
-<ANCHOR id="gst-collect-pads-add-pad-full" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-add-pad-full">
-<ANCHOR id="gst-collect-pads-remove-pad" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-remove-pad">
-<ANCHOR id="gst-collect-pads-is-active" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-is-active">
-<ANCHOR id="gst-collect-pads-collect" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-collect">
-<ANCHOR id="gst-collect-pads-collect-range" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-collect-range">
-<ANCHOR id="gst-collect-pads-start" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-start">
-<ANCHOR id="gst-collect-pads-stop" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-stop">
-<ANCHOR id="gst-collect-pads-set-flushing" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-set-flushing">
-<ANCHOR id="gst-collect-pads-peek" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-peek">
-<ANCHOR id="gst-collect-pads-pop" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-pop">
-<ANCHOR id="gst-collect-pads-available" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-available">
-<ANCHOR id="gst-collect-pads-read-buffer" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-read-buffer">
-<ANCHOR id="gst-collect-pads-take-buffer" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-take-buffer">
-<ANCHOR id="gst-collect-pads-flush" href="gstreamer-libs-0.11/GstCollectPads.html#gst-collect-pads-flush">
-<ANCHOR id="gstreamer-libs-GstTypeFindHelper" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html">
-<ANCHOR id="gstreamer-libs-GstTypeFindHelper.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.synopsis">
-<ANCHOR id="gstreamer-libs-GstTypeFindHelper.description" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.description">
-<ANCHOR id="gstreamer-libs-GstTypeFindHelper.details" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.details">
-<ANCHOR id="gst-type-find-helper" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper">
-<ANCHOR id="gst-type-find-helper-for-buffer" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer">
-<ANCHOR id="gst-type-find-helper-for-extension" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension">
-<ANCHOR id="gst-type-find-helper-for-data" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data">
-<ANCHOR id="GstTypeFindHelperGetRangeFunction" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction">
-<ANCHOR id="gst-type-find-helper-get-range" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range">
-<ANCHOR id="gst-type-find-helper-get-range-ext" href="gstreamer-libs-0.11/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range-ext">
-<ANCHOR id="gstreamer-libs-GstDataQueue" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html">
-<ANCHOR id="gstreamer-libs-GstDataQueue.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.synopsis">
-<ANCHOR id="gstreamer-libs-GstDataQueue.description" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.description">
-<ANCHOR id="gstreamer-libs-GstDataQueue.details" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gstreamer-libs-GstDataQueue.details">
-<ANCHOR id="GstDataQueue" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueue">
-<ANCHOR id="GstDataQueueSize" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueueSize">
-<ANCHOR id="GstDataQueueCheckFullFunction" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueueCheckFullFunction">
-<ANCHOR id="GstDataQueueItem" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueueItem">
-<ANCHOR id="GstDataQueueEmptyCallback" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueueEmptyCallback">
-<ANCHOR id="GstDataQueueFullCallback" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#GstDataQueueFullCallback">
-<ANCHOR id="gst-data-queue-new" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-new">
-<ANCHOR id="gst-data-queue-new-full" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-new-full">
-<ANCHOR id="gst-data-queue-push" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-push">
-<ANCHOR id="gst-data-queue-pop" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-pop">
-<ANCHOR id="gst-data-queue-flush" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-flush">
-<ANCHOR id="gst-data-queue-set-flushing" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-set-flushing">
-<ANCHOR id="gst-data-queue-drop-head" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-drop-head">
-<ANCHOR id="gst-data-queue-is-full" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-is-full">
-<ANCHOR id="gst-data-queue-is-empty" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-is-empty">
-<ANCHOR id="gst-data-queue-get-level" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-get-level">
-<ANCHOR id="gst-data-queue-limits-changed" href="gstreamer-libs-0.11/gstreamer-libs-GstDataQueue.html#gst-data-queue-limits-changed">
-<ANCHOR id="GstController" href="gstreamer-libs-0.11/GstController.html">
-<ANCHOR id="GstController.synopsis" href="gstreamer-libs-0.11/GstController.html#GstController.synopsis">
-<ANCHOR id="GstController.object-hierarchy" href="gstreamer-libs-0.11/GstController.html#GstController.object-hierarchy">
-<ANCHOR id="GstController.properties" href="gstreamer-libs-0.11/GstController.html#GstController.properties">
-<ANCHOR id="GstController.description" href="gstreamer-libs-0.11/GstController.html#GstController.description">
-<ANCHOR id="GstController.details" href="gstreamer-libs-0.11/GstController.html#GstController.details">
-<ANCHOR id="GstController-struct" href="gstreamer-libs-0.11/GstController.html#GstController-struct">
-<ANCHOR id="gst-controller-init" href="gstreamer-libs-0.11/GstController.html#gst-controller-init">
-<ANCHOR id="gst-controller-new" href="gstreamer-libs-0.11/GstController.html#gst-controller-new">
-<ANCHOR id="gst-controller-new-list" href="gstreamer-libs-0.11/GstController.html#gst-controller-new-list">
-<ANCHOR id="gst-controller-new-valist" href="gstreamer-libs-0.11/GstController.html#gst-controller-new-valist">
-<ANCHOR id="gst-controller-remove-properties" href="gstreamer-libs-0.11/GstController.html#gst-controller-remove-properties">
-<ANCHOR id="gst-controller-remove-properties-list" href="gstreamer-libs-0.11/GstController.html#gst-controller-remove-properties-list">
-<ANCHOR id="gst-controller-remove-properties-valist" href="gstreamer-libs-0.11/GstController.html#gst-controller-remove-properties-valist">
-<ANCHOR id="gst-controller-set-disabled" href="gstreamer-libs-0.11/GstController.html#gst-controller-set-disabled">
-<ANCHOR id="gst-controller-set-property-disabled" href="gstreamer-libs-0.11/GstController.html#gst-controller-set-property-disabled">
-<ANCHOR id="gst-controller-suggest-next-sync" href="gstreamer-libs-0.11/GstController.html#gst-controller-suggest-next-sync">
-<ANCHOR id="gst-controller-sync-values" href="gstreamer-libs-0.11/GstController.html#gst-controller-sync-values">
-<ANCHOR id="gst-controller-get-control-source" href="gstreamer-libs-0.11/GstController.html#gst-controller-get-control-source">
-<ANCHOR id="gst-controller-set-control-source" href="gstreamer-libs-0.11/GstController.html#gst-controller-set-control-source">
-<ANCHOR id="gst-controller-get" href="gstreamer-libs-0.11/GstController.html#gst-controller-get">
-<ANCHOR id="gst-controller-get-value-arrays" href="gstreamer-libs-0.11/GstController.html#gst-controller-get-value-arrays">
-<ANCHOR id="gst-controller-get-value-array" href="gstreamer-libs-0.11/GstController.html#gst-controller-get-value-array">
-<ANCHOR id="GstController.property-details" href="gstreamer-libs-0.11/GstController.html#GstController.property-details">
-<ANCHOR id="GstController--control-rate" href="gstreamer-libs-0.11/GstController.html#GstController--control-rate">
-<ANCHOR id="GstControlSource" href="gstreamer-libs-0.11/GstControlSource.html">
-<ANCHOR id="GstControlSource.synopsis" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSource.synopsis">
-<ANCHOR id="GstControlSource.object-hierarchy" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSource.object-hierarchy">
-<ANCHOR id="GstControlSource.description" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSource.description">
-<ANCHOR id="GstControlSource.details" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSource.details">
-<ANCHOR id="GstControlSource-struct" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSource-struct">
-<ANCHOR id="GstControlSourceClass" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSourceClass">
-<ANCHOR id="GstControlSourceBind" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSourceBind">
-<ANCHOR id="GstControlSourceGetValue" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSourceGetValue">
-<ANCHOR id="GstControlSourceGetValueArray" href="gstreamer-libs-0.11/GstControlSource.html#GstControlSourceGetValueArray">
-<ANCHOR id="GstTimedValue" href="gstreamer-libs-0.11/GstControlSource.html#GstTimedValue">
-<ANCHOR id="GstValueArray" href="gstreamer-libs-0.11/GstControlSource.html#GstValueArray">
-<ANCHOR id="gst-control-source-bind" href="gstreamer-libs-0.11/GstControlSource.html#gst-control-source-bind">
-<ANCHOR id="gst-control-source-get-value" href="gstreamer-libs-0.11/GstControlSource.html#gst-control-source-get-value">
-<ANCHOR id="gst-control-source-get-value-array" href="gstreamer-libs-0.11/GstControlSource.html#gst-control-source-get-value-array">
-<ANCHOR id="GstInterpolationControlSource" href="gstreamer-libs-0.11/GstInterpolationControlSource.html">
-<ANCHOR id="GstInterpolationControlSource.synopsis" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolationControlSource.synopsis">
-<ANCHOR id="GstInterpolationControlSource.object-hierarchy" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolationControlSource.object-hierarchy">
-<ANCHOR id="GstInterpolationControlSource.description" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolationControlSource.description">
-<ANCHOR id="GstInterpolationControlSource.details" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolationControlSource.details">
-<ANCHOR id="GstInterpolationControlSource-struct" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolationControlSource-struct">
-<ANCHOR id="GstInterpolateMode" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GstInterpolateMode">
-<ANCHOR id="GST-INTERPOLATE-NONE:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-NONE:CAPS">
-<ANCHOR id="GST-INTERPOLATE-TRIGGER:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-TRIGGER:CAPS">
-<ANCHOR id="GST-INTERPOLATE-LINEAR:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-LINEAR:CAPS">
-<ANCHOR id="GST-INTERPOLATE-QUADRATIC:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-QUADRATIC:CAPS">
-<ANCHOR id="GST-INTERPOLATE-CUBIC:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-CUBIC:CAPS">
-<ANCHOR id="GST-INTERPOLATE-USER:CAPS" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#GST-INTERPOLATE-USER:CAPS">
-<ANCHOR id="gst-interpolation-control-source-new" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-new">
-<ANCHOR id="gst-interpolation-control-source-set" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-set">
-<ANCHOR id="gst-interpolation-control-source-set-from-list" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-set-from-list">
-<ANCHOR id="gst-interpolation-control-source-set-interpolation-mode" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-set-interpolation-mode">
-<ANCHOR id="gst-interpolation-control-source-get-all" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-get-all">
-<ANCHOR id="gst-interpolation-control-source-unset" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-unset">
-<ANCHOR id="gst-interpolation-control-source-unset-all" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-unset-all">
-<ANCHOR id="gst-interpolation-control-source-get-count" href="gstreamer-libs-0.11/GstInterpolationControlSource.html#gst-interpolation-control-source-get-count">
-<ANCHOR id="GstLFOControlSource" href="gstreamer-libs-0.11/GstLFOControlSource.html">
-<ANCHOR id="GstLFOControlSource.synopsis" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.synopsis">
-<ANCHOR id="GstLFOControlSource.object-hierarchy" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.object-hierarchy">
-<ANCHOR id="GstLFOControlSource.properties" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.properties">
-<ANCHOR id="GstLFOControlSource.description" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.description">
-<ANCHOR id="GstLFOControlSource.details" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.details">
-<ANCHOR id="GstLFOControlSource-struct" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource-struct">
-<ANCHOR id="GstLFOWaveform" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOWaveform">
-<ANCHOR id="GST-LFO-WAVEFORM-SINE:CAPS" href="gstreamer-libs-0.11/GstLFOControlSource.html#GST-LFO-WAVEFORM-SINE:CAPS">
-<ANCHOR id="GST-LFO-WAVEFORM-SQUARE:CAPS" href="gstreamer-libs-0.11/GstLFOControlSource.html#GST-LFO-WAVEFORM-SQUARE:CAPS">
-<ANCHOR id="GST-LFO-WAVEFORM-SAW:CAPS" href="gstreamer-libs-0.11/GstLFOControlSource.html#GST-LFO-WAVEFORM-SAW:CAPS">
-<ANCHOR id="GST-LFO-WAVEFORM-REVERSE-SAW:CAPS" href="gstreamer-libs-0.11/GstLFOControlSource.html#GST-LFO-WAVEFORM-REVERSE-SAW:CAPS">
-<ANCHOR id="GST-LFO-WAVEFORM-TRIANGLE:CAPS" href="gstreamer-libs-0.11/GstLFOControlSource.html#GST-LFO-WAVEFORM-TRIANGLE:CAPS">
-<ANCHOR id="gst-lfo-control-source-new" href="gstreamer-libs-0.11/GstLFOControlSource.html#gst-lfo-control-source-new">
-<ANCHOR id="GstLFOControlSource.property-details" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource.property-details">
-<ANCHOR id="GstLFOControlSource--amplitude" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource--amplitude">
-<ANCHOR id="GstLFOControlSource--frequency" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource--frequency">
-<ANCHOR id="GstLFOControlSource--offset" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource--offset">
-<ANCHOR id="GstLFOControlSource--timeshift" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource--timeshift">
-<ANCHOR id="GstLFOControlSource--waveform" href="gstreamer-libs-0.11/GstLFOControlSource.html#GstLFOControlSource--waveform">
-<ANCHOR id="gstreamer-libs-GstControllerGObject" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html">
-<ANCHOR id="gstreamer-libs-GstControllerGObject.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gstreamer-libs-GstControllerGObject.synopsis">
-<ANCHOR id="gstreamer-libs-GstControllerGObject.description" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gstreamer-libs-GstControllerGObject.description">
-<ANCHOR id="gstreamer-libs-GstControllerGObject.details" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gstreamer-libs-GstControllerGObject.details">
-<ANCHOR id="gst-object-control-properties" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-control-properties">
-<ANCHOR id="gst-object-uncontrol-properties" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-uncontrol-properties">
-<ANCHOR id="gst-object-get-controller" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-get-controller">
-<ANCHOR id="gst-object-set-controller" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-set-controller">
-<ANCHOR id="gst-object-suggest-next-sync" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-suggest-next-sync">
-<ANCHOR id="gst-object-sync-values" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-sync-values">
-<ANCHOR id="gst-object-get-control-source" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-get-control-source">
-<ANCHOR id="gst-object-set-control-source" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-set-control-source">
-<ANCHOR id="gst-object-get-value-arrays" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-get-value-arrays">
-<ANCHOR id="gst-object-get-value-array" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-get-value-array">
-<ANCHOR id="gst-object-get-control-rate" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-get-control-rate">
-<ANCHOR id="gst-object-set-control-rate" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gst-object-set-control-rate">
-<ANCHOR id="gstreamer-libs-GstControllerGObject.see-also" href="gstreamer-libs-0.11/gstreamer-libs-GstControllerGObject.html#gstreamer-libs-GstControllerGObject.see-also">
-<ANCHOR id="gstreamer-libs-gstdataprotocol" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html">
-<ANCHOR id="gstreamer-libs-gstdataprotocol.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gstreamer-libs-gstdataprotocol.synopsis">
-<ANCHOR id="gstreamer-libs-gstdataprotocol.description" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gstreamer-libs-gstdataprotocol.description">
-<ANCHOR id="gstreamer-libs-gstdataprotocol.details" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gstreamer-libs-gstdataprotocol.details">
-<ANCHOR id="GstDPHeaderFlag" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPHeaderFlag">
-<ANCHOR id="GST-DP-HEADER-FLAG-NONE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-NONE:CAPS">
-<ANCHOR id="GST-DP-HEADER-FLAG-CRC-HEADER:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC-HEADER:CAPS">
-<ANCHOR id="GST-DP-HEADER-FLAG-CRC-PAYLOAD:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC-PAYLOAD:CAPS">
-<ANCHOR id="GST-DP-HEADER-FLAG-CRC:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-FLAG-CRC:CAPS">
-<ANCHOR id="GstDPPayloadType" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPPayloadType">
-<ANCHOR id="GST-DP-PAYLOAD-NONE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-NONE:CAPS">
-<ANCHOR id="GST-DP-PAYLOAD-BUFFER:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-BUFFER:CAPS">
-<ANCHOR id="GST-DP-PAYLOAD-CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-CAPS">
-<ANCHOR id="GST-DP-PAYLOAD-EVENT-NONE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-PAYLOAD-EVENT-NONE:CAPS">
-<ANCHOR id="GST-DP-HEADER-LENGTH:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-HEADER-LENGTH:CAPS">
-<ANCHOR id="GstDPVersion" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPVersion">
-<ANCHOR id="GST-DP-VERSION-0-2:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-0-2:CAPS">
-<ANCHOR id="GST-DP-VERSION-1-0:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-1-0:CAPS">
-<ANCHOR id="GST-DP-VERSION-MAJOR:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MAJOR:CAPS">
-<ANCHOR id="GST-DP-VERSION-MINOR:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GST-DP-VERSION-MINOR:CAPS">
-<ANCHOR id="gst-dp-init" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-init">
-<ANCHOR id="GstDPHeaderFromBufferFunction" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPHeaderFromBufferFunction">
-<ANCHOR id="GstDPPacketFromCapsFunction" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPPacketFromCapsFunction">
-<ANCHOR id="GstDPPacketFromEventFunction" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPPacketFromEventFunction">
-<ANCHOR id="GstDPPacketizer" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#GstDPPacketizer">
-<ANCHOR id="gst-dp-packetizer-new" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-new">
-<ANCHOR id="gst-dp-packetizer-free" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-packetizer-free">
-<ANCHOR id="gst-dp-crc" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-crc">
-<ANCHOR id="gst-dp-header-payload-length" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-length">
-<ANCHOR id="gst-dp-header-payload-type" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-header-payload-type">
-<ANCHOR id="gst-dp-buffer-from-header" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-buffer-from-header">
-<ANCHOR id="gst-dp-caps-from-packet" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-caps-from-packet">
-<ANCHOR id="gst-dp-event-from-packet" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-event-from-packet">
-<ANCHOR id="gst-dp-validate-header" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-validate-header">
-<ANCHOR id="gst-dp-validate-payload" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-validate-payload">
-<ANCHOR id="gst-dp-validate-packet" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gst-dp-validate-packet">
-<ANCHOR id="gstreamer-libs-gstdataprotocol.see-also" href="gstreamer-libs-0.11/gstreamer-libs-gstdataprotocol.html#gstreamer-libs-gstdataprotocol.see-also">
-<ANCHOR id="GstNetClientClock" href="gstreamer-libs-0.11/GstNetClientClock.html">
-<ANCHOR id="GstNetClientClock.synopsis" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.synopsis">
-<ANCHOR id="GstNetClientClock.object-hierarchy" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.object-hierarchy">
-<ANCHOR id="GstNetClientClock.properties" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.properties">
-<ANCHOR id="GstNetClientClock.description" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.description">
-<ANCHOR id="GstNetClientClock.details" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.details">
-<ANCHOR id="GstNetClientClock-struct" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock-struct">
-<ANCHOR id="gst-net-client-clock-new" href="gstreamer-libs-0.11/GstNetClientClock.html#gst-net-client-clock-new">
-<ANCHOR id="GstNetClientClock.property-details" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.property-details">
-<ANCHOR id="GstNetClientClock--address" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock--address">
-<ANCHOR id="GstNetClientClock--port" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock--port">
-<ANCHOR id="GstNetClientClock.see-also" href="gstreamer-libs-0.11/GstNetClientClock.html#GstNetClientClock.see-also">
-<ANCHOR id="gstreamer-libs-GstNetTimePacket" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html">
-<ANCHOR id="gstreamer-libs-GstNetTimePacket.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.synopsis">
-<ANCHOR id="gstreamer-libs-GstNetTimePacket.description" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.description">
-<ANCHOR id="gstreamer-libs-GstNetTimePacket.details" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.details">
-<ANCHOR id="GstNetTimePacket" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket">
-<ANCHOR id="GST-NET-TIME-PACKET-SIZE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#GST-NET-TIME-PACKET-SIZE:CAPS">
-<ANCHOR id="gst-net-time-packet-new" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-new">
-<ANCHOR id="gst-net-time-packet-receive" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-receive">
-<ANCHOR id="gst-net-time-packet-send" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-send">
-<ANCHOR id="gst-net-time-packet-serialize" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-serialize">
-<ANCHOR id="gstreamer-libs-GstNetTimePacket.see-also" href="gstreamer-libs-0.11/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.see-also">
-<ANCHOR id="GstNetTimeProvider" href="gstreamer-libs-0.11/GstNetTimeProvider.html">
-<ANCHOR id="GstNetTimeProvider.synopsis" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.synopsis">
-<ANCHOR id="GstNetTimeProvider.object-hierarchy" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.object-hierarchy">
-<ANCHOR id="GstNetTimeProvider.properties" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.properties">
-<ANCHOR id="GstNetTimeProvider.description" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.description">
-<ANCHOR id="GstNetTimeProvider.details" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.details">
-<ANCHOR id="GstNetTimeProvider-struct" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider-struct">
-<ANCHOR id="gst-net-time-provider-new" href="gstreamer-libs-0.11/GstNetTimeProvider.html#gst-net-time-provider-new">
-<ANCHOR id="GstNetTimeProvider.property-details" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.property-details">
-<ANCHOR id="GstNetTimeProvider--active" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider--active">
-<ANCHOR id="GstNetTimeProvider--address" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider--address">
-<ANCHOR id="GstNetTimeProvider--clock" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider--clock">
-<ANCHOR id="GstNetTimeProvider--port" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider--port">
-<ANCHOR id="GstNetTimeProvider.see-also" href="gstreamer-libs-0.11/GstNetTimeProvider.html#GstNetTimeProvider.see-also">
-<ANCHOR id="gstreamer-libs-GstCheck" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html">
-<ANCHOR id="gstreamer-libs-GstCheck.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.synopsis">
-<ANCHOR id="gstreamer-libs-GstCheck.description" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.description">
-<ANCHOR id="gstreamer-libs-GstCheck.details" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.details">
-<ANCHOR id="GST-START-TEST:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#GST-START-TEST:CAPS">
-<ANCHOR id="GST-END-TEST:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#GST-END-TEST:CAPS">
-<ANCHOR id="ASSERT-BUFFER-REFCOUNT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-BUFFER-REFCOUNT:CAPS">
-<ANCHOR id="ASSERT-CAPS-REFCOUNT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-CAPS-REFCOUNT:CAPS">
-<ANCHOR id="ASSERT-CRITICAL:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-CRITICAL:CAPS">
-<ANCHOR id="ASSERT-WARNING:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-WARNING:CAPS">
-<ANCHOR id="ASSERT-MINI-OBJECT-REFCOUNT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-MINI-OBJECT-REFCOUNT:CAPS">
-<ANCHOR id="ASSERT-OBJECT-REFCOUNT:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT:CAPS">
-<ANCHOR id="ASSERT-OBJECT-REFCOUNT-BETWEEN:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT-BETWEEN:CAPS">
-<ANCHOR id="ASSERT-SET-STATE:CAPS" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#ASSERT-SET-STATE:CAPS">
-<ANCHOR id="fail-unless-equals-int" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-equals-int">
-<ANCHOR id="fail-unless-equals-float" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-equals-float">
-<ANCHOR id="fail-unless-equals-string" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-equals-string">
-<ANCHOR id="fail-unless-equals-uint64" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-equals-uint64">
-<ANCHOR id="fail-unless-equals-int64" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-equals-int64">
-<ANCHOR id="fail-unless-message-error" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#fail-unless-message-error">
-<ANCHOR id="assert-equals-int" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-equals-int">
-<ANCHOR id="assert-equals-float" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-equals-float">
-<ANCHOR id="assert-equals-string" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-equals-string">
-<ANCHOR id="assert-equals-uint64" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-equals-uint64">
-<ANCHOR id="assert-equals-int64" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-equals-int64">
-<ANCHOR id="assert-message-error" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#assert-message-error">
-<ANCHOR id="gst-check-init" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-init">
-<ANCHOR id="gst-check-message-error" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-message-error">
-<ANCHOR id="gst-check-setup-element" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-setup-element">
-<ANCHOR id="gst-check-setup-sink-pad" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad">
-<ANCHOR id="gst-check-setup-src-pad" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-setup-src-pad">
-<ANCHOR id="gst-check-setup-sink-pad-by-name" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name">
-<ANCHOR id="gst-check-setup-src-pad-by-name" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name">
-<ANCHOR id="gst-check-teardown-pad-by-name" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name">
-<ANCHOR id="gst-check-teardown-element" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-teardown-element">
-<ANCHOR id="gst-check-teardown-sink-pad" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad">
-<ANCHOR id="gst-check-teardown-src-pad" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad">
-<ANCHOR id="gst-check-drop-buffers" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-drop-buffers">
-<ANCHOR id="gst-check-buffer-data" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-buffer-data">
-<ANCHOR id="gst-check-caps-equal" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-caps-equal">
-<ANCHOR id="gst-check-element-push-buffer-list" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list">
-<ANCHOR id="gst-check-element-push-buffer" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-element-push-buffer">
-<ANCHOR id="gst-check-run-suite" href="gstreamer-libs-0.11/gstreamer-libs-GstCheck.html#gst-check-run-suite">
-<ANCHOR id="gstreamer-libs-GstBufferStraw" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html">
-<ANCHOR id="gstreamer-libs-GstBufferStraw.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.synopsis">
-<ANCHOR id="gstreamer-libs-GstBufferStraw.description" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.description">
-<ANCHOR id="gstreamer-libs-GstBufferStraw.details" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.details">
-<ANCHOR id="gst-buffer-straw-start-pipeline" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline">
-<ANCHOR id="gst-buffer-straw-get-buffer" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer">
-<ANCHOR id="gst-buffer-straw-stop-pipeline" href="gstreamer-libs-0.11/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline">
-<ANCHOR id="gstreamer-libs-GstStreamConsistency" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html">
-<ANCHOR id="gstreamer-libs-GstStreamConsistency.synopsis" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.synopsis">
-<ANCHOR id="gstreamer-libs-GstStreamConsistency.description" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.description">
-<ANCHOR id="gstreamer-libs-GstStreamConsistency.details" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.details">
-<ANCHOR id="GstStreamConsistency" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency">
-<ANCHOR id="gst-consistency-checker-new" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new">
-<ANCHOR id="gst-consistency-checker-reset" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset">
-<ANCHOR id="gst-consistency-checker-free" href="gstreamer-libs-0.11/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free">
-<ANCHOR id="annotation-glossterm-out" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-allow-none" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-closure" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-closure">
-<ANCHOR id="annotation-glossterm-transfer none" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-transfer none">
-<ANCHOR id="annotation-glossterm-array" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-array">
-<ANCHOR id="annotation-glossterm-element-type" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-element-type">
-<ANCHOR id="annotation-glossterm-in" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-in">
-<ANCHOR id="annotation-glossterm-scope call" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-scope call">
-<ANCHOR id="annotation-glossterm-transfer full" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-transfer full">
-<ANCHOR id="annotation-glossterm-type" href="gstreamer-libs-0.11/annotation-glossary.html#annotation-glossterm-type">
+<ANCHOR id="gstreamer-libs-GstBaseParse" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html">
+<ANCHOR id="gstreamer-libs-GstBaseParse.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.synopsis">
+<ANCHOR id="gstreamer-libs-GstBaseParse.description" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.description">
+<ANCHOR id="gstreamer-libs-GstBaseParse.details" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.details">
+<ANCHOR id="GstBaseParse" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GstBaseParse">
+<ANCHOR id="GstBaseParseClass" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GstBaseParseClass">
+<ANCHOR id="gst-base-parse-set-duration" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration">
+<ANCHOR id="gst-base-parse-set-average-bitrate" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate">
+<ANCHOR id="gst-base-parse-set-min-frame-size" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size">
+<ANCHOR id="gst-base-parse-set-passthrough" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-passthrough">
+<ANCHOR id="gst-base-parse-set-syncable" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable">
+<ANCHOR id="gst-base-parse-set-has-timing-info" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-has-timing-info">
+<ANCHOR id="gst-base-parse-set-frame-rate" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-frame-rate">
+<ANCHOR id="gst-base-parse-set-latency" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency">
+<ANCHOR id="gst-base-parse-convert-default" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default">
+<ANCHOR id="gst-base-parse-add-index-entry" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry">
+<ANCHOR id="GstBaseParseFrame" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GstBaseParseFrame">
+<ANCHOR id="GstBaseParseFrameFlags" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-CLIP:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-DROP:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-DROP:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FRAME-FLAG-QUEUE:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-QUEUE:CAPS">
+<ANCHOR id="gst-base-parse-frame-new" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new">
+<ANCHOR id="gst-base-parse-frame-init" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init">
+<ANCHOR id="gst-base-parse-frame-free" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free">
+<ANCHOR id="gst-base-parse-push-frame" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame">
+<ANCHOR id="GST-BASE-PARSE-DRAINING:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FLAG-DRAINING:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS">
+<ANCHOR id="GST-BASE-PARSE-FLOW-DROPPED:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS">
+<ANCHOR id="GST-BASE-PARSE-LOST-SYNC:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS">
+<ANCHOR id="GST-BASE-PARSE-SINK-PAD:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS">
+<ANCHOR id="GST-BASE-PARSE-SRC-PAD:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS">
+<ANCHOR id="gstreamer-libs-GstBaseParse.see-also" href="gstreamer-libs-1.0/gstreamer-libs-GstBaseParse.html#gstreamer-libs-GstBaseParse.see-also">
+<ANCHOR id="GstBaseSrc" href="gstreamer-libs-1.0/GstBaseSrc.html">
+<ANCHOR id="GstBaseSrc.synopsis" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.synopsis">
+<ANCHOR id="GstBaseSrc.object-hierarchy" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.object-hierarchy">
+<ANCHOR id="GstBaseSrc.properties" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.properties">
+<ANCHOR id="GstBaseSrc.description" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.description">
+<ANCHOR id="GstBaseSrc.details" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.details">
+<ANCHOR id="GstBaseSrc-struct" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc-struct">
+<ANCHOR id="GstBaseSrcClass" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrcClass">
+<ANCHOR id="GstBaseSrcFlags" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrcFlags">
+<ANCHOR id="GST-BASE-SRC-FLAG-STARTING:CAPS" href="gstreamer-libs-1.0/GstBaseSrc.html#GST-BASE-SRC-FLAG-STARTING:CAPS">
+<ANCHOR id="GST-BASE-SRC-FLAG-STARTED:CAPS" href="gstreamer-libs-1.0/GstBaseSrc.html#GST-BASE-SRC-FLAG-STARTED:CAPS">
+<ANCHOR id="GST-BASE-SRC-FLAG-LAST:CAPS" href="gstreamer-libs-1.0/GstBaseSrc.html#GST-BASE-SRC-FLAG-LAST:CAPS">
+<ANCHOR id="gst-base-src-wait-playing" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-wait-playing">
+<ANCHOR id="gst-base-src-is-live" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-is-live">
+<ANCHOR id="gst-base-src-set-live" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-live">
+<ANCHOR id="gst-base-src-set-format" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-format">
+<ANCHOR id="gst-base-src-query-latency" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-query-latency">
+<ANCHOR id="gst-base-src-get-blocksize" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-get-blocksize">
+<ANCHOR id="gst-base-src-set-blocksize" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-blocksize">
+<ANCHOR id="gst-base-src-get-do-timestamp" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-get-do-timestamp">
+<ANCHOR id="gst-base-src-set-do-timestamp" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-do-timestamp">
+<ANCHOR id="gst-base-src-set-dynamic-size" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-dynamic-size">
+<ANCHOR id="gst-base-src-new-seamless-segment" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-new-seamless-segment">
+<ANCHOR id="gst-base-src-set-caps" href="gstreamer-libs-1.0/GstBaseSrc.html#gst-base-src-set-caps">
+<ANCHOR id="GST-BASE-SRC-PAD:CAPS" href="gstreamer-libs-1.0/GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS">
+<ANCHOR id="GstBaseSrc.property-details" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.property-details">
+<ANCHOR id="GstBaseSrc--blocksize" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc--blocksize">
+<ANCHOR id="GstBaseSrc--do-timestamp" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc--do-timestamp">
+<ANCHOR id="GstBaseSrc--num-buffers" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc--num-buffers">
+<ANCHOR id="GstBaseSrc--typefind" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc--typefind">
+<ANCHOR id="GstBaseSrc.see-also" href="gstreamer-libs-1.0/GstBaseSrc.html#GstBaseSrc.see-also">
+<ANCHOR id="GstBaseSink" href="gstreamer-libs-1.0/GstBaseSink.html">
+<ANCHOR id="GstBaseSink.synopsis" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.synopsis">
+<ANCHOR id="GstBaseSink.object-hierarchy" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.object-hierarchy">
+<ANCHOR id="GstBaseSink.properties" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.properties">
+<ANCHOR id="GstBaseSink.description" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.description">
+<ANCHOR id="GstBaseSink.details" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.details">
+<ANCHOR id="GstBaseSink-struct" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink-struct">
+<ANCHOR id="GstBaseSinkClass" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSinkClass">
+<ANCHOR id="gst-base-sink-query-latency" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-query-latency">
+<ANCHOR id="gst-base-sink-get-latency" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-latency">
+<ANCHOR id="gst-base-sink-do-preroll" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-do-preroll">
+<ANCHOR id="gst-base-sink-wait-preroll" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-preroll">
+<ANCHOR id="gst-base-sink-wait-clock" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-clock">
+<ANCHOR id="gst-base-sink-wait-eos" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-eos">
+<ANCHOR id="gst-base-sink-set-sync" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-sync">
+<ANCHOR id="gst-base-sink-get-sync" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-sync">
+<ANCHOR id="gst-base-sink-set-max-lateness" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-max-lateness">
+<ANCHOR id="gst-base-sink-get-max-lateness" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-max-lateness">
+<ANCHOR id="gst-base-sink-set-qos-enabled" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-qos-enabled">
+<ANCHOR id="gst-base-sink-is-qos-enabled" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-is-qos-enabled">
+<ANCHOR id="gst-base-sink-set-async-enabled" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-async-enabled">
+<ANCHOR id="gst-base-sink-is-async-enabled" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-is-async-enabled">
+<ANCHOR id="gst-base-sink-set-ts-offset" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-ts-offset">
+<ANCHOR id="gst-base-sink-get-ts-offset" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-ts-offset">
+<ANCHOR id="gst-base-sink-set-render-delay" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-render-delay">
+<ANCHOR id="gst-base-sink-get-render-delay" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-render-delay">
+<ANCHOR id="gst-base-sink-get-last-sample" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-last-sample">
+<ANCHOR id="gst-base-sink-set-blocksize" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-blocksize">
+<ANCHOR id="gst-base-sink-get-blocksize" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-blocksize">
+<ANCHOR id="gst-base-sink-get-throttle-time" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-throttle-time">
+<ANCHOR id="gst-base-sink-set-throttle-time" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-throttle-time">
+<ANCHOR id="GST-BASE-SINK-PAD:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PAD:CAPS">
+<ANCHOR id="GST-BASE-SINK-GET-PREROLL-COND:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-COND:CAPS">
+<ANCHOR id="GST-BASE-SINK-GET-PREROLL-LOCK:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-LOCK:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-BROADCAST:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-BROADCAST:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-LOCK:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-LOCK:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-SIGNAL:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-SIGNAL:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-TRYLOCK:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-TRYLOCK:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-UNLOCK:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-UNLOCK:CAPS">
+<ANCHOR id="GST-BASE-SINK-PREROLL-WAIT:CAPS" href="gstreamer-libs-1.0/GstBaseSink.html#GST-BASE-SINK-PREROLL-WAIT:CAPS">
+<ANCHOR id="GstBaseSink.property-details" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.property-details">
+<ANCHOR id="GstBaseSink--async" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--async">
+<ANCHOR id="GstBaseSink--blocksize" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--blocksize">
+<ANCHOR id="GstBaseSink--enable-last-sample" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--enable-last-sample">
+<ANCHOR id="GstBaseSink--last-sample" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--last-sample">
+<ANCHOR id="GstBaseSink--max-lateness" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--max-lateness">
+<ANCHOR id="GstBaseSink--qos" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--qos">
+<ANCHOR id="GstBaseSink--render-delay" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--render-delay">
+<ANCHOR id="GstBaseSink--sync" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--sync">
+<ANCHOR id="GstBaseSink--throttle-time" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--throttle-time">
+<ANCHOR id="GstBaseSink--ts-offset" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--ts-offset">
+<ANCHOR id="GstBaseSink.see-also" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.see-also">
+<ANCHOR id="GstBaseTransform" href="gstreamer-libs-1.0/GstBaseTransform.html">
+<ANCHOR id="GstBaseTransform.synopsis" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.synopsis">
+<ANCHOR id="GstBaseTransform.object-hierarchy" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.object-hierarchy">
+<ANCHOR id="GstBaseTransform.properties" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.properties">
+<ANCHOR id="GstBaseTransform.description" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.description">
+<ANCHOR id="GstBaseTransform.details" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.details">
+<ANCHOR id="GstBaseTransform-struct" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform-struct">
+<ANCHOR id="GstBaseTransformClass" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransformClass">
+<ANCHOR id="gst-base-transform-is-passthrough" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-is-passthrough">
+<ANCHOR id="gst-base-transform-set-passthrough" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-set-passthrough">
+<ANCHOR id="gst-base-transform-is-in-place" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-is-in-place">
+<ANCHOR id="gst-base-transform-set-in-place" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-set-in-place">
+<ANCHOR id="gst-base-transform-is-qos-enabled" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-is-qos-enabled">
+<ANCHOR id="gst-base-transform-set-qos-enabled" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-set-qos-enabled">
+<ANCHOR id="gst-base-transform-update-qos" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-update-qos">
+<ANCHOR id="gst-base-transform-set-gap-aware" href="gstreamer-libs-1.0/GstBaseTransform.html#gst-base-transform-set-gap-aware">
+<ANCHOR id="GST-BASE-TRANSFORM-SINK-NAME:CAPS" href="gstreamer-libs-1.0/GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS">
+<ANCHOR id="GST-BASE-TRANSFORM-SRC-NAME:CAPS" href="gstreamer-libs-1.0/GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS">
+<ANCHOR id="GST-BASE-TRANSFORM-SINK-PAD:CAPS" href="gstreamer-libs-1.0/GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS">
+<ANCHOR id="GST-BASE-TRANSFORM-SRC-PAD:CAPS" href="gstreamer-libs-1.0/GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS">
+<ANCHOR id="GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" href="gstreamer-libs-1.0/GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS">
+<ANCHOR id="GstBaseTransform.property-details" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.property-details">
+<ANCHOR id="GstBaseTransform--qos" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform--qos">
+<ANCHOR id="GstBaseTransform.see-also" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.see-also">
+<ANCHOR id="GstPushSrc" href="gstreamer-libs-1.0/GstPushSrc.html">
+<ANCHOR id="GstPushSrc.synopsis" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc.synopsis">
+<ANCHOR id="GstPushSrc.object-hierarchy" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc.object-hierarchy">
+<ANCHOR id="GstPushSrc.description" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc.description">
+<ANCHOR id="GstPushSrc.details" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc.details">
+<ANCHOR id="GstPushSrc-struct" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc-struct">
+<ANCHOR id="GstPushSrc.see-also" href="gstreamer-libs-1.0/GstPushSrc.html#GstPushSrc.see-also">
+<ANCHOR id="GstAdapter" href="gstreamer-libs-1.0/GstAdapter.html">
+<ANCHOR id="GstAdapter.synopsis" href="gstreamer-libs-1.0/GstAdapter.html#GstAdapter.synopsis">
+<ANCHOR id="GstAdapter.object-hierarchy" href="gstreamer-libs-1.0/GstAdapter.html#GstAdapter.object-hierarchy">
+<ANCHOR id="GstAdapter.description" href="gstreamer-libs-1.0/GstAdapter.html#GstAdapter.description">
+<ANCHOR id="GstAdapter.details" href="gstreamer-libs-1.0/GstAdapter.html#GstAdapter.details">
+<ANCHOR id="GstAdapter-struct" href="gstreamer-libs-1.0/GstAdapter.html#GstAdapter-struct">
+<ANCHOR id="gst-adapter-new" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-new">
+<ANCHOR id="gst-adapter-clear" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-clear">
+<ANCHOR id="gst-adapter-push" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-push">
+<ANCHOR id="gst-adapter-map" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-map">
+<ANCHOR id="gst-adapter-unmap" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-unmap">
+<ANCHOR id="gst-adapter-copy" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-copy">
+<ANCHOR id="gst-adapter-flush" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-flush">
+<ANCHOR id="gst-adapter-available" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-available">
+<ANCHOR id="gst-adapter-available-fast" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-available-fast">
+<ANCHOR id="gst-adapter-take" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-take">
+<ANCHOR id="gst-adapter-take-buffer" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-take-buffer">
+<ANCHOR id="gst-adapter-take-list" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-take-list">
+<ANCHOR id="gst-adapter-prev-pts" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-prev-pts">
+<ANCHOR id="gst-adapter-prev-dts" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-prev-dts">
+<ANCHOR id="gst-adapter-masked-scan-uint32" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-masked-scan-uint32">
+<ANCHOR id="gst-adapter-masked-scan-uint32-peek" href="gstreamer-libs-1.0/GstAdapter.html#gst-adapter-masked-scan-uint32-peek">
+<ANCHOR id="gstreamer-libs-GstBitReader" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html">
+<ANCHOR id="gstreamer-libs-GstBitReader.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.synopsis">
+<ANCHOR id="gstreamer-libs-GstBitReader.description" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.description">
+<ANCHOR id="gstreamer-libs-GstBitReader.details" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gstreamer-libs-GstBitReader.details">
+<ANCHOR id="GstBitReader" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#GstBitReader">
+<ANCHOR id="GST-BIT-READER-INIT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#GST-BIT-READER-INIT:CAPS">
+<ANCHOR id="gst-bit-reader-new" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-new">
+<ANCHOR id="gst-bit-reader-free" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-free">
+<ANCHOR id="gst-bit-reader-init" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-init">
+<ANCHOR id="gst-bit-reader-get-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-pos">
+<ANCHOR id="gst-bit-reader-get-remaining" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-remaining">
+<ANCHOR id="gst-bit-reader-set-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-set-pos">
+<ANCHOR id="gst-bit-reader-get-size" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-size">
+<ANCHOR id="gst-bit-reader-skip" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip">
+<ANCHOR id="gst-bit-reader-skip-to-byte" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte">
+<ANCHOR id="gst-bit-reader-get-bits-uint16" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16">
+<ANCHOR id="gst-bit-reader-get-bits-uint32" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32">
+<ANCHOR id="gst-bit-reader-get-bits-uint64" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64">
+<ANCHOR id="gst-bit-reader-get-bits-uint8" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8">
+<ANCHOR id="gst-bit-reader-peek-bits-uint16" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16">
+<ANCHOR id="gst-bit-reader-peek-bits-uint32" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32">
+<ANCHOR id="gst-bit-reader-peek-bits-uint64" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64">
+<ANCHOR id="gst-bit-reader-peek-bits-uint8" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8">
+<ANCHOR id="gst-bit-reader-skip-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-unchecked">
+<ANCHOR id="gst-bit-reader-skip-to-byte-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte-unchecked">
+<ANCHOR id="gst-bit-reader-get-bits-uint16-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked">
+<ANCHOR id="gst-bit-reader-get-bits-uint32-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked">
+<ANCHOR id="gst-bit-reader-get-bits-uint64-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked">
+<ANCHOR id="gst-bit-reader-get-bits-uint8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked">
+<ANCHOR id="gst-bit-reader-peek-bits-uint16-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked">
+<ANCHOR id="gst-bit-reader-peek-bits-uint32-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked">
+<ANCHOR id="gst-bit-reader-peek-bits-uint64-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64-unchecked">
+<ANCHOR id="gst-bit-reader-peek-bits-uint8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked">
+<ANCHOR id="gstreamer-libs-GstByteReader" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html">
+<ANCHOR id="gstreamer-libs-GstByteReader.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.synopsis">
+<ANCHOR id="gstreamer-libs-GstByteReader.description" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.description">
+<ANCHOR id="gstreamer-libs-GstByteReader.details" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gstreamer-libs-GstByteReader.details">
+<ANCHOR id="GstByteReader" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#GstByteReader">
+<ANCHOR id="GST-BYTE-READER-INIT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS">
+<ANCHOR id="gst-byte-reader-new" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-new">
+<ANCHOR id="gst-byte-reader-free" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-free">
+<ANCHOR id="gst-byte-reader-init" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-init">
+<ANCHOR id="gst-byte-reader-get-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-pos">
+<ANCHOR id="gst-byte-reader-get-remaining" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-remaining">
+<ANCHOR id="gst-byte-reader-set-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-set-pos">
+<ANCHOR id="gst-byte-reader-get-size" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-size">
+<ANCHOR id="gst-byte-reader-skip" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip">
+<ANCHOR id="gst-byte-reader-get-int8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8">
+<ANCHOR id="gst-byte-reader-get-int16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be">
+<ANCHOR id="gst-byte-reader-get-int16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le">
+<ANCHOR id="gst-byte-reader-get-int24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be">
+<ANCHOR id="gst-byte-reader-get-int24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le">
+<ANCHOR id="gst-byte-reader-get-int32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be">
+<ANCHOR id="gst-byte-reader-get-int32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le">
+<ANCHOR id="gst-byte-reader-get-int64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be">
+<ANCHOR id="gst-byte-reader-get-int64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le">
+<ANCHOR id="gst-byte-reader-get-uint8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8">
+<ANCHOR id="gst-byte-reader-get-uint16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be">
+<ANCHOR id="gst-byte-reader-get-uint16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le">
+<ANCHOR id="gst-byte-reader-get-uint24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be">
+<ANCHOR id="gst-byte-reader-get-uint24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le">
+<ANCHOR id="gst-byte-reader-get-uint32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be">
+<ANCHOR id="gst-byte-reader-get-uint32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le">
+<ANCHOR id="gst-byte-reader-get-uint64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be">
+<ANCHOR id="gst-byte-reader-get-uint64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le">
+<ANCHOR id="gst-byte-reader-peek-int8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8">
+<ANCHOR id="gst-byte-reader-peek-int16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be">
+<ANCHOR id="gst-byte-reader-peek-int16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le">
+<ANCHOR id="gst-byte-reader-peek-int24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be">
+<ANCHOR id="gst-byte-reader-peek-int24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le">
+<ANCHOR id="gst-byte-reader-peek-int32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be">
+<ANCHOR id="gst-byte-reader-peek-int32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le">
+<ANCHOR id="gst-byte-reader-peek-int64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be">
+<ANCHOR id="gst-byte-reader-peek-int64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le">
+<ANCHOR id="gst-byte-reader-peek-uint8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8">
+<ANCHOR id="gst-byte-reader-peek-uint16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be">
+<ANCHOR id="gst-byte-reader-peek-uint16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le">
+<ANCHOR id="gst-byte-reader-peek-uint24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be">
+<ANCHOR id="gst-byte-reader-peek-uint24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le">
+<ANCHOR id="gst-byte-reader-peek-uint32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be">
+<ANCHOR id="gst-byte-reader-peek-uint32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le">
+<ANCHOR id="gst-byte-reader-peek-uint64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be">
+<ANCHOR id="gst-byte-reader-peek-uint64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le">
+<ANCHOR id="gst-byte-reader-get-float32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le">
+<ANCHOR id="gst-byte-reader-get-float32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be">
+<ANCHOR id="gst-byte-reader-get-float64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le">
+<ANCHOR id="gst-byte-reader-get-float64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be">
+<ANCHOR id="gst-byte-reader-peek-float32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le">
+<ANCHOR id="gst-byte-reader-peek-float32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be">
+<ANCHOR id="gst-byte-reader-peek-float64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le">
+<ANCHOR id="gst-byte-reader-peek-float64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be">
+<ANCHOR id="gst-byte-reader-get-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data">
+<ANCHOR id="gst-byte-reader-dup-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data">
+<ANCHOR id="gst-byte-reader-peek-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data">
+<ANCHOR id="gst-byte-reader-masked-scan-uint32" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-masked-scan-uint32">
+<ANCHOR id="gst-byte-reader-get-string" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string">
+<ANCHOR id="gst-byte-reader-get-string-utf8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string-utf8">
+<ANCHOR id="gst-byte-reader-peek-string" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string">
+<ANCHOR id="gst-byte-reader-peek-string-utf8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string-utf8">
+<ANCHOR id="gst-byte-reader-dup-string" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string">
+<ANCHOR id="gst-byte-reader-dup-string-utf8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf8">
+<ANCHOR id="gst-byte-reader-dup-string-utf16" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf16">
+<ANCHOR id="gst-byte-reader-dup-string-utf32" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf32">
+<ANCHOR id="gst-byte-reader-skip-string" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string">
+<ANCHOR id="gst-byte-reader-skip-string-utf8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf8">
+<ANCHOR id="gst-byte-reader-skip-string-utf16" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf16">
+<ANCHOR id="gst-byte-reader-skip-string-utf32" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf32">
+<ANCHOR id="gst-byte-reader-skip-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-unchecked">
+<ANCHOR id="gst-byte-reader-get-int8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked">
+<ANCHOR id="gst-byte-reader-get-int16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-int16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-int24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-int24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-int32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-int32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-int64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-int64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-uint64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-int64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-uint64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-float32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-float32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be-unchecked">
+<ANCHOR id="gst-byte-reader-get-float64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le-unchecked">
+<ANCHOR id="gst-byte-reader-get-float64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-float32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-float32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be-unchecked">
+<ANCHOR id="gst-byte-reader-peek-float64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le-unchecked">
+<ANCHOR id="gst-byte-reader-peek-float64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be-unchecked">
+<ANCHOR id="gst-byte-reader-dup-data-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked">
+<ANCHOR id="gst-byte-reader-get-data-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked">
+<ANCHOR id="gst-byte-reader-peek-data-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked">
+<ANCHOR id="gstreamer-libs-GstByteWriter" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html">
+<ANCHOR id="gstreamer-libs-GstByteWriter.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.synopsis">
+<ANCHOR id="gstreamer-libs-GstByteWriter.description" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.description">
+<ANCHOR id="gstreamer-libs-GstByteWriter.details" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gstreamer-libs-GstByteWriter.details">
+<ANCHOR id="GstByteWriter" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#GstByteWriter">
+<ANCHOR id="gst-byte-writer-new" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new">
+<ANCHOR id="gst-byte-writer-new-with-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data">
+<ANCHOR id="gst-byte-writer-new-with-size" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-size">
+<ANCHOR id="gst-byte-writer-init" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init">
+<ANCHOR id="gst-byte-writer-init-with-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-data">
+<ANCHOR id="gst-byte-writer-init-with-size" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-size">
+<ANCHOR id="gst-byte-writer-free" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free">
+<ANCHOR id="gst-byte-writer-free-and-get-buffer" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer">
+<ANCHOR id="gst-byte-writer-free-and-get-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data">
+<ANCHOR id="gst-byte-writer-reset" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset">
+<ANCHOR id="gst-byte-writer-reset-and-get-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data">
+<ANCHOR id="gst-byte-writer-reset-and-get-buffer" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer">
+<ANCHOR id="gst-byte-writer-get-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos">
+<ANCHOR id="gst-byte-writer-set-pos" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos">
+<ANCHOR id="gst-byte-writer-get-remaining" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-remaining">
+<ANCHOR id="gst-byte-writer-get-size" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-size">
+<ANCHOR id="gst-byte-writer-ensure-free-space" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-ensure-free-space">
+<ANCHOR id="gst-byte-writer-put-int8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8">
+<ANCHOR id="gst-byte-writer-put-int16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be">
+<ANCHOR id="gst-byte-writer-put-int16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le">
+<ANCHOR id="gst-byte-writer-put-int24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be">
+<ANCHOR id="gst-byte-writer-put-int24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le">
+<ANCHOR id="gst-byte-writer-put-int32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be">
+<ANCHOR id="gst-byte-writer-put-int32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le">
+<ANCHOR id="gst-byte-writer-put-int64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be">
+<ANCHOR id="gst-byte-writer-put-int64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le">
+<ANCHOR id="gst-byte-writer-put-uint8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8">
+<ANCHOR id="gst-byte-writer-put-uint16-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be">
+<ANCHOR id="gst-byte-writer-put-uint16-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le">
+<ANCHOR id="gst-byte-writer-put-uint24-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be">
+<ANCHOR id="gst-byte-writer-put-uint24-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le">
+<ANCHOR id="gst-byte-writer-put-uint32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be">
+<ANCHOR id="gst-byte-writer-put-uint32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le">
+<ANCHOR id="gst-byte-writer-put-uint64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be">
+<ANCHOR id="gst-byte-writer-put-uint64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le">
+<ANCHOR id="gst-byte-writer-put-float32-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be">
+<ANCHOR id="gst-byte-writer-put-float32-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le">
+<ANCHOR id="gst-byte-writer-put-float64-be" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be">
+<ANCHOR id="gst-byte-writer-put-float64-le" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le">
+<ANCHOR id="gst-byte-writer-put-string" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string">
+<ANCHOR id="gst-byte-writer-put-string-utf16" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf16">
+<ANCHOR id="gst-byte-writer-put-string-utf32" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf32">
+<ANCHOR id="gst-byte-writer-put-string-utf8" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf8">
+<ANCHOR id="gst-byte-writer-put-data" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data">
+<ANCHOR id="gst-byte-writer-fill" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill">
+<ANCHOR id="gst-byte-writer-put-int8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8-unchecked">
+<ANCHOR id="gst-byte-writer-put-int16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-int16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-int24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-int24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-int32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-int32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-int64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-int64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint8-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint16-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint16-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint24-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint24-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-uint64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-float32-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-float32-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-float64-be-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be-unchecked">
+<ANCHOR id="gst-byte-writer-put-float64-le-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le-unchecked">
+<ANCHOR id="gst-byte-writer-put-data-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked">
+<ANCHOR id="gst-byte-writer-fill-unchecked" href="gstreamer-libs-1.0/gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked">
+<ANCHOR id="GstCollectPads2" href="gstreamer-libs-1.0/GstCollectPads2.html">
+<ANCHOR id="GstCollectPads2.synopsis" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2.synopsis">
+<ANCHOR id="GstCollectPads2.object-hierarchy" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2.object-hierarchy">
+<ANCHOR id="GstCollectPads2.description" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2.description">
+<ANCHOR id="GstCollectPads2.details" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2.details">
+<ANCHOR id="GstCollectPads2-struct" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2-struct">
+<ANCHOR id="GstCollectData2" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectData2">
+<ANCHOR id="GstCollectData2DestroyNotify" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectData2DestroyNotify">
+<ANCHOR id="GstCollectPads2BufferFunction" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2BufferFunction">
+<ANCHOR id="GstCollectPads2CompareFunction" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2CompareFunction">
+<ANCHOR id="GstCollectPads2EventFunction" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2EventFunction">
+<ANCHOR id="GstCollectPads2ClipFunction" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2ClipFunction">
+<ANCHOR id="GstCollectPads2Function" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2Function">
+<ANCHOR id="GstCollectPads2StateFlags" href="gstreamer-libs-1.0/GstCollectPads2.html#GstCollectPads2StateFlags">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-EOS:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-EOS:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-FLUSHING:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-FLUSHING:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-NEW-SEGMENT:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-NEW-SEGMENT:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-WAITING:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-WAITING:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-LOCKED:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-LOCKED:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-IS-SET:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-IS-SET:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-SET:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-SET:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STATE-UNSET:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STATE-UNSET:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-GET-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STREAM-LOCK:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS" href="gstreamer-libs-1.0/GstCollectPads2.html#GST-COLLECT-PADS2-STREAM-UNLOCK:CAPS">
+<ANCHOR id="gst-collect-pads2-new" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-new">
+<ANCHOR id="gst-collect-pads2-add-pad" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-add-pad">
+<ANCHOR id="gst-collect-pads2-add-pad-full" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-add-pad-full">
+<ANCHOR id="gst-collect-pads2-remove-pad" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-remove-pad">
+<ANCHOR id="gst-collect-pads2-start" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-start">
+<ANCHOR id="gst-collect-pads2-stop" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-stop">
+<ANCHOR id="gst-collect-pads2-available" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-available">
+<ANCHOR id="gst-collect-pads2-is-active" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-is-active">
+<ANCHOR id="gst-collect-pads2-collect" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-collect">
+<ANCHOR id="gst-collect-pads2-collect-range" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-collect-range">
+<ANCHOR id="gst-collect-pads2-flush" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-flush">
+<ANCHOR id="gst-collect-pads2-peek" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-peek">
+<ANCHOR id="gst-collect-pads2-pop" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-pop">
+<ANCHOR id="gst-collect-pads2-read-buffer" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-read-buffer">
+<ANCHOR id="gst-collect-pads2-take-buffer" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-take-buffer">
+<ANCHOR id="gst-collect-pads2-set-buffer-function" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-buffer-function">
+<ANCHOR id="gst-collect-pads2-set-compare-function" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-compare-function">
+<ANCHOR id="gst-collect-pads2-set-event-function" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-event-function">
+<ANCHOR id="gst-collect-pads2-set-clip-function" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-clip-function">
+<ANCHOR id="gst-collect-pads2-set-flushing" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-flushing">
+<ANCHOR id="gst-collect-pads2-set-function" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-function">
+<ANCHOR id="gst-collect-pads2-set-waiting" href="gstreamer-libs-1.0/GstCollectPads2.html#gst-collect-pads2-set-waiting">
+<ANCHOR id="gstreamer-libs-GstTypeFindHelper" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html">
+<ANCHOR id="gstreamer-libs-GstTypeFindHelper.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.synopsis">
+<ANCHOR id="gstreamer-libs-GstTypeFindHelper.description" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.description">
+<ANCHOR id="gstreamer-libs-GstTypeFindHelper.details" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gstreamer-libs-GstTypeFindHelper.details">
+<ANCHOR id="gst-type-find-helper" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper">
+<ANCHOR id="gst-type-find-helper-for-buffer" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer">
+<ANCHOR id="gst-type-find-helper-for-extension" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension">
+<ANCHOR id="gst-type-find-helper-for-data" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data">
+<ANCHOR id="GstTypeFindHelperGetRangeFunction" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction">
+<ANCHOR id="gst-type-find-helper-get-range" href="gstreamer-libs-1.0/gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range">
+<ANCHOR id="GstTimedValueControlSource" href="gstreamer-libs-1.0/GstTimedValueControlSource.html">
+<ANCHOR id="GstTimedValueControlSource.synopsis" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#GstTimedValueControlSource.synopsis">
+<ANCHOR id="GstTimedValueControlSource.object-hierarchy" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#GstTimedValueControlSource.object-hierarchy">
+<ANCHOR id="GstTimedValueControlSource.description" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#GstTimedValueControlSource.description">
+<ANCHOR id="GstTimedValueControlSource.details" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#GstTimedValueControlSource.details">
+<ANCHOR id="GstTimedValueControlSource-struct" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#GstTimedValueControlSource-struct">
+<ANCHOR id="gst-timed-value-control-source-find-control-point-iter" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter">
+<ANCHOR id="gst-timed-value-control-source-set" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-set">
+<ANCHOR id="gst-timed-value-control-source-set-from-list" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-set-from-list">
+<ANCHOR id="gst-timed-value-control-source-get-all" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-get-all">
+<ANCHOR id="gst-timed-value-control-source-unset" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-unset">
+<ANCHOR id="gst-timed-value-control-source-unset-all" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-unset-all">
+<ANCHOR id="gst-timed-value-control-source-get-count" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-source-get-count">
+<ANCHOR id="gst-timed-value-control-invalidate-cache" href="gstreamer-libs-1.0/GstTimedValueControlSource.html#gst-timed-value-control-invalidate-cache">
+<ANCHOR id="GstInterpolationControlSource" href="gstreamer-libs-1.0/GstInterpolationControlSource.html">
+<ANCHOR id="GstInterpolationControlSource.synopsis" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.synopsis">
+<ANCHOR id="GstInterpolationControlSource.object-hierarchy" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.object-hierarchy">
+<ANCHOR id="GstInterpolationControlSource.properties" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.properties">
+<ANCHOR id="GstInterpolationControlSource.description" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.description">
+<ANCHOR id="GstInterpolationControlSource.details" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.details">
+<ANCHOR id="GstInterpolationControlSource-struct" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource-struct">
+<ANCHOR id="GstInterpolationMode" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationMode">
+<ANCHOR id="GST-INTERPOLATION-MODE-NONE:CAPS" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-NONE:CAPS">
+<ANCHOR id="GST-INTERPOLATION-MODE-LINEAR:CAPS" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-LINEAR:CAPS">
+<ANCHOR id="GST-INTERPOLATION-MODE-CUBIC:CAPS" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GST-INTERPOLATION-MODE-CUBIC:CAPS">
+<ANCHOR id="gst-interpolation-control-source-new" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#gst-interpolation-control-source-new">
+<ANCHOR id="GstInterpolationControlSource.property-details" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource.property-details">
+<ANCHOR id="GstInterpolationControlSource--mode" href="gstreamer-libs-1.0/GstInterpolationControlSource.html#GstInterpolationControlSource--mode">
+<ANCHOR id="GstLFOControlSource" href="gstreamer-libs-1.0/GstLFOControlSource.html">
+<ANCHOR id="GstLFOControlSource.synopsis" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.synopsis">
+<ANCHOR id="GstLFOControlSource.object-hierarchy" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.object-hierarchy">
+<ANCHOR id="GstLFOControlSource.properties" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.properties">
+<ANCHOR id="GstLFOControlSource.description" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.description">
+<ANCHOR id="GstLFOControlSource.details" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.details">
+<ANCHOR id="GstLFOControlSource-struct" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource-struct">
+<ANCHOR id="GstLFOWaveform" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOWaveform">
+<ANCHOR id="GST-LFO-WAVEFORM-SINE:CAPS" href="gstreamer-libs-1.0/GstLFOControlSource.html#GST-LFO-WAVEFORM-SINE:CAPS">
+<ANCHOR id="GST-LFO-WAVEFORM-SQUARE:CAPS" href="gstreamer-libs-1.0/GstLFOControlSource.html#GST-LFO-WAVEFORM-SQUARE:CAPS">
+<ANCHOR id="GST-LFO-WAVEFORM-SAW:CAPS" href="gstreamer-libs-1.0/GstLFOControlSource.html#GST-LFO-WAVEFORM-SAW:CAPS">
+<ANCHOR id="GST-LFO-WAVEFORM-REVERSE-SAW:CAPS" href="gstreamer-libs-1.0/GstLFOControlSource.html#GST-LFO-WAVEFORM-REVERSE-SAW:CAPS">
+<ANCHOR id="GST-LFO-WAVEFORM-TRIANGLE:CAPS" href="gstreamer-libs-1.0/GstLFOControlSource.html#GST-LFO-WAVEFORM-TRIANGLE:CAPS">
+<ANCHOR id="gst-lfo-control-source-new" href="gstreamer-libs-1.0/GstLFOControlSource.html#gst-lfo-control-source-new">
+<ANCHOR id="GstLFOControlSource.property-details" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource.property-details">
+<ANCHOR id="GstLFOControlSource--amplitude" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource--amplitude">
+<ANCHOR id="GstLFOControlSource--frequency" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource--frequency">
+<ANCHOR id="GstLFOControlSource--offset" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource--offset">
+<ANCHOR id="GstLFOControlSource--timeshift" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource--timeshift">
+<ANCHOR id="GstLFOControlSource--waveform" href="gstreamer-libs-1.0/GstLFOControlSource.html#GstLFOControlSource--waveform">
+<ANCHOR id="GstTriggerControlSource" href="gstreamer-libs-1.0/GstTriggerControlSource.html">
+<ANCHOR id="GstTriggerControlSource.synopsis" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.synopsis">
+<ANCHOR id="GstTriggerControlSource.object-hierarchy" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.object-hierarchy">
+<ANCHOR id="GstTriggerControlSource.properties" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.properties">
+<ANCHOR id="GstTriggerControlSource.description" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.description">
+<ANCHOR id="GstTriggerControlSource.details" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.details">
+<ANCHOR id="GstTriggerControlSource-struct" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource-struct">
+<ANCHOR id="gst-trigger-control-source-new" href="gstreamer-libs-1.0/GstTriggerControlSource.html#gst-trigger-control-source-new">
+<ANCHOR id="GstTriggerControlSource.property-details" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource.property-details">
+<ANCHOR id="GstTriggerControlSource--tolerance" href="gstreamer-libs-1.0/GstTriggerControlSource.html#GstTriggerControlSource--tolerance">
+<ANCHOR id="GstNetClientClock" href="gstreamer-libs-1.0/GstNetClientClock.html">
+<ANCHOR id="GstNetClientClock.synopsis" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.synopsis">
+<ANCHOR id="GstNetClientClock.object-hierarchy" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.object-hierarchy">
+<ANCHOR id="GstNetClientClock.properties" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.properties">
+<ANCHOR id="GstNetClientClock.description" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.description">
+<ANCHOR id="GstNetClientClock.details" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.details">
+<ANCHOR id="GstNetClientClock-struct" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock-struct">
+<ANCHOR id="gst-net-client-clock-new" href="gstreamer-libs-1.0/GstNetClientClock.html#gst-net-client-clock-new">
+<ANCHOR id="GstNetClientClock.property-details" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.property-details">
+<ANCHOR id="GstNetClientClock--address" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock--address">
+<ANCHOR id="GstNetClientClock--port" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock--port">
+<ANCHOR id="GstNetClientClock.see-also" href="gstreamer-libs-1.0/GstNetClientClock.html#GstNetClientClock.see-also">
+<ANCHOR id="gstreamer-libs-GstNetTimePacket" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html">
+<ANCHOR id="gstreamer-libs-GstNetTimePacket.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.synopsis">
+<ANCHOR id="gstreamer-libs-GstNetTimePacket.description" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.description">
+<ANCHOR id="gstreamer-libs-GstNetTimePacket.details" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.details">
+<ANCHOR id="GstNetTimePacket" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket">
+<ANCHOR id="GST-NET-TIME-PACKET-SIZE:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#GST-NET-TIME-PACKET-SIZE:CAPS">
+<ANCHOR id="gst-net-time-packet-new" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-new">
+<ANCHOR id="gst-net-time-packet-receive" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-receive">
+<ANCHOR id="gst-net-time-packet-send" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-send">
+<ANCHOR id="gst-net-time-packet-serialize" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gst-net-time-packet-serialize">
+<ANCHOR id="gstreamer-libs-GstNetTimePacket.see-also" href="gstreamer-libs-1.0/gstreamer-libs-GstNetTimePacket.html#gstreamer-libs-GstNetTimePacket.see-also">
+<ANCHOR id="GstNetTimeProvider" href="gstreamer-libs-1.0/GstNetTimeProvider.html">
+<ANCHOR id="GstNetTimeProvider.synopsis" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.synopsis">
+<ANCHOR id="GstNetTimeProvider.object-hierarchy" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.object-hierarchy">
+<ANCHOR id="GstNetTimeProvider.properties" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.properties">
+<ANCHOR id="GstNetTimeProvider.description" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.description">
+<ANCHOR id="GstNetTimeProvider.details" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.details">
+<ANCHOR id="GstNetTimeProvider-struct" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider-struct">
+<ANCHOR id="gst-net-time-provider-new" href="gstreamer-libs-1.0/GstNetTimeProvider.html#gst-net-time-provider-new">
+<ANCHOR id="GstNetTimeProvider.property-details" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.property-details">
+<ANCHOR id="GstNetTimeProvider--active" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider--active">
+<ANCHOR id="GstNetTimeProvider--address" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider--address">
+<ANCHOR id="GstNetTimeProvider--clock" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider--clock">
+<ANCHOR id="GstNetTimeProvider--port" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider--port">
+<ANCHOR id="GstNetTimeProvider.see-also" href="gstreamer-libs-1.0/GstNetTimeProvider.html#GstNetTimeProvider.see-also">
+<ANCHOR id="gstreamer-libs-GstCheck" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html">
+<ANCHOR id="gstreamer-libs-GstCheck.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.synopsis">
+<ANCHOR id="gstreamer-libs-GstCheck.description" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.description">
+<ANCHOR id="gstreamer-libs-GstCheck.details" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gstreamer-libs-GstCheck.details">
+<ANCHOR id="GST-START-TEST:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#GST-START-TEST:CAPS">
+<ANCHOR id="GST-END-TEST:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#GST-END-TEST:CAPS">
+<ANCHOR id="ASSERT-BUFFER-REFCOUNT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-BUFFER-REFCOUNT:CAPS">
+<ANCHOR id="ASSERT-CAPS-REFCOUNT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-CAPS-REFCOUNT:CAPS">
+<ANCHOR id="ASSERT-CRITICAL:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-CRITICAL:CAPS">
+<ANCHOR id="ASSERT-WARNING:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-WARNING:CAPS">
+<ANCHOR id="ASSERT-MINI-OBJECT-REFCOUNT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-MINI-OBJECT-REFCOUNT:CAPS">
+<ANCHOR id="ASSERT-OBJECT-REFCOUNT:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT:CAPS">
+<ANCHOR id="ASSERT-OBJECT-REFCOUNT-BETWEEN:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT-BETWEEN:CAPS">
+<ANCHOR id="ASSERT-SET-STATE:CAPS" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#ASSERT-SET-STATE:CAPS">
+<ANCHOR id="fail-unless-equals-int" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-int">
+<ANCHOR id="fail-unless-equals-float" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-float">
+<ANCHOR id="fail-unless-equals-string" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-string">
+<ANCHOR id="fail-unless-equals-uint64" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-uint64">
+<ANCHOR id="fail-unless-equals-int64" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-equals-int64">
+<ANCHOR id="fail-unless-message-error" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#fail-unless-message-error">
+<ANCHOR id="assert-equals-int" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-int">
+<ANCHOR id="assert-equals-float" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-float">
+<ANCHOR id="assert-equals-string" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-string">
+<ANCHOR id="assert-equals-uint64" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-uint64">
+<ANCHOR id="assert-equals-int64" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-equals-int64">
+<ANCHOR id="assert-message-error" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#assert-message-error">
+<ANCHOR id="gst-check-init" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-init">
+<ANCHOR id="gst-check-message-error" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-message-error">
+<ANCHOR id="gst-check-setup-element" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-element">
+<ANCHOR id="gst-check-setup-sink-pad" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad">
+<ANCHOR id="gst-check-setup-src-pad" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-src-pad">
+<ANCHOR id="gst-check-setup-sink-pad-by-name" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name">
+<ANCHOR id="gst-check-setup-src-pad-by-name" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name">
+<ANCHOR id="gst-check-teardown-pad-by-name" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name">
+<ANCHOR id="gst-check-teardown-element" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-teardown-element">
+<ANCHOR id="gst-check-teardown-sink-pad" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad">
+<ANCHOR id="gst-check-teardown-src-pad" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad">
+<ANCHOR id="gst-check-drop-buffers" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-drop-buffers">
+<ANCHOR id="gst-check-buffer-data" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-buffer-data">
+<ANCHOR id="gst-check-caps-equal" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-caps-equal">
+<ANCHOR id="gst-check-element-push-buffer-list" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list">
+<ANCHOR id="gst-check-element-push-buffer" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-element-push-buffer">
+<ANCHOR id="gst-check-run-suite" href="gstreamer-libs-1.0/gstreamer-libs-GstCheck.html#gst-check-run-suite">
+<ANCHOR id="gstreamer-libs-GstBufferStraw" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html">
+<ANCHOR id="gstreamer-libs-GstBufferStraw.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.synopsis">
+<ANCHOR id="gstreamer-libs-GstBufferStraw.description" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.description">
+<ANCHOR id="gstreamer-libs-GstBufferStraw.details" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gstreamer-libs-GstBufferStraw.details">
+<ANCHOR id="gst-buffer-straw-start-pipeline" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline">
+<ANCHOR id="gst-buffer-straw-get-buffer" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer">
+<ANCHOR id="gst-buffer-straw-stop-pipeline" href="gstreamer-libs-1.0/gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline">
+<ANCHOR id="gstreamer-libs-GstStreamConsistency" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html">
+<ANCHOR id="gstreamer-libs-GstStreamConsistency.synopsis" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.synopsis">
+<ANCHOR id="gstreamer-libs-GstStreamConsistency.description" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.description">
+<ANCHOR id="gstreamer-libs-GstStreamConsistency.details" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gstreamer-libs-GstStreamConsistency.details">
+<ANCHOR id="GstStreamConsistency" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency">
+<ANCHOR id="gst-consistency-checker-new" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new">
+<ANCHOR id="gst-consistency-checker-reset" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset">
+<ANCHOR id="gst-consistency-checker-free" href="gstreamer-libs-1.0/gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free">
+<ANCHOR id="annotation-glossterm-out" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-allow-none" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-closure" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-transfer none" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-array" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-element-type" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-transfer container" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer container">
+<ANCHOR id="annotation-glossterm-in" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-in">
+<ANCHOR id="annotation-glossterm-scope call" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-scope call">
+<ANCHOR id="annotation-glossterm-transfer full" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-type" href="gstreamer-libs-1.0/annotation-glossary.html#annotation-glossterm-type">
diff --git a/docs/manual/Makefile.in b/docs/manual/Makefile.in
index bf85730..9931237 100644
--- a/docs/manual/Makefile.in
+++ b/docs/manual/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,23 @@
 # install directory trees :(
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -102,14 +119,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -131,6 +153,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(manualdir)"
 DATA = $(manual_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -187,10 +215,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -203,10 +233,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -220,7 +250,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -237,6 +266,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -252,7 +285,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -285,6 +317,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -340,6 +373,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -373,7 +407,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -499,6 +532,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(srcdir)/../manuals.mak $(top_srcdir)/common/upload-doc.mak $(srcdir)/../htmlinstall.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -516,8 +550,11 @@
 	-rm -rf .libs _libs
 install-manualDATA: $(manual_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(manualdir)" || $(MKDIR_P) "$(DESTDIR)$(manualdir)"
 	@list='$(manual_DATA)'; test -n "$(manualdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(manualdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(manualdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -531,9 +568,7 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(manual_DATA)'; test -n "$(manualdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(manualdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(manualdir)" && rm -f $$files
+	dir='$(DESTDIR)$(manualdir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -589,10 +624,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/manual/advanced-autoplugging.xml b/docs/manual/advanced-autoplugging.xml
index 3e24f71..9186985 100644
--- a/docs/manual/advanced-autoplugging.xml
+++ b/docs/manual/advanced-autoplugging.xml
@@ -314,7 +314,7 @@
 {
   /* first filter out the interesting element factories */
   factories = gst_registry_feature_filter (
-      gst_registry_get_default (),
+      gst_registry_get (),
       (GstPluginFeatureFilter) cb_feature_filter, FALSE, NULL);
 
   /* sort them according to their ranks */
@@ -333,7 +333,7 @@
       which will continue with the above approach.
     </para>
     <programlisting><!-- example-begin dynamic.c c -->
-static void try_to_plug (GstPad *pad, const GstCaps *caps);
+static void try_to_plug (GstPad *pad, GstCaps *caps);
 
 static GstElement *audiosink;
 
@@ -344,7 +344,7 @@
 {
   GstCaps *caps;
 
-  caps = gst_pad_get_caps (pad, NULL);
+  caps = gst_pad_query_caps (pad, NULL);
   try_to_plug (pad, caps);
   gst_caps_unref (caps);
 }
@@ -389,7 +389,7 @@
     switch (templ->presence) {
       case GST_PAD_ALWAYS: {
         GstPad *pad = gst_element_get_static_pad (sinkelement, templ->name_template);
-        GstCaps *caps = gst_pad_get_caps (pad, NULL);
+        GstCaps *caps = gst_pad_query_caps (pad, NULL);
 
         /* link */
         try_to_plug (pad, caps);
@@ -413,7 +413,7 @@
 
 static void
 try_to_plug (GstPad        *pad,
-	     const GstCaps *caps)
+	     GstCaps       *caps)
 {
   GstObject *parent = GST_OBJECT (GST_OBJECT_PARENT (pad));
   const gchar *mime;
@@ -436,7 +436,7 @@
   }
 
   /* can it link to the audiopad? */
-  audiocaps = gst_pad_get_caps (gst_element_get_static_pad (audiosink, "sink"),
+  audiocaps = gst_pad_query_caps (gst_element_get_static_pad (audiosink, "sink"),
   NULL);
   res = gst_caps_intersect (caps, audiocaps);
   if (res &amp;&amp; !gst_caps_is_empty (res)) {
diff --git a/docs/manual/advanced-dataaccess.xml b/docs/manual/advanced-dataaccess.xml
index 60d1f72..3781a36 100644
--- a/docs/manual/advanced-dataaccess.xml
+++ b/docs/manual/advanced-dataaccess.xml
@@ -56,12 +56,12 @@
 	      gpointer   u_data)
 {
   gint x, y;
-  guint16 *data, *ptr, t;
-  gsize size;
+  GstMapInfo info;
+  guint16 *ptr, t;
   
-  data = gst_buffer_map (buffer, &amp;size, NULL, GST_MAP_WRITE);
+  gst_buffer_map (buffer, &amp;info, GST_MAP_WRITE);
 
-  ptr = data;
+  ptr = info.data;
   /* invert data */
   for (y = 0; y &lt; 288; y++) {
     for (x = 0; x &lt; 384 / 2; x++) {
@@ -71,8 +71,7 @@
     }
     ptr += 384;
   }
-  gst_buffer_unmap (buffer, data, size);
-
+  gst_buffer_unmap (buffer, &amp;info);
 
   return TRUE;
 }
@@ -288,16 +287,15 @@
 	    gpointer    user_data)
 {
   static gboolean white = FALSE;
-  gpointer data;
-  gsize size;
+  GstMapInfo info;
   
-  data = gst_buffer_map (buffer, &amp;size, NULL, GST_MAP_WRITE);
+  gst_buffer_map (buffer, &amp;info, GST_MAP_WRITE);
 
   /* this makes the image black/white */
-  memset (data, white ? 0xff : 0x0, size);
+  memset (info.data, white ? 0xff : 0x0, info.size);
   white = !white;
 
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &amp;info);
 }
 
 gint
diff --git a/docs/manual/advanced-dparams.xml b/docs/manual/advanced-dparams.xml
index ef3c6af..548d489 100644
--- a/docs/manual/advanced-dparams.xml
+++ b/docs/manual/advanced-dparams.xml
@@ -60,6 +60,13 @@
   gst_interpolation_control_source_set_interpolation_mode(csource, GST_INTERPOLATE_LINEAR);
     </programlisting>
     <para>
+      Now we need to assign the control-source to the gobject property. One 
+      control source can only be assigned to one property.
+    </para>
+    <programlisting>
+      gst_controller_set_control_source (controller, "prop1", csource);
+    </programlisting>
+    <para>
       This control-source takes new property values from a list of time-stamped
       parameter changes. The source can e.g. fill gaps by smoothing parameter
       changes. This behaviour can be configured by setting the 
@@ -77,13 +84,6 @@
   gst_interpolation_control_source_set (csource, 1 * GST_SECOND, value2);
     </programlisting>
     <para>
-      Finally we need to assign the control-source to the gobject property. One 
-      control source can only be assigned to one property.
-    </para>
-    <programlisting>
-      gst_controller_set_control_source (controller, "prop1", csource);
-    </programlisting>
-    <para>
       Now everything is ready to play. One final note - the controller subsystem
       has a builtin live-mode. Even though a property has a control-source
       assigned one can change the GObject property through the 
diff --git a/docs/manual/basics-helloworld.xml b/docs/manual/basics-helloworld.xml
index 55399fb..46360dd 100644
--- a/docs/manual/basics-helloworld.xml
+++ b/docs/manual/basics-helloworld.xml
@@ -223,7 +223,7 @@
     <para>
       To compile the helloworld example, use: <command>gcc -Wall
       helloworld.c -o helloworld
-      $(pkg-config --cflags --libs gstreamer-&GST_MAJORMINOR;)</command>.
+      $(pkg-config --cflags --libs gstreamer-&GST_API_VERSION;)</command>.
       &GStreamer; makes use of <command>pkg-config</command> to get compiler
       and linker flags needed to compile this application.
     </para>
@@ -238,7 +238,7 @@
       setup (ie. gst-uninstalled), you will need to use libtool to build the
       hello world program, like this: <command>libtool --mode=link gcc -Wall
       helloworld.c -o helloworld
-      $(pkg-config --cflags --libs gstreamer-&GST_MAJORMINOR;)</command>.
+      $(pkg-config --cflags --libs gstreamer-&GST_API_VERSION;)</command>.
     </para>
     <para>
       You can run this example application with <command>./helloworld
diff --git a/docs/manual/highlevel-components.xml b/docs/manual/highlevel-components.xml
index 8371025..1981ee4 100644
--- a/docs/manual/highlevel-components.xml
+++ b/docs/manual/highlevel-components.xml
@@ -253,7 +253,7 @@
   }
 
   /* check media type */
-  caps = gst_pad_get_caps (pad, NULL);
+  caps = gst_pad_query_caps (pad, NULL);
   str = gst_caps_get_structure (caps, 0);
   if (!g_strrstr (gst_structure_get_name (str), "audio")) {
     gst_caps_unref (caps);
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index cd6ea63..6bb5083 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -3,7 +3,7 @@
 ## Process this file with automake to produce Makefile.in
 
 # The name of the module, e.g. 'glib'.
-#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@
+#DOC_MODULE=gst-plugins-libs-@GST_API_VERSION@
 MODULE=gstreamer
 DOC_MODULE=$(MODULE)-plugins
 
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index e9ed2e1..47acc8f 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -32,6 +32,23 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -96,14 +113,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -158,10 +180,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -174,10 +198,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -191,7 +215,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -208,6 +231,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -223,7 +250,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -256,6 +282,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -311,6 +338,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -344,7 +372,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -368,7 +395,7 @@
 GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
 
 # The name of the module, e.g. 'glib'.
-#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@
+#DOC_MODULE=gst-plugins-libs-@GST_API_VERSION@
 MODULE = gstreamer
 DOC_MODULE = $(MODULE)-plugins
 
@@ -470,7 +497,7 @@
 GPATH = $(srcdir)
 
 # thomas: make docs parallel installable
-TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_API_VERSION@
 MAINTAINER_DOC_STAMPS = \
 	scanobj-build.stamp
 
@@ -572,6 +599,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -641,10 +669,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -799,8 +832,7 @@
 	@echo
 
 # update the stuff maintained by doc maintainers
-update:
-	$(MAKE) scanobj-update
+update: scanobj-update
 	$(MAKE) check-outdated-docs
 
 @ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp
@@ -834,7 +866,7 @@
 @ENABLE_GTK_DOC_TRUE@	    --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) &&		\
 @ENABLE_GTK_DOC_TRUE@	    echo "  DOC   Merging introspection data" && \
 @ENABLE_GTK_DOC_TRUE@	    $(PYTHON)						\
-@ENABLE_GTK_DOC_TRUE@	    $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE);	\
+@ENABLE_GTK_DOC_TRUE@	    $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE) || exit 1;	\
 @ENABLE_GTK_DOC_TRUE@	if test x"$(srcdir)" != x. ; then				\
 @ENABLE_GTK_DOC_TRUE@	    for f in $(SCANOBJ_FILES);					\
 @ENABLE_GTK_DOC_TRUE@	    do								\
@@ -929,7 +961,7 @@
 @ENABLE_GTK_DOC_TRUE@	fi; \
 @ENABLE_GTK_DOC_TRUE@	cd html && gtkdoc-mkhtml $$mkhtml_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@mv html/index.sgml html/index.sgml.bak
-@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml
+@ENABLE_GTK_DOC_TRUE@	@$(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_API_VERSION@\//g" html/index.sgml.bak >html/index.sgml
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/index.sgml.bak
 @ENABLE_GTK_DOC_TRUE@	@rm -f html/$(DOC_MAIN_SGML_FILE)
 @ENABLE_GTK_DOC_TRUE@	@rm -rf html/xml
@@ -993,7 +1025,7 @@
 	  echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp2' ; \
 	  if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \
 	            $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \
-	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \
+	            $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_API_VERSION@.devhelp2; \
 	  fi; \
 	  (which gtkdoc-rebase >/dev/null && \
 	    gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \
diff --git a/docs/plugins/gstreamer-plugins-docs.sgml b/docs/plugins/gstreamer-plugins-docs.sgml
index a6c34e9..3787b42 100644
--- a/docs/plugins/gstreamer-plugins-docs.sgml
+++ b/docs/plugins/gstreamer-plugins-docs.sgml
@@ -7,9 +7,9 @@
 
 <book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
   <bookinfo>
-    <title>GStreamer Core Plugins &GST_MAJORMINOR; Plugins Reference Manual</title>
+    <title>GStreamer Core Plugins &GST_API_VERSION; Plugins Reference Manual</title>
     <releaseinfo>
-      for GStreamer Core Plugins &GST_MAJORMINOR; (&GST_VERSION;)
+      for GStreamer Core Plugins &GST_API_VERSION; (&GST_VERSION;)
       The latest version of this documentation can be found on-line at
       <ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</ulink>.
     </releaseinfo>
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index 1198280..bf93dad 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -145,7 +145,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Silent</NICK>
 <BLURB>Don't produce last_message events.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -255,7 +255,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Silent</NICK>
 <BLURB>Don't produce last_message events.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -271,7 +271,7 @@
 <ARG>
 <NAME>GstFakeSink::num-buffers</NAME>
 <TYPE>gint</TYPE>
-<RANGE>>= -1</RANGE>
+<RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>num-buffers</NICK>
 <BLURB>Number of buffers to accept going EOS.</BLURB>
@@ -425,7 +425,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>silent</NICK>
 <BLURB>silent.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
 <ARG>
@@ -1085,6 +1085,6 @@
 <FLAGS>rw</FLAGS>
 <NICK>Sync Streams</NICK>
 <BLURB>Synchronize inactive streams to the running time of the active stream.</BLURB>
-<DEFAULT>FALSE</DEFAULT>
+<DEFAULT>TRUE</DEFAULT>
 </ARG>
 
diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy
index 1c36392..a180590 100644
--- a/docs/plugins/gstreamer-plugins.hierarchy
+++ b/docs/plugins/gstreamer-plugins.hierarchy
@@ -1,45 +1,43 @@
 GObject
   GInitiallyUnowned
     GstObject
-      GstPad
-      GstPadTemplate
-      GstPluginFeature
-        GstElementFactory
-        GstTypeFindFactory
-        GstIndexFactory
+      GstBus
+      GstClock
+      GstControlBinding
+      GstControlSource
       GstElement
-        GstBin
-          GstPipeline
-        GstBaseTransform
-          GstCapsFilter
-          GstIdentity
-        GstBaseSrc
-          GstFakeSrc
-          GstPushSrc
-            GstFdSrc
-          GstFileSrc
         GstBaseSink
           GstFakeSink
           GstFdSink
           GstFileSink
+        GstBaseSrc
+          GstFakeSrc
+          GstFileSrc
+          GstPushSrc
+            GstFdSrc
+        GstBaseTransform
+          GstCapsFilter
+          GstIdentity
+        GstBin
+          GstPipeline
         GstFunnel
         GstInputSelector
+        GstMultiQueue
         GstOutputSelector
         GstQueue
         GstQueue2
         GstTee
         GstTypeFindElement
-        GstMultiQueue
         GstValve
-      GstBus
+      GstPad
+      GstPadTemplate
+      GstPlugin
+      GstPluginFeature
+        GstElementFactory
+        GstTypeFindFactory
+      GstRegistry
       GstTask
       GstTaskPool
-      GstClock
-      GstPlugin
-      GstRegistry
-      GstIndex
-        GstMemIndex
-        GstFileIndex
 GInterface
   GTypePlugin
   GstChildProxy
diff --git a/docs/plugins/gstreamer-plugins.prerequisites b/docs/plugins/gstreamer-plugins.prerequisites
index f526a9f..d2115a0 100644
--- a/docs/plugins/gstreamer-plugins.prerequisites
+++ b/docs/plugins/gstreamer-plugins.prerequisites
@@ -1 +1,2 @@
+GstChildProxy GObject
 GstChildProxy GstObject
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 5f0ec00..4b3daf0 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -3,10 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstreamer Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
-<link rel="up" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
-<link rel="prev" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
+<link rel="prev" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="gstreamer-plugins-capsfilter.html" title="capsfilter">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,12 +16,12 @@
 <td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-capsfilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id317926"></a>gstreamer Elements</h2></div></div></div>
+<a name="idp179200"></a>gstreamer Elements</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-capsfilter.html">capsfilter</a></span><span class="refpurpose"> — Pass data without modification, limiting formats</span>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index a18ba74..b8df4f6 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -3,9 +3,9 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>gstreamer Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
-<link rel="up" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="prev" href="gstreamer-plugins-valve.html" title="valve">
 <link rel="next" href="gstreamer-plugins-plugin-coreelements.html" title="coreelements">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
@@ -16,20 +16,16 @@
 <td><a accesskey="p" href="gstreamer-plugins-valve.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td> </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-plugin-coreelements.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="id347895"></a>gstreamer Plugins</h2></div></div></div>
-<div class="toc"><dl>
-<dt>
+<a name="idp276336"></a>gstreamer Plugins</h2></div></div></div>
+<div class="toc"><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose"> — <a name="plugin-coreelements"></a>standard GStreamer elements</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreindexers.html">coreindexers</a></span><span class="refpurpose"> — <a name="plugin-coreindexers"></a>GStreamer core indexers</span>
-</dt>
-</dl></div>
+</dt></dl></div>
+<span style="color: red">&lt;xi:include&gt;&lt;/xi:include&gt;</span>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/plugins/html/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index 468754a..5b7e3a6 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>capsfilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="ch01.html" title="gstreamer Elements">
 <link rel="next" href="gstreamer-plugins-fakesrc.html" title="fakesrc">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-fakesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,16 +49,16 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseTransform.html">GstBaseTransform</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseTransform.html">GstBaseTransform</a>
                            +----GstCapsFilter
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-capsfilter.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
+  "<a class="link" href="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -70,17 +70,25 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id380729"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch videotestsrc ! video/x-raw-gray ! ffmpegcolorspace ! autovideosink
-</pre></div> Limits acceptable video from videotestsrc to be grayscale.
+<a name="idp7856352"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>gray <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Limits acceptable video from videotestsrc to be grayscale.
 </div>
 <p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id381657"></a><h3>Element Information</h3>
+<a name="idp7769296"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -103,7 +111,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id317380"></a><h3>Element Pads</h3>
+<a name="idp81344"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -165,7 +173,7 @@
 <a name="gstreamer-plugins-capsfilter.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstCapsFilter--caps"></a><h3>The <code class="literal">"caps"</code> property</h3>
-<pre class="programlisting">  "caps"                     <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
+<pre class="programlisting">  "caps"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
 <p>Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index 7995394..b0f063e 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fakesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-fakesrc.html" title="fakesrc">
 <link rel="next" href="gstreamer-plugins-fdsink.html" title="fdsink">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-fakesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-fdsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -52,9 +52,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFakeSink
 </pre>
 </div>
@@ -86,17 +86,25 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id396673"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch audiotestsrc num-buffers=1000 ! fakesink sync=false
-</pre></div> Render 1000 audio buffers (of default size) as fast as possible.
+<a name="idp8740176"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> fakesink sync<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Render 1000 audio buffers (of default size) as fast as possible.
 </div>
 <p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id396694"></a><h3>Element Information</h3>
+<a name="idp8742784"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -119,7 +127,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id396757"></a><h3>Element Pads</h3>
+<a name="idp9609776"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -254,7 +262,7 @@
 <a name="GstFakeSink--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
 <pre class="programlisting">  "silent"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>Don't produce last_message events.</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -268,7 +276,7 @@
 <a name="GstFakeSink--num-buffers"></a><h3>The <code class="literal">"num-buffers"</code> property</h3>
 <pre class="programlisting">  "num-buffers"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write</pre>
 <p>Number of buffers to accept going EOS.</p>
-<p>Allowed values: &gt;= -1</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
 </div>
 </div>
@@ -277,8 +285,8 @@
 <div class="refsect2">
 <a name="GstFakeSink-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink"><span class="type">GstFakeSink</span></a> *fakesink,
-                                                        <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
-                                                        <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>      *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>      *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before unreffing the buffer.
@@ -309,8 +317,8 @@
 <div class="refsect2">
 <a name="GstFakeSink-preroll-handoff"></a><h3>The <code class="literal">"preroll-handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink"><span class="type">GstFakeSink</span></a> *fakesink,
-                                                        <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
-                                                        <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>      *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>      *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before unreffing the buffer.
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index dfb0c64..56e3682 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fakesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-capsfilter.html" title="capsfilter">
 <link rel="next" href="gstreamer-plugins-fakesink.html" title="fakesink">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-capsfilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-fakesink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -55,9 +55,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSrc.html">GstBaseSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
                            +----GstFakeSrc
 </pre>
 </div>
@@ -80,7 +80,7 @@
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemin" title='The "sizemin" property'>sizemin</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizetype" title='The "sizetype" property'>sizetype</a>"                 <a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrcSizeType" title="enum GstFakeSrcSizeType"><span class="type">GstFakeSrcSizeType</span></a>    : Read / Write
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync" title='The "sync" property'>sync</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--format" title='The "format" property'>format</a>"                   <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
+  "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--format" title='The "format" property'>format</a>"                   <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -102,10 +102,18 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id364758"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch -v fakesrc num-buffers=5 ! fakesink
-</pre></div> This pipeline will push 5 empty buffers to the fakesink element and then
+<a name="idp6947072"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v fakesrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline will push 5 empty buffers to the fakesink element and then
 sends an EOS.
 </div>
 <p>
@@ -116,7 +124,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id364784"></a><h3>Element Information</h3>
+<a name="idp6950256"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -139,7 +147,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id364846"></a><h3>Element Pads</h3>
+<a name="idp6957664"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -429,7 +437,7 @@
 <a name="GstFakeSrc--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
 <pre class="programlisting">  "silent"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>Don't produce last_message events.</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -464,7 +472,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstFakeSrc--format"></a><h3>The <code class="literal">"format"</code> property</h3>
-<pre class="programlisting">  "format"                   <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
+<pre class="programlisting">  "format"                   <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
 <p>
 Set the format of the newsegment events to produce.
 </p>
@@ -477,8 +485,8 @@
 <div class="refsect2">
 <a name="GstFakeSrc-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc"><span class="type">GstFakeSrc</span></a> *fakesrc,
-                                                        <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>  *buffer,
-                                                        <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>     *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>  *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>     *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before sending the buffer.
diff --git a/docs/plugins/html/gstreamer-plugins-fdsink.html b/docs/plugins/html/gstreamer-plugins-fdsink.html
index 365a0ba..adf6091 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsink.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsink.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fdsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-fakesink.html" title="fakesink">
 <link rel="next" href="gstreamer-plugins-fdsrc.html" title="fdsrc">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-fakesink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-fdsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFdSink
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-fdsink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFdSink implements
- <a href="../gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fdsink.properties"></a><h2>Properties</h2>
@@ -77,7 +77,7 @@
 <p>
 This element will synchronize on the clock before writing the data on the
 socket. For file descriptors where this does not make sense (files, ...) the
-<a href="../gstreamer-libs-0.11/GstBaseSink.html#GstBaseSink--sync"><span class="type">"sync"</span></a> property can be used to disable synchronisation.
+<a href="../gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--sync"><span class="type">"sync"</span></a> property can be used to disable synchronisation.
 </p>
 <p>
 Last reviewed on 2006-04-28 (0.10.6)
@@ -85,7 +85,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id375243"></a><h3>Element Information</h3>
+<a name="idp6711088"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -108,7 +108,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id361202"></a><h3>Element Pads</h3>
+<a name="idp7582032"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index bd00da9..d6012cf 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>fdsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-fdsink.html" title="fdsink">
 <link rel="next" href="gstreamer-plugins-filesrc.html" title="filesrc">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-fdsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-filesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,10 +51,10 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSrc.html">GstBaseSrc</a>
-                           +----<a href="../gstreamer-libs-0.11/GstPushSrc.html">GstPushSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
+                           +----<a href="../gstreamer-libs-1.0/GstPushSrc.html">GstPushSrc</a>
                                  +----GstFdSrc
 </pre>
 </div>
@@ -62,13 +62,13 @@
 <a name="gstreamer-plugins-fdsrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFdSrc implements
- <a href="../gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fdsrc.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-fdsrc.html#GstFdSrc--fd" title='The "fd" property'>fd</a>"                       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
-  "<a class="link" href="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout" title='The "timeout" property'>timeout</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout" title='The "timeout" property'>timeout</a>"                  <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -88,7 +88,7 @@
 The message's structure contains one field:
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
-  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
+  <span class="type">guint64</span>
   <code class="classname">"timeout"</code>: the timeout in microseconds that
   expired when waiting for data.
   </p></li></ul></div>
@@ -97,10 +97,18 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id388922"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-echo "Hello GStreamer" | gst-launch -v fdsrc ! fakesink dump=true
-</pre></div> A simple pipeline to read from the standard input and dump the data
+<a name="idp6807520"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">echo <span class="string">&quot;Hello GStreamer&quot;</span> <span class="gtkdoc opt">|</span> gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v fdsrc <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A simple pipeline to read from the standard input and dump the data
 with a fakesink as hex ascii block.
 </div>
 <p>
@@ -111,7 +119,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id397796"></a><h3>Element Information</h3>
+<a name="idp6810672"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -134,7 +142,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id397858"></a><h3>Element Pads</h3>
+<a name="idp9734752"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -183,7 +191,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstFdSrc--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting">  "timeout"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "timeout"                  <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 Post a message after timeout microseconds
 </p>
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index 8295cf7..46af2c0 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>filesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-filesrc.html" title="filesrc">
 <link rel="next" href="gstreamer-plugins-funnel.html" title="funnel">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-filesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-funnel.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFileSink
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-filesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFileSink implements
- <a href="../gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-filesink.properties"></a><h2>Properties</h2>
@@ -80,17 +80,25 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id369364"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch v4l2src num-buffers=1 ! jpegenc ! filesink location=capture1.jpeg
-</pre></div> Capture one frame from a v4l2 camera and save as jpeg image.
+<a name="idp5144848"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>capture1<span class="gtkdoc opt">.</span>jpeg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Capture one frame from a v4l2 camera and save as jpeg image.
 </div>
 <p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id369385"></a><h3>Element Information</h3>
+<a name="idp5147408"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +121,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id398611"></a><h3>Element Pads</h3>
+<a name="idp5154816"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index aaf5155..6876e43 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>filesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-fdsrc.html" title="fdsrc">
 <link rel="next" href="gstreamer-plugins-filesink.html" title="filesink">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-fdsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-filesink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseSrc.html">GstBaseSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
                            +----GstFileSrc
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-filesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFileSrc implements
- <a href="../gstreamer-0.11/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-filesrc.properties"></a><h2>Properties</h2>
@@ -82,17 +82,25 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id364123"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch filesrc location=song.ogg ! decodebin2 ! autoaudiosink
-</pre></div> Play a song.ogg from local dir.
+<a name="idp7280672"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play a song.ogg from local dir.
 </div>
 <p>
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id398931"></a><h3>Element Information</h3>
+<a name="idp7283280"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -115,7 +123,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id398993"></a><h3>Element Pads</h3>
+<a name="idp9769648"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-funnel.html b/docs/plugins/html/gstreamer-plugins-funnel.html
index 31628ea..ddf9c88 100644
--- a/docs/plugins/html/gstreamer-plugins-funnel.html
+++ b/docs/plugins/html/gstreamer-plugins-funnel.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>funnel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-filesink.html" title="filesink">
 <link rel="next" href="gstreamer-plugins-identity.html" title="identity">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-filesink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-identity.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -47,8 +47,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstFunnel
 </pre>
 </div>
@@ -59,7 +59,7 @@
 </p>
 <p>
 funnel always outputs a single, open ended segment from
-0 with in <a href="../gstreamer-0.11/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><code class="literal">GST_FORMAT_TIME</code></a> and outputs the buffers of the
+0 with in <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><code class="literal">GST_FORMAT_TIME</code></a> and outputs the buffers of the
 different sinkpads with timestamps that are set to the
 running time for that stream. funnel does not synchronize
 the different input streams but simply forwards all buffers
@@ -68,7 +68,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id370983"></a><h3>Element Information</h3>
+<a name="idp5262320"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -91,13 +91,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id376532"></a><h3>Element Pads</h3>
+<a name="idp5786160"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>sink%d</td>
+<td>sink_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
diff --git a/docs/plugins/html/gstreamer-plugins-identity.html b/docs/plugins/html/gstreamer-plugins-identity.html
index 8a6baf9..3b148c4 100644
--- a/docs/plugins/html/gstreamer-plugins-identity.html
+++ b/docs/plugins/html/gstreamer-plugins-identity.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>identity</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-funnel.html" title="funnel">
 <link rel="next" href="gstreamer-plugins-input-selector.html" title="input-selector">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-funnel.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-input-selector.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
-                     +----<a href="../gstreamer-libs-0.11/GstBaseTransform.html">GstBaseTransform</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseTransform.html">GstBaseTransform</a>
                            +----GstIdentity
 </pre>
 </div>
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id400291"></a><h3>Element Information</h3>
+<a name="idp10069920"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id400353"></a><h3>Element Pads</h3>
+<a name="idp10077376"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -221,7 +221,7 @@
 <a name="GstIdentity--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
 <pre class="programlisting">  "silent"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
 <p>silent.</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -275,7 +275,7 @@
 <div class="refsect2">
 <a name="GstIdentity-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-identity.html#GstIdentity"><span class="type">GstIdentity</span></a> *identity,
-                                                        <a href="../gstreamer-0.11/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before passing the buffer downstream.
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index 7b87b79..f9341db 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>input-selector</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-identity.html" title="identity">
 <link rel="next" href="gstreamer-plugins-multiqueue.html" title="multiqueue">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-identity.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-multiqueue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,15 +51,15 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstInputSelector
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads" title='The "n-pads" property'>n-pads</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--select-all" title='The "select-all" property'>select-all</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams" title='The "sync-streams" property'>sync-streams</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -85,17 +85,17 @@
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
 <li class="listitem">
-"running-time": Running time of stream on pad (<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>)
+"running-time": Running time of stream on pad (<span class="type">gint64</span>)
 </li>
 <li class="listitem">
-"tags": The currently active tags on the pad (<a href="../gstreamer-0.11/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>, boxed type)
+"tags": The currently active tags on the pad (<a href="../gstreamer-1.0/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>, boxed type)
 </li>
 <li class="listitem">
 "active": If the pad is currently active (<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>)
 </li>
 <li class="listitem">
-"always-ok" : Make an inactive pads return <a href="../gstreamer-0.11/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> instead of
-<a href="../gstreamer-0.11/GstPad.html#GST-FLOW-NOT-LINKED:CAPS"><span class="type">GST_FLOW_NOT_LINKED</span></a>
+"always-ok" : Make an inactive pads return <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> instead of
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-NOT-LINKED:CAPS"><span class="type">GST_FLOW_NOT_LINKED</span></a>
 </li>
 </ul></div>
 <p>
@@ -103,7 +103,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id402475"></a><h3>Element Information</h3>
+<a name="idp4834976"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -126,13 +126,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id402538"></a><h3>Element Pads</h3>
+<a name="idp10210464"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>sink%d</td>
+<td>sink_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
@@ -187,7 +187,7 @@
 <a name="gstreamer-plugins-input-selector.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstInputSelector--active-pad"></a><h3>The <code class="literal">"active-pad"</code> property</h3>
-<pre class="programlisting">  "active-pad"               <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "active-pad"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>The currently active sink pad.</p>
 </div>
 <hr>
@@ -214,15 +214,15 @@
 buffers are dropped by input-selector that might be needed
 when switching the active pad.
 </p>
-<p>Default value: FALSE</p>
-<p class="since">Since 0.10.35</p>
+<p>Default value: TRUE</p>
+<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
 <a name="GstInputSelector-block"></a><h3>The <code class="literal">"block"</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>              user_function                      (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *inputselector,
+<pre class="programlisting"><span class="returnvalue">gint64</span>              user_function                      (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *inputselector,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
 <p>
 Block all sink pads in preparation for a switch. Returns the stop time of
@@ -248,9 +248,9 @@
 <div class="refsect2">
 <a name="GstInputSelector-switch"></a><h3>The <code class="literal">"switch"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *gstinputselector,
-                                                        <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>           *arg1,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>            arg2,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>            arg3,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>           *arg1,
+                                                        <span class="type">gint64</span>            arg2,
+                                                        <span class="type">gint64</span>            arg3,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 </p>
diff --git a/docs/plugins/html/gstreamer-plugins-multiqueue.html b/docs/plugins/html/gstreamer-plugins-multiqueue.html
index 482bfa2..19bf440 100644
--- a/docs/plugins/html/gstreamer-plugins-multiqueue.html
+++ b/docs/plugins/html/gstreamer-plugins-multiqueue.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>multiqueue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-input-selector.html" title="input-selector">
 <link rel="next" href="gstreamer-plugins-output-selector.html" title="output-selector">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-input-selector.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-output-selector.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,8 +51,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstMultiQueue
 </pre>
 </div>
@@ -61,10 +61,10 @@
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers" title='The "extra-size-buffers" property'>extra-size-buffers</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes" title='The "extra-size-bytes" property'>extra-size-bytes</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time" title='The "extra-size-time" property'>extra-size-time</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time" title='The "extra-size-time" property'>extra-size-time</a>"          <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers" title='The "max-size-buffers" property'>max-size-buffers</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes" title='The "max-size-bytes" property'>max-size-bytes</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent" title='The "high-percent" property'>high-percent</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent" title='The "low-percent" property'>low-percent</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering" title='The "use-buffering" property'>use-buffering</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id404212"></a><p>
+<a name="idp10431328"></a><p>
 Multiqueue is similar to a normal <a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> with the following additional
 features:
 </p>
@@ -97,7 +97,7 @@
     'sometimes' src pads (src%d).
   </p>
 <p>
-    When requesting a given sinkpad with <a href="../gstreamer-0.11/GstElement.html#gst-element-get-request-pad"><code class="function">gst_element_get_request_pad()</code></a>,
+    When requesting a given sinkpad with <a href="../gstreamer-1.0/GstElement.html#gst-element-get-request-pad"><code class="function">gst_element_get_request_pad()</code></a>,
     the associated srcpad for that stream will be created.
     Example: requesting sink1 will generate src1.
   </p>
@@ -173,7 +173,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id404394"></a><h3>Element Information</h3>
+<a name="idp10453120"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,13 +196,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id404454"></a><h3>Element Pads</h3>
+<a name="idp10460576"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>sink%d</td>
+<td>sink_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
@@ -223,7 +223,7 @@
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>src%d</td>
+<td>src_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
@@ -272,7 +272,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiQueue--extra-size-time"></a><h3>The <code class="literal">"extra-size-time"</code> property</h3>
-<pre class="programlisting">  "extra-size-time"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "extra-size-time"          <span class="type">guint64</span>               : Read / Write</pre>
 <p>Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED).</p>
 <p>Default value: 3000000000</p>
 </div>
@@ -293,7 +293,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstMultiQueue--max-size-time"></a><h3>The <code class="literal">"max-size-time"</code> property</h3>
-<pre class="programlisting">  "max-size-time"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-size-time"            <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the queue (in ns, 0=disable).</p>
 <p>Default value: 2000000000</p>
 </div>
@@ -342,7 +342,7 @@
 to active and linked streams.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.35</p>
+<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-output-selector.html b/docs/plugins/html/gstreamer-plugins-output-selector.html
index 6750a68..0dde3af 100644
--- a/docs/plugins/html/gstreamer-plugins-output-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-output-selector.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>output-selector</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-multiqueue.html" title="multiqueue">
 <link rel="next" href="gstreamer-plugins-queue.html" title="queue">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-multiqueue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-queue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,15 +49,15 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstOutputSelector
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-output-selector.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
   "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest" title='The "resend-latest" property'>resend-latest</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode" title='The "pad-negotiation-mode" property'>pad-negotiation-mode</a>"     <span class="type">GstOutputSelectorPadNegotiationMode</span>  : Read / Write
 </pre>
@@ -70,7 +70,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id387761"></a><h3>Element Information</h3>
+<a name="idp7263568"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id398520"></a><h3>Element Pads</h3>
+<a name="idp10296384"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -120,7 +120,7 @@
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>src%d</td>
+<td>src_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
@@ -154,7 +154,7 @@
 <a name="gstreamer-plugins-output-selector.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstOutputSelector--active-pad"></a><h3>The <code class="literal">"active-pad"</code> property</h3>
-<pre class="programlisting">  "active-pad"               <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "active-pad"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>Currently active src pad.</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index d02671e..5cfa8fc 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -3,11 +3,10 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>coreelements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gstreamer Plugins">
 <link rel="prev" href="ch02.html" title="gstreamer Plugins">
-<link rel="next" href="gstreamer-plugins-plugin-coreindexers.html" title="coreindexers">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +15,8 @@
 <td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-plugins-plugin-coreindexers.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
+<td> </td>
 </tr></table>
 <div class="refentry">
 <a name="gstreamer-plugins-plugin-coreelements"></a><div class="titlepage"></div>
@@ -29,7 +28,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id357883"></a><h2>Plugin Information</h2>
+<a name="idp6118432"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -39,7 +38,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>0.10.35.1</td>
+<td>0.11.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -47,7 +46,7 @@
 </tr>
 <tr>
 <td><p><span class="term">package</span></p></td>
-<td>GStreamer git</td>
+<td>GStreamer source release</td>
 </tr>
 <tr>
 <td><p><span class="term">origin</span></p></td>
@@ -57,7 +56,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id387631"></a><h2>Elements</h2>
+<a name="idp5409776"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreindexers.html b/docs/plugins/html/gstreamer-plugins-plugin-coreindexers.html
deleted file mode 100644
index 128218a..0000000
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreindexers.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>coreindexers</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
-<link rel="up" href="ch02.html" title="gstreamer Plugins">
-<link rel="prev" href="gstreamer-plugins-plugin-coreelements.html" title="coreelements">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gstreamer-plugins-plugin-coreelements.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
-<td> </td>
-</tr></table>
-<div class="refentry">
-<a name="gstreamer-plugins-plugin-coreindexers"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle">coreindexers</span></h2>
-<p>coreindexers — <a name="plugin-coreindexers"></a>GStreamer core indexers</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="id385028"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">filename</span></p></td>
-<td>libgstcoreindexers.so</td>
-</tr>
-<tr>
-<td><p><span class="term">version</span></p></td>
-<td>0.10.35.1</td>
-</tr>
-<tr>
-<td><p><span class="term">run-time license</span></p></td>
-<td>LGPL</td>
-</tr>
-<tr>
-<td><p><span class="term">package</span></p></td>
-<td>GStreamer git</td>
-</tr>
-<tr>
-<td><p><span class="term">origin</span></p></td>
-<td>Unknown package origin</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="id356959"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
-</div>
-</div>
-<div class="footer">
-<hr>
-          Generated by GTK-Doc V1.18</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gstreamer-plugins-queue.html b/docs/plugins/html/gstreamer-plugins-queue.html
index 8332fdf..7ba787d 100644
--- a/docs/plugins/html/gstreamer-plugins-queue.html
+++ b/docs/plugins/html/gstreamer-plugins-queue.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>queue</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-output-selector.html" title="output-selector">
 <link rel="next" href="gstreamer-plugins-queue2.html" title="queue2">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-output-selector.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-queue2.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -52,8 +52,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstQueue
 </pre>
 </div>
@@ -62,14 +62,14 @@
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--current-level-buffers" title='The "current-level-buffers" property'>current-level-buffers</a>"    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--current-level-bytes" title='The "current-level-bytes" property'>current-level-bytes</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
-  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--current-level-time" title='The "current-level-time" property'>current-level-time</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--current-level-time" title='The "current-level-time" property'>current-level-time</a>"       <span class="type">guint64</span>               : Read
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--leaky" title='The "leaky" property'>leaky</a>"                    <a class="link" href="gstreamer-plugins-queue.html#GstQueueLeaky" title="enum GstQueueLeaky"><span class="type">GstQueueLeaky</span></a>         : Read / Write
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--max-size-buffers" title='The "max-size-buffers" property'>max-size-buffers</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--max-size-bytes" title='The "max-size-bytes" property'>max-size-bytes</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--min-threshold-buffers" title='The "min-threshold-buffers" property'>min-threshold-buffers</a>"    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--min-threshold-bytes" title='The "min-threshold-bytes" property'>min-threshold-bytes</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--min-threshold-time" title='The "min-threshold-time" property'>min-threshold-time</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--min-threshold-time" title='The "min-threshold-time" property'>min-threshold-time</a>"       <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gstreamer-plugins-queue.html#GstQueue--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
 </pre>
 </div>
@@ -122,7 +122,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id405564"></a><h3>Element Information</h3>
+<a name="idp10656704"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -145,7 +145,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id405626"></a><h3>Element Pads</h3>
+<a name="idp10664160"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -254,7 +254,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue--current-level-time"></a><h3>The <code class="literal">"current-level-time"</code> property</h3>
-<pre class="programlisting">  "current-level-time"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "current-level-time"       <span class="type">guint64</span>               : Read</pre>
 <p>Current amount of data in the queue (in ns).</p>
 <p>Default value: 0</p>
 </div>
@@ -282,7 +282,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue--max-size-time"></a><h3>The <code class="literal">"max-size-time"</code> property</h3>
-<pre class="programlisting">  "max-size-time"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-size-time"            <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the queue (in ns, 0=disable).</p>
 <p>Default value: 1000000000</p>
 </div>
@@ -303,7 +303,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue--min-threshold-time"></a><h3>The <code class="literal">"min-threshold-time"</code> property</h3>
-<pre class="programlisting">  "min-threshold-time"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "min-threshold-time"       <span class="type">guint64</span>               : Read / Write</pre>
 <p>Min. amount of data in the queue to allow reading (in ns, 0=disable).</p>
 <p>Default value: 0</p>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-queue2.html b/docs/plugins/html/gstreamer-plugins-queue2.html
index b5a3ab4..04daa5d 100644
--- a/docs/plugins/html/gstreamer-plugins-queue2.html
+++ b/docs/plugins/html/gstreamer-plugins-queue2.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>queue2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-queue.html" title="queue">
 <link rel="next" href="gstreamer-plugins-tee.html" title="tee">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-queue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-tee.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,8 +49,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstQueue2
 </pre>
 </div>
@@ -59,18 +59,18 @@
 <pre class="synopsis">
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers" title='The "current-level-buffers" property'>current-level-buffers</a>"    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes" title='The "current-level-bytes" property'>current-level-bytes</a>"      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
-  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-time" title='The "current-level-time" property'>current-level-time</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read
+  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-time" title='The "current-level-time" property'>current-level-time</a>"       <span class="type">guint64</span>               : Read
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--high-percent" title='The "high-percent" property'>high-percent</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--low-percent" title='The "low-percent" property'>low-percent</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers" title='The "max-size-buffers" property'>max-size-buffers</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes" title='The "max-size-bytes" property'>max-size-bytes</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-time" title='The "max-size-time" property'>max-size-time</a>"            <span class="type">guint64</span>               : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-location" title='The "temp-location" property'>temp-location</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-template" title='The "temp-template" property'>temp-template</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--use-buffering" title='The "use-buffering" property'>use-buffering</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate" title='The "use-rate-estimate" property'>use-rate-estimate</a>"        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-remove" title='The "temp-remove" property'>temp-remove</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write
+  "<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>"     <span class="type">guint64</span>               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -112,7 +112,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id407054"></a><h3>Element Information</h3>
+<a name="idp10827264"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -135,7 +135,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id407115"></a><h3>Element Pads</h3>
+<a name="idp10834672"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -210,7 +210,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue2--current-level-time"></a><h3>The <code class="literal">"current-level-time"</code> property</h3>
-<pre class="programlisting">  "current-level-time"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read</pre>
+<pre class="programlisting">  "current-level-time"       <span class="type">guint64</span>               : Read</pre>
 <p>Current amount of data in the queue (in ns).</p>
 <p>Default value: 0</p>
 </div>
@@ -247,7 +247,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue2--max-size-time"></a><h3>The <code class="literal">"max-size-time"</code> property</h3>
-<pre class="programlisting">  "max-size-time"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "max-size-time"            <span class="type">guint64</span>               : Read / Write</pre>
 <p>Max. amount of data in the queue (in ns, 0=disable).</p>
 <p>Default value: 2000000000</p>
 </div>
@@ -292,7 +292,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstQueue2--ring-buffer-max-size"></a><h3>The <code class="literal">"ring-buffer-max-size"</code> property</h3>
-<pre class="programlisting">  "ring-buffer-max-size"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>               : Read / Write</pre>
+<pre class="programlisting">  "ring-buffer-max-size"     <span class="type">guint64</span>               : Read / Write</pre>
 <p>
 The maximum size of the ring buffer in bytes. If set to 0, the ring
 buffer is disabled. Default 0.
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index f91160d..3970009 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>tee</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-queue2.html" title="queue2">
 <link rel="next" href="gstreamer-plugins-typefind.html" title="typefind">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-queue2.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-typefind.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -50,8 +50,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstTee
 </pre>
 </div>
@@ -64,7 +64,7 @@
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--num-src-pads" title='The "num-src-pads" property'>num-src-pads</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--pull-mode" title='The "pull-mode" property'>pull-mode</a>"                <a class="link" href="gstreamer-plugins-tee.html#GstTeePullMode" title="enum GstTeePullMode"><span class="type">GstTeePullMode</span></a>        : Read / Write / Construct
-  "<a class="link" href="gstreamer-plugins-tee.html#GstTee--alloc-pad" title='The "alloc-pad" property'>alloc-pad</a>"                <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-tee.html#GstTee--alloc-pad" title='The "alloc-pad" property'>alloc-pad</a>"                <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -83,10 +83,18 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="id396228"></a><h3>Example launch line</h3>
-<div class="informalexample"><pre class="programlisting">
-gst-launch filesrc location=song.ogg ! decodebin2 ! tee name=t ! queue ! autoaudiosink t. ! queue ! audioconvert ! goom ! ffmpegcolorspace ! autovideosink
-</pre></div> Play a song.ogg from local dir and render visualisations using the goom
+<a name="idp5386448"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> autoaudiosink t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play a song.ogg from local dir and render visualisations using the goom
 element.
 </div>
 <p>
@@ -94,7 +102,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id408894"></a><h3>Element Information</h3>
+<a name="idp5389168"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -117,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id408956"></a><h3>Element Pads</h3>
+<a name="idp11082272"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -144,7 +152,7 @@
 <tbody>
 <tr>
 <td><p><span class="term">name</span></p></td>
-<td>src%d</td>
+<td>src_%u</td>
 </tr>
 <tr>
 <td><p><span class="term">direction</span></p></td>
@@ -250,7 +258,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTee--alloc-pad"></a><h3>The <code class="literal">"alloc-pad"</code> property</h3>
-<pre class="programlisting">  "alloc-pad"                <a href="../gstreamer-0.11/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "alloc-pad"                <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>The pad used for gst_pad_alloc_buffer.</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-typefind.html b/docs/plugins/html/gstreamer-plugins-typefind.html
index 584da8f..d09597c 100644
--- a/docs/plugins/html/gstreamer-plugins-typefind.html
+++ b/docs/plugins/html/gstreamer-plugins-typefind.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>typefind</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-tee.html" title="tee">
 <link rel="next" href="gstreamer-plugins-valve.html" title="valve">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-tee.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="gstreamer-plugins-valve.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -51,18 +51,18 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstTypeFindElement
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-typefind.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read
+  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read
   "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum" title='The "maximum" property'>maximum</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum" title='The "minimum" property'>minimum</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps" title='The "force-caps" property'>force-caps</a>"               <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
+  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps" title='The "force-caps" property'>force-caps</a>"               <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -85,12 +85,12 @@
 state change function).
 </p>
 <p>
-Plugins can register custom typefinders by using <a href="../gstreamer-0.11/GstTypeFindFactory.html"><span class="type">GstTypeFindFactory</span></a>.
+Plugins can register custom typefinders by using <a href="../gstreamer-1.0/GstTypeFindFactory.html"><span class="type">GstTypeFindFactory</span></a>.
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id408307"></a><h3>Element Information</h3>
+<a name="idp5535104"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id408369"></a><h3>Element Pads</h3>
+<a name="idp5542512"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -175,7 +175,7 @@
 <a name="gstreamer-plugins-typefind.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTypeFindElement--caps"></a><h3>The <code class="literal">"caps"</code> property</h3>
-<pre class="programlisting">  "caps"                     <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read</pre>
+<pre class="programlisting">  "caps"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read</pre>
 <p>detected capabilities in stream.</p>
 </div>
 <hr>
@@ -197,7 +197,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTypeFindElement--force-caps"></a><h3>The <code class="literal">"force-caps"</code> property</h3>
-<pre class="programlisting">  "force-caps"               <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
+<pre class="programlisting">  "force-caps"               <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
 <p>force caps without doing a typefind.</p>
 </div>
 </div>
@@ -207,7 +207,7 @@
 <a name="GstTypeFindElement-have-type"></a><h3>The <code class="literal">"have-type"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement"><span class="type">GstTypeFindElement</span></a> *typefind,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>               probability,
-                                                        <a href="../gstreamer-0.11/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>            *caps,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>            *caps,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
 <p>
 This signal gets emitted when the type and its probability has
diff --git a/docs/plugins/html/gstreamer-plugins-valve.html b/docs/plugins/html/gstreamer-plugins-valve.html
index 68b0f01..4a3d761 100644
--- a/docs/plugins/html/gstreamer-plugins-valve.html
+++ b/docs/plugins/html/gstreamer-plugins-valve.html
@@ -3,8 +3,8 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>valve</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gstreamer Elements">
 <link rel="prev" href="gstreamer-plugins-typefind.html" title="typefind">
 <link rel="next" href="ch02.html" title="gstreamer Plugins">
@@ -17,7 +17,7 @@
 <td><a accesskey="p" href="gstreamer-plugins-typefind.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GStreamer Core Plugins 0.11 Plugins Reference Manual</th>
+<th width="100%" align="center">GStreamer Core Plugins 1.0 Plugins Reference Manual</th>
 <td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
 </tr>
 <tr><td colspan="5" class="shortcuts">
@@ -49,8 +49,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="../gstreamer-0.11/GstObject.html">GstObject</a>
-               +----<a href="../gstreamer-0.11/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstValve
 </pre>
 </div>
@@ -68,7 +68,7 @@
 </p>
 <p>
 Any downstream error received while the <a class="link" href="gstreamer-plugins-valve.html#GstValve--drop" title='The "drop" property'><span class="type">"drop"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-is ignored. So downstream element can be set to  <a href="../gstreamer-0.11/GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> and removed,
+is ignored. So downstream element can be set to  <a href="../gstreamer-1.0/GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> and removed,
 without using pad blocking.
 </p>
 <p>
@@ -81,7 +81,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id374096"></a><h3>Element Information</h3>
+<a name="idp7786464"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -104,7 +104,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id408080"></a><h3>Element Pads</h3>
+<a name="idp10980608"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins.devhelp2 b/docs/plugins/html/gstreamer-plugins.devhelp2
index 2b0722b..37a88ca 100644
--- a/docs/plugins/html/gstreamer-plugins.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins.devhelp2
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Core Plugins 0.11 Plugins Reference Manual" link="index.html" author="" name="gstreamer-plugins" version="2" language="c">
+<book xmlns="http://www.devhelp.net/book" title="GStreamer Core Plugins 1.0 Plugins Reference Manual" link="index.html" author="" name="gstreamer-plugins" version="2" language="c">
   <chapters>
     <sub name="gstreamer Elements" link="ch01.html">
       <sub name="capsfilter" link="gstreamer-plugins-capsfilter.html"/>
@@ -23,18 +23,17 @@
     </sub>
     <sub name="gstreamer Plugins" link="ch02.html">
       <sub name="coreelements" link="gstreamer-plugins-plugin-coreelements.html"/>
-      <sub name="coreindexers" link="gstreamer-plugins-plugin-coreindexers.html"/>
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#id380729"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#id381657"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#id317380"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7856352"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp7769296"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp81344"/>
     <keyword type="struct" name="struct GstCapsFilter" link="gstreamer-plugins-capsfilter.html#GstCapsFilter-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#id364758"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#id364784"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#id364846"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp6947072"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp6950256"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp6957664"/>
     <keyword type="struct" name="struct GstFakeSrc" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-struct"/>
     <keyword type="enum" name="enum GstFakeSrcDataType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcDataType"/>
     <keyword type="enum" name="enum GstFakeSrcFillType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcFillType"/>
@@ -58,9 +57,9 @@
     <keyword type="property" name="The &quot;sync&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync"/>
     <keyword type="property" name="The &quot;format&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--format"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#id396673"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#id396694"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#id396757"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp8740176"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp8742784"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp9609776"/>
     <keyword type="struct" name="struct GstFakeSink" link="gstreamer-plugins-fakesink.html#GstFakeSink-struct"/>
     <keyword type="enum" name="enum GstFakeSinkStateError" link="gstreamer-plugins-fakesink.html#GstFakeSinkStateError"/>
     <keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-pull"/>
@@ -73,19 +72,19 @@
     <keyword type="property" name="The &quot;num-buffers&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-handoff"/>
     <keyword type="signal" name="The &quot;preroll-handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#id375243"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#id361202"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp6711088"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp7582032"/>
     <keyword type="struct" name="struct GstFdSink" link="gstreamer-plugins-fdsink.html#GstFdSink-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsink.html#GstFdSink--fd"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#id388922"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#id397796"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#id397858"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp6807520"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp6810672"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp9734752"/>
     <keyword type="struct" name="struct GstFdSrc" link="gstreamer-plugins-fdsrc.html#GstFdSrc-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--fd"/>
     <keyword type="property" name="The &quot;timeout&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#id364123"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#id398931"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#id398993"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp7280672"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp7283280"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp9769648"/>
     <keyword type="struct" name="struct GstFileSrc" link="gstreamer-plugins-filesrc.html#GstFileSrc-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--fd"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--location"/>
@@ -93,19 +92,19 @@
     <keyword type="property" name="The &quot;touch&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--touch"/>
     <keyword type="property" name="The &quot;use-mmap&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap"/>
     <keyword type="property" name="The &quot;sequential&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--sequential"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#id369364"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#id369385"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#id398611"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp5144848"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp5147408"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp5154816"/>
     <keyword type="struct" name="struct GstFileSink" link="gstreamer-plugins-filesink.html#GstFileSink-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--location"/>
     <keyword type="property" name="The &quot;buffer-mode&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-mode"/>
     <keyword type="property" name="The &quot;buffer-size&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-size"/>
     <keyword type="property" name="The &quot;append&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--append"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#id370983"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#id376532"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp5262320"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp5786160"/>
     <keyword type="struct" name="struct GstFunnel" link="gstreamer-plugins-funnel.html#GstFunnel-struct"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#id400291"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#id400353"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp10069920"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp10077376"/>
     <keyword type="struct" name="struct GstIdentity" link="gstreamer-plugins-identity.html#GstIdentity-struct"/>
     <keyword type="property" name="The &quot;check-perfect&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-perfect"/>
     <keyword type="property" name="The &quot;datarate&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--datarate"/>
@@ -121,8 +120,8 @@
     <keyword type="property" name="The &quot;check-imperfect-timestamp&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-imperfect-timestamp"/>
     <keyword type="property" name="The &quot;signal-handoffs&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--signal-handoffs"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-identity.html#GstIdentity-handoff"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#id402475"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#id402538"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp4834976"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp10210464"/>
     <keyword type="struct" name="struct GstInputSelector" link="gstreamer-plugins-input-selector.html#GstInputSelector-struct"/>
     <keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad"/>
     <keyword type="property" name="The &quot;n-pads&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads"/>
@@ -130,9 +129,9 @@
     <keyword type="property" name="The &quot;sync-streams&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams"/>
     <keyword type="signal" name="The &quot;block&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-block"/>
     <keyword type="signal" name="The &quot;switch&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-switch"/>
-    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#id404212"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#id404394"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#id404454"/>
+    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp10431328"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp10453120"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp10460576"/>
     <keyword type="struct" name="struct GstMultiQueue" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-struct"/>
     <keyword type="property" name="The &quot;extra-size-buffers&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers"/>
     <keyword type="property" name="The &quot;extra-size-bytes&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes"/>
@@ -146,14 +145,14 @@
     <keyword type="property" name="The &quot;sync-by-running-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time"/>
     <keyword type="signal" name="The &quot;overrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#id387761"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#id398520"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp7263568"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10296384"/>
     <keyword type="struct" name="struct GstOutputSelector" link="gstreamer-plugins-output-selector.html#GstOutputSelector-struct"/>
     <keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad"/>
     <keyword type="property" name="The &quot;resend-latest&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest"/>
     <keyword type="property" name="The &quot;pad-negotiation-mode&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#id405564"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#id405626"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp10656704"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp10664160"/>
     <keyword type="struct" name="struct GstQueue" link="gstreamer-plugins-queue.html#GstQueue-struct"/>
     <keyword type="enum" name="enum GstQueueLeaky" link="gstreamer-plugins-queue.html#GstQueueLeaky"/>
     <keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue.html#GstQueue--current-level-buffers"/>
@@ -171,8 +170,8 @@
     <keyword type="signal" name="The &quot;running&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-running"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-underrun"/>
     <keyword type="signal" name="The &quot;pushing&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-pushing"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#id407054"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#id407115"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp10827264"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp10834672"/>
     <keyword type="struct" name="struct GstQueue2" link="gstreamer-plugins-queue2.html#GstQueue2-struct"/>
     <keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers"/>
     <keyword type="property" name="The &quot;current-level-bytes&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes"/>
@@ -188,9 +187,9 @@
     <keyword type="property" name="The &quot;use-rate-estimate&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate"/>
     <keyword type="property" name="The &quot;temp-remove&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-remove"/>
     <keyword type="property" name="The &quot;ring-buffer-max-size&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#id396228"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#id408894"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#id408956"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp5386448"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp5389168"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp11082272"/>
     <keyword type="struct" name="struct GstTee" link="gstreamer-plugins-tee.html#GstTee-struct"/>
     <keyword type="enum" name="enum GstTeePullMode" link="gstreamer-plugins-tee.html#GstTeePullMode"/>
     <keyword type="property" name="The &quot;has-chain&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-chain"/>
@@ -200,16 +199,16 @@
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-tee.html#GstTee--silent"/>
     <keyword type="property" name="The &quot;pull-mode&quot; property" link="gstreamer-plugins-tee.html#GstTee--pull-mode"/>
     <keyword type="property" name="The &quot;alloc-pad&quot; property" link="gstreamer-plugins-tee.html#GstTee--alloc-pad"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#id408307"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#id408369"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp5535104"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp5542512"/>
     <keyword type="struct" name="struct GstTypeFindElement" link="gstreamer-plugins-typefind.html#GstTypeFindElement-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--caps"/>
     <keyword type="property" name="The &quot;maximum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum"/>
     <keyword type="property" name="The &quot;minimum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum"/>
     <keyword type="property" name="The &quot;force-caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps"/>
     <keyword type="signal" name="The &quot;have-type&quot; signal" link="gstreamer-plugins-typefind.html#GstTypeFindElement-have-type"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#id374096"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#id408080"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp7786464"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp10980608"/>
     <keyword type="struct" name="struct GstValve" link="gstreamer-plugins-valve.html#GstValve-struct"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gstreamer-plugins-valve.html#GstValve--drop"/>
     <keyword type="constant" name="FAKE_SRC_DATA_ALLOCATE" link="gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS"/>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index c663070..87dd257 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -2,9 +2,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GStreamer Core Plugins 0.11 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="index.html" title="GStreamer Core Plugins 0.11 Plugins Reference Manual">
+<title>GStreamer Core Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
 <link rel="next" href="ch01.html" title="gstreamer Elements">
 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -13,9 +13,9 @@
 <div class="book">
 <div class="titlepage">
 <div>
-<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 0.11 Plugins Reference Manual</p></th></tr></table></div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core Plugins 0.11 (0.11.1)
+      for GStreamer Core Plugins 1.0 (0.11.90)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</a>.
     </p></div>
@@ -78,14 +78,9 @@
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="ch02.html">gstreamer Plugins</a></span></dt>
-<dd><dl>
-<dt>
+<dd><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose"> — <a name="plugin-coreelements"></a>standard GStreamer elements</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreindexers.html">coreindexers</a></span><span class="refpurpose"> — <a name="plugin-coreindexers"></a>GStreamer core indexers</span>
-</dt>
-</dl></dd>
+</dt></dl></dd>
 </dl></div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 5042f58..4638518 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -1,340 +1,338 @@
 <ONLINE href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/">
-<ANCHOR id="gstreamer-plugins-capsfilter" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html">
-<ANCHOR id="gstreamer-plugins-capsfilter.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.synopsis">
-<ANCHOR id="GstCapsFilter" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#GstCapsFilter">
-<ANCHOR id="gstreamer-plugins-capsfilter.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-capsfilter.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.properties">
-<ANCHOR id="gstreamer-plugins-capsfilter.description" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.description">
-<ANCHOR id="gstreamer-plugins-capsfilter.details" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.details">
-<ANCHOR id="GstCapsFilter-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#GstCapsFilter-struct">
-<ANCHOR id="gstreamer-plugins-capsfilter.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.property-details">
-<ANCHOR id="GstCapsFilter--caps" href="gstreamer-plugins-0.11/gstreamer-plugins-capsfilter.html#GstCapsFilter--caps">
-<ANCHOR id="gstreamer-plugins-fakesrc" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html">
-<ANCHOR id="gstreamer-plugins-fakesrc.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.synopsis">
-<ANCHOR id="GstFakeSrc" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc">
-<ANCHOR id="gstreamer-plugins-fakesrc.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-fakesrc.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.properties">
-<ANCHOR id="gstreamer-plugins-fakesrc.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.signals">
-<ANCHOR id="gstreamer-plugins-fakesrc.description" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.description">
-<ANCHOR id="gstreamer-plugins-fakesrc.details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.details">
-<ANCHOR id="GstFakeSrc-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc-struct">
-<ANCHOR id="GstFakeSrcDataType" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrcDataType">
-<ANCHOR id="FAKE-SRC-DATA-ALLOCATE:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS">
-<ANCHOR id="FAKE-SRC-DATA-SUBBUFFER:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-SUBBUFFER:CAPS">
-<ANCHOR id="GstFakeSrcFillType" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrcFillType">
-<ANCHOR id="FAKE-SRC-FILLTYPE-NOTHING:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-NOTHING:CAPS">
-<ANCHOR id="FAKE-SRC-FILLTYPE-ZERO:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-ZERO:CAPS">
-<ANCHOR id="FAKE-SRC-FILLTYPE-RANDOM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-RANDOM:CAPS">
-<ANCHOR id="FAKE-SRC-FILLTYPE-PATTERN:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-PATTERN:CAPS">
-<ANCHOR id="FAKE-SRC-FILLTYPE-PATTERN-CONT:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-PATTERN-CONT:CAPS">
-<ANCHOR id="GstFakeSrcOutputType" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrcOutputType">
-<ANCHOR id="FAKE-SRC-FIRST-LAST-LOOP:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-FIRST-LAST-LOOP:CAPS">
-<ANCHOR id="FAKE-SRC-LAST-FIRST-LOOP:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-LAST-FIRST-LOOP:CAPS">
-<ANCHOR id="FAKE-SRC-PING-PONG:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-PING-PONG:CAPS">
-<ANCHOR id="FAKE-SRC-ORDERED-RANDOM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-ORDERED-RANDOM:CAPS">
-<ANCHOR id="FAKE-SRC-RANDOM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-RANDOM:CAPS">
-<ANCHOR id="FAKE-SRC-PATTERN-LOOP:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-PATTERN-LOOP:CAPS">
-<ANCHOR id="FAKE-SRC-PING-PONG-PATTERN:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-PING-PONG-PATTERN:CAPS">
-<ANCHOR id="FAKE-SRC-GET-ALWAYS-SUCEEDS:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-GET-ALWAYS-SUCEEDS:CAPS">
-<ANCHOR id="GstFakeSrcSizeType" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrcSizeType">
-<ANCHOR id="FAKE-SRC-SIZETYPE-EMPTY:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-EMPTY:CAPS">
-<ANCHOR id="FAKE-SRC-SIZETYPE-FIXED:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-FIXED:CAPS">
-<ANCHOR id="FAKE-SRC-SIZETYPE-RANDOM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-RANDOM:CAPS">
-<ANCHOR id="gstreamer-plugins-fakesrc.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.property-details">
-<ANCHOR id="GstFakeSrc--can-activate-pull" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--can-activate-pull">
-<ANCHOR id="GstFakeSrc--can-activate-push" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--can-activate-push">
-<ANCHOR id="GstFakeSrc--data" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--data">
-<ANCHOR id="GstFakeSrc--datarate" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--datarate">
-<ANCHOR id="GstFakeSrc--dump" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--dump">
-<ANCHOR id="GstFakeSrc--filltype" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--filltype">
-<ANCHOR id="GstFakeSrc--is-live" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--is-live">
-<ANCHOR id="GstFakeSrc--last-message" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--last-message">
-<ANCHOR id="GstFakeSrc--parentsize" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--parentsize">
-<ANCHOR id="GstFakeSrc--pattern" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--pattern">
-<ANCHOR id="GstFakeSrc--signal-handoffs" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--signal-handoffs">
-<ANCHOR id="GstFakeSrc--silent" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--silent">
-<ANCHOR id="GstFakeSrc--sizemax" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemax">
-<ANCHOR id="GstFakeSrc--sizemin" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemin">
-<ANCHOR id="GstFakeSrc--sizetype" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizetype">
-<ANCHOR id="GstFakeSrc--sync" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--sync">
-<ANCHOR id="GstFakeSrc--format" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc--format">
-<ANCHOR id="gstreamer-plugins-fakesrc.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.signal-details">
-<ANCHOR id="GstFakeSrc-handoff" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff">
-<ANCHOR id="gstreamer-plugins-fakesrc.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.see-also">
-<ANCHOR id="gstreamer-plugins-fakesink" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html">
-<ANCHOR id="gstreamer-plugins-fakesink.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.synopsis">
-<ANCHOR id="GstFakeSink" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink">
-<ANCHOR id="gstreamer-plugins-fakesink.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-fakesink.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.properties">
-<ANCHOR id="gstreamer-plugins-fakesink.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.signals">
-<ANCHOR id="gstreamer-plugins-fakesink.description" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.description">
-<ANCHOR id="gstreamer-plugins-fakesink.details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.details">
-<ANCHOR id="GstFakeSink-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink-struct">
-<ANCHOR id="GstFakeSinkStateError" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSinkStateError">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-NONE:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-NONE:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-NULL-READY:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-NULL-READY:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-READY-PAUSED:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-READY-PAUSED:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-PAUSED-PLAYING:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PAUSED-PLAYING:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-PLAYING-PAUSED:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PLAYING-PAUSED:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-PAUSED-READY:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PAUSED-READY:CAPS">
-<ANCHOR id="FAKE-SINK-STATE-ERROR-READY-NULL:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-READY-NULL:CAPS">
-<ANCHOR id="gstreamer-plugins-fakesink.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.property-details">
-<ANCHOR id="GstFakeSink--can-activate-pull" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-pull">
-<ANCHOR id="GstFakeSink--can-activate-push" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-push">
-<ANCHOR id="GstFakeSink--dump" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--dump">
-<ANCHOR id="GstFakeSink--last-message" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--last-message">
-<ANCHOR id="GstFakeSink--signal-handoffs" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--signal-handoffs">
-<ANCHOR id="GstFakeSink--silent" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--silent">
-<ANCHOR id="GstFakeSink--state-error" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--state-error">
-<ANCHOR id="GstFakeSink--num-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers">
-<ANCHOR id="gstreamer-plugins-fakesink.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.signal-details">
-<ANCHOR id="GstFakeSink-handoff" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink-handoff">
-<ANCHOR id="GstFakeSink-preroll-handoff" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff">
-<ANCHOR id="gstreamer-plugins-fakesink.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.see-also">
-<ANCHOR id="gstreamer-plugins-fdsink" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html">
-<ANCHOR id="gstreamer-plugins-fdsink.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.synopsis">
-<ANCHOR id="GstFdSink" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#GstFdSink">
-<ANCHOR id="gstreamer-plugins-fdsink.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-fdsink.implemented-interfaces" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.implemented-interfaces">
-<ANCHOR id="gstreamer-plugins-fdsink.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.properties">
-<ANCHOR id="gstreamer-plugins-fdsink.description" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.description">
-<ANCHOR id="gstreamer-plugins-fdsink.details" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.details">
-<ANCHOR id="GstFdSink-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#GstFdSink-struct">
-<ANCHOR id="gstreamer-plugins-fdsink.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.property-details">
-<ANCHOR id="GstFdSink--fd" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#GstFdSink--fd">
-<ANCHOR id="gstreamer-plugins-fdsink.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.see-also">
-<ANCHOR id="gstreamer-plugins-fdsrc" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html">
-<ANCHOR id="gstreamer-plugins-fdsrc.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.synopsis">
-<ANCHOR id="GstFdSrc" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#GstFdSrc">
-<ANCHOR id="gstreamer-plugins-fdsrc.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-fdsrc.implemented-interfaces" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.implemented-interfaces">
-<ANCHOR id="gstreamer-plugins-fdsrc.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.properties">
-<ANCHOR id="gstreamer-plugins-fdsrc.description" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.description">
-<ANCHOR id="gstreamer-plugins-fdsrc.details" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.details">
-<ANCHOR id="GstFdSrc-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#GstFdSrc-struct">
-<ANCHOR id="gstreamer-plugins-fdsrc.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.property-details">
-<ANCHOR id="GstFdSrc--fd" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#GstFdSrc--fd">
-<ANCHOR id="GstFdSrc--timeout" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#GstFdSrc--timeout">
-<ANCHOR id="gstreamer-plugins-fdsrc.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.see-also">
-<ANCHOR id="gstreamer-plugins-filesrc" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html">
-<ANCHOR id="gstreamer-plugins-filesrc.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.synopsis">
-<ANCHOR id="GstFileSrc" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc">
-<ANCHOR id="gstreamer-plugins-filesrc.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-filesrc.implemented-interfaces" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.implemented-interfaces">
-<ANCHOR id="gstreamer-plugins-filesrc.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.properties">
-<ANCHOR id="gstreamer-plugins-filesrc.description" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.description">
-<ANCHOR id="gstreamer-plugins-filesrc.details" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.details">
-<ANCHOR id="GstFileSrc-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc-struct">
-<ANCHOR id="gstreamer-plugins-filesrc.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.property-details">
-<ANCHOR id="GstFileSrc--fd" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--fd">
-<ANCHOR id="GstFileSrc--location" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--location">
-<ANCHOR id="GstFileSrc--mmapsize" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--mmapsize">
-<ANCHOR id="GstFileSrc--touch" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--touch">
-<ANCHOR id="GstFileSrc--use-mmap" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap">
-<ANCHOR id="GstFileSrc--sequential" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#GstFileSrc--sequential">
-<ANCHOR id="gstreamer-plugins-filesrc.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.see-also">
-<ANCHOR id="gstreamer-plugins-filesink" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html">
-<ANCHOR id="gstreamer-plugins-filesink.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.synopsis">
-<ANCHOR id="GstFileSink" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink">
-<ANCHOR id="gstreamer-plugins-filesink.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-filesink.implemented-interfaces" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.implemented-interfaces">
-<ANCHOR id="gstreamer-plugins-filesink.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.properties">
-<ANCHOR id="gstreamer-plugins-filesink.description" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.description">
-<ANCHOR id="gstreamer-plugins-filesink.details" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.details">
-<ANCHOR id="GstFileSink-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink-struct">
-<ANCHOR id="gstreamer-plugins-filesink.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.property-details">
-<ANCHOR id="GstFileSink--location" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink--location">
-<ANCHOR id="GstFileSink--buffer-mode" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink--buffer-mode">
-<ANCHOR id="GstFileSink--buffer-size" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink--buffer-size">
-<ANCHOR id="GstFileSink--append" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#GstFileSink--append">
-<ANCHOR id="gstreamer-plugins-filesink.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.see-also">
-<ANCHOR id="gstreamer-plugins-funnel" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html">
-<ANCHOR id="gstreamer-plugins-funnel.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.synopsis">
-<ANCHOR id="GstFunnel" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#GstFunnel">
-<ANCHOR id="gstreamer-plugins-funnel.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-funnel.description" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.description">
-<ANCHOR id="gstreamer-plugins-funnel.details" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.details">
-<ANCHOR id="GstFunnel-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-funnel.html#GstFunnel-struct">
-<ANCHOR id="gstreamer-plugins-identity" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html">
-<ANCHOR id="gstreamer-plugins-identity.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.synopsis">
-<ANCHOR id="GstIdentity" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity">
-<ANCHOR id="gstreamer-plugins-identity.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-identity.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.properties">
-<ANCHOR id="gstreamer-plugins-identity.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.signals">
-<ANCHOR id="gstreamer-plugins-identity.description" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.description">
-<ANCHOR id="gstreamer-plugins-identity.details" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.details">
-<ANCHOR id="GstIdentity-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity-struct">
-<ANCHOR id="gstreamer-plugins-identity.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.property-details">
-<ANCHOR id="GstIdentity--check-perfect" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--check-perfect">
-<ANCHOR id="GstIdentity--datarate" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--datarate">
-<ANCHOR id="GstIdentity--drop-probability" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--drop-probability">
-<ANCHOR id="GstIdentity--dump" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--dump">
-<ANCHOR id="GstIdentity--error-after" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--error-after">
-<ANCHOR id="GstIdentity--last-message" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--last-message">
-<ANCHOR id="GstIdentity--silent" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--silent">
-<ANCHOR id="GstIdentity--single-segment" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--single-segment">
-<ANCHOR id="GstIdentity--sleep-time" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--sleep-time">
-<ANCHOR id="GstIdentity--sync" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--sync">
-<ANCHOR id="GstIdentity--check-imperfect-offset" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--check-imperfect-offset">
-<ANCHOR id="GstIdentity--check-imperfect-timestamp" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--check-imperfect-timestamp">
-<ANCHOR id="GstIdentity--signal-handoffs" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity--signal-handoffs">
-<ANCHOR id="gstreamer-plugins-identity.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#gstreamer-plugins-identity.signal-details">
-<ANCHOR id="GstIdentity-handoff" href="gstreamer-plugins-0.11/gstreamer-plugins-identity.html#GstIdentity-handoff">
-<ANCHOR id="gstreamer-plugins-input-selector" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html">
-<ANCHOR id="gstreamer-plugins-input-selector.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.synopsis">
-<ANCHOR id="GstInputSelector" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector">
-<ANCHOR id="gstreamer-plugins-input-selector.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-input-selector.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.properties">
-<ANCHOR id="gstreamer-plugins-input-selector.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.signals">
-<ANCHOR id="gstreamer-plugins-input-selector.description" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.description">
-<ANCHOR id="gstreamer-plugins-input-selector.details" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.details">
-<ANCHOR id="GstInputSelector-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector-struct">
-<ANCHOR id="gstreamer-plugins-input-selector.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.property-details">
-<ANCHOR id="GstInputSelector--active-pad" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector--active-pad">
-<ANCHOR id="GstInputSelector--n-pads" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector--n-pads">
-<ANCHOR id="GstInputSelector--select-all" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector--select-all">
-<ANCHOR id="GstInputSelector--sync-streams" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams">
-<ANCHOR id="gstreamer-plugins-input-selector.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.signal-details">
-<ANCHOR id="GstInputSelector-block" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector-block">
-<ANCHOR id="GstInputSelector-switch" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#GstInputSelector-switch">
-<ANCHOR id="gstreamer-plugins-input-selector.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.see-also">
-<ANCHOR id="gstreamer-plugins-multiqueue" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html">
-<ANCHOR id="gstreamer-plugins-multiqueue.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.synopsis">
-<ANCHOR id="GstMultiQueue" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue">
-<ANCHOR id="gstreamer-plugins-multiqueue.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-multiqueue.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.properties">
-<ANCHOR id="gstreamer-plugins-multiqueue.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.signals">
-<ANCHOR id="gstreamer-plugins-multiqueue.description" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.description">
-<ANCHOR id="gstreamer-plugins-multiqueue.details" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.details">
-<ANCHOR id="GstMultiQueue-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue-struct">
-<ANCHOR id="gstreamer-plugins-multiqueue.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.property-details">
-<ANCHOR id="GstMultiQueue--extra-size-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers">
-<ANCHOR id="GstMultiQueue--extra-size-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes">
-<ANCHOR id="GstMultiQueue--extra-size-time" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time">
-<ANCHOR id="GstMultiQueue--max-size-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers">
-<ANCHOR id="GstMultiQueue--max-size-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes">
-<ANCHOR id="GstMultiQueue--max-size-time" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time">
-<ANCHOR id="GstMultiQueue--high-percent" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent">
-<ANCHOR id="GstMultiQueue--low-percent" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent">
-<ANCHOR id="GstMultiQueue--use-buffering" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering">
-<ANCHOR id="GstMultiQueue--sync-by-running-time" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time">
-<ANCHOR id="gstreamer-plugins-multiqueue.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.signal-details">
-<ANCHOR id="GstMultiQueue-overrun" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun">
-<ANCHOR id="GstMultiQueue-underrun" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun">
-<ANCHOR id="gstreamer-plugins-multiqueue.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.see-also">
-<ANCHOR id="gstreamer-plugins-output-selector" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html">
-<ANCHOR id="gstreamer-plugins-output-selector.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.synopsis">
-<ANCHOR id="GstOutputSelector" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#GstOutputSelector">
-<ANCHOR id="gstreamer-plugins-output-selector.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-output-selector.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.properties">
-<ANCHOR id="gstreamer-plugins-output-selector.description" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.description">
-<ANCHOR id="gstreamer-plugins-output-selector.details" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.details">
-<ANCHOR id="GstOutputSelector-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#GstOutputSelector-struct">
-<ANCHOR id="gstreamer-plugins-output-selector.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.property-details">
-<ANCHOR id="GstOutputSelector--active-pad" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad">
-<ANCHOR id="GstOutputSelector--resend-latest" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest">
-<ANCHOR id="GstOutputSelector--pad-negotiation-mode" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode">
-<ANCHOR id="gstreamer-plugins-output-selector.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.see-also">
-<ANCHOR id="gstreamer-plugins-queue" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html">
-<ANCHOR id="gstreamer-plugins-queue.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.synopsis">
-<ANCHOR id="GstQueue" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue">
-<ANCHOR id="gstreamer-plugins-queue.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-queue.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.properties">
-<ANCHOR id="gstreamer-plugins-queue.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.signals">
-<ANCHOR id="gstreamer-plugins-queue.description" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.description">
-<ANCHOR id="gstreamer-plugins-queue.details" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.details">
-<ANCHOR id="GstQueue-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue-struct">
-<ANCHOR id="GstQueueLeaky" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueueLeaky">
-<ANCHOR id="GST-QUEUE-NO-LEAK:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GST-QUEUE-NO-LEAK:CAPS">
-<ANCHOR id="GST-QUEUE-LEAK-UPSTREAM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GST-QUEUE-LEAK-UPSTREAM:CAPS">
-<ANCHOR id="GST-QUEUE-LEAK-DOWNSTREAM:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GST-QUEUE-LEAK-DOWNSTREAM:CAPS">
-<ANCHOR id="gstreamer-plugins-queue.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.property-details">
-<ANCHOR id="GstQueue--current-level-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--current-level-buffers">
-<ANCHOR id="GstQueue--current-level-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--current-level-bytes">
-<ANCHOR id="GstQueue--current-level-time" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--current-level-time">
-<ANCHOR id="GstQueue--leaky" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--leaky">
-<ANCHOR id="GstQueue--max-size-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--max-size-buffers">
-<ANCHOR id="GstQueue--max-size-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--max-size-bytes">
-<ANCHOR id="GstQueue--max-size-time" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--max-size-time">
-<ANCHOR id="GstQueue--min-threshold-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--min-threshold-buffers">
-<ANCHOR id="GstQueue--min-threshold-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--min-threshold-bytes">
-<ANCHOR id="GstQueue--min-threshold-time" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--min-threshold-time">
-<ANCHOR id="GstQueue--silent" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue--silent">
-<ANCHOR id="gstreamer-plugins-queue.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#gstreamer-plugins-queue.signal-details">
-<ANCHOR id="GstQueue-overrun" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue-overrun">
-<ANCHOR id="GstQueue-running" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue-running">
-<ANCHOR id="GstQueue-underrun" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue-underrun">
-<ANCHOR id="GstQueue-pushing" href="gstreamer-plugins-0.11/gstreamer-plugins-queue.html#GstQueue-pushing">
-<ANCHOR id="gstreamer-plugins-queue2" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html">
-<ANCHOR id="gstreamer-plugins-queue2.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.synopsis">
-<ANCHOR id="GstQueue2" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2">
-<ANCHOR id="gstreamer-plugins-queue2.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-queue2.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.properties">
-<ANCHOR id="gstreamer-plugins-queue2.description" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.description">
-<ANCHOR id="gstreamer-plugins-queue2.details" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.details">
-<ANCHOR id="GstQueue2-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2-struct">
-<ANCHOR id="gstreamer-plugins-queue2.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.property-details">
-<ANCHOR id="GstQueue2--current-level-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers">
-<ANCHOR id="GstQueue2--current-level-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes">
-<ANCHOR id="GstQueue2--current-level-time" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--current-level-time">
-<ANCHOR id="GstQueue2--high-percent" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--high-percent">
-<ANCHOR id="GstQueue2--low-percent" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--low-percent">
-<ANCHOR id="GstQueue2--max-size-buffers" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers">
-<ANCHOR id="GstQueue2--max-size-bytes" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes">
-<ANCHOR id="GstQueue2--max-size-time" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--max-size-time">
-<ANCHOR id="GstQueue2--temp-location" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--temp-location">
-<ANCHOR id="GstQueue2--temp-template" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--temp-template">
-<ANCHOR id="GstQueue2--use-buffering" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--use-buffering">
-<ANCHOR id="GstQueue2--use-rate-estimate" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate">
-<ANCHOR id="GstQueue2--temp-remove" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--temp-remove">
-<ANCHOR id="GstQueue2--ring-buffer-max-size" href="gstreamer-plugins-0.11/gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size">
-<ANCHOR id="gstreamer-plugins-tee" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html">
-<ANCHOR id="gstreamer-plugins-tee.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.synopsis">
-<ANCHOR id="GstTee" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee">
-<ANCHOR id="gstreamer-plugins-tee.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-tee.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.properties">
-<ANCHOR id="gstreamer-plugins-tee.description" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.description">
-<ANCHOR id="gstreamer-plugins-tee.details" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.details">
-<ANCHOR id="GstTee-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee-struct">
-<ANCHOR id="GstTeePullMode" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTeePullMode">
-<ANCHOR id="GST-TEE-PULL-MODE-NEVER:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GST-TEE-PULL-MODE-NEVER:CAPS">
-<ANCHOR id="GST-TEE-PULL-MODE-SINGLE:CAPS" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GST-TEE-PULL-MODE-SINGLE:CAPS">
-<ANCHOR id="gstreamer-plugins-tee.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.property-details">
-<ANCHOR id="GstTee--has-chain" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--has-chain">
-<ANCHOR id="GstTee--has-sink-loop" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--has-sink-loop">
-<ANCHOR id="GstTee--last-message" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--last-message">
-<ANCHOR id="GstTee--num-src-pads" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--num-src-pads">
-<ANCHOR id="GstTee--silent" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--silent">
-<ANCHOR id="GstTee--pull-mode" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--pull-mode">
-<ANCHOR id="GstTee--alloc-pad" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#GstTee--alloc-pad">
-<ANCHOR id="gstreamer-plugins-tee.see-also" href="gstreamer-plugins-0.11/gstreamer-plugins-tee.html#gstreamer-plugins-tee.see-also">
-<ANCHOR id="gstreamer-plugins-typefind" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html">
-<ANCHOR id="gstreamer-plugins-typefind.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.synopsis">
-<ANCHOR id="GstTypeFindElement" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement">
-<ANCHOR id="gstreamer-plugins-typefind.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-typefind.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.properties">
-<ANCHOR id="gstreamer-plugins-typefind.signals" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.signals">
-<ANCHOR id="gstreamer-plugins-typefind.description" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.description">
-<ANCHOR id="gstreamer-plugins-typefind.details" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.details">
-<ANCHOR id="GstTypeFindElement-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement-struct">
-<ANCHOR id="gstreamer-plugins-typefind.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.property-details">
-<ANCHOR id="GstTypeFindElement--caps" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement--caps">
-<ANCHOR id="GstTypeFindElement--maximum" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement--maximum">
-<ANCHOR id="GstTypeFindElement--minimum" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement--minimum">
-<ANCHOR id="GstTypeFindElement--force-caps" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps">
-<ANCHOR id="gstreamer-plugins-typefind.signal-details" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.signal-details">
-<ANCHOR id="GstTypeFindElement-have-type" href="gstreamer-plugins-0.11/gstreamer-plugins-typefind.html#GstTypeFindElement-have-type">
-<ANCHOR id="gstreamer-plugins-valve" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html">
-<ANCHOR id="gstreamer-plugins-valve.synopsis" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.synopsis">
-<ANCHOR id="GstValve" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#GstValve">
-<ANCHOR id="gstreamer-plugins-valve.object-hierarchy" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.object-hierarchy">
-<ANCHOR id="gstreamer-plugins-valve.properties" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.properties">
-<ANCHOR id="gstreamer-plugins-valve.description" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.description">
-<ANCHOR id="gstreamer-plugins-valve.details" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.details">
-<ANCHOR id="GstValve-struct" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#GstValve-struct">
-<ANCHOR id="gstreamer-plugins-valve.property-details" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#gstreamer-plugins-valve.property-details">
-<ANCHOR id="GstValve--drop" href="gstreamer-plugins-0.11/gstreamer-plugins-valve.html#GstValve--drop">
-<ANCHOR id="gstreamer-plugins-plugin-coreelements" href="gstreamer-plugins-0.11/gstreamer-plugins-plugin-coreelements.html">
-<ANCHOR id="plugin-coreelements" href="gstreamer-plugins-0.11/gstreamer-plugins-plugin-coreelements.html#plugin-coreelements">
-<ANCHOR id="gstreamer-plugins-plugin-coreindexers" href="gstreamer-plugins-0.11/gstreamer-plugins-plugin-coreindexers.html">
-<ANCHOR id="plugin-coreindexers" href="gstreamer-plugins-0.11/gstreamer-plugins-plugin-coreindexers.html#plugin-coreindexers">
+<ANCHOR id="gstreamer-plugins-capsfilter" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html">
+<ANCHOR id="gstreamer-plugins-capsfilter.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.synopsis">
+<ANCHOR id="GstCapsFilter" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#GstCapsFilter">
+<ANCHOR id="gstreamer-plugins-capsfilter.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-capsfilter.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.properties">
+<ANCHOR id="gstreamer-plugins-capsfilter.description" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.description">
+<ANCHOR id="gstreamer-plugins-capsfilter.details" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.details">
+<ANCHOR id="GstCapsFilter-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#GstCapsFilter-struct">
+<ANCHOR id="gstreamer-plugins-capsfilter.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#gstreamer-plugins-capsfilter.property-details">
+<ANCHOR id="GstCapsFilter--caps" href="gstreamer-plugins-1.0/gstreamer-plugins-capsfilter.html#GstCapsFilter--caps">
+<ANCHOR id="gstreamer-plugins-fakesrc" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html">
+<ANCHOR id="gstreamer-plugins-fakesrc.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.synopsis">
+<ANCHOR id="GstFakeSrc" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc">
+<ANCHOR id="gstreamer-plugins-fakesrc.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-fakesrc.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.properties">
+<ANCHOR id="gstreamer-plugins-fakesrc.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.signals">
+<ANCHOR id="gstreamer-plugins-fakesrc.description" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.description">
+<ANCHOR id="gstreamer-plugins-fakesrc.details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.details">
+<ANCHOR id="GstFakeSrc-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc-struct">
+<ANCHOR id="GstFakeSrcDataType" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrcDataType">
+<ANCHOR id="FAKE-SRC-DATA-ALLOCATE:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS">
+<ANCHOR id="FAKE-SRC-DATA-SUBBUFFER:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-SUBBUFFER:CAPS">
+<ANCHOR id="GstFakeSrcFillType" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrcFillType">
+<ANCHOR id="FAKE-SRC-FILLTYPE-NOTHING:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-NOTHING:CAPS">
+<ANCHOR id="FAKE-SRC-FILLTYPE-ZERO:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-ZERO:CAPS">
+<ANCHOR id="FAKE-SRC-FILLTYPE-RANDOM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-RANDOM:CAPS">
+<ANCHOR id="FAKE-SRC-FILLTYPE-PATTERN:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-PATTERN:CAPS">
+<ANCHOR id="FAKE-SRC-FILLTYPE-PATTERN-CONT:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FILLTYPE-PATTERN-CONT:CAPS">
+<ANCHOR id="GstFakeSrcOutputType" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrcOutputType">
+<ANCHOR id="FAKE-SRC-FIRST-LAST-LOOP:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-FIRST-LAST-LOOP:CAPS">
+<ANCHOR id="FAKE-SRC-LAST-FIRST-LOOP:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-LAST-FIRST-LOOP:CAPS">
+<ANCHOR id="FAKE-SRC-PING-PONG:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-PING-PONG:CAPS">
+<ANCHOR id="FAKE-SRC-ORDERED-RANDOM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-ORDERED-RANDOM:CAPS">
+<ANCHOR id="FAKE-SRC-RANDOM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-RANDOM:CAPS">
+<ANCHOR id="FAKE-SRC-PATTERN-LOOP:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-PATTERN-LOOP:CAPS">
+<ANCHOR id="FAKE-SRC-PING-PONG-PATTERN:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-PING-PONG-PATTERN:CAPS">
+<ANCHOR id="FAKE-SRC-GET-ALWAYS-SUCEEDS:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-GET-ALWAYS-SUCEEDS:CAPS">
+<ANCHOR id="GstFakeSrcSizeType" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrcSizeType">
+<ANCHOR id="FAKE-SRC-SIZETYPE-EMPTY:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-EMPTY:CAPS">
+<ANCHOR id="FAKE-SRC-SIZETYPE-FIXED:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-FIXED:CAPS">
+<ANCHOR id="FAKE-SRC-SIZETYPE-RANDOM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#FAKE-SRC-SIZETYPE-RANDOM:CAPS">
+<ANCHOR id="gstreamer-plugins-fakesrc.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.property-details">
+<ANCHOR id="GstFakeSrc--can-activate-pull" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--can-activate-pull">
+<ANCHOR id="GstFakeSrc--can-activate-push" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--can-activate-push">
+<ANCHOR id="GstFakeSrc--data" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--data">
+<ANCHOR id="GstFakeSrc--datarate" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--datarate">
+<ANCHOR id="GstFakeSrc--dump" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--dump">
+<ANCHOR id="GstFakeSrc--filltype" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--filltype">
+<ANCHOR id="GstFakeSrc--is-live" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--is-live">
+<ANCHOR id="GstFakeSrc--last-message" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--last-message">
+<ANCHOR id="GstFakeSrc--parentsize" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--parentsize">
+<ANCHOR id="GstFakeSrc--pattern" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--pattern">
+<ANCHOR id="GstFakeSrc--signal-handoffs" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--signal-handoffs">
+<ANCHOR id="GstFakeSrc--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--silent">
+<ANCHOR id="GstFakeSrc--sizemax" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemax">
+<ANCHOR id="GstFakeSrc--sizemin" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemin">
+<ANCHOR id="GstFakeSrc--sizetype" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--sizetype">
+<ANCHOR id="GstFakeSrc--sync" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--sync">
+<ANCHOR id="GstFakeSrc--format" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc--format">
+<ANCHOR id="gstreamer-plugins-fakesrc.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.signal-details">
+<ANCHOR id="GstFakeSrc-handoff" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff">
+<ANCHOR id="gstreamer-plugins-fakesrc.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesrc.html#gstreamer-plugins-fakesrc.see-also">
+<ANCHOR id="gstreamer-plugins-fakesink" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html">
+<ANCHOR id="gstreamer-plugins-fakesink.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.synopsis">
+<ANCHOR id="GstFakeSink" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink">
+<ANCHOR id="gstreamer-plugins-fakesink.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-fakesink.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.properties">
+<ANCHOR id="gstreamer-plugins-fakesink.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.signals">
+<ANCHOR id="gstreamer-plugins-fakesink.description" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.description">
+<ANCHOR id="gstreamer-plugins-fakesink.details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.details">
+<ANCHOR id="GstFakeSink-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink-struct">
+<ANCHOR id="GstFakeSinkStateError" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSinkStateError">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-NONE:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-NONE:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-NULL-READY:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-NULL-READY:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-READY-PAUSED:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-READY-PAUSED:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-PAUSED-PLAYING:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PAUSED-PLAYING:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-PLAYING-PAUSED:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PLAYING-PAUSED:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-PAUSED-READY:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-PAUSED-READY:CAPS">
+<ANCHOR id="FAKE-SINK-STATE-ERROR-READY-NULL:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#FAKE-SINK-STATE-ERROR-READY-NULL:CAPS">
+<ANCHOR id="gstreamer-plugins-fakesink.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.property-details">
+<ANCHOR id="GstFakeSink--can-activate-pull" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-pull">
+<ANCHOR id="GstFakeSink--can-activate-push" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-push">
+<ANCHOR id="GstFakeSink--dump" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--dump">
+<ANCHOR id="GstFakeSink--last-message" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--last-message">
+<ANCHOR id="GstFakeSink--signal-handoffs" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--signal-handoffs">
+<ANCHOR id="GstFakeSink--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--silent">
+<ANCHOR id="GstFakeSink--state-error" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--state-error">
+<ANCHOR id="GstFakeSink--num-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers">
+<ANCHOR id="gstreamer-plugins-fakesink.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.signal-details">
+<ANCHOR id="GstFakeSink-handoff" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink-handoff">
+<ANCHOR id="GstFakeSink-preroll-handoff" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff">
+<ANCHOR id="gstreamer-plugins-fakesink.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-fakesink.html#gstreamer-plugins-fakesink.see-also">
+<ANCHOR id="gstreamer-plugins-fdsink" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html">
+<ANCHOR id="gstreamer-plugins-fdsink.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.synopsis">
+<ANCHOR id="GstFdSink" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#GstFdSink">
+<ANCHOR id="gstreamer-plugins-fdsink.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-fdsink.implemented-interfaces" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.implemented-interfaces">
+<ANCHOR id="gstreamer-plugins-fdsink.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.properties">
+<ANCHOR id="gstreamer-plugins-fdsink.description" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.description">
+<ANCHOR id="gstreamer-plugins-fdsink.details" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.details">
+<ANCHOR id="GstFdSink-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#GstFdSink-struct">
+<ANCHOR id="gstreamer-plugins-fdsink.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.property-details">
+<ANCHOR id="GstFdSink--fd" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#GstFdSink--fd">
+<ANCHOR id="gstreamer-plugins-fdsink.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsink.html#gstreamer-plugins-fdsink.see-also">
+<ANCHOR id="gstreamer-plugins-fdsrc" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html">
+<ANCHOR id="gstreamer-plugins-fdsrc.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.synopsis">
+<ANCHOR id="GstFdSrc" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#GstFdSrc">
+<ANCHOR id="gstreamer-plugins-fdsrc.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-fdsrc.implemented-interfaces" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.implemented-interfaces">
+<ANCHOR id="gstreamer-plugins-fdsrc.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.properties">
+<ANCHOR id="gstreamer-plugins-fdsrc.description" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.description">
+<ANCHOR id="gstreamer-plugins-fdsrc.details" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.details">
+<ANCHOR id="GstFdSrc-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#GstFdSrc-struct">
+<ANCHOR id="gstreamer-plugins-fdsrc.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.property-details">
+<ANCHOR id="GstFdSrc--fd" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#GstFdSrc--fd">
+<ANCHOR id="GstFdSrc--timeout" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#GstFdSrc--timeout">
+<ANCHOR id="gstreamer-plugins-fdsrc.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-fdsrc.html#gstreamer-plugins-fdsrc.see-also">
+<ANCHOR id="gstreamer-plugins-filesrc" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html">
+<ANCHOR id="gstreamer-plugins-filesrc.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.synopsis">
+<ANCHOR id="GstFileSrc" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc">
+<ANCHOR id="gstreamer-plugins-filesrc.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-filesrc.implemented-interfaces" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.implemented-interfaces">
+<ANCHOR id="gstreamer-plugins-filesrc.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.properties">
+<ANCHOR id="gstreamer-plugins-filesrc.description" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.description">
+<ANCHOR id="gstreamer-plugins-filesrc.details" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.details">
+<ANCHOR id="GstFileSrc-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc-struct">
+<ANCHOR id="gstreamer-plugins-filesrc.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.property-details">
+<ANCHOR id="GstFileSrc--fd" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--fd">
+<ANCHOR id="GstFileSrc--location" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--location">
+<ANCHOR id="GstFileSrc--mmapsize" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--mmapsize">
+<ANCHOR id="GstFileSrc--touch" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--touch">
+<ANCHOR id="GstFileSrc--use-mmap" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap">
+<ANCHOR id="GstFileSrc--sequential" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#GstFileSrc--sequential">
+<ANCHOR id="gstreamer-plugins-filesrc.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-filesrc.html#gstreamer-plugins-filesrc.see-also">
+<ANCHOR id="gstreamer-plugins-filesink" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html">
+<ANCHOR id="gstreamer-plugins-filesink.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.synopsis">
+<ANCHOR id="GstFileSink" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink">
+<ANCHOR id="gstreamer-plugins-filesink.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-filesink.implemented-interfaces" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.implemented-interfaces">
+<ANCHOR id="gstreamer-plugins-filesink.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.properties">
+<ANCHOR id="gstreamer-plugins-filesink.description" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.description">
+<ANCHOR id="gstreamer-plugins-filesink.details" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.details">
+<ANCHOR id="GstFileSink-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink-struct">
+<ANCHOR id="gstreamer-plugins-filesink.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.property-details">
+<ANCHOR id="GstFileSink--location" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--location">
+<ANCHOR id="GstFileSink--buffer-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--buffer-mode">
+<ANCHOR id="GstFileSink--buffer-size" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--buffer-size">
+<ANCHOR id="GstFileSink--append" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#GstFileSink--append">
+<ANCHOR id="gstreamer-plugins-filesink.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-filesink.html#gstreamer-plugins-filesink.see-also">
+<ANCHOR id="gstreamer-plugins-funnel" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html">
+<ANCHOR id="gstreamer-plugins-funnel.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.synopsis">
+<ANCHOR id="GstFunnel" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#GstFunnel">
+<ANCHOR id="gstreamer-plugins-funnel.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-funnel.description" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.description">
+<ANCHOR id="gstreamer-plugins-funnel.details" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#gstreamer-plugins-funnel.details">
+<ANCHOR id="GstFunnel-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-funnel.html#GstFunnel-struct">
+<ANCHOR id="gstreamer-plugins-identity" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html">
+<ANCHOR id="gstreamer-plugins-identity.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.synopsis">
+<ANCHOR id="GstIdentity" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity">
+<ANCHOR id="gstreamer-plugins-identity.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-identity.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.properties">
+<ANCHOR id="gstreamer-plugins-identity.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.signals">
+<ANCHOR id="gstreamer-plugins-identity.description" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.description">
+<ANCHOR id="gstreamer-plugins-identity.details" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.details">
+<ANCHOR id="GstIdentity-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity-struct">
+<ANCHOR id="gstreamer-plugins-identity.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.property-details">
+<ANCHOR id="GstIdentity--check-perfect" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--check-perfect">
+<ANCHOR id="GstIdentity--datarate" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--datarate">
+<ANCHOR id="GstIdentity--drop-probability" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--drop-probability">
+<ANCHOR id="GstIdentity--dump" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--dump">
+<ANCHOR id="GstIdentity--error-after" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--error-after">
+<ANCHOR id="GstIdentity--last-message" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--last-message">
+<ANCHOR id="GstIdentity--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--silent">
+<ANCHOR id="GstIdentity--single-segment" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--single-segment">
+<ANCHOR id="GstIdentity--sleep-time" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--sleep-time">
+<ANCHOR id="GstIdentity--sync" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--sync">
+<ANCHOR id="GstIdentity--check-imperfect-offset" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--check-imperfect-offset">
+<ANCHOR id="GstIdentity--check-imperfect-timestamp" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--check-imperfect-timestamp">
+<ANCHOR id="GstIdentity--signal-handoffs" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity--signal-handoffs">
+<ANCHOR id="gstreamer-plugins-identity.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#gstreamer-plugins-identity.signal-details">
+<ANCHOR id="GstIdentity-handoff" href="gstreamer-plugins-1.0/gstreamer-plugins-identity.html#GstIdentity-handoff">
+<ANCHOR id="gstreamer-plugins-input-selector" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html">
+<ANCHOR id="gstreamer-plugins-input-selector.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.synopsis">
+<ANCHOR id="GstInputSelector" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector">
+<ANCHOR id="gstreamer-plugins-input-selector.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-input-selector.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.properties">
+<ANCHOR id="gstreamer-plugins-input-selector.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.signals">
+<ANCHOR id="gstreamer-plugins-input-selector.description" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.description">
+<ANCHOR id="gstreamer-plugins-input-selector.details" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.details">
+<ANCHOR id="GstInputSelector-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector-struct">
+<ANCHOR id="gstreamer-plugins-input-selector.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.property-details">
+<ANCHOR id="GstInputSelector--active-pad" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--active-pad">
+<ANCHOR id="GstInputSelector--n-pads" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--n-pads">
+<ANCHOR id="GstInputSelector--select-all" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--select-all">
+<ANCHOR id="GstInputSelector--sync-streams" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams">
+<ANCHOR id="gstreamer-plugins-input-selector.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.signal-details">
+<ANCHOR id="GstInputSelector-block" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector-block">
+<ANCHOR id="GstInputSelector-switch" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector-switch">
+<ANCHOR id="gstreamer-plugins-input-selector.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.see-also">
+<ANCHOR id="gstreamer-plugins-multiqueue" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html">
+<ANCHOR id="gstreamer-plugins-multiqueue.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.synopsis">
+<ANCHOR id="GstMultiQueue" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue">
+<ANCHOR id="gstreamer-plugins-multiqueue.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-multiqueue.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.properties">
+<ANCHOR id="gstreamer-plugins-multiqueue.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.signals">
+<ANCHOR id="gstreamer-plugins-multiqueue.description" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.description">
+<ANCHOR id="gstreamer-plugins-multiqueue.details" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.details">
+<ANCHOR id="GstMultiQueue-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue-struct">
+<ANCHOR id="gstreamer-plugins-multiqueue.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.property-details">
+<ANCHOR id="GstMultiQueue--extra-size-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers">
+<ANCHOR id="GstMultiQueue--extra-size-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes">
+<ANCHOR id="GstMultiQueue--extra-size-time" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time">
+<ANCHOR id="GstMultiQueue--max-size-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers">
+<ANCHOR id="GstMultiQueue--max-size-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes">
+<ANCHOR id="GstMultiQueue--max-size-time" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time">
+<ANCHOR id="GstMultiQueue--high-percent" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent">
+<ANCHOR id="GstMultiQueue--low-percent" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent">
+<ANCHOR id="GstMultiQueue--use-buffering" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering">
+<ANCHOR id="GstMultiQueue--sync-by-running-time" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time">
+<ANCHOR id="gstreamer-plugins-multiqueue.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.signal-details">
+<ANCHOR id="GstMultiQueue-overrun" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun">
+<ANCHOR id="GstMultiQueue-underrun" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun">
+<ANCHOR id="gstreamer-plugins-multiqueue.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-multiqueue.html#gstreamer-plugins-multiqueue.see-also">
+<ANCHOR id="gstreamer-plugins-output-selector" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html">
+<ANCHOR id="gstreamer-plugins-output-selector.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.synopsis">
+<ANCHOR id="GstOutputSelector" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector">
+<ANCHOR id="gstreamer-plugins-output-selector.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-output-selector.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.properties">
+<ANCHOR id="gstreamer-plugins-output-selector.description" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.description">
+<ANCHOR id="gstreamer-plugins-output-selector.details" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.details">
+<ANCHOR id="GstOutputSelector-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector-struct">
+<ANCHOR id="gstreamer-plugins-output-selector.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.property-details">
+<ANCHOR id="GstOutputSelector--active-pad" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad">
+<ANCHOR id="GstOutputSelector--resend-latest" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest">
+<ANCHOR id="GstOutputSelector--pad-negotiation-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode">
+<ANCHOR id="gstreamer-plugins-output-selector.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-output-selector.html#gstreamer-plugins-output-selector.see-also">
+<ANCHOR id="gstreamer-plugins-queue" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html">
+<ANCHOR id="gstreamer-plugins-queue.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.synopsis">
+<ANCHOR id="GstQueue" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue">
+<ANCHOR id="gstreamer-plugins-queue.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-queue.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.properties">
+<ANCHOR id="gstreamer-plugins-queue.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.signals">
+<ANCHOR id="gstreamer-plugins-queue.description" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.description">
+<ANCHOR id="gstreamer-plugins-queue.details" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.details">
+<ANCHOR id="GstQueue-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-struct">
+<ANCHOR id="GstQueueLeaky" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueueLeaky">
+<ANCHOR id="GST-QUEUE-NO-LEAK:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GST-QUEUE-NO-LEAK:CAPS">
+<ANCHOR id="GST-QUEUE-LEAK-UPSTREAM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GST-QUEUE-LEAK-UPSTREAM:CAPS">
+<ANCHOR id="GST-QUEUE-LEAK-DOWNSTREAM:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GST-QUEUE-LEAK-DOWNSTREAM:CAPS">
+<ANCHOR id="gstreamer-plugins-queue.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.property-details">
+<ANCHOR id="GstQueue--current-level-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--current-level-buffers">
+<ANCHOR id="GstQueue--current-level-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--current-level-bytes">
+<ANCHOR id="GstQueue--current-level-time" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--current-level-time">
+<ANCHOR id="GstQueue--leaky" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--leaky">
+<ANCHOR id="GstQueue--max-size-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--max-size-buffers">
+<ANCHOR id="GstQueue--max-size-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--max-size-bytes">
+<ANCHOR id="GstQueue--max-size-time" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--max-size-time">
+<ANCHOR id="GstQueue--min-threshold-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--min-threshold-buffers">
+<ANCHOR id="GstQueue--min-threshold-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--min-threshold-bytes">
+<ANCHOR id="GstQueue--min-threshold-time" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--min-threshold-time">
+<ANCHOR id="GstQueue--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue--silent">
+<ANCHOR id="gstreamer-plugins-queue.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#gstreamer-plugins-queue.signal-details">
+<ANCHOR id="GstQueue-overrun" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-overrun">
+<ANCHOR id="GstQueue-running" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-running">
+<ANCHOR id="GstQueue-underrun" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-underrun">
+<ANCHOR id="GstQueue-pushing" href="gstreamer-plugins-1.0/gstreamer-plugins-queue.html#GstQueue-pushing">
+<ANCHOR id="gstreamer-plugins-queue2" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html">
+<ANCHOR id="gstreamer-plugins-queue2.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.synopsis">
+<ANCHOR id="GstQueue2" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2">
+<ANCHOR id="gstreamer-plugins-queue2.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-queue2.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.properties">
+<ANCHOR id="gstreamer-plugins-queue2.description" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.description">
+<ANCHOR id="gstreamer-plugins-queue2.details" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.details">
+<ANCHOR id="GstQueue2-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2-struct">
+<ANCHOR id="gstreamer-plugins-queue2.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#gstreamer-plugins-queue2.property-details">
+<ANCHOR id="GstQueue2--current-level-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers">
+<ANCHOR id="GstQueue2--current-level-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes">
+<ANCHOR id="GstQueue2--current-level-time" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--current-level-time">
+<ANCHOR id="GstQueue2--high-percent" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--high-percent">
+<ANCHOR id="GstQueue2--low-percent" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--low-percent">
+<ANCHOR id="GstQueue2--max-size-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers">
+<ANCHOR id="GstQueue2--max-size-bytes" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes">
+<ANCHOR id="GstQueue2--max-size-time" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--max-size-time">
+<ANCHOR id="GstQueue2--temp-location" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--temp-location">
+<ANCHOR id="GstQueue2--temp-template" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--temp-template">
+<ANCHOR id="GstQueue2--use-buffering" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--use-buffering">
+<ANCHOR id="GstQueue2--use-rate-estimate" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate">
+<ANCHOR id="GstQueue2--temp-remove" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--temp-remove">
+<ANCHOR id="GstQueue2--ring-buffer-max-size" href="gstreamer-plugins-1.0/gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size">
+<ANCHOR id="gstreamer-plugins-tee" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html">
+<ANCHOR id="gstreamer-plugins-tee.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.synopsis">
+<ANCHOR id="GstTee" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee">
+<ANCHOR id="gstreamer-plugins-tee.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-tee.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.properties">
+<ANCHOR id="gstreamer-plugins-tee.description" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.description">
+<ANCHOR id="gstreamer-plugins-tee.details" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.details">
+<ANCHOR id="GstTee-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee-struct">
+<ANCHOR id="GstTeePullMode" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTeePullMode">
+<ANCHOR id="GST-TEE-PULL-MODE-NEVER:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GST-TEE-PULL-MODE-NEVER:CAPS">
+<ANCHOR id="GST-TEE-PULL-MODE-SINGLE:CAPS" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GST-TEE-PULL-MODE-SINGLE:CAPS">
+<ANCHOR id="gstreamer-plugins-tee.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.property-details">
+<ANCHOR id="GstTee--has-chain" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--has-chain">
+<ANCHOR id="GstTee--has-sink-loop" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--has-sink-loop">
+<ANCHOR id="GstTee--last-message" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--last-message">
+<ANCHOR id="GstTee--num-src-pads" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--num-src-pads">
+<ANCHOR id="GstTee--silent" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--silent">
+<ANCHOR id="GstTee--pull-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--pull-mode">
+<ANCHOR id="GstTee--alloc-pad" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#GstTee--alloc-pad">
+<ANCHOR id="gstreamer-plugins-tee.see-also" href="gstreamer-plugins-1.0/gstreamer-plugins-tee.html#gstreamer-plugins-tee.see-also">
+<ANCHOR id="gstreamer-plugins-typefind" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html">
+<ANCHOR id="gstreamer-plugins-typefind.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.synopsis">
+<ANCHOR id="GstTypeFindElement" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement">
+<ANCHOR id="gstreamer-plugins-typefind.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-typefind.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.properties">
+<ANCHOR id="gstreamer-plugins-typefind.signals" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.signals">
+<ANCHOR id="gstreamer-plugins-typefind.description" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.description">
+<ANCHOR id="gstreamer-plugins-typefind.details" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.details">
+<ANCHOR id="GstTypeFindElement-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement-struct">
+<ANCHOR id="gstreamer-plugins-typefind.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.property-details">
+<ANCHOR id="GstTypeFindElement--caps" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement--caps">
+<ANCHOR id="GstTypeFindElement--maximum" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement--maximum">
+<ANCHOR id="GstTypeFindElement--minimum" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement--minimum">
+<ANCHOR id="GstTypeFindElement--force-caps" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps">
+<ANCHOR id="gstreamer-plugins-typefind.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#gstreamer-plugins-typefind.signal-details">
+<ANCHOR id="GstTypeFindElement-have-type" href="gstreamer-plugins-1.0/gstreamer-plugins-typefind.html#GstTypeFindElement-have-type">
+<ANCHOR id="gstreamer-plugins-valve" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html">
+<ANCHOR id="gstreamer-plugins-valve.synopsis" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.synopsis">
+<ANCHOR id="GstValve" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#GstValve">
+<ANCHOR id="gstreamer-plugins-valve.object-hierarchy" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.object-hierarchy">
+<ANCHOR id="gstreamer-plugins-valve.properties" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.properties">
+<ANCHOR id="gstreamer-plugins-valve.description" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.description">
+<ANCHOR id="gstreamer-plugins-valve.details" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.details">
+<ANCHOR id="GstValve-struct" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#GstValve-struct">
+<ANCHOR id="gstreamer-plugins-valve.property-details" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#gstreamer-plugins-valve.property-details">
+<ANCHOR id="GstValve--drop" href="gstreamer-plugins-1.0/gstreamer-plugins-valve.html#GstValve--drop">
+<ANCHOR id="gstreamer-plugins-plugin-coreelements" href="gstreamer-plugins-1.0/gstreamer-plugins-plugin-coreelements.html">
+<ANCHOR id="plugin-coreelements" href="gstreamer-plugins-1.0/gstreamer-plugins-plugin-coreelements.html#plugin-coreelements">
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index e99c780..93c52d9 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,10 +3,10 @@
   <description>standard GStreamer elements</description>
   <filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
   <basename>libgstcoreelements.so</basename>
-  <version>0.10.35.1</version>
+  <version>0.11.90</version>
   <license>LGPL</license>
   <source>gstreamer</source>
-  <package>GStreamer git</package>
+  <package>GStreamer source release</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
@@ -128,7 +128,7 @@
       <author>Olivier Crete &lt;olivier.crete@collabora.co.uk&gt;</author>
       <pads>
         <caps>
-          <name>sink%d</name>
+          <name>sink_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
           <details>ANY</details>
@@ -170,7 +170,7 @@
       <author>Julien Moutte &lt;julien@moutte.net&gt;, Jan Schmidt &lt;thaytan@mad.scientist.com&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
       <pads>
         <caps>
-          <name>sink%d</name>
+          <name>sink_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
           <details>ANY</details>
@@ -191,13 +191,13 @@
       <author>Edward Hervey &lt;edward@fluendo.com&gt;</author>
       <pads>
         <caps>
-          <name>sink%d</name>
+          <name>sink_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
           <details>ANY</details>
         </caps>
         <caps>
-          <name>src%d</name>
+          <name>src_%u</name>
           <direction>source</direction>
           <presence>sometimes</presence>
           <details>ANY</details>
@@ -218,7 +218,7 @@
           <details>ANY</details>
         </caps>
         <caps>
-          <name>src%d</name>
+          <name>src_%u</name>
           <direction>source</direction>
           <presence>request</presence>
           <details>ANY</details>
@@ -281,7 +281,7 @@
           <details>ANY</details>
         </caps>
         <caps>
-          <name>src%d</name>
+          <name>src_%u</name>
           <direction>source</direction>
           <presence>request</presence>
           <details>ANY</details>
@@ -331,4 +331,4 @@
       </pads>
     </element>
   </elements>
-</plugin>
+</plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-coreindexers.xml b/docs/plugins/inspect/plugin-coreindexers.xml
deleted file mode 100644
index 80f072e..0000000
--- a/docs/plugins/inspect/plugin-coreindexers.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<plugin>
-  <name>coreindexers</name>
-  <description>GStreamer core indexers</description>
-  <filename>../../plugins/indexers/.libs/libgstcoreindexers.so</filename>
-  <basename>libgstcoreindexers.so</basename>
-  <version>0.10.35.1</version>
-  <license>LGPL</license>
-  <source>gstreamer</source>
-  <package>GStreamer git</package>
-  <origin>Unknown package origin</origin>
-  <elements>
-  </elements>
-</plugin>
diff --git a/docs/pwg/Makefile.in b/docs/pwg/Makefile.in
index 4c6ad00..c70fafe 100644
--- a/docs/pwg/Makefile.in
+++ b/docs/pwg/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -38,6 +38,23 @@
 # install directory trees :(
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -102,14 +119,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -131,6 +153,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pwgdir)"
 DATA = $(pwg_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -187,10 +215,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -203,10 +233,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -220,7 +250,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -237,6 +266,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -252,7 +285,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -285,6 +317,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -340,6 +373,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -373,7 +407,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -496,6 +529,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(srcdir)/../manuals.mak $(top_srcdir)/common/upload-doc.mak $(srcdir)/../htmlinstall.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -513,8 +547,11 @@
 	-rm -rf .libs _libs
 install-pwgDATA: $(pwg_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(pwgdir)" || $(MKDIR_P) "$(DESTDIR)$(pwgdir)"
 	@list='$(pwg_DATA)'; test -n "$(pwgdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pwgdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(pwgdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -528,9 +565,7 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(pwg_DATA)'; test -n "$(pwgdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pwgdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pwgdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pwgdir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -586,10 +621,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/pwg/advanced-events.xml b/docs/pwg/advanced-events.xml
index e90a9b9..88cda4a 100644
--- a/docs/pwg/advanced-events.xml
+++ b/docs/pwg/advanced-events.xml
@@ -210,13 +210,13 @@
         It is important to note that <emphasis>only elements driving the
         pipeline should ever send an EOS event</emphasis>. If your element
         is chain-based, it is not driving the pipeline. Chain-based elements
-        should just return GST_FLOW_UNEXPECTED from their chain function at
+        should just return GST_FLOW_EOS from their chain function at
         the end of the stream (or the configured segment), the upstream
         element that is driving the pipeline will then take care of
         sending the EOS event (or alternatively post a SEGMENT_DONE message
         on the bus depending on the mode of operation). If you are implementing
         your own source element, you also do not need to ever manually send
-        an EOS event, you should also just return GST_FLOW_UNEXPECTED in
+        an EOS event, you should also just return GST_FLOW_EOS in
         your create function (assuming your element derives from GstBaseSrc
         or GstPushSrc).
       </para>
diff --git a/docs/pwg/building-boiler.xml b/docs/pwg/building-boiler.xml
index 49da6c8..537723f 100644
--- a/docs/pwg/building-boiler.xml
+++ b/docs/pwg/building-boiler.xml
@@ -434,7 +434,7 @@
 GST_PLUGIN_DEFINE (
   GST_VERSION_MAJOR,
   GST_VERSION_MINOR,
-  "my_filter",
+  my_filter,
   "My filter plugin",
   plugin_init,
   VERSION,
diff --git a/docs/slides/Makefile.in b/docs/slides/Makefile.in
index 5a09b3f..8dbbecd 100644
--- a/docs/slides/Makefile.in
+++ b/docs/slides/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -437,10 +464,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/docs/version.entities.in b/docs/version.entities.in
index 7ed71e4..be8ed4b 100644
--- a/docs/version.entities.in
+++ b/docs/version.entities.in
@@ -1,3 +1,3 @@
-<!ENTITY GST_MAJORMINOR "@GST_MAJORMINOR@">
+<!ENTITY GST_API_VERSION "@GST_API_VERSION@">
 <!ENTITY GST_VERSION "@PACKAGE_VERSION@">
 <!ENTITY GST_PLUGINS_DIR "@PLUGINDIR@">
diff --git a/docs/xsl/Makefile.in b/docs/xsl/Makefile.in
index 32e50cb..6bc5fab 100644
--- a/docs/xsl/Makefile.in
+++ b/docs/xsl/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -438,10 +465,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/gst-element-check.m4.in b/gst-element-check.m4.in
index fedeace..e144490 100644
--- a/gst-element-check.m4.in
+++ b/gst-element-check.m4.in
@@ -7,11 +7,11 @@
 AC_DEFUN([AM_GST_ELEMENT_CHECK],
 [
   if test "x$GST_INSPECT" = "x"; then
-    AC_CHECK_PROG(GST_INSPECT, gst-inspect-@GST_MAJORMINOR@, gst-inspect-@GST_MAJORMINOR@, [])
+    AC_CHECK_PROG(GST_INSPECT, gst-inspect-@GST_API_VERSION@, gst-inspect-@GST_API_VERSION@, [])
   fi
 
   if test "x$GST_INSPECT" != "x"; then
-    AC_MSG_CHECKING(GStreamer @GST_MAJORMINOR@ element $1)
+    AC_MSG_CHECKING(GStreamer @GST_API_VERSION@ element $1)
     if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
       AC_MSG_RESULT(found.)
       $2
diff --git a/gst/Makefile.am b/gst/Makefile.am
index dcb8c93..542f45d 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -1,4 +1,4 @@
-lib_LTLIBRARIES = libgstreamer-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstreamer-@GST_API_VERSION@.la
 
 if GST_DISABLE_REGISTRY
 GST_REGISTRY_SRC =
@@ -34,18 +34,18 @@
 # distinction clear
 
 built_header_configure = gstconfig.h gstversion.h
-built_header_make = gstenumtypes.h gstmarshal.h
-built_source_make = gstenumtypes.c gstmarshal.c
+built_header_make = gstenumtypes.h
+built_source_make = gstenumtypes.c
 
-EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
-	gstmarshal.list gsttrace.c \
+EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES = \
+	gsttrace.c \
 	gstregistrybinary.c
 
 
 # temporarily not used
 #	glib-compat.c
 
-libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
+libgstreamer_@GST_API_VERSION@_la_SOURCES = \
 	gst.c			\
 	gstobject.c		\
 	gstbin.c		\
@@ -56,17 +56,16 @@
 	gstcaps.c		\
 	gstchildproxy.c		\
 	gstclock.c		\
+	gstcontrolbinding.c \
+	gstcontrolsource.c \
 	gstdatetime.c		\
 	gstdebugutils.c		\
 	gstelement.c		\
 	gstelementfactory.c	\
 	gsterror.c		\
 	gstevent.c		\
-	gstfilter.c		\
 	gstformat.c		\
 	gstghostpad.c		\
-	gstindex.c 		\
-	gstindexfactory.c 	\
 	gstinfo.c		\
 	gstiterator.c		\
 	gstatomicqueue.c	\
@@ -87,6 +86,7 @@
 	gstquery.c		\
 	gstregistry.c		\
 	gstregistrychunks.c	\
+	gstsample.c		\
 	gstsegment.c		\
 	gststructure.c		\
 	gstsystemclock.c	\
@@ -94,6 +94,8 @@
 	gsttagsetter.c		\
 	gsttask.c		\
 	gsttaskpool.c		\
+	gsttoc.c		\
+	gsttocsetter.c		\
 	$(GST_TRACE_SRC)	\
 	gsttypefind.c		\
 	gsttypefindfactory.c	\
@@ -104,7 +106,7 @@
 	$(GST_REGISTRY_SRC)
 
 # do not put files in the distribution that are generated
-nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = $(built_source_make)
+nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES = $(built_source_make)
 
 # BUILT_SOURCES are built on make all/check/install before all other targets
 BUILT_SOURCES = \
@@ -116,25 +118,25 @@
 # DISTCLEANFILES is for files generated by configure
 DISTCLEANFILES = $(built_header_configure)
 
-libgstreamer_@GST_MAJORMINOR@_la_CFLAGS =		\
+libgstreamer_@GST_API_VERSION@_la_CFLAGS =		\
 	-D_GNU_SOURCE					\
 	-DGST_EXPORTS					\
 	-DG_LOG_DOMAIN=g_log_domain_gstreamer 		\
-	-DGST_MAJORMINOR=\""$(GST_MAJORMINOR)"\" 	\
+	-DGST_API_VERSION=\""$(GST_API_VERSION)"\" 	\
 	-DGST_DISABLE_DEPRECATED			\
 	$(VALGRIND_CFLAGS)				\
 	$(GST_ALL_CFLAGS)
 
-libgstreamer_@GST_MAJORMINOR@_la_LIBADD =		\
+libgstreamer_@GST_API_VERSION@_la_LIBADD =		\
 	$(GST_PARSE_LA)					\
 	$(GST_ALL_LIBS)					\
 	$(WIN32_LIBS)					\
 	$(LIBM)
 
-libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS =		\
+libgstreamer_@GST_API_VERSION@_la_LDFLAGS =		\
 	$(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-libgstreamer_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst
+libgstreamer_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst
 
 gst_headers =			\
 	gst.h			\
@@ -149,6 +151,8 @@
 	gstchildproxy.h		\
 	gstclock.h		\
 	gstcompat.h		\
+	gstcontrolbinding.h \
+	gstcontrolsource.h \
 	gstdatetime.h		\
 	gstdebugutils.h		\
 	gstelement.h		\
@@ -156,11 +160,8 @@
 	gstelementfactory.h	\
 	gsterror.h		\
 	gstevent.h		\
-	gstfilter.h		\
 	gstformat.h		\
 	gstghostpad.h		\
-	gstindex.h		\
-	gstindexfactory.h	\
 	gstinfo.h		\
 	gstiterator.h		\
 	gstatomicqueue.h	\
@@ -178,6 +179,7 @@
 	gstpoll.h		\
 	gstpreset.h             \
 	gstquery.h		\
+	gstsample.h		\
 	gstsegment.h		\
 	gststructure.h		\
 	gstsystemclock.h	\
@@ -185,7 +187,8 @@
 	gsttagsetter.h		\
 	gsttask.h		\
 	gsttaskpool.h		\
-	gsttrace.h		\
+	gsttoc.h		\
+	gsttocsetter.h		\
 	gsttypefind.h		\
 	gsttypefindfactory.h	\
 	gsturi.h		\
@@ -194,9 +197,9 @@
 	gstregistry.h		\
 	gstparse.h
 
-libgstreamer_@GST_MAJORMINOR@include_HEADERS = $(gst_headers) math-compat.h
+libgstreamer_@GST_API_VERSION@include_HEADERS = $(gst_headers) math-compat.h
 
-nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS = \
+nodist_libgstreamer_@GST_API_VERSION@include_HEADERS = \
 	$(built_header_configure) $(built_header_make)
 
 noinst_HEADERS = 		\
@@ -209,19 +212,9 @@
 	gstquark.h		\
 	gstregistrybinary.h     \
 	gstregistrychunks.h     \
+	gsttrace.h		\
 	gst_private.h
 
-gstmarshal.h: gstmarshal.list
-	$(AM_V_GEN)glib-genmarshal --header --prefix=gst_marshal $(srcdir)/gstmarshal.list > gstmarshal.h.tmp && \
-	mv gstmarshal.h.tmp gstmarshal.h
-
-gstmarshal.c: gstmarshal.list gst_private.h
-	$(AM_V_GEN)echo "#include \"gst_private.h\"" > gstmarshal.c.tmp && \
-	echo "#include \"glib-object.h\"" >> gstmarshal.c.tmp && \
-	echo "#include \"gstmarshal.h\"" >> gstmarshal.c.tmp && \
-	glib-genmarshal --body --prefix=gst_marshal $(srcdir)/gstmarshal.list >> gstmarshal.c.tmp && \
-	mv gstmarshal.c.tmp gstmarshal.c
-
 gstenumtypes.h: $(gst_headers)
 	$(AM_V_GEN)glib-mkenums \
 	--fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
@@ -239,44 +232,45 @@
 	--vtail "    { 0, NULL, NULL }\n  };\n\n  if (g_once_init_enter (&id)) {\n    GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&id, tmp);\n  }\n\n  return (GType) id;\n}" \
 	$^ > gstenumtypes.c
 
-%.c.gcov: .libs/libgstreamer_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstreamer_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_MAJORMINOR@ \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
 	 -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	           $(nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstreamer_@GST_MAJORMINOR@_la_LIBADD) \
+	 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	           $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
 	           -ldl \
 	 -:SUBDIR gst/parse \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst \
-	 -:HEADERS $(libgstreamer_@GST_MAJORMINOR@include_HEADERS) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
+	 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
 	 -:LIBFILTER_STATIC gstparse \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
 if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = Gst-@GST_MAJORMINOR@.gir
+BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir
 
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_MAJORMINOR@include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES))
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@_la_SOURCES))
 
-Gst-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_MAJORMINOR@.la
+Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
 	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace Gst \
-		--nsversion=@GST_MAJORMINOR@ \
+		--nsversion=@GST_API_VERSION@ \
+		--warn-all \
 		-I$(top_srcdir) \
 		-I$(top_builddir) \
 		-DIN_GOBJECT_INTROSPECTION=1 \
 		-DGST_USE_UNSTABLE_API \
 		--c-include='gst/gst.h' \
-		--library=libgstreamer-0.11.la \
+		--library=libgstreamer-@GST_API_VERSION@.la \
 		--include=GLib-2.0 \
 		--include=GObject-2.0 \
 		--include=GModule-2.0 \
@@ -285,7 +279,7 @@
 		--pkg gobject-2.0 \
 		--pkg gmodule-no-export-2.0 \
 		--pkg gthread-2.0 \
-		--pkg-export gstreamer-@GST_MAJORMINOR@ \
+		--pkg-export gstreamer-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL, NULL);" \
 		--output $@ \
 		$(gir_headers) \
@@ -308,11 +302,11 @@
 
 # try to prevent packaging errors
 check-libexecdir-consistency:
-	@if test "${GST_PLUGIN_SCANNER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_MAJORMINOR)/gst-plugin-scanner"; then \
+	@if test "${GST_PLUGIN_SCANNER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; then \
 	  echo "*** Inconsistent libexecdir! Please use ./configure --libexecdir=/foo/bar"; \
 	  echo "*** to set the libexecdir and not make libexecdir=/foo/bar or the like."; \
 	  echo "*** The same goes for prefix, libdir etc."; \
-	  echo "*** ${GST_PLUGIN_SCANNER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_MAJORMINOR)/gst-plugin-scanner"; \
+	  echo "*** ${GST_PLUGIN_SCANNER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; \
 	  exit 1; \
 	fi
 
diff --git a/gst/Makefile.in b/gst/Makefile.in
index aa21f3a..5553d5b 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,7 +55,7 @@
 host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst
-DIST_COMMON = $(libgstreamer_@GST_MAJORMINOR@include_HEADERS) \
+DIST_COMMON = $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 	$(srcdir)/gstconfig.h.in $(srcdir)/gstversion.h.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -104,101 +121,108 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 	"$(DESTDIR)$(typelibsdir)" \
-	"$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" \
-	"$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)"
+	"$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)" \
+	"$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 @GST_DISABLE_PARSE_FALSE@am__DEPENDENCIES_1 = parse/libgstparse.la
 am__DEPENDENCIES_2 =
-libgstreamer_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2) \
-	$(am__DEPENDENCIES_2)
-am__libgstreamer_@GST_MAJORMINOR@_la_SOURCES_DIST = gst.c gstobject.c \
+libgstreamer_@GST_API_VERSION@_la_DEPENDENCIES =  \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2)
+am__libgstreamer_@GST_API_VERSION@_la_SOURCES_DIST = gst.c gstobject.c \
 	gstbin.c gstbuffer.c gstbufferlist.c gstbufferpool.c gstbus.c \
-	gstcaps.c gstchildproxy.c gstclock.c gstdatetime.c \
-	gstdebugutils.c gstelement.c gstelementfactory.c gsterror.c \
-	gstevent.c gstfilter.c gstformat.c gstghostpad.c gstindex.c \
-	gstindexfactory.c gstinfo.c gstiterator.c gstatomicqueue.c \
+	gstcaps.c gstchildproxy.c gstclock.c gstcontrolbinding.c \
+	gstcontrolsource.c gstdatetime.c gstdebugutils.c gstelement.c \
+	gstelementfactory.c gsterror.c gstevent.c gstformat.c \
+	gstghostpad.c gstinfo.c gstiterator.c gstatomicqueue.c \
 	gstmessage.c gstmeta.c gstmemory.c gstminiobject.c gstpad.c \
 	gstpadtemplate.c gstparamspecs.c gstpipeline.c gstplugin.c \
 	gstpluginfeature.c gstpluginloader.c gstpoll.c gstpreset.c \
 	gstquark.c gstquery.c gstregistry.c gstregistrychunks.c \
-	gstsegment.c gststructure.c gstsystemclock.c gsttaglist.c \
-	gsttagsetter.c gsttask.c gsttaskpool.c gsttrace.c \
-	gsttypefind.c gsttypefindfactory.c gsturi.c gstutils.c \
-	gstvalue.c gstparse.c gstregistrybinary.c
-@GST_DISABLE_TRACE_FALSE@am__objects_1 = libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo
-@GST_DISABLE_REGISTRY_FALSE@am__objects_2 = libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo
-am_libgstreamer_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstreamer_@GST_MAJORMINOR@_la-gst.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo \
+	gstsample.c gstsegment.c gststructure.c gstsystemclock.c \
+	gsttaglist.c gsttagsetter.c gsttask.c gsttaskpool.c gsttoc.c \
+	gsttocsetter.c gsttrace.c gsttypefind.c gsttypefindfactory.c \
+	gsturi.c gstutils.c gstvalue.c gstparse.c gstregistrybinary.c
+@GST_DISABLE_TRACE_FALSE@am__objects_1 = libgstreamer_@GST_API_VERSION@_la-gsttrace.lo
+@GST_DISABLE_REGISTRY_FALSE@am__objects_2 = libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo
+am_libgstreamer_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstreamer_@GST_API_VERSION@_la-gst.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstobject.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstbin.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstbus.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstcaps.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstclock.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstelement.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsterror.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstevent.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstformat.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstinfo.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstiterator.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstmessage.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstmeta.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstmemory.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpad.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstplugin.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpoll.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstpreset.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstquark.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstquery.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstregistry.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstsample.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstsegment.lo \
+	libgstreamer_@GST_API_VERSION@_la-gststructure.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttask.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttoc.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo \
 	$(am__objects_1) \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo $(am__objects_2)
-am__objects_3 = libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo \
-	libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo
-nodist_libgstreamer_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_3)
-libgstreamer_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstreamer_@GST_MAJORMINOR@_la_OBJECTS) \
-	$(nodist_libgstreamer_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+	libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo \
+	libgstreamer_@GST_API_VERSION@_la-gsturi.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstutils.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstvalue.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstparse.lo $(am__objects_2)
+am__objects_3 = libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo
+nodist_libgstreamer_@GST_API_VERSION@_la_OBJECTS = $(am__objects_3)
+libgstreamer_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstreamer_@GST_API_VERSION@_la_OBJECTS) \
+	$(nodist_libgstreamer_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libgstreamer_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
-	$(libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
+libgstreamer_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
+	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
+	$(CCLD) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
+	$(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -209,27 +233,27 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	$(EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	$(nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(am__libgstreamer_@GST_MAJORMINOR@_la_SOURCES_DIST) \
-	$(EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES)
+SOURCES = $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	$(EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	$(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(am__libgstreamer_@GST_API_VERSION@_la_SOURCES_DIST) \
+	$(EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-dvi-recursive install-exec-recursive \
@@ -237,9 +261,14 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstreamer_@GST_MAJORMINOR@include_HEADERS) \
-	$(nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS) \
+HEADERS = $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
+	$(nodist_libgstreamer_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
@@ -327,10 +356,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -343,10 +374,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -360,7 +391,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -377,6 +407,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -392,7 +426,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -425,6 +458,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -480,6 +514,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -513,7 +548,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -534,7 +568,7 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstreamer-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstreamer-@GST_API_VERSION@.la
 @GST_DISABLE_REGISTRY_FALSE@GST_REGISTRY_SRC = gstregistrybinary.c
 @GST_DISABLE_REGISTRY_TRUE@GST_REGISTRY_SRC = 
 @GST_DISABLE_PARSE_FALSE@SUBDIRS_PARSE = parse
@@ -551,16 +585,16 @@
 # make variables for all generated source and header files to make the
 # distinction clear
 built_header_configure = gstconfig.h gstversion.h
-built_header_make = gstenumtypes.h gstmarshal.h
-built_source_make = gstenumtypes.c gstmarshal.c
-EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
-	gstmarshal.list gsttrace.c \
+built_header_make = gstenumtypes.h
+built_source_make = gstenumtypes.c
+EXTRA_libgstreamer_@GST_API_VERSION@_la_SOURCES = \
+	gsttrace.c \
 	gstregistrybinary.c
 
 
 # temporarily not used
 #	glib-compat.c
-libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
+libgstreamer_@GST_API_VERSION@_la_SOURCES = \
 	gst.c			\
 	gstobject.c		\
 	gstbin.c		\
@@ -571,17 +605,16 @@
 	gstcaps.c		\
 	gstchildproxy.c		\
 	gstclock.c		\
+	gstcontrolbinding.c \
+	gstcontrolsource.c \
 	gstdatetime.c		\
 	gstdebugutils.c		\
 	gstelement.c		\
 	gstelementfactory.c	\
 	gsterror.c		\
 	gstevent.c		\
-	gstfilter.c		\
 	gstformat.c		\
 	gstghostpad.c		\
-	gstindex.c 		\
-	gstindexfactory.c 	\
 	gstinfo.c		\
 	gstiterator.c		\
 	gstatomicqueue.c	\
@@ -602,6 +635,7 @@
 	gstquery.c		\
 	gstregistry.c		\
 	gstregistrychunks.c	\
+	gstsample.c		\
 	gstsegment.c		\
 	gststructure.c		\
 	gstsystemclock.c	\
@@ -609,6 +643,8 @@
 	gsttagsetter.c		\
 	gsttask.c		\
 	gsttaskpool.c		\
+	gsttoc.c		\
+	gsttocsetter.c		\
 	$(GST_TRACE_SRC)	\
 	gsttypefind.c		\
 	gsttypefindfactory.c	\
@@ -620,7 +656,7 @@
 
 
 # do not put files in the distribution that are generated
-nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = $(built_source_make)
+nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES = $(built_source_make)
 
 # BUILT_SOURCES are built on make all/check/install before all other targets
 BUILT_SOURCES = \
@@ -634,25 +670,25 @@
 	$(am__append_1)
 # DISTCLEANFILES is for files generated by configure
 DISTCLEANFILES = $(built_header_configure)
-libgstreamer_@GST_MAJORMINOR@_la_CFLAGS = \
+libgstreamer_@GST_API_VERSION@_la_CFLAGS = \
 	-D_GNU_SOURCE					\
 	-DGST_EXPORTS					\
 	-DG_LOG_DOMAIN=g_log_domain_gstreamer 		\
-	-DGST_MAJORMINOR=\""$(GST_MAJORMINOR)"\" 	\
+	-DGST_API_VERSION=\""$(GST_API_VERSION)"\" 	\
 	-DGST_DISABLE_DEPRECATED			\
 	$(VALGRIND_CFLAGS)				\
 	$(GST_ALL_CFLAGS)
 
-libgstreamer_@GST_MAJORMINOR@_la_LIBADD = \
+libgstreamer_@GST_API_VERSION@_la_LIBADD = \
 	$(GST_PARSE_LA)					\
 	$(GST_ALL_LIBS)					\
 	$(WIN32_LIBS)					\
 	$(LIBM)
 
-libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS = \
+libgstreamer_@GST_API_VERSION@_la_LDFLAGS = \
 	$(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-libgstreamer_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst
+libgstreamer_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst
 gst_headers = \
 	gst.h			\
 	glib-compat.h		\
@@ -666,6 +702,8 @@
 	gstchildproxy.h		\
 	gstclock.h		\
 	gstcompat.h		\
+	gstcontrolbinding.h \
+	gstcontrolsource.h \
 	gstdatetime.h		\
 	gstdebugutils.h		\
 	gstelement.h		\
@@ -673,11 +711,8 @@
 	gstelementfactory.h	\
 	gsterror.h		\
 	gstevent.h		\
-	gstfilter.h		\
 	gstformat.h		\
 	gstghostpad.h		\
-	gstindex.h		\
-	gstindexfactory.h	\
 	gstinfo.h		\
 	gstiterator.h		\
 	gstatomicqueue.h	\
@@ -695,6 +730,7 @@
 	gstpoll.h		\
 	gstpreset.h             \
 	gstquery.h		\
+	gstsample.h		\
 	gstsegment.h		\
 	gststructure.h		\
 	gstsystemclock.h	\
@@ -702,7 +738,8 @@
 	gsttagsetter.h		\
 	gsttask.h		\
 	gsttaskpool.h		\
-	gsttrace.h		\
+	gsttoc.h		\
+	gsttocsetter.h		\
 	gsttypefind.h		\
 	gsttypefindfactory.h	\
 	gsturi.h		\
@@ -711,8 +748,8 @@
 	gstregistry.h		\
 	gstparse.h
 
-libgstreamer_@GST_MAJORMINOR@include_HEADERS = $(gst_headers) math-compat.h
-nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS = \
+libgstreamer_@GST_API_VERSION@include_HEADERS = $(gst_headers) math-compat.h
+nodist_libgstreamer_@GST_API_VERSION@include_HEADERS = \
 	$(built_header_configure) $(built_header_make)
 
 noinst_HEADERS = \
@@ -725,11 +762,12 @@
 	gstquark.h		\
 	gstregistrybinary.h     \
 	gstregistrychunks.h     \
+	gsttrace.h		\
 	gst_private.h
 
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = Gst-@GST_MAJORMINOR@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_MAJORMINOR@include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstreamer_@GST_API_VERSION@_la_SOURCES))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -778,7 +816,6 @@
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -786,6 +823,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -807,8 +846,8 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstreamer-@GST_MAJORMINOR@.la: $(libgstreamer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstreamer_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstreamer_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstreamer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstreamer_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
+libgstreamer-@GST_API_VERSION@.la: $(libgstreamer_@GST_API_VERSION@_la_OBJECTS) $(libgstreamer_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstreamer_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstreamer_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstreamer_@GST_API_VERSION@_la_OBJECTS) $(libgstreamer_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -816,552 +855,499 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gst.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbus.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstcaps.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstclock.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsterror.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstevent.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstfilter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstformat.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindex.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstinfo.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstiterator.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmemory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmessage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmeta.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstobject.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpad.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparse.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstplugin.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpoll.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpreset.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquark.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquery.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistry.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsegment.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gststructure.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttask.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttrace.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsturi.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstutils.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstvalue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gst.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbuffer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferlist.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferpool.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcaps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstchildproxy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstclock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdatetime.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdebugutils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelementfactory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstenumtypes.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsterror.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstevent.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstformat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstghostpad.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstiterator.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmemory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmessage.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmeta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstminiobject.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstobject.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpad.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparamspecs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpipeline.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsample.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsegment.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gststructure.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsystemclock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaglist.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttagsetter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttask.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaskpool.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttoc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttocsetter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttrace.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefind.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsturi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstutils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstvalue.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstreamer_@GST_MAJORMINOR@_la-gst.lo: gst.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gst.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gst.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gst.lo `test -f 'gst.c' || echo '$(srcdir)/'`gst.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gst.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gst.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst.c' object='libgstreamer_@GST_MAJORMINOR@_la-gst.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gst.lo: gst.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gst.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gst.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gst.lo `test -f 'gst.c' || echo '$(srcdir)/'`gst.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gst.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gst.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst.c' object='libgstreamer_@GST_API_VERSION@_la-gst.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gst.lo `test -f 'gst.c' || echo '$(srcdir)/'`gst.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gst.lo `test -f 'gst.c' || echo '$(srcdir)/'`gst.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo: gstobject.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstobject.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo `test -f 'gstobject.c' || echo '$(srcdir)/'`gstobject.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstobject.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstobject.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstobject.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstobject.lo: gstobject.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstobject.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstobject.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstobject.lo `test -f 'gstobject.c' || echo '$(srcdir)/'`gstobject.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstobject.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstobject.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstobject.c' object='libgstreamer_@GST_API_VERSION@_la-gstobject.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstobject.lo `test -f 'gstobject.c' || echo '$(srcdir)/'`gstobject.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstobject.lo `test -f 'gstobject.c' || echo '$(srcdir)/'`gstobject.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo: gstbin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbin.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo `test -f 'gstbin.c' || echo '$(srcdir)/'`gstbin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbin.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbin.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbin.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstbin.lo: gstbin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstbin.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbin.lo `test -f 'gstbin.c' || echo '$(srcdir)/'`gstbin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbin.c' object='libgstreamer_@GST_API_VERSION@_la-gstbin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbin.lo `test -f 'gstbin.c' || echo '$(srcdir)/'`gstbin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstbin.lo `test -f 'gstbin.c' || echo '$(srcdir)/'`gstbin.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo: gstbuffer.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo `test -f 'gstbuffer.c' || echo '$(srcdir)/'`gstbuffer.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbuffer.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo: gstbuffer.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbuffer.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo `test -f 'gstbuffer.c' || echo '$(srcdir)/'`gstbuffer.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbuffer.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbuffer.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbuffer.c' object='libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbuffer.lo `test -f 'gstbuffer.c' || echo '$(srcdir)/'`gstbuffer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo `test -f 'gstbuffer.c' || echo '$(srcdir)/'`gstbuffer.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo: gstbufferlist.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo `test -f 'gstbufferlist.c' || echo '$(srcdir)/'`gstbufferlist.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbufferlist.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo: gstbufferlist.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferlist.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo `test -f 'gstbufferlist.c' || echo '$(srcdir)/'`gstbufferlist.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferlist.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferlist.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbufferlist.c' object='libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbufferlist.lo `test -f 'gstbufferlist.c' || echo '$(srcdir)/'`gstbufferlist.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo `test -f 'gstbufferlist.c' || echo '$(srcdir)/'`gstbufferlist.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo: gstbufferpool.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo `test -f 'gstbufferpool.c' || echo '$(srcdir)/'`gstbufferpool.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbufferpool.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo: gstbufferpool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferpool.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo `test -f 'gstbufferpool.c' || echo '$(srcdir)/'`gstbufferpool.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferpool.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbufferpool.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbufferpool.c' object='libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbufferpool.lo `test -f 'gstbufferpool.c' || echo '$(srcdir)/'`gstbufferpool.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstbufferpool.lo `test -f 'gstbufferpool.c' || echo '$(srcdir)/'`gstbufferpool.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo: gstbus.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbus.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo `test -f 'gstbus.c' || echo '$(srcdir)/'`gstbus.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbus.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstbus.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbus.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstbus.lo: gstbus.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstbus.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbus.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbus.lo `test -f 'gstbus.c' || echo '$(srcdir)/'`gstbus.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbus.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbus.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbus.c' object='libgstreamer_@GST_API_VERSION@_la-gstbus.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstbus.lo `test -f 'gstbus.c' || echo '$(srcdir)/'`gstbus.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstbus.lo `test -f 'gstbus.c' || echo '$(srcdir)/'`gstbus.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo: gstcaps.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstcaps.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo `test -f 'gstcaps.c' || echo '$(srcdir)/'`gstcaps.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstcaps.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstcaps.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcaps.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstcaps.lo: gstcaps.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstcaps.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcaps.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstcaps.lo `test -f 'gstcaps.c' || echo '$(srcdir)/'`gstcaps.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcaps.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcaps.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcaps.c' object='libgstreamer_@GST_API_VERSION@_la-gstcaps.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstcaps.lo `test -f 'gstcaps.c' || echo '$(srcdir)/'`gstcaps.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstcaps.lo `test -f 'gstcaps.c' || echo '$(srcdir)/'`gstcaps.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo: gstchildproxy.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo `test -f 'gstchildproxy.c' || echo '$(srcdir)/'`gstchildproxy.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstchildproxy.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo: gstchildproxy.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstchildproxy.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo `test -f 'gstchildproxy.c' || echo '$(srcdir)/'`gstchildproxy.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstchildproxy.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstchildproxy.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstchildproxy.c' object='libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstchildproxy.lo `test -f 'gstchildproxy.c' || echo '$(srcdir)/'`gstchildproxy.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstchildproxy.lo `test -f 'gstchildproxy.c' || echo '$(srcdir)/'`gstchildproxy.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo: gstclock.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstclock.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo `test -f 'gstclock.c' || echo '$(srcdir)/'`gstclock.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstclock.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstclock.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstclock.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstclock.lo: gstclock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstclock.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstclock.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstclock.lo `test -f 'gstclock.c' || echo '$(srcdir)/'`gstclock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstclock.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstclock.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstclock.c' object='libgstreamer_@GST_API_VERSION@_la-gstclock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstclock.lo `test -f 'gstclock.c' || echo '$(srcdir)/'`gstclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstclock.lo `test -f 'gstclock.c' || echo '$(srcdir)/'`gstclock.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo: gstdatetime.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo `test -f 'gstdatetime.c' || echo '$(srcdir)/'`gstdatetime.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstdatetime.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo: gstcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo `test -f 'gstcontrolbinding.c' || echo '$(srcdir)/'`gstcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcontrolbinding.c' object='libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstdatetime.lo `test -f 'gstdatetime.c' || echo '$(srcdir)/'`gstdatetime.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstcontrolbinding.lo `test -f 'gstcontrolbinding.c' || echo '$(srcdir)/'`gstcontrolbinding.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo: gstdebugutils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo `test -f 'gstdebugutils.c' || echo '$(srcdir)/'`gstdebugutils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstdebugutils.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo: gstcontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo `test -f 'gstcontrolsource.c' || echo '$(srcdir)/'`gstcontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcontrolsource.c' object='libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstdebugutils.lo `test -f 'gstdebugutils.c' || echo '$(srcdir)/'`gstdebugutils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstcontrolsource.lo `test -f 'gstcontrolsource.c' || echo '$(srcdir)/'`gstcontrolsource.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo: gstelement.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelement.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo `test -f 'gstelement.c' || echo '$(srcdir)/'`gstelement.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelement.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelement.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstelement.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo: gstdatetime.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdatetime.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo `test -f 'gstdatetime.c' || echo '$(srcdir)/'`gstdatetime.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdatetime.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdatetime.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdatetime.c' object='libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstelement.lo `test -f 'gstelement.c' || echo '$(srcdir)/'`gstelement.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdatetime.lo `test -f 'gstdatetime.c' || echo '$(srcdir)/'`gstdatetime.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo: gstelementfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo `test -f 'gstelementfactory.c' || echo '$(srcdir)/'`gstelementfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstelementfactory.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo: gstdebugutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdebugutils.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo `test -f 'gstdebugutils.c' || echo '$(srcdir)/'`gstdebugutils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdebugutils.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstdebugutils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdebugutils.c' object='libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstelementfactory.lo `test -f 'gstelementfactory.c' || echo '$(srcdir)/'`gstelementfactory.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstdebugutils.lo `test -f 'gstdebugutils.c' || echo '$(srcdir)/'`gstdebugutils.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo: gsterror.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsterror.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo `test -f 'gsterror.c' || echo '$(srcdir)/'`gsterror.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsterror.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsterror.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsterror.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstelement.lo: gstelement.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstelement.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstelement.lo `test -f 'gstelement.c' || echo '$(srcdir)/'`gstelement.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelement.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstelement.c' object='libgstreamer_@GST_API_VERSION@_la-gstelement.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsterror.lo `test -f 'gsterror.c' || echo '$(srcdir)/'`gsterror.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstelement.lo `test -f 'gstelement.c' || echo '$(srcdir)/'`gstelement.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo: gstevent.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstevent.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo `test -f 'gstevent.c' || echo '$(srcdir)/'`gstevent.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstevent.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstevent.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstevent.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo: gstelementfactory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelementfactory.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo `test -f 'gstelementfactory.c' || echo '$(srcdir)/'`gstelementfactory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelementfactory.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstelementfactory.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstelementfactory.c' object='libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstevent.lo `test -f 'gstevent.c' || echo '$(srcdir)/'`gstevent.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstelementfactory.lo `test -f 'gstelementfactory.c' || echo '$(srcdir)/'`gstelementfactory.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo: gstfilter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstfilter.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo `test -f 'gstfilter.c' || echo '$(srcdir)/'`gstfilter.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstfilter.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstfilter.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfilter.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsterror.lo: gsterror.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsterror.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsterror.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsterror.lo `test -f 'gsterror.c' || echo '$(srcdir)/'`gsterror.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsterror.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsterror.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsterror.c' object='libgstreamer_@GST_API_VERSION@_la-gsterror.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstfilter.lo `test -f 'gstfilter.c' || echo '$(srcdir)/'`gstfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsterror.lo `test -f 'gsterror.c' || echo '$(srcdir)/'`gsterror.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo: gstformat.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstformat.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo `test -f 'gstformat.c' || echo '$(srcdir)/'`gstformat.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstformat.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstformat.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstformat.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstevent.lo: gstevent.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstevent.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstevent.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstevent.lo `test -f 'gstevent.c' || echo '$(srcdir)/'`gstevent.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstevent.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstevent.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstevent.c' object='libgstreamer_@GST_API_VERSION@_la-gstevent.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstformat.lo `test -f 'gstformat.c' || echo '$(srcdir)/'`gstformat.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstevent.lo `test -f 'gstevent.c' || echo '$(srcdir)/'`gstevent.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo: gstghostpad.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo `test -f 'gstghostpad.c' || echo '$(srcdir)/'`gstghostpad.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstghostpad.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstformat.lo: gstformat.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstformat.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstformat.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstformat.lo `test -f 'gstformat.c' || echo '$(srcdir)/'`gstformat.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstformat.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstformat.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstformat.c' object='libgstreamer_@GST_API_VERSION@_la-gstformat.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstghostpad.lo `test -f 'gstghostpad.c' || echo '$(srcdir)/'`gstghostpad.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstformat.lo `test -f 'gstformat.c' || echo '$(srcdir)/'`gstformat.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo: gstindex.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindex.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo `test -f 'gstindex.c' || echo '$(srcdir)/'`gstindex.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindex.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindex.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstindex.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo: gstghostpad.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstghostpad.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo `test -f 'gstghostpad.c' || echo '$(srcdir)/'`gstghostpad.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstghostpad.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstghostpad.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstghostpad.c' object='libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstindex.lo `test -f 'gstindex.c' || echo '$(srcdir)/'`gstindex.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstghostpad.lo `test -f 'gstghostpad.c' || echo '$(srcdir)/'`gstghostpad.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo: gstindexfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo `test -f 'gstindexfactory.c' || echo '$(srcdir)/'`gstindexfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstindexfactory.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstinfo.lo: gstinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstinfo.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstinfo.lo `test -f 'gstinfo.c' || echo '$(srcdir)/'`gstinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstinfo.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstinfo.c' object='libgstreamer_@GST_API_VERSION@_la-gstinfo.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstindexfactory.lo `test -f 'gstindexfactory.c' || echo '$(srcdir)/'`gstindexfactory.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstinfo.lo `test -f 'gstinfo.c' || echo '$(srcdir)/'`gstinfo.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo: gstinfo.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstinfo.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo `test -f 'gstinfo.c' || echo '$(srcdir)/'`gstinfo.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstinfo.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstinfo.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstinfo.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstiterator.lo: gstiterator.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstiterator.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstiterator.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstiterator.lo `test -f 'gstiterator.c' || echo '$(srcdir)/'`gstiterator.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstiterator.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstiterator.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstiterator.c' object='libgstreamer_@GST_API_VERSION@_la-gstiterator.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstinfo.lo `test -f 'gstinfo.c' || echo '$(srcdir)/'`gstinfo.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstiterator.lo `test -f 'gstiterator.c' || echo '$(srcdir)/'`gstiterator.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo: gstiterator.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstiterator.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo `test -f 'gstiterator.c' || echo '$(srcdir)/'`gstiterator.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstiterator.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstiterator.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstiterator.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo: gstatomicqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo `test -f 'gstatomicqueue.c' || echo '$(srcdir)/'`gstatomicqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstatomicqueue.c' object='libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstiterator.lo `test -f 'gstiterator.c' || echo '$(srcdir)/'`gstiterator.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.lo `test -f 'gstatomicqueue.c' || echo '$(srcdir)/'`gstatomicqueue.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo: gstatomicqueue.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo `test -f 'gstatomicqueue.c' || echo '$(srcdir)/'`gstatomicqueue.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstatomicqueue.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstmessage.lo: gstmessage.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstmessage.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmessage.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstmessage.lo `test -f 'gstmessage.c' || echo '$(srcdir)/'`gstmessage.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmessage.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmessage.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmessage.c' object='libgstreamer_@GST_API_VERSION@_la-gstmessage.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstatomicqueue.lo `test -f 'gstatomicqueue.c' || echo '$(srcdir)/'`gstatomicqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstmessage.lo `test -f 'gstmessage.c' || echo '$(srcdir)/'`gstmessage.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo: gstmessage.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmessage.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo `test -f 'gstmessage.c' || echo '$(srcdir)/'`gstmessage.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmessage.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmessage.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmessage.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstmeta.lo: gstmeta.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstmeta.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmeta.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstmeta.lo `test -f 'gstmeta.c' || echo '$(srcdir)/'`gstmeta.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmeta.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmeta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmeta.c' object='libgstreamer_@GST_API_VERSION@_la-gstmeta.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmessage.lo `test -f 'gstmessage.c' || echo '$(srcdir)/'`gstmessage.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstmeta.lo `test -f 'gstmeta.c' || echo '$(srcdir)/'`gstmeta.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo: gstmeta.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmeta.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo `test -f 'gstmeta.c' || echo '$(srcdir)/'`gstmeta.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmeta.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmeta.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmeta.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstmemory.lo: gstmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstmemory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmemory.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstmemory.lo `test -f 'gstmemory.c' || echo '$(srcdir)/'`gstmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmemory.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstmemory.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmemory.c' object='libgstreamer_@GST_API_VERSION@_la-gstmemory.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmeta.lo `test -f 'gstmeta.c' || echo '$(srcdir)/'`gstmeta.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstmemory.lo `test -f 'gstmemory.c' || echo '$(srcdir)/'`gstmemory.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo: gstmemory.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmemory.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo `test -f 'gstmemory.c' || echo '$(srcdir)/'`gstmemory.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmemory.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmemory.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmemory.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo: gstminiobject.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstminiobject.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo `test -f 'gstminiobject.c' || echo '$(srcdir)/'`gstminiobject.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstminiobject.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstminiobject.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstminiobject.c' object='libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmemory.lo `test -f 'gstmemory.c' || echo '$(srcdir)/'`gstmemory.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstminiobject.lo `test -f 'gstminiobject.c' || echo '$(srcdir)/'`gstminiobject.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo: gstminiobject.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo `test -f 'gstminiobject.c' || echo '$(srcdir)/'`gstminiobject.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstminiobject.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpad.lo: gstpad.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpad.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpad.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpad.lo `test -f 'gstpad.c' || echo '$(srcdir)/'`gstpad.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpad.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpad.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpad.c' object='libgstreamer_@GST_API_VERSION@_la-gstpad.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstminiobject.lo `test -f 'gstminiobject.c' || echo '$(srcdir)/'`gstminiobject.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpad.lo `test -f 'gstpad.c' || echo '$(srcdir)/'`gstpad.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo: gstpad.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpad.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo `test -f 'gstpad.c' || echo '$(srcdir)/'`gstpad.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpad.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpad.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpad.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo: gstpadtemplate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo `test -f 'gstpadtemplate.c' || echo '$(srcdir)/'`gstpadtemplate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpadtemplate.c' object='libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpad.lo `test -f 'gstpad.c' || echo '$(srcdir)/'`gstpad.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpadtemplate.lo `test -f 'gstpadtemplate.c' || echo '$(srcdir)/'`gstpadtemplate.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo: gstpadtemplate.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo `test -f 'gstpadtemplate.c' || echo '$(srcdir)/'`gstpadtemplate.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpadtemplate.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo: gstparamspecs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparamspecs.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo `test -f 'gstparamspecs.c' || echo '$(srcdir)/'`gstparamspecs.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparamspecs.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparamspecs.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstparamspecs.c' object='libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpadtemplate.lo `test -f 'gstpadtemplate.c' || echo '$(srcdir)/'`gstpadtemplate.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstparamspecs.lo `test -f 'gstparamspecs.c' || echo '$(srcdir)/'`gstparamspecs.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo: gstparamspecs.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo `test -f 'gstparamspecs.c' || echo '$(srcdir)/'`gstparamspecs.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstparamspecs.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo: gstpipeline.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpipeline.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo `test -f 'gstpipeline.c' || echo '$(srcdir)/'`gstpipeline.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpipeline.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpipeline.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpipeline.c' object='libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstparamspecs.lo `test -f 'gstparamspecs.c' || echo '$(srcdir)/'`gstparamspecs.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpipeline.lo `test -f 'gstpipeline.c' || echo '$(srcdir)/'`gstpipeline.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo: gstpipeline.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo `test -f 'gstpipeline.c' || echo '$(srcdir)/'`gstpipeline.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpipeline.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstplugin.lo: gstplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstplugin.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstplugin.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstplugin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstplugin.c' object='libgstreamer_@GST_API_VERSION@_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpipeline.lo `test -f 'gstpipeline.c' || echo '$(srcdir)/'`gstpipeline.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo: gstplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstplugin.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstplugin.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstplugin.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstplugin.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo: gstpluginfeature.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo `test -f 'gstpluginfeature.c' || echo '$(srcdir)/'`gstpluginfeature.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpluginfeature.c' object='libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstplugin.lo `test -f 'gstplugin.c' || echo '$(srcdir)/'`gstplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpluginfeature.lo `test -f 'gstpluginfeature.c' || echo '$(srcdir)/'`gstpluginfeature.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo: gstpluginfeature.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo `test -f 'gstpluginfeature.c' || echo '$(srcdir)/'`gstpluginfeature.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpluginfeature.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo: gstpluginloader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo `test -f 'gstpluginloader.c' || echo '$(srcdir)/'`gstpluginloader.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpluginloader.c' object='libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpluginfeature.lo `test -f 'gstpluginfeature.c' || echo '$(srcdir)/'`gstpluginfeature.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo `test -f 'gstpluginloader.c' || echo '$(srcdir)/'`gstpluginloader.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo: gstpluginloader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo `test -f 'gstpluginloader.c' || echo '$(srcdir)/'`gstpluginloader.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpluginloader.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpoll.lo: gstpoll.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpoll.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpoll.lo `test -f 'gstpoll.c' || echo '$(srcdir)/'`gstpoll.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpoll.c' object='libgstreamer_@GST_API_VERSION@_la-gstpoll.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpluginloader.lo `test -f 'gstpluginloader.c' || echo '$(srcdir)/'`gstpluginloader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpoll.lo `test -f 'gstpoll.c' || echo '$(srcdir)/'`gstpoll.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo: gstpoll.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpoll.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo `test -f 'gstpoll.c' || echo '$(srcdir)/'`gstpoll.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpoll.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpoll.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpoll.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstpreset.lo: gstpreset.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstpreset.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpreset.c' object='libgstreamer_@GST_API_VERSION@_la-gstpreset.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpoll.lo `test -f 'gstpoll.c' || echo '$(srcdir)/'`gstpoll.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo: gstpreset.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpreset.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpreset.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstpreset.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpreset.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstquark.lo: gstquark.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstquark.c' object='libgstreamer_@GST_API_VERSION@_la-gstquark.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo: gstquark.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquark.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquark.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquark.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstquark.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstquery.lo: gstquery.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstquery.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstquery.lo `test -f 'gstquery.c' || echo '$(srcdir)/'`gstquery.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstquery.c' object='libgstreamer_@GST_API_VERSION@_la-gstquery.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstquery.lo `test -f 'gstquery.c' || echo '$(srcdir)/'`gstquery.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo: gstquery.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquery.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo `test -f 'gstquery.c' || echo '$(srcdir)/'`gstquery.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquery.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstquery.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstquery.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstregistry.lo: gstregistry.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstregistry.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstregistry.lo `test -f 'gstregistry.c' || echo '$(srcdir)/'`gstregistry.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstregistry.c' object='libgstreamer_@GST_API_VERSION@_la-gstregistry.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstquery.lo `test -f 'gstquery.c' || echo '$(srcdir)/'`gstquery.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstregistry.lo `test -f 'gstregistry.c' || echo '$(srcdir)/'`gstregistry.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo: gstregistry.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistry.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo `test -f 'gstregistry.c' || echo '$(srcdir)/'`gstregistry.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistry.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistry.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstregistry.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo: gstregistrychunks.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo `test -f 'gstregistrychunks.c' || echo '$(srcdir)/'`gstregistrychunks.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstregistrychunks.c' object='libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistry.lo `test -f 'gstregistry.c' || echo '$(srcdir)/'`gstregistry.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstregistrychunks.lo `test -f 'gstregistrychunks.c' || echo '$(srcdir)/'`gstregistrychunks.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo: gstregistrychunks.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo `test -f 'gstregistrychunks.c' || echo '$(srcdir)/'`gstregistrychunks.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstregistrychunks.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstsample.lo: gstsample.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstsample.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsample.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstsample.lo `test -f 'gstsample.c' || echo '$(srcdir)/'`gstsample.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsample.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsample.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsample.c' object='libgstreamer_@GST_API_VERSION@_la-gstsample.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistrychunks.lo `test -f 'gstregistrychunks.c' || echo '$(srcdir)/'`gstregistrychunks.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstsample.lo `test -f 'gstsample.c' || echo '$(srcdir)/'`gstsample.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo: gstsegment.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsegment.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo `test -f 'gstsegment.c' || echo '$(srcdir)/'`gstsegment.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsegment.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsegment.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstsegment.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstsegment.lo: gstsegment.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstsegment.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsegment.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstsegment.lo `test -f 'gstsegment.c' || echo '$(srcdir)/'`gstsegment.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsegment.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsegment.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsegment.c' object='libgstreamer_@GST_API_VERSION@_la-gstsegment.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstsegment.lo `test -f 'gstsegment.c' || echo '$(srcdir)/'`gstsegment.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstsegment.lo `test -f 'gstsegment.c' || echo '$(srcdir)/'`gstsegment.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo: gststructure.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gststructure.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo `test -f 'gststructure.c' || echo '$(srcdir)/'`gststructure.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gststructure.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gststructure.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gststructure.c' object='libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gststructure.lo: gststructure.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gststructure.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gststructure.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gststructure.lo `test -f 'gststructure.c' || echo '$(srcdir)/'`gststructure.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gststructure.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gststructure.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gststructure.c' object='libgstreamer_@GST_API_VERSION@_la-gststructure.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gststructure.lo `test -f 'gststructure.c' || echo '$(srcdir)/'`gststructure.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gststructure.lo `test -f 'gststructure.c' || echo '$(srcdir)/'`gststructure.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo: gstsystemclock.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo `test -f 'gstsystemclock.c' || echo '$(srcdir)/'`gstsystemclock.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstsystemclock.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo: gstsystemclock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsystemclock.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo `test -f 'gstsystemclock.c' || echo '$(srcdir)/'`gstsystemclock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsystemclock.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstsystemclock.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstsystemclock.c' object='libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstsystemclock.lo `test -f 'gstsystemclock.c' || echo '$(srcdir)/'`gstsystemclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstsystemclock.lo `test -f 'gstsystemclock.c' || echo '$(srcdir)/'`gstsystemclock.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo: gsttaglist.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo `test -f 'gsttaglist.c' || echo '$(srcdir)/'`gsttaglist.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttaglist.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo: gsttaglist.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaglist.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo `test -f 'gsttaglist.c' || echo '$(srcdir)/'`gsttaglist.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaglist.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaglist.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttaglist.c' object='libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttaglist.lo `test -f 'gsttaglist.c' || echo '$(srcdir)/'`gsttaglist.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttaglist.lo `test -f 'gsttaglist.c' || echo '$(srcdir)/'`gsttaglist.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo: gsttagsetter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo `test -f 'gsttagsetter.c' || echo '$(srcdir)/'`gsttagsetter.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttagsetter.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo: gsttagsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttagsetter.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo `test -f 'gsttagsetter.c' || echo '$(srcdir)/'`gsttagsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttagsetter.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttagsetter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttagsetter.c' object='libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttagsetter.lo `test -f 'gsttagsetter.c' || echo '$(srcdir)/'`gsttagsetter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttagsetter.lo `test -f 'gsttagsetter.c' || echo '$(srcdir)/'`gsttagsetter.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo: gsttask.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttask.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo `test -f 'gsttask.c' || echo '$(srcdir)/'`gsttask.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttask.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttask.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttask.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttask.lo: gsttask.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttask.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttask.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttask.lo `test -f 'gsttask.c' || echo '$(srcdir)/'`gsttask.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttask.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttask.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttask.c' object='libgstreamer_@GST_API_VERSION@_la-gsttask.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttask.lo `test -f 'gsttask.c' || echo '$(srcdir)/'`gsttask.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttask.lo `test -f 'gsttask.c' || echo '$(srcdir)/'`gsttask.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo: gsttaskpool.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo `test -f 'gsttaskpool.c' || echo '$(srcdir)/'`gsttaskpool.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttaskpool.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo: gsttaskpool.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaskpool.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo `test -f 'gsttaskpool.c' || echo '$(srcdir)/'`gsttaskpool.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaskpool.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttaskpool.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttaskpool.c' object='libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttaskpool.lo `test -f 'gsttaskpool.c' || echo '$(srcdir)/'`gsttaskpool.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttaskpool.lo `test -f 'gsttaskpool.c' || echo '$(srcdir)/'`gsttaskpool.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo: gsttrace.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttrace.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo `test -f 'gsttrace.c' || echo '$(srcdir)/'`gsttrace.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttrace.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttrace.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttrace.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttoc.lo: gsttoc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttoc.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttoc.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttoc.lo `test -f 'gsttoc.c' || echo '$(srcdir)/'`gsttoc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttoc.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttoc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttoc.c' object='libgstreamer_@GST_API_VERSION@_la-gsttoc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttrace.lo `test -f 'gsttrace.c' || echo '$(srcdir)/'`gsttrace.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttoc.lo `test -f 'gsttoc.c' || echo '$(srcdir)/'`gsttoc.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo: gsttypefind.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo `test -f 'gsttypefind.c' || echo '$(srcdir)/'`gsttypefind.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttypefind.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo: gsttocsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttocsetter.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo `test -f 'gsttocsetter.c' || echo '$(srcdir)/'`gsttocsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttocsetter.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttocsetter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttocsetter.c' object='libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttypefind.lo `test -f 'gsttypefind.c' || echo '$(srcdir)/'`gsttypefind.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttocsetter.lo `test -f 'gsttocsetter.c' || echo '$(srcdir)/'`gsttocsetter.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo: gsttypefindfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo `test -f 'gsttypefindfactory.c' || echo '$(srcdir)/'`gsttypefindfactory.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttypefindfactory.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttrace.lo: gsttrace.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttrace.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttrace.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttrace.lo `test -f 'gsttrace.c' || echo '$(srcdir)/'`gsttrace.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttrace.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttrace.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttrace.c' object='libgstreamer_@GST_API_VERSION@_la-gsttrace.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsttypefindfactory.lo `test -f 'gsttypefindfactory.c' || echo '$(srcdir)/'`gsttypefindfactory.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttrace.lo `test -f 'gsttrace.c' || echo '$(srcdir)/'`gsttrace.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo: gsturi.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsturi.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo `test -f 'gsturi.c' || echo '$(srcdir)/'`gsturi.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsturi.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gsturi.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsturi.c' object='libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo: gsttypefind.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefind.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo `test -f 'gsttypefind.c' || echo '$(srcdir)/'`gsttypefind.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefind.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefind.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttypefind.c' object='libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gsturi.lo `test -f 'gsturi.c' || echo '$(srcdir)/'`gsturi.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttypefind.lo `test -f 'gsttypefind.c' || echo '$(srcdir)/'`gsttypefind.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo: gstutils.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstutils.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo `test -f 'gstutils.c' || echo '$(srcdir)/'`gstutils.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstutils.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstutils.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstutils.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo: gsttypefindfactory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo `test -f 'gsttypefindfactory.c' || echo '$(srcdir)/'`gsttypefindfactory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttypefindfactory.c' object='libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstutils.lo `test -f 'gstutils.c' || echo '$(srcdir)/'`gstutils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsttypefindfactory.lo `test -f 'gsttypefindfactory.c' || echo '$(srcdir)/'`gsttypefindfactory.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo: gstvalue.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstvalue.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo `test -f 'gstvalue.c' || echo '$(srcdir)/'`gstvalue.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstvalue.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstvalue.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstvalue.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gsturi.lo: gsturi.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gsturi.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsturi.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gsturi.lo `test -f 'gsturi.c' || echo '$(srcdir)/'`gsturi.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsturi.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gsturi.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsturi.c' object='libgstreamer_@GST_API_VERSION@_la-gsturi.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstvalue.lo `test -f 'gstvalue.c' || echo '$(srcdir)/'`gstvalue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gsturi.lo `test -f 'gsturi.c' || echo '$(srcdir)/'`gsturi.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo: gstparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparse.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo `test -f 'gstparse.c' || echo '$(srcdir)/'`gstparse.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparse.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstparse.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstparse.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstutils.lo: gstutils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstutils.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstutils.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstutils.lo `test -f 'gstutils.c' || echo '$(srcdir)/'`gstutils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstutils.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstutils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstutils.c' object='libgstreamer_@GST_API_VERSION@_la-gstutils.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstparse.lo `test -f 'gstparse.c' || echo '$(srcdir)/'`gstparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstutils.lo `test -f 'gstutils.c' || echo '$(srcdir)/'`gstutils.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo: gstregistrybinary.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo `test -f 'gstregistrybinary.c' || echo '$(srcdir)/'`gstregistrybinary.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstregistrybinary.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstvalue.lo: gstvalue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstvalue.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstvalue.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstvalue.lo `test -f 'gstvalue.c' || echo '$(srcdir)/'`gstvalue.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstvalue.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstvalue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvalue.c' object='libgstreamer_@GST_API_VERSION@_la-gstvalue.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstregistrybinary.lo `test -f 'gstregistrybinary.c' || echo '$(srcdir)/'`gstregistrybinary.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstvalue.lo `test -f 'gstvalue.c' || echo '$(srcdir)/'`gstvalue.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo: gstenumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo `test -f 'gstenumtypes.c' || echo '$(srcdir)/'`gstenumtypes.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstenumtypes.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstparse.lo: gstparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstparse.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparse.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstparse.lo `test -f 'gstparse.c' || echo '$(srcdir)/'`gstparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparse.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstparse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstparse.c' object='libgstreamer_@GST_API_VERSION@_la-gstparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstenumtypes.lo `test -f 'gstenumtypes.c' || echo '$(srcdir)/'`gstenumtypes.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstparse.lo `test -f 'gstparse.c' || echo '$(srcdir)/'`gstparse.c
 
-libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo: gstmarshal.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.Tpo -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo `test -f 'gstmarshal.c' || echo '$(srcdir)/'`gstmarshal.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.Tpo $(DEPDIR)/libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmarshal.c' object='libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo' libtool=yes @AMDEPBACKSLASH@
+libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo: gstregistrybinary.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo `test -f 'gstregistrybinary.c' || echo '$(srcdir)/'`gstregistrybinary.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstregistrybinary.c' object='libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_MAJORMINOR@_la-gstmarshal.lo `test -f 'gstmarshal.c' || echo '$(srcdir)/'`gstmarshal.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo `test -f 'gstregistrybinary.c' || echo '$(srcdir)/'`gstregistrybinary.c
+
+libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo: gstenumtypes.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstenumtypes.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo `test -f 'gstenumtypes.c' || echo '$(srcdir)/'`gstenumtypes.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstenumtypes.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstenumtypes.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstenumtypes.c' object='libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstenumtypes.lo `test -f 'gstenumtypes.c' || echo '$(srcdir)/'`gstenumtypes.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -1370,8 +1356,11 @@
 	-rm -rf .libs _libs
 install-girDATA: $(gir_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -1385,13 +1374,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(girdir)" && rm -f $$files
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -1405,49 +1395,49 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
-install-libgstreamer_@GST_MAJORMINOR@includeHEADERS: $(libgstreamer_@GST_MAJORMINOR@include_HEADERS)
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstreamer_@GST_API_VERSION@includeHEADERS: $(libgstreamer_@GST_API_VERSION@include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstreamer_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)"
-	@list='$(libgstreamer_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstreamer_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstreamer_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstreamer_@GST_API_VERSION@includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)" || exit $$?; \
 	done
 
-uninstall-libgstreamer_@GST_MAJORMINOR@includeHEADERS:
+uninstall-libgstreamer_@GST_API_VERSION@includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libgstreamer_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstreamer_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstreamer_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstreamer_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" && rm -f $$files
-install-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS)
+	dir='$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+install-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS: $(nodist_libgstreamer_@GST_API_VERSION@include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstreamer_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)"
-	@list='$(nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstreamer_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(nodist_libgstreamer_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstreamer_@GST_API_VERSION@includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)" || exit $$?; \
 	done
 
-uninstall-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS:
+uninstall-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstreamer_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(nodist_libgstreamer_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstreamer_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -1616,13 +1606,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -1648,7 +1635,7 @@
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstreamer_@GST_MAJORMINOR@includedir)"; do \
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)" "$(DESTDIR)$(libgstreamer_@GST_API_VERSION@includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -1662,10 +1649,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1704,8 +1696,8 @@
 info-am:
 
 install-data-am: install-girDATA \
-	install-libgstreamer_@GST_MAJORMINOR@includeHEADERS \
-	install-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS \
+	install-libgstreamer_@GST_API_VERSION@includeHEADERS \
+	install-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
 	install-typelibsDATA
 
 install-dvi: install-dvi-recursive
@@ -1753,8 +1745,8 @@
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgstreamer_@GST_MAJORMINOR@includeHEADERS \
-	uninstall-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstreamer_@GST_API_VERSION@includeHEADERS \
+	uninstall-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
@@ -1770,9 +1762,9 @@
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-girDATA install-html install-html-am \
 	install-info install-info-am install-libLTLIBRARIES \
-	install-libgstreamer_@GST_MAJORMINOR@includeHEADERS \
+	install-libgstreamer_@GST_API_VERSION@includeHEADERS \
 	install-man \
-	install-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS \
+	install-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs installdirs-am maintainer-clean \
@@ -1780,22 +1772,11 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-recursive uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
-	uninstall-libgstreamer_@GST_MAJORMINOR@includeHEADERS \
-	uninstall-nodist_libgstreamer_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstreamer_@GST_API_VERSION@includeHEADERS \
+	uninstall-nodist_libgstreamer_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 
-gstmarshal.h: gstmarshal.list
-	$(AM_V_GEN)glib-genmarshal --header --prefix=gst_marshal $(srcdir)/gstmarshal.list > gstmarshal.h.tmp && \
-	mv gstmarshal.h.tmp gstmarshal.h
-
-gstmarshal.c: gstmarshal.list gst_private.h
-	$(AM_V_GEN)echo "#include \"gst_private.h\"" > gstmarshal.c.tmp && \
-	echo "#include \"glib-object.h\"" >> gstmarshal.c.tmp && \
-	echo "#include \"gstmarshal.h\"" >> gstmarshal.c.tmp && \
-	glib-genmarshal --body --prefix=gst_marshal $(srcdir)/gstmarshal.list >> gstmarshal.c.tmp && \
-	mv gstmarshal.c.tmp gstmarshal.c
-
 gstenumtypes.h: $(gst_headers)
 	$(AM_V_GEN)glib-mkenums \
 	--fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
@@ -1813,38 +1794,39 @@
 	--vtail "    { 0, NULL, NULL }\n  };\n\n  if (g_once_init_enter (&id)) {\n    GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n    g_once_init_leave (&id, tmp);\n  }\n\n  return (GType) id;\n}" \
 	$^ > gstenumtypes.c
 
-%.c.gcov: .libs/libgstreamer_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstreamer_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_MAJORMINOR@ \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
 	 -:TAGS eng debug \
          -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	           $(nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstreamer_@GST_MAJORMINOR@_la_LIBADD) \
+	 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	           $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
 	           -ldl \
 	 -:SUBDIR gst/parse \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst \
-	 -:HEADERS $(libgstreamer_@GST_MAJORMINOR@include_HEADERS) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
+	 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
 	 -:LIBFILTER_STATIC gstparse \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
-@HAVE_INTROSPECTION_TRUE@Gst-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_MAJORMINOR@.la
+@HAVE_INTROSPECTION_TRUE@Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace Gst \
-@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_builddir) \
 @HAVE_INTROSPECTION_TRUE@		-DIN_GOBJECT_INTROSPECTION=1 \
 @HAVE_INTROSPECTION_TRUE@		-DGST_USE_UNSTABLE_API \
 @HAVE_INTROSPECTION_TRUE@		--c-include='gst/gst.h' \
-@HAVE_INTROSPECTION_TRUE@		--library=libgstreamer-0.11.la \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstreamer-@GST_API_VERSION@.la \
 @HAVE_INTROSPECTION_TRUE@		--include=GLib-2.0 \
 @HAVE_INTROSPECTION_TRUE@		--include=GObject-2.0 \
 @HAVE_INTROSPECTION_TRUE@		--include=GModule-2.0 \
@@ -1853,7 +1835,7 @@
 @HAVE_INTROSPECTION_TRUE@		--pkg gobject-2.0 \
 @HAVE_INTROSPECTION_TRUE@		--pkg gmodule-no-export-2.0 \
 @HAVE_INTROSPECTION_TRUE@		--pkg gthread-2.0 \
-@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL, NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
 @HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
@@ -1864,11 +1846,11 @@
 
 # try to prevent packaging errors
 check-libexecdir-consistency:
-	@if test "${GST_PLUGIN_SCANNER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_MAJORMINOR)/gst-plugin-scanner"; then \
+	@if test "${GST_PLUGIN_SCANNER_INSTALLED}" != "${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; then \
 	  echo "*** Inconsistent libexecdir! Please use ./configure --libexecdir=/foo/bar"; \
 	  echo "*** to set the libexecdir and not make libexecdir=/foo/bar or the like."; \
 	  echo "*** The same goes for prefix, libdir etc."; \
-	  echo "*** ${GST_PLUGIN_SCANNER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_MAJORMINOR)/gst-plugin-scanner"; \
+	  echo "*** ${GST_PLUGIN_SCANNER_INSTALLED} != ${libexecdir}/gstreamer-$(GST_API_VERSION)/gst-plugin-scanner"; \
 	  exit 1; \
 	fi
 
diff --git a/gst/glib-compat-private.h b/gst/glib-compat-private.h
index 7b5d6cf..9a92993 100644
--- a/gst/glib-compat-private.h
+++ b/gst/glib-compat-private.h
@@ -3,6 +3,21 @@
  * Functions copied from glib 2.10
  *
  * Copyright 2005 David Schleef <ds@schleef.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
  */
 
 #ifndef __GLIB_COMPAT_PRIVATE_H__
@@ -12,40 +27,6 @@
 
 G_BEGIN_DECLS
 
-#if !GLIB_CHECK_VERSION(2,25,0)
-
-#if defined (_MSC_VER) && !defined(_WIN64)
-typedef struct _stat32 GStatBuf;
-#else
-typedef struct stat GStatBuf;
-#endif
-
-#endif
-
-#if GLIB_CHECK_VERSION(2,26,0)
-#define GLIB_HAS_GDATETIME
-#endif
-
-/* See bug #651514 */
-#if GLIB_CHECK_VERSION(2,29,5)
-#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \
-    g_atomic_pointer_compare_and_exchange ((a),(b),(c))
-#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \
-    g_atomic_int_compare_and_exchange ((a),(b),(c))
-#else
-#define G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE(a,b,c) \
-    g_atomic_pointer_compare_and_exchange ((volatile gpointer *)(a),(b),(c))
-#define G_ATOMIC_INT_COMPARE_AND_EXCHANGE(a,b,c) \
-    g_atomic_int_compare_and_exchange ((volatile int *)(a),(b),(c))
-#endif
-
-/* See bug #651514 */
-#if GLIB_CHECK_VERSION(2,29,5)
-#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_add ((a),(b))
-#else
-#define G_ATOMIC_INT_ADD(a,b) g_atomic_int_exchange_and_add ((a),(b))
-#endif
-
 /* copies */
 
 /* adaptations */
diff --git a/gst/gst-i18n-app.h b/gst/gst-i18n-app.h
index 06339b8..b579c9d 100644
--- a/gst/gst-i18n-app.h
+++ b/gst/gst-i18n-app.h
@@ -25,6 +25,7 @@
 
 #ifdef ENABLE_NLS
 
+#include <locale.h>  /* some people need it and some people don't */
 #include "gettext.h" /* included with gettext distribution and copied */
 
 /* we want to use shorthand _() for translating and N_() for marking */
diff --git a/gst/gst-i18n-lib.h b/gst/gst-i18n-lib.h
index e4eb45e..1902196 100644
--- a/gst/gst-i18n-lib.h
+++ b/gst/gst-i18n-lib.h
@@ -29,6 +29,7 @@
 
 #ifdef ENABLE_NLS
 
+#include <locale.h>  /* some people need it and some people don't */
 #include "gettext.h" /* included with gettext distribution and copied */
 
 /* we want to use shorthand _() for translating and N_() for marking */
diff --git a/gst/gst.c b/gst/gst.c
index 4634758..c56bd50 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -118,6 +118,7 @@
 #include <locale.h>             /* for LC_ALL */
 
 #include "gst.h"
+#include "gsttrace.h"
 
 #define GST_CAT_DEFAULT GST_CAT_GST_INIT
 
@@ -283,7 +284,7 @@
 #endif
 
 /**
- * gst_init_get_option_group:
+ * gst_init_get_option_group: (skip)
  *
  * Returns a #GOptionGroup with GStreamer's argument specifications. The
  * group is set up to use standard GOption callbacks, so when using this
@@ -360,28 +361,6 @@
     {NULL}
   };
 
-  /* Since GLib 2.23.2 calling g_thread_init() 'late' is allowed and is
-   * automatically done as part of g_type_init() */
-  if (glib_check_version (2, 23, 3)) {
-    /* The GLib threading system must be initialised before calling any other
-     * GLib function according to the documentation; if the application hasn't
-     * called gst_init() yet or initialised the threading system otherwise, we
-     * better issue a warning here (since chances are high that the application
-     * has already called other GLib functions such as g_option_context_new() */
-    if (!g_thread_get_initialized ()) {
-      g_warning ("The GStreamer function gst_init_get_option_group() was\n"
-          "\tcalled, but the GLib threading system has not been initialised\n"
-          "\tyet, something that must happen before any other GLib function\n"
-          "\tis called. The application needs to be fixed so that it calls\n"
-          "\t   if (!g_thread_get_initialized ()) g_thread_init(NULL);\n"
-          "\tas very first thing in its main() function. Please file a bug\n"
-          "\tagainst this application.");
-      g_thread_init (NULL);
-    }
-  } else {
-    /* GLib >= 2.23.2 */
-  }
-
   group = g_option_group_new ("gst", _("GStreamer Options"),
       _("Show GStreamer Options"), NULL, NULL);
   g_option_group_set_parse_hooks (group, (GOptionParseFunc) init_pre,
@@ -424,9 +403,6 @@
 #endif
   gboolean res;
 
-  if (!g_thread_get_initialized ())
-    g_thread_init (NULL);
-
   if (gst_initialized) {
     GST_DEBUG ("already initialized gst");
     return TRUE;
@@ -574,10 +550,9 @@
 
   g_type_init ();
 
-  /* we need threading to be enabled right here */
-  g_assert (g_thread_get_initialized ());
-
-  _gst_debug_init ();
+#ifndef GST_DISABLE_GST_DEBUG
+  _priv_gst_debug_init ();
+#endif
 
 #ifdef ENABLE_NLS
   setlocale (LC_ALL, "");
@@ -652,10 +627,6 @@
 {
   GLogLevelFlags llf;
 
-#ifndef GST_DISABLE_TRACE
-  GstTrace *gst_trace;
-#endif /* GST_DISABLE_TRACE */
-
   if (gst_initialized) {
     GST_DEBUG ("already initialized");
     return TRUE;
@@ -664,6 +635,9 @@
   llf = G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR | G_LOG_FLAG_FATAL;
   g_log_set_handler (g_log_domain_gstreamer, llf, debug_log_handler, NULL);
 
+  _priv_gst_alloc_trace_initialize ();
+
+  _priv_gst_mini_object_initialize ();
   _priv_gst_quarks_initialize ();
   _priv_gst_memory_initialize ();
   _priv_gst_format_initialize ();
@@ -682,7 +656,6 @@
   g_type_class_ref (gst_task_get_type ());
   g_type_class_ref (gst_clock_get_type ());
 
-  g_type_class_ref (gst_index_factory_get_type ());
   gst_uri_handler_get_type ();
 
   g_type_class_ref (gst_object_flags_get_type ());
@@ -709,14 +682,9 @@
   g_type_class_ref (gst_event_type_get_type ());
   g_type_class_ref (gst_seek_type_get_type ());
   g_type_class_ref (gst_seek_flags_get_type ());
+  g_type_class_ref (gst_stream_config_flags_get_type ());
   g_type_class_ref (gst_qos_type_get_type ());
   g_type_class_ref (gst_format_get_type ());
-  g_type_class_ref (gst_index_certainty_get_type ());
-  g_type_class_ref (gst_index_entry_type_get_type ());
-  g_type_class_ref (gst_index_lookup_method_get_type ());
-  g_type_class_ref (gst_assoc_flags_get_type ());
-  g_type_class_ref (gst_index_resolver_method_get_type ());
-  g_type_class_ref (gst_index_flags_get_type ());
   g_type_class_ref (gst_debug_level_get_type ());
   g_type_class_ref (gst_debug_color_flags_get_type ());
   g_type_class_ref (gst_iterator_result_get_type ());
@@ -726,7 +694,7 @@
   g_type_class_ref (gst_pad_link_return_get_type ());
   g_type_class_ref (gst_pad_link_check_get_type ());
   g_type_class_ref (gst_flow_return_get_type ());
-  g_type_class_ref (gst_activate_mode_get_type ());
+  g_type_class_ref (gst_pad_mode_get_type ());
   g_type_class_ref (gst_pad_direction_get_type ());
   g_type_class_ref (gst_pad_flags_get_type ());
   g_type_class_ref (gst_pad_presence_get_type ());
@@ -736,6 +704,7 @@
   g_type_class_ref (gst_plugin_flags_get_type ());
   g_type_class_ref (gst_plugin_dependency_flags_get_type ());
   g_type_class_ref (gst_rank_get_type ());
+  g_type_class_ref (gst_query_type_flags_get_type ());
   g_type_class_ref (gst_query_type_get_type ());
   g_type_class_ref (gst_buffering_mode_get_type ());
   g_type_class_ref (gst_stream_status_type_get_type ());
@@ -744,34 +713,42 @@
   g_type_class_ref (gst_tag_flag_get_type ());
   g_type_class_ref (gst_task_pool_get_type ());
   g_type_class_ref (gst_task_state_get_type ());
-  g_type_class_ref (gst_alloc_trace_flags_get_type ());
+  g_type_class_ref (gst_toc_entry_type_get_type ());
   g_type_class_ref (gst_type_find_probability_get_type ());
+  g_type_class_ref (gst_uri_error_get_type ());
   g_type_class_ref (gst_uri_type_get_type ());
   g_type_class_ref (gst_parse_error_get_type ());
   g_type_class_ref (gst_parse_flags_get_type ());
   g_type_class_ref (gst_search_mode_get_type ());
   g_type_class_ref (gst_progress_type_get_type ());
-  g_type_class_ref (gst_buffer_pool_flags_get_type ());
+  g_type_class_ref (gst_buffer_pool_acquire_flags_get_type ());
   g_type_class_ref (gst_memory_flags_get_type ());
   g_type_class_ref (gst_map_flags_get_type ());
   g_type_class_ref (gst_caps_intersect_mode_get_type ());
-  g_type_class_ref (gst_probe_type_get_type ());
-  g_type_class_ref (gst_probe_return_get_type ());
+  g_type_class_ref (gst_pad_probe_type_get_type ());
+  g_type_class_ref (gst_pad_probe_return_get_type ());
   g_type_class_ref (gst_segment_flags_get_type ());
+  g_type_class_ref (gst_scheduling_flags_get_type ());
+  g_type_class_ref (gst_meta_flags_get_type ());
+  g_type_class_ref (gst_toc_entry_type_get_type ());
+
+  g_type_class_ref (gst_control_binding_get_type ());
+  g_type_class_ref (gst_control_source_get_type ());
 
   _priv_gst_event_initialize ();
   _priv_gst_buffer_initialize ();
   _priv_gst_message_initialize ();
   _priv_gst_buffer_list_initialize ();
+  _priv_gst_sample_initialize ();
   _priv_gst_value_initialize ();
+
   g_type_class_ref (gst_param_spec_fraction_get_type ());
   _priv_gst_tag_initialize ();
+  _priv_gst_toc_initialize ();
   gst_parse_context_get_type ();
 
   _priv_gst_plugin_initialize ();
 
-  gst_g_error_get_type ();
-
   /* register core plugins */
   gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR,
       "staticelements", "core elements linked into the GStreamer library",
@@ -792,14 +769,6 @@
   if (!gst_update_registry ())
     return FALSE;
 
-#ifndef GST_DISABLE_TRACE
-  _gst_trace_on = 0;
-  if (_gst_trace_on) {
-    gst_trace = gst_trace_new ("gst.trace", 1024);
-    gst_trace_set_default (gst_trace);
-  }
-#endif /* GST_DISABLE_TRACE */
-
   GST_INFO ("GLib runtime version: %d.%d.%d", glib_major_version,
       glib_minor_version, glib_micro_version);
   GST_INFO ("GLib headers version: %d.%d.%d", GLIB_MAJOR_VERSION,
@@ -832,7 +801,7 @@
   if (!init_post (NULL, NULL, NULL, NULL))
     exit (1);
 
-  list2 = gst_registry_plugin_filter (gst_registry_get_default (),
+  list2 = gst_registry_plugin_filter (gst_registry_get (),
       select_all, FALSE, NULL);
 
   /* FIXME this is gross.  why don't debug have categories PluginFeatures? */
@@ -912,7 +881,7 @@
       GstDebugLevel tmp = GST_LEVEL_NONE;
 
       tmp = (GstDebugLevel) strtol (arg, NULL, 0);
-      if (tmp >= 0 && tmp < GST_LEVEL_COUNT) {
+      if (((guint) tmp) < GST_LEVEL_COUNT) {
         gst_debug_set_default_threshold (tmp);
       }
       break;
@@ -1042,6 +1011,8 @@
 
   _priv_gst_registry_cleanup ();
 
+  _priv_gst_alloc_trace_deinit ();
+
   g_type_class_unref (g_type_class_peek (gst_object_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_element_factory_get_type ()));
@@ -1050,7 +1021,6 @@
   g_type_class_unref (g_type_class_peek (gst_bin_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_bus_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_task_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_index_factory_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_object_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_bin_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_buffer_flags_get_type ()));
@@ -1074,6 +1044,7 @@
   g_type_class_unref (g_type_class_peek (gst_parse_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_resource_error_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_search_mode_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_stream_config_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_stream_error_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_stream_status_type_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_structure_change_type_get_type
@@ -1084,23 +1055,17 @@
   g_type_class_unref (g_type_class_peek (gst_seek_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_qos_type_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_format_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_index_certainty_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_index_entry_type_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_index_lookup_method_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_assoc_flags_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_index_resolver_method_get_type
-          ()));
-  g_type_class_unref (g_type_class_peek (gst_index_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_debug_level_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_debug_color_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_iterator_result_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_iterator_item_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_message_type_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_meta_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_mini_object_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_link_return_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_link_check_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_flow_return_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_activate_mode_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_pad_mode_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_direction_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_pad_presence_get_type ()));
@@ -1109,25 +1074,33 @@
   g_type_class_unref (g_type_class_peek (gst_plugin_error_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_plugin_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_rank_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_query_type_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_query_type_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_buffering_mode_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_tag_merge_mode_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_tag_flag_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_task_state_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_alloc_trace_flags_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_toc_entry_type_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_type_find_probability_get_type
           ()));
   g_type_class_unref (g_type_class_peek (gst_uri_type_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_uri_error_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_parse_error_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_param_spec_fraction_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_progress_type_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_buffer_pool_flags_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_buffer_pool_acquire_flags_get_type
+          ()));
   g_type_class_unref (g_type_class_peek (gst_memory_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_map_flags_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_caps_intersect_mode_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_probe_type_get_type ()));
-  g_type_class_unref (g_type_class_peek (gst_probe_return_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_pad_probe_type_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_pad_probe_return_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_segment_flags_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_scheduling_flags_get_type ()));
+
+  g_type_class_unref (g_type_class_peek (gst_control_binding_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_control_source_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_toc_entry_type_get_type ()));
 
   gst_deinitialized = TRUE;
   GST_INFO ("deinitialized GStreamer");
diff --git a/gst/gst.h b/gst/gst.h
index da578d9..3873b5e 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -43,6 +43,7 @@
 #include <gst/gstcaps.h>
 #include <gst/gstchildproxy.h>
 #include <gst/gstclock.h>
+#include <gst/gstcontrolsource.h>
 #include <gst/gstdatetime.h>
 #include <gst/gstdebugutils.h>
 #include <gst/gstelement.h>
@@ -50,13 +51,11 @@
 #include <gst/gsterror.h>
 #include <gst/gstevent.h>
 #include <gst/gstghostpad.h>
-#include <gst/gstindex.h>
-#include <gst/gstindexfactory.h>
 #include <gst/gstinfo.h>
 #include <gst/gstiterator.h>
-#include <gst/gstmarshal.h>
 #include <gst/gstmessage.h>
 #include <gst/gstmemory.h>
+#include <gst/gstmeta.h>
 #include <gst/gstminiobject.h>
 #include <gst/gstobject.h>
 #include <gst/gstpad.h>
@@ -67,6 +66,7 @@
 #include <gst/gstpreset.h>
 #include <gst/gstquery.h>
 #include <gst/gstregistry.h>
+#include <gst/gstsample.h>
 #include <gst/gstsegment.h>
 #include <gst/gststructure.h>
 #include <gst/gstsystemclock.h>
@@ -74,7 +74,8 @@
 #include <gst/gsttagsetter.h>
 #include <gst/gsttask.h>
 #include <gst/gsttaskpool.h>
-#include <gst/gsttrace.h>
+#include <gst/gsttoc.h>
+#include <gst/gsttocsetter.h>
 #include <gst/gsttypefind.h>
 #include <gst/gsttypefindfactory.h>
 #include <gst/gsturi.h>
@@ -105,7 +106,7 @@
 gboolean        gst_registry_fork_is_enabled    (void);
 void            gst_registry_fork_set_enabled   (gboolean enabled);
 
-gboolean        gst_update_registry (void);
+gboolean        gst_update_registry             (void);
 
 G_END_DECLS
 
diff --git a/gst/gst_private.h b/gst/gst_private.h
index 3380c88..19f02d3 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -54,6 +54,9 @@
 /* for GstElement */
 #include "gstelement.h"
 
+/* for GstToc */
+#include "gsttoc.h"
+
 G_BEGIN_DECLS
 
 /* used by gstparse.c and grammar.y */
@@ -79,6 +82,7 @@
   GstStructure *cache_data;
 };
 
+/* FIXME: could rename all priv_gst_* functions to __gst_* now */
 gboolean priv_gst_plugin_loading_have_whitelist (void);
 
 guint32  priv_gst_plugin_loading_get_whitelist_hash (void);
@@ -93,6 +97,7 @@
 
 /* init functions called from gst_init(). */
 void  _priv_gst_quarks_initialize (void);
+void  _priv_gst_mini_object_initialize (void);
 void  _priv_gst_buffer_initialize (void);
 void  _priv_gst_buffer_list_initialize (void);
 void  _priv_gst_structure_initialize (void);
@@ -104,8 +109,20 @@
 void  _priv_gst_meta_initialize (void);
 void  _priv_gst_plugin_initialize (void);
 void  _priv_gst_query_initialize (void);
+void  _priv_gst_sample_initialize (void);
 void  _priv_gst_tag_initialize (void);
 void  _priv_gst_value_initialize (void);
+void  _priv_gst_debug_init (void);
+void  _priv_gst_toc_initialize (void);
+
+/* TOC functions */
+/* These functions are used to parse TOC messages, events and queries */
+GstToc*        __gst_toc_from_structure (const GstStructure *toc);
+GstStructure*  __gst_toc_to_structure (const GstToc *toc);
+gboolean       __gst_toc_structure_get_updated (const GstStructure * toc);
+void           __gst_toc_structure_set_updated (GstStructure * toc, gboolean updated);
+gchar*         __gst_toc_structure_get_extend_uid (const GstStructure * toc);
+void           __gst_toc_structure_set_extend_uid (GstStructure * toc, const gchar * extend_uid);
 
 /* Private registry functions */
 gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry);
@@ -123,7 +140,13 @@
                                                 GString            * s);
 /* registry cache backends */
 gboolean		priv_gst_registry_binary_read_cache	(GstRegistry * registry, const char *location);
-gboolean		priv_gst_registry_binary_write_cache	(GstRegistry * registry, const char *location);
+gboolean		priv_gst_registry_binary_write_cache	(GstRegistry * registry, GList * plugins, const char *location);
+
+void      __gst_element_factory_add_static_pad_template (GstElementFactory    * elementfactory,
+                                                         GstStaticPadTemplate * templ);
+
+void      __gst_element_factory_add_interface           (GstElementFactory    * elementfactory,
+                                                         const gchar          * interfacename);
 
 /* used in gstvalue.c and gststructure.c */
 #define GST_ASCII_IS_STRING(c) (g_ascii_isalnum((c)) || ((c) == '_') || \
@@ -135,7 +158,7 @@
 
 #ifndef GST_DISABLE_REGISTRY
 /* Secret variable to initialise gst without registry cache */
-extern gboolean _gst_disable_registry_cache;
+GST_EXPORT gboolean _gst_disable_registry_cache;
 #endif
 
 /* provide inline gst_g_value_get_foo_unchecked(), used in gststructure.c */
@@ -161,8 +184,7 @@
 #ifndef GST_REMOVE_GST_DEBUG
 
 GST_EXPORT GstDebugCategory *GST_CAT_GST_INIT;
-GST_EXPORT GstDebugCategory *GST_CAT_AUTOPLUG; /* FIXME 0.11: remove? */
-GST_EXPORT GstDebugCategory *GST_CAT_AUTOPLUG_ATTEMPT; /* FIXME 0.11: remove? */
+GST_EXPORT GstDebugCategory *GST_CAT_MEMORY;
 GST_EXPORT GstDebugCategory *GST_CAT_PARENTAGE;
 GST_EXPORT GstDebugCategory *GST_CAT_STATES;
 GST_EXPORT GstDebugCategory *GST_CAT_SCHEDULING;
@@ -189,7 +211,7 @@
 GST_EXPORT GstDebugCategory *GST_CAT_PROBE;
 GST_EXPORT GstDebugCategory *GST_CAT_REGISTRY;
 GST_EXPORT GstDebugCategory *GST_CAT_QOS;
-GST_EXPORT GstDebugCategory *GST_CAT_TYPES; /* FIXME 0.11: remove? */
+GST_EXPORT GstDebugCategory *GST_CAT_META;
 
 /* Categories that should be completely private to
  * libgstreamer should be done like this: */
@@ -230,6 +252,7 @@
 #define GST_CAT_QOS              NULL
 #define GST_CAT_TYPES            NULL
 #define GST_CAT_POLL             NULL
+#define GST_CAT_META             NULL
 
 #endif
 
diff --git a/gst/gstatomicqueue.c b/gst/gstatomicqueue.c
index 5b21be6..812970a 100644
--- a/gst/gstatomicqueue.c
+++ b/gst/gstatomicqueue.c
@@ -56,7 +56,8 @@
   gint size;
   gpointer *array;
   volatile gint head;
-  volatile gint tail;
+  volatile gint tail_write;
+  volatile gint tail_read;
   GstAQueueMem *next;
   GstAQueueMem *free;
 };
@@ -83,7 +84,8 @@
   mem->size = clp2 (MAX (size, 16)) - 1;
   mem->array = g_new0 (gpointer, mem->size + 1);
   mem->head = pos;
-  mem->tail = pos;
+  mem->tail_write = pos;
+  mem->tail_read = pos;
   mem->next = NULL;
   mem->free = NULL;
 
@@ -113,7 +115,7 @@
 {
   do {
     mem->free = g_atomic_pointer_get (&queue->free_list);
-  } while (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&queue->free_list,
+  } while (!g_atomic_pointer_compare_and_exchange (&queue->free_list,
           mem->free, mem));
 }
 
@@ -127,7 +129,7 @@
     free_list = g_atomic_pointer_get (&queue->free_list);
     if (free_list == NULL)
       return;
-  } while (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&queue->free_list, free_list,
+  } while (!g_atomic_pointer_compare_and_exchange (&queue->free_list, free_list,
           NULL));
 
   while (free_list) {
@@ -234,7 +236,7 @@
     head_mem = g_atomic_pointer_get (&queue->head_mem);
 
     head = g_atomic_int_get (&head_mem->head);
-    tail = g_atomic_int_get (&head_mem->tail);
+    tail = g_atomic_int_get (&head_mem->tail_read);
     size = head_mem->size;
 
     /* when we are not empty, we can continue */
@@ -248,7 +250,7 @@
 
     /* now we try to move the next array as the head memory. If we fail to do that,
      * some other reader managed to do it first and we retry */
-    if (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&queue->head_mem, head_mem,
+    if (!g_atomic_pointer_compare_and_exchange (&queue->head_mem, head_mem,
             next))
       continue;
 
@@ -291,12 +293,13 @@
       head_mem = g_atomic_pointer_get (&queue->head_mem);
 
       head = g_atomic_int_get (&head_mem->head);
-      tail = g_atomic_int_get (&head_mem->tail);
+      tail = g_atomic_int_get (&head_mem->tail_read);
       size = head_mem->size;
 
       /* when we are not empty, we can continue */
-      if (G_LIKELY (head != tail))
-        break;
+      if G_LIKELY
+        (head != tail)
+            break;
 
       /* else array empty, try to take next */
       next = g_atomic_pointer_get (&head_mem->next);
@@ -305,9 +308,10 @@
 
       /* now we try to move the next array as the head memory. If we fail to do that,
        * some other reader managed to do it first and we retry */
-      if (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&queue->head_mem, head_mem,
-              next))
-        continue;
+      if G_UNLIKELY
+        (!g_atomic_pointer_compare_and_exchange (&queue->head_mem, head_mem,
+                next))
+            continue;
 
       /* when we managed to swing the head pointer the old head is now
        * useless and we add it to the freelist. We can't free the memory yet
@@ -316,8 +320,8 @@
     }
 
     ret = head_mem->array[head & size];
-  } while (!g_atomic_int_compare_and_exchange (&head_mem->head, head,
-          head + 1));
+  } while G_UNLIKELY
+  (!g_atomic_int_compare_and_exchange (&head_mem->head, head, head + 1));
 
 #ifdef LOW_MEM
   /* decrement number of readers, when we reach 0 readers we can be sure that
@@ -352,34 +356,44 @@
 
       tail_mem = g_atomic_pointer_get (&queue->tail_mem);
       head = g_atomic_int_get (&tail_mem->head);
-      tail = g_atomic_int_get (&tail_mem->tail);
+      tail = g_atomic_int_get (&tail_mem->tail_write);
       size = tail_mem->size;
 
       /* we're not full, continue */
-      if (tail - head <= size)
-        break;
+      if G_LIKELY
+        (tail - head <= size)
+            break;
 
       /* else we need to grow the array, we store a mask so we have to add 1 */
       mem = new_queue_mem ((size << 1) + 1, tail);
 
       /* try to make our new array visible to other writers */
-      if (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&queue->tail_mem, tail_mem,
-              mem)) {
+      if G_UNLIKELY
+        (!g_atomic_pointer_compare_and_exchange (&queue->tail_mem, tail_mem,
+                mem)) {
         /* we tried to swap the new writer array but something changed. This is
          * because some other writer beat us to it, we free our memory and try
          * again */
         free_queue_mem (mem);
         continue;
-      }
+        }
       /* make sure that readers can find our new array as well. The one who
        * manages to swap the pointer is the only one who can set the next
        * pointer to the new array */
       g_atomic_pointer_set (&tail_mem->next, mem);
     }
-  } while (!g_atomic_int_compare_and_exchange (&tail_mem->tail, tail,
-          tail + 1));
+  } while G_UNLIKELY
+  (!g_atomic_int_compare_and_exchange (&tail_mem->tail_write, tail, tail + 1));
 
   tail_mem->array[tail & size] = data;
+
+  /* now wait until all writers have completed their write before we move the
+   * tail_read to this new item. It is possible that other writers are still
+   * updating the previous array slots and we don't want to reveal their changes
+   * before they are done. FIXME, it would be nice if we didn't have to busy
+   * wait here. */
+  while G_UNLIKELY
+    (!g_atomic_int_compare_and_exchange (&tail_mem->tail_read, tail, tail + 1));
 }
 
 /**
@@ -408,7 +422,7 @@
   head = g_atomic_int_get (&head_mem->head);
 
   tail_mem = g_atomic_pointer_get (&queue->tail_mem);
-  tail = g_atomic_int_get (&tail_mem->tail);
+  tail = g_atomic_int_get (&tail_mem->tail_read);
 
 #ifdef LOW_MEM
   if (g_atomic_int_dec_and_test (&queue->num_readers))
diff --git a/gst/gstatomicqueue.h b/gst/gstatomicqueue.h
index 6d71010..e38e9b4 100644
--- a/gst/gstatomicqueue.h
+++ b/gst/gstatomicqueue.h
@@ -39,7 +39,7 @@
 typedef struct _GstAtomicQueue GstAtomicQueue;
 
 
-GstAtomicQueue *   gst_atomic_queue_new         (guint initial_size);
+GstAtomicQueue *   gst_atomic_queue_new         (guint initial_size) G_GNUC_MALLOC;
 
 void               gst_atomic_queue_ref         (GstAtomicQueue * queue);
 void               gst_atomic_queue_unref       (GstAtomicQueue * queue);
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 1eebc0f..665259e 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -154,28 +154,19 @@
  * </para>
  * </refsect2>
  *
- * Last reviewed on 2006-04-28 (0.10.6)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 #include "gst_private.h"
 
 #include "gstevent.h"
 #include "gstbin.h"
-#include "gstmarshal.h"
 #include "gstinfo.h"
 #include "gsterror.h"
 
-#include "gstindex.h"
-#include "gstindexfactory.h"
 #include "gstutils.h"
 #include "gstchildproxy.h"
 
-/* latency is by default enabled now.
- * live-preroll and no-live-preroll in the environment var GST_COMPAT
- * to enables or disable it respectively.
- */
-static gboolean enable_latency = TRUE;
-
 GST_DEBUG_CATEGORY_STATIC (bin_debug);
 #define GST_CAT_DEFAULT bin_debug
 
@@ -198,8 +189,11 @@
 
   guint32 structure_cookie;
 
+#if 0
   /* cached index */
   GstIndex *index;
+#endif
+
   /* forward messages from our children */
   gboolean message_forward;
 
@@ -235,8 +229,10 @@
 static gboolean gst_bin_add_func (GstBin * bin, GstElement * element);
 static gboolean gst_bin_remove_func (GstBin * bin, GstElement * element);
 
+#if 0
 static void gst_bin_set_index_func (GstElement * element, GstIndex * index);
 static GstIndex *gst_bin_get_index_func (GstElement * element);
+#endif
 
 static GstClock *gst_bin_provide_clock_func (GstElement * element);
 static gboolean gst_bin_set_clock_func (GstElement * element, GstClock * clock);
@@ -283,7 +279,6 @@
 
 #define _do_init \
 { \
-  const gchar *compat; \
   static const GInterfaceInfo iface_info = { \
     gst_bin_child_proxy_init, \
     NULL, \
@@ -294,20 +289,12 @@
   GST_DEBUG_CATEGORY_INIT (bin_debug, "bin", GST_DEBUG_BOLD, \
       "debugging info for the 'bin' container element"); \
   \
-  /* compatibility stuff */ \
-  compat = g_getenv ("GST_COMPAT"); \
-  if (compat != NULL) { \
-    if (strstr (compat, "no-live-preroll")) \
-      enable_latency = FALSE; \
-    else if (strstr (compat, "live-preroll")) \
-      enable_latency = TRUE; \
-  } \
 }
 
 #define gst_bin_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstBin, gst_bin, GST_TYPE_ELEMENT, _do_init);
 
-static GstObject *
+static GObject *
 gst_bin_child_proxy_get_child_by_index (GstChildProxy * child_proxy,
     guint index)
 {
@@ -321,7 +308,7 @@
     gst_object_ref (res);
   GST_OBJECT_UNLOCK (bin);
 
-  return res;
+  return (GObject *) res;
 }
 
 static guint
@@ -403,7 +390,7 @@
   gst_bin_signals[ELEMENT_ADDED] =
       g_signal_new ("element-added", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstBinClass, element_added), NULL,
-      NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
+      NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
   /**
    * GstBin::element-removed:
    * @bin: the #GstBin
@@ -414,7 +401,7 @@
   gst_bin_signals[ELEMENT_REMOVED] =
       g_signal_new ("element-removed", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstBinClass, element_removed), NULL,
-      NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
+      NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
   /**
    * GstBin::do-latency:
    * @bin: the #GstBin
@@ -436,7 +423,7 @@
   gst_bin_signals[DO_LATENCY] =
       g_signal_new ("do-latency", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstBinClass, do_latency),
-      _gst_boolean_accumulator, NULL, gst_marshal_BOOLEAN__VOID,
+      _gst_boolean_accumulator, NULL, g_cclosure_marshal_generic,
       G_TYPE_BOOLEAN, 0, G_TYPE_NONE);
 
   /**
@@ -470,8 +457,10 @@
       GST_DEBUG_FUNCPTR (gst_bin_change_state_func);
   gstelement_class->state_changed = GST_DEBUG_FUNCPTR (gst_bin_state_changed);
   gstelement_class->get_state = GST_DEBUG_FUNCPTR (gst_bin_get_state_func);
+#if 0
   gstelement_class->get_index = GST_DEBUG_FUNCPTR (gst_bin_get_index_func);
   gstelement_class->set_index = GST_DEBUG_FUNCPTR (gst_bin_set_index_func);
+#endif
   gstelement_class->provide_clock =
       GST_DEBUG_FUNCPTR (gst_bin_provide_clock_func);
   gstelement_class->set_clock = GST_DEBUG_FUNCPTR (gst_bin_set_clock_func);
@@ -526,7 +515,6 @@
   GstBus **child_bus_p = &bin->child_bus;
   GstClock **provided_clock_p = &bin->provided_clock;
   GstElement **clock_provider_p = &bin->clock_provider;
-  GstIndex **index_p = &bin->priv->index;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_REFCOUNTING, object, "dispose");
 
@@ -534,7 +522,6 @@
   gst_object_replace ((GstObject **) child_bus_p, NULL);
   gst_object_replace ((GstObject **) provided_clock_p, NULL);
   gst_object_replace ((GstObject **) clock_provider_p, NULL);
-  gst_object_replace ((GstObject **) index_p, NULL);
   bin_remove_messages (bin, NULL, GST_MESSAGE_ANY);
   GST_OBJECT_UNLOCK (object);
 
@@ -555,7 +542,7 @@
  *
  * Creates a new bin with the given name.
  *
- * Returns: (transfer full): a new #GstBin
+ * Returns: (transfer floating): a new #GstBin
  */
 GstElement *
 gst_bin_new (const gchar * name)
@@ -613,6 +600,7 @@
   }
 }
 
+#if 0
 /* return the cached index */
 static GstIndex *
 gst_bin_get_index_func (GstElement * element)
@@ -696,6 +684,7 @@
     return;
   }
 }
+#endif
 
 /* set the clock on all elements in this bin
  *
@@ -741,6 +730,9 @@
   g_value_unset (&data);
   gst_iterator_free (it);
 
+  if (res)
+    res = GST_ELEMENT_CLASS (parent_class)->set_clock (element, clock);
+
   return res;
 }
 
@@ -1042,7 +1034,7 @@
 {
   gchar *elem_name;
   GstIterator *it;
-  gboolean is_sink, is_source;
+  gboolean is_sink, is_source, provides_clock, requires_clock;
   GstMessage *clock_message = NULL, *async_message = NULL;
   GstStateChangeReturn ret;
 
@@ -1055,8 +1047,12 @@
   /* get the element name to make sure it is unique in this bin. */
   GST_OBJECT_LOCK (element);
   elem_name = g_strdup (GST_ELEMENT_NAME (element));
-  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_IS_SINK);
-  is_source = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_IS_SOURCE);
+  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SINK);
+  is_source = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SOURCE);
+  provides_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+  requires_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
   GST_OBJECT_UNLOCK (element);
 
   GST_OBJECT_LOCK (bin);
@@ -1077,17 +1073,22 @@
   if (is_sink) {
     GST_CAT_DEBUG_OBJECT (GST_CAT_PARENTAGE, bin, "element \"%s\" was sink",
         elem_name);
-    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_IS_SINK);
+    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_SINK);
   }
   if (is_source) {
     GST_CAT_DEBUG_OBJECT (GST_CAT_PARENTAGE, bin, "element \"%s\" was source",
         elem_name);
-    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_IS_SOURCE);
+    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_SOURCE);
   }
-  if (gst_element_provides_clock (element)) {
+  if (provides_clock) {
     GST_DEBUG_OBJECT (bin, "element \"%s\" can provide a clock", elem_name);
     clock_message =
         gst_message_new_clock_provide (GST_OBJECT_CAST (element), NULL, TRUE);
+    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+  }
+  if (requires_clock) {
+    GST_DEBUG_OBJECT (bin, "element \"%s\" requires a clock", elem_name);
+    GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
   }
 
   bin->children = g_list_prepend (bin->children, element);
@@ -1105,9 +1106,12 @@
    * that is not important right now. When the pipeline goes to PLAYING,
    * a new clock will be selected */
   gst_element_set_clock (element, GST_ELEMENT_CLOCK (bin));
+
+#if 0
   /* set the cached index on the children */
   if (bin->priv->index)
     gst_element_set_index (element, bin->priv->index);
+#endif
 
   ret = GST_STATE_RETURN (bin);
   /* no need to update the state if we are in error */
@@ -1156,10 +1160,11 @@
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_PARENTAGE, bin, "added element \"%s\"",
       elem_name);
-  g_free (elem_name);
 
   g_signal_emit (bin, gst_bin_signals[ELEMENT_ADDED], 0, element);
-  gst_child_proxy_child_added ((GstObject *) bin, (GstObject *) element);
+  gst_child_proxy_child_added ((GObject *) bin, (GObject *) element, elem_name);
+
+  g_free (elem_name);
 
   return TRUE;
 
@@ -1252,7 +1257,8 @@
 {
   gchar *elem_name;
   GstIterator *it;
-  gboolean is_sink, is_source, othersink, othersource, found;
+  gboolean is_sink, is_source, provides_clock, requires_clock;
+  gboolean othersink, othersource, otherprovider, otherrequirer, found;
   GstMessage *clock_message = NULL;
   GstClock **provided_clock_p;
   GstElement **clock_provider_p;
@@ -1265,14 +1271,19 @@
   GST_OBJECT_LOCK (element);
   /* Check if the element is already being removed and immediately
    * return */
-  if (G_UNLIKELY (GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_UNPARENTING)))
+  if (G_UNLIKELY (GST_OBJECT_FLAG_IS_SET (element,
+              GST_ELEMENT_FLAG_UNPARENTING)))
     goto already_removing;
 
-  GST_OBJECT_FLAG_SET (element, GST_ELEMENT_UNPARENTING);
+  GST_OBJECT_FLAG_SET (element, GST_ELEMENT_FLAG_UNPARENTING);
   /* grab element name so we can print it */
   elem_name = g_strdup (GST_ELEMENT_NAME (element));
-  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_IS_SINK);
-  is_source = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_IS_SOURCE);
+  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SINK);
+  is_source = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SOURCE);
+  provides_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+  requires_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
   GST_OBJECT_UNLOCK (element);
 
   /* unlink all linked pads */
@@ -1284,6 +1295,8 @@
   found = FALSE;
   othersink = FALSE;
   othersource = FALSE;
+  otherprovider = FALSE;
+  otherrequirer = FALSE;
   have_no_preroll = FALSE;
   /* iterate the elements, we collect which ones are async and no_preroll. We
    * also remove the element when we find it. */
@@ -1297,16 +1310,24 @@
       /* remove the element */
       bin->children = g_list_delete_link (bin->children, walk);
     } else {
-      gboolean child_sink, child_source;
+      gboolean child_sink, child_source, child_provider, child_requirer;
 
       GST_OBJECT_LOCK (child);
-      child_sink = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_IS_SINK);
-      child_source = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_IS_SOURCE);
+      child_sink = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SINK);
+      child_source = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SOURCE);
+      child_provider =
+          GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+      child_requirer =
+          GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
       /* when we remove a sink, check if there are other sinks. */
       if (is_sink && !othersink && child_sink)
         othersink = TRUE;
       if (is_source && !othersource && child_source)
         othersource = TRUE;
+      if (provides_clock && !otherprovider && child_provider)
+        otherprovider = TRUE;
+      if (requires_clock && !otherrequirer && child_requirer)
+        otherrequirer = TRUE;
       /* check if we have NO_PREROLL children */
       if (GST_STATE_RETURN (child) == GST_STATE_CHANGE_NO_PREROLL)
         have_no_preroll = TRUE;
@@ -1327,14 +1348,23 @@
   if (is_sink && !othersink) {
     /* we're not a sink anymore */
     GST_DEBUG_OBJECT (bin, "we removed the last sink");
-    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_IS_SINK);
+    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_FLAG_SINK);
   }
   if (is_source && !othersource) {
     /* we're not a source anymore */
     GST_DEBUG_OBJECT (bin, "we removed the last source");
-    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_IS_SOURCE);
+    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_FLAG_SOURCE);
   }
-
+  if (provides_clock && !otherprovider) {
+    /* we're not a clock provider anymore */
+    GST_DEBUG_OBJECT (bin, "we removed the last clock provider");
+    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+  }
+  if (requires_clock && !otherrequirer) {
+    /* we're not a clock requirer anymore */
+    GST_DEBUG_OBJECT (bin, "we removed the last clock requirer");
+    GST_OBJECT_FLAG_UNSET (bin, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
+  }
 
   /* if the clock provider for this element is removed, we lost
    * the clock as well, we need to inform the parent of this
@@ -1451,7 +1481,6 @@
 
   GST_CAT_INFO_OBJECT (GST_CAT_PARENTAGE, bin, "removed child \"%s\"",
       elem_name);
-  g_free (elem_name);
 
   gst_element_set_bus (element, NULL);
 
@@ -1464,12 +1493,14 @@
   gst_object_unparent (GST_OBJECT_CAST (element));
 
   GST_OBJECT_LOCK (element);
-  GST_OBJECT_FLAG_UNSET (element, GST_ELEMENT_UNPARENTING);
+  GST_OBJECT_FLAG_UNSET (element, GST_ELEMENT_FLAG_UNPARENTING);
   GST_OBJECT_UNLOCK (element);
 
   g_signal_emit (bin, gst_bin_signals[ELEMENT_REMOVED], 0, element);
-  gst_child_proxy_child_removed ((GstObject *) bin, (GstObject *) element);
+  gst_child_proxy_child_removed ((GObject *) bin, (GObject *) element,
+      elem_name);
 
+  g_free (elem_name);
   /* element is really out of our control now */
   gst_object_unref (element);
 
@@ -1626,7 +1657,7 @@
   /* we lock the child here for the remainder of the function to
    * get its name and flag safely. */
   GST_OBJECT_LOCK (child);
-  is_sink = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_IS_SINK);
+  is_sink = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SINK);
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, bin,
       "child %s %s sink", GST_OBJECT_NAME (child), is_sink ? "is" : "is not");
@@ -1649,7 +1680,7 @@
  * @bin: a #GstBin
  *
  * Gets an iterator for all elements in the bin that have the
- * #GST_ELEMENT_IS_SINK flag set.
+ * #GST_ELEMENT_FLAG_SINK flag set.
  *
  * Each element yielded by the iterator will have its refcount increased, so
  * unref after use.
@@ -1689,7 +1720,7 @@
   /* we lock the child here for the remainder of the function to
    * get its name and other info safely. */
   GST_OBJECT_LOCK (child);
-  is_src = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_IS_SOURCE);
+  is_src = GST_OBJECT_FLAG_IS_SET (child, GST_ELEMENT_FLAG_SOURCE);
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, bin,
       "child %s %s src", GST_OBJECT_NAME (child), is_src ? "is" : "is not");
@@ -1712,7 +1743,7 @@
  * @bin: a #GstBin
  *
  * Gets an iterator for all elements in the bin that have the
- * #GST_ELEMENT_IS_SOURCE flag set.
+ * #GST_ELEMENT_FLAG_SOURCE flag set.
  *
  * Each element yielded by the iterator will have its refcount increased, so
  * unref after use.
@@ -1775,7 +1806,7 @@
 typedef struct _GstBinSortIterator
 {
   GstIterator it;
-  GQueue *queue;                /* elements queued for state change */
+  GQueue queue;                 /* elements queued for state change */
   GstBin *bin;                  /* bin we iterate */
   gint mode;                    /* adding or removing dependency */
   GstElement *best;             /* next element with least dependencies */
@@ -1791,8 +1822,8 @@
   GHashTableIter iter;
   gpointer key, value;
 
-  copy->queue = g_queue_copy (it->queue);
-  g_queue_foreach (copy->queue, (GFunc) gst_object_ref, NULL);
+  copy->queue = it->queue;
+  g_queue_foreach (&copy->queue, (GFunc) gst_object_ref, NULL);
 
   copy->bin = gst_object_ref (it->bin);
   if (it->best)
@@ -1819,7 +1850,7 @@
   GST_DEBUG_OBJECT (bit->bin, "adding '%s' to queue",
       GST_ELEMENT_NAME (element));
   gst_object_ref (element);
-  g_queue_push_tail (bit->queue, element);
+  g_queue_push_tail (&bit->queue, element);
   HASH_SET_DEGREE (bit, element, -1);
 }
 
@@ -1828,11 +1859,11 @@
 {
   GList *find;
 
-  if ((find = g_queue_find (bit->queue, element))) {
+  if ((find = g_queue_find (&bit->queue, element))) {
     GST_DEBUG_OBJECT (bit->bin, "removing '%s' from queue",
         GST_ELEMENT_NAME (element));
 
-    g_queue_delete_link (bit->queue, find);
+    g_queue_delete_link (&bit->queue, find);
     gst_object_unref (element);
   } else {
     GST_DEBUG_OBJECT (bit->bin, "unable to remove '%s' from queue",
@@ -1863,7 +1894,7 @@
 
   /* sinks are added right away */
   GST_OBJECT_LOCK (element);
-  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_IS_SINK);
+  is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SINK);
   GST_OBJECT_UNLOCK (element);
 
   if (is_sink) {
@@ -1989,8 +2020,7 @@
   GstBin *bin = bit->bin;
 
   /* empty queue, we have to find a next best element */
-  if (g_queue_is_empty (bit->queue)) {
-
+  if (g_queue_is_empty (&bit->queue)) {
     bit->best = NULL;
     bit->best_deg = G_MAXINT;
     g_list_foreach (bin->children, (GFunc) find_element, bit);
@@ -2015,7 +2045,7 @@
     }
   } else {
     /* everything added to the queue got reffed */
-    best = g_queue_pop_head (bit->queue);
+    best = g_queue_pop_head (&bit->queue);
     g_value_set_object (result, best);
     gst_object_unref (best);
   }
@@ -2035,7 +2065,7 @@
 
   GST_DEBUG_OBJECT (bin, "resync");
   bit->dirty = FALSE;
-  clear_queue (bit->queue);
+  clear_queue (&bit->queue);
   /* reset degrees */
   g_list_foreach (bin->children, (GFunc) reset_degree, bit);
   /* calc degrees, incrementing */
@@ -2052,8 +2082,7 @@
   GstBin *bin = bit->bin;
 
   GST_DEBUG_OBJECT (bin, "free");
-  clear_queue (bit->queue);
-  g_queue_free (bit->queue);
+  clear_queue (&bit->queue);
   g_hash_table_destroy (bit->hash);
   gst_object_unref (bin);
 }
@@ -2076,7 +2105,7 @@
       (GstIteratorItemFunction) NULL,
       (GstIteratorResyncFunction) gst_bin_sort_iterator_resync,
       (GstIteratorFreeFunction) gst_bin_sort_iterator_free);
-  result->queue = g_queue_new ();
+  g_queue_init (&result->queue);
   result->hash = g_hash_table_new (NULL, NULL);
   gst_object_ref (bin);
   result->bin = bin;
@@ -2134,7 +2163,7 @@
   GST_ELEMENT_START_TIME (element) = start_time;
   element->base_time = base_time;
   /* peel off the locked flag */
-  locked = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_LOCKED_STATE);
+  locked = GST_ELEMENT_IS_LOCKED_STATE (element);
   /* Get the previous set_state result to preserve NO_PREROLL and ASYNC */
   ret = GST_STATE_RETURN (element);
   child_current = GST_STATE (element);
@@ -2179,18 +2208,9 @@
     if (next > current) {
       /* We found an async element check if we can force its state to change or
        * if we have to wait for it to preroll. */
-      if (G_UNLIKELY (!enable_latency)) {
-        g_warning ("Future versions of GStreamer will wait for element \"%s\"\n"
-            "\tto preroll in order to perform correct latency calculations.\n"
-            "\tPlease verify that the application continues to work correctly by\n"
-            "\tsetting the environment variable GST_COMPAT to a value containing\n"
-            "\tthe string 'live-preroll'.", GST_ELEMENT_NAME (element));
-        goto no_latency;
-      }
       goto was_busy;
     }
   }
-no_latency:
   GST_OBJECT_UNLOCK (bin);
 
 no_preroll:
@@ -2567,12 +2587,12 @@
         break;
       }
       case GST_ITERATOR_RESYNC:
-        GST_CAT_DEBUG (GST_CAT_STATES, "iterator doing resync");
+        GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, element, "iterator doing resync");
         gst_iterator_resync (it);
         goto restart;
       default:
       case GST_ITERATOR_DONE:
-        GST_CAT_DEBUG (GST_CAT_STATES, "iterator done");
+        GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, element, "iterator done");
         done = TRUE;
         break;
     }
@@ -2583,12 +2603,13 @@
     goto done;
 
   if (have_no_preroll) {
-    GST_CAT_DEBUG (GST_CAT_STATES,
+    GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, bin,
         "we have NO_PREROLL elements %s -> NO_PREROLL",
         gst_element_state_change_return_get_name (ret));
     ret = GST_STATE_CHANGE_NO_PREROLL;
   } else if (have_async) {
-    GST_CAT_DEBUG (GST_CAT_STATES, "we have ASYNC elements %s -> ASYNC",
+    GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, bin,
+        "we have ASYNC elements %s -> ASYNC",
         gst_element_state_change_return_get_name (ret));
     ret = GST_STATE_CHANGE_ASYNC;
   }
@@ -2688,7 +2709,8 @@
 
         gst_event_ref (event);
         res &= gst_element_send_event (child, event);
-        g_value_reset (&data);
+        GST_LOG_OBJECT (child, "After handling %s event: %d",
+            GST_EVENT_TYPE_NAME (event), res);
         break;
       }
       case GST_ITERATOR_RESYNC:
@@ -3036,6 +3058,16 @@
       && g_atomic_int_compare_and_exchange (&bin->priv->posted_eos, FALSE,
           TRUE)) {
     GstMessage *tmessage;
+
+    /* Clear out any further messages, and reset posted_eos so we can
+       detect any new EOS that happens (eg, after a seek). Since all
+       sinks have now posted an EOS, there will be no further EOS events
+       seen unless there is a new logical EOS */
+    GST_OBJECT_LOCK (bin);
+    bin_remove_messages (bin, NULL, GST_MESSAGE_EOS);
+    bin->priv->posted_eos = FALSE;
+    GST_OBJECT_UNLOCK (bin);
+
     tmessage = gst_message_new_eos (GST_OBJECT_CAST (bin));
     gst_message_set_seqnum (tmessage, seqnum);
     GST_DEBUG_OBJECT (bin,
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index 2366e2b..54bb950 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -22,70 +22,67 @@
 
 /**
  * SECTION:gstbuffer
- * @short_description: Data-passing buffer type, supporting sub-buffers.
- * @see_also: #GstPad, #GstMiniObject
+ * @short_description: Data-passing buffer type
+ * @see_also: #GstPad, #GstMiniObject, #GstMemory, #GstMeta, #GstBufferPool
  *
- * Buffers are the basic unit of data transfer in GStreamer.  The #GstBuffer
- * type provides all the state necessary to define the regions of memory as
- * part of a stream. Region copies are also supported, allowing a smaller
- * region of a buffer to become its own buffer, with mechanisms in place to
- * ensure that neither memory space goes away prematurely.
+ * Buffers are the basic unit of data transfer in GStreamer. They contain the
+ * timing and offset along with other arbitrary metadata that is associated
+ * with the #GstMemory blocks that the buffer contains.
  *
  * Buffers are usually created with gst_buffer_new(). After a buffer has been
- * created one will typically allocate memory for it and set the size of the
- * buffer data.  The following example creates a buffer that can hold a given
- * video frame with a given width, height and bits per plane.
+ * created one will typically allocate memory for it and add it to the buffer.
+ * The following example creates a buffer that can hold a given video frame
+ * with a given width, height and bits per plane.
  * <example>
  * <title>Creating a buffer for a video frame</title>
  *   <programlisting>
  *   GstBuffer *buffer;
+ *   GstMemory *memory;
  *   gint size, width, height, bpp;
  *   ...
  *   size = width * height * bpp;
  *   buffer = gst_buffer_new ();
- *   GST_BUFFER_SIZE (buffer) = size;
- *   GST_BUFFER_MALLOCDATA (buffer) = g_malloc (size);
- *   GST_BUFFER_DATA (buffer) = GST_BUFFER_MALLOCDATA (buffer);
+ *   memory = gst_allocator_alloc (NULL, size, NULL);
+ *   gst_buffer_insert_memory (buffer, -1, memory);
  *   ...
  *   </programlisting>
  * </example>
  *
- * Alternatively, use gst_buffer_new_and_alloc()
+ * Alternatively, use gst_buffer_new_allocate()
  * to create a buffer with preallocated data of a given size.
  *
- * The data pointed to by the buffer can be retrieved with the GST_BUFFER_DATA()
- * macro. The size of the data can be found with GST_BUFFER_SIZE(). For buffers
- * of size 0, the data pointer is undefined (usually NULL) and should never be used.
+ * Buffers can contain a list of #GstMemory objects. You can retrieve how many
+ * memory objects with gst_buffer_n_memory() and you can get a pointer
+ * to memory with gst_buffer_peek_memory()
  *
- * If an element knows what pad you will push the buffer out on, it should use
- * gst_pad_alloc_buffer() instead to create a buffer.  This allows downstream
- * elements to provide special buffers to write in, like hardware buffers.
- *
- * A buffer has a pointer to a #GstCaps describing the media type of the data
- * in the buffer. Attach caps to the buffer with gst_buffer_set_caps(); this
- * is typically done before pushing out a buffer using gst_pad_push() so that
- * the downstream element knows the type of the buffer.
- *
- * A buffer will usually have a timestamp, and a duration, but neither of these
+ * A buffer will usually have timestamps, and a duration, but neither of these
  * are guaranteed (they may be set to #GST_CLOCK_TIME_NONE). Whenever a
- * meaningful value can be given for these, they should be set. The timestamp
+ * meaningful value can be given for these, they should be set. The timestamps
  * and duration are measured in nanoseconds (they are #GstClockTime values).
  *
+ * The buffer DTS refers to the timestamp when the buffer should be decoded and
+ * is usually monotonically increasing. The buffer PTS refers to the timestamp when
+ * the buffer content should be presented to the user and is not always
+ * monotonically increasing.
+ *
  * A buffer can also have one or both of a start and an end offset. These are
  * media-type specific. For video buffers, the start offset will generally be
  * the frame number. For audio buffers, it will be the number of samples
  * produced so far. For compressed data, it could be the byte offset in a
  * source or destination file. Likewise, the end offset will be the offset of
  * the end of the buffer. These can only be meaningfully interpreted if you
- * know the media type of the buffer (the #GstCaps set on it). Either or both
+ * know the media type of the buffer (the preceeding CAPS event). Either or both
  * can be set to #GST_BUFFER_OFFSET_NONE.
  *
  * gst_buffer_ref() is used to increase the refcount of a buffer. This must be
  * done when you want to keep a handle to the buffer after pushing it to the
- * next element.
+ * next element. The buffer refcount determines the writability of the buffer, a
+ * buffer is only writable when the refcount is exactly 1, i.e. when the caller
+ * has the only reference to the buffer.
  *
  * To efficiently create a smaller buffer out of an existing one, you can
- * use gst_buffer_copy_region().
+ * use gst_buffer_copy_region(). This method tries to share the memory objects
+ * between the two buffers.
  *
  * If a plug-in wants to modify the buffer data or metadata in-place, it should
  * first obtain a buffer that is safe to modify by using
@@ -97,17 +94,21 @@
  * GST_BUFFER_FLAG_IS_SET() to test if a certain #GstBufferFlag is set.
  *
  * Buffers can be efficiently merged into a larger buffer with
- * gst_buffer_span(), which avoids memory copies when the gst_buffer_is_span_fast()
- * function returns TRUE.
+ * gst_buffer_append(). Copying of memory will only be done when absolutely
+ * needed.
+ *
+ * Arbitrary extra metadata can be set on a buffer with gst_buffer_add_meta().
+ * Metadata can be retrieved with gst_buffer_get_meta(). See also #GstMeta
  *
  * An element should either unref the buffer or push it out on a src pad
  * using gst_pad_push() (see #GstPad).
  *
  * Buffers are usually freed by unreffing them with gst_buffer_unref(). When
- * the refcount drops to 0, any data pointed to by the buffer is unreffed as
- * well.
+ * the refcount drops to 0, any memory and metadata pointed to by the buffer is
+ * unreffed as well. Buffers allocated from a #GstBufferPool will be returned to
+ * the pool when the refcount drops to 0.
  *
- * Last reviewed on March 30, 2011 (0.11.0)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 #include "gst_private.h"
 
@@ -122,14 +123,10 @@
 #include "gstbufferpool.h"
 #include "gstinfo.h"
 #include "gstutils.h"
-#include "gstminiobject.h"
 #include "gstversion.h"
 
 GType _gst_buffer_type = 0;
 
-static GstMemory *_gst_buffer_arr_span (GstMemory ** mem[], gsize len[],
-    guint n, gsize offset, gsize size, gboolean writable);
-
 typedef struct _GstMetaItem GstMetaItem;
 
 struct _GstMetaItem
@@ -163,37 +160,119 @@
   GstMetaItem *item;
 } GstBufferImpl;
 
-static GstMemory *
-_span_memory (GstBuffer * buffer, gsize offset, gsize size, gboolean writable)
+
+static gboolean
+_is_span (GstMemory ** mem, gsize len, gsize * poffset, GstMemory ** parent)
 {
-  GstMemory *span, **mem[1];
-  gsize len[1];
+  GstMemory *mcur, *mprv;
+  gboolean have_offset = FALSE;
+  gsize i;
 
-  /* not enough room, span buffers */
-  mem[0] = GST_BUFFER_MEM_ARRAY (buffer);
-  len[0] = GST_BUFFER_MEM_LEN (buffer);
+  mcur = mprv = NULL;
 
-  if (size == -1)
+  for (i = 0; i < len; i++) {
+    if (mcur)
+      mprv = mcur;
+    mcur = mem[i];
+
+    if (mprv && mcur) {
+      gsize poffs;
+
+      /* check if memory is contiguous */
+      if (!gst_memory_is_span (mprv, mcur, &poffs))
+        return FALSE;
+
+      if (!have_offset) {
+        if (poffset)
+          *poffset = poffs;
+        if (parent)
+          *parent = mprv->parent;
+
+        have_offset = TRUE;
+      }
+    }
+  }
+  return have_offset;
+}
+
+static GstMemory *
+_get_merged_memory (GstBuffer * buffer, guint idx, guint length)
+{
+  GstMemory **mem, *result;
+
+  mem = GST_BUFFER_MEM_ARRAY (buffer);
+
+  if (G_UNLIKELY (length == 0)) {
+    result = NULL;
+  } else if (G_LIKELY (length == 1)) {
+    result = gst_memory_ref (mem[idx]);
+  } else {
+    GstMemory *parent = NULL;
+    gsize size, poffset = 0;
+
     size = gst_buffer_get_size (buffer);
 
-  span = _gst_buffer_arr_span (mem, len, 1, offset, size, writable);
+    if (G_UNLIKELY (_is_span (mem + idx, length, &poffset, &parent))) {
 
-  return span;
+      if (parent->flags & GST_MEMORY_FLAG_NO_SHARE) {
+        GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy for merge %p", parent);
+        result = gst_memory_copy (parent, poffset, size);
+      } else {
+        result = gst_memory_share (parent, poffset, size);
+      }
+    } else {
+      gsize i, tocopy, left;
+      GstMapInfo sinfo, dinfo;
+      guint8 *ptr;
+
+      result = gst_allocator_alloc (NULL, size, NULL);
+      gst_memory_map (result, &dinfo, GST_MAP_WRITE);
+
+      ptr = dinfo.data;
+      left = size;
+
+      for (i = idx; i < length && left > 0; i++) {
+        gst_memory_map (mem[i], &sinfo, GST_MAP_READ);
+        tocopy = MIN (sinfo.size, left);
+        GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
+            "memcpy for merge %p from memory %p", result, mem[i]);
+        memcpy (ptr, (guint8 *) sinfo.data, tocopy);
+        left -= tocopy;
+        ptr += tocopy;
+        gst_memory_unmap (mem[i], &sinfo);
+      }
+      gst_memory_unmap (result, &dinfo);
+    }
+  }
+  return result;
 }
 
 static void
-_replace_memory (GstBuffer * buffer, GstMemory * mem)
+_replace_memory (GstBuffer * buffer, guint len, guint idx, guint length,
+    GstMemory * mem)
 {
-  gsize len, i;
+  gsize end, i;
 
-  /* unref old buffers */
-  len = GST_BUFFER_MEM_LEN (buffer);
-  for (i = 0; i < len; i++)
+  end = idx + length;
+  GST_LOG ("buffer %p replace %u-%" G_GSIZE_FORMAT " with memory %p", buffer,
+      idx, end, mem);
+
+  /* unref old memory */
+  for (i = idx; i < end; i++)
     gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
 
-  /* replace with single spanned buffer */
-  GST_BUFFER_MEM_PTR (buffer, 0) = mem;
-  GST_BUFFER_MEM_LEN (buffer) = 1;
+  if (mem != NULL) {
+    /* replace with single memory */
+    GST_BUFFER_MEM_PTR (buffer, idx) = mem;
+    idx++;
+    length--;
+  }
+
+  if (end < len) {
+    g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx),
+        &GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer));
+  }
+  GST_BUFFER_MEM_LEN (buffer) = len - length;
 }
 
 static inline void
@@ -206,7 +285,9 @@
     /* FIXME, there is room for improvement here: We could only try to merge
      * 2 buffers to make some room. If we can't efficiently merge 2 buffers we
      * could try to only merge the two smallest buffers to avoid memcpy, etc. */
-    _replace_memory (buffer, _span_memory (buffer, 0, -1, FALSE));
+    GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "memory array overflow in buffer %p",
+        buffer);
+    _replace_memory (buffer, len, 0, len, _get_merged_memory (buffer, 0, len));
     /* we now have 1 single spanned buffer */
     len = 1;
   }
@@ -241,6 +322,9 @@
  *
  * Copies the information from @src into @dest.
  *
+ * If @dest already contains memory and @flags contains GST_BUFFER_COPY_MEMORY,
+ * the memory from @src will be appended to @dest.
+ *
  * @flags indicate which fields will be copied.
  */
 void
@@ -249,6 +333,7 @@
 {
   GstMetaItem *walk;
   gsize bufsize;
+  gboolean region = FALSE;
 
   g_return_if_fail (dest != NULL);
   g_return_if_fail (src != NULL);
@@ -261,8 +346,12 @@
 
   bufsize = gst_buffer_get_size (src);
   g_return_if_fail (bufsize >= offset);
+  if (offset > 0)
+    region = TRUE;
   if (size == -1)
     size = bufsize - offset;
+  if (size < bufsize)
+    region = TRUE;
   g_return_if_fail (bufsize >= offset + size);
 
   GST_CAT_LOG (GST_CAT_BUFFER, "copy %p to %p, offset %" G_GSIZE_FORMAT
@@ -276,14 +365,16 @@
 
   if (flags & GST_BUFFER_COPY_TIMESTAMPS) {
     if (offset == 0) {
-      GST_BUFFER_TIMESTAMP (dest) = GST_BUFFER_TIMESTAMP (src);
+      GST_BUFFER_PTS (dest) = GST_BUFFER_PTS (src);
+      GST_BUFFER_DTS (dest) = GST_BUFFER_DTS (src);
       GST_BUFFER_OFFSET (dest) = GST_BUFFER_OFFSET (src);
       if (size == bufsize) {
         GST_BUFFER_DURATION (dest) = GST_BUFFER_DURATION (src);
         GST_BUFFER_OFFSET_END (dest) = GST_BUFFER_OFFSET_END (src);
       }
     } else {
-      GST_BUFFER_TIMESTAMP (dest) = GST_CLOCK_TIME_NONE;
+      GST_BUFFER_PTS (dest) = GST_CLOCK_TIME_NONE;
+      GST_BUFFER_DTS (dest) = GST_CLOCK_TIME_NONE;
       GST_BUFFER_DURATION (dest) = GST_CLOCK_TIME_NONE;
       GST_BUFFER_OFFSET (dest) = GST_BUFFER_OFFSET_NONE;
       GST_BUFFER_OFFSET_END (dest) = GST_BUFFER_OFFSET_NONE;
@@ -326,16 +417,27 @@
       }
     }
     if (flags & GST_BUFFER_COPY_MERGE) {
-      _replace_memory (dest, _span_memory (dest, 0, size, FALSE));
+      len = GST_BUFFER_MEM_LEN (dest);
+      _replace_memory (dest, len, 0, len, _get_merged_memory (dest, 0, len));
     }
   }
 
-  for (walk = GST_BUFFER_META (src); walk; walk = walk->next) {
-    GstMeta *meta = &walk->meta;
-    const GstMetaInfo *info = meta->info;
+  if (flags & GST_BUFFER_COPY_META) {
+    for (walk = GST_BUFFER_META (src); walk; walk = walk->next) {
+      GstMeta *meta = &walk->meta;
+      const GstMetaInfo *info = meta->info;
 
-    if (info->copy_func)
-      info->copy_func (dest, meta, src, offset, size);
+      if (info->transform_func) {
+        GstMetaTransformCopy copy_data;
+
+        copy_data.region = region;
+        copy_data.offset = offset;
+        copy_data.size = size;
+
+        info->transform_func (dest, meta, src,
+            _gst_meta_transform_copy, &copy_data);
+      }
+    }
   }
 }
 
@@ -429,7 +531,8 @@
       (GstMiniObjectFreeFunction) _gst_buffer_free;
 
   GST_BUFFER (buffer)->pool = NULL;
-  GST_BUFFER_TIMESTAMP (buffer) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_PTS (buffer) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (buffer) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
   GST_BUFFER_OFFSET_END (buffer) = GST_BUFFER_OFFSET_NONE;
@@ -462,18 +565,17 @@
 
 /**
  * gst_buffer_new_allocate:
- * @allocator: the #GstAllocator to use
+ * @allocator: (transfer none) (allow-none): the #GstAllocator to use, or NULL to use the
+ *     default allocator
  * @size: the size in bytes of the new buffer's data.
- * @align: the alignment of the buffer memory
+ * @params: (transfer none) (allow-none): optional parameters
  *
  * Tries to create a newly allocated buffer with data of the given size and
- * alignment from @allocator. If the requested amount of memory can't be
+ * extra parameters from @allocator. If the requested amount of memory can't be
  * allocated, NULL will be returned. The allocated buffer memory is not cleared.
  *
  * When @allocator is NULL, the default memory allocator will be used.
  *
- * Allocator buffer memory will be aligned to multiples of (@align + 1) bytes.
- *
  * Note that when @size == 0, the buffer will not have memory associated with it.
  *
  * MT safe.
@@ -482,8 +584,8 @@
  *     be allocated.
  */
 GstBuffer *
-gst_buffer_new_allocate (const GstAllocator * allocator, gsize size,
-    gsize align)
+gst_buffer_new_allocate (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
 {
   GstBuffer *newbuf;
   GstMemory *mem;
@@ -494,7 +596,7 @@
 
 #if 1
   if (size > 0) {
-    mem = gst_allocator_alloc (allocator, size, align);
+    mem = gst_allocator_alloc (allocator, size, params);
     if (G_UNLIKELY (mem == NULL))
       goto no_memory;
   } else {
@@ -541,7 +643,7 @@
    * that a finalize won't free the buffer */
   data = gst_memory_map (mem, &asize, NULL, GST_MAP_WRITE);
   gst_buffer_init ((GstBufferImpl *) data, 0);
-  gst_memory_unmap (mem, data, asize);
+  gst_memory_unmap (mem);
 
   /* strip off the buffer */
   gst_memory_resize (mem, sizeof (GstBufferImpl), size);
@@ -566,31 +668,36 @@
 
 /**
  * gst_buffer_new_wrapped_full:
+ * @flags: #GstMemoryFlags
  * @data: data to wrap
- * @free_func: function to free @data
- * @offset: offset in @data of valid data
- * @size: size of valid data in @data starting at @offset
+ * @maxsize: allocated size of @data
+ * @offset: offset in @data
+ * @size: size of valid data
+ * @user_data: user_data
+ * @notify: called with @user_data when the memory is freed
  *
- * Creates a new buffer that wraps the given @data.  Valid data is set
- * to start at @offset and up to @size.  If no @free_func is provided,
- * buffer memory is marked READONLY.
+ * Allocate a new buffer that wraps the given memory. @data must point to
+ * @maxsize of memory, the wrapped buffer will have the region from @offset and
+ * @size visible.
  *
- * MT safe.
+ * When the buffer is destroyed, @notify will be called with @user_data.
+ *
+ * The prefix/padding must be filled with 0 if @flags contains
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
  *
  * Returns: (transfer full): a new #GstBuffer
  */
 GstBuffer *
-gst_buffer_new_wrapped_full (gpointer data, GFreeFunc free_func, gsize offset,
-    gsize size)
+gst_buffer_new_wrapped_full (GstMemoryFlags flags, gpointer data,
+    gsize maxsize, gsize offset, gsize size, gpointer user_data,
+    GDestroyNotify notify)
 {
   GstBuffer *newbuf;
 
-  g_return_val_if_fail (offset <= size, NULL);
-
   newbuf = gst_buffer_new ();
-  gst_buffer_take_memory (newbuf, -1,
-      gst_memory_new_wrapped (free_func ? 0 : GST_MEMORY_FLAG_READONLY,
-          data, free_func, offset + size, offset, size));
+  gst_buffer_append_memory (newbuf,
+      gst_memory_new_wrapped (flags, data, maxsize, offset, size,
+          user_data, notify));
 
   return newbuf;
 }
@@ -600,7 +707,8 @@
  * @data: data to wrap
  * @size: allocated size of @data
  *
- * Creates a new buffer that wraps the given @data.
+ * Creates a new buffer that wraps the given @data. The memory will be freed
+ * with g_free and will be marked writable.
  *
  * MT safe.
  *
@@ -609,7 +717,7 @@
 GstBuffer *
 gst_buffer_new_wrapped (gpointer data, gsize size)
 {
-  return gst_buffer_new_wrapped_full (data, g_free, 0, size);
+  return gst_buffer_new_wrapped_full (0, data, size, 0, size, data, g_free);
 }
 
 /**
@@ -629,16 +737,16 @@
 }
 
 /**
- * gst_buffer_take_memory:
+ * gst_buffer_insert_memory:
  * @buffer: a #GstBuffer.
  * @idx: the index to add the memory at, or -1 to append it to the end
  * @mem: (transfer full): a #GstMemory.
  *
- * Add the memory block @mem to @buffer at @idx. This function takes ownership
+ * Insert the memory block @mem to @buffer at @idx. This function takes ownership
  * of @mem and thus doesn't increase its refcount.
  */
 void
-gst_buffer_take_memory (GstBuffer * buffer, gint idx, GstMemory * mem)
+gst_buffer_insert_memory (GstBuffer * buffer, gint idx, GstMemory * mem)
 {
   g_return_if_fail (GST_IS_BUFFER (buffer));
   g_return_if_fail (gst_buffer_is_writable (buffer));
@@ -650,21 +758,21 @@
 }
 
 static GstMemory *
-_get_memory (GstBuffer * buffer, guint idx, gboolean write)
+_get_mapped (GstBuffer * buffer, guint idx, GstMapInfo * info,
+    GstMapFlags flags)
 {
-  GstMemory *mem;
+  GstMemory *mem, *mapped;
 
   mem = GST_BUFFER_MEM_PTR (buffer, idx);
 
-  if (G_UNLIKELY (write && !GST_MEMORY_IS_WRITABLE (mem))) {
-    GstMemory *copy;
-    GST_CAT_LOG (GST_CAT_BUFFER,
-        "making writable copy of memory %p in buffer %p", mem, buffer);
-    /* replace with a writable copy */
-    copy = gst_memory_copy (mem, 0, -1);
-    GST_BUFFER_MEM_PTR (buffer, idx) = copy;
+  mapped = gst_memory_make_mapped (mem, info, flags);
+  if (!mapped)
+    return NULL;
+
+  if (mapped != mem) {
+    GST_BUFFER_MEM_PTR (buffer, idx) = mapped;
     gst_memory_unref (mem);
-    mem = copy;
+    mem = mapped;
   }
   return mem;
 }
@@ -673,43 +781,91 @@
  * gst_buffer_peek_memory:
  * @buffer: a #GstBuffer.
  * @idx: an index
- * @flags: #GstMapFlags
  *
- * Get the memory block in @buffer at @idx for memory access in @flags.
- * This function does not return a refcount to the memory block. The memory
- * block stays valid for as long as the caller has a valid reference to @buffer.
+ * Get the memory block at @idx in @buffer. The memory block stays valid until
+ * the memory block in @buffer is removed, replaced or merged, typically with
+ * any call that modifies the memory in @buffer.
  *
- * @buffer should be writable when @flags contains #GST_MAP_WRITE. If the memory
- * at @idx is not writable, a new writable copy will be installed in @buffer and
- * returned.
+ * Since this call does not influence the refcount of the memory,
+ * gst_memory_is_exclusive() can be used to check if @buffer is the sole owner
+ * of the returned memory.
  *
- * Returns: a #GstMemory at @idx.
+ * Returns: (transfer none): the #GstMemory at @idx.
  */
 GstMemory *
-gst_buffer_peek_memory (GstBuffer * buffer, guint idx, GstMapFlags flags)
+gst_buffer_peek_memory (GstBuffer * buffer, guint idx)
 {
-  GstMemory *mem;
-  gboolean write;
-
-  write = (flags & GST_MAP_WRITE) != 0;
+  guint len;
 
   g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
-  g_return_val_if_fail (idx < GST_BUFFER_MEM_LEN (buffer), NULL);
+  len = GST_BUFFER_MEM_LEN (buffer);
+  g_return_val_if_fail (idx < len, NULL);
 
-  /* check if we can write when asked for write access */
-  if (G_UNLIKELY (write && !gst_buffer_is_writable (buffer)))
-    goto not_writable;
+  return GST_BUFFER_MEM_PTR (buffer, idx);
+}
 
-  mem = _get_memory (buffer, idx, write);
+/**
+ * gst_buffer_get_memory_range:
+ * @buffer: a #GstBuffer.
+ * @idx: an index
+ * @length: a length
+ *
+ * Get @length memory blocks in @buffer starting at @idx. The memory blocks will
+ * be merged into one large #GstMemory.
+ *
+ * If @length is -1, all memory starting from @idx is merged.
+ *
+ * Returns: (transfer full): a #GstMemory that contains the merged data of @length
+ *    blocks starting at @idx. Use gst_memory_unref () after usage.
+ */
+GstMemory *
+gst_buffer_get_memory_range (GstBuffer * buffer, guint idx, gint length)
+{
+  guint len;
 
-  return mem;
+  GST_DEBUG ("idx %u, length %d", idx, length);
 
-  /* ERRORS */
-not_writable:
-  {
-    g_return_val_if_fail (gst_buffer_is_writable (buffer), NULL);
-    return NULL;
-  }
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
+  len = GST_BUFFER_MEM_LEN (buffer);
+  g_return_val_if_fail ((length == -1 && idx < len) ||
+      (length > 0 && length + idx <= len), NULL);
+
+  if (length == -1)
+    length = len - idx;
+
+  return _get_merged_memory (buffer, idx, length);
+}
+
+/**
+ * gst_buffer_replace_memory_range:
+ * @buffer: a #GstBuffer.
+ * @idx: an index
+ * @length: a length should not be 0
+ * @mem: (transfer full): a #GstMemory
+ *
+ * Replaces @length memory blocks in @buffer starting at @idx with @mem.
+ *
+ * If @length is -1, all memory starting from @idx will be removed and
+ * replaced with @mem.
+ *
+ * @buffer should be writable.
+ */
+void
+gst_buffer_replace_memory_range (GstBuffer * buffer, guint idx, gint length,
+    GstMemory * mem)
+{
+  guint len;
+
+  g_return_if_fail (GST_IS_BUFFER (buffer));
+  g_return_if_fail (gst_buffer_is_writable (buffer));
+  len = GST_BUFFER_MEM_LEN (buffer);
+  g_return_if_fail ((length == -1 && idx < len) || (length > 0
+          && length + idx <= len));
+
+  if (length == -1)
+    length = len - idx;
+
+  _replace_memory (buffer, len, idx, length, mem);
 }
 
 /**
@@ -718,72 +874,146 @@
  * @idx: an index
  * @length: a length
  *
- * Remove @len memory blocks in @buffer starting from @idx.
+ * Remove @length memory blocks in @buffer starting from @idx.
  *
  * @length can be -1, in which case all memory starting from @idx is removed.
  */
 void
-gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, guint length)
+gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, gint length)
 {
-  guint len, i, end;
+  guint len;
 
   g_return_if_fail (GST_IS_BUFFER (buffer));
   g_return_if_fail (gst_buffer_is_writable (buffer));
 
   len = GST_BUFFER_MEM_LEN (buffer);
-  if (length == -1) {
-    g_return_if_fail (idx < len);
+  g_return_if_fail ((length == -1 && idx < len) || length + idx <= len);
+
+  if (length == -1)
     length = len - idx;
-  }
 
-  end = idx + length;
-  for (i = idx; i < end; i++)
-    gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
-
-  if (end != len) {
-    g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx),
-        &GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer));
-  }
-  GST_BUFFER_MEM_LEN (buffer) = len - length;
+  _replace_memory (buffer, len, idx, length, NULL);
 }
 
 /**
- * gst_buffer_get_sizes:
+ * gst_buffer_find_memory:
  * @buffer: a #GstBuffer.
+ * @offset: an offset
+ * @size: a size
+ * @idx: (out): pointer to index
+ * @length: (out): pointer to length
+ * @skip: (out): pointer to skip
+ *
+ * Find the memory blocks that span @size bytes starting from @offset
+ * in @buffer.
+ *
+ * When this function returns %TRUE, @idx will contain the index of the first
+ * memory bock where the byte for @offset can be found and @length contains the
+ * number of memory blocks containing the @size remaining bytes. @skip contains
+ * the number of bytes to skip in the memory bock at @idx to get to the byte
+ * for @offset.
+ *
+ * @size can be -1 to get all the memory blocks after @idx.
+ *
+ * Returns: %TRUE when @size bytes starting from @offset could be found in
+ * @buffer and @idx, @length and @skip will be filled.
+ */
+gboolean
+gst_buffer_find_memory (GstBuffer * buffer, gsize offset, gsize size,
+    guint * idx, guint * length, gsize * skip)
+{
+  guint i, len, found;
+
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), FALSE);
+  g_return_val_if_fail (idx != NULL, FALSE);
+  g_return_val_if_fail (length != NULL, FALSE);
+  g_return_val_if_fail (skip != NULL, FALSE);
+
+  len = GST_BUFFER_MEM_LEN (buffer);
+
+  found = 0;
+  for (i = 0; i < len; i++) {
+    GstMemory *mem;
+    gsize s;
+
+    mem = GST_BUFFER_MEM_PTR (buffer, i);
+    s = gst_memory_get_sizes (mem, NULL, NULL);
+
+    if (s <= offset) {
+      /* block before offset, or empty block, skip */
+      offset -= s;
+    } else {
+      /* block after offset */
+      if (found == 0) {
+        /* first block, remember index and offset */
+        *idx = i;
+        *skip = offset;
+        if (size == -1) {
+          /* return remaining blocks */
+          *length = len - i;
+          return TRUE;
+        }
+        s -= offset;
+        offset = 0;
+      }
+      /* count the amount of found bytes */
+      found += s;
+      if (found >= size) {
+        /* we have enough bytes */
+        *length = i - *idx + 1;
+        return TRUE;
+      }
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * gst_buffer_get_sizes_range:
+ * @buffer: a #GstBuffer.
+ * @idx: an index
+ * @length: a length
  * @offset: a pointer to the offset
  * @maxsize: a pointer to the maxsize
  *
- * Get the total size of all memory blocks in @buffer.
+ * Get the total size of @length memory blocks stating from @idx in @buffer.
  *
- * When not %NULL, @offset will contain the offset of the data in the first
- * memory block in @buffer and @maxsize will contain the sum of the size
- * and @offset and the amount of extra padding on the last memory block.
- * @offset and @maxsize can be used to resize the buffer with
- * gst_buffer_resize().
+ * When not %NULL, @offset will contain the offset of the data in the
+ * memory block in @buffer at @idx and @maxsize will contain the sum of the size
+ * and @offset and the amount of extra padding on the memory block at @idx +
+ * @length -1.
+ * @offset and @maxsize can be used to resize the buffer memory blocks with
+ * gst_buffer_resize_range().
  *
- * Returns: the total size of the memory in @buffer.
+ * Returns: total size @length memory blocks starting at @idx in @buffer.
  */
 gsize
-gst_buffer_get_sizes (GstBuffer * buffer, gsize * offset, gsize * maxsize)
+gst_buffer_get_sizes_range (GstBuffer * buffer, guint idx, gint length,
+    gsize * offset, gsize * maxsize)
 {
   guint len;
   gsize size;
   GstMemory *mem;
 
   g_return_val_if_fail (GST_IS_BUFFER (buffer), 0);
-
   len = GST_BUFFER_MEM_LEN (buffer);
+  g_return_val_if_fail (len == 0 || (length == -1 && idx < len)
+      || (length + idx <= len), 0);
 
-  if (G_LIKELY (len == 1)) {
+  if (length == -1)
+    length = len - idx;
+
+  if (G_LIKELY (length == 1)) {
     /* common case */
-    mem = GST_BUFFER_MEM_PTR (buffer, 0);
+    mem = GST_BUFFER_MEM_PTR (buffer, idx);
     size = gst_memory_get_sizes (mem, offset, maxsize);
   } else {
-    guint i;
+    guint i, end;
     gsize extra, offs;
 
+    end = idx + length;
     size = offs = extra = 0;
-    for (i = 0; i < len; i++) {
+    for (i = idx; i < end; i++) {
       gsize s, o, ms;
 
       mem = GST_BUFFER_MEM_PTR (buffer, i);
@@ -811,28 +1041,37 @@
 }
 
 /**
- * gst_buffer_resize:
+ * gst_buffer_resize_range:
  * @buffer: a #GstBuffer.
+ * @idx: an index
+ * @length: a length
  * @offset: the offset adjustement
- * @size: the new size
+ * @size: the new size or -1 to just adjust the offset
  *
- * Set the total size of the buffer
+ * Set the total size of the @length memory blocks starting at @idx in
+ * @buffer
  */
 void
-gst_buffer_resize (GstBuffer * buffer, gssize offset, gsize size)
+gst_buffer_resize_range (GstBuffer * buffer, guint idx, gint length,
+    gssize offset, gssize size)
 {
-  guint len;
-  guint i;
+  guint i, len, end;
   gsize bsize, bufsize, bufoffs, bufmax;
   GstMemory *mem;
 
   g_return_if_fail (gst_buffer_is_writable (buffer));
+  g_return_if_fail (size >= -1);
+  len = GST_BUFFER_MEM_LEN (buffer);
+  g_return_if_fail ((length == -1 && idx < len) || (length + idx <= len));
 
-  bufsize = gst_buffer_get_sizes (buffer, &bufoffs, &bufmax);
+  if (length == -1)
+    length = len - idx;
 
-  GST_CAT_LOG (GST_CAT_BUFFER, "trim %p %" G_GSSIZE_FORMAT "-%" G_GSIZE_FORMAT
-      " size:%" G_GSIZE_FORMAT " offs:%" G_GSIZE_FORMAT " max:%" G_GSIZE_FORMAT,
-      buffer, offset, size, bufsize, bufoffs, bufmax);
+  bufsize = gst_buffer_get_sizes_range (buffer, idx, length, &bufoffs, &bufmax);
+
+  GST_CAT_LOG (GST_CAT_BUFFER, "trim %p %" G_GSSIZE_FORMAT "-%" G_GSSIZE_FORMAT
+      " size:%" G_GSIZE_FORMAT " offs:%" G_GSIZE_FORMAT " max:%"
+      G_GSIZE_FORMAT, buffer, offset, size, bufsize, bufoffs, bufmax);
 
   /* we can't go back further than the current offset or past the end of the
    * buffer */
@@ -844,10 +1083,13 @@
   }
   g_return_if_fail (bufmax >= bufoffs + offset + size);
 
-  len = GST_BUFFER_MEM_LEN (buffer);
+  /* no change */
+  if (offset == 0 && size == bufsize)
+    return;
 
+  end = idx + length;
   /* copy and trim */
-  for (i = 0; i < len; i++) {
+  for (i = idx; i < end; i++) {
     gsize left, noffs;
 
     mem = GST_BUFFER_MEM_PTR (buffer, i);
@@ -855,7 +1097,7 @@
 
     noffs = 0;
     /* last buffer always gets resized to the remaining size */
-    if (i + 1 == len)
+    if (i + 1 == end)
       left = size;
     /* shrink buffers before the offset */
     else if ((gssize) bsize <= offset) {
@@ -868,8 +1110,7 @@
       left = MIN (bsize - offset, size);
 
     if (offset != 0 || left != bsize) {
-      /* we need to clip something */
-      if (GST_MEMORY_IS_WRITABLE (mem)) {
+      if (gst_memory_is_exclusive (mem)) {
         gst_memory_resize (mem, offset, left);
       } else {
         GstMemory *tmp;
@@ -891,39 +1132,44 @@
 }
 
 /**
- * gst_buffer_map:
+ * gst_buffer_map_range:
  * @buffer: a #GstBuffer.
- * @size: a location for the size
- * @maxsize: a location for the max size
+ * @idx: an index
+ * @length: a length
+ * @info: (out): info about the mapping
  * @flags: flags for the mapping
  *
- * This function return a pointer to the memory in @buffer. @flags describe the
- * desired access of the memory. When @flags is #GST_MAP_WRITE, @buffer should
- * be writable (as returned from gst_buffer_is_writable()).
- *
- * @size and @maxsize will contain the current valid number of bytes in the
- * returned memory area and the total maximum mount of bytes available in the
- * returned memory area respectively.
+ * This function fills @info with the #GstMapInfo of @length merged memory blocks
+ * starting at @idx in @buffer. When @length is -1, all memory blocks starting
+ * from @idx are merged and mapped.
+ * @flags describe the desired access of the memory. When @flags is
+ * #GST_MAP_WRITE, @buffer should be writable (as returned from
+ * gst_buffer_is_writable()).
  *
  * When @buffer is writable but the memory isn't, a writable copy will
  * automatically be created and returned. The readonly copy of the buffer memory
  * will then also be replaced with this writable copy.
  *
- * When the buffer contains multiple memory blocks, the returned pointer will be
- * a concatenation of the memory blocks.
+ * The memory in @info should be unmapped with gst_buffer_unmap() after usage.
  *
- * Returns: a pointer to the memory for the buffer.
+ * Returns: (transfer full): %TRUE if the map succeeded and @info contains valid
+ * data.
  */
-gpointer
-gst_buffer_map (GstBuffer * buffer, gsize * size, gsize * maxsize,
-    GstMapFlags flags)
+gboolean
+gst_buffer_map_range (GstBuffer * buffer, guint idx, gint length,
+    GstMapInfo * info, GstMapFlags flags)
 {
-  guint len;
-  gpointer data;
-  GstMemory *mem;
+  GstMemory *mem, *nmem;
   gboolean write, writable;
+  gsize len;
 
-  g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), FALSE);
+  g_return_val_if_fail (info != NULL, FALSE);
+  len = GST_BUFFER_MEM_LEN (buffer);
+  if (len == 0)
+    goto no_memory;
+  g_return_val_if_fail ((length == -1 && idx < len) || (length > 0
+          && length + idx <= len), FALSE);
 
   write = (flags & GST_MAP_WRITE) != 0;
   writable = gst_buffer_is_writable (buffer);
@@ -932,97 +1178,76 @@
   if (G_UNLIKELY (write && !writable))
     goto not_writable;
 
-  len = GST_BUFFER_MEM_LEN (buffer);
+  if (length == -1)
+    length = len - idx;
 
-  if (G_UNLIKELY (len == 0)) {
-    /* no memory, return immediately */
-    if (size)
-      *size = 0;
-    if (maxsize)
-      *maxsize = 0;
-    return NULL;
-  }
+  mem = _get_merged_memory (buffer, idx, length);
+  if (G_UNLIKELY (mem == NULL))
+    goto no_memory;
 
-  if (G_LIKELY (len == 1)) {
-    /* we can take the first one */
-    mem = GST_BUFFER_MEM_PTR (buffer, 0);
-  } else {
-    /* we need to span memory */
+  /* now try to map */
+  nmem = gst_memory_make_mapped (mem, info, flags);
+  if (G_UNLIKELY (nmem == NULL))
+    goto cannot_map;
+
+  /* if we merged or when the map returned a different memory, we try to replace
+   * the memory in the buffer */
+  if (G_UNLIKELY (length > 1 || nmem != mem)) {
+    /* if the buffer is writable, replace the memory */
     if (writable) {
-      /* if we can write, we can change the memory with the spanned
-       * memory */
-      mem = _span_memory (buffer, 0, -1, write);
-      _replace_memory (buffer, mem);
+      _replace_memory (buffer, len, idx, length, gst_memory_ref (nmem));
     } else {
-      gsize bsize;
-
-      /* extract all data in new memory, FIXME slow!! */
-      bsize = gst_buffer_get_size (buffer);
-
-      data = g_malloc (bsize);
-      gst_buffer_extract (buffer, 0, data, bsize);
-      if (size)
-        *size = bsize;
-      if (maxsize)
-        *maxsize = bsize;
-      return data;
+      if (len > 1) {
+        GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
+            "temporary mapping for memory %p in buffer %p", nmem, buffer);
+      }
     }
   }
-
-  if (G_UNLIKELY (write && !GST_MEMORY_IS_WRITABLE (mem))) {
-    GstMemory *copy;
-    /* replace with a writable copy */
-    copy = gst_memory_copy (mem, 0, -1);
-    GST_BUFFER_MEM_PTR (buffer, 0) = copy;
-    gst_memory_unref (mem);
-    mem = copy;
-  }
-
-  data = gst_memory_map (mem, size, maxsize, flags);
-
-  return data;
+  return TRUE;
 
   /* ERROR */
 not_writable:
   {
-    g_return_val_if_fail (gst_buffer_is_writable (buffer), NULL);
-    return NULL;
+    GST_WARNING_OBJECT (buffer, "write map requested on non-writable buffer");
+    g_critical ("write map requested on non-writable buffer");
+    return FALSE;
+  }
+no_memory:
+  {
+    /* empty buffer, we need to return NULL */
+    GST_DEBUG_OBJECT (buffer, "can't get buffer memory");
+    info->memory = NULL;
+    info->data = NULL;
+    info->size = 0;
+    info->maxsize = 0;
+    return TRUE;
+  }
+cannot_map:
+  {
+    GST_DEBUG_OBJECT (buffer, "cannot map memory");
+    return FALSE;
   }
 }
 
 /**
  * gst_buffer_unmap:
  * @buffer: a #GstBuffer.
- * @data: the previously mapped data
- * @size: the size of @data
+ * @info: a #GstMapInfo
  *
  * Release the memory previously mapped with gst_buffer_map().
- *
- * Returns: #TRUE on success. #FALSE can be returned when the new size is larger
- * than the maxsize of the memory.
  */
-gboolean
-gst_buffer_unmap (GstBuffer * buffer, gpointer data, gsize size)
+void
+gst_buffer_unmap (GstBuffer * buffer, GstMapInfo * info)
 {
-  gboolean result;
-  guint len;
+  g_return_if_fail (GST_IS_BUFFER (buffer));
+  g_return_if_fail (info != NULL);
 
-  g_return_val_if_fail (GST_IS_BUFFER (buffer), FALSE);
-
-  len = GST_BUFFER_MEM_LEN (buffer);
-
-  if (G_LIKELY (len == 1)) {
-    GstMemory *mem = GST_BUFFER_MEM_PTR (buffer, 0);
-
-    result = gst_memory_unmap (mem, data, size);
-  } else {
-    /* this must have been from read-only access. After _map, the buffer either
-     * only contains 1 memory block or it allocated memory to join memory
-     * blocks. It's not allowed to add buffers between _map and _unmap. */
-    g_free (data);
-    result = TRUE;
+  /* we need to check for NULL, it is possible that we tried to map a buffer
+   * without memory and we should be able to unmap that fine */
+  if (G_LIKELY (info->memory)) {
+    gst_memory_unmap (info->memory, info);
+    gst_memory_unref (info->memory);
   }
-  return result;
 }
 
 /**
@@ -1052,25 +1277,23 @@
   left = size;
 
   for (i = 0; i < len && left > 0; i++) {
-    guint8 *data;
-    gsize ssize, tocopy;
+    GstMapInfo info;
+    gsize tocopy;
     GstMemory *mem;
 
-    mem = _get_memory (buffer, i, TRUE);
-
-    data = gst_memory_map (mem, &ssize, NULL, GST_MAP_WRITE);
-    if (ssize > offset) {
+    mem = _get_mapped (buffer, i, &info, GST_MAP_WRITE);
+    if (info.size > offset) {
       /* we have enough */
-      tocopy = MIN (ssize - offset, left);
-      memcpy (data + offset, ptr, tocopy);
+      tocopy = MIN (info.size - offset, left);
+      memcpy ((guint8 *) info.data + offset, ptr, tocopy);
       left -= tocopy;
       ptr += tocopy;
       offset = 0;
     } else {
       /* offset past buffer, skip */
-      offset -= ssize;
+      offset -= info.size;
     }
-    gst_memory_unmap (mem, data, ssize);
+    gst_memory_unmap (mem, &info);
   }
   return size - left;
 }
@@ -1100,25 +1323,23 @@
   left = size;
 
   for (i = 0; i < len && left > 0; i++) {
-    guint8 *data;
-    gsize ssize, tocopy;
+    GstMapInfo info;
+    gsize tocopy;
     GstMemory *mem;
 
-    mem = GST_BUFFER_MEM_PTR (buffer, i);
-
-    data = gst_memory_map (mem, &ssize, NULL, GST_MAP_READ);
-    if (ssize > offset) {
+    mem = _get_mapped (buffer, i, &info, GST_MAP_READ);
+    if (info.size > offset) {
       /* we have enough */
-      tocopy = MIN (ssize - offset, left);
-      memcpy (ptr, data + offset, tocopy);
+      tocopy = MIN (info.size - offset, left);
+      memcpy (ptr, (guint8 *) info.data + offset, tocopy);
       left -= tocopy;
       ptr += tocopy;
       offset = 0;
     } else {
       /* offset past buffer, skip */
-      offset -= ssize;
+      offset -= info.size;
     }
-    gst_memory_unmap (mem, data, ssize);
+    gst_memory_unmap (mem, &info);
   }
   return size - left;
 }
@@ -1148,25 +1369,23 @@
   len = GST_BUFFER_MEM_LEN (buffer);
 
   for (i = 0; i < len && size > 0 && res == 0; i++) {
-    guint8 *data;
-    gsize ssize, tocmp;
+    GstMapInfo info;
+    gsize tocmp;
     GstMemory *mem;
 
-    mem = GST_BUFFER_MEM_PTR (buffer, i);
-
-    data = gst_memory_map (mem, &ssize, NULL, GST_MAP_READ);
-    if (ssize > offset) {
+    mem = _get_mapped (buffer, i, &info, GST_MAP_READ);
+    if (info.size > offset) {
       /* we have enough */
-      tocmp = MIN (ssize - offset, size);
-      res = memcmp (ptr, data + offset, tocmp);
+      tocmp = MIN (info.size - offset, size);
+      res = memcmp (ptr, (guint8 *) info.data + offset, tocmp);
       size -= tocmp;
       ptr += tocmp;
       offset = 0;
     } else {
       /* offset past buffer, skip */
-      offset -= ssize;
+      offset -= info.size;
     }
-    gst_memory_unmap (mem, data, ssize);
+    gst_memory_unmap (mem, &info);
   }
   return res;
 }
@@ -1195,24 +1414,22 @@
   left = size;
 
   for (i = 0; i < len && left > 0; i++) {
-    guint8 *data;
-    gsize ssize, toset;
+    GstMapInfo info;
+    gsize toset;
     GstMemory *mem;
 
-    mem = GST_BUFFER_MEM_PTR (buffer, i);
-
-    data = gst_memory_map (mem, &ssize, NULL, GST_MAP_WRITE);
-    if (ssize > offset) {
+    mem = _get_mapped (buffer, i, &info, GST_MAP_WRITE);
+    if (info.size > offset) {
       /* we have enough */
-      toset = MIN (ssize - offset, left);
-      memset (data + offset, val, toset);
+      toset = MIN (info.size - offset, left);
+      memset ((guint8 *) info.data + offset, val, toset);
       left -= toset;
       offset = 0;
     } else {
       /* offset past buffer, skip */
-      offset -= ssize;
+      offset -= info.size;
     }
-    gst_memory_unmap (mem, data, ssize);
+    gst_memory_unmap (mem, &info);
   }
   return size - left;
 }
@@ -1258,233 +1475,78 @@
   return copy;
 }
 
-static gboolean
-_gst_buffer_arr_is_span_fast (GstMemory ** mem[], gsize len[], guint n,
-    gsize * offset, GstMemory ** parent)
-{
-  GstMemory *mcur, *mprv;
-  gboolean have_offset = FALSE;
-  guint count, i;
-
-  mcur = mprv = NULL;
-  for (count = 0; count < n; count++) {
-    gsize offs, clen;
-    GstMemory **cmem;
-
-    cmem = mem[count];
-    clen = len[count];
-
-    for (i = 0; i < clen; i++) {
-      if (mcur)
-        mprv = mcur;
-      mcur = cmem[i];
-
-      if (mprv && mcur) {
-        /* check is memory is contiguous */
-        if (!gst_memory_is_span (mprv, mcur, &offs))
-          return FALSE;
-
-        if (!have_offset) {
-          if (offset)
-            *offset = offs;
-          if (parent)
-            *parent = mprv->parent;
-
-          have_offset = TRUE;
-        }
-      }
-    }
-  }
-  return have_offset;
-}
-
-static GstMemory *
-_gst_buffer_arr_span (GstMemory ** mem[], gsize len[], guint n, gsize offset,
-    gsize size, gboolean writable)
-{
-  GstMemory *span, *parent = NULL;
-  gsize poffset = 0;
-
-  if (!writable
-      && _gst_buffer_arr_is_span_fast (mem, len, n, &poffset, &parent)) {
-    if (parent->flags & GST_MEMORY_FLAG_NO_SHARE)
-      span = gst_memory_copy (parent, offset + poffset, size);
-    else
-      span = gst_memory_share (parent, offset + poffset, size);
-  } else {
-    gsize count, left;
-    guint8 *dest, *ptr;
-
-    span = gst_allocator_alloc (NULL, size, 0);
-    dest = gst_memory_map (span, NULL, NULL, GST_MAP_WRITE);
-
-    ptr = dest;
-    left = size;
-
-    for (count = 0; count < n; count++) {
-      gsize i, tocopy, clen, ssize;
-      guint8 *src;
-      GstMemory **cmem;
-
-      cmem = mem[count];
-      clen = len[count];
-
-      for (i = 0; i < clen && left > 0; i++) {
-        src = gst_memory_map (cmem[i], &ssize, NULL, GST_MAP_READ);
-        tocopy = MIN (ssize, left);
-        if (tocopy > offset) {
-          memcpy (ptr, src + offset, tocopy - offset);
-          left -= tocopy;
-          ptr += tocopy;
-          offset = 0;
-        } else {
-          offset -= tocopy;
-        }
-        gst_memory_unmap (cmem[i], src, ssize);
-      }
-    }
-    gst_memory_unmap (span, dest, size);
-  }
-  return span;
-}
-
 /**
- * gst_buffer_is_span_fast:
- * @buf1: the first #GstBuffer.
- * @buf2: the second #GstBuffer.
+ * gst_buffer_append:
+ * @buf1: (transfer full): the first source #GstBuffer to append.
+ * @buf2: (transfer full): the second source #GstBuffer to append.
  *
- * Determines whether a gst_buffer_span() can be done without copying
- * the contents, that is, whether the data areas are contiguous sub-buffers of
- * the same buffer.
+ * Append all the memory from @buf2 to @buf1. The result buffer will contain a
+ * concatenation of the memory of @buf1 and @buf2.
  *
- * MT safe.
- * Returns: TRUE if the buffers are contiguous,
- * FALSE if a copy would be required.
- */
-gboolean
-gst_buffer_is_span_fast (GstBuffer * buf1, GstBuffer * buf2)
-{
-  GstMemory **mem[2];
-  gsize len[2];
-
-  g_return_val_if_fail (GST_IS_BUFFER (buf1), FALSE);
-  g_return_val_if_fail (GST_IS_BUFFER (buf2), FALSE);
-  g_return_val_if_fail (buf1->mini_object.refcount > 0, FALSE);
-  g_return_val_if_fail (buf2->mini_object.refcount > 0, FALSE);
-
-  mem[0] = GST_BUFFER_MEM_ARRAY (buf1);
-  len[0] = GST_BUFFER_MEM_LEN (buf1);
-  mem[1] = GST_BUFFER_MEM_ARRAY (buf2);
-  len[1] = GST_BUFFER_MEM_LEN (buf2);
-
-  return _gst_buffer_arr_is_span_fast (mem, len, 2, NULL, NULL);
-}
-
-/**
- * gst_buffer_span:
- * @buf1: the first source #GstBuffer to merge.
- * @offset: the offset in the first buffer from where the new
- * buffer should start.
- * @buf2: the second source #GstBuffer to merge.
- * @size: the total size of the new buffer.
- *
- * Creates a new buffer that consists of part of buf1 and buf2.
- * Logically, buf1 and buf2 are concatenated into a single larger
- * buffer, and a new buffer is created at the given offset inside
- * this space, with a given length.
- *
- * If the two source buffers are children of the same larger buffer,
- * and are contiguous, the new buffer will be a child of the shared
- * parent, and thus no copying is necessary. you can use
- * gst_buffer_is_span_fast() to determine if a memcpy will be needed.
- *
- * MT safe.
- *
- * Returns: (transfer full): the new #GstBuffer that spans the two source
- *     buffers, or NULL if the arguments are invalid.
+ * Returns: (transfer full): the new #GstBuffer that contains the memory
+ *     of the two source buffers.
  */
 GstBuffer *
-gst_buffer_span (GstBuffer * buf1, gsize offset, GstBuffer * buf2, gsize size)
+gst_buffer_append (GstBuffer * buf1, GstBuffer * buf2)
 {
-  GstBuffer *newbuf;
-  GstMemory *span;
-  GstMemory **mem[2];
-  gsize len[2], len1, len2;
+  gsize i, len;
 
   g_return_val_if_fail (GST_IS_BUFFER (buf1), NULL);
   g_return_val_if_fail (GST_IS_BUFFER (buf2), NULL);
-  g_return_val_if_fail (buf1->mini_object.refcount > 0, NULL);
-  g_return_val_if_fail (buf2->mini_object.refcount > 0, NULL);
-  len1 = gst_buffer_get_size (buf1);
-  len2 = gst_buffer_get_size (buf2);
-  g_return_val_if_fail (len1 + len2 > offset, NULL);
-  if (size == -1)
-    size = len1 + len2 - offset;
-  else
-    g_return_val_if_fail (size <= len1 + len2 - offset, NULL);
 
-  mem[0] = GST_BUFFER_MEM_ARRAY (buf1);
-  len[0] = GST_BUFFER_MEM_LEN (buf1);
-  mem[1] = GST_BUFFER_MEM_ARRAY (buf2);
-  len[1] = GST_BUFFER_MEM_LEN (buf2);
+  buf1 = gst_buffer_make_writable (buf1);
+  buf2 = gst_buffer_make_writable (buf2);
 
-  span = _gst_buffer_arr_span (mem, len, 2, offset, size, FALSE);
+  len = GST_BUFFER_MEM_LEN (buf2);
+  for (i = 0; i < len; i++) {
+    GstMemory *mem;
 
-  newbuf = gst_buffer_new ();
-  _memory_add (newbuf, -1, span);
-
-#if 0
-  /* if the offset is 0, the new buffer has the same timestamp as buf1 */
-  if (offset == 0) {
-    GST_BUFFER_OFFSET (newbuf) = GST_BUFFER_OFFSET (buf1);
-    GST_BUFFER_TIMESTAMP (newbuf) = GST_BUFFER_TIMESTAMP (buf1);
-
-    /* if we completely merged the two buffers (appended), we can
-     * calculate the duration too. Also make sure we's not messing with
-     * invalid DURATIONS */
-    if (buf1->size + buf2->size == len) {
-      if (GST_BUFFER_DURATION_IS_VALID (buf1) &&
-          GST_BUFFER_DURATION_IS_VALID (buf2)) {
-        /* add duration */
-        GST_BUFFER_DURATION (newbuf) = GST_BUFFER_DURATION (buf1) +
-            GST_BUFFER_DURATION (buf2);
-      }
-      if (GST_BUFFER_OFFSET_END_IS_VALID (buf2)) {
-        /* add offset_end */
-        GST_BUFFER_OFFSET_END (newbuf) = GST_BUFFER_OFFSET_END (buf2);
-      }
-    }
+    mem = GST_BUFFER_MEM_PTR (buf2, i);
+    GST_BUFFER_MEM_PTR (buf2, i) = NULL;
+    _memory_add (buf1, -1, mem);
   }
-#endif
 
-  return newbuf;
+  /* we can calculate the duration too. Also make sure we're not messing
+   * with invalid DURATIONS */
+  if (GST_BUFFER_DURATION_IS_VALID (buf1) &&
+      GST_BUFFER_DURATION_IS_VALID (buf2)) {
+    /* add duration */
+    GST_BUFFER_DURATION (buf1) += GST_BUFFER_DURATION (buf2);
+  }
+  if (GST_BUFFER_OFFSET_END_IS_VALID (buf2)) {
+    /* set offset_end */
+    GST_BUFFER_OFFSET_END (buf1) = GST_BUFFER_OFFSET_END (buf2);
+  }
+
+  GST_BUFFER_MEM_LEN (buf2) = 0;
+  gst_buffer_unref (buf2);
+
+  return buf1;
 }
 
 /**
  * gst_buffer_get_meta:
  * @buffer: a #GstBuffer
- * @info: a #GstMetaInfo
+ * @api: the #GType of an API
  *
- * Get the metadata for the api in @info on buffer. When there is no such
+ * Get the metadata for @api on buffer. When there is no such
  * metadata, NULL is returned.
  *
- * Note that the result metadata might not be of the implementation @info.
- *
- * Returns: the metadata for the api in @info on @buffer.
+ * Returns: the metadata for @api on @buffer.
  */
 GstMeta *
-gst_buffer_get_meta (GstBuffer * buffer, const GstMetaInfo * info)
+gst_buffer_get_meta (GstBuffer * buffer, GType api)
 {
   GstMetaItem *item;
   GstMeta *result = NULL;
 
   g_return_val_if_fail (buffer != NULL, NULL);
-  g_return_val_if_fail (info != NULL, NULL);
+  g_return_val_if_fail (api != 0, NULL);
 
   /* find GstMeta of the requested API */
   for (item = GST_BUFFER_META (buffer); item; item = item->next) {
     GstMeta *meta = &item->meta;
-    if (meta->info->api == info->api) {
+    if (meta->info->api == api) {
       result = meta;
       break;
     }
@@ -1500,7 +1562,7 @@
  *
  * Add metadata for @info to @buffer using the parameters in @params.
  *
- * Returns: the metadata for the api in @info on @buffer.
+ * Returns: (transfer none): the metadata for the api in @info on @buffer.
  */
 GstMeta *
 gst_buffer_add_meta (GstBuffer * buffer, const GstMetaInfo * info,
@@ -1512,15 +1574,18 @@
 
   g_return_val_if_fail (buffer != NULL, NULL);
   g_return_val_if_fail (info != NULL, NULL);
+  g_return_val_if_fail (gst_buffer_is_writable (buffer), NULL);
 
   /* create a new slice */
-  GST_CAT_DEBUG (GST_CAT_BUFFER, "alloc metadata %s of size %" G_GSIZE_FORMAT,
-      g_type_name (info->type), info->size);
-
   size = ITEM_SIZE (info);
   item = g_slice_alloc (size);
   result = &item->meta;
   result->info = info;
+  result->flags = GST_META_FLAG_NONE;
+
+  GST_CAT_DEBUG (GST_CAT_BUFFER,
+      "alloc metadata %p (%s) of size %" G_GSIZE_FORMAT, result,
+      g_type_name (info->type), info->size);
 
   /* call the init_func when needed */
   if (info->init_func)
@@ -1557,6 +1622,7 @@
 
   g_return_val_if_fail (buffer != NULL, FALSE);
   g_return_val_if_fail (meta != NULL, FALSE);
+  g_return_val_if_fail (gst_buffer_is_writable (buffer), FALSE);
 
   /* find the metadata and delete */
   prev = GST_BUFFER_META (buffer);
@@ -1616,3 +1682,61 @@
   else
     return NULL;
 }
+
+/**
+ * gst_buffer_foreach_meta:
+ * @buffer: a #GstBuffer
+ * @func: (scope call): a #GstBufferForeachMetaFunc to call
+ * @user_data: (closure): user data passed to @func
+ *
+ * Call @func with @user_data for each meta in @buffer.
+ *
+ * @func can modify the passed meta pointer or its contents. The return value
+ * of @func define if this function returns or if the remaining metadata items
+ * in the buffer should be skipped.
+ */
+void
+gst_buffer_foreach_meta (GstBuffer * buffer, GstBufferForeachMetaFunc func,
+    gpointer user_data)
+{
+  GstMetaItem *walk, *prev, *next;
+
+  g_return_if_fail (buffer != NULL);
+  g_return_if_fail (func != NULL);
+
+  /* find the metadata and delete */
+  prev = GST_BUFFER_META (buffer);
+  for (walk = prev; walk; walk = next) {
+    GstMeta *m, *new;
+    gboolean res;
+
+    m = new = &walk->meta;
+    next = walk->next;
+
+    res = func (buffer, &new, user_data);
+
+    if (new == NULL) {
+      const GstMetaInfo *info = m->info;
+
+      GST_CAT_DEBUG (GST_CAT_BUFFER, "remove metadata %p (%s)", m,
+          g_type_name (info->type));
+
+      g_return_if_fail (gst_buffer_is_writable (buffer));
+
+      /* remove from list */
+      if (GST_BUFFER_META (buffer) == walk)
+        GST_BUFFER_META (buffer) = next;
+      else
+        prev->next = next;
+
+      /* call free_func if any */
+      if (info->free_func)
+        info->free_func (m, buffer);
+
+      /* and free the slice */
+      g_slice_free1 (ITEM_SIZE (info), walk);
+    }
+    if (!res)
+      break;
+  }
+}
diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h
index a25af4d..0b3a7f8 100644
--- a/gst/gstbuffer.h
+++ b/gst/gstbuffer.h
@@ -26,23 +26,15 @@
 
 #include <gst/gstminiobject.h>
 #include <gst/gstclock.h>
-#include <gst/gstcaps.h>
 #include <gst/gstmemory.h>
 
 G_BEGIN_DECLS
 
-extern GType _gst_buffer_type;
+GST_EXPORT GType _gst_buffer_type;
 
 typedef struct _GstBuffer GstBuffer;
 typedef struct _GstBufferPool GstBufferPool;
 
-/**
- * GST_BUFFER_TRACE_NAME:
- *
- * The name used for tracing memory allocations.
- */
-#define GST_BUFFER_TRACE_NAME           "GstBuffer"
-
 #define GST_TYPE_BUFFER                         (_gst_buffer_type)
 #define GST_IS_BUFFER(obj)                      (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_BUFFER))
 #define GST_BUFFER_CAST(obj)                    ((GstBuffer *)(obj))
@@ -80,15 +72,27 @@
  */
 #define GST_BUFFER_FLAG_UNSET(buf,flag)         GST_MINI_OBJECT_FLAG_UNSET (buf, flag)
 
+
 /**
- * GST_BUFFER_TIMESTAMP:
+ * GST_BUFFER_PTS:
  * @buf: a #GstBuffer.:
  *
- * The timestamp in nanoseconds (as a #GstClockTime) of the data in the buffer.
- * Value will be %GST_CLOCK_TIME_NONE if the timestamp is unknown.
- *
+ * The presentation timestamp (pts) in nanoseconds (as a #GstClockTime)
+ * of the data in the buffer. This is the timestamp when the media should be
+ * presented to the user.
+ * Value will be %GST_CLOCK_TIME_NONE if the pts is unknown.
  */
-#define GST_BUFFER_TIMESTAMP(buf)               (GST_BUFFER_CAST(buf)->timestamp)
+#define GST_BUFFER_PTS(buf)                     (GST_BUFFER_CAST(buf)->pts)
+/**
+ * GST_BUFFER_DTS:
+ * @buf: a #GstBuffer.:
+ *
+ * The decoding timestamp (dts) in nanoseconds (as a #GstClockTime)
+ * of the data in the buffer. This is the timestamp when the media should be
+ * decoded or processed otherwise.
+ * Value will be %GST_CLOCK_TIME_NONE if the dts is unknown.
+ */
+#define GST_BUFFER_DTS(buf)                     (GST_BUFFER_CAST(buf)->dts)
 /**
  * GST_BUFFER_DURATION:
  * @buf: a #GstBuffer.
@@ -127,12 +131,19 @@
  */
 #define GST_BUFFER_DURATION_IS_VALID(buffer)    (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer)))
 /**
- * GST_BUFFER_TIMESTAMP_IS_VALID:
+ * GST_BUFFER_PTS_IS_VALID:
  * @buffer: a #GstBuffer
  *
- * Tests if the timestamp is known.
+ * Tests if the pts is known.
  */
-#define GST_BUFFER_TIMESTAMP_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer)))
+#define GST_BUFFER_PTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buffer)))
+/**
+ * GST_BUFFER_DTS_IS_VALID:
+ * @buffer: a #GstBuffer
+ *
+ * Tests if the dts is known.
+ */
+#define GST_BUFFER_DTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buffer)))
 /**
  * GST_BUFFER_OFFSET_IS_VALID:
  * @buffer: a #GstBuffer
@@ -168,14 +179,15 @@
  * @GST_BUFFER_FLAG_DISCONT:     the buffer marks a data discontinuity in the stream.
  *                               This typically occurs after a seek or a dropped buffer
  *                               from a live or network source.
- * @GST_BUFFER_FLAG_RESYNC:      the buffer timestamp might have a discontinuity
+ * @GST_BUFFER_FLAG_RESYNC:      the buffer timestamps might have a discontinuity
  *                               and this buffer is a good point to resynchronize.
  * @GST_BUFFER_FLAG_CORRUPTED:   the buffer data is corrupted.
  * @GST_BUFFER_FLAG_MARKER:      the buffer contains a media specific marker. for
  *                               video this is typically the end of a frame boundary, for audio
  *                               this is usually the end of a talkspurt.
  * @GST_BUFFER_FLAG_HEADER:      the buffer contains header information that is
- *                               needed to decode the following data
+ *                               needed to decode the following data. The buffer
+ *                               is also part of the headers of the STREAM_CONFIG event.
  * @GST_BUFFER_FLAG_GAP:         the buffer has been created to fill a gap in the
  *                               stream and contains media neutral data (elements can
  *                               switch to optimized code path that ignores the buffer
@@ -183,7 +195,6 @@
  * @GST_BUFFER_FLAG_DROPPABLE:   the buffer can be dropped without breaking the
  *                               stream, for example to reduce bandwidth.
  * @GST_BUFFER_FLAG_DELTA_UNIT:  this unit cannot be decoded independently.
- * @GST_BUFFER_FLAG_IN_CAPS:     the buffer has been added as a field in a #GstCaps.
  * @GST_BUFFER_FLAG_LAST:        additional media specific flags can be added starting from
  *                               this flag.
  *
@@ -200,17 +211,20 @@
   GST_BUFFER_FLAG_GAP         = (GST_MINI_OBJECT_FLAG_LAST << 7),
   GST_BUFFER_FLAG_DROPPABLE   = (GST_MINI_OBJECT_FLAG_LAST << 8),
   GST_BUFFER_FLAG_DELTA_UNIT  = (GST_MINI_OBJECT_FLAG_LAST << 9),
-  GST_BUFFER_FLAG_IN_CAPS     = (GST_MINI_OBJECT_FLAG_LAST << 10),
 
-  GST_BUFFER_FLAG_LAST        = (GST_MINI_OBJECT_FLAG_LAST << 20)
+  GST_BUFFER_FLAG_LAST        = (GST_MINI_OBJECT_FLAG_LAST << 16)
 } GstBufferFlags;
 
 /**
  * GstBuffer:
  * @mini_object: the parent structure
  * @pool: pointer to the pool owner of the buffer
- * @timestamp: timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
- *     timestamp is not known or relevant.
+ * @pts: presentation timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
+ *     pts is not known or relevant. The pts contains the timestamp when the
+ *     media should be presented to the user.
+ * @dts: decoding timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
+ *     dts is not known or relevant. The dts contains the timestamp when the
+ *     media should be processed.
  * @duration: duration in time of the buffer data, can be #GST_CLOCK_TIME_NONE
  *     when the duration is not known or relevant.
  * @offset: a media specific offset for the buffer data.
@@ -231,7 +245,8 @@
   GstBufferPool         *pool;
 
   /* timestamp */
-  GstClockTime           timestamp;
+  GstClockTime           pts;
+  GstClockTime           dts;
   GstClockTime           duration;
 
   /* media specific offset */
@@ -243,16 +258,27 @@
 
 /* allocation */
 GstBuffer * gst_buffer_new                 (void);
-GstBuffer * gst_buffer_new_allocate        (const GstAllocator * allocator, gsize size, gsize align);
-GstBuffer * gst_buffer_new_wrapped_full    (gpointer data, GFreeFunc free_func, gsize offset, gsize size);
+GstBuffer * gst_buffer_new_allocate        (GstAllocator * allocator, gsize size,
+                                            GstAllocationParams * params);
+GstBuffer * gst_buffer_new_wrapped_full    (GstMemoryFlags flags, gpointer data, gsize maxsize,
+                                            gsize offset, gsize size, gpointer user_data,
+                                            GDestroyNotify notify);
 GstBuffer * gst_buffer_new_wrapped         (gpointer data, gsize size);
 
 /* memory blocks */
-guint       gst_buffer_n_memory            (GstBuffer *buffer);
-void        gst_buffer_take_memory         (GstBuffer *buffer, gint idx, GstMemory *mem);
-GstMemory * gst_buffer_peek_memory         (GstBuffer *buffer, guint idx, GstMapFlags flags);
-void        gst_buffer_remove_memory_range (GstBuffer *buffer, guint idx, guint length);
+guint       gst_buffer_n_memory             (GstBuffer *buffer);
+void        gst_buffer_insert_memory        (GstBuffer *buffer, gint idx, GstMemory *mem);
+void        gst_buffer_replace_memory_range (GstBuffer *buffer, guint idx, gint length, GstMemory *mem);
+GstMemory * gst_buffer_peek_memory          (GstBuffer *buffer, guint idx);
+GstMemory * gst_buffer_get_memory_range     (GstBuffer *buffer, guint idx, gint length);
+void        gst_buffer_remove_memory_range  (GstBuffer *buffer, guint idx, gint length);
 
+#define     gst_buffer_prepend_memory(b,m)     gst_buffer_insert_memory ((b), 0, (m))
+#define     gst_buffer_append_memory(b,m)      gst_buffer_insert_memory ((b), -1, (m))
+#define     gst_buffer_replace_memory(b,i,m)   gst_buffer_replace_memory_range ((b), (i), 1, (m))
+#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), 0, -1, (m))
+#define     gst_buffer_get_memory(b,i)         gst_buffer_get_memory_range ((b), (i), 1)
+#define     gst_buffer_get_all_memory(b)       gst_buffer_get_memory_range ((b), 0, -1)
 /**
  * gst_buffer_remove_memory:
  * @b: a #GstBuffer.
@@ -260,7 +286,11 @@
  *
  * Remove the memory block in @b at @i.
  */
-#define     gst_buffer_remove_memory(b,i)  gst_buffer_remove_memory_range ((b), (i), 1)
+#define     gst_buffer_remove_memory(b,i)      gst_buffer_remove_memory_range ((b), (i), 1)
+#define     gst_buffer_remove_all_memory(b)    gst_buffer_remove_memory_range ((b), 0, -1)
+
+gboolean    gst_buffer_find_memory         (GstBuffer *buffer, gsize offset, gsize size,
+                                            guint *idx, guint *length, gsize *skip);
 
 gsize       gst_buffer_fill                (GstBuffer *buffer, gsize offset,
                                             gconstpointer src, gsize size);
@@ -271,16 +301,20 @@
 gsize       gst_buffer_memset              (GstBuffer *buffer, gsize offset,
                                             guint8 val, gsize size);
 
-gsize       gst_buffer_get_sizes           (GstBuffer *buffer, gsize *offset, gsize *maxsize);
-void        gst_buffer_resize              (GstBuffer *buffer, gssize offset, gsize size);
+gsize       gst_buffer_get_sizes_range     (GstBuffer *buffer, guint idx, gint length,
+                                            gsize *offset, gsize *maxsize);
+void        gst_buffer_resize_range        (GstBuffer *buffer, guint idx, gint length,
+                                            gssize offset, gssize size);
 
+#define     gst_buffer_get_sizes(b,of,ms)  gst_buffer_get_sizes_range ((b), 0, -1, (of), (ms))
 /**
  * gst_buffer_get_size:
  * @b: a #GstBuffer.
  *
  * Get the size of @b.
  */
-#define     gst_buffer_get_size(b)         gst_buffer_get_sizes ((b), NULL, NULL)
+#define     gst_buffer_get_size(b)         gst_buffer_get_sizes_range ((b), 0, -1, NULL, NULL)
+#define     gst_buffer_resize(b,of,s)      gst_buffer_resize_range ((b), 0, -1, (of), (s))
 /**
  * gst_buffer_set_size:
  * @b: a #GstBuffer.
@@ -289,12 +323,14 @@
  * Set the size of @b to @s. This will remove or trim the memory blocks
  * in the buffer.
  */
-#define     gst_buffer_set_size(b,s)       gst_buffer_resize ((b), 0, (s))
+#define     gst_buffer_set_size(b,s)       gst_buffer_resize_range ((b), 0, -1, 0, (s))
 
-/* getting memory */
-gpointer    gst_buffer_map                 (GstBuffer *buffer, gsize *size, gsize *maxsize,
-                                            GstMapFlags flags);
-gboolean    gst_buffer_unmap               (GstBuffer *buffer, gpointer data, gsize size);
+gboolean    gst_buffer_map_range           (GstBuffer *buffer, guint idx, gint length,
+                                            GstMapInfo *info, GstMapFlags flags);
+#define     gst_buffer_map(b,i,f)          gst_buffer_map_range ((b), 0, -1, (i), (f))
+
+void        gst_buffer_unmap               (GstBuffer *buffer, GstMapInfo *info);
+
 
 /* refcounting */
 /**
@@ -327,8 +363,7 @@
  * @buf: (transfer full): a #GstBuffer.
  *
  * Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
- * will be freed. If GST_BUFFER_MALLOCDATA() is non-NULL, this pointer will
- * also be freed at this time.
+ * with the associated metadata and memory will be freed.
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void gst_buffer_unref (GstBuffer * buf);
@@ -365,12 +400,14 @@
  * GstBufferCopyFlags:
  * @GST_BUFFER_COPY_NONE: copy nothing
  * @GST_BUFFER_COPY_FLAGS: flag indicating that buffer flags should be copied
- * @GST_BUFFER_COPY_TIMESTAMPS: flag indicating that buffer timestamp, duration,
- * offset and offset_end should be copied
+ * @GST_BUFFER_COPY_TIMESTAMPS: flag indicating that buffer pts, dts,
+ * duration, offset and offset_end should be copied
  * @GST_BUFFER_COPY_MEMORY: flag indicating that buffer memory should be copied
  * and appended to already existing memory
  * @GST_BUFFER_COPY_MERGE: flag indicating that buffer memory should be
  * merged
+ * @GST_BUFFER_COPY_META: flag indicating that buffer meta should be
+ * copied
  *
  * A set of flags that can be provided to the gst_buffer_copy_into()
  * function to specify which items should be copied.
@@ -379,8 +416,9 @@
   GST_BUFFER_COPY_NONE           = 0,
   GST_BUFFER_COPY_FLAGS          = (1 << 0),
   GST_BUFFER_COPY_TIMESTAMPS     = (1 << 1),
-  GST_BUFFER_COPY_MEMORY         = (1 << 2),
-  GST_BUFFER_COPY_MERGE          = (1 << 3)
+  GST_BUFFER_COPY_META           = (1 << 2),
+  GST_BUFFER_COPY_MEMORY         = (1 << 3),
+  GST_BUFFER_COPY_MERGE          = (1 << 4)
 } GstBufferCopyFlags;
 
 /**
@@ -389,7 +427,8 @@
  * Combination of all possible metadata fields that can be copied with
  * gst_buffer_copy_into().
  */
-#define GST_BUFFER_COPY_METADATA       (GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS)
+#define GST_BUFFER_COPY_METADATA       (GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS |\
+                                        GST_BUFFER_COPY_META)
 
 /**
  * GST_BUFFER_COPY_ALL:
@@ -440,32 +479,61 @@
  * buffer is unreffed, the new is reffed).
  *
  * Either @nbuf or the #GstBuffer pointed to by @obuf may be NULL.
+ *
+ * Returns: TRUE when @obuf was different from @nbuf.
  */
-#define         gst_buffer_replace(obuf,nbuf) \
-G_STMT_START {                                                                \
-  GstBuffer **___obufaddr = (GstBuffer **)(obuf);         \
-  gst_mini_object_replace ((GstMiniObject **)___obufaddr, \
-      GST_MINI_OBJECT_CAST (nbuf));                       \
-} G_STMT_END
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_buffer_replace (GstBuffer **obuf, GstBuffer *nbuf);
+#endif
+
+static inline gboolean
+gst_buffer_replace (GstBuffer **obuf, GstBuffer *nbuf)
+{
+  return gst_mini_object_replace ((GstMiniObject **) obuf, (GstMiniObject *) nbuf);
+}
 
 /* creating a region */
 GstBuffer*      gst_buffer_copy_region          (GstBuffer *parent, GstBufferCopyFlags flags,
                                                  gsize offset, gsize size);
 
-/* span, two buffers, intelligently */
-gboolean        gst_buffer_is_span_fast         (GstBuffer *buf1, GstBuffer *buf2);
-GstBuffer*      gst_buffer_span                 (GstBuffer *buf1, gsize offset, GstBuffer *buf2, gsize size);
+/* append two buffers */
+GstBuffer*      gst_buffer_append               (GstBuffer *buf1, GstBuffer *buf2);
 
 /* metadata */
 #include <gst/gstmeta.h>
 
-GstMeta *       gst_buffer_get_meta             (GstBuffer *buffer, const GstMetaInfo *info);
+/**
+ * GstBufferForeachMetaFunc:
+ * @buffer: a #GstBuffer
+ * @meta: a pointer to a #GstMeta
+ * @user_data: user data passed to gst_buffer_foreach_meta()
+ *
+ * A function that will be called from gst_buffer_foreach_meta(). The @meta
+ * field will point to a the reference of the meta.
+ *
+ * @buffer should not be modified from this callback.
+ *
+ * When this function returns %TRUE, the next meta will be
+ * returned. When %FALSE is returned, gst_buffer_foreach_meta() will return.
+ *
+ * When @meta is set to NULL, the item will be removed from the buffer.
+ *
+ * Returns: %FALSE when gst_buffer_foreach_meta() should stop
+ */
+typedef gboolean (*GstBufferForeachMetaFunc)    (GstBuffer *buffer, GstMeta **meta,
+                                                 gpointer user_data);
+
+GstMeta *       gst_buffer_get_meta             (GstBuffer *buffer, GType api);
 GstMeta *       gst_buffer_add_meta             (GstBuffer *buffer, const GstMetaInfo *info,
                                                  gpointer params);
 gboolean        gst_buffer_remove_meta          (GstBuffer *buffer, GstMeta *meta);
 
 GstMeta *       gst_buffer_iterate_meta         (GstBuffer *buffer, gpointer *state);
 
+void            gst_buffer_foreach_meta         (GstBuffer *buffer,
+                                                 GstBufferForeachMetaFunc func,
+                                                 gpointer user_data);
+
 /**
  * gst_value_set_buffer:
  * @v: a #GValue to receive the data
diff --git a/gst/gstbufferlist.c b/gst/gstbufferlist.c
index 06f817f..f3e047e 100644
--- a/gst/gstbufferlist.c
+++ b/gst/gstbufferlist.c
@@ -30,6 +30,11 @@
  * Buffer lists are created with gst_buffer_list_new() and filled with data
  * using a gst_buffer_list_insert().
  *
+ * Buffer lists can be pushed on a srcpad with gst_pad_push_list(). This is
+ * interesting when multiple buffers need to be pushed in one go because it
+ * can reduce the amount of overhead for pushing each buffer individually.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 #include "gst_private.h"
 
@@ -69,7 +74,7 @@
   guint i, len;
 
   len = list->array->len;
-  copy = gst_buffer_list_sized_new (len);
+  copy = gst_buffer_list_new_sized (len);
 
   /* add and ref all buffers in the array */
   for (i = 0; i < len; i++) {
@@ -110,7 +115,7 @@
 }
 
 /**
- * gst_buffer_list_sized_new:
+ * gst_buffer_list_new_sized:
  * @size: an initial reserved size
  *
  * Creates a new, empty #GstBufferList. The caller is responsible for unreffing
@@ -125,7 +130,7 @@
  * Since: 0.10.24
  */
 GstBufferList *
-gst_buffer_list_sized_new (guint size)
+gst_buffer_list_new_sized (guint size)
 {
   GstBufferList *list;
 
@@ -154,11 +159,11 @@
 GstBufferList *
 gst_buffer_list_new (void)
 {
-  return gst_buffer_list_sized_new (8);
+  return gst_buffer_list_new_sized (8);
 }
 
 /**
- * gst_buffer_list_len:
+ * gst_buffer_list_length:
  * @list: a #GstBufferList
  *
  * Returns the number of buffers in @list.
@@ -168,7 +173,7 @@
  * Since: 0.10.24
  */
 guint
-gst_buffer_list_len (GstBufferList * list)
+gst_buffer_list_length (GstBufferList * list)
 {
   g_return_val_if_fail (GST_IS_BUFFER_LIST (list), 0);
 
@@ -184,8 +189,8 @@
  * Call @func with @data for each buffer in @list.
  *
  * @func can modify the passed buffer pointer or its contents. The return value
- * of @func define if this function returns or if the remaining buffers in a
- * group should be skipped.
+ * of @func define if this function returns or if the remaining buffers in
+ * the list should be skipped.
  *
  * Since: 0.10.24
  */
@@ -210,6 +215,7 @@
     if (buf != buf_ret) {
       if (buf_ret == NULL) {
         g_array_remove_index (list->array, i);
+        len--;
       } else {
         g_array_index (list->array, GstBuffer *, i) = buf_ret;
       }
@@ -274,6 +280,15 @@
   }
 }
 
+/**
+ * gst_buffer_list_remove:
+ * @list: a #GstBufferList
+ * @idx: the index
+ * @length: the amount to remove
+ *
+ * Remove @length buffers starting from @idx in @list. The following buffers are
+ * moved to close the gap.
+ */
 void
 gst_buffer_list_remove (GstBufferList * list, guint idx, guint length)
 {
diff --git a/gst/gstbufferlist.h b/gst/gstbufferlist.h
index 7275dad..4b0dfeb 100644
--- a/gst/gstbufferlist.h
+++ b/gst/gstbufferlist.h
@@ -27,7 +27,7 @@
 
 G_BEGIN_DECLS
 
-extern GType _gst_buffer_list_type;
+GST_EXPORT GType _gst_buffer_list_type;
 
 #define GST_TYPE_BUFFER_LIST      (_gst_buffer_list_type)
 #define GST_IS_BUFFER_LIST(obj)   (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_BUFFER_LIST))
@@ -156,10 +156,10 @@
 GType                    gst_buffer_list_get_type              (void);
 
 /* allocation */
-GstBufferList *          gst_buffer_list_new                   (void);
-GstBufferList *          gst_buffer_list_sized_new             (guint size);
+GstBufferList *          gst_buffer_list_new                   (void) G_GNUC_MALLOC;
+GstBufferList *          gst_buffer_list_new_sized             (guint size) G_GNUC_MALLOC;
 
-guint                    gst_buffer_list_len                   (GstBufferList *list);
+guint                    gst_buffer_list_length                (GstBufferList *list);
 
 GstBuffer *              gst_buffer_list_get                   (GstBufferList *list, guint idx);
 void                     gst_buffer_list_insert                (GstBufferList *list, guint idx, GstBuffer *buffer);
diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c
index bb91167..7020345 100644
--- a/gst/gstbufferpool.c
+++ b/gst/gstbufferpool.c
@@ -24,9 +24,49 @@
  * @short_description: Pool for buffers
  * @see_also: #GstBuffer
  *
+ * a #GstBufferPool is an object that can be used to pre-allocate and recycle
+ * buffers of the same size and with the same properties.
+ *
+ * A #GstBufferPool is created with gst_buffer_pool_new().
+ *
+ * After the buffer is created, it needs to be configured.
+ * gst_buffer_pool_get_config() get the current configuration structure from the
+ * pool. With gst_buffer_pool_config_set_params() and
+ * gst_buffer_pool_config_set_allocator() the bufferpool parameters and allocator
+ * can be configured. Other properties can be configured in the pool depending
+ * on the pool implementation.
+ *
+ * A bufferpool can have extra options that can be enabled with
+ * gst_buffer_pool_config_add_option(). The available options can be retrieved
+ * with gst_buffer_pool_get_options(). Some options allow for additional
+ * configuration properties to be set.
+ *
+ * After the configuration structure has been configured,
+ * gst_buffer_pool_set_config() updates the configuration in the pool. This can
+ * fail when the configuration structure is not accepted.
+ *
+ * After the a pool has been configured, it can be activated with
+ * gst_buffer_pool_set_active(). This will preallocate the configured resources
+ * in the pool.
+ *
+ * When the pool is active, gst_buffer_pool_acquire_buffer() can be used to
+ * retrieve a buffer from the pool.
+ *
+ * Buffer allocated from a bufferpool will automatically be returned to the pool
+ * with gst_buffer_pool_release_buffer() when their refcount drops to 0.
+ *
+ * The bufferpool can be deactivated again with gst_buffer_pool_set_active().
+ * All further gst_buffer_pool_acquire_buffer() calls will return an error. When
+ * all buffers are returned to the pool they will be freed.
+ *
+ * Use gst_object_unref() to release the reference to a bufferpool. If the
+ * refcount of the pool reaches 0, the pool will be freed.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 #include "gst_private.h"
+#include "glib-compat-private.h"
 
 #include <errno.h>
 #ifdef HAVE_UNISTD_H
@@ -34,8 +74,11 @@
 #endif
 #include <sys/types.h>
 
+#include "gstatomicqueue.h"
+#include "gstpoll.h"
 #include "gstinfo.h"
 #include "gstquark.h"
+#include "gstvalue.h"
 
 #include "gstbufferpool.h"
 
@@ -45,17 +88,28 @@
 #define GST_BUFFER_POOL_GET_PRIVATE(obj)  \
    (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_BUFFER_POOL, GstBufferPoolPrivate))
 
-#define GST_BUFFER_POOL_LOCK(pool)   (g_static_rec_mutex_lock(&pool->priv->rec_lock))
-#define GST_BUFFER_POOL_UNLOCK(pool) (g_static_rec_mutex_unlock(&pool->priv->rec_lock))
+#define GST_BUFFER_POOL_LOCK(pool)   (g_rec_mutex_lock(&pool->priv->rec_lock))
+#define GST_BUFFER_POOL_UNLOCK(pool) (g_rec_mutex_unlock(&pool->priv->rec_lock))
 
 struct _GstBufferPoolPrivate
 {
-  GStaticRecMutex rec_lock;
+  GstAtomicQueue *queue;
+  GstPoll *poll;
+
+  GRecMutex rec_lock;
+
+  gboolean started;
+  gboolean active;
+  gint outstanding;
+
+  gboolean configured;
+  GstStructure *config;
+
   guint size;
   guint min_buffers;
   guint max_buffers;
-  guint prefix;
-  guint align;
+  GstAllocator *allocator;
+  GstAllocationParams params;
 };
 
 enum
@@ -73,11 +127,11 @@
 static gboolean default_set_config (GstBufferPool * pool,
     GstStructure * config);
 static GstFlowReturn default_alloc_buffer (GstBufferPool * pool,
-    GstBuffer ** buffer, GstBufferPoolParams * params);
+    GstBuffer ** buffer, GstBufferPoolAcquireParams * params);
 static GstFlowReturn default_acquire_buffer (GstBufferPool * pool,
-    GstBuffer ** buffer, GstBufferPoolParams * params);
+    GstBuffer ** buffer, GstBufferPoolAcquireParams * params);
 static void default_reset_buffer (GstBufferPool * pool, GstBuffer * buffer,
-    GstBufferPoolParams * params);
+    GstBufferPoolAcquireParams * params);
 static void default_free_buffer (GstBufferPool * pool, GstBuffer * buffer);
 static void default_release_buffer (GstBufferPool * pool, GstBuffer * buffer);
 
@@ -106,19 +160,25 @@
 static void
 gst_buffer_pool_init (GstBufferPool * pool)
 {
-  pool->priv = GST_BUFFER_POOL_GET_PRIVATE (pool);
+  GstBufferPoolPrivate *priv;
 
-  g_static_rec_mutex_init (&pool->priv->rec_lock);
+  priv = pool->priv = GST_BUFFER_POOL_GET_PRIVATE (pool);
 
-  pool->poll = gst_poll_new_timer ();
-  pool->queue = gst_atomic_queue_new (10);
-  pool->flushing = TRUE;
-  pool->active = FALSE;
-  pool->configured = FALSE;
-  pool->started = FALSE;
-  pool->config = gst_structure_id_empty_new (GST_QUARK (BUFFER_POOL_CONFIG));
-  gst_buffer_pool_config_set (pool->config, NULL, 0, 0, 0, 0, 0);
-  gst_poll_write_control (pool->poll);
+  g_rec_mutex_init (&priv->rec_lock);
+
+  priv->poll = gst_poll_new_timer ();
+  priv->queue = gst_atomic_queue_new (10);
+  pool->flushing = 1;
+  priv->active = FALSE;
+  priv->configured = FALSE;
+  priv->started = FALSE;
+  priv->config = gst_structure_new_id_empty (GST_QUARK (BUFFER_POOL_CONFIG));
+  gst_buffer_pool_config_set_params (priv->config, NULL, 0, 0, 0);
+  priv->allocator = NULL;
+  gst_allocation_params_init (&priv->params);
+  gst_buffer_pool_config_set_allocator (priv->config, priv->allocator,
+      &priv->params);
+  gst_poll_write_control (priv->poll);
 
   GST_DEBUG_OBJECT (pool, "created");
 }
@@ -127,16 +187,20 @@
 gst_buffer_pool_finalize (GObject * object)
 {
   GstBufferPool *pool;
+  GstBufferPoolPrivate *priv;
 
   pool = GST_BUFFER_POOL_CAST (object);
+  priv = pool->priv;
 
   GST_DEBUG_OBJECT (pool, "finalize");
 
   gst_buffer_pool_set_active (pool, FALSE);
-  gst_atomic_queue_unref (pool->queue);
-  gst_poll_free (pool->poll);
-  gst_structure_free (pool->config);
-  g_static_rec_mutex_free (&pool->priv->rec_lock);
+  gst_atomic_queue_unref (priv->queue);
+  gst_poll_free (priv->poll);
+  gst_structure_free (priv->config);
+  g_rec_mutex_clear (&priv->rec_lock);
+  if (priv->allocator)
+    gst_allocator_unref (priv->allocator);
 
   G_OBJECT_CLASS (gst_buffer_pool_parent_class)->finalize (object);
 }
@@ -146,7 +210,7 @@
  *
  * Creates a new #GstBufferPool instance.
  *
- * Returns: a new #GstBufferPool instance
+ * Returns: (transfer full): a new #GstBufferPool instance
  */
 GstBufferPool *
 gst_buffer_pool_new (void)
@@ -161,20 +225,28 @@
 
 static GstFlowReturn
 default_alloc_buffer (GstBufferPool * pool, GstBuffer ** buffer,
-    GstBufferPoolParams * params)
+    GstBufferPoolAcquireParams * params)
 {
   GstBufferPoolPrivate *priv = pool->priv;
-  GstMemory *mem;
 
-  *buffer = gst_buffer_new ();
-
-  mem = gst_allocator_alloc (NULL, priv->size + priv->prefix, priv->align);
-  gst_memory_resize (mem, priv->prefix, priv->size);
-  gst_buffer_take_memory (*buffer, -1, mem);
+  *buffer =
+      gst_buffer_new_allocate (priv->allocator, priv->size, &priv->params);
 
   return GST_FLOW_OK;
 }
 
+static gboolean
+mark_meta_pooled (GstBuffer * buffer, GstMeta ** meta, gpointer user_data)
+{
+  GstBufferPool *pool = user_data;
+
+  GST_DEBUG_OBJECT (pool, "marking meta %p as POOLED in buffer %p", *meta,
+      buffer);
+  GST_META_FLAG_SET (*meta, GST_META_FLAG_POOLED);
+
+  return TRUE;
+}
+
 /* the default implementation for preallocating the buffers
  * in the pool */
 static gboolean
@@ -197,6 +269,7 @@
     if (pclass->alloc_buffer (pool, &buffer, NULL) != GST_FLOW_OK)
       goto alloc_failed;
 
+    gst_buffer_foreach_meta (buffer, mark_meta_pooled, pool);
     GST_LOG_OBJECT (pool, "prealloced buffer %d: %p", i, buffer);
     /* release to the queue, we call the vmethod directly, we don't need to do
      * the other refcount handling right now. */
@@ -222,7 +295,7 @@
 static gboolean
 do_start (GstBufferPool * pool)
 {
-  if (!pool->started) {
+  if (!pool->priv->started) {
     GstBufferPoolClass *pclass;
 
     pclass = GST_BUFFER_POOL_GET_CLASS (pool);
@@ -234,7 +307,7 @@
       if (!pclass->start (pool))
         return FALSE;
     }
-    pool->started = TRUE;
+    pool->priv->started = TRUE;
   }
   return TRUE;
 }
@@ -256,9 +329,9 @@
   pclass = GST_BUFFER_POOL_GET_CLASS (pool);
 
   /* clear the pool */
-  while ((buffer = gst_atomic_queue_pop (pool->queue))) {
+  while ((buffer = gst_atomic_queue_pop (pool->priv->queue))) {
     GST_LOG_OBJECT (pool, "freeing %p", buffer);
-    gst_poll_read_control (pool->poll);
+    gst_poll_read_control (pool->priv->poll);
 
     if (G_LIKELY (pclass->free_buffer))
       pclass->free_buffer (pool, buffer);
@@ -270,7 +343,7 @@
 static gboolean
 do_stop (GstBufferPool * pool)
 {
-  if (pool->started) {
+  if (pool->priv->started) {
     GstBufferPoolClass *pclass;
 
     pclass = GST_BUFFER_POOL_GET_CLASS (pool);
@@ -280,7 +353,7 @@
       if (!pclass->stop (pool))
         return FALSE;
     }
-    pool->started = FALSE;
+    pool->priv->started = FALSE;
   }
   return TRUE;
 }
@@ -291,7 +364,7 @@
  * @active: the new active state
  *
  * Control the active state of @pool. When the pool is active, new calls to
- * gst_buffer_pool_acquire_buffer() will return with GST_FLOW_WRONG_STATE.
+ * gst_buffer_pool_acquire_buffer() will return with GST_FLOW_FLUSHING.
  *
  * Activating the bufferpool will preallocate all resources in the pool based on
  * the configuration of the pool.
@@ -314,11 +387,11 @@
 
   GST_BUFFER_POOL_LOCK (pool);
   /* just return if we are already in the right state */
-  if (pool->active == active)
+  if (pool->priv->active == active)
     goto was_ok;
 
   /* we need to be configured */
-  if (!pool->configured)
+  if (!pool->priv->configured)
     goto not_configured;
 
   if (active) {
@@ -326,25 +399,25 @@
       goto start_failed;
 
     /* unset the flushing state now */
-    gst_poll_read_control (pool->poll);
-    g_atomic_int_set (&pool->flushing, FALSE);
+    gst_poll_read_control (pool->priv->poll);
+    g_atomic_int_set (&pool->flushing, 0);
   } else {
     gint outstanding;
 
     /* set to flushing first */
-    g_atomic_int_set (&pool->flushing, TRUE);
-    gst_poll_write_control (pool->poll);
+    g_atomic_int_set (&pool->flushing, 1);
+    gst_poll_write_control (pool->priv->poll);
 
     /* when all buffers are in the pool, free them. Else they will be
      * freed when they are released */
-    outstanding = g_atomic_int_get (&pool->outstanding);
+    outstanding = g_atomic_int_get (&pool->priv->outstanding);
     GST_LOG_OBJECT (pool, "outstanding buffers %d", outstanding);
     if (outstanding == 0) {
       if (!do_stop (pool))
         goto stop_failed;
     }
   }
-  pool->active = active;
+  pool->priv->active = active;
   GST_BUFFER_POOL_UNLOCK (pool);
 
   return res;
@@ -390,7 +463,7 @@
   gboolean res;
 
   GST_BUFFER_POOL_LOCK (pool);
-  res = pool->active;
+  res = pool->priv->active;
   GST_BUFFER_POOL_UNLOCK (pool);
 
   return res;
@@ -400,13 +473,17 @@
 default_set_config (GstBufferPool * pool, GstStructure * config)
 {
   GstBufferPoolPrivate *priv = pool->priv;
-  const GstCaps *caps;
+  GstCaps *caps;
   guint size, min_buffers, max_buffers;
-  guint prefix, align;
+  GstAllocator *allocator;
+  GstAllocationParams params;
 
   /* parse the config and keep around */
-  if (!gst_buffer_pool_config_get (config, &caps, &size, &min_buffers,
-          &max_buffers, &prefix, &align))
+  if (!gst_buffer_pool_config_get_params (config, &caps, &size, &min_buffers,
+          &max_buffers))
+    goto wrong_config;
+
+  if (!gst_buffer_pool_config_get_allocator (config, &allocator, &params))
     goto wrong_config;
 
   GST_DEBUG_OBJECT (pool, "config %" GST_PTR_FORMAT, config);
@@ -414,8 +491,12 @@
   priv->size = size;
   priv->min_buffers = min_buffers;
   priv->max_buffers = max_buffers;
-  priv->prefix = prefix;
-  priv->align = align;
+
+  if (priv->allocator)
+    gst_allocator_unref (priv->allocator);
+  if ((priv->allocator = allocator))
+    gst_allocator_ref (allocator);
+  priv->params = params;
 
   return TRUE;
 
@@ -429,7 +510,7 @@
 /**
  * gst_buffer_pool_set_config:
  * @pool: a #GstBufferPool
- * @config: a #GstStructure
+ * @config: (transfer full): a #GstStructure
  *
  * Set the configuration of the pool. The pool must be inactive and all buffers
  * allocated form this pool must be returned or else this function will do
@@ -452,11 +533,11 @@
 
   GST_BUFFER_POOL_LOCK (pool);
   /* can't change the settings when active */
-  if (pool->active)
+  if (pool->priv->active)
     goto was_active;
 
   /* we can't change when outstanding buffers */
-  if (g_atomic_int_get (&pool->outstanding) != 0)
+  if (g_atomic_int_get (&pool->priv->outstanding) != 0)
     goto have_outstanding;
 
   pclass = GST_BUFFER_POOL_GET_CLASS (pool);
@@ -468,12 +549,14 @@
     result = FALSE;
 
   if (result) {
-    if (pool->config)
-      gst_structure_free (pool->config);
-    pool->config = config;
+    if (pool->priv->config)
+      gst_structure_free (pool->priv->config);
+    pool->priv->config = config;
 
     /* now we are configured */
-    pool->configured = TRUE;
+    pool->priv->configured = TRUE;
+  } else {
+    gst_structure_free (config);
   }
   GST_BUFFER_POOL_UNLOCK (pool);
 
@@ -482,12 +565,14 @@
   /* ERRORS */
 was_active:
   {
+    gst_structure_free (config);
     GST_WARNING_OBJECT (pool, "can't change config, we are active");
     GST_BUFFER_POOL_UNLOCK (pool);
     return FALSE;
   }
 have_outstanding:
   {
+    gst_structure_free (config);
     GST_WARNING_OBJECT (pool, "can't change config, have outstanding buffers");
     GST_BUFFER_POOL_UNLOCK (pool);
     return FALSE;
@@ -502,7 +587,7 @@
  * can either be modified and used for the gst_buffer_pool_set_config() call
  * or it must be freed after usage.
  *
- * Returns: a copy of the current configuration of @pool. use
+ * Returns: (transfer full): a copy of the current configuration of @pool. use
  * gst_structure_free() after usage or gst_buffer_pool_set_config().
  */
 GstStructure *
@@ -513,7 +598,7 @@
   g_return_val_if_fail (GST_IS_BUFFER_POOL (pool), NULL);
 
   GST_BUFFER_POOL_UNLOCK (pool);
-  result = gst_structure_copy (pool->config);
+  result = gst_structure_copy (pool->priv->config);
   GST_BUFFER_POOL_UNLOCK (pool);
 
   return result;
@@ -529,7 +614,7 @@
  * @pool. An option would typically be enabled with
  * gst_buffer_pool_config_add_option().
  *
- * Returns: a NULL terminated array of strings.
+ * Returns: (array zero-terminated=1) (transfer none): a NULL terminated array of strings.
  */
 const gchar **
 gst_buffer_pool_get_options (GstBufferPool * pool)
@@ -585,30 +670,58 @@
 }
 
 /**
- * gst_buffer_pool_config_set:
+ * gst_buffer_pool_config_set_params:
  * @config: a #GstBufferPool configuration
  * @caps: caps for the buffers
- * @size: the size of each buffer, not including prefix
+ * @size: the size of each buffer, not including prefix and padding
  * @min_buffers: the minimum amount of buffers to allocate.
  * @max_buffers: the maximum amount of buffers to allocate or 0 for unlimited.
- * @prefix: prefix each buffer with this many bytes
- * @align: alignment of the buffer data.
  *
  * Configure @config with the given parameters.
  */
 void
-gst_buffer_pool_config_set (GstStructure * config, const GstCaps * caps,
-    guint size, guint min_buffers, guint max_buffers, guint prefix, guint align)
+gst_buffer_pool_config_set_params (GstStructure * config, GstCaps * caps,
+    guint size, guint min_buffers, guint max_buffers)
 {
   g_return_if_fail (config != NULL);
+  g_return_if_fail (max_buffers == 0 || min_buffers <= max_buffers);
 
   gst_structure_id_set (config,
       GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
       GST_QUARK (SIZE), G_TYPE_UINT, size,
       GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
-      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
-      GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
-      GST_QUARK (ALIGN), G_TYPE_UINT, align, NULL);
+      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers, NULL);
+}
+
+/**
+ * gst_buffer_pool_config_set_allocator:
+ * @config: a #GstBufferPool configuration
+ * @allocator: a #GstAllocator
+ * @params: #GstAllocationParams
+ *
+ * Set the @allocator and @params on @config.
+ *
+ * One of @allocator and @params can be NULL, but not both. When @allocator
+ * is NULL, the default allocator of the pool will use the values in @param
+ * to perform its allocation. When @param is NULL, the pool will use the
+ * provided allocator with its default #GstAllocationParams.
+ *
+ * A call to gst_buffer_pool_set_config() can update the allocator and params
+ * with the values that it is able to do. Some pools are, for example, not able
+ * to operate with different allocators or cannot allocate with the values
+ * specified in @params. Use gst_buffer_pool_get_config() to get the currently
+ * used values.
+ */
+void
+gst_buffer_pool_config_set_allocator (GstStructure * config,
+    GstAllocator * allocator, const GstAllocationParams * params)
+{
+  g_return_if_fail (config != NULL);
+  g_return_if_fail (allocator != NULL || params != NULL);
+
+  gst_structure_id_set (config,
+      GST_QUARK (ALLOCATOR), GST_TYPE_ALLOCATOR, allocator,
+      GST_QUARK (PARAMS), GST_TYPE_ALLOCATION_PARAMS, params, NULL);
 }
 
 /**
@@ -624,34 +737,31 @@
 void
 gst_buffer_pool_config_add_option (GstStructure * config, const gchar * option)
 {
-  GValueArray *array;
   const GValue *value;
-  GValue option_value = { 0 };
-  gint i;
+  GValue option_value = { 0, };
+  guint i, len;
 
   g_return_if_fail (config != NULL);
 
   value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
   if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
+    len = gst_value_array_get_size (value);
+    for (i = 0; i < len; ++i) {
+      const GValue *nth_val = gst_value_array_get_value (value, i);
+
+      if (g_str_equal (option, g_value_get_string (nth_val)))
+        return;
+    }
   } else {
     GValue new_array_val = { 0, };
 
-    array = g_value_array_new (0);
-
-    g_value_init (&new_array_val, G_TYPE_VALUE_ARRAY);
-    g_value_take_boxed (&new_array_val, array);
-
+    g_value_init (&new_array_val, GST_TYPE_ARRAY);
     gst_structure_id_take_value (config, GST_QUARK (OPTIONS), &new_array_val);
-  }
-  for (i = 0; i < array->n_values; i++) {
-    value = g_value_array_get_nth (array, i);
-    if (g_str_equal (option, g_value_get_string (value)))
-      return;
+    value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
   }
   g_value_init (&option_value, G_TYPE_STRING);
   g_value_set_string (&option_value, option);
-  g_value_array_append (array, &option_value);
+  gst_value_array_append_value ((GValue *) value, &option_value);
   g_value_unset (&option_value);
 }
 
@@ -667,7 +777,6 @@
 guint
 gst_buffer_pool_config_n_options (GstStructure * config)
 {
-  GValueArray *array;
   const GValue *value;
   guint size = 0;
 
@@ -675,8 +784,7 @@
 
   value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
   if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-    size = array->n_values;
+    size = gst_value_array_get_size (value);
   }
   return size;
 }
@@ -701,12 +809,9 @@
 
   value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
   if (value) {
-    GValueArray *array;
-    GValue *option_value;
+    const GValue *option_value;
 
-    array = (GValueArray *) g_value_get_boxed (value);
-    option_value = g_value_array_get_nth (array, index);
-
+    option_value = gst_value_array_get_value (value, index);
     if (option_value)
       ret = g_value_get_string (option_value);
   }
@@ -726,19 +831,17 @@
 gst_buffer_pool_config_has_option (GstStructure * config, const gchar * option)
 {
   const GValue *value;
+  guint i, len;
 
   g_return_val_if_fail (config != NULL, 0);
 
   value = gst_structure_id_get_value (config, GST_QUARK (OPTIONS));
   if (value) {
-    GValueArray *array;
-    GValue *option_value;
-    gint i;
+    len = gst_value_array_get_size (value);
+    for (i = 0; i < len; ++i) {
+      const GValue *nth_val = gst_value_array_get_value (value, i);
 
-    array = (GValueArray *) g_value_get_boxed (value);
-    for (i = 0; i < array->n_values; i++) {
-      option_value = g_value_array_get_nth (array, i);
-      if (g_str_equal (option, g_value_get_string (option_value)))
+      if (g_str_equal (option, g_value_get_string (nth_val)))
         return TRUE;
     }
   }
@@ -746,36 +849,67 @@
 }
 
 /**
- * gst_buffer_pool_config_get:
- * @config: a #GstBufferPool configuration
- * @caps: the caps of buffers
- * @size: the size of each buffer, not including prefix
- * @min_buffers: the minimum amount of buffers to allocate.
- * @max_buffers: the maximum amount of buffers to allocate or 0 for unlimited.
- * @prefix: prefix each buffer with this many bytes
- * @align: alignment of the buffer data.
+ * gst_buffer_pool_config_get_params:
+ * @config: (transfer none): a #GstBufferPool configuration
+ * @caps: (out) (transfer none) (allow-none): the caps of buffers
+ * @size: (out) (allow-none): the size of each buffer, not including prefix and padding
+ * @min_buffers: (out) (allow-none): the minimum amount of buffers to allocate.
+ * @max_buffers: (out) (allow-none): the maximum amount of buffers to allocate or 0 for unlimited.
  *
  * Get the configuration values from @config.
+ *
+ * Returns: %TRUE if all parameters could be fetched.
  */
 gboolean
-gst_buffer_pool_config_get (GstStructure * config, const GstCaps ** caps,
-    guint * size, guint * min_buffers, guint * max_buffers, guint * prefix,
-    guint * align)
+gst_buffer_pool_config_get_params (GstStructure * config, GstCaps ** caps,
+    guint * size, guint * min_buffers, guint * max_buffers)
 {
   g_return_val_if_fail (config != NULL, FALSE);
 
+  if (caps) {
+    *caps = g_value_get_boxed (gst_structure_id_get_value (config,
+            GST_QUARK (CAPS)));
+  }
   return gst_structure_id_get (config,
-      GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
       GST_QUARK (SIZE), G_TYPE_UINT, size,
       GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
-      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
-      GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
-      GST_QUARK (ALIGN), G_TYPE_UINT, align, NULL);
+      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers, NULL);
+}
+
+/**
+ * gst_buffer_pool_config_get_allocator:
+ * @config: (transfer none): a #GstBufferPool configuration
+ * @allocator: (transfer none): a #GstAllocator
+ * @params: #GstAllocationParams
+ *
+ * Get the allocator and params from @config.
+ */
+gboolean
+gst_buffer_pool_config_get_allocator (GstStructure * config,
+    GstAllocator ** allocator, GstAllocationParams * params)
+{
+  g_return_val_if_fail (config != NULL, FALSE);
+
+  if (allocator)
+    *allocator = g_value_get_boxed (gst_structure_id_get_value (config,
+            GST_QUARK (ALLOCATOR)));
+  if (params) {
+    GstAllocationParams *p;
+
+    p = g_value_get_boxed (gst_structure_id_get_value (config,
+            GST_QUARK (PARAMS)));
+    if (p) {
+      *params = *p;
+    } else {
+      gst_allocation_params_init (params);
+    }
+  }
+  return TRUE;
 }
 
 static GstFlowReturn
 default_acquire_buffer (GstBufferPool * pool, GstBuffer ** buffer,
-    GstBufferPoolParams * params)
+    GstBufferPoolAcquireParams * params)
 {
   GstFlowReturn result;
   GstBufferPoolClass *pclass;
@@ -784,13 +918,13 @@
   pclass = GST_BUFFER_POOL_GET_CLASS (pool);
 
   while (TRUE) {
-    if (G_UNLIKELY (g_atomic_int_get (&pool->flushing)))
+    if (G_UNLIKELY (GST_BUFFER_POOL_IS_FLUSHING (pool)))
       goto flushing;
 
     /* try to get a buffer from the queue */
-    *buffer = gst_atomic_queue_pop (pool->queue);
+    *buffer = gst_atomic_queue_pop (pool->priv->queue);
     if (G_LIKELY (*buffer)) {
-      gst_poll_read_control (pool->poll);
+      gst_poll_read_control (pool->priv->poll);
       result = GST_FLOW_OK;
       GST_LOG_OBJECT (pool, "acquired buffer %p", *buffer);
       break;
@@ -801,6 +935,10 @@
       /* no max_buffers, we allocate some more */
       if (G_LIKELY (pclass->alloc_buffer)) {
         result = pclass->alloc_buffer (pool, buffer, params);
+        if (result == GST_FLOW_OK && *buffer)
+          gst_buffer_foreach_meta (*buffer, mark_meta_pooled, pool);
+        else
+          result = GST_FLOW_ERROR;
       } else
         result = GST_FLOW_NOT_SUPPORTED;
       GST_LOG_OBJECT (pool, "alloc buffer %p", *buffer);
@@ -808,15 +946,15 @@
     }
 
     /* check if we need to wait */
-    if (params && (params->flags & GST_BUFFER_POOL_FLAG_DONTWAIT)) {
+    if (params && (params->flags & GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT)) {
       GST_LOG_OBJECT (pool, "no more buffers");
-      result = GST_FLOW_UNEXPECTED;
+      result = GST_FLOW_EOS;
       break;
     }
 
     /* now wait */
     GST_LOG_OBJECT (pool, "waiting for free buffers");
-    gst_poll_wait (pool->poll, GST_CLOCK_TIME_NONE);
+    gst_poll_wait (pool->priv->poll, GST_CLOCK_TIME_NONE);
   }
 
   return result;
@@ -825,21 +963,21 @@
 flushing:
   {
     GST_DEBUG_OBJECT (pool, "we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 }
 
 static inline void
 dec_outstanding (GstBufferPool * pool)
 {
-  if (g_atomic_int_dec_and_test (&pool->outstanding)) {
+  if (g_atomic_int_dec_and_test (&pool->priv->outstanding)) {
     /* all buffers are returned to the pool, see if we need to free them */
-    if (g_atomic_int_get (&pool->flushing)) {
+    if (GST_BUFFER_POOL_IS_FLUSHING (pool)) {
       /* take the lock so that set_active is not run concurrently */
       GST_BUFFER_POOL_LOCK (pool);
       /* recheck the flushing state in the lock, the pool could have been
        * set to active again */
-      if (g_atomic_int_get (&pool->flushing))
+      if (GST_BUFFER_POOL_IS_FLUSHING (pool))
         do_stop (pool);
 
       GST_BUFFER_POOL_UNLOCK (pool);
@@ -847,35 +985,47 @@
   }
 }
 
+static gboolean
+remove_meta_unpooled (GstBuffer * buffer, GstMeta ** meta, gpointer user_data)
+{
+  if (!GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED))
+    *meta = NULL;
+  return TRUE;
+}
+
 static void
 default_reset_buffer (GstBufferPool * pool, GstBuffer * buffer,
-    GstBufferPoolParams * params)
+    GstBufferPoolAcquireParams * params)
 {
   GST_BUFFER_FLAGS (buffer) = 0;
 
-  GST_BUFFER_TIMESTAMP (buffer) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_PTS (buffer) = GST_CLOCK_TIME_NONE;
+  GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_DURATION (buffer) = GST_CLOCK_TIME_NONE;
   GST_BUFFER_OFFSET (buffer) = GST_BUFFER_OFFSET_NONE;
   GST_BUFFER_OFFSET_END (buffer) = GST_BUFFER_OFFSET_NONE;
+
+  /* remove all metadata without the POOLED flag */
+  gst_buffer_foreach_meta (buffer, remove_meta_unpooled, pool);
 }
 
 /**
  * gst_buffer_pool_acquire_buffer:
  * @pool: a #GstBufferPool
- * @buffer: a location for a #GstBuffer
- * @params: parameters.
+ * @buffer: (out): a location for a #GstBuffer
+ * @params: (transfer none) (allow-none) parameters.
  *
  * Acquire a buffer from @pool. @buffer should point to a memory location that
  * can hold a pointer to the new buffer.
  *
  * @params can be NULL or contain optional parameters to influence the allocation.
  *
- * Returns: a #GstFlowReturn such as GST_FLOW_WRONG_STATE when the pool is
+ * Returns: a #GstFlowReturn such as GST_FLOW_FLUSHING when the pool is
  * inactive.
  */
 GstFlowReturn
 gst_buffer_pool_acquire_buffer (GstBufferPool * pool, GstBuffer ** buffer,
-    GstBufferPoolParams * params)
+    GstBufferPoolAcquireParams * params)
 {
   GstBufferPoolClass *pclass;
   GstFlowReturn result;
@@ -887,7 +1037,7 @@
 
   /* assume we'll have one more outstanding buffer we need to do that so
    * that concurrent set_active doesn't clear the buffers */
-  g_atomic_int_inc (&pool->outstanding);
+  g_atomic_int_inc (&pool->priv->outstanding);
 
   if (G_LIKELY (pclass->acquire_buffer))
     result = pclass->acquire_buffer (pool, buffer, params);
@@ -913,14 +1063,14 @@
 {
   /* keep it around in our queue */
   GST_LOG_OBJECT (pool, "released buffer %p", buffer);
-  gst_atomic_queue_push (pool->queue, buffer);
-  gst_poll_write_control (pool->poll);
+  gst_atomic_queue_push (pool->priv->queue, buffer);
+  gst_poll_write_control (pool->priv->poll);
 }
 
 /**
  * gst_buffer_pool_release_buffer:
  * @pool: a #GstBufferPool
- * @buffer: a #GstBuffer
+ * @buffer: (transfer full): a #GstBuffer
  *
  * Release @buffer to @pool. @buffer should have previously been allocated from
  * @pool with gst_buffer_pool_acquire_buffer().
@@ -938,8 +1088,7 @@
 
   /* check that the buffer is ours, all buffers returned to the pool have the
    * pool member set to NULL and the pool refcount decreased */
-  if (!g_atomic_pointer_compare_and_exchange ((gpointer *) & buffer->pool,
-          pool, NULL))
+  if (!g_atomic_pointer_compare_and_exchange (&buffer->pool, pool, NULL))
     return;
 
   pclass = GST_BUFFER_POOL_GET_CLASS (pool);
diff --git a/gst/gstbufferpool.h b/gst/gstbufferpool.h
index 639fd26..aad3b22 100644
--- a/gst/gstbufferpool.h
+++ b/gst/gstbufferpool.h
@@ -24,9 +24,6 @@
 #define __GST_BUFFER_POOL_H__
 
 #include <gst/gstminiobject.h>
-#include <gst/gstatomicqueue.h>
-#include <gst/gstpoll.h>
-#include <gst/gstclock.h>
 #include <gst/gstpad.h>
 #include <gst/gstbuffer.h>
 
@@ -35,13 +32,6 @@
 typedef struct _GstBufferPoolPrivate GstBufferPoolPrivate;
 typedef struct _GstBufferPoolClass GstBufferPoolClass;
 
-/**
- * GST_BUFFER_POOL_TRACE_NAME:
- *
- * The name used for tracing memory allocations.
- */
-#define GST_BUFFER_POOL_TRACE_NAME           "GstBufferPool"
-
 #define GST_TYPE_BUFFER_POOL                 (gst_buffer_pool_get_type())
 #define GST_IS_BUFFER_POOL(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BUFFER_POOL))
 #define GST_IS_BUFFER_POOL_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_BUFFER_POOL))
@@ -51,27 +41,27 @@
 #define GST_BUFFER_POOL_CAST(obj)            ((GstBufferPool *)(obj))
 
 /**
- * GstBufferPoolFlags:
- * @GST_BUFFER_POOL_FLAG_NONE: no flags
- * @GST_BUFFER_POOL_FLAG_KEY_UNIT: buffer is keyframe
- * @GST_BUFFER_POOL_FLAG_DONTWAIT: don't wait for buffer. This makes the
- * acquire_buffer method return GST_FLOW_UNEXPECTED.
- * @GST_BUFFER_POOL_FLAG_DISCONT: buffer is discont
- * @GST_BUFFER_POOL_FLAG_LAST: last flag, subclasses can use private flags
+ * GstBufferPoolAcquireFlags:
+ * @GST_BUFFER_POOL_ACQUIRE_FLAG_NONE: no flags
+ * @GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT: buffer is keyframe
+ * @GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT: don't wait for buffer. This makes the
+ * acquire_buffer method return GST_FLOW_EOS.
+ * @GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT: buffer is discont
+ * @GST_BUFFER_POOL_ACQUIRE_FLAG_LAST: last flag, subclasses can use private flags
  *    starting from this value.
  *
  * Additional flags to control the allocation of a buffer
  */
 typedef enum {
-  GST_BUFFER_POOL_FLAG_NONE     = 0,
-  GST_BUFFER_POOL_FLAG_KEY_UNIT = (1 << 0),
-  GST_BUFFER_POOL_FLAG_DONTWAIT = (1 << 1),
-  GST_BUFFER_POOL_FLAG_DISCONT  = (1 << 2),
-  GST_BUFFER_POOL_FLAG_LAST     = (1 << 16),
-} GstBufferPoolFlags;
+  GST_BUFFER_POOL_ACQUIRE_FLAG_NONE     = 0,
+  GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT = (1 << 0),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT = (1 << 1),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT  = (1 << 2),
+  GST_BUFFER_POOL_ACQUIRE_FLAG_LAST     = (1 << 16),
+} GstBufferPoolAcquireFlags;
 
 /**
- * GstBufferPoolParams:
+ * GstBufferPoolAcquireParams:
  * @format: the format of @start and @stop
  * @start: the start position
  * @stop: the stop position
@@ -84,12 +74,15 @@
  * implementations can use this extra information to decide what buffer to
  * return.
  */
-typedef struct _GstBufferPoolParams {
-  GstFormat          format;
-  gint64             start;
-  gint64             stop;
-  GstBufferPoolFlags flags;
-} GstBufferPoolParams;
+typedef struct _GstBufferPoolAcquireParams {
+  GstFormat                 format;
+  gint64                    start;
+  gint64                    stop;
+  GstBufferPoolAcquireFlags flags;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+} GstBufferPoolAcquireParams;
 
 /**
  * GST_BUFFER_POOL_IS_FLUSHING:
@@ -110,17 +103,10 @@
 struct _GstBufferPool {
   GstObject            object;
 
+  /*< protected >*/
+  gint                 flushing;
+
   /*< private >*/
-  gboolean             active;
-  gboolean             flushing;
-  gboolean             started;
-  gint                 outstanding;
-  GstAtomicQueue      *queue;
-  GstPoll             *poll;
-
-  gboolean             configured;
-  GstStructure        *config;
-
   GstBufferPoolPrivate *priv;
 
   gpointer _gst_reserved[GST_PADDING];
@@ -141,10 +127,13 @@
  *        will take a buffer from the queue and optionally wait for a buffer to
  *        be released when there are no buffers available.
  * @alloc_buffer: allocate a buffer. the default implementation allocates
- *        buffers from the default memory allocator and with the configured
- *        size, prefix and alignment.
+ *        buffers from the configured memory allocator and with the configured
+ *        parameters. All metadata that is present on the allocated buffer will
+ *        be marked as #GST_META_FLAG_POOLED and will not be removed from the
+ *        buffer in @reset_buffer.
  * @reset_buffer: reset the buffer to its state when it was freshly allocated.
- *        The default implementation will clear the flags and timestamps.
+ *        The default implementation will clear the flags, timestamps and
+ *        will remove the metadata without the #GST_META_FLAG_POOLED flag.
  * @release_buffer: release a buffer back in the pool. The default
  *        implementation will put the buffer back in the queue and notify any
  *        blocking acquire_buffer calls.
@@ -163,11 +152,11 @@
   gboolean       (*stop)           (GstBufferPool *pool);
 
   GstFlowReturn  (*acquire_buffer) (GstBufferPool *pool, GstBuffer **buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   GstFlowReturn  (*alloc_buffer)   (GstBufferPool *pool, GstBuffer **buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   void           (*reset_buffer)   (GstBufferPool *pool, GstBuffer *buffer,
-                                    GstBufferPoolParams *params);
+                                    GstBufferPoolAcquireParams *params);
   void           (*release_buffer) (GstBufferPool *pool, GstBuffer *buffer);
   void           (*free_buffer)    (GstBufferPool *pool, GstBuffer *buffer);
 
@@ -190,13 +179,16 @@
 const gchar **   gst_buffer_pool_get_options     (GstBufferPool *pool);
 gboolean         gst_buffer_pool_has_option      (GstBufferPool *pool, const gchar *option);
 
+
 /* helpers for configuring the config structure */
-void             gst_buffer_pool_config_set      (GstStructure *config, const GstCaps *caps,
-                                                  guint size, guint min_buffers, guint max_buffers,
-                                                  guint prefix, guint align);
-gboolean         gst_buffer_pool_config_get      (GstStructure *config, const GstCaps **caps,
-                                                  guint *size, guint *min_buffers, guint *max_buffers,
-                                                  guint *prefix, guint *align);
+void             gst_buffer_pool_config_set_params    (GstStructure *config, GstCaps *caps,
+                                                       guint size, guint min_buffers, guint max_buffers);
+gboolean         gst_buffer_pool_config_get_params    (GstStructure *config, GstCaps **caps,
+                                                       guint *size, guint *min_buffers, guint *max_buffers);
+void             gst_buffer_pool_config_set_allocator (GstStructure *config, GstAllocator *allocator,
+                                                       const GstAllocationParams *params);
+gboolean         gst_buffer_pool_config_get_allocator (GstStructure *config, GstAllocator **allocator,
+                                                       GstAllocationParams *params);
 
 /* options */
 guint            gst_buffer_pool_config_n_options   (GstStructure *config);
@@ -206,7 +198,7 @@
 
 /* buffer management */
 GstFlowReturn    gst_buffer_pool_acquire_buffer  (GstBufferPool *pool, GstBuffer **buffer,
-                                                  GstBufferPoolParams *params);
+                                                  GstBufferPoolAcquireParams *params);
 void             gst_buffer_pool_release_buffer  (GstBufferPool *pool, GstBuffer *buffer);
 
 G_END_DECLS
diff --git a/gst/gstbus.c b/gst/gstbus.c
index e3a15f7..5e663ca 100644
--- a/gst/gstbus.c
+++ b/gst/gstbus.c
@@ -64,7 +64,7 @@
  * Note that a #GstPipeline will set its bus into flushing state when changing
  * from READY to NULL state.
  *
- * Last reviewed on 2006-03-12 (0.10.5)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 #include "gst_private.h"
@@ -74,10 +74,12 @@
 #endif
 #include <sys/types.h>
 
+#include "gstatomicqueue.h"
 #include "gstinfo.h"
 #include "gstpoll.h"
 
 #include "gstbus.h"
+#include "glib-compat-private.h"
 
 #define GST_CAT_DEFAULT GST_CAT_BUS
 /* bus signals */
@@ -99,11 +101,19 @@
 
 static void gst_bus_dispose (GObject * object);
 
-static GstObjectClass *parent_class = NULL;
 static guint gst_bus_signals[LAST_SIGNAL] = { 0 };
 
 struct _GstBusPrivate
 {
+  GstAtomicQueue *queue;
+  GMutex queue_lock;
+
+  GstBusSyncHandler sync_handler;
+  gpointer sync_handler_data;
+
+  guint signal_watch_id;
+  guint num_signal_watchers;
+
   guint num_sync_message_emitters;
   GSource *watch_id;
 
@@ -112,6 +122,7 @@
   GPollFD pollfd;
 };
 
+#define gst_bus_parent_class parent_class
 G_DEFINE_TYPE (GstBus, gst_bus, GST_TYPE_OBJECT);
 
 static void
@@ -146,8 +157,6 @@
 {
   GObjectClass *gobject_class = (GObjectClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
-
   gobject_class->dispose = gst_bus_dispose;
   gobject_class->set_property = gst_bus_set_property;
   gobject_class->constructed = gst_bus_constructed;
@@ -188,7 +197,7 @@
       g_signal_new ("sync-message", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
       G_STRUCT_OFFSET (GstBusClass, sync_message), NULL, NULL,
-      g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, GST_TYPE_MESSAGE);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_MESSAGE);
 
   /**
    * GstBus::message:
@@ -203,7 +212,7 @@
       g_signal_new ("message", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
       G_STRUCT_OFFSET (GstBusClass, message), NULL, NULL,
-      g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, GST_TYPE_MESSAGE);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_MESSAGE);
 
   g_type_class_add_private (klass, sizeof (GstBusPrivate));
 }
@@ -211,11 +220,10 @@
 static void
 gst_bus_init (GstBus * bus)
 {
-  bus->queue = gst_atomic_queue_new (32);
-  bus->queue_lock = g_mutex_new ();
-
   bus->priv = G_TYPE_INSTANCE_GET_PRIVATE (bus, GST_TYPE_BUS, GstBusPrivate);
   bus->priv->enable_async = DEFAULT_ENABLE_ASYNC;
+  g_mutex_init (&bus->priv->queue_lock);
+  bus->priv->queue = gst_atomic_queue_new (32);
 
   GST_DEBUG_OBJECT (bus, "created");
 }
@@ -225,20 +233,19 @@
 {
   GstBus *bus = GST_BUS (object);
 
-  if (bus->queue) {
+  if (bus->priv->queue) {
     GstMessage *message;
 
-    g_mutex_lock (bus->queue_lock);
+    g_mutex_lock (&bus->priv->queue_lock);
     do {
-      message = gst_atomic_queue_pop (bus->queue);
+      message = gst_atomic_queue_pop (bus->priv->queue);
       if (message)
         gst_message_unref (message);
     } while (message != NULL);
-    gst_atomic_queue_unref (bus->queue);
-    bus->queue = NULL;
-    g_mutex_unlock (bus->queue_lock);
-    g_mutex_free (bus->queue_lock);
-    bus->queue_lock = NULL;
+    gst_atomic_queue_unref (bus->priv->queue);
+    bus->priv->queue = NULL;
+    g_mutex_unlock (&bus->priv->queue_lock);
+    g_mutex_clear (&bus->priv->queue_lock);
 
     if (bus->priv->poll)
       gst_poll_free (bus->priv->poll);
@@ -297,8 +304,8 @@
   if (GST_OBJECT_FLAG_IS_SET (bus, GST_BUS_FLUSHING))
     goto is_flushing;
 
-  handler = bus->sync_handler;
-  handler_data = bus->sync_handler_data;
+  handler = bus->priv->sync_handler;
+  handler_data = bus->priv->sync_handler_data;
   emit_sync_message = bus->priv->num_sync_message_emitters > 0;
   GST_OBJECT_UNLOCK (bus);
 
@@ -326,7 +333,7 @@
     case GST_BUS_PASS:
       /* pass the message to the async queue, refcount passed in the queue */
       GST_DEBUG_OBJECT (bus, "[msg %p] pushing on async queue", message);
-      gst_atomic_queue_push (bus->queue, message);
+      gst_atomic_queue_push (bus->priv->queue, message);
       gst_poll_write_control (bus->priv->poll);
       GST_DEBUG_OBJECT (bus, "[msg %p] pushed on async queue", message);
 
@@ -335,11 +342,11 @@
     {
       /* async delivery, we need a mutex and a cond to block
        * on */
-      GMutex *lock = g_mutex_new ();
-      GCond *cond = g_cond_new ();
+      GCond *cond = GST_MESSAGE_GET_COND (message);
+      GMutex *lock = GST_MESSAGE_GET_LOCK (message);
 
-      GST_MESSAGE_COND (message) = cond;
-      GST_MESSAGE_GET_LOCK (message) = lock;
+      g_cond_init (cond);
+      g_mutex_init (lock);
 
       GST_DEBUG_OBJECT (bus, "[msg %p] waiting for async delivery", message);
 
@@ -348,7 +355,7 @@
        * the cond will be signalled and we can continue */
       g_mutex_lock (lock);
 
-      gst_atomic_queue_push (bus->queue, message);
+      gst_atomic_queue_push (bus->priv->queue, message);
       gst_poll_write_control (bus->priv->poll);
 
       /* now block till the message is freed */
@@ -357,8 +364,8 @@
 
       GST_DEBUG_OBJECT (bus, "[msg %p] delivered asynchronously", message);
 
-      g_mutex_free (lock);
-      g_cond_free (cond);
+      g_mutex_clear (lock);
+      g_cond_clear (cond);
       break;
     }
     default:
@@ -398,7 +405,7 @@
   g_return_val_if_fail (GST_IS_BUS (bus), FALSE);
 
   /* see if there is a message on the bus */
-  result = gst_atomic_queue_length (bus->queue) != 0;
+  result = gst_atomic_queue_length (bus->priv->queue) != 0;
 
   return result;
 }
@@ -472,19 +479,21 @@
   g_return_val_if_fail (types != 0, NULL);
   g_return_val_if_fail (timeout == 0 || bus->priv->poll != NULL, NULL);
 
-  g_mutex_lock (bus->queue_lock);
+  g_mutex_lock (&bus->priv->queue_lock);
 
   while (TRUE) {
     gint ret;
 
     GST_LOG_OBJECT (bus, "have %d messages",
-        gst_atomic_queue_length (bus->queue));
+        gst_atomic_queue_length (bus->priv->queue));
 
-    while ((message = gst_atomic_queue_pop (bus->queue))) {
+    while ((message = gst_atomic_queue_pop (bus->priv->queue))) {
       if (bus->priv->poll)
         gst_poll_read_control (bus->priv->poll);
-      GST_DEBUG_OBJECT (bus, "got message %p, %s, type mask is %u",
-          message, GST_MESSAGE_TYPE_NAME (message), (guint) types);
+
+      GST_DEBUG_OBJECT (bus, "got message %p, %s from %s, type mask is %u",
+          message, GST_MESSAGE_TYPE_NAME (message),
+          GST_MESSAGE_SRC_NAME (message), (guint) types);
       if ((GST_MESSAGE_TYPE (message) & types) != 0) {
         /* exit the loop, we have a message */
         goto beach;
@@ -515,9 +524,9 @@
 
     /* only here in timeout case */
     g_assert (bus->priv->poll);
-    g_mutex_unlock (bus->queue_lock);
+    g_mutex_unlock (&bus->priv->queue_lock);
     ret = gst_poll_wait (bus->priv->poll, timeout - elapsed);
-    g_mutex_lock (bus->queue_lock);
+    g_mutex_lock (&bus->priv->queue_lock);
 
     if (ret == 0) {
       GST_INFO_OBJECT (bus, "timed out, breaking loop");
@@ -529,7 +538,7 @@
 
 beach:
 
-  g_mutex_unlock (bus->queue_lock);
+  g_mutex_unlock (&bus->priv->queue_lock);
 
   return message;
 }
@@ -631,11 +640,11 @@
 
   g_return_val_if_fail (GST_IS_BUS (bus), NULL);
 
-  g_mutex_lock (bus->queue_lock);
-  message = gst_atomic_queue_peek (bus->queue);
+  g_mutex_lock (&bus->priv->queue_lock);
+  message = gst_atomic_queue_peek (bus->priv->queue);
   if (message)
     gst_message_ref (message);
-  g_mutex_unlock (bus->queue_lock);
+  g_mutex_unlock (&bus->priv->queue_lock);
 
   GST_DEBUG_OBJECT (bus, "peek on bus, got message %p", message);
 
@@ -667,11 +676,11 @@
 
   /* Assert if the user attempts to replace an existing sync_handler,
    * other than to clear it */
-  if (func != NULL && bus->sync_handler != NULL)
+  if (func != NULL && bus->priv->sync_handler != NULL)
     goto no_replace;
 
-  bus->sync_handler = func;
-  bus->sync_handler_data = data;
+  bus->priv->sync_handler = func;
+  bus->priv->sync_handler_data = data;
   GST_OBJECT_UNLOCK (bus);
 
   return;
@@ -733,7 +742,8 @@
   if (!handler)
     goto no_handler;
 
-  GST_DEBUG_OBJECT (bus, "source %p calling dispatch with %p", source, message);
+  GST_DEBUG_OBJECT (bus, "source %p calling dispatch with %" GST_PTR_FORMAT,
+      source, message);
 
   keep = handler (bus, message, user_data);
   gst_message_unref (message);
@@ -797,6 +807,9 @@
 
   source = (GstBusSource *) g_source_new (&gst_bus_source_funcs,
       sizeof (GstBusSource));
+
+  g_source_set_name ((GSource *) source, "GStreamer message bus watch");
+
   source->bus = gst_object_ref (bus);
   g_source_add_poll ((GSource *) source, &bus->priv->pollfd);
 
@@ -862,7 +875,7 @@
  * from @func.
  *
  * Returns: The event source id.
- *
+ * Rename to: gst_bus_add_watch
  * MT safe.
  */
 guint
@@ -881,7 +894,7 @@
 }
 
 /**
- * gst_bus_add_watch:
+ * gst_bus_add_watch: (skip)
  * @bus: a #GstBus to create the watch for
  * @func: A function to call when a message is received.
  * @user_data: user data passed to @func.
@@ -978,7 +991,7 @@
  * @bus: a #GstBus
  * @events: a mask of #GstMessageType, representing the set of message types to
  * poll for.
- * @timeout: the poll timeout, as a #GstClockTimeDiff, or -1 to poll
+ * @timeout: the poll timeout, as a #GstClockTime, or #GST_CLOCK_TIME_NONE to poll
  * indefinitely.
  *
  * Poll the bus for messages. Will block while waiting for messages to come.
@@ -1018,7 +1031,7 @@
  *     unreffed with gst_message_unref() after usage.
  */
 GstMessage *
-gst_bus_poll (GstBus * bus, GstMessageType events, GstClockTimeDiff timeout)
+gst_bus_poll (GstBus * bus, GstMessageType events, GstClockTime timeout)
 {
   GstBusPollData *poll_data;
   GstMessage *ret;
@@ -1030,7 +1043,7 @@
   poll_data->events = events;
   poll_data->message = NULL;
 
-  if (timeout >= 0)
+  if (timeout != GST_CLOCK_TIME_NONE)
     poll_data->timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
         timeout / GST_MSECOND, (GSourceFunc) poll_timeout, poll_data,
         (GDestroyNotify) poll_destroy_timeout);
@@ -1169,7 +1182,7 @@
 gst_bus_disable_sync_message_emission (GstBus * bus)
 {
   g_return_if_fail (GST_IS_BUS (bus));
-  g_return_if_fail (bus->num_signal_watchers == 0);
+  g_return_if_fail (bus->priv->num_signal_watchers == 0);
 
   GST_OBJECT_LOCK (bus);
   bus->priv->num_sync_message_emitters--;
@@ -1194,8 +1207,8 @@
  * responsible for calling gst_bus_remove_signal_watch() as many times as this
  * function is called.
  *
- * There can only be a single bus watch per bus, you most remove all signal watch
- * before you can set another type of watch.
+ * There can only be a single bus watch per bus, you must remove any signal
+ * watch before you can set another type of watch.
  *
  * MT safe.
  */
@@ -1207,22 +1220,22 @@
   /* I know the callees don't take this lock, so go ahead and abuse it */
   GST_OBJECT_LOCK (bus);
 
-  if (bus->num_signal_watchers > 0)
+  if (bus->priv->num_signal_watchers > 0)
     goto done;
 
   /* this should not fail because the counter above takes care of it */
-  g_assert (bus->signal_watch_id == 0);
+  g_assert (bus->priv->signal_watch_id == 0);
 
-  bus->signal_watch_id =
+  bus->priv->signal_watch_id =
       gst_bus_add_watch_full_unlocked (bus, priority, gst_bus_async_signal_func,
       NULL, NULL);
 
-  if (G_UNLIKELY (bus->signal_watch_id == 0))
+  if (G_UNLIKELY (bus->priv->signal_watch_id == 0))
     goto add_failed;
 
 done:
 
-  bus->num_signal_watchers++;
+  bus->priv->num_signal_watchers++;
 
   GST_OBJECT_UNLOCK (bus);
   return;
@@ -1279,16 +1292,16 @@
   /* I know the callees don't take this lock, so go ahead and abuse it */
   GST_OBJECT_LOCK (bus);
 
-  if (bus->num_signal_watchers == 0)
+  if (bus->priv->num_signal_watchers == 0)
     goto error;
 
-  bus->num_signal_watchers--;
+  bus->priv->num_signal_watchers--;
 
-  if (bus->num_signal_watchers > 0)
+  if (bus->priv->num_signal_watchers > 0)
     goto done;
 
-  id = bus->signal_watch_id;
-  bus->signal_watch_id = 0;
+  id = bus->priv->signal_watch_id;
+  bus->priv->signal_watch_id = 0;
 
   GST_DEBUG_OBJECT (bus, "removing signal watch %u", id);
 
diff --git a/gst/gstbus.h b/gst/gstbus.h
index 732591f..2dbf0ce 100644
--- a/gst/gstbus.h
+++ b/gst/gstbus.h
@@ -28,7 +28,6 @@
 
 #include <gst/gstmessage.h>
 #include <gst/gstclock.h>
-#include <gst/gstatomicqueue.h>
 
 G_BEGIN_DECLS
 
@@ -116,18 +115,9 @@
   GstObject         object;
 
   /*< private >*/
-  GstAtomicQueue   *queue;
-  GMutex           *queue_lock;
-
-  GstBusSyncHandler sync_handler;
-  gpointer          sync_handler_data;
-
-  guint             signal_watch_id;
-  guint             num_signal_watchers;
-
-  /*< private >*/
   GstBusPrivate    *priv;
-  gpointer _gst_reserved[GST_PADDING - 1];
+
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstBusClass
@@ -172,7 +162,7 @@
 
 /* polling the bus */
 GstMessage*             gst_bus_poll                    (GstBus *bus, GstMessageType events,
-                                                         GstClockTimeDiff timeout);
+                                                         GstClockTime timeout);
 
 /* signal based dispatching helper functions. */
 gboolean                gst_bus_async_signal_func       (GstBus *bus, GstMessage *message,
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 7d6acfe..57f8ae6 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -20,9 +20,9 @@
 /**
  * SECTION:gstcaps
  * @short_description: Structure describing sets of media formats
- * @see_also: #GstStructure
+ * @see_also: #GstStructure, #GstMiniObject
  *
- * Caps (capabilities) are lighweight refcounted objects describing media types.
+ * Caps (capabilities) are lightweight refcounted objects describing media types.
  * They are composed of an array of #GstStructure.
  *
  * Caps are exposed on #GstPadTemplate to describe all possible types a
@@ -33,10 +33,6 @@
  * function. This function describes the possible types that the pad can
  * handle or produce at runtime.
  *
- * Caps are also attached to buffers to describe to content of the data
- * pointed to by the buffer with gst_buffer_set_caps(). Caps attached to
- * a #GstBuffer allow for format negotiation upstream and downstream.
- *
  * A #GstCaps can be constructed with the following code fragment:
  *
  * <example>
@@ -44,7 +40,7 @@
  *  <programlisting>
  *  GstCaps *caps;
  *  caps = gst_caps_new_simple ("video/x-raw",
- *       "format", G_TYPE_STRING, "I420"),
+ *       "format", G_TYPE_STRING, "I420",
  *       "framerate", GST_TYPE_FRACTION, 25, 1,
  *       "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
  *       "width", G_TYPE_INT, 320,
@@ -54,13 +50,13 @@
  * </example>
  *
  * A #GstCaps is fixed when it has no properties with ranges or lists. Use
- * gst_caps_is_fixed() to test for fixed caps. Only fixed caps can be
- * set on a #GstPad or #GstBuffer.
+ * gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a
+ * caps event to notify downstream elements of the current media type.
  *
  * Various methods exist to work with the media types such as subtracting
  * or intersecting.
  *
- * Last reviewed on 2007-02-13 (0.10.10)
+ * Last reviewed on 2011-03-28 (0.11.3)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -75,8 +71,14 @@
 
 #define DEBUG_REFCOUNT
 
+typedef struct _GstCapsImpl
+{
+  GstCaps caps;
 
-#define GST_CAPS_ARRAY(c) ((GPtrArray *)((c)->priv))
+  GPtrArray *array;
+} GstCapsImpl;
+
+#define GST_CAPS_ARRAY(c) (((GstCapsImpl *)(c))->array)
 
 #define GST_CAPS_LEN(c)   (GST_CAPS_ARRAY(c)->len)
 
@@ -85,7 +87,7 @@
 
 /* same as gst_caps_is_any () */
 #define CAPS_IS_ANY(caps)				\
-  (GST_CAPS_FLAGS(caps) & GST_CAPS_FLAGS_ANY)
+  (GST_CAPS_FLAGS(caps) & GST_CAPS_FLAG_ANY)
 
 /* same as gst_caps_is_empty () */
 #define CAPS_IS_EMPTY(caps)				\
@@ -114,6 +116,8 @@
     const gchar * string);
 
 GType _gst_caps_type = 0;
+GstCaps *_gst_caps_any;
+GstCaps *_gst_caps_none;
 
 GST_DEFINE_MINI_OBJECT_TYPE (GstCaps, gst_caps);
 
@@ -122,6 +126,9 @@
 {
   _gst_caps_type = gst_caps_get_type ();
 
+  _gst_caps_any = gst_caps_new_any ();
+  _gst_caps_none = gst_caps_new_empty ();
+
   g_value_register_transform_func (_gst_caps_type,
       G_TYPE_STRING, gst_caps_transform_to_string);
 }
@@ -139,6 +146,9 @@
   GST_CAPS_FLAGS (newcaps) = GST_CAPS_FLAGS (caps);
   n = GST_CAPS_LEN (caps);
 
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, caps, "doing copy %p -> %p",
+      caps, newcaps);
+
   for (i = 0; i < n; i++) {
     structure = gst_caps_get_structure_unchecked (caps, i);
     gst_caps_append_structure (newcaps, gst_structure_copy (structure));
@@ -183,10 +193,10 @@
 
   /* the 32 has been determined by logging caps sizes in _gst_caps_free
    * but g_ptr_array uses 16 anyway if it expands once, so this does not help
-   * in practise
+   * in practice
    * GST_CAPS_ARRAY (caps) = g_ptr_array_sized_new (32);
    */
-  caps->priv = g_ptr_array_new ();
+  GST_CAPS_ARRAY (caps) = g_ptr_array_new ();
 }
 
 /**
@@ -194,6 +204,7 @@
  *
  * Creates a new #GstCaps that is empty.  That is, the returned
  * #GstCaps contains no media formats.
+ * The #GstCaps is guaranteed to be writable.
  * Caller is responsible for unreffing the returned caps.
  *
  * Returns: (transfer full): the new #GstCaps
@@ -203,9 +214,9 @@
 {
   GstCaps *caps;
 
-  caps = g_slice_new (GstCaps);
+  caps = (GstCaps *) g_slice_new (GstCapsImpl);
 
-  gst_caps_init (caps, sizeof (GstCaps));
+  gst_caps_init (caps, sizeof (GstCapsImpl));
 
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_CAPS, "created caps %p", caps);
@@ -227,7 +238,31 @@
 {
   GstCaps *caps = gst_caps_new_empty ();
 
-  GST_CAPS_FLAG_SET (caps, GST_CAPS_FLAGS_ANY);
+  GST_CAPS_FLAG_SET (caps, GST_CAPS_FLAG_ANY);
+
+  return caps;
+}
+
+/**
+ * gst_caps_new_empty_simple:
+ * @media_type: the media type of the structure
+ *
+ * Creates a new #GstCaps that contains one #GstStructure with name
+ * @media_type.
+ * Caller is responsible for unreffing the returned caps.
+ *
+ * Returns: (transfer full): the new #GstCaps
+ */
+GstCaps *
+gst_caps_new_empty_simple (const char *media_type)
+{
+  GstCaps *caps;
+  GstStructure *structure;
+
+  caps = gst_caps_new_empty ();
+  structure = gst_structure_new_empty (media_type);
+  if (structure)
+    gst_caps_append_structure_unchecked (caps, structure);
 
   return caps;
 }
@@ -316,17 +351,7 @@
   return caps;
 }
 
-GType
-gst_static_caps_get_type (void)
-{
-  static GType staticcaps_type = 0;
-
-  if (G_UNLIKELY (staticcaps_type == 0)) {
-    staticcaps_type = g_pointer_type_register_static ("GstStaticCaps");
-  }
-  return staticcaps_type;
-}
-
+G_DEFINE_POINTER_TYPE (GstStaticCaps, gst_static_caps);
 
 /**
  * gst_static_caps_get:
@@ -341,20 +366,19 @@
 GstCaps *
 gst_static_caps_get (GstStaticCaps * static_caps)
 {
-  GstCaps *caps;
+  GstCaps **caps;
 
   g_return_val_if_fail (static_caps != NULL, NULL);
 
-  caps = (GstCaps *) static_caps;
+  caps = &static_caps->caps;
 
   /* refcount is 0 when we need to convert */
-  if (G_UNLIKELY (GST_CAPS_REFCOUNT_VALUE (caps) == 0)) {
+  if (G_UNLIKELY (*caps == NULL)) {
     const char *string;
-    GstCaps temp;
 
     G_LOCK (static_caps_lock);
     /* check if other thread already updated */
-    if (G_UNLIKELY (GST_CAPS_REFCOUNT_VALUE (caps) > 0))
+    if (G_UNLIKELY (*caps != NULL))
       goto done;
 
     string = static_caps->string;
@@ -362,31 +386,22 @@
     if (G_UNLIKELY (string == NULL))
       goto no_string;
 
-    GST_CAT_TRACE (GST_CAT_CAPS, "creating %p", static_caps);
-
-    /* we construct the caps on the stack, then copy over the struct into our
-     * real caps, refcount last. We do this because we must leave the refcount
-     * of the result caps to 0 so that other threads don't run away with the
-     * caps while we are constructing it. */
-    gst_caps_init (&temp, sizeof (GstCaps));
+    *caps = gst_caps_from_string (string);
 
     /* convert to string */
-    if (G_UNLIKELY (!gst_caps_from_string_inplace (&temp, string)))
+    if (G_UNLIKELY (*caps == NULL))
       g_critical ("Could not convert static caps \"%s\"", string);
 
-    gst_caps_init (caps, sizeof (GstCaps));
-    /* now copy stuff over to the real caps. */
-    GST_CAPS_FLAGS (caps) = GST_CAPS_FLAGS (&temp);
-    caps->priv = GST_CAPS_ARRAY (&temp);
-
-    GST_CAT_TRACE (GST_CAT_CAPS, "created %p", static_caps);
+    GST_CAT_TRACE (GST_CAT_CAPS, "created %p from string %s", static_caps,
+        string);
   done:
     G_UNLOCK (static_caps_lock);
   }
   /* ref the caps, makes it not writable */
-  gst_caps_ref (caps);
+  if (G_LIKELY (*caps != NULL))
+    gst_caps_ref (*caps);
 
-  return caps;
+  return *caps;
 
   /* ERRORS */
 no_string:
@@ -399,30 +414,16 @@
 
 /**
  * gst_static_caps_cleanup:
- * @static_caps: the #GstStaticCaps to convert
+ * @static_caps: the #GstStaticCaps to clean
  *
- * Clean up the caps contained in @static_caps when the refcount is 0.
+ * Clean up the cached caps contained in @static_caps.
  */
 void
 gst_static_caps_cleanup (GstStaticCaps * static_caps)
 {
-  GstCaps *caps = (GstCaps *) static_caps;
-
-  /* FIXME: this is not threadsafe */
-  if (GST_CAPS_REFCOUNT_VALUE (caps) == 1) {
-    GstStructure *structure;
-    guint i, clen;
-
-    clen = GST_CAPS_LEN (caps);
-
-    for (i = 0; i < clen; i++) {
-      structure = (GstStructure *) gst_caps_get_structure (caps, i);
-      gst_structure_set_parent_refcount (structure, NULL);
-      gst_structure_free (structure);
-    }
-    g_ptr_array_free (GST_CAPS_ARRAY (caps), TRUE);
-    GST_CAPS_REFCOUNT (caps) = 0;
-  }
+  G_LOCK (static_caps_lock);
+  gst_caps_replace (&static_caps->caps, NULL);
+  G_UNLOCK (static_caps_lock);
 }
 
 /* manipulation */
@@ -430,7 +431,7 @@
 static GstStructure *
 gst_caps_remove_and_get_structure (GstCaps * caps, guint idx)
 {
-  /* don't use index_fast, gst_caps_do_simplify relies on the order */
+  /* don't use index_fast, gst_caps_simplify relies on the order */
   GstStructure *s = g_ptr_array_remove_index (GST_CAPS_ARRAY (caps), idx);
 
   gst_structure_set_parent_refcount (s, NULL);
@@ -442,7 +443,7 @@
  * @caps: the #GstCaps to retrieve from
  * @index: Index of the structure to retrieve
  *
- * Retrieves the stucture with the given index from the list of structures
+ * Retrieves the structure with the given index from the list of structures
  * contained in @caps. The caller becomes the owner of the returned structure.
  *
  * Returns: (transfer full): a pointer to the #GstStructure corresponding
@@ -480,63 +481,61 @@
   g_return_if_fail (GST_IS_CAPS (caps1));
   g_return_if_fail (GST_IS_CAPS (caps2));
   g_return_if_fail (IS_WRITABLE (caps1));
-  g_return_if_fail (IS_WRITABLE (caps2));
 
   if (G_UNLIKELY (CAPS_IS_ANY (caps1) || CAPS_IS_ANY (caps2))) {
-    /* FIXME: this leaks */
-    GST_CAPS_FLAGS (caps1) |= GST_CAPS_FLAGS_ANY;
-    for (i = GST_CAPS_LEN (caps2) - 1; i >= 0; i--) {
-      structure = gst_caps_remove_and_get_structure (caps2, i);
-      gst_structure_free (structure);
-    }
+    GST_CAPS_FLAGS (caps1) |= GST_CAPS_FLAG_ANY;
+    gst_caps_unref (caps2);
   } else {
+    caps2 = gst_caps_make_writable (caps2);
+
     for (i = GST_CAPS_LEN (caps2); i; i--) {
       structure = gst_caps_remove_and_get_structure (caps2, 0);
       gst_caps_append_structure_unchecked (caps1, structure);
     }
+    gst_caps_unref (caps2);     /* guaranteed to free it */
   }
-  gst_caps_unref (caps2);       /* guaranteed to free it */
 }
 
 /**
  * gst_caps_merge:
- * @caps1: the #GstCaps that will take the new entries
+ * @caps1: (transfer full): the #GstCaps that will take the new entries
  * @caps2: (transfer full): the #GstCaps to merge in
  *
  * Appends the structures contained in @caps2 to @caps1 if they are not yet
  * expressed by @caps1. The structures in @caps2 are not copied -- they are
- * transferred to @caps1, and then @caps2 is freed.
+ * transferred to a writable copy of @caps1, and then @caps2 is freed.
  * If either caps is ANY, the resulting caps will be ANY.
  *
+ * Returns: (transfer full): the merged caps.
+ *
  * Since: 0.10.10
  */
-void
+GstCaps *
 gst_caps_merge (GstCaps * caps1, GstCaps * caps2)
 {
   GstStructure *structure;
   int i;
+  GstCaps *result;
 
-  g_return_if_fail (GST_IS_CAPS (caps1));
-  g_return_if_fail (GST_IS_CAPS (caps2));
-  g_return_if_fail (IS_WRITABLE (caps1));
-  g_return_if_fail (IS_WRITABLE (caps2));
+  g_return_val_if_fail (GST_IS_CAPS (caps1), NULL);
+  g_return_val_if_fail (GST_IS_CAPS (caps2), NULL);
 
   if (G_UNLIKELY (CAPS_IS_ANY (caps1))) {
-    for (i = GST_CAPS_LEN (caps2) - 1; i >= 0; i--) {
-      structure = gst_caps_remove_and_get_structure (caps2, i);
-      gst_structure_free (structure);
-    }
+    gst_caps_unref (caps2);
+    result = caps1;
   } else if (G_UNLIKELY (CAPS_IS_ANY (caps2))) {
-    GST_CAPS_FLAGS (caps1) |= GST_CAPS_FLAGS_ANY;
-    for (i = GST_CAPS_LEN (caps1) - 1; i >= 0; i--) {
-      structure = gst_caps_remove_and_get_structure (caps1, i);
-      gst_structure_free (structure);
-    }
+    gst_caps_unref (caps1);
+    result = caps2;
   } else {
+    caps2 = gst_caps_make_writable (caps2);
+
     for (i = GST_CAPS_LEN (caps2); i; i--) {
       structure = gst_caps_remove_and_get_structure (caps2, 0);
-      gst_caps_merge_structure (caps1, structure);
+      caps1 = gst_caps_merge_structure (caps1, structure);
     }
+    gst_caps_unref (caps2);
+    result = caps1;
+
     /* this is too naive
        GstCaps *com = gst_caps_intersect (caps1, caps2);
        GstCaps *add = gst_caps_subtract (caps2, com);
@@ -547,7 +546,8 @@
        gst_caps_unref (com);
      */
   }
-  gst_caps_unref (caps2);       /* guaranteed to free it */
+
+  return result;
 }
 
 /**
@@ -592,38 +592,41 @@
 
 /**
  * gst_caps_merge_structure:
- * @caps: the #GstCaps that will the new structure
+ * @caps: (transfer full): the #GstCaps to merge into
  * @structure: (transfer full): the #GstStructure to merge
  *
- * Appends @structure to @caps if its not already expressed by @caps.  The
- * structure is not copied; @caps becomes the owner of @structure.
+ * Appends @structure to @caps if its not already expressed by @caps.
+ *
+ * Returns: (transfer full): the merged caps.
  */
-void
+GstCaps *
 gst_caps_merge_structure (GstCaps * caps, GstStructure * structure)
 {
-  g_return_if_fail (GST_IS_CAPS (caps));
-  g_return_if_fail (IS_WRITABLE (caps));
+  GstStructure *structure1;
+  int i;
+  gboolean unique = TRUE;
 
-  if (G_LIKELY (structure)) {
-    GstStructure *structure1;
-    int i;
-    gboolean unique = TRUE;
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
-    /* check each structure */
-    for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) {
-      structure1 = gst_caps_get_structure_unchecked (caps, i);
-      /* if structure is a subset of structure1, then skip it */
-      if (gst_structure_is_subset (structure, structure1)) {
-        unique = FALSE;
-        break;
-      }
-    }
-    if (unique) {
-      gst_caps_append_structure_unchecked (caps, structure);
-    } else {
-      gst_structure_free (structure);
+  if (G_UNLIKELY (structure == NULL))
+    return caps;
+
+  /* check each structure */
+  for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) {
+    structure1 = gst_caps_get_structure_unchecked (caps, i);
+    /* if structure is a subset of structure1, then skip it */
+    if (gst_structure_is_subset (structure, structure1)) {
+      unique = FALSE;
+      break;
     }
   }
+  if (unique) {
+    caps = gst_caps_make_writable (caps);
+    gst_caps_append_structure_unchecked (caps, structure);
+  } else {
+    gst_structure_free (structure);
+  }
+  return caps;
 }
 
 /**
@@ -706,23 +709,29 @@
 
 /**
  * gst_caps_truncate:
- * @caps: the #GstCaps to truncate
+ * @caps: (transfer full): the #GstCaps to truncate
  *
- * Destructively discard all but the first structure from @caps. Useful when
- * fixating. @caps must be writable.
+ * Discard all but the first structure from @caps. Useful when
+ * fixating.
+ *
+ * Returns: (transfer full): truncated caps
  */
-void
+GstCaps *
 gst_caps_truncate (GstCaps * caps)
 {
   gint i;
 
-  g_return_if_fail (GST_IS_CAPS (caps));
-  g_return_if_fail (IS_WRITABLE (caps));
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
   i = GST_CAPS_LEN (caps) - 1;
+  if (i == 0)
+    return caps;
 
+  caps = gst_caps_make_writable (caps);
   while (i > 0)
     gst_caps_remove_structure (caps, i--);
+
+  return caps;
 }
 
 /**
@@ -781,10 +790,6 @@
 
     type = va_arg (varargs, GType);
 
-    if (G_UNLIKELY (type == G_TYPE_DATE)) {
-      g_warning ("Don't use G_TYPE_DATE, use GST_TYPE_DATE instead\n");
-      type = GST_TYPE_DATE;
-    }
     G_VALUE_COLLECT_INIT (&value, type, varargs, 0, &err);
     if (G_UNLIKELY (err)) {
       g_critical ("%s", err);
@@ -995,7 +1000,7 @@
  *
  * Returns: %TRUE if @structure is a subset of @caps
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 gboolean
 gst_caps_is_subset_structure (const GstCaps * caps,
@@ -1039,24 +1044,54 @@
 gboolean
 gst_caps_is_equal (const GstCaps * caps1, const GstCaps * caps2)
 {
-  /* FIXME 0.11: NULL pointers are no valid Caps but indicate an error
-   * So there should be an assertion that caps1 and caps2 != NULL */
+  g_return_val_if_fail (GST_IS_CAPS (caps1), FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps2), FALSE);
 
-  /* NULL <-> NULL is allowed here */
   if (G_UNLIKELY (caps1 == caps2))
     return TRUE;
 
-  /* one of them NULL => they are different (can't be both NULL because
-   * we checked that above) */
-  if (G_UNLIKELY (caps1 == NULL || caps2 == NULL))
-    return FALSE;
-
   if (G_UNLIKELY (gst_caps_is_fixed (caps1) && gst_caps_is_fixed (caps2)))
     return gst_caps_is_equal_fixed (caps1, caps2);
 
   return gst_caps_is_subset (caps1, caps2) && gst_caps_is_subset (caps2, caps1);
 }
 
+/**
+ * gst_caps_is_strictly_equal:
+ * @caps1: a #GstCaps
+ * @caps2: another #GstCaps
+ *
+ * Checks if the given caps are exactly the same set of caps.
+ *
+ * This function deals correctly with passing NULL for any of the caps.
+ *
+ * Returns: TRUE if both caps are strictly equal.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_caps_is_strictly_equal (const GstCaps * caps1, const GstCaps * caps2)
+{
+  int i;
+
+  g_return_val_if_fail (GST_IS_CAPS (caps1), FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps2), FALSE);
+
+  if (G_UNLIKELY (caps1 == caps2))
+    return TRUE;
+
+  if (GST_CAPS_LEN (caps1) != GST_CAPS_LEN (caps2))
+    return FALSE;
+
+  for (i = 0; i < GST_CAPS_LEN (caps1); i++) {
+    if (!gst_structure_is_equal (gst_caps_get_structure_unchecked (caps1, i),
+            gst_caps_get_structure_unchecked (caps2, i)))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
 /* intersect operation */
 
 /**
@@ -1098,7 +1133,7 @@
    * much better than a simple loop.
    *
    * This algorithm zigzags over the caps structures as demonstrated in
-   * the folowing matrix:
+   * the following matrix:
    *
    *          caps1                              0  1  2  3
    *       +-------------     total distance:  +-------------
@@ -1140,7 +1175,7 @@
 }
 
 static GstCaps *
-gst_caps_intersect_zig_zag (const GstCaps * caps1, const GstCaps * caps2)
+gst_caps_intersect_zig_zag (GstCaps * caps1, GstCaps * caps2)
 {
   guint64 i;                    /* index can be up to 2 * G_MAX_UINT */
   guint j, k, len1, len2;
@@ -1152,17 +1187,17 @@
 
   /* caps are exactly the same pointers, just copy one caps */
   if (G_UNLIKELY (caps1 == caps2))
-    return _gst_caps_copy (caps1);
+    return gst_caps_ref (caps1);
 
   /* empty caps on either side, return empty */
   if (G_UNLIKELY (CAPS_IS_EMPTY (caps1) || CAPS_IS_EMPTY (caps2)))
-    return gst_caps_new_empty ();
+    return gst_caps_ref (GST_CAPS_NONE);
 
   /* one of the caps is any, just copy the other caps */
   if (G_UNLIKELY (CAPS_IS_ANY (caps1)))
-    return _gst_caps_copy (caps2);
+    return gst_caps_ref (caps2);
   if (G_UNLIKELY (CAPS_IS_ANY (caps2)))
-    return _gst_caps_copy (caps1);
+    return gst_caps_ref (caps1);
 
   dest = gst_caps_new_empty ();
 
@@ -1170,7 +1205,7 @@
    * much better than a simple loop.
    *
    * This algorithm zigzags over the caps structures as demonstrated in
-   * the folowing matrix:
+   * the following matrix:
    *
    *          caps1
    *       +-------------
@@ -1199,7 +1234,7 @@
 
       istruct = gst_structure_intersect (struct1, struct2);
 
-      gst_caps_merge_structure (dest, istruct);
+      dest = gst_caps_merge_structure (dest, istruct);
       /* move down left */
       k++;
       if (G_UNLIKELY (j == 0))
@@ -1224,9 +1259,9 @@
  * Returns: the new #GstCaps
  */
 static GstCaps *
-gst_caps_intersect_first (const GstCaps * caps1, const GstCaps * caps2)
+gst_caps_intersect_first (GstCaps * caps1, GstCaps * caps2)
 {
-  guint64 i;                    /* index can be up to 2 * G_MAX_UINT */
+  guint i;
   guint j, len1, len2;
 
   GstStructure *struct1;
@@ -1236,17 +1271,17 @@
 
   /* caps are exactly the same pointers, just copy one caps */
   if (G_UNLIKELY (caps1 == caps2))
-    return gst_caps_copy (caps1);
+    return gst_caps_ref (caps1);
 
   /* empty caps on either side, return empty */
   if (G_UNLIKELY (CAPS_IS_EMPTY (caps1) || CAPS_IS_EMPTY (caps2)))
-    return gst_caps_new_empty ();
+    return gst_caps_ref (GST_CAPS_NONE);
 
   /* one of the caps is any, just copy the other caps */
   if (G_UNLIKELY (CAPS_IS_ANY (caps1)))
-    return gst_caps_copy (caps2);
+    return gst_caps_ref (caps2);
   if (G_UNLIKELY (CAPS_IS_ANY (caps2)))
-    return gst_caps_copy (caps1);
+    return gst_caps_ref (caps1);
 
   dest = gst_caps_new_empty ();
 
@@ -1258,7 +1293,7 @@
       struct2 = gst_caps_get_structure_unchecked (caps2, j);
       istruct = gst_structure_intersect (struct1, struct2);
       if (istruct)
-        gst_caps_merge_structure (dest, istruct);
+        dest = gst_caps_merge_structure (dest, istruct);
     }
   }
 
@@ -1279,7 +1314,7 @@
  * Since: 0.10.33
  */
 GstCaps *
-gst_caps_intersect_full (const GstCaps * caps1, const GstCaps * caps2,
+gst_caps_intersect_full (GstCaps * caps1, GstCaps * caps2,
     GstCapsIntersectMode mode)
 {
   g_return_val_if_fail (GST_IS_CAPS (caps1), NULL);
@@ -1307,7 +1342,7 @@
  * Returns: the new #GstCaps
  */
 GstCaps *
-gst_caps_intersect (const GstCaps * caps1, const GstCaps * caps2)
+gst_caps_intersect (GstCaps * caps1, GstCaps * caps2)
 {
   return gst_caps_intersect_full (caps1, caps2, GST_CAPS_INTERSECT_ZIG_ZAG);
 }
@@ -1386,7 +1421,7 @@
  * Returns: the resulting caps
  */
 GstCaps *
-gst_caps_subtract (const GstCaps * minuend, const GstCaps * subtrahend)
+gst_caps_subtract (GstCaps * minuend, GstCaps * subtrahend)
 {
   guint i, j, sublen;
   GstStructure *min;
@@ -1400,7 +1435,7 @@
     return gst_caps_new_empty ();
   }
   if (CAPS_IS_EMPTY_SIMPLE (subtrahend))
-    return _gst_caps_copy (minuend);
+    return gst_caps_ref (minuend);
 
   /* FIXME: Do we want this here or above?
      The reason we need this is that there is no definition about what
@@ -1449,89 +1484,10 @@
   }
 
   gst_caps_unref (src);
-  gst_caps_do_simplify (dest);
+  dest = gst_caps_simplify (dest);
   return dest;
 }
 
-/* union operation */
-
-#if 0
-static GstStructure *
-gst_caps_structure_union (const GstStructure * struct1,
-    const GstStructure * struct2)
-{
-  int i;
-  GstStructure *dest;
-  const GstStructureField *field1;
-  const GstStructureField *field2;
-  int ret;
-
-  /* FIXME this doesn't actually work */
-
-  if (struct1->name != struct2->name)
-    return NULL;
-
-  dest = gst_structure_id_empty_new (struct1->name);
-
-  for (i = 0; i < struct1->fields->len; i++) {
-    GValue dest_value = { 0 };
-
-    field1 = GST_STRUCTURE_FIELD (struct1, i);
-    field2 = gst_structure_id_get_field (struct2, field1->name);
-
-    if (field2 == NULL) {
-      continue;
-    } else {
-      if (gst_value_union (&dest_value, &field1->value, &field2->value)) {
-        gst_structure_set_value (dest, g_quark_to_string (field1->name),
-            &dest_value);
-      } else {
-        ret = gst_value_compare (&field1->value, &field2->value);
-      }
-    }
-  }
-
-  return dest;
-}
-#endif
-
-/**
- * gst_caps_union:
- * @caps1: a #GstCaps to union
- * @caps2: a #GstCaps to union
- *
- * Creates a new #GstCaps that contains all the formats that are in
- * either @caps1 and @caps2.
- *
- * Returns: the new #GstCaps
- */
-GstCaps *
-gst_caps_union (const GstCaps * caps1, const GstCaps * caps2)
-{
-  GstCaps *dest1;
-  GstCaps *dest2;
-
-  /* NULL pointers are no correct GstCaps */
-  g_return_val_if_fail (caps1 != NULL, NULL);
-  g_return_val_if_fail (caps2 != NULL, NULL);
-
-  if (CAPS_IS_EMPTY (caps1))
-    return _gst_caps_copy (caps2);
-
-  if (CAPS_IS_EMPTY (caps2))
-    return _gst_caps_copy (caps1);
-
-  if (CAPS_IS_ANY (caps1) || CAPS_IS_ANY (caps2))
-    return gst_caps_new_any ();
-
-  dest1 = _gst_caps_copy (caps1);
-  dest2 = _gst_caps_copy (caps2);
-  gst_caps_append (dest1, dest2);
-
-  gst_caps_do_simplify (dest1);
-  return dest1;
-}
-
 /* normalize/simplify operations */
 
 typedef struct _NormalizeForeach
@@ -1569,34 +1525,36 @@
 
 /**
  * gst_caps_normalize:
- * @caps: a #GstCaps to normalize
+ * @caps: (transfer full): a #GstCaps to normalize
  *
- * Creates a new #GstCaps that represents the same set of formats as
+ * Returns a #GstCaps that represents the same set of formats as
  * @caps, but contains no lists.  Each list is expanded into separate
  * @GstStructures.
  *
- * Returns: the new #GstCaps
+ * This function takes ownership of @caps.
+ *
+ * Returns: (transfer full): the normalized #GstCaps
  */
 GstCaps *
-gst_caps_normalize (const GstCaps * caps)
+gst_caps_normalize (GstCaps * caps)
 {
   NormalizeForeach nf;
-  GstCaps *newcaps;
   guint i;
 
   g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
-  newcaps = _gst_caps_copy (caps);
-  nf.caps = newcaps;
+  caps = gst_caps_make_writable (caps);
 
-  for (i = 0; i < gst_caps_get_size (newcaps); i++) {
-    nf.structure = gst_caps_get_structure_unchecked (newcaps, i);
+  nf.caps = caps;
+
+  for (i = 0; i < gst_caps_get_size (nf.caps); i++) {
+    nf.structure = gst_caps_get_structure_unchecked (nf.caps, i);
 
     while (!gst_structure_foreach (nf.structure,
             gst_caps_normalize_foreach, &nf));
   }
 
-  return newcaps;
+  return nf.caps;
 }
 
 static gint
@@ -1649,7 +1607,7 @@
 
 static gboolean
 gst_caps_structure_simplify (GstStructure ** result,
-    const GstStructure * simplify, GstStructure * compare)
+    GstStructure * simplify, GstStructure * compare)
 {
   GSList *list;
   UnionField field = { 0, {0,}, NULL };
@@ -1672,7 +1630,7 @@
 
   /* try to union both structs */
   field.compare = compare;
-  if (gst_structure_foreach ((GstStructure *) simplify,
+  if (gst_structure_foreach (simplify,
           gst_caps_structure_figure_out_union, &field)) {
     gboolean ret = FALSE;
 
@@ -1717,37 +1675,40 @@
 }
 
 /**
- * gst_caps_do_simplify:
- * @caps: a #GstCaps to simplify
+ * gst_caps_simplify:
+ * @caps: (transfer full): a #GstCaps to simplify
  *
- * Modifies the given @caps inplace into a representation that represents the
+ * Converts the given @caps into a representation that represents the
  * same set of formats, but in a simpler form.  Component structures that are
  * identical are merged.  Component structures that have values that can be
  * merged are also merged.
  *
- * Returns: TRUE, if the caps could be simplified
+ * This method does not preserve the original order of @caps.
+ *
+ * Returns: The simplified caps.
  */
-gboolean
-gst_caps_do_simplify (GstCaps * caps)
+GstCaps *
+gst_caps_simplify (GstCaps * caps)
 {
   GstStructure *simplify, *compare, *result = NULL;
   gint i, j, start;
-  gboolean changed = FALSE;
 
-  g_return_val_if_fail (caps != NULL, FALSE);
-  g_return_val_if_fail (IS_WRITABLE (caps), FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
-  if (gst_caps_get_size (caps) < 2)
-    return FALSE;
+  start = GST_CAPS_LEN (caps) - 1;
+  /* one caps, already as simple as can be */
+  if (start == 0)
+    return caps;
+
+  caps = gst_caps_make_writable (caps);
 
   g_ptr_array_sort (GST_CAPS_ARRAY (caps), gst_caps_compare_structures);
 
-  start = GST_CAPS_LEN (caps) - 1;
-  for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) {
+  for (i = start; i >= 0; i--) {
     simplify = gst_caps_get_structure_unchecked (caps, i);
+    compare = gst_caps_get_structure_unchecked (caps, start);
     if (gst_structure_get_name_id (simplify) !=
-        gst_structure_get_name_id (gst_caps_get_structure_unchecked (caps,
-                start)))
+        gst_structure_get_name_id (compare))
       start = i;
     for (j = start; j >= 0; j--) {
       if (j == i)
@@ -1766,38 +1727,36 @@
           start--;
           break;
         }
-        changed = TRUE;
       }
     }
   }
-
-  if (!changed)
-    return FALSE;
-
-  /* gst_caps_do_simplify (caps); */
-  return TRUE;
+  return caps;
 }
 
 /**
  * gst_caps_fixate:
- * @caps: a #GstCaps to fixate
+ * @caps: (transfer full): a #GstCaps to fixate
  *
- * Modifies the given @caps inplace into a representation with only fixed
+ * Modifies the given @caps into a representation with only fixed
  * values. First the caps will be truncated and then the first structure will be
- * fixated with gst_structure_fixate(). @caps should be writable.
+ * fixated with gst_structure_fixate().
+ *
+ * Returns: (transfer full): the fixated caps
  */
-void
+GstCaps *
 gst_caps_fixate (GstCaps * caps)
 {
   GstStructure *s;
 
-  g_return_if_fail (GST_IS_CAPS (caps));
-  g_return_if_fail (IS_WRITABLE (caps));
+  g_return_val_if_fail (GST_IS_CAPS (caps), NULL);
 
   /* default fixation */
-  gst_caps_truncate (caps);
+  caps = gst_caps_truncate (caps);
+  caps = gst_caps_make_writable (caps);
   s = gst_caps_get_structure (caps, 0);
   gst_structure_fixate (s);
+
+  return caps;
 }
 
 /* utility */
@@ -1813,7 +1772,7 @@
  * |[
  * GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
  * ]|
- * This prints the caps in human readble form.
+ * This prints the caps in human readable form.
  *
  * Returns: (transfer full): a newly allocated string representing @caps.
  */
@@ -1874,7 +1833,7 @@
   gchar *s;
 
   if (strcmp ("ANY", string) == 0) {
-    GST_CAPS_FLAGS (caps) = GST_CAPS_FLAGS_ANY;
+    GST_CAPS_FLAGS (caps) = GST_CAPS_FLAG_ANY;
     return TRUE;
   }
   if (strcmp ("EMPTY", string) == 0) {
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index 567f7b8..f229742 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -27,7 +27,7 @@
 
 G_BEGIN_DECLS
 
-extern GType _gst_caps_type;
+GST_EXPORT GType _gst_caps_type;
 
 #define GST_TYPE_CAPS             (_gst_caps_type)
 #define GST_IS_CAPS(obj)          (GST_IS_MINI_OBJECT_TYPE((obj), GST_TYPE_CAPS))
@@ -38,13 +38,13 @@
 
 /**
  * GstCapsFlags:
- * @GST_CAPS_FLAGS_ANY: Caps has no specific content, but can contain
+ * @GST_CAPS_FLAG_ANY: Caps has no specific content, but can contain
  *    anything.
  *
  * Extra flags for a caps.
  */
 typedef enum {
-  GST_CAPS_FLAGS_ANY	= (GST_MINI_OBJECT_FLAG_LAST << 0)
+  GST_CAPS_FLAG_ANY	= (GST_MINI_OBJECT_FLAG_LAST << 0)
 } GstCapsFlags;
 
 /**
@@ -83,16 +83,18 @@
  * GST_CAPS_ANY:
  *
  * Means that the element/pad can output 'anything'. Useful for elements
- * that output unknown media, such as filesrc.
+ * that output unknown media, such as filesrc. This macro returns a singleton and
+ * should not be unreffed.
  */
-#define GST_CAPS_ANY              gst_caps_new_any()
+#define GST_CAPS_ANY              _gst_caps_any
 /**
  * GST_CAPS_NONE:
  *
  * The opposite of %GST_CAPS_ANY: it means that the pad/element outputs an
- * undefined media type that can not be detected.
+ * undefined media type that can not be detected. This macro returns a singleton
+ * and should not be unreffed.
  */
-#define GST_CAPS_NONE             gst_caps_new_empty()
+#define GST_CAPS_NONE             _gst_caps_none
 
 /**
  * GST_STATIC_CAPS_ANY:
@@ -127,8 +129,7 @@
  */
 #define GST_STATIC_CAPS(string) \
 { \
-  /* miniobject */ { { 0, 0, 0, 0, NULL, NULL, NULL }, \
-  /* caps */ NULL }, \
+  /* caps */ NULL, \
   /* string */ string, \
   GST_PADDING_INIT \
 }
@@ -136,6 +137,8 @@
 typedef struct _GstCaps GstCaps;
 typedef struct _GstStaticCaps GstStaticCaps;
 
+GST_EXPORT GstCaps * _gst_caps_any;
+GST_EXPORT GstCaps * _gst_caps_none;
 /**
  * GST_CAPS_FLAGS:
  * @caps: a #GstCaps.
@@ -286,9 +289,9 @@
 
 /**
  * gst_caps_replace:
- * @ocaps: (inout) (transfer full): pointer to a pointer to a #GstCaps to be
+ * @old_caps: (inout) (transfer full): pointer to a pointer to a #GstCaps to be
  *     replaced.
- * @ncaps: (transfer none) (allow-none): pointer to a #GstCaps that will
+ * @new_caps: (transfer none) (allow-none): pointer to a #GstCaps that will
  *     replace the caps pointed to by @ocaps.
  *
  * Modifies a pointer to a #GstCaps to point to a different #GstCaps. The
@@ -297,13 +300,41 @@
  * caps is unreffed, the new is reffed).
  *
  * Either @ncaps or the #GstCaps pointed to by @ocaps may be NULL.
+ *
+ * Returns: TRUE if @new_caps was different from @old_caps
  */
-#define         gst_caps_replace(ocaps,ncaps) \
-G_STMT_START {                                                                \
-  GstCaps **___ocapsaddr = (GstCaps **)(ocaps);         \
-  gst_mini_object_replace ((GstMiniObject **)___ocapsaddr, \
-      GST_MINI_OBJECT_CAST (ncaps));                       \
-} G_STMT_END
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_caps_replace (GstCaps **old_caps, GstCaps *new_caps);
+#endif
+
+static inline gboolean
+gst_caps_replace (GstCaps **old_caps, GstCaps *new_caps)
+{
+    return gst_mini_object_replace ((GstMiniObject **) old_caps, (GstMiniObject *) new_caps);
+}
+
+/**
+ * gst_caps_take:
+ * @old_caps: (inout) (transfer full): pointer to a pointer to a #GstCaps to be
+ *     replaced.
+ * @new_caps: (transfer full) (allow-none): pointer to a #GstCaps that will
+ *     replace the caps pointed to by @ocaps.
+ *
+ * Modifies a pointer to a #GstCaps to point to a different #GstCaps. This
+ * function is similar to gst_caps_replace() except that it takes ownership
+ * of @new_caps.
+ *
+ * Returns: TRUE if @new_caps was different from @old_caps
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_caps_take (GstCaps **old_caps, GstCaps *new_caps);
+#endif
+
+static inline gboolean
+gst_caps_take (GstCaps **old_caps, GstCaps *new_caps)
+{
+    return gst_mini_object_take ((GstMiniObject **) old_caps, (GstMiniObject *) new_caps);
+}
 
 /**
  * GstCaps:
@@ -313,9 +344,6 @@
  */
 struct _GstCaps {
   GstMiniObject mini_object;
-
-  /*< private >*/
-  gpointer     priv;
 };
 
 /**
@@ -329,7 +357,7 @@
  */
 struct _GstStaticCaps {
   /*< public >*/
-  GstCaps caps;
+  GstCaps *caps;
   const char *string;
 
   /*< private >*/
@@ -340,12 +368,14 @@
 
 GstCaps *         gst_caps_new_empty               (void);
 GstCaps *         gst_caps_new_any                 (void);
+GstCaps *         gst_caps_new_empty_simple        (const char    *media_type) G_GNUC_WARN_UNUSED_RESULT;
 GstCaps *         gst_caps_new_simple              (const char    *media_type,
                                                     const char    *fieldname,
-                                                    ...);
-GstCaps *         gst_caps_new_full                (GstStructure  *struct1, ...);
+                                                    ...) G_GNUC_NULL_TERMINATED G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_new_full                (GstStructure  *struct1,
+                                                    ...) G_GNUC_NULL_TERMINATED G_GNUC_WARN_UNUSED_RESULT;
 GstCaps *         gst_caps_new_full_valist         (GstStructure  *structure,
-                                                    va_list        var_args);
+                                                    va_list        var_args) G_GNUC_WARN_UNUSED_RESULT;
 
 GType             gst_static_caps_get_type         (void);
 GstCaps *         gst_static_caps_get              (GstStaticCaps *static_caps);
@@ -354,20 +384,20 @@
 /* manipulation */
 void              gst_caps_append                  (GstCaps       *caps1,
                                                     GstCaps       *caps2);
-void              gst_caps_merge                   (GstCaps       *caps1,
-                                                    GstCaps       *caps2);
 void              gst_caps_append_structure        (GstCaps       *caps,
                                                     GstStructure  *structure);
 void              gst_caps_remove_structure        (GstCaps       *caps, guint idx);
-void              gst_caps_merge_structure         (GstCaps       *caps,
-                                                    GstStructure  *structure);
+GstCaps *         gst_caps_merge                   (GstCaps       *caps1,
+                                                    GstCaps       *caps2) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_merge_structure         (GstCaps       *caps,
+                                                    GstStructure  *structure) G_GNUC_WARN_UNUSED_RESULT;
 guint             gst_caps_get_size                (const GstCaps *caps);
 GstStructure *    gst_caps_get_structure           (const GstCaps *caps,
                                                     guint          index);
-GstStructure *    gst_caps_steal_structure         (GstCaps *caps,
-                                                    guint          index);
-GstCaps *         gst_caps_copy_nth                (const GstCaps *caps, guint nth);
-void              gst_caps_truncate                (GstCaps       *caps);
+GstStructure *    gst_caps_steal_structure         (GstCaps       *caps,
+                                                    guint          index) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_copy_nth                (const GstCaps *caps, guint nth) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_truncate                (GstCaps       *caps) G_GNUC_WARN_UNUSED_RESULT;
 void              gst_caps_set_value               (GstCaps       *caps,
                                                     const char    *field,
                                                     const GValue  *value);
@@ -393,26 +423,26 @@
 						    const GstCaps *caps2);
 gboolean          gst_caps_can_intersect           (const GstCaps * caps1,
 						    const GstCaps * caps2);
+gboolean          gst_caps_is_strictly_equal	   (const GstCaps *caps1,
+						    const GstCaps *caps2);
 
 
 /* operations */
-GstCaps *         gst_caps_intersect               (const GstCaps *caps1,
-						    const GstCaps *caps2);
-GstCaps *         gst_caps_intersect_full          (const GstCaps *caps1,
-						    const GstCaps *caps2,
-                                                    GstCapsIntersectMode mode);
-GstCaps *         gst_caps_subtract		   (const GstCaps *minuend,
-						    const GstCaps *subtrahend);
-GstCaps *         gst_caps_union                   (const GstCaps *caps1,
-						    const GstCaps *caps2);
-GstCaps *         gst_caps_normalize               (const GstCaps *caps);
-gboolean          gst_caps_do_simplify             (GstCaps       *caps);
+GstCaps *         gst_caps_intersect               (GstCaps *caps1,
+						    GstCaps *caps2) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_intersect_full          (GstCaps *caps1,
+						    GstCaps *caps2,
+                                                    GstCapsIntersectMode mode) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_subtract		   (GstCaps *minuend,
+						    GstCaps *subtrahend) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_normalize               (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT;
+GstCaps *         gst_caps_simplify                (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT;
 
-void              gst_caps_fixate                  (GstCaps       *caps);
+GstCaps *         gst_caps_fixate                  (GstCaps *caps) G_GNUC_WARN_UNUSED_RESULT;
 
 /* utility */
-gchar *           gst_caps_to_string               (const GstCaps *caps);
-GstCaps *         gst_caps_from_string             (const gchar   *string);
+gchar *           gst_caps_to_string               (const GstCaps *caps) G_GNUC_MALLOC;
+GstCaps *         gst_caps_from_string             (const gchar   *string) G_GNUC_WARN_UNUSED_RESULT;
 
 G_END_DECLS
 
diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c
index 5607b49..3e153f3 100644
--- a/gst/gstchildproxy.c
+++ b/gst/gstchildproxy.c
@@ -38,18 +38,10 @@
  * scheme is recursive. Thus "child1::child2::property" is valid too, if
  * "child1" and "child2" implement the #GstChildProxy interface.
  */
-/* FIXME-0.11:
- * it would be nice to make gst_child_proxy_get_child_by_name virtual too and
- * use GObject instead of GstObject. We could eventually provide the current
- * implementation as a default if children are GstObjects.
- * This change would allow to propose the interface for inclusion with
- * glib/gobject. IMHO this is useful for GtkContainer and compound widgets too.
- */
 
 #include "gst_private.h"
 
 #include "gstchildproxy.h"
-#include "gstmarshal.h"
 #include <gobject/gvaluecollector.h>
 
 /* signals */
@@ -62,25 +54,12 @@
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-/**
- * gst_child_proxy_get_child_by_name:
- * @parent: the parent object to get the child from
- * @name: the childs name
- *
- * Looks up a child element by the given name.
- *
- * Implementors can use #GstObject together with gst_object_get_name()
- *
- * Returns: (transfer full): the child object or %NULL if not found. Unref
- *     after usage.
- *
- * MT safe.
- */
-GstObject *
-gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name)
+static GObject *
+gst_child_proxy_default_get_child_by_name (GstChildProxy * parent,
+    const gchar * name)
 {
   guint count, i;
-  GstObject *object, *result;
+  GObject *object, *result;
   gchar *object_name;
 
   g_return_val_if_fail (GST_IS_CHILD_PROXY (parent), NULL);
@@ -95,7 +74,10 @@
     if (!(object = gst_child_proxy_get_child_by_index (parent, i)))
       continue;
 
-    object_name = gst_object_get_name (object);
+    if (!GST_IS_OBJECT (object)) {
+      goto next;
+    }
+    object_name = gst_object_get_name (GST_OBJECT_CAST (object));
     if (object_name == NULL) {
       g_warning ("child %u of parent %s has no name", i,
           GST_OBJECT_NAME (parent));
@@ -109,11 +91,37 @@
       break;
     }
   next:
-    gst_object_unref (object);
+    g_object_unref (object);
   }
   return result;
 }
 
+
+/**
+ * gst_child_proxy_get_child_by_name:
+ * @parent: the parent object to get the child from
+ * @name: the childs name
+ *
+ * Looks up a child element by the given name.
+ *
+ * This virtual method has a default implementation that uses #GstObject
+ * together with gst_object_get_name(). If the interface is to be used with
+ * #GObjects, this methods needs to be overridden.
+ *
+ * Returns: (transfer full): the child object or %NULL if not found. Unref
+ *     after usage.
+ *
+ * MT safe.
+ */
+GObject *
+gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name)
+{
+  g_return_val_if_fail (GST_IS_CHILD_PROXY (parent), 0);
+
+  return (GST_CHILD_PROXY_GET_INTERFACE (parent)->get_child_by_name (parent,
+          name));
+}
+
 /**
  * gst_child_proxy_get_child_by_index:
  * @parent: the parent object to get the child from
@@ -126,7 +134,7 @@
  *
  * MT safe.
  */
-GstObject *
+GObject *
 gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index)
 {
   g_return_val_if_fail (GST_IS_CHILD_PROXY (parent), NULL);
@@ -157,7 +165,7 @@
  * gst_child_proxy_lookup:
  * @object: object to lookup the property in
  * @name: name of the property to look up
- * @target: (out) (allow-none) (transfer full): pointer to a #GstObject that
+ * @target: (out) (allow-none) (transfer full): pointer to a #GObject that
  *     takes the real object to set property on
  * @pspec: (out) (allow-none) (transfer full): pointer to take the #GParamSpec
  *     describing the property
@@ -171,25 +179,25 @@
  * MT safe.
  */
 gboolean
-gst_child_proxy_lookup (GstObject * object, const gchar * name,
-    GstObject ** target, GParamSpec ** pspec)
+gst_child_proxy_lookup (GObject * object, const gchar * name,
+    GObject ** target, GParamSpec ** pspec)
 {
   gboolean res = FALSE;
   gchar **names, **current;
 
-  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
 
   gst_object_ref (object);
 
   current = names = g_strsplit (name, "::", -1);
   while (current[1]) {
-    GstObject *next;
+    GObject *next;
 
     if (!GST_IS_CHILD_PROXY (object)) {
       GST_INFO
           ("object %s is not a parent, so you cannot request a child by name %s",
-          GST_OBJECT_NAME (object), current[0]);
+          (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), current[0]);
       break;
     }
     next = gst_child_proxy_get_child_by_name (GST_CHILD_PROXY (object),
@@ -232,13 +240,13 @@
  * You are responsible for freeing it by calling g_value_unset()
  */
 void
-gst_child_proxy_get_property (GstObject * object, const gchar * name,
+gst_child_proxy_get_property (GObject * object, const gchar * name,
     GValue * value)
 {
   GParamSpec *pspec;
-  GstObject *target;
+  GObject *target;
 
-  g_return_if_fail (GST_IS_OBJECT (object));
+  g_return_if_fail (G_IS_OBJECT (object));
   g_return_if_fail (name != NULL);
   g_return_if_fail (G_IS_VALUE (value));
 
@@ -252,7 +260,8 @@
 
 not_found:
   {
-    g_warning ("no property %s in object %s", name, GST_OBJECT_NAME (object));
+    g_warning ("no property %s in object %s", name,
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""));
     return;
   }
 }
@@ -266,14 +275,14 @@
  * Gets properties of the parent object and its children.
  */
 void
-gst_child_proxy_get_valist (GstObject * object,
+gst_child_proxy_get_valist (GObject * object,
     const gchar * first_property_name, va_list var_args)
 {
   const gchar *name;
   gchar *error = NULL;
   GValue value = { 0, };
   GParamSpec *pspec;
-  GstObject *target;
+  GObject *target;
 
   g_return_if_fail (G_IS_OBJECT (object));
 
@@ -298,13 +307,14 @@
 
 not_found:
   {
-    g_warning ("no property %s in object %s", name, GST_OBJECT_NAME (object));
+    g_warning ("no property %s in object %s", name,
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""));
     return;
   }
 cant_copy:
   {
     g_warning ("error copying value %s in object %s: %s", pspec->name,
-        GST_OBJECT_NAME (object), error);
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), error);
     g_value_unset (&value);
     return;
   }
@@ -319,11 +329,11 @@
  * Gets properties of the parent object and its children.
  */
 void
-gst_child_proxy_get (GstObject * object, const gchar * first_property_name, ...)
+gst_child_proxy_get (GObject * object, const gchar * first_property_name, ...)
 {
   va_list var_args;
 
-  g_return_if_fail (GST_IS_OBJECT (object));
+  g_return_if_fail (G_IS_OBJECT (object));
 
   va_start (var_args, first_property_name);
   gst_child_proxy_get_valist (object, first_property_name, var_args);
@@ -339,13 +349,13 @@
  * Sets a single property using the GstChildProxy mechanism.
  */
 void
-gst_child_proxy_set_property (GstObject * object, const gchar * name,
+gst_child_proxy_set_property (GObject * object, const gchar * name,
     const GValue * value)
 {
   GParamSpec *pspec;
-  GstObject *target;
+  GObject *target;
 
-  g_return_if_fail (GST_IS_OBJECT (object));
+  g_return_if_fail (G_IS_OBJECT (object));
   g_return_if_fail (name != NULL);
   g_return_if_fail (G_IS_VALUE (value));
 
@@ -359,7 +369,7 @@
 not_found:
   {
     g_warning ("cannot set property %s on object %s", name,
-        GST_OBJECT_NAME (object));
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""));
     return;
   }
 }
@@ -373,14 +383,14 @@
  * Sets properties of the parent object and its children.
  */
 void
-gst_child_proxy_set_valist (GstObject * object,
+gst_child_proxy_set_valist (GObject * object,
     const gchar * first_property_name, va_list var_args)
 {
   const gchar *name;
   gchar *error = NULL;
   GValue value = { 0, };
   GParamSpec *pspec;
-  GstObject *target;
+  GObject *target;
 
   g_return_if_fail (G_IS_OBJECT (object));
 
@@ -407,13 +417,14 @@
 
 not_found:
   {
-    g_warning ("no property %s in object %s", name, GST_OBJECT_NAME (object));
+    g_warning ("no property %s in object %s", name,
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""));
     return;
   }
 cant_copy:
   {
     g_warning ("error copying value %s in object %s: %s", pspec->name,
-        GST_OBJECT_NAME (object), error);
+        (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), error);
     g_value_unset (&value);
     gst_object_unref (target);
     return;
@@ -429,11 +440,11 @@
  * Sets properties of the parent object and its children.
  */
 void
-gst_child_proxy_set (GstObject * object, const gchar * first_property_name, ...)
+gst_child_proxy_set (GObject * object, const gchar * first_property_name, ...)
 {
   va_list var_args;
 
-  g_return_if_fail (GST_IS_OBJECT (object));
+  g_return_if_fail (G_IS_OBJECT (object));
 
   va_start (var_args, first_property_name);
   gst_child_proxy_set_valist (object, first_property_name, var_args);
@@ -444,66 +455,76 @@
  * gst_child_proxy_child_added:
  * @object: the parent object
  * @child: the newly added child
+ * @name: the name of the new child
  *
  * Emits the "child-added" signal.
  */
 void
-gst_child_proxy_child_added (GstObject * object, GstObject * child)
+gst_child_proxy_child_added (GObject * object, GObject * child,
+    const gchar * name)
 {
-  g_signal_emit (G_OBJECT (object), signals[CHILD_ADDED], 0, child);
+  g_signal_emit (G_OBJECT (object), signals[CHILD_ADDED], 0, child, name);
 }
 
 /**
  * gst_child_proxy_child_removed:
  * @object: the parent object
  * @child: the removed child
+ * @name: the name of the old child
  *
  * Emits the "child-removed" signal.
  */
 void
-gst_child_proxy_child_removed (GstObject * object, GstObject * child)
+gst_child_proxy_child_removed (GObject * object, GObject * child,
+    const gchar * name)
 {
-  g_signal_emit (G_OBJECT (object), signals[CHILD_REMOVED], 0, child);
+  g_signal_emit (G_OBJECT (object), signals[CHILD_REMOVED], 0, child, name);
 }
 
 /* gobject methods */
 
 static void
+gst_child_proxy_class_init (gpointer g_class, gpointer class_data)
+{
+  GstChildProxyInterface *iface = (GstChildProxyInterface *) g_class;
+
+  iface->get_child_by_name = gst_child_proxy_default_get_child_by_name;
+}
+
+static void
 gst_child_proxy_base_init (gpointer g_class)
 {
   static gboolean initialized = FALSE;
 
   if (!initialized) {
     /* create interface signals and properties here. */
-        /**
-	 * GstChildProxy::child-added:
-	 * @child_proxy: the #GstChildProxy
-	 * @object: the #GObject that was added
-	 *
-	 * Will be emitted after the @object was added to the @child_proxy.
-	 */
-    /* FIXME 0.11: use GST_TYPE_OBJECT as GstChildProxy only
-     * supports GstObjects */
+    /**
+     * GstChildProxy::child-added:
+     * @child_proxy: the #GstChildProxy
+     * @object: the #GObject that was added
+     * @name: the name of the new child
+     *
+     * Will be emitted after the @object was added to the @child_proxy.
+     */
     signals[CHILD_ADDED] =
         g_signal_new ("child-added", G_TYPE_FROM_CLASS (g_class),
         G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstChildProxyInterface,
-            child_added), NULL, NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
-        G_TYPE_OBJECT);
+            child_added), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE,
+        2, G_TYPE_OBJECT, G_TYPE_STRING);
 
-        /**
-	 * GstChildProxy::child-removed:
-	 * @child_proxy: the #GstChildProxy
-	 * @object: the #GObject that was removed
-	 *
-	 * Will be emitted after the @object was removed from the @child_proxy.
-	 */
-    /* FIXME 0.11: use GST_TYPE_OBJECT as GstChildProxy only
-     * supports GstObjects */
+    /**
+     * GstChildProxy::child-removed:
+     * @child_proxy: the #GstChildProxy
+     * @object: the #GObject that was removed
+     * @name: the name of the old child
+     *
+     * Will be emitted after the @object was removed from the @child_proxy.
+     */
     signals[CHILD_REMOVED] =
         g_signal_new ("child-removed", G_TYPE_FROM_CLASS (g_class),
         G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstChildProxyInterface,
-            child_removed), NULL, NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE,
-        1, G_TYPE_OBJECT);
+            child_removed), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE,
+        2, G_TYPE_OBJECT, G_TYPE_STRING);
 
     initialized = TRUE;
   }
@@ -520,7 +541,7 @@
       sizeof (GstChildProxyInterface),
       gst_child_proxy_base_init,        /* base_init */
       NULL,                     /* base_finalize */
-      NULL,                     /* class_init */
+      gst_child_proxy_class_init,       /* class_init */
       NULL,                     /* class_finalize */
       NULL,                     /* class_data */
       0,
@@ -531,7 +552,7 @@
     _type =
         g_type_register_static (G_TYPE_INTERFACE, "GstChildProxy", &info, 0);
 
-    g_type_interface_add_prerequisite (_type, GST_TYPE_OBJECT);
+    g_type_interface_add_prerequisite (_type, G_TYPE_OBJECT);
     g_once_init_leave (&type, (gsize) _type);
   }
   return type;
diff --git a/gst/gstchildproxy.h b/gst/gstchildproxy.h
index ebb2d14..94e2011 100644
--- a/gst/gstchildproxy.h
+++ b/gst/gstchildproxy.h
@@ -28,10 +28,10 @@
 G_BEGIN_DECLS
 
 
-#define GST_TYPE_CHILD_PROXY			(gst_child_proxy_get_type ())
-#define GST_CHILD_PROXY(obj)			(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_CHILD_PROXY, GstChildProxy))
-#define GST_IS_CHILD_PROXY(obj)	                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CHILD_PROXY))
-#define GST_CHILD_PROXY_GET_INTERFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_CHILD_PROXY, GstChildProxyInterface))
+#define GST_TYPE_CHILD_PROXY               (gst_child_proxy_get_type ())
+#define GST_CHILD_PROXY(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_CHILD_PROXY, GstChildProxy))
+#define GST_IS_CHILD_PROXY(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CHILD_PROXY))
+#define GST_CHILD_PROXY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_CHILD_PROXY, GstChildProxyInterface))
 
 /**
  * GstChildProxy:
@@ -44,7 +44,8 @@
 /**
  * GstChildProxyInterface:
  * @parent: parent interface type.
- * @get_child_by_index: virtual method to fetch the child
+ * @get_child_by_name:  virtual method to fetch the child by name
+ * @get_child_by_index: virtual method to fetch the child by index
  * @get_children_count: virtual method to get the children count
  *
  * #GstChildProxy interface.
@@ -54,37 +55,50 @@
   GTypeInterface parent;
 
   /* methods */
-  GstObject *(*get_child_by_index) (GstChildProxy * parent, guint index);
-  guint (*get_children_count) (GstChildProxy * parent);
+  GObject * (*get_child_by_name)  (GstChildProxy * parent, const gchar * name);
+  GObject * (*get_child_by_index) (GstChildProxy * parent, guint index);
+  guint     (*get_children_count) (GstChildProxy * parent);
   /*< private >*/
   /* signals */
-  void (*child_added) (GstChildProxy * parent, GstObject * child);
-  void (*child_removed) (GstChildProxy * parent, GstObject * child);
+  void      (*child_added)        (GstChildProxy * parent, GObject * child);
+  void      (*child_removed)      (GstChildProxy * parent, GObject * child);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GType gst_child_proxy_get_type (void);
+GType     gst_child_proxy_get_type (void);
 
-GstObject *gst_child_proxy_get_child_by_name (GstChildProxy * parent, const gchar * name);
-GstObject *gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index);
-guint gst_child_proxy_get_children_count (GstChildProxy * parent);
+GObject * gst_child_proxy_get_child_by_name  (GstChildProxy * parent, const gchar * name);
 
-gboolean gst_child_proxy_lookup (GstObject *object, const gchar *name,
-    GstObject **target, GParamSpec **pspec);
-void gst_child_proxy_get_property (GstObject * object, const gchar *name, GValue *value);
-void gst_child_proxy_get_valist (GstObject * object,
-    const gchar * first_property_name, va_list var_args);
-void gst_child_proxy_get (GstObject * object, const gchar * first_property_name,
-    ...) G_GNUC_NULL_TERMINATED;
-void gst_child_proxy_set_property (GstObject * object, const gchar *name, const GValue *value);
-void gst_child_proxy_set_valist (GstObject* object,
-    const gchar * first_property_name, va_list var_args);
-void gst_child_proxy_set (GstObject * object, const gchar * first_property_name,
-    ...) G_GNUC_NULL_TERMINATED;
-void gst_child_proxy_child_added (GstObject * object, GstObject *  child);
-void gst_child_proxy_child_removed (GstObject * object, GstObject *  child);
+guint     gst_child_proxy_get_children_count (GstChildProxy * parent);
+GObject * gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint index);
+
+gboolean  gst_child_proxy_lookup             (GObject *object, const gchar *name,
+                                              GObject **target, GParamSpec **pspec);
+
+void      gst_child_proxy_get_property       (GObject * object, const gchar *name,
+                                              GValue *value);
+void      gst_child_proxy_get_valist         (GObject * object,
+                                              const gchar * first_property_name,
+                                              va_list var_args);
+void      gst_child_proxy_get                (GObject * object,
+                                              const gchar * first_property_name,
+                                              ...) G_GNUC_NULL_TERMINATED;
+
+void      gst_child_proxy_set_property       (GObject * object, const gchar *name,
+                                              const GValue *value);
+void      gst_child_proxy_set_valist         (GObject* object,
+                                              const gchar * first_property_name,
+                                              va_list var_args);
+void      gst_child_proxy_set                (GObject * object,
+                                              const gchar * first_property_name,
+                                              ...) G_GNUC_NULL_TERMINATED;
+
+void      gst_child_proxy_child_added        (GObject * object, GObject * child,
+                                              const gchar *name);
+void      gst_child_proxy_child_removed      (GObject * object, GObject * child,
+                                              const gchar *name);
 
 G_END_DECLS
 
diff --git a/gst/gstclock.c b/gst/gstclock.c
index b167238..fe789d7 100644
--- a/gst/gstclock.c
+++ b/gst/gstclock.c
@@ -99,7 +99,7 @@
  * number of samples to use when calibrating and #GstClock:window-threshold
  * defines the minimum number of samples before the calibration is performed.
  *
- * Last reviewed on 2009-05-21 (0.10.24)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 
@@ -109,6 +109,7 @@
 #include "gstclock.h"
 #include "gstinfo.h"
 #include "gstutils.h"
+#include "glib-compat-private.h"
 
 #ifndef GST_DISABLE_TRACE
 /* #define GST_WITH_ALLOC_TRACE */
@@ -118,7 +119,6 @@
 
 /* #define DEBUGGING_ENABLED */
 
-#define DEFAULT_STATS                   FALSE
 #define DEFAULT_WINDOW_SIZE             32
 #define DEFAULT_WINDOW_THRESHOLD        4
 #define DEFAULT_TIMEOUT                 GST_SECOND / 10
@@ -126,27 +126,53 @@
 enum
 {
   PROP_0,
-  PROP_STATS,
   PROP_WINDOW_SIZE,
   PROP_WINDOW_THRESHOLD,
   PROP_TIMEOUT
 };
 
+#define GST_CLOCK_SLAVE_LOCK(clock)     g_mutex_lock (&GST_CLOCK_CAST (clock)->priv->slave_lock)
+#define GST_CLOCK_SLAVE_UNLOCK(clock)   g_mutex_unlock (&GST_CLOCK_CAST (clock)->priv->slave_lock)
+
 struct _GstClockPrivate
 {
+  GMutex slave_lock;            /* order: SLAVE_LOCK, OBJECT_LOCK */
+
+  /* with LOCK */
+  GstClockTime internal_calibration;
+  GstClockTime external_calibration;
+  GstClockTime rate_numerator;
+  GstClockTime rate_denominator;
+  GstClockTime last_time;
+
+  /* with LOCK */
+  GstClockTime resolution;
+
+  /* for master/slave clocks */
+  GstClock *master;
+
+  /* with SLAVE_LOCK */
+  gboolean filling;
+  gint window_size;
+  gint window_threshold;
+  gint time_index;
+  GstClockTime timeout;
+  GstClockTime *times;
+  GstClockID clockid;
+
   gint pre_count;
   gint post_count;
 };
 
 /* seqlocks */
 #define read_seqbegin(clock)                                   \
-  g_atomic_int_get (&clock->ABI.priv->post_count);
+  g_atomic_int_get (&clock->priv->post_count);
 
 static inline gboolean
 read_seqretry (GstClock * clock, gint seq)
 {
   /* no retry if the seqnum did not change */
-  if (G_LIKELY (seq == g_atomic_int_get (&clock->ABI.priv->pre_count)))
+  if (G_LIKELY (seq == g_atomic_int_get (&clock->priv->pre_count)))
     return FALSE;
 
   /* wait for the writer to finish and retry */
@@ -158,12 +184,12 @@
 #define write_seqlock(clock)                      \
 G_STMT_START {                                    \
   GST_OBJECT_LOCK (clock);                        \
-  g_atomic_int_inc (&clock->ABI.priv->pre_count);     \
+  g_atomic_int_inc (&clock->priv->pre_count);     \
 } G_STMT_END;
 
 #define write_sequnlock(clock)                    \
 G_STMT_START {                                    \
-  g_atomic_int_inc (&clock->ABI.priv->post_count);    \
+  g_atomic_int_inc (&clock->priv->post_count);    \
   GST_OBJECT_UNLOCK (clock);                      \
 } G_STMT_END;
 
@@ -174,10 +200,6 @@
     const GValue * value, GParamSpec * pspec);
 static void gst_clock_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
-static void gst_clock_update_stats (GstClock * clock);
-
-
-static GstObjectClass *parent_class = NULL;
 
 /* static guint gst_clock_signals[LAST_SIGNAL] = { 0 }; */
 
@@ -189,7 +211,7 @@
 
   entry = g_slice_new (GstClockEntry);
 #ifndef GST_DISABLE_TRACE
-  gst_alloc_trace_new (_gst_clock_entry_trace, entry);
+  _gst_alloc_trace_new (_gst_clock_entry_trace, entry);
 #endif
   GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, clock,
       "created entry %p, time %" GST_TIME_FORMAT, entry, GST_TIME_ARGS (time));
@@ -306,7 +328,7 @@
     entry->destroy_data (entry->user_data);
 
 #ifndef GST_DISABLE_TRACE
-  gst_alloc_trace_free (_gst_clock_entry_trace, id);
+  _gst_alloc_trace_free (_gst_clock_entry_trace, id);
 #endif
   g_slice_free (GstClockEntry, id);
 }
@@ -500,9 +522,6 @@
   if (entry->type == GST_CLOCK_ENTRY_PERIODIC)
     entry->time = requested + entry->interval;
 
-  if (G_UNLIKELY (clock->stats))
-    gst_clock_update_stats (clock);
-
   return res;
 
   /* ERRORS */
@@ -649,6 +668,7 @@
 /*
  * GstClock abstract base class implementation
  */
+#define gst_clock_parent_class parent_class
 G_DEFINE_TYPE (GstClock, gst_clock, GST_TYPE_OBJECT);
 
 static void
@@ -656,11 +676,8 @@
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
-
 #ifndef GST_DISABLE_TRACE
-  _gst_clock_entry_trace =
-      gst_alloc_trace_register (GST_CLOCK_ENTRY_TRACE_NAME);
+  _gst_clock_entry_trace = _gst_alloc_trace_register ("GstClockEntry", -1);
 #endif
 
   gobject_class->dispose = gst_clock_dispose;
@@ -668,10 +685,6 @@
   gobject_class->set_property = gst_clock_set_property;
   gobject_class->get_property = gst_clock_get_property;
 
-  g_object_class_install_property (gobject_class, PROP_STATS,
-      g_param_spec_boolean ("stats", "Stats",
-          "Enable clock stats (unimplemented)", DEFAULT_STATS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_WINDOW_SIZE,
       g_param_spec_int ("window-size", "Window size",
           "The size of the window used to calculate rate and offset", 2, 1024,
@@ -693,26 +706,25 @@
 static void
 gst_clock_init (GstClock * clock)
 {
-  clock->last_time = 0;
-  clock->entries = NULL;
-  clock->entries_changed = g_cond_new ();
-  clock->stats = FALSE;
+  GstClockPrivate *priv;
 
-  clock->ABI.priv =
+  clock->priv = priv =
       G_TYPE_INSTANCE_GET_PRIVATE (clock, GST_TYPE_CLOCK, GstClockPrivate);
 
-  clock->internal_calibration = 0;
-  clock->external_calibration = 0;
-  clock->rate_numerator = 1;
-  clock->rate_denominator = 1;
+  priv->last_time = 0;
 
-  clock->slave_lock = g_mutex_new ();
-  clock->window_size = DEFAULT_WINDOW_SIZE;
-  clock->window_threshold = DEFAULT_WINDOW_THRESHOLD;
-  clock->filling = TRUE;
-  clock->time_index = 0;
-  clock->timeout = DEFAULT_TIMEOUT;
-  clock->times = g_new0 (GstClockTime, 4 * clock->window_size);
+  priv->internal_calibration = 0;
+  priv->external_calibration = 0;
+  priv->rate_numerator = 1;
+  priv->rate_denominator = 1;
+
+  g_mutex_init (&priv->slave_lock);
+  priv->window_size = DEFAULT_WINDOW_SIZE;
+  priv->window_threshold = DEFAULT_WINDOW_THRESHOLD;
+  priv->filling = TRUE;
+  priv->time_index = 0;
+  priv->timeout = DEFAULT_TIMEOUT;
+  priv->times = g_new0 (GstClockTime, 4 * priv->window_size);
 }
 
 static void
@@ -722,7 +734,7 @@
   GstClock **master_p;
 
   GST_OBJECT_LOCK (clock);
-  master_p = &clock->master;
+  master_p = &clock->priv->master;
   gst_object_replace ((GstObject **) master_p, NULL);
   GST_OBJECT_UNLOCK (clock);
 
@@ -735,17 +747,16 @@
   GstClock *clock = GST_CLOCK (object);
 
   GST_CLOCK_SLAVE_LOCK (clock);
-  if (clock->clockid) {
-    gst_clock_id_unschedule (clock->clockid);
-    gst_clock_id_unref (clock->clockid);
-    clock->clockid = NULL;
+  if (clock->priv->clockid) {
+    gst_clock_id_unschedule (clock->priv->clockid);
+    gst_clock_id_unref (clock->priv->clockid);
+    clock->priv->clockid = NULL;
   }
-  g_free (clock->times);
-  clock->times = NULL;
+  g_free (clock->priv->times);
+  clock->priv->times = NULL;
   GST_CLOCK_SLAVE_UNLOCK (clock);
 
-  g_cond_free (clock->entries_changed);
-  g_mutex_free (clock->slave_lock);
+  g_mutex_clear (&clock->priv->slave_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -766,18 +777,20 @@
 GstClockTime
 gst_clock_set_resolution (GstClock * clock, GstClockTime resolution)
 {
+  GstClockPrivate *priv;
   GstClockClass *cclass;
 
   g_return_val_if_fail (GST_IS_CLOCK (clock), 0);
   g_return_val_if_fail (resolution != 0, 0);
 
   cclass = GST_CLOCK_GET_CLASS (clock);
+  priv = clock->priv;
 
   if (cclass->change_resolution)
-    clock->resolution =
-        cclass->change_resolution (clock, clock->resolution, resolution);
+    priv->resolution =
+        cclass->change_resolution (clock, priv->resolution, resolution);
 
-  return clock->resolution;
+  return priv->resolution;
 }
 
 /**
@@ -824,12 +837,13 @@
 gst_clock_adjust_unlocked (GstClock * clock, GstClockTime internal)
 {
   GstClockTime ret, cinternal, cexternal, cnum, cdenom;
+  GstClockPrivate *priv = clock->priv;
 
   /* get calibration values for readability */
-  cinternal = clock->internal_calibration;
-  cexternal = clock->external_calibration;
-  cnum = clock->rate_numerator;
-  cdenom = clock->rate_denominator;
+  cinternal = priv->internal_calibration;
+  cexternal = priv->external_calibration;
+  cnum = priv->rate_numerator;
+  cdenom = priv->rate_denominator;
 
   /* avoid divide by 0 */
   if (G_UNLIKELY (cdenom == 0))
@@ -856,9 +870,9 @@
   }
 
   /* make sure the time is increasing */
-  clock->last_time = MAX (ret, clock->last_time);
+  priv->last_time = MAX (ret, priv->last_time);
 
-  return clock->last_time;
+  return priv->last_time;
 }
 
 /**
@@ -881,12 +895,13 @@
 gst_clock_unadjust_unlocked (GstClock * clock, GstClockTime external)
 {
   GstClockTime ret, cinternal, cexternal, cnum, cdenom;
+  GstClockPrivate *priv = clock->priv;
 
   /* get calibration values for readability */
-  cinternal = clock->internal_calibration;
-  cexternal = clock->external_calibration;
-  cnum = clock->rate_numerator;
-  cdenom = clock->rate_denominator;
+  cinternal = priv->internal_calibration;
+  cexternal = priv->external_calibration;
+  cnum = priv->rate_numerator;
+  cdenom = priv->rate_denominator;
 
   /* avoid divide by 0 */
   if (G_UNLIKELY (cnum == 0))
@@ -1023,10 +1038,14 @@
 gst_clock_set_calibration (GstClock * clock, GstClockTime internal, GstClockTime
     external, GstClockTime rate_num, GstClockTime rate_denom)
 {
+  GstClockPrivate *priv;
+
   g_return_if_fail (GST_IS_CLOCK (clock));
   g_return_if_fail (rate_num != GST_CLOCK_TIME_NONE);
   g_return_if_fail (rate_denom > 0 && rate_denom != GST_CLOCK_TIME_NONE);
 
+  priv = clock->priv;
+
   write_seqlock (clock);
   GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, clock,
       "internal %" GST_TIME_FORMAT " external %" GST_TIME_FORMAT " %"
@@ -1034,10 +1053,10 @@
       GST_TIME_ARGS (external), rate_num, rate_denom,
       gst_guint64_to_gdouble (rate_num) / gst_guint64_to_gdouble (rate_denom));
 
-  clock->internal_calibration = internal;
-  clock->external_calibration = external;
-  clock->rate_numerator = rate_num;
-  clock->rate_denominator = rate_denom;
+  priv->internal_calibration = internal;
+  priv->external_calibration = external;
+  priv->rate_numerator = rate_num;
+  priv->rate_denominator = rate_denom;
   write_sequnlock (clock);
 }
 
@@ -1062,19 +1081,22 @@
     GstClockTime * external, GstClockTime * rate_num, GstClockTime * rate_denom)
 {
   gint seq;
+  GstClockPrivate *priv;
 
   g_return_if_fail (GST_IS_CLOCK (clock));
 
+  priv = clock->priv;
+
   do {
     seq = read_seqbegin (clock);
     if (rate_num)
-      *rate_num = clock->rate_numerator;
+      *rate_num = priv->rate_numerator;
     if (rate_denom)
-      *rate_denom = clock->rate_denominator;
+      *rate_denom = priv->rate_denominator;
     if (external)
-      *external = clock->external_calibration;
+      *external = priv->external_calibration;
     if (internal)
-      *internal = clock->internal_calibration;
+      *internal = priv->internal_calibration;
   } while (read_seqretry (clock, seq));
 }
 
@@ -1128,6 +1150,7 @@
 gst_clock_set_master (GstClock * clock, GstClock * master)
 {
   GstClock **master_p;
+  GstClockPrivate *priv;
 
   g_return_val_if_fail (GST_IS_CLOCK (clock), FALSE);
   g_return_val_if_fail (master != clock, FALSE);
@@ -1140,27 +1163,29 @@
       "slaving %p to master clock %p", clock, master);
   GST_OBJECT_UNLOCK (clock);
 
+  priv = clock->priv;
+
   GST_CLOCK_SLAVE_LOCK (clock);
-  if (clock->clockid) {
-    gst_clock_id_unschedule (clock->clockid);
-    gst_clock_id_unref (clock->clockid);
-    clock->clockid = NULL;
+  if (priv->clockid) {
+    gst_clock_id_unschedule (priv->clockid);
+    gst_clock_id_unref (priv->clockid);
+    priv->clockid = NULL;
   }
   if (master) {
-    clock->filling = TRUE;
-    clock->time_index = 0;
+    priv->filling = TRUE;
+    priv->time_index = 0;
     /* use the master periodic id to schedule sampling and
      * clock calibration. */
-    clock->clockid = gst_clock_new_periodic_id (master,
-        gst_clock_get_time (master), clock->timeout);
-    gst_clock_id_wait_async_full (clock->clockid,
+    priv->clockid = gst_clock_new_periodic_id (master,
+        gst_clock_get_time (master), priv->timeout);
+    gst_clock_id_wait_async_full (priv->clockid,
         (GstClockCallback) gst_clock_slave_callback,
         gst_object_ref (clock), (GDestroyNotify) gst_object_unref);
   }
   GST_CLOCK_SLAVE_UNLOCK (clock);
 
   GST_OBJECT_LOCK (clock);
-  master_p = &clock->master;
+  master_p = &priv->master;
   gst_object_replace ((GstObject **) master_p, (GstObject *) master);
   GST_OBJECT_UNLOCK (clock);
 
@@ -1192,12 +1217,15 @@
 gst_clock_get_master (GstClock * clock)
 {
   GstClock *result = NULL;
+  GstClockPrivate *priv;
 
   g_return_val_if_fail (GST_IS_CLOCK (clock), NULL);
 
+  priv = clock->priv;
+
   GST_OBJECT_LOCK (clock);
-  if (clock->master)
-    result = gst_object_ref (clock->master);
+  if (priv->master)
+    result = gst_object_ref (priv->master);
   GST_OBJECT_UNLOCK (clock);
 
   return result;
@@ -1217,12 +1245,15 @@
   GstClockTime *x, *y;
   gint i, j;
   guint n;
+  GstClockPrivate *priv;
 
   xbar = ybar = sxx = syy = sxy = 0;
 
-  x = clock->times;
-  y = clock->times + 2;
-  n = clock->filling ? clock->time_index : clock->window_size;
+  priv = clock->priv;
+
+  x = priv->times;
+  y = priv->times + 2;
+  n = priv->filling ? priv->time_index : priv->window_size;
 
 #ifdef DEBUGGING_ENABLED
   GST_CAT_DEBUG_OBJECT (GST_CAT_CLOCK, clock, "doing regression on:");
@@ -1244,8 +1275,8 @@
       ymin);
 #endif
 
-  newx = clock->times + 1;
-  newy = clock->times + 3;
+  newx = priv->times + 1;
+  newy = priv->times + 3;
 
   /* strip off unnecessary bits of precision */
   for (i = j = 0; i < n; i++, j += 4) {
@@ -1354,27 +1385,29 @@
     GstClockTime master, gdouble * r_squared)
 {
   GstClockTime m_num, m_denom, b, xbase;
+  GstClockPrivate *priv;
 
   g_return_val_if_fail (GST_IS_CLOCK (clock), FALSE);
   g_return_val_if_fail (r_squared != NULL, FALSE);
 
+  priv = clock->priv;
+
   GST_CLOCK_SLAVE_LOCK (clock);
 
   GST_CAT_LOG_OBJECT (GST_CAT_CLOCK, clock,
       "adding observation slave %" GST_TIME_FORMAT ", master %" GST_TIME_FORMAT,
       GST_TIME_ARGS (slave), GST_TIME_ARGS (master));
 
-  clock->times[(4 * clock->time_index)] = slave;
-  clock->times[(4 * clock->time_index) + 2] = master;
+  priv->times[(4 * priv->time_index)] = slave;
+  priv->times[(4 * priv->time_index) + 2] = master;
 
-  clock->time_index++;
-  if (G_UNLIKELY (clock->time_index == clock->window_size)) {
-    clock->filling = FALSE;
-    clock->time_index = 0;
+  priv->time_index++;
+  if (G_UNLIKELY (priv->time_index == priv->window_size)) {
+    priv->filling = FALSE;
+    priv->time_index = 0;
   }
 
-  if (G_UNLIKELY (clock->filling
-          && clock->time_index < clock->window_threshold))
+  if (G_UNLIKELY (priv->filling && priv->time_index < priv->window_threshold))
     goto filling;
 
   if (!do_linear_regression (clock, &m_num, &m_denom, &b, &xbase, r_squared))
@@ -1404,9 +1437,44 @@
   }
 }
 
-static void
-gst_clock_update_stats (GstClock * clock)
+/**
+ * gst_clock_set_timeout:
+ * @clock: a #GstClock
+ * @timeout: a timeout
+ *
+ * Set the amount of time, in nanoseconds, to sample master and slave
+ * clocks
+ */
+void
+gst_clock_set_timeout (GstClock * clock, GstClockTime timeout)
 {
+  g_return_if_fail (GST_IS_CLOCK (clock));
+
+  GST_CLOCK_SLAVE_LOCK (clock);
+  clock->priv->timeout = timeout;
+  GST_CLOCK_SLAVE_UNLOCK (clock);
+}
+
+/**
+ * gst_clock_get_timeout:
+ * @clock: a #GstClock
+ *
+ * Get the amount of time that master and slave clocks are sampled.
+ *
+ * Returns: the interval between samples.
+ */
+GstClockTime
+gst_clock_get_timeout (GstClock * clock)
+{
+  GstClockTime result;
+
+  g_return_val_if_fail (GST_IS_CLOCK (clock), GST_CLOCK_TIME_NONE);
+
+  GST_CLOCK_SLAVE_LOCK (clock);
+  result = clock->priv->timeout;
+  GST_CLOCK_SLAVE_UNLOCK (clock);
+
+  return result;
 }
 
 static void
@@ -1414,37 +1482,29 @@
     const GValue * value, GParamSpec * pspec)
 {
   GstClock *clock;
+  GstClockPrivate *priv;
 
   clock = GST_CLOCK (object);
+  priv = clock->priv;
 
   switch (prop_id) {
-    case PROP_STATS:
-      GST_OBJECT_LOCK (clock);
-      clock->stats = g_value_get_boolean (value);
-      GST_OBJECT_UNLOCK (clock);
-      break;
     case PROP_WINDOW_SIZE:
       GST_CLOCK_SLAVE_LOCK (clock);
-      clock->window_size = g_value_get_int (value);
-      clock->window_threshold =
-          MIN (clock->window_threshold, clock->window_size);
-      clock->times =
-          g_renew (GstClockTime, clock->times, 4 * clock->window_size);
+      priv->window_size = g_value_get_int (value);
+      priv->window_threshold = MIN (priv->window_threshold, priv->window_size);
+      priv->times = g_renew (GstClockTime, priv->times, 4 * priv->window_size);
       /* restart calibration */
-      clock->filling = TRUE;
-      clock->time_index = 0;
+      priv->filling = TRUE;
+      priv->time_index = 0;
       GST_CLOCK_SLAVE_UNLOCK (clock);
       break;
     case PROP_WINDOW_THRESHOLD:
       GST_CLOCK_SLAVE_LOCK (clock);
-      clock->window_threshold =
-          MIN (g_value_get_int (value), clock->window_size);
+      priv->window_threshold = MIN (g_value_get_int (value), priv->window_size);
       GST_CLOCK_SLAVE_UNLOCK (clock);
       break;
     case PROP_TIMEOUT:
-      GST_CLOCK_SLAVE_LOCK (clock);
-      clock->timeout = g_value_get_uint64 (value);
-      GST_CLOCK_SLAVE_UNLOCK (clock);
+      gst_clock_set_timeout (clock, g_value_get_uint64 (value));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1457,29 +1517,24 @@
     GValue * value, GParamSpec * pspec)
 {
   GstClock *clock;
+  GstClockPrivate *priv;
 
   clock = GST_CLOCK (object);
+  priv = clock->priv;
 
   switch (prop_id) {
-    case PROP_STATS:
-      GST_OBJECT_LOCK (clock);
-      g_value_set_boolean (value, clock->stats);
-      GST_OBJECT_UNLOCK (clock);
-      break;
     case PROP_WINDOW_SIZE:
       GST_CLOCK_SLAVE_LOCK (clock);
-      g_value_set_int (value, clock->window_size);
+      g_value_set_int (value, priv->window_size);
       GST_CLOCK_SLAVE_UNLOCK (clock);
       break;
     case PROP_WINDOW_THRESHOLD:
       GST_CLOCK_SLAVE_LOCK (clock);
-      g_value_set_int (value, clock->window_threshold);
+      g_value_set_int (value, priv->window_threshold);
       GST_CLOCK_SLAVE_UNLOCK (clock);
       break;
     case PROP_TIMEOUT:
-      GST_CLOCK_SLAVE_LOCK (clock);
-      g_value_set_uint64 (value, clock->timeout);
-      GST_CLOCK_SLAVE_UNLOCK (clock);
+      g_value_set_uint64 (value, gst_clock_get_timeout (clock));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/gst/gstclock.h b/gst/gstclock.h
index 2bc9d80..253fc09 100644
--- a/gst/gstclock.h
+++ b/gst/gstclock.h
@@ -24,28 +24,23 @@
 #ifndef __GST_CLOCK_H__
 #define __GST_CLOCK_H__
 
-#include <gst/gstobject.h>
-
 G_BEGIN_DECLS
 
 /* --- standard type macros --- */
-#define GST_TYPE_CLOCK			(gst_clock_get_type ())
-#define GST_CLOCK(clock)		(G_TYPE_CHECK_INSTANCE_CAST ((clock), GST_TYPE_CLOCK, GstClock))
-#define GST_IS_CLOCK(clock)		(G_TYPE_CHECK_INSTANCE_TYPE ((clock), GST_TYPE_CLOCK))
-#define GST_CLOCK_CLASS(cclass)		(G_TYPE_CHECK_CLASS_CAST ((cclass), GST_TYPE_CLOCK, GstClockClass))
-#define GST_IS_CLOCK_CLASS(cclass)	(G_TYPE_CHECK_CLASS_TYPE ((cclass), GST_TYPE_CLOCK))
-#define GST_CLOCK_GET_CLASS(clock)	(G_TYPE_INSTANCE_GET_CLASS ((clock), GST_TYPE_CLOCK, GstClockClass))
-#define GST_CLOCK_CAST(clock)		((GstClock*)(clock))
-
-#define GST_CLOCK_SLAVE_LOCK(clock)	g_mutex_lock (GST_CLOCK_CAST (clock)->slave_lock)
-#define GST_CLOCK_SLAVE_UNLOCK(clock)	g_mutex_unlock (GST_CLOCK_CAST (clock)->slave_lock)
+#define GST_TYPE_CLOCK                  (gst_clock_get_type ())
+#define GST_CLOCK(clock)                (G_TYPE_CHECK_INSTANCE_CAST ((clock), GST_TYPE_CLOCK, GstClock))
+#define GST_IS_CLOCK(clock)             (G_TYPE_CHECK_INSTANCE_TYPE ((clock), GST_TYPE_CLOCK))
+#define GST_CLOCK_CLASS(cclass)         (G_TYPE_CHECK_CLASS_CAST ((cclass), GST_TYPE_CLOCK, GstClockClass))
+#define GST_IS_CLOCK_CLASS(cclass)      (G_TYPE_CHECK_CLASS_TYPE ((cclass), GST_TYPE_CLOCK))
+#define GST_CLOCK_GET_CLASS(clock)      (G_TYPE_INSTANCE_GET_CLASS ((clock), GST_TYPE_CLOCK, GstClockClass))
+#define GST_CLOCK_CAST(clock)           ((GstClock*)(clock))
 
 /**
  * GstClockTime:
  *
  * A datatype to hold a time, measured in nanoseconds.
  */
-typedef guint64	GstClockTime;
+typedef guint64 GstClockTime;
 
 /**
  * GST_TYPE_CLOCK_TIME:
@@ -72,37 +67,50 @@
  *
  * Constant to define an undefined clock time.
  */
-#define GST_CLOCK_TIME_NONE		((GstClockTime) -1)
+#define GST_CLOCK_TIME_NONE             ((GstClockTime) -1)
 /**
  * GST_CLOCK_TIME_IS_VALID:
  * @time: clock time to validate
  *
  * Tests if a given #GstClockTime represents a valid defined time.
  */
-#define GST_CLOCK_TIME_IS_VALID(time)	(((GstClockTime)(time)) != GST_CLOCK_TIME_NONE)
+#define GST_CLOCK_TIME_IS_VALID(time)   (((GstClockTime)(time)) != GST_CLOCK_TIME_NONE)
 
+/* FIXME: still need to explicitly force types on the defines below */
 /**
  * GST_SECOND:
  *
  * Constant that defines one GStreamer second.
+ *
+ * Value: 1000000000
+ *
  */
 #define GST_SECOND  (G_USEC_PER_SEC * G_GINT64_CONSTANT (1000))
 /**
  * GST_MSECOND:
  *
  * Constant that defines one GStreamer millisecond.
+ *
+ * Value: 1000000
+ *
  */
 #define GST_MSECOND (GST_SECOND / G_GINT64_CONSTANT (1000))
 /**
  * GST_USECOND:
  *
  * Constant that defines one GStreamer microsecond.
+ *
+ * Value: 1000
+ *
  */
 #define GST_USECOND (GST_SECOND / G_GINT64_CONSTANT (1000000))
 /**
  * GST_NSECOND:
  *
  * Constant that defines one GStreamer nanosecond
+ *
+ * Value: 1
+ *
  */
 #define GST_NSECOND (GST_SECOND / G_GINT64_CONSTANT (1000000000))
 
@@ -152,7 +160,7 @@
  * Calculate a difference between two clock times as a #GstClockTimeDiff.
  * The difference is calculated as @e - @s.
  */
-#define GST_CLOCK_DIFF(s, e)		(GstClockTimeDiff)((e) - (s))
+#define GST_CLOCK_DIFF(s, e)            (GstClockTimeDiff)((e) - (s))
 
 /**
  * GST_TIMEVAL_TO_TIME:
@@ -160,7 +168,7 @@
  *
  * Convert a #GTimeVal to a #GstClockTime.
  */
-#define GST_TIMEVAL_TO_TIME(tv)		(GstClockTime)((tv).tv_sec * GST_SECOND + (tv).tv_usec * GST_USECOND)
+#define GST_TIMEVAL_TO_TIME(tv)         (GstClockTime)((tv).tv_sec * GST_SECOND + (tv).tv_usec * GST_USECOND)
 
 /**
  * GST_TIME_TO_TIMEVAL:
@@ -173,12 +181,12 @@
  * which is about 68 years.  Expect trouble if you want to schedule stuff
  * in your pipeline for 2038.</note>
  */
-#define GST_TIME_TO_TIMEVAL(t,tv)				\
-G_STMT_START {							\
-  (tv).tv_sec  = ((GstClockTime) (t)) / GST_SECOND;		\
-  (tv).tv_usec = (((GstClockTime) (t)) -			\
-                  ((GstClockTime) (tv).tv_sec) * GST_SECOND)	\
-                 / GST_USECOND;					\
+#define GST_TIME_TO_TIMEVAL(t,tv)                               \
+G_STMT_START {                                                  \
+  (tv).tv_sec  = ((GstClockTime) (t)) / GST_SECOND;             \
+  (tv).tv_usec = (((GstClockTime) (t)) -                        \
+                  ((GstClockTime) (tv).tv_sec) * GST_SECOND)    \
+                 / GST_USECOND;                                 \
 } G_STMT_END
 
 /**
@@ -187,7 +195,7 @@
  *
  * Convert a struct timespec (see man pselect) to a #GstClockTime.
  */
-#define GST_TIMESPEC_TO_TIME(ts)	(GstClockTime)((ts).tv_sec * GST_SECOND + (ts).tv_nsec * GST_NSECOND)
+#define GST_TIMESPEC_TO_TIME(ts)        (GstClockTime)((ts).tv_sec * GST_SECOND + (ts).tv_nsec * GST_NSECOND)
 /**
  * GST_TIME_TO_TIMESPEC:
  * @t: The #GstClockTime to convert
@@ -195,10 +203,10 @@
  *
  * Convert a #GstClockTime to a struct timespec (see man pselect)
  */
-#define GST_TIME_TO_TIMESPEC(t,ts)			\
-G_STMT_START {						\
-  (ts).tv_sec  =  (t) / GST_SECOND;			\
-  (ts).tv_nsec = ((t) - (ts).tv_sec * GST_SECOND) / GST_NSECOND;	\
+#define GST_TIME_TO_TIMESPEC(t,ts)                      \
+G_STMT_START {                                          \
+  (ts).tv_sec  =  (t) / GST_SECOND;                     \
+  (ts).tv_nsec = ((t) - (ts).tv_sec * GST_SECOND) / GST_NSECOND;        \
 } G_STMT_END
 
 /* timestamp debugging macros */
@@ -232,17 +240,10 @@
         GST_CLOCK_TIME_IS_VALID (t) ? \
         (guint) (((GstClockTime)(t)) % GST_SECOND) : 999999999
 
-/**
- * GST_CLOCK_ENTRY_TRACE_NAME:
- *
- * The name used for tracing clock entry allocations.
- */
-#define GST_CLOCK_ENTRY_TRACE_NAME "GstClockEntry"
-
-typedef struct _GstClockEntry	GstClockEntry;
-typedef struct _GstClock	GstClock;
-typedef struct _GstClockClass	GstClockClass;
-typedef struct _GstClockPrivate	GstClockPrivate;
+typedef struct _GstClockEntry   GstClockEntry;
+typedef struct _GstClock        GstClock;
+typedef struct _GstClockClass   GstClockClass;
+typedef struct _GstClockPrivate GstClockPrivate;
 
 /* --- prototype for async callbacks --- */
 /**
@@ -256,8 +257,8 @@
  *
  * Returns: %TRUE or %FALSE (currently unused)
  */
-typedef gboolean	(*GstClockCallback)	(GstClock *clock, GstClockTime time,
-						 GstClockID id, gpointer user_data);
+typedef gboolean        (*GstClockCallback)     (GstClock *clock, GstClockTime time,
+                                                 GstClockID id, gpointer user_data);
 /**
  * GstClockReturn:
  * @GST_CLOCK_OK: The operation succeeded.
@@ -273,14 +274,14 @@
  */
 typedef enum
 {
-  GST_CLOCK_OK		=  0,
-  GST_CLOCK_EARLY	=  1,
-  GST_CLOCK_UNSCHEDULED	=  2,
-  GST_CLOCK_BUSY	=  3,
-  GST_CLOCK_BADTIME	=  4,
-  GST_CLOCK_ERROR	=  5,
-  GST_CLOCK_UNSUPPORTED	=  6,
-  GST_CLOCK_DONE	=  7
+  GST_CLOCK_OK          =  0,
+  GST_CLOCK_EARLY       =  1,
+  GST_CLOCK_UNSCHEDULED =  2,
+  GST_CLOCK_BUSY        =  3,
+  GST_CLOCK_BADTIME     =  4,
+  GST_CLOCK_ERROR       =  5,
+  GST_CLOCK_UNSUPPORTED =  6,
+  GST_CLOCK_DONE        =  7
 } GstClockReturn;
 
 /**
@@ -301,42 +302,42 @@
  *
  * Cast to a clock entry
  */
-#define GST_CLOCK_ENTRY(entry)		((GstClockEntry *)(entry))
+#define GST_CLOCK_ENTRY(entry)          ((GstClockEntry *)(entry))
 /**
  * GST_CLOCK_ENTRY_CLOCK:
  * @entry: the entry to query
  *
  * Get the owner clock of the entry
  */
-#define GST_CLOCK_ENTRY_CLOCK(entry)	((entry)->clock)
+#define GST_CLOCK_ENTRY_CLOCK(entry)    ((entry)->clock)
 /**
  * GST_CLOCK_ENTRY_TYPE:
  * @entry: the entry to query
  *
  * Get the type of the clock entry
  */
-#define GST_CLOCK_ENTRY_TYPE(entry)	((entry)->type)
+#define GST_CLOCK_ENTRY_TYPE(entry)     ((entry)->type)
 /**
  * GST_CLOCK_ENTRY_TIME:
  * @entry: the entry to query
  *
  * Get the requested time of this entry
  */
-#define GST_CLOCK_ENTRY_TIME(entry)	((entry)->time)
+#define GST_CLOCK_ENTRY_TIME(entry)     ((entry)->time)
 /**
  * GST_CLOCK_ENTRY_INTERVAL:
  * @entry: the entry to query
  *
  * Get the interval of this periodic entry
  */
-#define GST_CLOCK_ENTRY_INTERVAL(entry)	((entry)->interval)
+#define GST_CLOCK_ENTRY_INTERVAL(entry) ((entry)->interval)
 /**
  * GST_CLOCK_ENTRY_STATUS:
  * @entry: the entry to query
  *
  * The status of the entry
  */
-#define GST_CLOCK_ENTRY_STATUS(entry)	((entry)->status)
+#define GST_CLOCK_ENTRY_STATUS(entry)   ((entry)->status)
 
 /**
  * GstClockEntry:
@@ -348,20 +349,24 @@
  * not be extended or allocated using a custom allocator.
  */
 struct _GstClockEntry {
-  gint			refcount;
+  gint                  refcount;
   /*< protected >*/
-  GstClock		*clock;
-  GstClockEntryType	 type;
-  GstClockTime		 time;
-  GstClockTime		 interval;
-  GstClockReturn	 status;
-  GstClockCallback	 func;
-  gpointer		 user_data;
-  GDestroyNotify	 destroy_data;
+  GstClock              *clock;
+  GstClockEntryType      type;
+  GstClockTime           time;
+  GstClockTime           interval;
+  GstClockReturn         status;
+  GstClockCallback       func;
+  gpointer               user_data;
+  GDestroyNotify         destroy_data;
   gboolean               unscheduled;
   gboolean               woken_up;
+
+  gpointer _gst_reserved[GST_PADDING];
 };
 
+#include <gst/gstobject.h>
+
 /**
  * GstClockFlags:
  * @GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC: clock can do a single sync timeout request
@@ -382,7 +387,7 @@
   GST_CLOCK_FLAG_CAN_SET_RESOLUTION     = (GST_OBJECT_FLAG_LAST << 4),
   GST_CLOCK_FLAG_CAN_SET_MASTER         = (GST_OBJECT_FLAG_LAST << 5),
   /* padding */
-  GST_CLOCK_FLAG_LAST		        = (GST_OBJECT_FLAG_LAST << 8)
+  GST_CLOCK_FLAG_LAST                   = (GST_OBJECT_FLAG_LAST << 8)
 } GstClockFlags;
 
 /**
@@ -394,78 +399,18 @@
 #define GST_CLOCK_FLAGS(clock)  GST_OBJECT_FLAGS(clock)
 
 /**
- * GST_CLOCK_COND:
- * @clock: the clock to query
- *
- * Gets the #GCond that gets signalled when the entries of the clock
- * changed.
- */
-#define GST_CLOCK_COND(clock)            (GST_CLOCK_CAST(clock)->entries_changed)
-/**
- * GST_CLOCK_WAIT:
- * @clock: the clock to wait on
- *
- * Wait on the clock until the entries changed.
- */
-#define GST_CLOCK_WAIT(clock)            g_cond_wait(GST_CLOCK_COND(clock),GST_OBJECT_GET_LOCK(clock))
-/**
- * GST_CLOCK_TIMED_WAIT:
- * @clock: the clock to wait on
- * @tv: a #GTimeVal to wait.
- *
- * Wait on the clock until the entries changed or the specified timeout
- * occurred.
- */
-#define GST_CLOCK_TIMED_WAIT(clock,tv)   g_cond_timed_wait(GST_CLOCK_COND(clock),GST_OBJECT_GET_LOCK(clock),tv)
-/**
- * GST_CLOCK_BROADCAST:
- * @clock: the clock to broadcast
- *
- * Signal that the entries in the clock have changed.
- */
-#define GST_CLOCK_BROADCAST(clock)       g_cond_broadcast(GST_CLOCK_COND(clock))
-
-/**
  * GstClock:
  *
  * #GstClock base structure. The values of this structure are
  * protected for subclasses, use the methods to use the #GstClock.
  */
 struct _GstClock {
-  GstObject	 object;
-
-  GMutex	*slave_lock; /* order: SLAVE_LOCK, OBJECT_LOCK */
-
-  /*< protected >*/ /* with LOCK */
-  GstClockTime	 internal_calibration;
-  GstClockTime	 external_calibration;
-  GstClockTime	 rate_numerator;
-  GstClockTime	 rate_denominator;
-  GstClockTime	 last_time;
-  GList		*entries;
-  GCond		*entries_changed;
-
-  /*< private >*/ /* with LOCK */
-  GstClockTime	 resolution;
-  gboolean	 stats;
-
-  /* for master/slave clocks */
-  GstClock      *master;
-
-  /* with SLAVE_LOCK */
-  gboolean       filling;
-  gint           window_size;
-  gint           window_threshold;
-  gint           time_index;
-  GstClockTime   timeout;
-  GstClockTime  *times;
-  GstClockID     clockid;
+  GstObject      object;
 
   /*< private >*/
-  union {
-    GstClockPrivate *priv;
-    GstClockTime     _gst_reserved[GST_PADDING];
-  } ABI;
+  GstClockPrivate *priv;
+
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 /**
@@ -491,83 +436,88 @@
   /* vtable */
   GstClockTime          (*change_resolution)    (GstClock *clock,
                                                  GstClockTime old_resolution,
-						 GstClockTime new_resolution);
+                                                 GstClockTime new_resolution);
   GstClockTime          (*get_resolution)       (GstClock *clock);
 
-  GstClockTime		(*get_internal_time)	(GstClock *clock);
+  GstClockTime          (*get_internal_time)    (GstClock *clock);
 
   /* waiting on an ID */
   GstClockReturn        (*wait)                 (GstClock *clock, GstClockEntry *entry,
-		                                 GstClockTimeDiff *jitter);
+                                                 GstClockTimeDiff *jitter);
   GstClockReturn        (*wait_async)           (GstClock *clock, GstClockEntry *entry);
-  void                  (*unschedule)		(GstClock *clock, GstClockEntry *entry);
+  void                  (*unschedule)           (GstClock *clock, GstClockEntry *entry);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GType			gst_clock_get_type		(void);
+GType                   gst_clock_get_type              (void);
 
-GstClockTime		gst_clock_set_resolution	(GstClock *clock,
+GstClockTime            gst_clock_set_resolution        (GstClock *clock,
                                                          GstClockTime resolution);
-GstClockTime		gst_clock_get_resolution	(GstClock *clock);
+GstClockTime            gst_clock_get_resolution        (GstClock *clock);
 
-GstClockTime		gst_clock_get_time		(GstClock *clock);
-void			gst_clock_set_calibration	(GstClock *clock, GstClockTime internal,
+GstClockTime            gst_clock_get_time              (GstClock *clock);
+void                    gst_clock_set_calibration       (GstClock *clock, GstClockTime internal,
                                                          GstClockTime external,
                                                          GstClockTime rate_num,
                                                          GstClockTime rate_denom);
-void			gst_clock_get_calibration	(GstClock *clock, GstClockTime *internal,
+void                    gst_clock_get_calibration       (GstClock *clock, GstClockTime *internal,
                                                          GstClockTime *external,
                                                          GstClockTime *rate_num,
                                                          GstClockTime *rate_denom);
 
 /* master/slave clocks */
-gboolean		gst_clock_set_master		(GstClock *clock, GstClock *master);
-GstClock*		gst_clock_get_master		(GstClock *clock);
-gboolean		gst_clock_add_observation       (GstClock *clock, GstClockTime slave,
-							 GstClockTime master, gdouble *r_squared);
+gboolean                gst_clock_set_master            (GstClock *clock, GstClock *master);
+GstClock*               gst_clock_get_master            (GstClock *clock);
+
+void                    gst_clock_set_timeout           (GstClock *clock,
+                                                         GstClockTime timeout);
+GstClockTime            gst_clock_get_timeout           (GstClock *clock);
+
+gboolean                gst_clock_add_observation       (GstClock *clock, GstClockTime slave,
+                                                         GstClockTime master, gdouble *r_squared);
 
 
 /* getting and adjusting internal/external time */
-GstClockTime		gst_clock_get_internal_time	(GstClock *clock);
-GstClockTime		gst_clock_adjust_unlocked	(GstClock *clock, GstClockTime internal);
+GstClockTime            gst_clock_get_internal_time     (GstClock *clock);
+GstClockTime            gst_clock_adjust_unlocked       (GstClock *clock, GstClockTime internal);
 GstClockTime            gst_clock_unadjust_unlocked     (GstClock * clock, GstClockTime external);
 
 
 /* creating IDs that can be used to get notifications */
-GstClockID		gst_clock_new_single_shot_id	(GstClock *clock,
-							 GstClockTime time);
-GstClockID		gst_clock_new_periodic_id	(GstClock *clock,
-							 GstClockTime start_time,
-							 GstClockTime interval);
+GstClockID              gst_clock_new_single_shot_id    (GstClock *clock,
+                                                         GstClockTime time);
+GstClockID              gst_clock_new_periodic_id       (GstClock *clock,
+                                                         GstClockTime start_time,
+                                                         GstClockTime interval);
 
 /* reference counting */
 GstClockID              gst_clock_id_ref                (GstClockID id);
 void                    gst_clock_id_unref              (GstClockID id);
 
 /* operations on IDs */
-gint			gst_clock_id_compare_func	(gconstpointer id1, gconstpointer id2);
+gint                    gst_clock_id_compare_func       (gconstpointer id1, gconstpointer id2);
 
-GstClockTime		gst_clock_id_get_time		(GstClockID id);
-GstClockReturn		gst_clock_id_wait		(GstClockID id,
-							 GstClockTimeDiff *jitter);
-GstClockReturn		gst_clock_id_wait_async		(GstClockID id,
-							 GstClockCallback func,
-							 gpointer user_data);
-GstClockReturn		gst_clock_id_wait_async_full	(GstClockID id,
-							 GstClockCallback func,
-							 gpointer user_data,
-							 GDestroyNotify destroy_data);
-void			gst_clock_id_unschedule		(GstClockID id);
+GstClockTime            gst_clock_id_get_time           (GstClockID id);
+GstClockReturn          gst_clock_id_wait               (GstClockID id,
+                                                         GstClockTimeDiff *jitter);
+GstClockReturn          gst_clock_id_wait_async         (GstClockID id,
+                                                         GstClockCallback func,
+                                                         gpointer user_data);
+GstClockReturn          gst_clock_id_wait_async_full    (GstClockID id,
+                                                         GstClockCallback func,
+                                                         gpointer user_data,
+                                                         GDestroyNotify destroy_data);
+void                    gst_clock_id_unschedule         (GstClockID id);
 
 gboolean                gst_clock_single_shot_id_reinit (GstClock * clock,
-							 GstClockID id,
-							 GstClockTime time);
+                                                         GstClockID id,
+                                                         GstClockTime time);
 gboolean                gst_clock_periodic_id_reinit    (GstClock * clock,
-							 GstClockID id,
-							 GstClockTime start_time,
-							 GstClockTime interval);
+                                                         GstClockID id,
+                                                         GstClockTime start_time,
+                                                         GstClockTime interval);
 
 G_END_DECLS
 
diff --git a/gst/gstcompat.h b/gst/gstcompat.h
index cba5fc2..a35c6ce 100644
--- a/gst/gstcompat.h
+++ b/gst/gstcompat.h
@@ -49,8 +49,12 @@
 
 //#define gst_buffer_create_sub(b,o,s)           gst_buffer_copy_region(b,GST_BUFFER_COPY_ALL,o,s)
 
-#define gst_buffer_new_and_alloc(s)            gst_buffer_new_allocate(NULL, s, 0)
+#define gst_buffer_new_and_alloc(s)            gst_buffer_new_allocate(NULL, s, NULL)
 
+#define GST_BUFFER_TIMESTAMP          GST_BUFFER_PTS
+#define GST_BUFFER_TIMESTAMP_IS_VALID GST_BUFFER_PTS_IS_VALID
+
+#define gst_adapter_prev_timestamp    gst_adapter_prev_pts
 
 #ifndef GST_DISABLE_DEPRECATED
 
diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in
index 7af2496..31ea674 100644
--- a/gst/gstconfig.h.in
+++ b/gst/gstconfig.h.in
@@ -193,7 +193,11 @@
 #endif
 #else /* not _MSC_VER */
 #define GST_PLUGIN_EXPORT
+#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+#define GST_EXPORT extern __attribute__ ((visibility ("default")))
+#else
 #define GST_EXPORT extern
 #endif
+#endif
 
 #endif /* __GST_CONFIG_H__ */
diff --git a/gst/gstcontrolbinding.c b/gst/gstcontrolbinding.c
new file mode 100644
index 0000000..74d078e
--- /dev/null
+++ b/gst/gstcontrolbinding.c
@@ -0,0 +1,325 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstcontrolbinding.c: Attachment for control sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/**
+ * SECTION:gstcontrolbinding
+ * @short_description: attachment for control source sources
+ *
+ * A value mapping object that attaches control sources to gobject properties.
+ */
+
+#include "gst_private.h"
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include "gstcontrolbinding.h"
+
+#include <math.h>
+
+#define GST_CAT_DEFAULT control_binding_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gstcontrolbinding", 0, \
+      "dynamic parameter control source attachment");
+
+static GObject *gst_control_binding_constructor (GType type,
+    guint n_construct_params, GObjectConstructParam * construct_params);
+static void gst_control_binding_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_control_binding_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_control_binding_dispose (GObject * object);
+static void gst_control_binding_finalize (GObject * object);
+
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstControlBinding, gst_control_binding,
+    GST_TYPE_OBJECT, _do_init);
+
+enum
+{
+  PROP_0,
+  PROP_OBJECT,
+  PROP_NAME,
+  PROP_LAST
+};
+
+static GParamSpec *properties[PROP_LAST];
+
+static void
+gst_control_binding_class_init (GstControlBindingClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gobject_class->constructor = gst_control_binding_constructor;
+  gobject_class->set_property = gst_control_binding_set_property;
+  gobject_class->get_property = gst_control_binding_get_property;
+  gobject_class->dispose = gst_control_binding_dispose;
+  gobject_class->finalize = gst_control_binding_finalize;
+
+  properties[PROP_OBJECT] =
+      g_param_spec_object ("object", "Object",
+      "The object of the property", GST_TYPE_OBJECT,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  properties[PROP_NAME] =
+      g_param_spec_string ("name", "Name", "The name of the property", NULL,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, properties);
+}
+
+static void
+gst_control_binding_init (GstControlBinding * self)
+{
+}
+
+static GObject *
+gst_control_binding_constructor (GType type, guint n_construct_params,
+    GObjectConstructParam * construct_params)
+{
+  GstControlBinding *self;
+  GParamSpec *pspec;
+
+  self = GST_CONTROL_BINDING (G_OBJECT_CLASS (gst_control_binding_parent_class)
+      ->constructor (type, n_construct_params, construct_params));
+
+  GST_INFO_OBJECT (self->object, "trying to put property '%s' under control",
+      self->name);
+
+  /* check if the object has a property of that name */
+  if ((pspec =
+          g_object_class_find_property (G_OBJECT_GET_CLASS (self->object),
+              self->name))) {
+    GST_DEBUG_OBJECT (self->object, "  psec->flags : 0x%08x", pspec->flags);
+
+    /* check if this param is witable && controlable && !construct-only */
+    if ((pspec->flags & (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE |
+                G_PARAM_CONSTRUCT_ONLY)) ==
+        (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE)) {
+      self->pspec = pspec;
+    }
+  } else {
+    GST_WARNING_OBJECT (self->object, "class '%s' has no property '%s'",
+        G_OBJECT_TYPE_NAME (self->object), self->name);
+  }
+  return (GObject *) self;
+}
+
+static void
+gst_control_binding_dispose (GObject * object)
+{
+  GstControlBinding *self = GST_CONTROL_BINDING (object);
+
+  if (self->object)
+    gst_object_replace (&self->object, NULL);
+
+  ((GObjectClass *) gst_control_binding_parent_class)->dispose (object);
+}
+
+static void
+gst_control_binding_finalize (GObject * object)
+{
+  GstControlBinding *self = GST_CONTROL_BINDING (object);
+
+  g_free (self->name);
+
+  ((GObjectClass *) gst_control_binding_parent_class)->finalize (object);
+}
+
+static void
+gst_control_binding_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstControlBinding *self = GST_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_OBJECT:
+      self->object = g_value_dup_object (value);
+      break;
+    case PROP_NAME:
+      self->name = g_value_dup_string (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_control_binding_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstControlBinding *self = GST_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_OBJECT:
+      g_value_set_object (value, self->object);
+      break;
+    case PROP_NAME:
+      g_value_set_string (value, self->name);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+/* functions */
+
+/**
+ * gst_control_binding_sync_values:
+ * @self: the control binding
+ * @object: the object that has controlled properties
+ * @timestamp: the time that should be processed
+ * @last_sync: the last time this was called
+ *
+ * Sets the property of the @object, according to the #GstControlSources that
+ * handle them and for the given timestamp.
+ *
+ * If this function fails, it is most likely the application developers fault.
+ * Most probably the control sources are not setup correctly.
+ *
+ * Returns: %TRUE if the controller value could be applied to the object
+ * property, %FALSE otherwise
+ */
+gboolean
+gst_control_binding_sync_values (GstControlBinding * self, GstObject * object,
+    GstClockTime timestamp, GstClockTime last_sync)
+{
+  GstControlBindingClass *klass;
+  gboolean ret = FALSE;
+
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), FALSE);
+
+  if (self->disabled)
+    return TRUE;
+
+  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+
+  if (G_LIKELY (klass->sync_values != NULL)) {
+    ret = klass->sync_values (self, object, timestamp, last_sync);
+  } else {
+    GST_WARNING_OBJECT (self, "missing sync_values implementation");
+  }
+  return ret;
+}
+
+/**
+ * gst_control_binding_get_value:
+ * @self: the control binding
+ * @timestamp: the time the control-change should be read from
+ *
+ * Gets the value for the given controlled property at the requested time.
+ *
+ * Returns: the GValue of the property at the given time, or %NULL if the
+ * property isn't controlled.
+ */
+GValue *
+gst_control_binding_get_value (GstControlBinding * self, GstClockTime timestamp)
+{
+  GstControlBindingClass *klass;
+  GValue *ret = NULL;
+
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), NULL);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
+
+  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+
+  if (G_LIKELY (klass->get_value != NULL)) {
+    ret = klass->get_value (self, timestamp);
+  } else {
+    GST_WARNING_OBJECT (self, "missing get_value implementation");
+  }
+  return ret;
+}
+
+/**
+ * gst_control_binding_get_value_array:
+ * @self: the control binding
+ * @timestamp: the time that should be processed
+ * @interval: the time spacing between subsequent values
+ * @n_values: the number of values
+ * @values: array to put control-values in
+ *
+ * Gets a number of values for the given controllered property starting at the
+ * requested time. The array @values need to hold enough space for @n_values of
+ * the same type as the objects property's type.
+ *
+ * This function is useful if one wants to e.g. draw a graph of the control
+ * curve or apply a control curve sample by sample.
+ *
+ * Returns: %TRUE if the given array could be filled, %FALSE otherwise
+ */
+gboolean
+gst_control_binding_get_value_array (GstControlBinding * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values)
+{
+  GstControlBindingClass *klass;
+  gboolean ret = FALSE;
+
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
+  g_return_val_if_fail (values, FALSE);
+
+  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+
+  if (G_LIKELY (klass->get_value_array != NULL)) {
+    ret = klass->get_value_array (self, timestamp, interval, n_values, values);
+  } else {
+    GST_WARNING_OBJECT (self, "missing get_value_array implementation");
+  }
+  return ret;
+}
+
+/**
+ * gst_control_binding_set_disabled:
+ * @self: the control binding
+ * @disabled: boolean that specifies whether to disable the controller
+ * or not.
+ *
+ * This function is used to disable a control binding for some time, i.e.
+ * gst_object_sync_values() will do nothing.
+ */
+void
+gst_control_binding_set_disabled (GstControlBinding * self, gboolean disabled)
+{
+  g_return_if_fail (GST_IS_CONTROL_BINDING (self));
+  self->disabled = disabled;
+}
+
+/**
+ * gst_control_binding_is_disabled:
+ * @self: the control binding
+ *
+ * Check if the control binding is disabled.
+ *
+ * Returns: %TRUE if the binding is inactive
+ */
+gboolean
+gst_control_binding_is_disabled (GstControlBinding * self)
+{
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), TRUE);
+  return (self->disabled == TRUE);
+}
diff --git a/gst/gstcontrolbinding.h b/gst/gstcontrolbinding.h
new file mode 100644
index 0000000..96652fa
--- /dev/null
+++ b/gst/gstcontrolbinding.h
@@ -0,0 +1,119 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstcontrolbinding.h: Attachment for control sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_CONTROL_BINDING_H__
+#define __GST_CONTROL_BINDING_H__
+
+#include <gst/gstconfig.h>
+
+#include <glib-object.h>
+
+#include <gst/gstcontrolsource.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_CONTROL_BINDING \
+  (gst_control_binding_get_type())
+#define GST_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CONTROL_BINDING,GstControlBinding))
+#define GST_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CONTROL_BINDING,GstControlBindingClass))
+#define GST_IS_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CONTROL_BINDING))
+#define GST_IS_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CONTROL_BINDING))
+#define GST_CONTROL_BINDING_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CONTOL_SOURCE, GstControlBindingClass))
+
+typedef struct _GstControlBinding GstControlBinding;
+typedef struct _GstControlBindingClass GstControlBindingClass;
+
+/**
+ * GstControlBindingConvert:
+ * @self: the #GstControlBinding instance
+ * @src_value: the value returned by the cotnrol source
+ * @dest_value: the target GValue
+ *
+ * Function to map a control-value to the target GValue.
+ */
+typedef void (* GstControlBindingConvert) (GstControlBinding *self, gdouble src_value, GValue *dest_value);
+
+/**
+ * GstControlBinding:
+ * @name: name of the property of this binding
+ *
+ * The instance structure of #GstControlBinding.
+ */
+struct _GstControlBinding {
+  GstObject parent;
+  
+  /*< public >*/
+  gchar *name;                  /* name of the property */
+  GParamSpec *pspec;            /* GParamSpec for this property */
+
+  /*< private >*/
+  GstObject *object;            /* GstObject owning the property
+                                 * (== parent when bound) */
+  gboolean disabled;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstControlBindingClass:
+ * @parent_class: Parent class
+ * @convert: Class method to convert control-values
+ *
+ * The class structure of #GstControlBinding.
+ */
+
+struct _GstControlBindingClass
+{
+  GstObjectClass parent_class;
+
+  /* virtual methods */
+  gboolean (* sync_values) (GstControlBinding *self, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
+  GValue * (* get_value) (GstControlBinding *self, GstClockTime timestamp);
+  gboolean (* get_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+#define GST_CONTROL_BINDING_PSPEC(cb) (((GstControlBinding *) cb)->pspec)
+
+GType gst_control_binding_get_type (void);
+
+/* Functions */
+
+gboolean            gst_control_binding_sync_values        (GstControlBinding * self, GstObject *object, 
+                                                            GstClockTime timestamp, GstClockTime last_sync);
+GValue *            gst_control_binding_get_value          (GstControlBinding *binding,
+                                                            GstClockTime timestamp);
+gboolean            gst_control_binding_get_value_array    (GstControlBinding *binding, GstClockTime timestamp,
+                                                            GstClockTime interval, guint n_values, GValue *values);
+
+void                gst_control_binding_set_disabled       (GstControlBinding * self, gboolean disabled);
+gboolean            gst_control_binding_is_disabled        (GstControlBinding * self);
+G_END_DECLS
+
+#endif /* __GST_CONTROL_BINDING_H__ */
diff --git a/libs/gst/controller/gstcontrolsource.c b/gst/gstcontrolsource.c
similarity index 65%
rename from libs/gst/controller/gstcontrolsource.c
rename to gst/gstcontrolsource.c
index 0d7d47a..b75c2ee 100644
--- a/libs/gst/controller/gstcontrolsource.c
+++ b/gst/gstcontrolsource.c
@@ -41,36 +41,53 @@
  *
  */
 
+#include "gst_private.h"
+
 #include <glib-object.h>
 #include <gst/gst.h>
 
 #include "gstcontrolsource.h"
 
-#define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
+#define GST_CAT_DEFAULT control_source_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-G_DEFINE_ABSTRACT_TYPE (GstControlSource, gst_control_source, G_TYPE_OBJECT);
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gstcontrolsource", 0, \
+      "dynamic parameter control sources");
 
-static GObjectClass *parent_class = NULL;
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstControlSource, gst_control_source,
+    GST_TYPE_OBJECT, _do_init);
+
+static GObject *gst_control_source_constructor (GType type,
+    guint n_construct_params, GObjectConstructParam * construct_params);
 
 static void
 gst_control_source_class_init (GstControlSourceClass * klass)
 {
-  //GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
-
-  /* Has to be implemented by children */
-  klass->bind = NULL;
+  gobject_class->constructor = gst_control_source_constructor;
 }
 
 static void
 gst_control_source_init (GstControlSource * self)
 {
-  /* Set default handlers that print a warning */
   self->get_value = NULL;
   self->get_value_array = NULL;
-  self->bound = FALSE;
+}
+
+static GObject *
+gst_control_source_constructor (GType type, guint n_construct_params,
+    GObjectConstructParam * construct_params)
+{
+  GObject *self;
+
+  self =
+      G_OBJECT_CLASS (gst_control_source_parent_class)->constructor (type,
+      n_construct_params, construct_params);
+  gst_object_ref_sink (self);
+
+  return self;
 }
 
 /**
@@ -85,7 +102,7 @@
  */
 gboolean
 gst_control_source_get_value (GstControlSource * self, GstClockTime timestamp,
-    GValue * value)
+    gdouble * value)
 {
   g_return_val_if_fail (GST_IS_CONTROL_SOURCE (self), FALSE);
 
@@ -100,56 +117,26 @@
 /**
  * gst_control_source_get_value_array:
  * @self: the #GstControlSource object
- * @timestamp: the time that should be processed
+ * @timestamp: the first timestamp
+ * @interval: the time steps
+ * @n_values: the number of values to fetch
  * @value_array: array to put control-values in
  *
- * Gets an array of values for one element property.
- *
- * All fields of @value_array must be filled correctly. Especially the
- * @value_array->values array must be big enough to keep the requested amount
- * of values.
- *
- * The type of the values in the array is the same as the property's type.
+ * Gets an array of values for for this #GstControlSource.
  *
  * Returns: %TRUE if the given array could be filled, %FALSE otherwise
  */
 gboolean
 gst_control_source_get_value_array (GstControlSource * self,
-    GstClockTime timestamp, GstValueArray * value_array)
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
 {
   g_return_val_if_fail (GST_IS_CONTROL_SOURCE (self), FALSE);
 
   if (G_LIKELY (self->get_value_array)) {
-    return self->get_value_array (self, timestamp, value_array);
+    return self->get_value_array (self, timestamp, interval, n_values, values);
   } else {
     GST_ERROR ("Not bound to a specific property yet!");
     return FALSE;
   }
 }
-
-/**
- * gst_control_source_bind:
- * @self: the #GstControlSource object
- * @pspec: #GParamSpec for the property for which this #GstControlSource should generate values.
- *
- * Binds a #GstControlSource to a specific property. This must be called only once for a
- * #GstControlSource.
- *
- * Returns: %TRUE if the #GstControlSource was bound correctly, %FALSE otherwise.
- */
-gboolean
-gst_control_source_bind (GstControlSource * self, GParamSpec * pspec)
-{
-  gboolean ret = FALSE;
-
-  g_return_val_if_fail (GST_IS_CONTROL_SOURCE (self), FALSE);
-  g_return_val_if_fail (GST_CONTROL_SOURCE_GET_CLASS (self)->bind, FALSE);
-  g_return_val_if_fail (!self->bound, FALSE);
-
-  ret = GST_CONTROL_SOURCE_GET_CLASS (self)->bind (self, pspec);
-
-  if (ret)
-    self->bound = TRUE;
-
-  return ret;
-}
diff --git a/libs/gst/controller/gstcontrolsource.h b/gst/gstcontrolsource.h
similarity index 71%
rename from libs/gst/controller/gstcontrolsource.h
rename to gst/gstcontrolsource.h
index 04fca18..5debda4 100644
--- a/libs/gst/controller/gstcontrolsource.h
+++ b/gst/gstcontrolsource.h
@@ -23,8 +23,11 @@
 #ifndef __GST_CONTROL_SOURCE_H__
 #define __GST_CONTROL_SOURCE_H__
 
+#include <gst/gstconfig.h>
+
 #include <glib-object.h>
-#include <gst/gst.h>
+
+#include <gst/gstclock.h>
 
 G_BEGIN_DECLS
 
@@ -56,27 +59,10 @@
 struct _GstTimedValue
 {
   GstClockTime timestamp;
-  GValue value;
+  gdouble      value;
 };
 
 /**
- * GstValueArray:
- * @property_name: the name of the property this array belongs to
- * @nbsamples: number of samples requested
- * @sample_interval: interval between each sample
- * @values: pointer to the array
- *
- * Structure to receive multiple values at once.
- */
-struct _GstValueArray
-{
-  const gchar *property_name;
-  gint nbsamples;
-  GstClockTime sample_interval;
-  gpointer *values;
-};
-
-/** 
  * GstControlSourceGetValue
  * @self: the #GstControlSource instance
  * @timestamp: timestamp for which a value should be calculated
@@ -87,31 +73,24 @@
  * Returns: %TRUE if the value was successfully calculated.
  *
  */
-typedef gboolean (* GstControlSourceGetValue) (GstControlSource *self, GstClockTime timestamp, GValue *value);
+typedef gboolean (* GstControlSourceGetValue) (GstControlSource *self, 
+    GstClockTime timestamp, gdouble *value);
 
-/** 
+/**
  * GstControlSourceGetValueArray
  * @self: the #GstControlSource instance
  * @timestamp: timestamp for which a value should be calculated
- * @value_array: array to put control-values in
+ * @interval: the time spacing between subsequent values
+ * @n_values: the number of values
+ * @values: array to put control-values in
  *
- * Function for returning a #GstValueArray for a given timestamp.
+ * Function for returning an array of values for starting at a given timestamp.
  *
  * Returns: %TRUE if the values were successfully calculated.
  *
  */
-typedef gboolean (* GstControlSourceGetValueArray) (GstControlSource *self, GstClockTime timestamp, GstValueArray *value_array);
-
-/** 
- * GstControlSourceBind
- * @self: the #GstControlSource instance
- * @pspec: #GParamSpec that should be bound to
- *
- * Function for binding a #GstControlSource to a #GParamSpec.
- *
- * Returns: %TRUE if the property could be bound to the #GstControlSource, %FALSE otherwise.
- */
-typedef gboolean (* GstControlSourceBind) (GstControlSource *self, GParamSpec *pspec);
+typedef gboolean (* GstControlSourceGetValueArray) (GstControlSource *self, 
+    GstClockTime timestamp, GstClockTime interval, guint n_values, gdouble *values);
 
 /**
  * GstControlSource:
@@ -121,14 +100,13 @@
  * The instance structure of #GstControlSource.
  */
 struct _GstControlSource {
-  GObject parent;
+  GstObject parent;
 
   /*< public >*/
   GstControlSourceGetValue get_value;             /* Returns the value for a property at a given timestamp */
   GstControlSourceGetValueArray get_value_array;  /* Returns values for a property in a given timespan */
 
   /*< private >*/
-  gboolean bound;
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -142,9 +120,7 @@
 
 struct _GstControlSourceClass
 {
-  GObjectClass parent_class;
-  
-  GstControlSourceBind bind;  /* Binds the GstControlSource to a specific GParamSpec */
+  GstObjectClass parent_class;
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
@@ -153,11 +129,11 @@
 GType gst_control_source_get_type (void);
 
 /* Functions */
-
-gboolean gst_control_source_get_value (GstControlSource *self, GstClockTime timestamp, GValue *value);
-gboolean gst_control_source_get_value_array (GstControlSource *self, GstClockTime timestamp, GstValueArray *value_array);
-gboolean gst_control_source_bind (GstControlSource *self, GParamSpec *pspec);
-
+gboolean       gst_control_source_get_value             (GstControlSource *self, GstClockTime timestamp,
+                                                         gdouble *value);
+gboolean       gst_control_source_get_value_array       (GstControlSource *self, GstClockTime timestamp,
+                                                         GstClockTime interval, guint n_values,
+                                                         gdouble *values);
 G_END_DECLS
 
 #endif /* __GST_CONTROL_SOURCE_H__ */
diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
index 60f709f..7f6ba43 100644
--- a/gst/gstdatetime.c
+++ b/gst/gstdatetime.c
@@ -257,11 +257,14 @@
 #define GST_DATE_TIME_USEC_PER_SECOND      (G_GINT64_CONSTANT (1000000))
 #define GST_DATE_TIME_USEC_PER_MILLISECOND (G_GINT64_CONSTANT (1000))
 
+/* FIXME: this bug was resolved NOTGNOME */
 /* Jan 5th 2011 (Edward) : GLib's GDateTime is broken in regards to gmt offset
  * on macosx. Re-enable it once the following bug is fixed:
  * https://bugzilla.gnome.org/show_bug.cgi?id=638666 */
 #ifdef HAVE_OSX
 #undef GLIB_HAS_GDATETIME
+#else
+#define GLIB_HAS_GDATETIME
 #endif
 
 
diff --git a/gst/gstdatetime.h b/gst/gstdatetime.h
index eeeb020..96d8bbd 100644
--- a/gst/gstdatetime.h
+++ b/gst/gstdatetime.h
@@ -36,31 +36,31 @@
  */
 typedef struct _GstDateTime GstDateTime;
 
-gint	gst_date_time_get_year 		(const GstDateTime * datetime);
-gint	gst_date_time_get_month		(const GstDateTime * datetime);
-gint	gst_date_time_get_day		(const GstDateTime * datetime);
-gint	gst_date_time_get_hour 		(const GstDateTime * datetime);
-gint	gst_date_time_get_minute 	(const GstDateTime * datetime);
-gint	gst_date_time_get_second 	(const GstDateTime * datetime);
-gint	gst_date_time_get_microsecond 	(const GstDateTime * datetime);
-gfloat	gst_date_time_get_time_zone_offset (const GstDateTime * datetime);
+gint    gst_date_time_get_year             (const GstDateTime * datetime);
+gint    gst_date_time_get_month            (const GstDateTime * datetime);
+gint    gst_date_time_get_day              (const GstDateTime * datetime);
+gint    gst_date_time_get_hour             (const GstDateTime * datetime);
+gint    gst_date_time_get_minute           (const GstDateTime * datetime);
+gint    gst_date_time_get_second           (const GstDateTime * datetime);
+gint    gst_date_time_get_microsecond      (const GstDateTime * datetime);
+gfloat  gst_date_time_get_time_zone_offset (const GstDateTime * datetime);
 
-GstDateTime 	*gst_date_time_new_from_unix_epoch_local_time (gint64 secs);
-GstDateTime 	*gst_date_time_new_from_unix_epoch_utc  (gint64 secs);
-GstDateTime 	*gst_date_time_new_local_time		(gint year, gint month,
-							 gint day, gint hour,
-							 gint minute,
-							 gdouble seconds);
-GstDateTime 	*gst_date_time_new			(gfloat tzoffset,
-							 gint year, gint month,
-							 gint day, gint hour,
-							 gint minute,
-							 gdouble seconds);
-GstDateTime 	*gst_date_time_new_now_local_time (void);
-GstDateTime 	*gst_date_time_new_now_utc 	(void);
+GstDateTime *   gst_date_time_new_from_unix_epoch_local_time (gint64 secs) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new_from_unix_epoch_utc   (gint64 secs) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new_local_time            (gint year, gint month,
+                                                         gint day, gint hour,
+                                                         gint minute,
+                                                         gdouble seconds) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new                       (gfloat tzoffset,
+                                                         gint year, gint month,
+                                                         gint day, gint hour,
+                                                         gint minute,
+                                                         gdouble seconds) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new_now_local_time (void) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new_now_utc        (void) G_GNUC_MALLOC;
 
-GstDateTime 	*gst_date_time_ref 		(GstDateTime * datetime);
-void 		gst_date_time_unref 		(GstDateTime * datetime);
+GstDateTime *   gst_date_time_ref                (GstDateTime * datetime);
+void            gst_date_time_unref              (GstDateTime * datetime);
 
 G_END_DECLS
 #endif /* __GST_DATE_TIME_H__ */
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index de74850..8e31bde 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -66,10 +66,10 @@
 extern GstClockTime _priv_gst_info_start_time;
 
 static gchar *
-debug_dump_make_object_name (GstObject * element)
+debug_dump_make_object_name (GstObject * obj)
 {
-  return g_strcanon (g_strdup_printf ("%s_%p", GST_OBJECT_NAME (element),
-          element), G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "_", '_');
+  return g_strcanon (g_strdup_printf ("%s_%p", GST_OBJECT_NAME (obj), obj),
+      G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "_", '_');
 }
 
 static gchar *
@@ -81,7 +81,9 @@
 
   gst_element_get_state (element, &state, &pending, 0);
   if (pending == GST_STATE_VOID_PENDING) {
-    state_name = g_strdup_printf ("\\n[%c]", state_icons[state]);
+    gboolean is_locked = gst_element_is_locked_state (element);
+    state_name = g_strdup_printf ("\\n[%c]%s", state_icons[state],
+        (is_locked ? "(locked)" : ""));
   } else {
     state_name = g_strdup_printf ("\\n[%c] -> [%c]", state_icons[state],
         state_icons[pending]);
@@ -159,15 +161,17 @@
     }
   }
   if (details & GST_DEBUG_GRAPH_SHOW_STATES) {
-    gchar pad_flags[5];
+    gchar pad_flags[4];
     const gchar *activation_mode = "-><";
 
     /* check if pad flags */
-    pad_flags[0] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKED) ? 'B' : 'b';
-    pad_flags[1] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLUSHING) ? 'F' : 'f';
-    pad_flags[2] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_GETCAPS) ? 'G' : 'g';
-    pad_flags[3] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKING) ? 'B' : 'b';
-    pad_flags[4] = '\0';
+    pad_flags[0] =
+        GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKED) ? 'B' : 'b';
+    pad_flags[1] =
+        GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FLUSHING) ? 'F' : 'f';
+    pad_flags[2] =
+        GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKING) ? 'B' : 'b';
+    pad_flags[3] = '\0';
 
     fprintf (out,
         "%s  %s_%s [color=black, fillcolor=\"%s\", label=\"%s\\n[%c][%s]\", height=\"0.2\", style=\"%s\"];\n",
@@ -203,6 +207,9 @@
     /* output target-pad so that it belongs to this element */
     if ((tmp_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (pad)))) {
       if ((target_pad = gst_pad_get_peer (tmp_pad))) {
+        gchar *pad_name, *target_pad_name;
+        const gchar *spc = &spaces[MAX (sizeof (spaces) - (1 + indent * 2), 0)];
+
         if ((target_element = gst_pad_get_parent_element (target_pad))) {
           target_element_name =
               debug_dump_make_object_name (GST_OBJECT (target_element));
@@ -211,10 +218,22 @@
         }
         debug_dump_pad (target_pad, color_name, target_element_name, details,
             out, indent);
+        /* src ghostpad relationship */
+        pad_name = debug_dump_make_object_name (GST_OBJECT (pad));
+        target_pad_name = debug_dump_make_object_name (GST_OBJECT (target_pad));
+        if (dir == GST_PAD_SRC) {
+          fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
+              target_element_name, target_pad_name, element_name, pad_name);
+        } else {
+          fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
+              element_name, pad_name, target_element_name, target_pad_name);
+        }
+        g_free (target_pad_name);
         g_free (target_element_name);
         if (target_element)
           gst_object_unref (target_element);
         gst_object_unref (target_pad);
+        g_free (pad_name);
       }
       gst_object_unref (tmp_pad);
     }
@@ -317,14 +336,13 @@
 debug_dump_element_pad_link (GstPad * pad, GstElement * element,
     GstDebugGraphDetails details, FILE * out, const gint indent)
 {
-  GstElement *peer_element, *target_element;
-  GstPad *peer_pad, *target_pad, *tmp_pad;
+  GstElement *peer_element;
+  GstPad *peer_pad;
   GstCaps *caps, *peer_caps;
   gchar *media = NULL;
   gchar *media_src = NULL, *media_sink = NULL;
   gchar *pad_name, *element_name;
   gchar *peer_pad_name, *peer_element_name;
-  gchar *target_pad_name, *target_element_name;
   const gchar *spc = &spaces[MAX (sizeof (spaces) - (1 + indent * 2), 0)];
 
   if ((peer_pad = gst_pad_get_peer (pad))) {
@@ -333,10 +351,10 @@
         ) {
       caps = gst_pad_get_current_caps (pad);
       if (!caps)
-        caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+        caps = gst_pad_get_pad_template_caps (pad);
       peer_caps = gst_pad_get_current_caps (peer_pad);
       if (!peer_caps)
-        peer_caps = gst_caps_copy (gst_pad_get_pad_template_caps (peer_pad));
+        peer_caps = gst_pad_get_pad_template_caps (peer_pad);
 
       media = debug_dump_describe_caps (caps, details);
       /* check if peer caps are different */
@@ -371,63 +389,6 @@
       peer_element_name = g_strdup ("");
     }
 
-    if (GST_IS_GHOST_PAD (pad)) {
-      if ((tmp_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (pad)))) {
-        if ((target_pad = gst_pad_get_peer (tmp_pad))) {
-          target_pad_name =
-              debug_dump_make_object_name (GST_OBJECT (target_pad));
-          if ((target_element = gst_pad_get_parent_element (target_pad))) {
-            target_element_name =
-                debug_dump_make_object_name (GST_OBJECT (target_element));
-          } else {
-            target_element_name = g_strdup ("");
-          }
-          /* src ghostpad relationship */
-          fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
-              target_element_name, target_pad_name, element_name, pad_name);
-
-          g_free (target_pad_name);
-          g_free (target_element_name);
-          if (target_element)
-            gst_object_unref (target_element);
-          gst_object_unref (target_pad);
-        }
-        gst_object_unref (tmp_pad);
-      }
-    }
-    if (GST_IS_GHOST_PAD (peer_pad)) {
-      if ((tmp_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (peer_pad)))) {
-        if ((target_pad = gst_pad_get_peer (tmp_pad))) {
-          target_pad_name =
-              debug_dump_make_object_name (GST_OBJECT (target_pad));
-          if ((target_element = gst_pad_get_parent_element (target_pad))) {
-            target_element_name =
-                debug_dump_make_object_name (GST_OBJECT (target_element));
-          } else {
-            target_element_name = g_strdup ("");
-          }
-          /* sink ghostpad relationship */
-          fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
-              peer_element_name, peer_pad_name,
-              target_element_name, target_pad_name);
-          /* FIXME: we are missing links from the proxy pad
-           * theoretically we need to:
-           * pad=gst_object_ref(target_pad);
-           * goto line 280: if ((peer_pad = gst_pad_get_peer (pad)))
-           * as this would be ugly we need to refactor ...
-           */
-          debug_dump_element_pad_link (target_pad, target_element, details, out,
-              indent);
-          g_free (target_pad_name);
-          g_free (target_element_name);
-          if (target_element)
-            gst_object_unref (target_element);
-          gst_object_unref (target_pad);
-        }
-        gst_object_unref (tmp_pad);
-      }
-    }
-
     /* pad link */
     if (media) {
       fprintf (out, "%s%s_%s -> %s_%s [label=\"%s\"]\n", spc,
@@ -497,7 +458,7 @@
  * @out: file to write to
  * @indent: level of graph indentation
  *
- * Helper for _gst_debug_bin_to_dot_file() to recursively dump a pipeline.
+ * Helper for gst_debug_bin_to_dot_file() to recursively dump a pipeline.
  */
 static void
 debug_dump_element (GstBin * bin, GstDebugGraphDetails details, FILE * out,
@@ -581,10 +542,22 @@
             switch (gst_iterator_next (pad_iter, &item2)) {
               case GST_ITERATOR_OK:
                 pad = g_value_get_object (&item2);
-                if (gst_pad_is_linked (pad)
-                    && gst_pad_get_direction (pad) == GST_PAD_SRC) {
-                  debug_dump_element_pad_link (pad, element, details, out,
-                      indent);
+                if (gst_pad_is_linked (pad)) {
+                  if (gst_pad_get_direction (pad) == GST_PAD_SRC) {
+                    debug_dump_element_pad_link (pad, element, details, out,
+                        indent);
+                  } else {
+                    GstPad *peer_pad = gst_pad_get_peer (pad);
+
+                    if (peer_pad) {
+                      if (!GST_IS_GHOST_PAD (peer_pad)
+                          && GST_IS_PROXY_PAD (peer_pad)) {
+                        debug_dump_element_pad_link (peer_pad, NULL, details,
+                            out, indent);
+                      }
+                      gst_object_unref (peer_pad);
+                    }
+                  }
                 }
                 g_value_reset (&item2);
                 break;
@@ -611,12 +584,13 @@
         break;
     }
   }
+
   g_value_unset (&item);
   gst_iterator_free (element_iter);
 }
 
 /*
- * _gst_debug_bin_to_dot_file:
+ * gst_debug_bin_to_dot_file:
  * @bin: the top-level pipeline that should be analyzed
  * @file_name: output base filename (e.g. "myplayer")
  *
@@ -628,7 +602,7 @@
  * </programlisting></informalexample>
  */
 void
-_gst_debug_bin_to_dot_file (GstBin * bin, GstDebugGraphDetails details,
+gst_debug_bin_to_dot_file (GstBin * bin, GstDebugGraphDetails details,
     const gchar * file_name)
 {
   gchar *full_file_name = NULL;
@@ -693,16 +667,16 @@
 }
 
 /*
- * _gst_debug_bin_to_dot_file_with_ts:
+ * gst_debug_bin_to_dot_file_with_ts:
  * @bin: the top-level pipeline that should be analyzed
  * @file_name: output base filename (e.g. "myplayer")
  *
- * This works like _gst_debug_bin_to_dot_file(), but adds the current timestamp
+ * This works like gst_debug_bin_to_dot_file(), but adds the current timestamp
  * to the filename, so that it can be used to take multiple snapshots.
  */
 void
-_gst_debug_bin_to_dot_file_with_ts (GstBin * bin, GstDebugGraphDetails details,
-    const gchar * file_name)
+gst_debug_bin_to_dot_file_with_ts (GstBin * bin,
+    GstDebugGraphDetails details, const gchar * file_name)
 {
   gchar *ts_file_name = NULL;
   GstClockTime elapsed;
@@ -725,19 +699,19 @@
       g_strdup_printf ("%u.%02u.%02u.%09u-%s", GST_TIME_ARGS (elapsed),
       file_name);
 
-  _gst_debug_bin_to_dot_file (bin, details, ts_file_name);
+  gst_debug_bin_to_dot_file (bin, details, ts_file_name);
   g_free (ts_file_name);
 }
 #else /* !GST_DISABLE_GST_DEBUG */
 #ifndef GST_REMOVE_DISABLED
 void
-_gst_debug_bin_to_dot_file (GstBin * bin, GstDebugGraphDetails details,
+gst_debug_bin_to_dot_file (GstBin * bin, GstDebugGraphDetails details,
     const gchar * file_name)
 {
 }
 
 void
-_gst_debug_bin_to_dot_file_with_ts (GstBin * bin, GstDebugGraphDetails details,
+gst_debug_bin_to_dot_file_with_ts (GstBin * bin, GstDebugGraphDetails details,
     const gchar * file_name)
 {
 }
diff --git a/gst/gstdebugutils.h b/gst/gstdebugutils.h
index 1f18308..8420d3b 100644
--- a/gst/gstdebugutils.h
+++ b/gst/gstdebugutils.h
@@ -53,8 +53,8 @@
 
 /********** pipeline graphs **********/
 
-void _gst_debug_bin_to_dot_file (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
-void _gst_debug_bin_to_dot_file_with_ts (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
+void gst_debug_bin_to_dot_file (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
+void gst_debug_bin_to_dot_file_with_ts (GstBin *bin, GstDebugGraphDetails details, const gchar *file_name);
 
 #ifndef GST_DISABLE_GST_DEBUG
 
@@ -78,7 +78,7 @@
  *
  * Since: 0.10.15
  */
-#define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) _gst_debug_bin_to_dot_file (bin, details, file_name)
+#define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) gst_debug_bin_to_dot_file (bin, details, file_name)
 
 /**
  * GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS:
@@ -92,7 +92,7 @@
  *
  * Since: 0.10.15
  */
-#define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) _gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)
+#define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)
 
 
 #else /* GST_DISABLE_GST_DEBUG */
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 91b12be..b3366f4 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -34,7 +34,7 @@
  * core when using the appropriate locking. Do not use this in plug-ins or
  * applications in order to retain ABI compatibility.
  *
- * All elements have pads (of the type #GstPad).  These pads link to pads on
+ * Elements can have pads (of the type #GstPad).  These pads link to pads on
  * other elements.  #GstBuffer flow between these linked pads.
  * A #GstElement has a #GList of #GstPad structures for all their input (or sink)
  * and output (or source) pads.
@@ -44,7 +44,7 @@
  * An existing pad of an element can be retrieved by name with
  * gst_element_get_static_pad(). A new dynamic pad can be created using
  * gst_element_request_pad() with a #GstPadTemplate or 
- * gst_element_get_request_pad() with the template name such as "src_\%d".
+ * gst_element_get_request_pad() with the template name such as "src_\%u".
  * An iterator of all pads can be retrieved with gst_element_iterate_pads().
  *
  * Elements can be linked through their pads.
@@ -65,18 +65,18 @@
  * You can get and set a #GstClock on an element using gst_element_get_clock()
  * and gst_element_set_clock().
  * Some elements can provide a clock for the pipeline if
- * gst_element_provides_clock() returns %TRUE. With the
+ * the #GST_ELEMENT_FLAG_PROVIDE_CLOCK flag is set. With the
  * gst_element_provide_clock() method one can retrieve the clock provided by
  * such an element.
- * Not all elements require a clock to operate correctly. If
- * gst_element_requires_clock() returns %TRUE, a clock should be set on the
+ * Not all elements require a clock to operate correctly. If the
+ * #GST_ELEMENT_FLAG_REQUIRE_CLOCK() flag is set, a clock should be set on the
  * element with gst_element_set_clock().
  *
  * Note that clock slection and distribution is normally handled by the
  * toplevel #GstPipeline so the clock functions are only to be used in very
  * specific situations.
  *
- * Last reviewed on 2009-05-29 (0.10.24)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 #include "gst_private.h"
@@ -88,13 +88,14 @@
 #include "gstelementmetadata.h"
 #include "gstenumtypes.h"
 #include "gstbus.h"
-#include "gstmarshal.h"
 #include "gsterror.h"
 #include "gstevent.h"
 #include "gstutils.h"
 #include "gstinfo.h"
+#include "gstquark.h"
 #include "gstvalue.h"
 #include "gst-i18n-lib.h"
+#include "glib-compat-private.h"
 
 /* Element signals and args */
 enum
@@ -126,6 +127,8 @@
     GstState * state, GstState * pending, GstClockTime timeout);
 static GstStateChangeReturn gst_element_set_state_func (GstElement * element,
     GstState state);
+static gboolean gst_element_set_clock_func (GstElement * element,
+    GstClock * clock);
 static void gst_element_set_bus_func (GstElement * element, GstBus * bus);
 
 static gboolean gst_element_default_send_event (GstElement * element,
@@ -141,7 +144,7 @@
 static guint gst_element_signals[LAST_SIGNAL] = { 0 };
 
 /* this is used in gstelementfactory.c:gst_element_register() */
-GQuark _gst_elementclass_factory = 0;
+GQuark __gst_elementclass_factory = 0;
 
 GType
 gst_element_get_type (void)
@@ -166,7 +169,7 @@
     _type = g_type_register_static (GST_TYPE_OBJECT, "GstElement",
         &element_info, G_TYPE_FLAG_ABSTRACT);
 
-    _gst_elementclass_factory =
+    __gst_elementclass_factory =
         g_quark_from_static_string ("GST_ELEMENTCLASS_FACTORY");
     g_once_init_leave (&gst_element_type, _type);
   }
@@ -196,7 +199,7 @@
   gst_element_signals[PAD_ADDED] =
       g_signal_new ("pad-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstElementClass, pad_added), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_PAD);
   /**
    * GstElement::pad-removed:
    * @gstelement: the object which received the signal
@@ -207,7 +210,7 @@
   gst_element_signals[PAD_REMOVED] =
       g_signal_new ("pad-removed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstElementClass, pad_removed), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_PAD);
   /**
    * GstElement::no-more-pads:
    * @gstelement: the object which received the signal
@@ -219,7 +222,7 @@
   gst_element_signals[NO_MORE_PADS] =
       g_signal_new ("no-more-pads", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstElementClass, no_more_pads), NULL,
-      NULL, gst_marshal_VOID__VOID, G_TYPE_NONE, 0);
+      NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0);
 
   gobject_class->dispose = gst_element_dispose;
   gobject_class->finalize = gst_element_finalize;
@@ -227,6 +230,7 @@
   klass->change_state = GST_DEBUG_FUNCPTR (gst_element_change_state_func);
   klass->set_state = GST_DEBUG_FUNCPTR (gst_element_set_state_func);
   klass->get_state = GST_DEBUG_FUNCPTR (gst_element_get_state_func);
+  klass->set_clock = GST_DEBUG_FUNCPTR (gst_element_set_clock_func);
   klass->set_bus = GST_DEBUG_FUNCPTR (gst_element_set_bus_func);
   klass->query = GST_DEBUG_FUNCPTR (gst_element_default_query);
   klass->send_event = GST_DEBUG_FUNCPTR (gst_element_default_send_event);
@@ -246,7 +250,7 @@
    * the details in class_init instead of base_init */
   element_class->metadata =
       element_class->metadata ? gst_structure_copy (element_class->metadata) :
-      gst_structure_empty_new ("metadata");
+      gst_structure_new_empty ("metadata");
 
   /* Copy the pad templates so elements inherit them
    * from their base class but elements can add pad templates in class_init
@@ -262,7 +266,7 @@
   /* set the factory, see gst_element_register() */
   element_class->elementfactory =
       g_type_get_qdata (G_TYPE_FROM_CLASS (element_class),
-      _gst_elementclass_factory);
+      __gst_elementclass_factory);
   GST_DEBUG ("type %s : factory %p", G_OBJECT_CLASS_NAME (element_class),
       element_class->elementfactory);
 }
@@ -287,8 +291,8 @@
   GST_STATE_PENDING (element) = GST_STATE_VOID_PENDING;
   GST_STATE_RETURN (element) = GST_STATE_CHANGE_SUCCESS;
 
-  g_static_rec_mutex_init (&element->state_lock);
-  element->state_cond = g_cond_new ();
+  g_rec_mutex_init (&element->state_lock);
+  g_cond_init (&element->state_cond);
 }
 
 /**
@@ -312,6 +316,9 @@
 
   g_return_if_fail (GST_IS_ELEMENT (element));
   g_return_if_fail (GST_IS_PAD (pad));
+  g_return_if_fail (GST_PAD_PAD_TEMPLATE (pad) == NULL ||
+      GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
+      GST_PAD_REQUEST);
 
   oclass = GST_ELEMENT_GET_CLASS (element);
 
@@ -324,54 +331,6 @@
 }
 
 /**
- * gst_element_requires_clock:
- * @element: a #GstElement to query
- *
- * Query if the element requires a clock.
- *
- * Returns: %TRUE if the element requires a clock
- *
- * MT safe.
- */
-gboolean
-gst_element_requires_clock (GstElement * element)
-{
-  gboolean result;
-
-  g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
-
-  result = (GST_ELEMENT_GET_CLASS (element)->set_clock != NULL);
-
-  return result;
-}
-
-/**
- * gst_element_provides_clock:
- * @element: a #GstElement to query
- *
- * Query if the element provides a clock. A #GstClock provided by an
- * element can be used as the global #GstClock for the pipeline.
- * An element that can provide a clock is only required to do so in the PAUSED
- * state, this means when it is fully negotiated and has allocated the resources
- * to operate the clock.
- *
- * Returns: %TRUE if the element provides a clock
- *
- * MT safe.
- */
-gboolean
-gst_element_provides_clock (GstElement * element)
-{
-  gboolean result;
-
-  g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
-
-  result = (GST_ELEMENT_GET_CLASS (element)->provide_clock != NULL);
-
-  return result;
-}
-
-/**
  * gst_element_provide_clock:
  * @element: a #GstElement to query
  *
@@ -400,6 +359,19 @@
   return result;
 }
 
+static gboolean
+gst_element_set_clock_func (GstElement * element, GstClock * clock)
+{
+  GstClock **clock_p;
+
+  GST_OBJECT_LOCK (element);
+  clock_p = &element->clock;
+  gst_object_replace ((GstObject **) clock_p, (GstObject *) clock);
+  GST_OBJECT_UNLOCK (element);
+
+  return TRUE;
+}
+
 /**
  * gst_element_set_clock:
  * @element: a #GstElement to set the clock for.
@@ -419,8 +391,7 @@
 gst_element_set_clock (GstElement * element, GstClock * clock)
 {
   GstElementClass *oclass;
-  gboolean res = TRUE;
-  GstClock **clock_p;
+  gboolean res = FALSE;
 
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
   g_return_val_if_fail (clock == NULL || GST_IS_CLOCK (clock), FALSE);
@@ -432,13 +403,6 @@
   if (oclass->set_clock)
     res = oclass->set_clock (element, clock);
 
-  if (res) {
-    /* only update the clock pointer if the element accepted the clock */
-    GST_OBJECT_LOCK (element);
-    clock_p = &element->clock;
-    gst_object_replace ((GstObject **) clock_p, (GstObject *) clock);
-    GST_OBJECT_UNLOCK (element);
-  }
   return res;
 }
 
@@ -588,28 +552,7 @@
   return result;
 }
 
-/**
- * gst_element_is_indexable:
- * @element: a #GstElement.
- *
- * Queries if the element can be indexed.
- *
- * Returns: TRUE if the element can be indexed.
- *
- * MT safe.
- */
-gboolean
-gst_element_is_indexable (GstElement * element)
-{
-  gboolean result;
-
-  g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
-
-  result = (GST_ELEMENT_GET_CLASS (element)->set_index != NULL);
-
-  return result;
-}
-
+#if 0
 /**
  * gst_element_set_index:
  * @element: a #GstElement.
@@ -660,6 +603,7 @@
 
   return result;
 }
+#endif
 
 /**
  * gst_element_add_pad:
@@ -698,6 +642,7 @@
   GST_CAT_INFO_OBJECT (GST_CAT_ELEMENT_PADS, element, "adding pad '%s'",
       GST_STR_NULL (pad_name));
   flushing = GST_PAD_IS_FLUSHING (pad);
+  GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_NEED_PARENT);
   GST_OBJECT_UNLOCK (pad);
 
   /* then check to see if there's already a pad by that name here */
@@ -1135,10 +1080,6 @@
  * Pad templates can be looked up using
  * gst_element_factory_get_static_pad_templates().
  *
- * If the @caps are specified and the element implements thew new
- * request_new_pad_full virtual method, the element will use them to select
- * which pad to create.
- *
  * The pad should be released with gst_element_release_request_pad().
  *
  * Returns: (transfer full): requested #GstPad if found, otherwise %NULL.
@@ -1152,6 +1093,7 @@
 {
   g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
   g_return_val_if_fail (templ != NULL, NULL);
+  g_return_val_if_fail (templ->presence == GST_PAD_REQUEST, NULL);
 
   return _gst_element_request_pad (element, templ, name, caps);
 }
@@ -1263,7 +1205,7 @@
   }
 
   /* Take ownership of the floating ref */
-  g_object_ref_sink (templ);
+  gst_object_ref_sink (templ);
 
   klass->padtemplates = g_list_append (klass->padtemplates, templ);
   klass->numpadtemplates++;
@@ -1290,6 +1232,34 @@
 }
 
 /**
+ * gst_element_class_add_static_metadata:
+ * @klass: class to set metadata for
+ * @key: the key to set
+ * @value: the value to set
+ *
+ * Set @key with @value as metadata in @klass.
+ *
+ * Same as gst_element_class_add_metadata(), but @value must be a static string
+ * or an inlined string, as it will not be copied. (GStreamer plugins will
+ * be made resident once loaded, so this function can be used even from
+ * dynamically loaded plugins.)
+ */
+void
+gst_element_class_add_static_metadata (GstElementClass * klass,
+    const gchar * key, const gchar * value)
+{
+  GValue val = G_VALUE_INIT;
+
+  g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
+  g_return_if_fail (key != NULL);
+  g_return_if_fail (value != NULL);
+
+  g_value_init (&val, G_TYPE_STRING);
+  g_value_set_static_string (&val, value);
+  gst_structure_take_value ((GstStructure *) klass->metadata, key, &val);
+}
+
+/**
  * gst_element_class_set_metadata:
  * @klass: class to set metadata for
  * @longname: The long English name of the element. E.g. "File Sink"
@@ -1311,11 +1281,57 @@
 {
   g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
 
-  gst_structure_set ((GstStructure *) klass->metadata,
-      GST_ELEMENT_METADATA_LONGNAME, G_TYPE_STRING, longname,
-      GST_ELEMENT_METADATA_KLASS, G_TYPE_STRING, classification,
-      GST_ELEMENT_METADATA_DESCRIPTION, G_TYPE_STRING, description,
-      GST_ELEMENT_METADATA_AUTHOR, G_TYPE_STRING, author, NULL);
+  gst_structure_id_set ((GstStructure *) klass->metadata,
+      GST_QUARK (ELEMENT_METADATA_LONGNAME), G_TYPE_STRING, longname,
+      GST_QUARK (ELEMENT_METADATA_KLASS), G_TYPE_STRING, classification,
+      GST_QUARK (ELEMENT_METADATA_DESCRIPTION), G_TYPE_STRING, description,
+      GST_QUARK (ELEMENT_METADATA_AUTHOR), G_TYPE_STRING, author, NULL);
+}
+
+/**
+ * gst_element_class_set_static_metadata:
+ * @klass: class to set metadata for
+ * @longname: The long English name of the element. E.g. "File Sink"
+ * @classification: String describing the type of element, as an unordered list
+ * separated with slashes ('/'). See draft-klass.txt of the design docs
+ * for more details and common types. E.g: "Sink/File"
+ * @description: Sentence describing the purpose of the element.
+ * E.g: "Write stream to a file"
+ * @author: Name and contact details of the author(s). Use \n to separate
+ * multiple author metadata. E.g: "Joe Bloggs &lt;joe.blogs at foo.com&gt;"
+ *
+ * Sets the detailed information for a #GstElementClass.
+ * <note>This function is for use in _class_init functions only.</note>
+ *
+ * Same as gst_element_class_set_metadata(), but @longname, @classification,
+ * @description, and @author must be static strings or inlined strings, as
+ * they will not be copied. (GStreamer plugins will be made resident once
+ * loaded, so this function can be used even from dynamically loaded plugins.)
+ */
+void
+gst_element_class_set_static_metadata (GstElementClass * klass,
+    const gchar * longname, const gchar * classification,
+    const gchar * description, const gchar * author)
+{
+  GstStructure *s = (GstStructure *) klass->metadata;
+  GValue val = G_VALUE_INIT;
+
+  g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
+
+  g_value_init (&val, G_TYPE_STRING);
+
+  g_value_set_static_string (&val, longname);
+  gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_LONGNAME), &val);
+
+  g_value_set_static_string (&val, classification);
+  gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_KLASS), &val);
+
+  g_value_set_static_string (&val, description);
+  gst_structure_id_set_value (s, GST_QUARK (ELEMENT_METADATA_DESCRIPTION),
+      &val);
+
+  g_value_set_static_string (&val, author);
+  gst_structure_id_take_value (s, GST_QUARK (ELEMENT_METADATA_AUTHOR), &val);
 }
 
 /**
@@ -1527,8 +1543,6 @@
     GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "send %s event on element %s",
         GST_EVENT_TYPE_NAME (event), GST_ELEMENT_NAME (element));
     result = oclass->send_event (element, event);
-  } else {
-    result = gst_element_default_send_event (element, event);
   }
   GST_STATE_UNLOCK (element);
 
@@ -1571,48 +1585,6 @@
   return result;
 }
 
-/**
- * gst_element_get_query_types:
- * @element: a #GstElement to query
- *
- * Get an array of query types from the element.
- * If the element doesn't implement a query types function,
- * the query will be forwarded to the peer of a random linked sink pad.
- *
- * Returns: An array of #GstQueryType elements that should not
- * be freed or modified.
- *
- * MT safe.
- */
-const GstQueryType *
-gst_element_get_query_types (GstElement * element)
-{
-  GstElementClass *oclass;
-  const GstQueryType *result = NULL;
-
-  g_return_val_if_fail (GST_IS_ELEMENT (element), NULL);
-
-  oclass = GST_ELEMENT_GET_CLASS (element);
-
-  if (oclass->get_query_types) {
-    result = oclass->get_query_types (element);
-  } else {
-    GstPad *pad = gst_element_get_random_pad (element, TRUE, GST_PAD_SINK);
-
-    if (pad) {
-      GstPad *peer = gst_pad_get_peer (pad);
-
-      if (peer) {
-        result = gst_pad_get_query_types (peer);
-
-        gst_object_unref (peer);
-      }
-      gst_object_unref (pad);
-    }
-  }
-  return result;
-}
-
 static gboolean
 gst_element_default_query (GstElement * element, GstQuery * query)
 {
@@ -1672,8 +1644,6 @@
     GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "send query on element %s",
         GST_ELEMENT_NAME (element));
     result = oclass->query (element, query);
-  } else {
-    result = gst_element_default_query (element, query);
   }
   return result;
 }
@@ -1876,7 +1846,7 @@
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
   GST_OBJECT_LOCK (element);
-  result = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_LOCKED_STATE);
+  result = GST_ELEMENT_IS_LOCKED_STATE (element);
   GST_OBJECT_UNLOCK (element);
 
   return result;
@@ -1903,7 +1873,7 @@
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
   GST_OBJECT_LOCK (element);
-  old = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_LOCKED_STATE);
+  old = GST_ELEMENT_IS_LOCKED_STATE (element);
 
   if (G_UNLIKELY (old == locked_state))
     goto was_ok;
@@ -1911,11 +1881,11 @@
   if (locked_state) {
     GST_CAT_DEBUG (GST_CAT_STATES, "locking state of element %s",
         GST_ELEMENT_NAME (element));
-    GST_OBJECT_FLAG_SET (element, GST_ELEMENT_LOCKED_STATE);
+    GST_OBJECT_FLAG_SET (element, GST_ELEMENT_FLAG_LOCKED_STATE);
   } else {
     GST_CAT_DEBUG (GST_CAT_STATES, "unlocking state of element %s",
         GST_ELEMENT_NAME (element));
-    GST_OBJECT_FLAG_UNSET (element, GST_ELEMENT_LOCKED_STATE);
+    GST_OBJECT_FLAG_UNSET (element, GST_ELEMENT_FLAG_LOCKED_STATE);
   }
   GST_OBJECT_UNLOCK (element);
 
@@ -2027,22 +1997,9 @@
 
   old_pending = GST_STATE_PENDING (element);
   if (old_pending != GST_STATE_VOID_PENDING) {
-    GTimeVal *timeval, abstimeout;
+    gboolean signaled;
     guint32 cookie;
 
-    if (timeout != GST_CLOCK_TIME_NONE) {
-      glong add = timeout / 1000;
-
-      if (add == 0)
-        goto done;
-
-      /* make timeout absolute */
-      g_get_current_time (&abstimeout);
-      g_time_val_add (&abstimeout, add);
-      timeval = &abstimeout;
-    } else {
-      timeval = NULL;
-    }
     /* get cookie to detect state changes during waiting */
     cookie = element->state_cookie;
 
@@ -2050,7 +2007,17 @@
         "waiting for element to commit state");
 
     /* we have a pending state change, wait for it to complete */
-    if (!GST_STATE_TIMED_WAIT (element, timeval)) {
+    if (timeout != GST_CLOCK_TIME_NONE) {
+      gint64 end_time;
+      /* make timeout absolute */
+      end_time = g_get_monotonic_time () + (timeout / 1000);
+      signaled = GST_STATE_WAIT_UNTIL (element, end_time);
+    } else {
+      GST_STATE_WAIT (element);
+      signaled = TRUE;
+    }
+
+    if (!signaled) {
       GST_CAT_INFO_OBJECT (GST_CAT_STATES, element, "timed out");
       /* timeout triggered */
       ret = GST_STATE_CHANGE_ASYNC;
@@ -2858,6 +2825,9 @@
   GstElement *element = GST_ELEMENT_CAST (object);
   GstClock **clock_p;
   GstBus **bus_p;
+  GstElementClass *oclass;
+
+  oclass = GST_ELEMENT_GET_CLASS (element);
 
   GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "dispose");
 
@@ -2868,8 +2838,15 @@
       "removing %d pads", g_list_length (element->pads));
   /* first we break all our links with the outside */
   while (element->pads && element->pads->data) {
+    GstPad *pad = GST_PAD_CAST (element->pads->data);
+
     /* don't call _remove_pad with NULL */
-    gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
+    if (oclass->release_pad && GST_PAD_PAD_TEMPLATE (pad) &&
+        GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad))
+        == GST_PAD_REQUEST)
+      (oclass->release_pad) (element, GST_PAD_CAST (element->pads->data));
+    else
+      gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
   }
   if (G_UNLIKELY (element->pads != NULL)) {
     g_critical ("could not remove pads from element %s",
@@ -2894,7 +2871,7 @@
   {
     gboolean is_locked;
 
-    is_locked = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_LOCKED_STATE);
+    is_locked = GST_ELEMENT_IS_LOCKED_STATE (element);
     g_critical
         ("\nTrying to dispose element %s, but it is in %s%s instead of the NULL"
         " state.\n"
@@ -2916,8 +2893,8 @@
 
   GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize");
 
-  g_cond_free (element->state_cond);
-  g_static_rec_mutex_free (&element->state_lock);
+  g_cond_clear (&element->state_cond);
+  g_rec_mutex_clear (&element->state_lock);
 
   GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "finalize parent");
 
diff --git a/gst/gstelement.h b/gst/gstelement.h
index 9cc30ed..263c573 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -60,8 +60,6 @@
 #include <gst/gstelementfactory.h>
 #include <gst/gstplugin.h>
 #include <gst/gstpluginfeature.h>
-#include <gst/gstindex.h>
-#include <gst/gstindexfactory.h>
 #include <gst/gstiterator.h>
 #include <gst/gstmessage.h>
 #include <gst/gstquery.h>
@@ -254,7 +252,7 @@
  *     Sinks unblock any #GstClock wait calls.
  *   </para></listitem>
  *   <listitem><para>
- *     When a sink does not have a pending buffer to play, it returns 
+ *     When a sink does not have a pending buffer to play, it returns
  *     %GST_STATE_CHANGE_ASYNC from this state change and completes the state
  *     change when it receives a new buffer or an %GST_EVENT_EOS.
  *   </para></listitem>
@@ -276,7 +274,7 @@
  *     Elements unblock any waits on devices
  *   </para></listitem>
  *   <listitem><para>
- *     Chain or get_range functions return %GST_FLOW_WRONG_STATE.
+ *     Chain or get_range functions return %GST_FLOW_FLUSHING.
  *   </para></listitem>
  *   <listitem><para>
  *     The element pads are deactivated so that streaming becomes impossible and
@@ -315,23 +313,29 @@
 
 /**
  * GstElementFlags:
- * @GST_ELEMENT_LOCKED_STATE: ignore state changes from parent
- * @GST_ELEMENT_IS_SINK: the element is a sink
- * @GST_ELEMENT_UNPARENTING: Child is being removed from the parent bin.
+ * @GST_ELEMENT_FLAG_UNPARENTING: Child is being removed from the parent bin.
  *  gst_bin_remove() on a child already being removed immediately returns FALSE
- * @GST_ELEMENT_IS_SOURCE: the element is a source. Since 0.10.31
+ * @GST_ELEMENT_FLAG_LOCKED_STATE: ignore state changes from parent
+ * @GST_ELEMENT_FLAG_SINK: the element is a sink
+ * @GST_ELEMENT_FLAG_SOURCE: the element is a source. Since 0.10.31
+ * @GST_ELEMENT_FLAG_PROVIDE_CLOCK: the element can provide a clock
+ * @GST_ELEMENT_FLAG_REQUIRE_CLOCK: the element requires a clock
+ * @GST_ELEMENT_FLAG_INDEXABLE: the element can use an index
  * @GST_ELEMENT_FLAG_LAST: offset to define more flags
  *
  * The standard flags that an element may have.
  */
 typedef enum
 {
-  GST_ELEMENT_LOCKED_STATE      = (GST_OBJECT_FLAG_LAST << 0),
-  GST_ELEMENT_IS_SINK           = (GST_OBJECT_FLAG_LAST << 1),
-  GST_ELEMENT_UNPARENTING       = (GST_OBJECT_FLAG_LAST << 2),
-  GST_ELEMENT_IS_SOURCE         = (GST_OBJECT_FLAG_LAST << 3),
+  GST_ELEMENT_FLAG_UNPARENTING    = (GST_OBJECT_FLAG_LAST << 0),
+  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST << 1),
+  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST << 2),
+  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST << 3),
+  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST << 4),
+  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST << 5),
+  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST << 6),
   /* padding */
-  GST_ELEMENT_FLAG_LAST         = (GST_OBJECT_FLAG_LAST << 16)
+  GST_ELEMENT_FLAG_LAST           = (GST_OBJECT_FLAG_LAST << 10)
 } GstElementFlags;
 
 /**
@@ -341,7 +345,7 @@
  * Check if the element is in the locked state and therefore will ignore state
  * changes from its parent object.
  */
-#define GST_ELEMENT_IS_LOCKED_STATE(elem)        (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_LOCKED_STATE))
+#define GST_ELEMENT_IS_LOCKED_STATE(elem)        (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_FLAG_LOCKED_STATE))
 
 /**
  * GST_ELEMENT_NAME:
@@ -495,17 +499,17 @@
  *
  * Get the conditional used to signal the completion of a state change.
  */
-#define GST_STATE_GET_COND(elem)               (GST_ELEMENT_CAST(elem)->state_cond)
+#define GST_STATE_GET_COND(elem)               (&GST_ELEMENT_CAST(elem)->state_cond)
 
-#define GST_STATE_LOCK(elem)                   g_static_rec_mutex_lock(GST_STATE_GET_LOCK(elem))
-#define GST_STATE_TRYLOCK(elem)                g_static_rec_mutex_trylock(GST_STATE_GET_LOCK(elem))
-#define GST_STATE_UNLOCK(elem)                 g_static_rec_mutex_unlock(GST_STATE_GET_LOCK(elem))
-#define GST_STATE_UNLOCK_FULL(elem)            g_static_rec_mutex_unlock_full(GST_STATE_GET_LOCK(elem))
-#define GST_STATE_LOCK_FULL(elem,t)            g_static_rec_mutex_lock_full(GST_STATE_GET_LOCK(elem), t)
+#define GST_STATE_LOCK(elem)                   g_rec_mutex_lock(GST_STATE_GET_LOCK(elem))
+#define GST_STATE_TRYLOCK(elem)                g_rec_mutex_trylock(GST_STATE_GET_LOCK(elem))
+#define GST_STATE_UNLOCK(elem)                 g_rec_mutex_unlock(GST_STATE_GET_LOCK(elem))
+#define GST_STATE_UNLOCK_FULL(elem)            g_rec_mutex_unlock_full(GST_STATE_GET_LOCK(elem))
+#define GST_STATE_LOCK_FULL(elem,t)            g_rec_mutex_lock_full(GST_STATE_GET_LOCK(elem), t)
 #define GST_STATE_WAIT(elem)                   g_cond_wait (GST_STATE_GET_COND (elem), \
                                                         GST_OBJECT_GET_LOCK (elem))
-#define GST_STATE_TIMED_WAIT(elem, timeval)    g_cond_timed_wait (GST_STATE_GET_COND (elem), \
-                                                        GST_OBJECT_GET_LOCK (elem), timeval)
+#define GST_STATE_WAIT_UNTIL(elem, end_time)   g_cond_wait_until (GST_STATE_GET_COND (elem), \
+                                                        GST_OBJECT_GET_LOCK (elem), end_time)
 #define GST_STATE_SIGNAL(elem)                 g_cond_signal (GST_STATE_GET_COND (elem));
 #define GST_STATE_BROADCAST(elem)              g_cond_broadcast (GST_STATE_GET_COND (elem));
 
@@ -545,10 +549,10 @@
   GstObject             object;
 
   /*< public >*/ /* with LOCK */
-  GStaticRecMutex       state_lock;
+  GRecMutex             state_lock;
 
   /* element state */
-  GCond                *state_cond;
+  GCond                 state_cond;
   guint32               state_cookie;
   GstState              target_state;
   GstState              current_state;
@@ -593,12 +597,9 @@
  * @set_bus: set a #GstBus on the element
  * @provide_clock: gets the #GstClock provided by the element
  * @set_clock: set the #GstClock on the element
- * @get_index: set a #GstIndex on the element
- * @set_index: get the #GstIndex of an element
  * @send_event: send a #GstEvent to the element
- * @get_query_types: get the supported #GstQueryType of this element
  * @query: perform a #GstQuery on the element
- * @state_changed: called immediately after a new state was set. Since: 0.10.35.
+ * @state_changed: called immediately after a new state was set.
  *
  * GStreamer element class. Override the vmethods to implement the element
  * functionality.
@@ -648,18 +649,13 @@
   GstClock*             (*provide_clock)        (GstElement *element);
   gboolean              (*set_clock)            (GstElement *element, GstClock *clock);
 
-  /* index */
-  GstIndex*             (*get_index)            (GstElement *element);
-  void                  (*set_index)            (GstElement *element, GstIndex *index);
-
   /* query functions */
   gboolean              (*send_event)           (GstElement *element, GstEvent *event);
 
-  const GstQueryType*   (*get_query_types)      (GstElement *element);
   gboolean              (*query)                (GstElement *element, GstQuery *query);
 
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+  gpointer _gst_reserved[GST_PADDING_LARGE];
 };
 
 /* element class pad templates */
@@ -673,9 +669,16 @@
                                                                  const gchar     *classification,
                                                                  const gchar     *description,
                                                                  const gchar     *author);
+void                    gst_element_class_set_static_metadata   (GstElementClass *klass,
+                                                                 const gchar     *longname,
+                                                                 const gchar     *classification,
+                                                                 const gchar     *description,
+                                                                 const gchar     *author);
 void                    gst_element_class_add_metadata          (GstElementClass * klass,
                                                                  const gchar * key, const gchar * value);
-const gchar          *  gst_element_class_get_metadata          (GstElementClass * klass,
+void                    gst_element_class_add_static_metadata   (GstElementClass * klass,
+                                                                 const gchar * key, const gchar * value);
+const gchar *           gst_element_class_get_metadata          (GstElementClass * klass,
                                                                  const gchar * key);
 
 
@@ -727,8 +730,6 @@
 #define                 gst_element_set_parent(elem,parent)     gst_object_set_parent(GST_OBJECT_CAST(elem),parent)
 
 /* clocking */
-gboolean                gst_element_requires_clock      (GstElement *element);
-gboolean                gst_element_provides_clock      (GstElement *element);
 GstClock*               gst_element_provide_clock       (GstElement *element);
 GstClock*               gst_element_get_clock           (GstElement *element);
 gboolean                gst_element_set_clock           (GstElement *element, GstClock *clock);
@@ -737,11 +738,6 @@
 void                    gst_element_set_start_time      (GstElement *element, GstClockTime time);
 GstClockTime            gst_element_get_start_time      (GstElement *element);
 
-/* indexes */
-gboolean                gst_element_is_indexable        (GstElement *element);
-void                    gst_element_set_index           (GstElement *element, GstIndex *index);
-GstIndex*               gst_element_get_index           (GstElement *element);
-
 /* bus */
 void                    gst_element_set_bus             (GstElement * element, GstBus * bus);
 GstBus *                gst_element_get_bus             (GstElement * element);
@@ -767,7 +763,6 @@
                                                          GstFormat format, GstSeekFlags flags,
                                                          GstSeekType cur_type, gint64 cur,
                                                          GstSeekType stop_type, gint64 stop);
-const GstQueryType*     gst_element_get_query_types     (GstElement *element);
 gboolean                gst_element_query               (GstElement *element, GstQuery *query);
 
 /* messages */
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index 647674e..b11abfc 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -77,7 +77,7 @@
 /* static guint gst_element_factory_signals[LAST_SIGNAL] = { 0 }; */
 
 /* this is defined in gstelement.c */
-extern GQuark _gst_elementclass_factory;
+extern GQuark __gst_elementclass_factory;
 
 #define _do_init \
 { \
@@ -134,7 +134,7 @@
 
   g_return_val_if_fail (name != NULL, NULL);
 
-  feature = gst_registry_find_feature (gst_registry_get_default (), name,
+  feature = gst_registry_find_feature (gst_registry_get (), name,
       GST_TYPE_ELEMENT_FACTORY);
   if (feature)
     return GST_ELEMENT_FACTORY (feature);
@@ -206,7 +206,7 @@
   g_return_val_if_fail (name != NULL, FALSE);
   g_return_val_if_fail (g_type_is_a (type, GST_TYPE_ELEMENT), FALSE);
 
-  registry = gst_registry_get_default ();
+  registry = gst_registry_get ();
 
   /* check if feature already exists, if it exists there is no need to update it
    * when the registry is getting updated, outdated plugins and all their
@@ -219,7 +219,7 @@
     factory = GST_ELEMENT_FACTORY_CAST (existing_feature);
     factory->type = type;
     existing_feature->loaded = TRUE;
-    g_type_set_qdata (type, _gst_elementclass_factory, factory);
+    g_type_set_qdata (type, __gst_elementclass_factory, factory);
     gst_object_unref (existing_feature);
     return TRUE;
   }
@@ -232,7 +232,7 @@
       g_type_name (type));
 
   /* provide info needed during class structure setup */
-  g_type_set_qdata (type, _gst_elementclass_factory, factory);
+  g_type_set_qdata (type, __gst_elementclass_factory, factory);
   klass = GST_ELEMENT_CLASS (g_type_class_ref (type));
 #if 0
   /* FIXME */
@@ -253,7 +253,7 @@
     newt->name_template = g_intern_string (templ->name_template);
     newt->direction = templ->direction;
     newt->presence = templ->presence;
-    newt->static_caps.caps.mini_object.refcount = 0;
+    newt->static_caps.caps = NULL;
     newt->static_caps.string = g_intern_string (caps_string);
     factory->staticpadtemplates =
         g_list_append (factory->staticpadtemplates, newt);
@@ -273,8 +273,12 @@
       factory->uri_type = iface->get_type (factory->type);
     if (!GST_URI_TYPE_IS_VALID (factory->uri_type))
       goto urierror;
-    if (iface->get_protocols)
-      factory->uri_protocols = iface->get_protocols (factory->type);
+    if (iface->get_protocols) {
+      const gchar *const *protocols;
+
+      protocols = iface->get_protocols (factory->type);
+      factory->uri_protocols = g_strdupv ((gchar **) protocols);
+    }
     if (!factory->uri_protocols)
       goto urierror;
   }
@@ -330,7 +334,7 @@
  * It will be given the name supplied, since all elements require a name as
  * their first argument.
  *
- * Returns: (transfer full): new #GstElement or NULL if the element couldn't
+ * Returns: (transfer floating): new #GstElement or NULL if the element couldn't
  *     be created
  */
 GstElement *
@@ -377,7 +381,7 @@
    * an element at the same moment
    */
   oclass = GST_ELEMENT_GET_CLASS (element);
-  if (!G_ATOMIC_POINTER_COMPARE_AND_EXCHANGE (&oclass->elementfactory, NULL,
+  if (!g_atomic_pointer_compare_and_exchange (&oclass->elementfactory, NULL,
           factory))
     gst_object_unref (factory);
 
@@ -417,7 +421,7 @@
  * consisting of the element factory name and a number.
  * If name is given, it will be given the name supplied.
  *
- * Returns: (transfer full): new #GstElement or NULL if unable to create element
+ * Returns: (transfer floating): new #GstElement or NULL if unable to create element
  */
 GstElement *
 gst_element_factory_make (const gchar * factoryname, const gchar * name)
@@ -488,6 +492,16 @@
   return factory->type;
 }
 
+/**
+ * gst_element_factory_get_metadata:
+ * @factory,: a #GstElementFactory
+ * @key: a key
+ *
+ * Get the metadata on @factory with @key.
+ *
+ * Returns: the metadata with @key on @factory or %NULL when there was no
+ * metadata with the given @key.
+ */
 const gchar *
 gst_element_factory_get_metadata (GstElementFactory * factory,
     const gchar * key)
@@ -557,7 +571,7 @@
  *
  * Returns: type of URIs this element supports
  */
-gint
+GstURIType
 gst_element_factory_get_uri_type (GstElementFactory * factory)
 {
   g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), GST_URI_UNKNOWN);
@@ -577,12 +591,12 @@
  * Returns: (transfer none) (array zero-terminated=1): the supported protocols
  *     or NULL
  */
-gchar **
+const gchar *const *
 gst_element_factory_get_uri_protocols (GstElementFactory * factory)
 {
   g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);
 
-  return factory->uri_protocols;
+  return (const gchar * const *) factory->uri_protocols;
 }
 
 /**
@@ -735,8 +749,8 @@
   data.minrank = minrank;
 
   /* get the feature list using the filter */
-  result = gst_default_registry_feature_filter ((GstPluginFeatureFilter)
-      element_filter, FALSE, &data);
+  result = gst_registry_feature_filter (gst_registry_get (),
+      (GstPluginFeatureFilter) element_filter, FALSE, &data);
 
   /* sort on rank and name */
   result = g_list_sort (result, gst_plugin_feature_rank_compare_func);
@@ -769,7 +783,7 @@
 gst_element_factory_list_filter (GList * list,
     const GstCaps * caps, GstPadDirection direction, gboolean subsetonly)
 {
-  GList *result = NULL;
+  GQueue results = G_QUEUE_INIT;
 
   GST_DEBUG ("finding factories");
 
@@ -803,7 +817,7 @@
         if ((subsetonly && gst_caps_is_subset (caps, tmpl_caps)) ||
             (!subsetonly && gst_caps_can_intersect (caps, tmpl_caps))) {
           /* non empty intersection, we can use this element */
-          result = g_list_prepend (result, gst_object_ref (factory));
+          g_queue_push_tail (&results, gst_object_ref (factory));
           gst_caps_unref (tmpl_caps);
           break;
         }
@@ -811,5 +825,5 @@
       }
     }
   }
-  return g_list_reverse (result);
+  return results.head;
 }
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index ee99594..b2dff92 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -34,6 +34,7 @@
 #include <gst/gstpluginfeature.h>
 #include <gst/gstpadtemplate.h>
 #include <gst/gstiterator.h>
+#include <gst/gsturi.h>
 
 G_BEGIN_DECLS
 
@@ -56,13 +57,13 @@
 
   GType                 type;                   /* unique GType of element or 0 if not loaded */
 
-  gpointer		metadata;
+  gpointer              metadata;
 
   GList *               staticpadtemplates;     /* GstStaticPadTemplate list */
   guint                 numpadtemplates;
 
   /* URI interface stuff */
-  guint                 uri_type;
+  GstURIType            uri_type;
   gchar **              uri_protocols;
 
   GList *               interfaces;             /* interface type names this element implements */
@@ -88,21 +89,16 @@
 guint                   gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
 const GList *           gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
 
-gint                    gst_element_factory_get_uri_type        (GstElementFactory *factory);
-gchar **                gst_element_factory_get_uri_protocols   (GstElementFactory *factory);
+GstURIType              gst_element_factory_get_uri_type        (GstElementFactory *factory);
+const gchar * const *   gst_element_factory_get_uri_protocols   (GstElementFactory *factory);
 
 gboolean                gst_element_factory_has_interface       (GstElementFactory *factory,
                                                                  const gchar *interfacename);
 
 GstElement*             gst_element_factory_create              (GstElementFactory *factory,
-                                                                 const gchar *name);
-GstElement*             gst_element_factory_make                (const gchar *factoryname, const gchar *name);
+                                                                 const gchar *name) G_GNUC_MALLOC;
+GstElement*             gst_element_factory_make                (const gchar *factoryname, const gchar *name) G_GNUC_MALLOC;
 
-/* FIXME 0.11: move these two into our private headers */
-void                    __gst_element_factory_add_static_pad_template (GstElementFactory *elementfactory,
-                                                                 GstStaticPadTemplate *templ);
-void                    __gst_element_factory_add_interface     (GstElementFactory *elementfactory,
-                                                                 const gchar *interfacename);
 gboolean                gst_element_register                    (GstPlugin *plugin, const gchar *name,
                                                                  guint rank, GType type);
 
@@ -172,7 +168,7 @@
  * Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types
  *
  * Note: Do not use this if you wish to not filter against any of the defined
- * media types. If you wish to do this, simply don't specify any 
+ * media types. If you wish to do this, simply don't specify any
  * GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
  *
  * Since: 0.10.31
@@ -217,33 +213,33 @@
   (GST_ELEMENT_FACTORY_TYPE_DECODER | GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER | GST_ELEMENT_FACTORY_TYPE_PARSER)
 
 /* Element klass defines */
-#define GST_ELEMENT_FACTORY_KLASS_DECODER		"Decoder"
-#define GST_ELEMENT_FACTORY_KLASS_ENCODER		"Encoder"
-#define GST_ELEMENT_FACTORY_KLASS_SINK			"Sink"
-#define GST_ELEMENT_FACTORY_KLASS_SRC			"Source"
-#define GST_ELEMENT_FACTORY_KLASS_MUXER			"Muxer"
-#define GST_ELEMENT_FACTORY_KLASS_DEMUXER		"Demuxer"
-#define GST_ELEMENT_FACTORY_KLASS_PARSER		"Parser"
-#define GST_ELEMENT_FACTORY_KLASS_PAYLOADER		"Payloader"
-#define GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER		"Depayloader"
-#define GST_ELEMENT_FACTORY_KLASS_FORMATTER		"Formatter"
+#define GST_ELEMENT_FACTORY_KLASS_DECODER               "Decoder"
+#define GST_ELEMENT_FACTORY_KLASS_ENCODER               "Encoder"
+#define GST_ELEMENT_FACTORY_KLASS_SINK                  "Sink"
+#define GST_ELEMENT_FACTORY_KLASS_SRC                   "Source"
+#define GST_ELEMENT_FACTORY_KLASS_MUXER                 "Muxer"
+#define GST_ELEMENT_FACTORY_KLASS_DEMUXER               "Demuxer"
+#define GST_ELEMENT_FACTORY_KLASS_PARSER                "Parser"
+#define GST_ELEMENT_FACTORY_KLASS_PAYLOADER             "Payloader"
+#define GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER           "Depayloader"
+#define GST_ELEMENT_FACTORY_KLASS_FORMATTER             "Formatter"
 
-#define GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO		"Video"
-#define GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO		"Audio"
-#define GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE		"Image"
-#define GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE	"Subtitle"
-#define GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA	"Metadata"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO           "Video"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO           "Audio"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE           "Image"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE        "Subtitle"
+#define GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA        "Metadata"
 
 gboolean      gst_element_factory_list_is_type      (GstElementFactory *factory,
-						     GstElementFactoryListType type);
+                                                     GstElementFactoryListType type);
 
 GList *       gst_element_factory_list_get_elements (GstElementFactoryListType type,
-						     GstRank minrank);
+                                                     GstRank minrank) G_GNUC_MALLOC;
 
 
 GList *       gst_element_factory_list_filter       (GList *list, const GstCaps *caps,
-						     GstPadDirection direction,
-						     gboolean subsetonly);
+                                                     GstPadDirection direction,
+                                                     gboolean subsetonly) G_GNUC_MALLOC;
 G_END_DECLS
 
 #endif /* __GST_ELEMENT_FACTORY_H__ */
diff --git a/gst/gsterror.c b/gst/gsterror.c
index f3f2d22..17ec81f 100644
--- a/gst/gsterror.c
+++ b/gst/gsterror.c
@@ -122,22 +122,6 @@
     quark = g_quark_from_static_string ("gst-" # string "-error-quark"); \
   return quark; }
 
-/* FIXME: Deprecate when we depend on GLib 2.26 */
-GType
-gst_g_error_get_type (void)
-{
-#if GLIB_CHECK_VERSION(2,25,2)
-  return g_error_get_type ();
-#else
-  static GType type = 0;
-
-  if (G_UNLIKELY (type == 0))
-    type = g_boxed_type_register_static ("GstGError",
-        (GBoxedCopyFunc) g_error_copy, (GBoxedFreeFunc) g_error_free);
-  return type;
-#endif
-}
-
 #define FILE_A_BUG "  Please file a bug at " PACKAGE_BUGREPORT "."
 
 static const gchar *
diff --git a/gst/gsterror.h b/gst/gsterror.h
index d722ce0..eab6c00 100644
--- a/gst/gsterror.h
+++ b/gst/gsterror.h
@@ -197,8 +197,6 @@
   GST_STREAM_ERROR_NUM_ERRORS
 } GstStreamError;
 
-#define GST_TYPE_G_ERROR    (gst_g_error_get_type ())
-
 /**
  * GST_LIBRARY_ERROR:
  *
@@ -240,11 +238,6 @@
  */
 #define GST_ERROR_SYSTEM    ("system error: %s", g_strerror (errno))
 
-/* Hide this compatibility type from introspection */
-#ifndef __GI_SCANNER__
-GType gst_g_error_get_type (void);
-#endif
-
 gchar *gst_error_get_message (GQuark domain, gint code);
 GQuark gst_stream_error_quark (void);
 GQuark gst_core_error_quark (void);
diff --git a/gst/gstevent.c b/gst/gstevent.c
index 030b9d4..e496f40 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -36,19 +36,19 @@
  * elements will use gst_pad_send_event() or gst_pad_push_event().
  * The event should be unreffed with gst_event_unref() if it has not been sent.
  *
- * Events that have been received can be parsed with their respective 
+ * Events that have been received can be parsed with their respective
  * gst_event_parse_*() functions. It is valid to pass %NULL for unwanted details.
  *
  * Events are passed between elements in parallel to the data stream. Some events
  * are serialized with buffers, others are not. Some events only travel downstream,
- * others only upstream. Some events can travel both upstream and downstream. 
- * 
+ * others only upstream. Some events can travel both upstream and downstream.
+ *
  * The events are used to signal special conditions in the datastream such as
  * EOS (end of stream) or the start of a new stream-segment.
  * Events are also used to flush the pipeline of any pending data.
  *
- * Most of the event API is used inside plugins. Applications usually only 
- * construct and use seek events. 
+ * Most of the event API is used inside plugins. Applications usually only
+ * construct and use seek events.
  * To do that gst_event_new_seek() is used to create a seek event. It takes
  * the needed parameters to specify seeking time and mode.
  * <example>
@@ -72,7 +72,7 @@
  *   </programlisting>
  * </example>
  *
- * Last reviewed on 2006-09-6 (0.10.10)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
 
@@ -84,6 +84,7 @@
 #include "gstenumtypes.h"
 #include "gstutils.h"
 #include "gstquark.h"
+#include "gstvalue.h"
 
 GType _gst_event_type = 0;
 
@@ -107,21 +108,28 @@
   {GST_EVENT_UNKNOWN, "unknown", 0},
   {GST_EVENT_FLUSH_START, "flush-start", 0},
   {GST_EVENT_FLUSH_STOP, "flush-stop", 0},
-  {GST_EVENT_EOS, "eos", 0},
+  {GST_EVENT_STREAM_START, "stream-start", 0},
   {GST_EVENT_CAPS, "caps", 0},
+  {GST_EVENT_STREAM_CONFIG, "stream-config", 0},
   {GST_EVENT_SEGMENT, "segment", 0},
   {GST_EVENT_TAG, "tag", 0},
+  {GST_EVENT_TOC, "toc", 0},
   {GST_EVENT_BUFFERSIZE, "buffersize", 0},
   {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
+  {GST_EVENT_EOS, "eos", 0},
+  {GST_EVENT_SEGMENT_DONE, "segment-done", 0},
+  {GST_EVENT_GAP, "gap", 0},
   {GST_EVENT_QOS, "qos", 0},
   {GST_EVENT_SEEK, "seek", 0},
   {GST_EVENT_NAVIGATION, "navigation", 0},
   {GST_EVENT_LATENCY, "latency", 0},
   {GST_EVENT_STEP, "step", 0},
   {GST_EVENT_RECONFIGURE, "reconfigure", 0},
+  {GST_EVENT_TOC_SELECT, "toc-select", 0},
   {GST_EVENT_CUSTOM_UPSTREAM, "custom-upstream", 0},
   {GST_EVENT_CUSTOM_DOWNSTREAM, "custom-downstream", 0},
   {GST_EVENT_CUSTOM_DOWNSTREAM_OOB, "custom-downstream-oob", 0},
+  {GST_EVENT_CUSTOM_DOWNSTREAM_STICKY, "custom-downstream-sticky", 0},
   {GST_EVENT_CUSTOM_BOTH, "custom-both", 0},
   {GST_EVENT_CUSTOM_BOTH_OOB, "custom-both-oob", 0},
 
@@ -198,7 +206,7 @@
 {
   GstEventTypeFlags ret;
 
-  ret = type & ((1 << GST_EVENT_STICKY_SHIFT) - 1);
+  ret = type & ((1 << GST_EVENT_NUM_SHIFT) - 1);
 
   return ret;
 }
@@ -245,6 +253,8 @@
     GST_EVENT_STRUCTURE (copy) = gst_structure_copy (s);
     gst_structure_set_parent_refcount (GST_EVENT_STRUCTURE (copy),
         &copy->event.mini_object.refcount);
+  } else {
+    GST_EVENT_STRUCTURE (copy) = NULL;
   }
   return GST_EVENT_CAST (copy);
 }
@@ -262,20 +272,6 @@
   GST_EVENT_SEQNUM (event) = gst_util_seqnum_next ();
 }
 
-static GstEvent *
-gst_event_new (GstEventType type)
-{
-  GstEventImpl *event;
-
-  event = g_slice_new0 (GstEventImpl);
-
-  GST_CAT_DEBUG (GST_CAT_EVENT, "creating new event %p %s %d", event,
-      gst_event_type_get_name (type), type);
-
-  gst_event_init (event, sizeof (GstEventImpl), type);
-
-  return GST_EVENT_CAST (event);
-}
 
 /**
  * gst_event_new_custom:
@@ -299,23 +295,30 @@
 GstEvent *
 gst_event_new_custom (GstEventType type, GstStructure * structure)
 {
-  GstEvent *event;
+  GstEventImpl *event;
 
-  /* structure must not have a parent */
-  event = gst_event_new (type);
+  event = g_slice_new0 (GstEventImpl);
+
+  GST_CAT_DEBUG (GST_CAT_EVENT, "creating new event %p %s %d", event,
+      gst_event_type_get_name (type), type);
+
   if (structure) {
+    /* structure must not have a parent */
     if (!gst_structure_set_parent_refcount (structure,
-            &event->mini_object.refcount))
+            &event->event.mini_object.refcount))
       goto had_parent;
 
-    GST_EVENT_STRUCTURE (event) = structure;
   }
-  return event;
+  gst_event_init (event, sizeof (GstEventImpl), type);
+
+  GST_EVENT_STRUCTURE (event) = structure;
+
+  return GST_EVENT_CAST (event);
 
   /* ERRORS */
 had_parent:
   {
-    gst_event_unref (event);
+    g_slice_free1 (GST_MINI_OBJECT_SIZE (event), event);
     g_warning ("structure is already owned by another object");
     return NULL;
   }
@@ -366,7 +369,7 @@
 
   if (structure == NULL) {
     structure =
-        gst_structure_id_empty_new (gst_event_type_to_quark (GST_EVENT_TYPE
+        gst_structure_new_id_empty (gst_event_type_to_quark (GST_EVENT_TYPE
             (event)));
     gst_structure_set_parent_refcount (structure, &event->mini_object.refcount);
     GST_EVENT_STRUCTURE (event) = structure;
@@ -451,10 +454,6 @@
   GST_EVENT_SEQNUM (event) = seqnum;
 }
 
-/* FIXME 0.11: It would be nice to have flush events
- * that don't reset the running time in the sinks
- */
-
 /**
  * gst_event_new_flush_start:
  *
@@ -462,9 +461,9 @@
  * upstream and downstream and travels out-of-bounds with the dataflow.
  *
  * It marks pads as being flushing and will make them return
- * #GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
- * gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
- * gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
+ * #GST_FLOW_FLUSHING when used for data flow with gst_pad_push(),
+ * gst_pad_chain(), gst_pad_get_range() and gst_pad_pull_range().
+ * Any event (except a #GST_EVENT_FLUSH_STOP) received
  * on a flushing pad will return %FALSE immediately.
  *
  * Elements should unlock any blocking functions and exit their streaming
@@ -478,7 +477,7 @@
 GstEvent *
 gst_event_new_flush_start (void)
 {
-  return gst_event_new (GST_EVENT_FLUSH_START);
+  return gst_event_new_custom (GST_EVENT_FLUSH_START, NULL);
 }
 
 /**
@@ -506,7 +505,7 @@
   GST_CAT_INFO (GST_CAT_EVENT, "creating flush stop %d", reset_time);
 
   event = gst_event_new_custom (GST_EVENT_FLUSH_STOP,
-      gst_structure_id_new (GST_QUARK (EVENT_FLUSH_STOP),
+      gst_structure_new_id (GST_QUARK (EVENT_FLUSH_STOP),
           GST_QUARK (RESET_TIME), G_TYPE_BOOLEAN, reset_time, NULL));
 
   return event;
@@ -539,7 +538,7 @@
  *
  * Create a new EOS event. The eos event can only travel downstream
  * synchronized with the buffer flow. Elements that receive the EOS
- * event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
+ * event on a pad can return #GST_FLOW_EOS as a #GstFlowReturn
  * when data after the EOS event arrives.
  *
  * The EOS event will travel down to the sink elements in the pipeline
@@ -556,12 +555,71 @@
 GstEvent *
 gst_event_new_eos (void)
 {
-  return gst_event_new (GST_EVENT_EOS);
+  return gst_event_new_custom (GST_EVENT_EOS, NULL);
+}
+
+/**
+ * gst_event_new_gap:
+ * @timestamp: the start time (pts) of the gap
+ * @duration: the duration of the gap
+ *
+ * Create a new GAP event. A gap event can be thought of as conceptually
+ * equivalent to a buffer to signal that there is no data for a certain
+ * amount of time. This is useful to signal a gap to downstream elements
+ * which may wait for data, such as muxers or mixers or overlays, especially
+ * for sparse streams such as subtitle streams.
+ *
+ * Returns: (transfer full): the new GAP event.
+ */
+GstEvent *
+gst_event_new_gap (GstClockTime timestamp, GstClockTime duration)
+{
+  GstEvent *event;
+
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (duration), NULL);
+
+  GST_CAT_TRACE (GST_CAT_EVENT, "creating gap %" GST_TIME_FORMAT " - "
+      "%" GST_TIME_FORMAT " (duration: %" GST_TIME_FORMAT ")",
+      GST_TIME_ARGS (timestamp), GST_TIME_ARGS (timestamp + duration),
+      GST_TIME_ARGS (duration));
+
+  event = gst_event_new_custom (GST_EVENT_GAP,
+      gst_structure_new_id (GST_QUARK (EVENT_GAP),
+          GST_QUARK (TIMESTAMP), GST_TYPE_CLOCK_TIME, timestamp,
+          GST_QUARK (DURATION), GST_TYPE_CLOCK_TIME, duration, NULL));
+
+  return event;
+}
+
+/**
+ * gst_event_parse_gap:
+ * @event: a #GstEvent of type #GST_EVENT_GAP
+ * @timestamp: (out) (allow-none): location where to store the
+ *     start time (pts) of the gap, or %NULL
+ * @duration: (out) (allow-none): location where to store the duration of
+ *     the gap, or %NULL
+ *
+ * Extract timestamp and duration from a new GAP event.
+ */
+void
+gst_event_parse_gap (GstEvent * event, GstClockTime * timestamp,
+    GstClockTime * duration)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_GAP);
+
+  structure = GST_EVENT_STRUCTURE (event);
+  gst_structure_id_get (structure,
+      GST_QUARK (TIMESTAMP), GST_TYPE_CLOCK_TIME, timestamp,
+      GST_QUARK (DURATION), GST_TYPE_CLOCK_TIME, duration, NULL);
 }
 
 /**
  * gst_event_new_caps:
- * @caps: a #GstCaps
+ * @caps: (transfer none): a #GstCaps
  *
  * Create a new CAPS event for @caps. The caps event can only travel downstream
  * synchronized with the buffer flow and contains the format of the buffers
@@ -580,7 +638,7 @@
   GST_CAT_INFO (GST_CAT_EVENT, "creating caps event %" GST_PTR_FORMAT, caps);
 
   event = gst_event_new_custom (GST_EVENT_CAPS,
-      gst_structure_id_new (GST_QUARK (EVENT_CAPS),
+      gst_structure_new_id (GST_QUARK (EVENT_CAPS),
           GST_QUARK (CAPS), GST_TYPE_CAPS, caps, NULL));
 
   return event;
@@ -610,8 +668,227 @@
 }
 
 /**
+ * gst_event_new_stream_config:
+ * @flags: the stream config flags
+ *
+ * Create a new STREAM CONFIG event. The stream config event travels
+ * downstream synchronized with the buffer flow and contains stream
+ * configuration information for the stream, such as stream-headers
+ * or setup-data. It is optional and should be sent after the CAPS
+ * event.
+ *
+ * Returns: (transfer full): the new STREAM CONFIG event.
+ */
+GstEvent *
+gst_event_new_stream_config (GstStreamConfigFlags flags)
+{
+  GstEvent *event;
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating stream info event, flags=0x%x", flags);
+
+  event = gst_event_new_custom (GST_EVENT_STREAM_CONFIG,
+      gst_structure_new_id (GST_QUARK (EVENT_STREAM_CONFIG),
+          GST_QUARK (FLAGS), GST_TYPE_STREAM_CONFIG_FLAGS, flags, NULL));
+
+  return event;
+}
+
+/**
+ * gst_event_parse_stream_config:
+ * @event: The event to parse
+ * @flags: (out): a pointer to a variable to store the stream config flags
+ *
+ * Get the stream config flags from @event.
+ */
+void
+gst_event_parse_stream_config (GstEvent * event, GstStreamConfigFlags * flags)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG);
+
+  structure = GST_EVENT_STRUCTURE (event);
+  if (G_LIKELY (flags != NULL)) {
+    *flags =
+        g_value_get_enum (gst_structure_id_get_value (structure,
+            GST_QUARK (FLAGS)));
+  }
+}
+
+/**
+ * gst_event_set_stream_config_setup_data:
+ * @event: a stream config event
+ * @buf: a #GstBuffer with setup data
+ *
+ * Set setup data on the stream info event to signal out of bound setup data
+ * to downstream elements. Unlike stream headers, setup data contains data
+ * that is required to interpret the data stream, but is not valid as-is
+ * inside the data stream and thus can't just be prepended to or inserted
+ * into the data stream.
+ */
+void
+gst_event_set_stream_config_setup_data (GstEvent * event, GstBuffer * buf)
+{
+  GstStructure *s;
+
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG);
+  g_return_if_fail (GST_IS_BUFFER (buf) && gst_buffer_get_size (buf) > 0);
+
+  s = GST_EVENT_STRUCTURE (event);
+  gst_structure_id_set (s, GST_QUARK (SETUP_DATA), GST_TYPE_BUFFER, buf, NULL);
+}
+
+/**
+ * gst_event_parse_stream_config_setup_data:
+ * @event: a stream config event
+ * @buf: (out) (transfer none): location where to store the #GstBuffer with setup data
+ *
+ * Extracts the setup data buffer from the stream info event. Will store
+ * %NULL in @buf if the event contains no setup data. The buffer returned
+ * will remain valid as long as @event remains valid. The caller should
+ * acquire a reference to to @buf if needed.
+ *
+ * Returns: TRUE if @event contained setup data and @buf has been set,
+ *     otherwise FALSE.
+ */
+gboolean
+gst_event_parse_stream_config_setup_data (GstEvent * event, GstBuffer ** buf)
+{
+  const GValue *val;
+  GstStructure *s;
+
+  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
+  g_return_val_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG,
+      FALSE);
+  g_return_val_if_fail (buf != NULL, FALSE);
+
+  s = GST_EVENT_STRUCTURE (event);
+  val = gst_structure_id_get_value (s, GST_QUARK (SETUP_DATA));
+  if (val != NULL)
+    *buf = g_value_get_boxed (val);
+  else
+    *buf = NULL;
+
+  return (*buf != NULL);
+}
+
+/**
+ * gst_event_add_stream_config_header:
+ * @event: a stream config event
+ * @buf: a #GstBuffer with stream header data
+ *
+ * Adds a stream header to the stream info event to signal stream headers to
+ * to downstream elements such as multifilesink, tcpserversink etc. Stream
+ * headers can be and should usually be prepended to the data stream at any
+ * point in the stream (which requires a streamable format), e.g. to a new
+ * client connecting, or when starting a new file segment. stream header
+ * buffers will all be used together in the order they were added to the
+ * stream config event. Stream headers are sent as buffers at the beginning
+ * of the data flow in addition to the stream config event. Elements that
+ * care about stream headers need to make sure that they don't insert or
+ * interpret these header buffers twice if they interpret them.
+ */
+void
+gst_event_add_stream_config_header (GstEvent * event, GstBuffer * buf)
+{
+  GstStructure *s;
+  GValue buf_val = { 0, };
+  GValue *val;
+
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG);
+  g_return_if_fail (GST_IS_BUFFER (buf) && gst_buffer_get_size (buf) > 0);
+
+  g_value_init (&buf_val, GST_TYPE_BUFFER);
+  g_value_set_boxed (&buf_val, buf);
+
+  s = GST_EVENT_STRUCTURE (event);
+  val = (GValue *) gst_structure_id_get_value (s, GST_QUARK (STREAM_HEADERS));
+  if (val == NULL) {
+    GValue new_array = { 0, };
+
+    g_value_init (&new_array, GST_TYPE_ARRAY);
+    gst_value_array_append_value (&new_array, &buf_val);
+    gst_structure_id_take_value (s, GST_QUARK (STREAM_HEADERS), &new_array);
+  } else {
+    gst_value_array_append_value (val, &buf_val);
+  }
+  g_value_unset (&buf_val);
+}
+
+/**
+ * gst_event_get_n_stream_config_headers:
+ * @event: a stream config event
+ *
+ * Extract the number of stream header buffers.
+ *
+ * Returns: the number of stream header buffers attached to the stream info
+ * @event.
+ */
+guint
+gst_event_get_n_stream_config_headers (GstEvent * event)
+{
+  const GValue *val;
+  GstStructure *s;
+  guint num = 0;
+
+  g_return_val_if_fail (GST_IS_EVENT (event), 0);
+  g_return_val_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG, 0);
+
+  s = GST_EVENT_STRUCTURE (event);
+  val = gst_structure_id_get_value (s, GST_QUARK (STREAM_HEADERS));
+
+  if (val != NULL)
+    num = gst_value_array_get_size (val);
+
+  return num;
+}
+
+/**
+ * gst_event_parse_nth_stream_config_header:
+ * @event: a stream config event
+ * @index: number of the stream header to retrieve
+ * @buf: (out) (transfer none): location where to store the n-th stream
+ *     header #GstBuffer
+ *
+ * Retrieves the n-th stream header buffer attached to the stream config
+ * event and stores it in @buf. Will store %NULL in @buf if there is no such
+ * stream header.
+ *
+ * Returns: TRUE if @event contained a stream header at @index and @buf has
+ *    been set, otherwise FALSE.
+ */
+gboolean
+gst_event_parse_nth_stream_config_header (GstEvent * event, guint index,
+    GstBuffer ** buf)
+{
+  const GValue *val, *buf_val;
+  GstStructure *s;
+  GstBuffer *ret = NULL;
+
+  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
+  g_return_val_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_CONFIG,
+      FALSE);
+  g_return_val_if_fail (buf != NULL, FALSE);
+
+  s = GST_EVENT_STRUCTURE (event);
+  val = gst_structure_id_get_value (s, GST_QUARK (STREAM_HEADERS));
+
+  if (val != NULL) {
+    buf_val = gst_value_array_get_value (val, index);
+    if (buf_val != NULL)
+      ret = g_value_get_boxed (buf_val);
+  }
+
+  *buf = ret;
+  return (ret != NULL);
+}
+
+/**
  * gst_event_new_segment:
- * @segment: a #GstSegment
+ * @segment: (transfer none): a #GstSegment
  *
  * Create a new SEGMENT event for @segment. The segment event can only travel
  * downstream synchronized with the buffer flow and contains timing information
@@ -648,17 +925,20 @@
  * Returns: (transfer full): the new SEGMENT event.
  */
 GstEvent *
-gst_event_new_segment (GstSegment * segment)
+gst_event_new_segment (const GstSegment * segment)
 {
   GstEvent *event;
 
   g_return_val_if_fail (segment != NULL, NULL);
+  g_return_val_if_fail (segment->rate != 0.0, NULL);
+  g_return_val_if_fail (segment->applied_rate != 0.0, NULL);
+  g_return_val_if_fail (segment->format != GST_FORMAT_UNDEFINED, NULL);
 
   GST_CAT_INFO (GST_CAT_EVENT, "creating segment event %" GST_SEGMENT_FORMAT,
       segment);
 
   event = gst_event_new_custom (GST_EVENT_SEGMENT,
-      gst_structure_id_new (GST_QUARK (EVENT_SEGMENT),
+      gst_structure_new_id (GST_QUARK (EVENT_SEGMENT),
           GST_QUARK (SEGMENT), GST_TYPE_SEGMENT, segment, NULL));
 
   return event;
@@ -774,7 +1054,7 @@
       ", maxsize %" G_GINT64_FORMAT ", async %d", gst_format_get_name (format),
       minsize, maxsize, async);
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_BUFFER_SIZE),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_BUFFER_SIZE),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (MINSIZE), G_TYPE_INT64, minsize,
       GST_QUARK (MAXSIZE), G_TYPE_INT64, maxsize,
@@ -884,12 +1164,12 @@
   /* diff must be positive or timestamp + diff must be positive */
   g_return_val_if_fail (diff >= 0 || -diff <= timestamp, NULL);
 
-  GST_CAT_INFO (GST_CAT_EVENT,
+  GST_CAT_LOG (GST_CAT_EVENT,
       "creating qos type %d, proportion %lf, diff %" G_GINT64_FORMAT
       ", timestamp %" GST_TIME_FORMAT, type, proportion,
       diff, GST_TIME_ARGS (timestamp));
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_QOS),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_QOS),
       GST_QUARK (TYPE), GST_TYPE_QOS_TYPE, type,
       GST_QUARK (PROPORTION), G_TYPE_DOUBLE, proportion,
       GST_QUARK (DIFF), G_TYPE_INT64, diff,
@@ -1007,7 +1287,7 @@
         stop);
   }
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_SEEK),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_SEEK),
       GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (FLAGS), GST_TYPE_SEEK_FLAGS, flags,
@@ -1115,7 +1395,7 @@
   GST_CAT_INFO (GST_CAT_EVENT,
       "creating latency event %" GST_TIME_FORMAT, GST_TIME_ARGS (latency));
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_LATENCY),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_LATENCY),
       GST_QUARK (LATENCY), G_TYPE_UINT64, latency, NULL);
   event = gst_event_new_custom (GST_EVENT_LATENCY, structure);
 
@@ -1155,8 +1435,9 @@
  * to skip @amount (expressed in @format) of media. It can be used to implement
  * stepping through the video frame by frame or for doing fast trick modes.
  *
- * A rate of <= 0.0 is not allowed, pause the pipeline or reverse the playback
- * direction of the pipeline to get the same effect.
+ * A rate of <= 0.0 is not allowed. Pause the pipeline, for the effect of rate
+ * = 0.0 or first reverse the direction of playback using a seek event to get
+ * the same effect as rate < 0.0.
  *
  * The @flush flag will clear any pending data in the pipeline before starting
  * the step operation.
@@ -1179,7 +1460,7 @@
 
   GST_CAT_INFO (GST_CAT_EVENT, "creating step event");
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_STEP),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_STEP),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (AMOUNT), G_TYPE_UINT64, amount,
       GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
@@ -1279,7 +1560,7 @@
 
   GST_CAT_INFO (GST_CAT_EVENT, "creating sink-message event");
 
-  structure = gst_structure_id_new (GST_QUARK (EVENT_SINK_MESSAGE),
+  structure = gst_structure_new_id (GST_QUARK (EVENT_SINK_MESSAGE),
       GST_QUARK (MESSAGE), GST_TYPE_MESSAGE, msg, NULL);
   event = gst_event_new_custom (GST_EVENT_SINK_MESSAGE, structure);
 
@@ -1309,3 +1590,134 @@
         GST_MESSAGE (g_value_dup_boxed (gst_structure_id_get_value
             (structure, GST_QUARK (MESSAGE))));
 }
+
+/**
+ * gst_event_new_stream_start
+ *
+ * Create a new STREAM_START event. The stream start event can only
+ * travel downstream synchronized with the buffer flow. It is expected
+ * to be the first event that is sent for a new stream.
+ *
+ * Source elements, demuxers and other elements that create new streams
+ * are supposed to send this event as the first event of a new stream. It
+ * should not be send after a flushing seek or in similar situations
+ * and is used to mark the beginning of a new logical stream. Elements
+ * combining multiple streams must ensure that this event is only forwarded
+ * downstream once and not for every single input stream.
+ *
+ * Returns: (transfer full): the new STREAM_START event.
+ */
+GstEvent *
+gst_event_new_stream_start (void)
+{
+  return gst_event_new_custom (GST_EVENT_STREAM_START, NULL);
+}
+
+/**
+ * gst_event_new_toc:
+ * @toc: #GstToc structure.
+ * @updated: whether @toc was updated or not.
+ *
+ * Generate a TOC event from the given @toc. The purpose of the TOC event is to
+ * inform elements that some kind of the TOC was found.
+ *
+ * Returns: a new #GstEvent.
+ *
+ * Since: 0.10.37
+ */
+GstEvent *
+gst_event_new_toc (GstToc * toc, gboolean updated)
+{
+  GstStructure *toc_struct;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating toc event");
+
+  toc_struct = __gst_toc_to_structure (toc);
+
+  if (G_LIKELY (toc_struct != NULL)) {
+    __gst_toc_structure_set_updated (toc_struct, updated);
+    return gst_event_new_custom (GST_EVENT_TOC, toc_struct);
+  } else
+    return NULL;
+}
+
+/**
+ * gst_event_parse_toc:
+ * @event: a TOC event.
+ * @toc: (out): pointer to #GstToc structure.
+ * @updated: (out): pointer to store TOC updated flag.
+ *
+ * Parse a TOC @event and store the results in the given @toc and @updated locations.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_event_parse_toc (GstEvent * event, GstToc ** toc, gboolean * updated)
+{
+  const GstStructure *structure;
+
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TOC);
+  g_return_if_fail (toc != NULL);
+
+  structure = gst_event_get_structure (event);
+  *toc = __gst_toc_from_structure (structure);
+
+  if (updated != NULL)
+    *updated = __gst_toc_structure_get_updated (structure);
+}
+
+/**
+ * gst_event_new_toc_select:
+ * @uid: UID in the TOC to start playback from.
+ *
+ * Generate a TOC select event with the given @uid. The purpose of the
+ * TOC select event is to start playback based on the TOC's entry with the
+ * given @uid.
+ *
+ * Returns: a new #GstEvent.
+ *
+ * Since: 0.10.37
+ */
+GstEvent *
+gst_event_new_toc_select (const gchar * uid)
+{
+  GstStructure *structure;
+
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating toc select event for UID: %s", uid);
+
+  structure = gst_structure_new_id (GST_QUARK (EVENT_TOC_SELECT),
+      GST_QUARK (UID), G_TYPE_STRING, uid, NULL);
+
+  return gst_event_new_custom (GST_EVENT_TOC_SELECT, structure);
+}
+
+/**
+ * gst_event_parse_toc_select:
+ * @event: a TOC select event.
+ * @uid: (out): storage for the selection UID.
+ *
+ * Parse a TOC select @event and store the results in the given @uid location.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_event_parse_toc_select (GstEvent * event, gchar ** uid)
+{
+  const GstStructure *structure;
+  const GValue *val;
+
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TOC_SELECT);
+
+  structure = gst_event_get_structure (event);
+  val = gst_structure_id_get_value (structure, GST_QUARK (UID));
+
+  if (uid != NULL)
+    *uid = g_strdup (g_value_get_string (val));
+
+}
diff --git a/gst/gstevent.h b/gst/gstevent.h
index 95013ba..b8609e9 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -29,11 +29,13 @@
 
 /**
  * GstEventTypeFlags:
- * @GST_EVENT_TYPE_UPSTREAM:   Set if the event can travel upstream.
- * @GST_EVENT_TYPE_DOWNSTREAM: Set if the event can travel downstream.
- * @GST_EVENT_TYPE_SERIALIZED: Set if the event should be serialized with data
- *                             flow.
- * @GST_EVENT_TYPE_STICKY:     Set if the event is sticky on the pads.
+ * @GST_EVENT_TYPE_UPSTREAM:     Set if the event can travel upstream.
+ * @GST_EVENT_TYPE_DOWNSTREAM:   Set if the event can travel downstream.
+ * @GST_EVENT_TYPE_SERIALIZED:   Set if the event should be serialized with data
+ *                               flow.
+ * @GST_EVENT_TYPE_STICKY:       Set if the event is sticky on the pads.
+ * @GST_EVENT_TYPE_STICKY_MULTI: Multiple sticky events can be on a pad, each
+ *                               identified by the event name.
  *
  * #GstEventTypeFlags indicate the aspects of the different #GstEventType
  * values. You can get the type flags of a #GstEventType with the
@@ -43,7 +45,8 @@
   GST_EVENT_TYPE_UPSTREAM       = 1 << 0,
   GST_EVENT_TYPE_DOWNSTREAM     = 1 << 1,
   GST_EVENT_TYPE_SERIALIZED     = 1 << 2,
-  GST_EVENT_TYPE_STICKY         = 1 << 3
+  GST_EVENT_TYPE_STICKY         = 1 << 3,
+  GST_EVENT_TYPE_STICKY_MULTI   = 1 << 4
 } GstEventTypeFlags;
 
 /**
@@ -54,27 +57,21 @@
 #define GST_EVENT_TYPE_BOTH \
     (GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM)
 
-#define GST_EVENT_MAX_STICKY    16
-#define GST_EVENT_STICKY_SHIFT  8
-#define GST_EVENT_NUM_SHIFT     (GST_EVENT_STICKY_SHIFT + 4)
+#define GST_EVENT_NUM_SHIFT     (8)
 
 /**
  * GST_EVENT_MAKE_TYPE:
  * @num: the event number to create
- * @idx: the index in the sticky array
  * @flags: the event flags
  *
  * when making custom event types, use this macro with the num and
  * the given flags
  */
-#define GST_EVENT_MAKE_TYPE(num,idx,flags) \
-    (((num) << GST_EVENT_NUM_SHIFT) | ((idx) << GST_EVENT_STICKY_SHIFT) | (flags))
+#define GST_EVENT_MAKE_TYPE(num,flags) \
+    (((num) << GST_EVENT_NUM_SHIFT) | (flags))
 
 #define FLAG(name) GST_EVENT_TYPE_##name
 
-#define GST_EVENT_STICKY_IDX_TYPE(type)  (((type) >> GST_EVENT_STICKY_SHIFT) & 0xf)
-#define GST_EVENT_STICKY_IDX(ev)         GST_EVENT_STICKY_IDX_TYPE(GST_EVENT_TYPE(ev))
-
 /**
  * GstEventType:
  * @GST_EVENT_UNKNOWN: unknown event.
@@ -82,7 +79,12 @@
  *                 from the pipeline and unblock all streaming threads.
  * @GST_EVENT_FLUSH_STOP: Stop a flush operation. This event resets the
  *                 running-time of the pipeline.
+ * @GST_EVENT_STREAM_START: Event to mark the start of a new stream. Sent before any
+ *                 other serialized event and only sent at the start of a new stream,
+ *                 not after flushing seeks.
  * @GST_EVENT_CAPS: #GstCaps event. Notify the pad of a new media type.
+ * @GST_EVENT_STREAM_CONFIG: contains configuration information for the stream,
+ *                 for example stream-headers and codec-data.
  * @GST_EVENT_SEGMENT: A new media segment follows in the dataflow. The
  *                 segment events contains information for clipping buffers and
  *                 converting buffer timestamps to running-time and
@@ -96,6 +98,10 @@
  *                          Since: 0.10.26
  * @GST_EVENT_EOS: End-Of-Stream. No more data is to be expected to follow
  *                 without a SEGMENT event.
+ * @GST_EVENT_SEGMENT_DONE: (unimplemented) Marks the end of a segment playback.
+ * @GST_EVENT_GAP: (unimplemented) Marks a gap in the datastream.
+ * @GST_EVENT_TOC: An event which indicates that a new table of contents (TOC)
+ *                 was found or updated. Since: 0.10.37
  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
  *                 that the downstream elements should adjust their processing
  *                 rate.
@@ -110,10 +116,13 @@
  *                  execute the step operation. Since: 0.10.24
  * @GST_EVENT_RECONFIGURE: A request for upstream renegotiating caps and reconfiguring.
  *                         Since: 0.11.0
+ * @GST_EVENT_TOC_SELECT: A request for a new playback position based on TOC
+ *                        entry's UID. Since 0.10.37
  * @GST_EVENT_CUSTOM_UPSTREAM: Upstream custom event
  * @GST_EVENT_CUSTOM_DOWNSTREAM: Downstream custom event that travels in the
  *                        data flow.
  * @GST_EVENT_CUSTOM_DOWNSTREAM_OOB: Custom out-of-band downstream event.
+ * @GST_EVENT_CUSTOM_DOWNSTREAM_STICKY: Custom sticky downstream event.
  * @GST_EVENT_CUSTOM_BOTH: Custom upstream or downstream event.
  *                         In-band when travelling downstream.
  * @GST_EVENT_CUSTOM_BOTH_OOB: Custom upstream or downstream out-of-band event.
@@ -128,32 +137,43 @@
  */
 /* NOTE: keep in sync with quark registration in gstevent.c */
 typedef enum {
-  GST_EVENT_UNKNOWN               = GST_EVENT_MAKE_TYPE (0, 0, 0),
+  GST_EVENT_UNKNOWN               = GST_EVENT_MAKE_TYPE (0, 0),
+
   /* bidirectional events */
-  GST_EVENT_FLUSH_START           = GST_EVENT_MAKE_TYPE (1, 0, FLAG(BOTH)),
-  GST_EVENT_FLUSH_STOP            = GST_EVENT_MAKE_TYPE (2, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
+  GST_EVENT_FLUSH_START           = GST_EVENT_MAKE_TYPE (10, FLAG(BOTH)),
+  GST_EVENT_FLUSH_STOP            = GST_EVENT_MAKE_TYPE (20, FLAG(BOTH) | FLAG(SERIALIZED)),
+
   /* downstream serialized events */
-  GST_EVENT_CAPS                  = GST_EVENT_MAKE_TYPE (5, 1, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_SEGMENT               = GST_EVENT_MAKE_TYPE (6, 2, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (7, 3, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (8, 4, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (9, 5, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
-  GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (10, 6, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_STREAM_START          = GST_EVENT_MAKE_TYPE (40, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_CAPS                  = GST_EVENT_MAKE_TYPE (50, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_STREAM_CONFIG         = GST_EVENT_MAKE_TYPE (60, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_SEGMENT               = GST_EVENT_MAKE_TYPE (70, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_TAG                   = GST_EVENT_MAKE_TYPE (80, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+
+  /* non-sticky downstream serialized */
+  GST_EVENT_SEGMENT_DONE          = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_EVENT_GAP                   = GST_EVENT_MAKE_TYPE (160, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
 
   /* upstream events */
-  GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (15, 0, FLAG(UPSTREAM)),
-  GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (16, 0, FLAG(UPSTREAM)),
-  GST_EVENT_NAVIGATION            = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)),
-  GST_EVENT_LATENCY               = GST_EVENT_MAKE_TYPE (18, 0, FLAG(UPSTREAM)),
-  GST_EVENT_STEP                  = GST_EVENT_MAKE_TYPE (19, 0, FLAG(UPSTREAM)),
-  GST_EVENT_RECONFIGURE           = GST_EVENT_MAKE_TYPE (20, 0, FLAG(UPSTREAM)),
+  GST_EVENT_QOS                   = GST_EVENT_MAKE_TYPE (190, FLAG(UPSTREAM)),
+  GST_EVENT_SEEK                  = GST_EVENT_MAKE_TYPE (200, FLAG(UPSTREAM)),
+  GST_EVENT_NAVIGATION            = GST_EVENT_MAKE_TYPE (210, FLAG(UPSTREAM)),
+  GST_EVENT_LATENCY               = GST_EVENT_MAKE_TYPE (220, FLAG(UPSTREAM)),
+  GST_EVENT_STEP                  = GST_EVENT_MAKE_TYPE (230, FLAG(UPSTREAM)),
+  GST_EVENT_RECONFIGURE           = GST_EVENT_MAKE_TYPE (240, FLAG(UPSTREAM)),
+  GST_EVENT_TOC_SELECT            = GST_EVENT_MAKE_TYPE (250, FLAG(UPSTREAM)),
 
   /* custom events start here */
-  GST_EVENT_CUSTOM_UPSTREAM       = GST_EVENT_MAKE_TYPE (32, 0, FLAG(UPSTREAM)),
-  GST_EVENT_CUSTOM_DOWNSTREAM     = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-  GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM)),
-  GST_EVENT_CUSTOM_BOTH           = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
-  GST_EVENT_CUSTOM_BOTH_OOB       = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH))
+  GST_EVENT_CUSTOM_UPSTREAM          = GST_EVENT_MAKE_TYPE (270, FLAG(UPSTREAM)),
+  GST_EVENT_CUSTOM_DOWNSTREAM        = GST_EVENT_MAKE_TYPE (280, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_EVENT_CUSTOM_DOWNSTREAM_OOB    = GST_EVENT_MAKE_TYPE (290, FLAG(DOWNSTREAM)),
+  GST_EVENT_CUSTOM_DOWNSTREAM_STICKY = GST_EVENT_MAKE_TYPE (300, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_CUSTOM_BOTH              = GST_EVENT_MAKE_TYPE (310, FLAG(BOTH) | FLAG(SERIALIZED)),
+  GST_EVENT_CUSTOM_BOTH_OOB          = GST_EVENT_MAKE_TYPE (320, FLAG(BOTH))
 } GstEventType;
 #undef FLAG
 
@@ -169,7 +189,7 @@
 
 G_BEGIN_DECLS
 
-extern GType _gst_event_type;
+GST_EXPORT GType _gst_event_type;
 
 #define GST_TYPE_EVENT                  (_gst_event_type)
 #define GST_IS_EVENT(obj)               (GST_IS_MINI_OBJECT_TYPE (obj, GST_TYPE_EVENT))
@@ -177,13 +197,6 @@
 #define GST_EVENT(obj)                  (GST_EVENT_CAST(obj))
 
 /**
- * GST_EVENT_TRACE_NAME:
- *
- * The name used for memory allocation tracing
- */
-#define GST_EVENT_TRACE_NAME    "GstEvent"
-
-/**
  * GST_EVENT_TYPE:
  * @event: the event to query
  *
@@ -281,8 +294,16 @@
  *
  * Returns: TRUE if @new_event was different from @old_event
  */
-#define         gst_event_replace(old_event,new_event) \
-    gst_mini_object_replace ((GstMiniObject **)(old_event), GST_MINI_OBJECT_CAST (new_event))
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_event_replace (GstEvent **old_event, GstEvent *new_event);
+#endif
+
+static inline gboolean
+gst_event_replace (GstEvent **old_event, GstEvent *new_event)
+{
+  return gst_mini_object_replace ((GstMiniObject **) old_event, (GstMiniObject *) new_event);
+}
+
 /**
  * gst_event_steal:
  * @old_event: (inout) (transfer full): pointer to a pointer to a #GstEvent
@@ -293,8 +314,16 @@
  *
  * Returns: the #GstEvent that was in @old_event
  */
-#define         gst_event_steal(old_event) \
-    GST_EVENT_CAST (gst_mini_object_steal ((GstMiniObject **)(old_event)))
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstEvent * gst_event_steal (GstEvent **old_event);
+#endif
+
+static inline GstEvent *
+gst_event_steal (GstEvent **old_event)
+{
+  return GST_EVENT_CAST (gst_mini_object_steal ((GstMiniObject **) old_event));
+}
+
 /**
  * gst_event_take:
  * @old_event: (inout) (transfer full): pointer to a pointer to a #GstEvent
@@ -310,8 +339,15 @@
  *
  * Returns: TRUE if @new_event was different from @old_event
  */
-#define         gst_event_take(old_event,new_event) \
-    gst_mini_object_take ((GstMiniObject **)(old_event), GST_MINI_OBJECT_CAST (new_event))
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_event_take (GstEvent **old_event, GstEvent *new_event);
+#endif
+
+static inline gboolean
+gst_event_take (GstEvent **old_event, GstEvent *new_event)
+{
+  return gst_mini_object_take ((GstMiniObject **) old_event, (GstMiniObject *) new_event);
+}
 
 /**
  * GstQOSType:
@@ -337,6 +373,17 @@
 } GstQOSType;
 
 /**
+ * GstStreamConfigFlags:
+ * @GST_STREAM_CONFIG_FLAG_NONE: no flags set
+ *
+ * GstStreamConfigFlags are flags passed with the stream config event, see
+ * gst_event_new_stream_config().
+ */
+typedef enum {
+  GST_STREAM_CONFIG_FLAG_NONE = 0
+} GstStreamConfigFlags;
+
+/**
  * GstEvent:
  * @mini_object: the parent structure
  * @type: the #GstEventType of the event
@@ -417,7 +464,7 @@
 GType           gst_event_get_type              (void);
 
 /* custom event */
-GstEvent*       gst_event_new_custom            (GstEventType type, GstStructure *structure);
+GstEvent*       gst_event_new_custom            (GstEventType type, GstStructure *structure) G_GNUC_MALLOC;
 
 const GstStructure *
                 gst_event_get_structure         (GstEvent *event);
@@ -429,68 +476,105 @@
 guint32         gst_event_get_seqnum            (GstEvent *event);
 void            gst_event_set_seqnum            (GstEvent *event, guint32 seqnum);
 
-/* flush events */
-GstEvent *      gst_event_new_flush_start       (void);
+/* Stream start event */
+GstEvent *      gst_event_new_stream_start      (void) G_GNUC_MALLOC;
 
-GstEvent *      gst_event_new_flush_stop        (gboolean reset_time);
+/* flush events */
+GstEvent *      gst_event_new_flush_start       (void) G_GNUC_MALLOC;
+
+GstEvent *      gst_event_new_flush_stop        (gboolean reset_time) G_GNUC_MALLOC;
 void            gst_event_parse_flush_stop      (GstEvent *event, gboolean *reset_time);
 
 /* EOS event */
-GstEvent *      gst_event_new_eos               (void);
+GstEvent *      gst_event_new_eos               (void) G_GNUC_MALLOC;
+
+/* GAP event */
+GstEvent *      gst_event_new_gap               (GstClockTime   timestamp,
+                                                 GstClockTime   duration) G_GNUC_MALLOC;
+
+void            gst_event_parse_gap             (GstEvent     * event,
+                                                 GstClockTime * timestamp,
+                                                 GstClockTime * duration);
 
 /* Caps events */
-GstEvent *      gst_event_new_caps              (GstCaps *caps);
+GstEvent *      gst_event_new_caps              (GstCaps *caps) G_GNUC_MALLOC;
 void            gst_event_parse_caps            (GstEvent *event, GstCaps **caps);
 
+/* Stream config */
+GstEvent *      gst_event_new_stream_config                (GstStreamConfigFlags flags) G_GNUC_MALLOC;
+
+void            gst_event_parse_stream_config              (GstEvent * event, GstStreamConfigFlags * flags);
+
+
+void            gst_event_set_stream_config_setup_data     (GstEvent * event, GstBuffer  * buf);
+
+gboolean        gst_event_parse_stream_config_setup_data   (GstEvent * event, GstBuffer ** buf);
+
+
+void            gst_event_add_stream_config_header         (GstEvent * event, GstBuffer  * buf);
+
+guint           gst_event_get_n_stream_config_headers      (GstEvent * event);
+
+gboolean        gst_event_parse_nth_stream_config_header   (GstEvent * event, guint index, GstBuffer ** buf);
+
 /* segment event */
-GstEvent*       gst_event_new_segment           (GstSegment *segment);
+GstEvent*       gst_event_new_segment           (const GstSegment *segment) G_GNUC_MALLOC;
 void            gst_event_parse_segment         (GstEvent *event, const GstSegment **segment);
 void            gst_event_copy_segment          (GstEvent *event, GstSegment *segment);
 
 /* tag event */
-GstEvent*       gst_event_new_tag               (GstTagList *taglist);
+GstEvent*       gst_event_new_tag               (GstTagList *taglist) G_GNUC_MALLOC;
 void            gst_event_parse_tag             (GstEvent *event, GstTagList **taglist);
 
+/* TOC event */
+GstEvent*      gst_event_new_toc                (GstToc *toc, gboolean updated);
+void           gst_event_parse_toc              (GstEvent *event, GstToc **toc, gboolean *updated);
+
+
 /* buffer */
 GstEvent *      gst_event_new_buffer_size       (GstFormat format, gint64 minsize, gint64 maxsize,
-                                                 gboolean async);
+                                                 gboolean async) G_GNUC_MALLOC;
 void            gst_event_parse_buffer_size     (GstEvent *event, GstFormat *format, gint64 *minsize,
                                                  gint64 *maxsize, gboolean *async);
 
 /* sink message */
-GstEvent*       gst_event_new_sink_message      (GstMessage *msg);
+GstEvent*       gst_event_new_sink_message      (GstMessage *msg) G_GNUC_MALLOC;
 void            gst_event_parse_sink_message    (GstEvent *event, GstMessage **msg);
 
 /* QOS events */
 GstEvent*       gst_event_new_qos               (GstQOSType type, gdouble proportion,
-                                                 GstClockTimeDiff diff, GstClockTime timestamp);
+                                                 GstClockTimeDiff diff, GstClockTime timestamp) G_GNUC_MALLOC;
 void            gst_event_parse_qos             (GstEvent *event, GstQOSType *type,
                                                  gdouble *proportion, GstClockTimeDiff *diff,
                                                  GstClockTime *timestamp);
 /* seek event */
 GstEvent*       gst_event_new_seek              (gdouble rate, GstFormat format, GstSeekFlags flags,
                                                  GstSeekType start_type, gint64 start,
-                                                 GstSeekType stop_type, gint64 stop);
+                                                 GstSeekType stop_type, gint64 stop) G_GNUC_MALLOC;
 void            gst_event_parse_seek            (GstEvent *event, gdouble *rate, GstFormat *format,
                                                  GstSeekFlags *flags,
                                                  GstSeekType *start_type, gint64 *start,
                                                  GstSeekType *stop_type, gint64 *stop);
 
 /* navigation event */
-GstEvent*       gst_event_new_navigation        (GstStructure *structure);
+GstEvent*       gst_event_new_navigation        (GstStructure *structure) G_GNUC_MALLOC;
 
 /* latency event */
-GstEvent*       gst_event_new_latency           (GstClockTime latency);
+GstEvent*       gst_event_new_latency           (GstClockTime latency) G_GNUC_MALLOC;
 void            gst_event_parse_latency         (GstEvent *event, GstClockTime *latency);
 
 /* step event */
 GstEvent*       gst_event_new_step              (GstFormat format, guint64 amount, gdouble rate,
-                                                 gboolean flush, gboolean intermediate);
+                                                 gboolean flush, gboolean intermediate) G_GNUC_MALLOC;
 void            gst_event_parse_step            (GstEvent *event, GstFormat *format, guint64 *amount,
                                                  gdouble *rate, gboolean *flush, gboolean *intermediate);
 
 /* renegotiate event */
-GstEvent*       gst_event_new_reconfigure       (void);
+GstEvent*       gst_event_new_reconfigure       (void) G_GNUC_MALLOC;
+
+/* TOC select event */
+GstEvent*       gst_event_new_toc_select        (const gchar *uid) G_GNUC_MALLOC;
+void            gst_event_parse_toc_select      (GstEvent *event, gchar **uid);
 
 G_END_DECLS
 
diff --git a/gst/gstfilter.c b/gst/gstfilter.c
deleted file mode 100644
index 7d6c055..0000000
--- a/gst/gstfilter.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstfilter
- * @short_description: A utility function to filter GLists.
- *
- * <example>
- * <title>Filtering a list</title>
- *   <programlisting>
- *     GList *node;
- *     GstObject *result = NULL;
- *     
- *     node = gst_filter_run (list, (GstFilterFunc) my_filter, TRUE, NULL);
- *     if (node) {
- *       result = GST_OBJECT (node->data);
- *       gst_object_ref (result);
- *       g_list_free (node);
- *     }
- *   </programlisting>
- * </example>
- */
-#include "gst_private.h"
-#include <gst/gstfilter.h>
-
-/**
- * gst_filter_run:
- * @list: a linked list
- * @func: (scope call): the function to execute for each item
- * @first: flag to stop execution after a successful item
- * @user_data: (closure): user data
- *
- * Iterates over the elements in @list, calling @func with the
- * list item data for each item.  If @func returns TRUE, @data is
- * prepended to the list of results returned.  If @first is true,
- * the search is halted after the first result is found.
- *
- * Since gst_filter_run() knows nothing about the type of @data, no
- * reference will be taken (if @data refers to an object) and no copy of
- * @data wil be made in any other way when prepending @data to the list of
- * results.
- *
- * Returns: (transfer container): the list of results. Free with g_list_free()
- *     when no longer needed (the data contained in the list is a flat copy
- *     and does need to be unreferenced or freed).
- */
-GList *
-gst_filter_run (const GList * list, GstFilterFunc func, gboolean first,
-    gpointer user_data)
-{
-  const GList *walk = list;
-  GList *result = NULL;
-
-  while (walk) {
-    gboolean res = TRUE;
-    gpointer data = walk->data;
-
-    walk = g_list_next (walk);
-
-    if (func)
-      res = func (data, user_data);
-
-    if (res) {
-      result = g_list_prepend (result, data);
-
-      if (first)
-        break;
-    }
-  }
-
-  return result;
-}
diff --git a/gst/gstfilter.h b/gst/gstfilter.h
deleted file mode 100644
index 1728f00..0000000
--- a/gst/gstfilter.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_FILTER_H__
-#define __GST_FILTER_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/**
- * GstFilterFunc:
- * @obj: the object
- * @user_data: filter data
- *
- * Function prototype for a filter callback that can be use in gst_filter_run().
- * The function should apply its filtering to @obj. Additional data passed to
- * gst_filter_run() are in @data.
- *
- * Returns: %TRUE for success.
- */
-typedef gboolean (*GstFilterFunc)	(gpointer obj, gpointer user_data);
-
-GList*	gst_filter_run 	(const GList *list, GstFilterFunc func, gboolean first, gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __GST_FILTER_H_ */
diff --git a/gst/gstformat.c b/gst/gstformat.c
index 24c3d0f..3e50d33 100644
--- a/gst/gstformat.c
+++ b/gst/gstformat.c
@@ -37,7 +37,7 @@
 #include "gstformat.h"
 #include "gstenumtypes.h"
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+static GMutex mutex;
 static GList *_gst_formats = NULL;
 static GHashTable *_nick_to_format = NULL;
 static GHashTable *_format_to_nick = NULL;
@@ -57,7 +57,7 @@
 {
   GstFormatDefinition *standards = standard_definitions;
 
-  g_static_mutex_lock (&mutex);
+  g_mutex_lock (&mutex);
   if (_nick_to_format == NULL) {
     _nick_to_format = g_hash_table_new (g_str_hash, g_str_equal);
     _format_to_nick = g_hash_table_new (NULL, NULL);
@@ -76,7 +76,7 @@
   }
   /* getting the type registers the enum */
   g_type_class_ref (gst_format_get_type ());
-  g_static_mutex_unlock (&mutex);
+  g_mutex_unlock (&mutex);
 }
 
 /**
@@ -151,7 +151,7 @@
   if (query != GST_FORMAT_UNDEFINED)
     return query;
 
-  g_static_mutex_lock (&mutex);
+  g_mutex_lock (&mutex);
   format = g_slice_new (GstFormatDefinition);
   format->value = (GstFormat) _n_values;
   format->nick = g_strdup (nick);
@@ -163,7 +163,7 @@
       format);
   _gst_formats = g_list_append (_gst_formats, format);
   _n_values++;
-  g_static_mutex_unlock (&mutex);
+  g_mutex_unlock (&mutex);
 
   return format->value;
 }
@@ -184,9 +184,9 @@
 
   g_return_val_if_fail (nick != NULL, GST_FORMAT_UNDEFINED);
 
-  g_static_mutex_lock (&mutex);
+  g_mutex_lock (&mutex);
   format = g_hash_table_lookup (_nick_to_format, nick);
-  g_static_mutex_unlock (&mutex);
+  g_mutex_unlock (&mutex);
 
   if (format != NULL)
     return format->value;
@@ -234,9 +234,9 @@
 {
   const GstFormatDefinition *result;
 
-  g_static_mutex_lock (&mutex);
+  g_mutex_lock (&mutex);
   result = g_hash_table_lookup (_format_to_nick, GINT_TO_POINTER (format));
-  g_static_mutex_unlock (&mutex);
+  g_mutex_unlock (&mutex);
 
   return result;
 }
@@ -254,11 +254,11 @@
 {
   GstIterator *result;
 
-  g_static_mutex_lock (&mutex);
+  g_mutex_lock (&mutex);
   /* FIXME: register a boxed type for GstFormatDefinition */
   result = gst_iterator_new_list (G_TYPE_POINTER,
-      g_static_mutex_get_mutex (&mutex), &_n_values, &_gst_formats, NULL, NULL);
-  g_static_mutex_unlock (&mutex);
+      &mutex, &_n_values, &_gst_formats, NULL, NULL);
+  g_mutex_unlock (&mutex);
 
   return result;
 }
diff --git a/gst/gstformat.h b/gst/gstformat.h
index 9f8b362..13dad03 100644
--- a/gst/gstformat.h
+++ b/gst/gstformat.h
@@ -50,12 +50,12 @@
 /* NOTE: don't forget to update the table in gstformat.c when changing
  * this enum */
 typedef enum {
-  GST_FORMAT_UNDEFINED 	=  0, /* must be first in list */
-  GST_FORMAT_DEFAULT   	=  1,
-  GST_FORMAT_BYTES   	=  2,
-  GST_FORMAT_TIME 	=  3,
-  GST_FORMAT_BUFFERS	=  4,
-  GST_FORMAT_PERCENT	=  5
+  GST_FORMAT_UNDEFINED  =  0, /* must be first in list */
+  GST_FORMAT_DEFAULT    =  1,
+  GST_FORMAT_BYTES      =  2,
+  GST_FORMAT_TIME       =  3,
+  GST_FORMAT_BUFFERS    =  4,
+  GST_FORMAT_PERCENT    =  5
 } GstFormat;
 
 /* a percentage is always relative to 1000000 */
@@ -64,14 +64,14 @@
  *
  * The PERCENT format is between 0 and this value
  */
-#define	GST_FORMAT_PERCENT_MAX		G_GINT64_CONSTANT (1000000)
+#define GST_FORMAT_PERCENT_MAX          G_GINT64_CONSTANT (1000000)
 /**
  * GST_FORMAT_PERCENT_SCALE:
  *
  * The value used to scale down the reported PERCENT format value to
  * its real value.
  */
-#define	GST_FORMAT_PERCENT_SCALE	G_GINT64_CONSTANT (10000)
+#define GST_FORMAT_PERCENT_SCALE        G_GINT64_CONSTANT (10000)
 
 typedef struct _GstFormatDefinition GstFormatDefinition;
 
@@ -96,17 +96,17 @@
 GQuark          gst_format_to_quark             (GstFormat format);
 
 /* register a new format */
-GstFormat	gst_format_register		(const gchar *nick,
-						 const gchar *description);
-GstFormat	gst_format_get_by_nick		(const gchar *nick);
+GstFormat       gst_format_register             (const gchar *nick,
+                                                 const gchar *description);
+GstFormat       gst_format_get_by_nick          (const gchar *nick);
 
 /* check if a format is in an array of formats */
-gboolean	gst_formats_contains		(const GstFormat *formats, GstFormat format);
+gboolean        gst_formats_contains            (const GstFormat *formats, GstFormat format);
 
 /* query for format details */
 const GstFormatDefinition*
-		gst_format_get_details		(GstFormat format);
-GstIterator* 	gst_format_iterate_definitions 	(void);
+                gst_format_get_details          (GstFormat format);
+GstIterator*    gst_format_iterate_definitions  (void);
 
 G_END_DECLS
 
diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c
index f739988..7a8947d 100644
--- a/gst/gstghostpad.c
+++ b/gst/gstghostpad.c
@@ -54,77 +54,32 @@
 
 #define GST_PROXY_PAD_CAST(obj)         ((GstProxyPad *)obj)
 #define GST_PROXY_PAD_PRIVATE(obj)      (GST_PROXY_PAD_CAST (obj)->priv)
-#define GST_PROXY_PAD_TARGET(pad)       (GST_PROXY_PAD_PRIVATE (pad)->target)
+#define GST_PROXY_PAD_TARGET(pad)       (GST_PAD_PEER (GST_PROXY_PAD_INTERNAL (pad)))
 #define GST_PROXY_PAD_INTERNAL(pad)     (GST_PROXY_PAD_PRIVATE (pad)->internal)
-#define GST_PROXY_PAD_RETARGET(pad)     (GST_PROXY_PAD_PRIVATE (pad)->retarget)
-#define GST_PROXY_GET_LOCK(pad) (GST_PROXY_PAD_PRIVATE (pad)->proxy_lock)
-#define GST_PROXY_LOCK(pad)     (g_mutex_lock (GST_PROXY_GET_LOCK (pad)))
-#define GST_PROXY_UNLOCK(pad)   (g_mutex_unlock (GST_PROXY_GET_LOCK (pad)))
 
 struct _GstProxyPadPrivate
 {
-  /* with PROXY_LOCK */
-  GMutex *proxy_lock;
-  GstPad *target;
   GstPad *internal;
-  gboolean retarget;
 };
 
 G_DEFINE_TYPE (GstProxyPad, gst_proxy_pad, GST_TYPE_PAD);
 
 static GstPad *gst_proxy_pad_get_target (GstPad * pad);
 
-static void gst_proxy_pad_dispose (GObject * object);
-static void gst_proxy_pad_finalize (GObject * object);
-
-/**
- * gst_proxy_pad_query_type_default:
- * @pad: a #GstPad.
- *
- * Invoke the default query type handler of the proxy pad.
- *
- * Returns: (transfer none) (array zero-terminated=1): a zero-terminated array
- *     of #GstQueryType.
- *
- * Since: 0.10.35
- */
-const GstQueryType *
-gst_proxy_pad_query_type_default (GstPad * pad)
-{
-  GstPad *target;
-  const GstQueryType *res = NULL;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
-
-  if (!(target = gst_proxy_pad_get_target (pad)))
-    goto no_target;
-
-  res = gst_pad_get_query_types (target);
-  gst_object_unref (target);
-
-  return res;
-
-  /* ERRORS */
-no_target:
-  {
-    GST_DEBUG_OBJECT (pad, "no target pad");
-    return FALSE;
-  }
-}
-
 /**
  * gst_proxy_pad_event_default:
  * @pad: a #GstPad to push the event to.
+ * @parent: the parent of @pad or NULL
  * @event: (transfer full): the #GstEvent to send to the pad.
  *
  * Invoke the default event of the proxy pad.
  *
  * Returns: TRUE if the event was handled.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 gboolean
-gst_proxy_pad_event_default (GstPad * pad, GstEvent * event)
+gst_proxy_pad_event_default (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res;
   GstPad *internal;
@@ -138,19 +93,101 @@
   return res;
 }
 
+static gboolean
+gst_proxy_pad_query_caps (GstPad * pad, GstQuery * query)
+{
+  gboolean res;
+  GstPad *target;
+  GstCaps *result;
+  GstPadTemplate *templ;
+
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+
+  templ = GST_PAD_PAD_TEMPLATE (pad);
+  target = gst_proxy_pad_get_target (pad);
+  if (target) {
+    /* if we have a real target, proxy the call */
+    res = gst_pad_query (target, query);
+
+    GST_DEBUG_OBJECT (pad, "get caps of target %s:%s : %" GST_PTR_FORMAT,
+        GST_DEBUG_PAD_NAME (target), query);
+
+    gst_object_unref (target);
+
+    /* filter against the template */
+    if (templ && res) {
+      GstCaps *filt, *tmp;
+
+      filt = GST_PAD_TEMPLATE_CAPS (templ);
+      if (filt) {
+        gst_query_parse_caps_result (query, &result);
+        tmp = gst_caps_intersect_full (result, filt, GST_CAPS_INTERSECT_FIRST);
+        gst_query_set_caps_result (query, tmp);
+        GST_DEBUG_OBJECT (pad,
+            "filtered against template gives %" GST_PTR_FORMAT, tmp);
+        gst_caps_unref (tmp);
+      }
+    }
+  } else {
+    GstCaps *filter;
+
+    res = TRUE;
+
+    gst_query_parse_caps (query, &filter);
+
+    /* else, if we have a template, use its caps. */
+    if (templ) {
+      result = GST_PAD_TEMPLATE_CAPS (templ);
+      GST_DEBUG_OBJECT (pad,
+          "using pad template %p with caps %p %" GST_PTR_FORMAT, templ, result,
+          result);
+
+      if (filter) {
+        GstCaps *intersection;
+
+        GST_DEBUG_OBJECT (pad, "intersect with filter");
+        intersection =
+            gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
+        gst_query_set_caps_result (query, intersection);
+        gst_caps_unref (intersection);
+      } else {
+        gst_query_set_caps_result (query, result);
+      }
+      goto done;
+    }
+
+    /* If there's a filter, return that */
+    if (filter != NULL) {
+      GST_DEBUG_OBJECT (pad, "return filter");
+      gst_query_set_caps_result (query, filter);
+      goto done;
+    }
+
+    /* last resort, any caps */
+    GST_DEBUG_OBJECT (pad, "pad has no template, returning ANY");
+    result = gst_caps_new_any ();
+    gst_query_set_caps_result (query, result);
+    gst_caps_unref (result);
+  }
+
+done:
+  return res;
+}
+
 /**
  * gst_proxy_pad_query_default:
  * @pad: a #GstPad to invoke the default query on.
+ * @parent: the parent of @pad or NULL
  * @query: (transfer none): the #GstQuery to perform.
  *
  * Invoke the default query function of the proxy pad.
  *
  * Returns: TRUE if the query could be performed.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 gboolean
-gst_proxy_pad_query_default (GstPad * pad, GstQuery * query)
+gst_proxy_pad_query_default (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   gboolean res;
   GstPad *target;
@@ -158,35 +195,57 @@
   g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
   g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
 
-  if (!(target = gst_proxy_pad_get_target (pad)))
-    goto no_target;
 
-  res = gst_pad_query (target, query);
-  gst_object_unref (target);
-
-  return res;
-
-  /* ERRORS */
-no_target:
-  {
-    GST_DEBUG_OBJECT (pad, "no target pad");
-    return FALSE;
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_ACCEPT_CAPS:
+    {
+      target = gst_proxy_pad_get_target (pad);
+      if (target) {
+        res = gst_pad_query (target, query);
+        gst_object_unref (target);
+      } else {
+        GST_DEBUG_OBJECT (pad, "no target");
+        /* We don't have a target, we return TRUE and we assume that any future
+         * target will be able to deal with any configured caps. */
+        res = TRUE;
+      }
+      break;
+    }
+    case GST_QUERY_CAPS:
+    {
+      res = gst_proxy_pad_query_caps (pad, query);
+      break;
+    }
+    default:
+    {
+      target = gst_proxy_pad_get_target (pad);
+      if (target) {
+        res = gst_pad_query (target, query);
+        gst_object_unref (target);
+      } else {
+        GST_DEBUG_OBJECT (pad, "no target pad");
+        res = FALSE;
+      }
+      break;
+    }
   }
+  return res;
 }
 
 /**
- * gst_proyx_pad_iterate_internal_links_default:
+ * gst_proxy_pad_iterate_internal_links_default:
  * @pad: the #GstPad to get the internal links of.
+ * @parent: the parent of @pad or NULL
  *
  * Invoke the default iterate internal links function of the proxy pad.
  *
  * Returns: a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
  * returned pad with gst_object_unref().
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstIterator *
-gst_proxy_pad_iterate_internal_links_default (GstPad * pad)
+gst_proxy_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
 {
   GstIterator *res = NULL;
   GstPad *internal;
@@ -199,7 +258,6 @@
   g_value_set_object (&v, internal);
   res = gst_iterator_new_single (GST_TYPE_PAD, &v);
   g_value_unset (&v);
-  gst_object_unref (internal);
 
   return res;
 }
@@ -207,6 +265,7 @@
 /**
  * gst_proxy_pad_chain_default:
  * @pad: a sink #GstPad, returns GST_FLOW_ERROR if not.
+ * @parent: the parent of @pad or NULL
  * @buffer: (transfer full): the #GstBuffer to send, return GST_FLOW_ERROR
  *     if not.
  *
@@ -214,10 +273,11 @@
  *
  * Returns: a #GstFlowReturn from the pad.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstFlowReturn
-gst_proxy_pad_chain_default (GstPad * pad, GstBuffer * buffer)
+gst_proxy_pad_chain_default (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer)
 {
   GstFlowReturn res;
   GstPad *internal;
@@ -234,6 +294,7 @@
 /**
  * gst_proxy_pad_chain_list_default:
  * @pad: a sink #GstPad, returns GST_FLOW_ERROR if not.
+ * @parent: the parent of @pad or NULL
  * @list: (transfer full): the #GstBufferList to send, return GST_FLOW_ERROR
  *     if not.
  *
@@ -241,10 +302,11 @@
  *
  * Returns: a #GstFlowReturn from the pad.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstFlowReturn
-gst_proxy_pad_chain_list_default (GstPad * pad, GstBufferList * list)
+gst_proxy_pad_chain_list_default (GstPad * pad, GstObject * parent,
+    GstBufferList * list)
 {
   GstFlowReturn res;
   GstPad *internal;
@@ -270,11 +332,11 @@
  *
  * Returns: a #GstFlowReturn from the pad.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstFlowReturn
-gst_proxy_pad_getrange_default (GstPad * pad, guint64 offset, guint size,
-    GstBuffer ** buffer)
+gst_proxy_pad_getrange_default (GstPad * pad, GstObject * parent,
+    guint64 offset, guint size, GstBuffer ** buffer)
 {
   GstFlowReturn res;
   GstPad *internal;
@@ -288,202 +350,16 @@
   return res;
 }
 
-/**
- * gst_proxy_pad_getcaps_default:
- * @pad: a #GstPad to get the capabilities of.
- * @filter: a #GstCaps filter.
- *
- * Invoke the default getcaps function of the proxy pad.
- *
- * Returns: (transfer full): the caps of the pad with incremented ref-count
- *
- * Since: 0.10.35
- */
-GstCaps *
-gst_proxy_pad_getcaps_default (GstPad * pad, GstCaps * filter)
-{
-  GstPad *target;
-  GstCaps *res;
-  GstPadTemplate *templ;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
-
-  templ = GST_PAD_PAD_TEMPLATE (pad);
-  target = gst_proxy_pad_get_target (pad);
-  if (target) {
-    /* if we have a real target, proxy the call */
-    res = gst_pad_get_caps (target, filter);
-
-    GST_DEBUG_OBJECT (pad, "get caps of target %s:%s : %" GST_PTR_FORMAT,
-        GST_DEBUG_PAD_NAME (target), res);
-
-    gst_object_unref (target);
-
-    /* filter against the template */
-    if (templ && res) {
-      GstCaps *filt, *tmp;
-
-      filt = GST_PAD_TEMPLATE_CAPS (templ);
-      if (filt) {
-        tmp = gst_caps_intersect_full (res, filt, GST_CAPS_INTERSECT_FIRST);
-        gst_caps_unref (res);
-        res = tmp;
-        GST_DEBUG_OBJECT (pad,
-            "filtered against template gives %" GST_PTR_FORMAT, res);
-      }
-    }
-  } else {
-    /* else, if we have a template, use its caps. */
-    if (templ) {
-      res = GST_PAD_TEMPLATE_CAPS (templ);
-      GST_DEBUG_OBJECT (pad,
-          "using pad template %p with caps %p %" GST_PTR_FORMAT, templ, res,
-          res);
-      res = gst_caps_ref (res);
-
-      if (filter) {
-        GstCaps *intersection =
-            gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST);
-
-        gst_caps_unref (res);
-        res = intersection;
-      }
-
-      goto done;
-    }
-
-    /* last resort, any caps */
-    GST_DEBUG_OBJECT (pad, "pad has no template, returning ANY");
-    res = gst_caps_new_any ();
-  }
-
-done:
-  return res;
-}
-
-/**
- * gst_proxy_pad_acceptcaps_default:
- * @pad: a #GstPad to check
- * @caps: a #GstCaps to check on the pad
- *
- * Invoke the default acceptcaps function of the proxy pad.
- *
- * Returns: TRUE if the pad can accept the caps.
- *
- * Since: 0.10.35
- */
-gboolean
-gst_proxy_pad_acceptcaps_default (GstPad * pad, GstCaps * caps)
-{
-  GstPad *target;
-  gboolean res;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-  g_return_val_if_fail (caps == NULL || GST_IS_CAPS (caps), FALSE);
-
-  target = gst_proxy_pad_get_target (pad);
-  if (target) {
-    res = gst_pad_accept_caps (target, caps);
-    gst_object_unref (target);
-  } else {
-    GST_DEBUG_OBJECT (pad, "no target");
-    /* We don't have a target, we return TRUE and we assume that any future
-     * target will be able to deal with any configured caps. */
-    res = TRUE;
-  }
-
-  return res;
-}
-
-/**
- * gst_proxy_pad_fixatecaps_default:
- * @pad: a  #GstPad to fixate
- * @caps: the  #GstCaps to fixate
- *
- * Invoke the default fixatecaps function of the proxy pad.
- *
- * Since: 0.10.35
- */
-void
-gst_proxy_pad_fixatecaps_default (GstPad * pad, GstCaps * caps)
-{
-  GstPad *target;
-
-  g_return_if_fail (GST_IS_PROXY_PAD (pad));
-  g_return_if_fail (GST_IS_CAPS (caps));
-
-  if (!(target = gst_proxy_pad_get_target (pad)))
-    goto no_target;
-
-  gst_pad_fixate_caps (target, caps);
-  gst_object_unref (target);
-
-  return;
-
-  /* ERRORS */
-no_target:
-  {
-    GST_DEBUG_OBJECT (pad, "no target");
-    return;
-  }
-}
-
-static gboolean
-gst_proxy_pad_set_target_unlocked (GstPad * pad, GstPad * target)
-{
-  GstPad *oldtarget;
-
-  if (target) {
-    GST_LOG_OBJECT (pad, "setting target %s:%s", GST_DEBUG_PAD_NAME (target));
-
-    if (G_UNLIKELY (GST_PAD_DIRECTION (pad) != GST_PAD_DIRECTION (target)))
-      goto wrong_direction;
-  } else
-    GST_LOG_OBJECT (pad, "clearing target");
-
-  /* clear old target */
-  if ((oldtarget = GST_PROXY_PAD_TARGET (pad)))
-    gst_object_unref (oldtarget);
-
-  /* set and ref new target if any */
-  if (target)
-    GST_PROXY_PAD_TARGET (pad) = gst_object_ref (target);
-  else
-    GST_PROXY_PAD_TARGET (pad) = NULL;
-
-  return TRUE;
-
-  /* ERRORS */
-wrong_direction:
-  {
-    GST_ERROR_OBJECT (pad,
-        "target pad doesn't have the same direction as ourself");
-    return FALSE;
-  }
-}
-
-static gboolean
-gst_proxy_pad_set_target (GstPad * pad, GstPad * target)
-{
-  gboolean result;
-
-  GST_PROXY_LOCK (pad);
-  result = gst_proxy_pad_set_target_unlocked (pad, target);
-  GST_PROXY_UNLOCK (pad);
-
-  return result;
-}
-
 static GstPad *
 gst_proxy_pad_get_target (GstPad * pad)
 {
   GstPad *target;
 
-  GST_PROXY_LOCK (pad);
+  GST_OBJECT_LOCK (pad);
   target = GST_PROXY_PAD_TARGET (pad);
   if (target)
     gst_object_ref (target);
-  GST_PROXY_UNLOCK (pad);
+  GST_OBJECT_UNLOCK (pad);
 
   return target;
 }
@@ -500,7 +376,7 @@
  * Returns: (transfer full): the target #GstProxyPad, can be NULL.
  * Unref target pad after usage.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstProxyPad *
 gst_proxy_pad_get_internal (GstProxyPad * pad)
@@ -509,11 +385,11 @@
 
   g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
 
-  GST_PROXY_LOCK (pad);
+  GST_OBJECT_LOCK (pad);
   internal = GST_PROXY_PAD_INTERNAL (pad);
   if (internal)
     gst_object_ref (internal);
-  GST_PROXY_UNLOCK (pad);
+  GST_OBJECT_UNLOCK (pad);
 
   return GST_PROXY_PAD_CAST (internal);
 }
@@ -524,44 +400,24 @@
  *
  * Invoke the default unlink function of the proxy pad.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 void
 gst_proxy_pad_unlink_default (GstPad * pad)
 {
-  GstPad *internal;
-
-  /* don't do anything if this unlink resulted from retargeting the pad
-   * controlled by the ghostpad. We only want to invalidate the target pad when
-   * the element suddenly unlinked with our internal pad. */
-  if (GST_PROXY_PAD_RETARGET (pad))
-    return;
-
-  internal = GST_PROXY_PAD_INTERNAL (pad);
-
+  /* nothing to do anymore */
   GST_DEBUG_OBJECT (pad, "pad is unlinked");
-
-  gst_proxy_pad_set_target (internal, NULL);
 }
 
 static void
 gst_proxy_pad_class_init (GstProxyPadClass * klass)
 {
-  GObjectClass *gobject_class = (GObjectClass *) klass;
-
   g_type_class_add_private (klass, sizeof (GstProxyPadPrivate));
 
-  gobject_class->dispose = gst_proxy_pad_dispose;
-  gobject_class->finalize = gst_proxy_pad_finalize;
-
   /* Register common function pointer descriptions */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_query_type_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_event_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_query_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_iterate_internal_links_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_getcaps_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_acceptcaps_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_fixatecaps_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_unlink_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_list_default);
@@ -569,52 +425,18 @@
 }
 
 static void
-gst_proxy_pad_dispose (GObject * object)
-{
-  GstPad *pad = GST_PAD (object);
-  GstPad **target_p;
-
-  GST_PROXY_LOCK (pad);
-  /* remove and unref the target */
-  target_p = &GST_PROXY_PAD_TARGET (pad);
-  gst_object_replace ((GstObject **) target_p, NULL);
-  /* The internal is only cleared by GstGhostPad::dispose, since it is the 
-   * parent of non-ghost GstProxyPad and owns the refcount on the internal.
-   */
-  GST_PROXY_UNLOCK (pad);
-
-  G_OBJECT_CLASS (gst_proxy_pad_parent_class)->dispose (object);
-}
-
-static void
-gst_proxy_pad_finalize (GObject * object)
-{
-  GstProxyPad *pad = GST_PROXY_PAD (object);
-
-  g_mutex_free (GST_PROXY_GET_LOCK (pad));
-  GST_PROXY_GET_LOCK (pad) = NULL;
-
-  G_OBJECT_CLASS (gst_proxy_pad_parent_class)->finalize (object);
-}
-
-static void
 gst_proxy_pad_init (GstProxyPad * ppad)
 {
   GstPad *pad = (GstPad *) ppad;
 
   GST_PROXY_PAD_PRIVATE (ppad) = G_TYPE_INSTANCE_GET_PRIVATE (ppad,
       GST_TYPE_PROXY_PAD, GstProxyPadPrivate);
-  GST_PROXY_GET_LOCK (pad) = g_mutex_new ();
 
-  gst_pad_set_query_type_function (pad, gst_proxy_pad_query_type_default);
   gst_pad_set_event_function (pad, gst_proxy_pad_event_default);
   gst_pad_set_query_function (pad, gst_proxy_pad_query_default);
   gst_pad_set_iterate_internal_links_function (pad,
       gst_proxy_pad_iterate_internal_links_default);
 
-  gst_pad_set_getcaps_function (pad, gst_proxy_pad_getcaps_default);
-  gst_pad_set_acceptcaps_function (pad, gst_proxy_pad_acceptcaps_default);
-  gst_pad_set_fixatecaps_function (pad, gst_proxy_pad_fixatecaps_default);
   gst_pad_set_unlink_function (pad, gst_proxy_pad_unlink_default);
 }
 
@@ -636,57 +458,31 @@
 
 static void gst_ghost_pad_dispose (GObject * object);
 
-/**
- * gst_ghost_pad_internal_activate_push_default:
- * @pad: the #GstPad to activate or deactivate.
- * @active: whether the pad should be active or not.
- *
- * Invoke the default activate push function of a proxy pad that is
- * owned by a ghost pad.
- *
- * Returns: %TRUE if the operation was successful.
- *
- * Since: 0.10.35
- */
-gboolean
-gst_ghost_pad_internal_activate_push_default (GstPad * pad, gboolean active)
+static gboolean
+gst_ghost_pad_internal_activate_push_default (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-
   GST_LOG_OBJECT (pad, "%sactivate push on %s:%s, we're ok",
       (active ? "" : "de"), GST_DEBUG_PAD_NAME (pad));
 
   /* in both cases (SRC and SINK) we activate just the internal pad. The targets
    * will be activated later (or already in case of a ghost sinkpad). */
   other = GST_PROXY_PAD_INTERNAL (pad);
-  ret = gst_pad_activate_push (other, active);
+  ret = gst_pad_activate_mode (other, GST_PAD_MODE_PUSH, active);
 
   return ret;
 }
 
-/**
- * gst_ghost_pad_internal_activate_pull_default:
- * @pad: the #GstPad to activate or deactivate.
- * @active: whether the pad should be active or not.
- *
- * Invoke the default activate pull function of a proxy pad that is
- * owned by a ghost pad.
- *
- * Returns: %TRUE if the operation was successful.
- *
- * Since: 0.10.35
- */
-gboolean
-gst_ghost_pad_internal_activate_pull_default (GstPad * pad, gboolean active)
+static gboolean
+gst_ghost_pad_internal_activate_pull_default (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-
   GST_LOG_OBJECT (pad, "%sactivate pull on %s:%s", (active ? "" : "de"),
       GST_DEBUG_PAD_NAME (pad));
 
@@ -698,12 +494,12 @@
      * further upstream */
     GST_LOG_OBJECT (pad, "pad is src, activate internal");
     other = GST_PROXY_PAD_INTERNAL (pad);
-    ret = gst_pad_activate_pull (other, active);
+    ret = gst_pad_activate_mode (other, GST_PAD_MODE_PULL, active);
   } else if (G_LIKELY ((other = gst_pad_get_peer (pad)))) {
     /* We are SINK, the ghostpad is SRC, we propagate the activation upstream
      * since we hold a pointer to the upstream peer. */
     GST_LOG_OBJECT (pad, "activating peer");
-    ret = gst_pad_activate_pull (other, active);
+    ret = gst_pad_activate_mode (other, GST_PAD_MODE_PULL, active);
     gst_object_unref (other);
   } else {
     /* this is failure, we can't activate pull if there is no peer */
@@ -715,18 +511,43 @@
 }
 
 /**
- * gst_ghost_pad_activate_push_default:
+ * gst_ghost_pad_internal_activate_mode_default:
  * @pad: the #GstPad to activate or deactivate.
+ * @parent: the parent of @pad or NULL
+ * @mode: the requested activation mode
  * @active: whether the pad should be active or not.
  *
- * Invoke the default activate push function of a ghost pad.
+ * Invoke the default activate mode function of a proxy pad that is
+ * owned by a ghost pad.
  *
  * Returns: %TRUE if the operation was successful.
- *
- * Since: 0.10.35
  */
 gboolean
-gst_ghost_pad_activate_push_default (GstPad * pad, gboolean active)
+gst_ghost_pad_internal_activate_mode_default (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean res;
+
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      res = gst_ghost_pad_internal_activate_pull_default (pad, parent, active);
+      break;
+    case GST_PAD_MODE_PUSH:
+      res = gst_ghost_pad_internal_activate_push_default (pad, parent, active);
+      break;
+    default:
+      GST_LOG_OBJECT (pad, "unknown activation mode %d", mode);
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
+static gboolean
+gst_ghost_pad_activate_push_default (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean ret;
   GstPad *other;
@@ -738,30 +559,18 @@
 
   /* just activate the internal pad */
   other = GST_PROXY_PAD_INTERNAL (pad);
-  ret = gst_pad_activate_push (other, active);
+  ret = gst_pad_activate_mode (other, GST_PAD_MODE_PUSH, active);
 
   return ret;
 }
 
-/**
- * gst_ghost_pad_activate_pull_default:
- * @pad: the #GstPad to activate or deactivate.
- * @active: whether the pad should be active or not.
- *
- * Invoke the default activate pull function of a ghost pad.
- *
- * Returns: %TRUE if the operation was successful.
- *
- * Since: 0.10.35
- */
-gboolean
-gst_ghost_pad_activate_pull_default (GstPad * pad, gboolean active)
+static gboolean
+gst_ghost_pad_activate_pull_default (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
-  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), FALSE);
-
   GST_LOG_OBJECT (pad, "%sactivate pull on %s:%s", (active ? "" : "de"),
       GST_DEBUG_PAD_NAME (pad));
 
@@ -771,12 +580,12 @@
      * upstream */
     GST_LOG_OBJECT (pad, "pad is src, activate internal");
     other = GST_PROXY_PAD_INTERNAL (pad);
-    ret = gst_pad_activate_pull (other, active);
+    ret = gst_pad_activate_mode (other, GST_PAD_MODE_PULL, active);
   } else if (G_LIKELY ((other = gst_pad_get_peer (pad)))) {
     /* We are SINK and activated by the internal pad, propagate activation
      * upstream because we hold a ref to the upstream peer */
     GST_LOG_OBJECT (pad, "activating peer");
-    ret = gst_pad_activate_pull (other, active);
+    ret = gst_pad_activate_mode (other, GST_PAD_MODE_PULL, active);
     gst_object_unref (other);
   } else {
     /* no peer, we fail */
@@ -788,6 +597,40 @@
 }
 
 /**
+ * gst_ghost_pad_activate_mode_default:
+ * @pad: the #GstPad to activate or deactivate.
+ * @parent: the parent of @pad or NULL
+ * @mode: the requested activation mode
+ * @active: whether the pad should be active or not.
+ *
+ * Invoke the default activate mode function of a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful.
+ */
+gboolean
+gst_ghost_pad_activate_mode_default (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean res;
+
+  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), FALSE);
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      res = gst_ghost_pad_activate_pull_default (pad, parent, active);
+      break;
+    case GST_PAD_MODE_PUSH:
+      res = gst_ghost_pad_activate_push_default (pad, parent, active);
+      break;
+    default:
+      GST_LOG_OBJECT (pad, "unknown activation mode %d", mode);
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
+/**
  * gst_ghost_pad_link_default:
  * @pad: the #GstPad to link.
  * @peer: the #GstPad peer
@@ -796,23 +639,18 @@
  *
  * Returns: #GstPadLinkReturn of the operation
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstPadLinkReturn
 gst_ghost_pad_link_default (GstPad * pad, GstPad * peer)
 {
   GstPadLinkReturn ret;
-  GstPad *internal;
 
   g_return_val_if_fail (GST_IS_GHOST_PAD (pad), GST_PAD_LINK_REFUSED);
   g_return_val_if_fail (GST_IS_PAD (peer), GST_PAD_LINK_REFUSED);
 
   GST_DEBUG_OBJECT (pad, "linking ghostpad");
 
-  internal = GST_PROXY_PAD_INTERNAL (pad);
-  if (!gst_proxy_pad_set_target (internal, peer))
-    goto target_failed;
-
   ret = GST_PAD_LINK_OK;
   /* if we are a source pad, we should call the peer link function
    * if the peer has one, see design docs. */
@@ -820,24 +658,10 @@
     if (GST_PAD_LINKFUNC (peer)) {
       ret = GST_PAD_LINKFUNC (peer) (peer, pad);
       if (ret != GST_PAD_LINK_OK)
-        goto link_failed;
+        GST_DEBUG_OBJECT (pad, "linking failed");
     }
   }
   return ret;
-
-  /* ERRORS */
-target_failed:
-  {
-    GST_DEBUG_OBJECT (pad, "setting target failed");
-    return GST_PAD_LINK_REFUSED;
-  }
-link_failed:
-  {
-    GST_DEBUG_OBJECT (pad, "linking failed");
-    /* clear target again */
-    gst_proxy_pad_set_target (internal, NULL);
-    return ret;
-  }
 }
 
 /**
@@ -846,21 +670,14 @@
  *
  * Invoke the default unlink function of a ghost pad.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 void
 gst_ghost_pad_unlink_default (GstPad * pad)
 {
-  GstPad *internal;
-
   g_return_if_fail (GST_IS_GHOST_PAD (pad));
 
-  internal = GST_PROXY_PAD_INTERNAL (pad);
-
   GST_DEBUG_OBJECT (pad, "unlinking ghostpad");
-
-  /* The target of the internal pad is no longer valid */
-  gst_proxy_pad_set_target (internal, NULL);
 }
 
 static void
@@ -883,10 +700,8 @@
   GST_GHOST_PAD_PRIVATE (pad) = G_TYPE_INSTANCE_GET_PRIVATE (pad,
       GST_TYPE_GHOST_PAD, GstGhostPadPrivate);
 
-  gst_pad_set_activatepull_function (GST_PAD_CAST (pad),
-      gst_ghost_pad_activate_pull_default);
-  gst_pad_set_activatepush_function (GST_PAD_CAST (pad),
-      gst_ghost_pad_activate_push_default);
+  gst_pad_set_activatemode_function (GST_PAD_CAST (pad),
+      gst_ghost_pad_activate_mode_default);
 }
 
 static void
@@ -914,18 +729,17 @@
     gst_object_unref (peer);
   }
 
-  GST_PROXY_LOCK (pad);
+  GST_OBJECT_LOCK (pad);
   internal = GST_PROXY_PAD_INTERNAL (pad);
 
-  gst_pad_set_activatepull_function (internal, NULL);
-  gst_pad_set_activatepush_function (internal, NULL);
+  gst_pad_set_activatemode_function (internal, NULL);
 
   /* disposes of the internal pad, since the ghostpad is the only possible object
    * that has a refcount on the internal pad. */
   gst_object_unparent (GST_OBJECT_CAST (internal));
   GST_PROXY_PAD_INTERNAL (pad) = NULL;
 
-  GST_PROXY_UNLOCK (pad);
+  GST_OBJECT_UNLOCK (pad);
 
   G_OBJECT_CLASS (gst_ghost_pad_parent_class)->dispose (object);
 }
@@ -998,7 +812,7 @@
     gst_pad_set_getrange_function (internal, gst_proxy_pad_getrange_default);
   }
 
-  GST_PROXY_LOCK (pad);
+  GST_OBJECT_LOCK (pad);
 
   /* now make the ghostpad a parent of the internal pad */
   if (!gst_object_set_parent (GST_OBJECT_CAST (internal),
@@ -1017,12 +831,10 @@
   GST_PROXY_PAD_INTERNAL (internal) = pad;
 
   /* special activation functions for the internal pad */
-  gst_pad_set_activatepull_function (internal,
-      gst_ghost_pad_internal_activate_pull_default);
-  gst_pad_set_activatepush_function (internal,
-      gst_ghost_pad_internal_activate_push_default);
+  gst_pad_set_activatemode_function (internal,
+      gst_ghost_pad_internal_activate_mode_default);
 
-  GST_PROXY_UNLOCK (pad);
+  GST_OBJECT_UNLOCK (pad);
 
   GST_GHOST_PAD_PRIVATE (gpad)->constructed = TRUE;
   return TRUE;
@@ -1034,7 +846,7 @@
         GST_DEBUG_PAD_NAME (internal));
     g_critical ("Could not set internal pad %s:%s",
         GST_DEBUG_PAD_NAME (internal));
-    GST_PROXY_UNLOCK (pad);
+    GST_OBJECT_UNLOCK (pad);
     gst_object_unref (internal);
     return FALSE;
   }
@@ -1105,7 +917,7 @@
  *
  * Will ref the target.
  *
- * Returns: (transfer full): a new #GstPad, or NULL in case of an error.
+ * Returns: (transfer floating): a new #GstPad, or NULL in case of an error.
  */
 GstPad *
 gst_ghost_pad_new (const gchar * name, GstPad * target)
@@ -1247,7 +1059,6 @@
 {
   GstPad *internal;
   GstPad *oldtarget;
-  gboolean result;
   GstPadLinkReturn lret;
 
   g_return_val_if_fail (GST_IS_GHOST_PAD (gpad), FALSE);
@@ -1264,24 +1075,20 @@
     GST_DEBUG_OBJECT (gpad, "clearing target");
 
   /* clear old target */
-  GST_PROXY_LOCK (gpad);
+  GST_OBJECT_LOCK (gpad);
   if ((oldtarget = GST_PROXY_PAD_TARGET (gpad))) {
-
-    GST_PROXY_PAD_RETARGET (internal) = TRUE;
+    GST_OBJECT_UNLOCK (gpad);
 
     /* unlink internal pad */
     if (GST_PAD_IS_SRC (internal))
       gst_pad_unlink (internal, oldtarget);
     else
       gst_pad_unlink (oldtarget, internal);
-
-    GST_PROXY_PAD_RETARGET (internal) = FALSE;
+  } else {
+    GST_OBJECT_UNLOCK (gpad);
   }
 
-  result = gst_proxy_pad_set_target_unlocked (GST_PAD_CAST (gpad), newtarget);
-  GST_PROXY_UNLOCK (gpad);
-
-  if (result && newtarget) {
+  if (newtarget) {
     /* and link to internal pad without any checks */
     GST_DEBUG_OBJECT (gpad, "connecting internal pad to target");
 
@@ -1296,17 +1103,13 @@
       goto link_failed;
   }
 
-  return result;
+  return TRUE;
 
   /* ERRORS */
 link_failed:
   {
     GST_WARNING_OBJECT (gpad, "could not link internal and target, reason:%d",
         lret);
-    /* and unset target again */
-    GST_PROXY_LOCK (gpad);
-    gst_proxy_pad_set_target_unlocked (GST_PAD_CAST (gpad), NULL);
-    GST_PROXY_UNLOCK (gpad);
     return FALSE;
   }
 }
diff --git a/gst/gstghostpad.h b/gst/gstghostpad.h
index 8eb010a..6aa4d26 100644
--- a/gst/gstghostpad.h
+++ b/gst/gstghostpad.h
@@ -62,24 +62,26 @@
 GstProxyPad*     gst_proxy_pad_get_internal     (GstProxyPad *pad);
 
 
-const GstQueryType* gst_proxy_pad_query_type_default             (GstPad *pad);
-gboolean            gst_proxy_pad_event_default                  (GstPad *pad, GstEvent *event);
-gboolean            gst_proxy_pad_query_default                  (GstPad *pad, GstQuery *query);
-GstIterator*        gst_proxy_pad_iterate_internal_links_default (GstPad *pad);
-GstFlowReturn       gst_proxy_pad_chain_default                  (GstPad *pad, GstBuffer *buffer);
-GstFlowReturn       gst_proxy_pad_chain_list_default             (GstPad *pad, GstBufferList *list);
-GstFlowReturn       gst_proxy_pad_getrange_default               (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer);
-GstCaps*            gst_proxy_pad_getcaps_default                (GstPad *pad, GstCaps * filter);
-gboolean            gst_proxy_pad_acceptcaps_default             (GstPad *pad, GstCaps *caps);
-void                gst_proxy_pad_fixatecaps_default             (GstPad *pad, GstCaps *caps);
+gboolean            gst_proxy_pad_event_default                  (GstPad *pad, GstObject *parent,
+                                                                  GstEvent *event);
+gboolean            gst_proxy_pad_query_default                  (GstPad *pad, GstObject *parent,
+                                                                  GstQuery *query);
+GstIterator*        gst_proxy_pad_iterate_internal_links_default (GstPad *pad, GstObject *parent) G_GNUC_MALLOC;
+GstFlowReturn       gst_proxy_pad_chain_default                  (GstPad *pad, GstObject *parent,
+                                                                  GstBuffer *buffer);
+GstFlowReturn       gst_proxy_pad_chain_list_default             (GstPad *pad, GstObject *parent,
+                                                                  GstBufferList *list);
+GstFlowReturn       gst_proxy_pad_getrange_default               (GstPad *pad, GstObject *parent,
+                                                                  guint64 offset, guint size,
+                                                                  GstBuffer **buffer);
 void                gst_proxy_pad_unlink_default                 (GstPad * pad);
 
-#define GST_TYPE_GHOST_PAD		(gst_ghost_pad_get_type ())
-#define GST_IS_GHOST_PAD(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
-#define GST_IS_GHOST_PAD_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GHOST_PAD))
-#define GST_GHOST_PAD(obj)		(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GHOST_PAD, GstGhostPad))
-#define GST_GHOST_PAD_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GHOST_PAD, GstGhostPadClass))
-#define GST_GHOST_PAD_CAST(obj)		((GstGhostPad*)(obj))
+#define GST_TYPE_GHOST_PAD              (gst_ghost_pad_get_type ())
+#define GST_IS_GHOST_PAD(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
+#define GST_IS_GHOST_PAD_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GHOST_PAD))
+#define GST_GHOST_PAD(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GHOST_PAD, GstGhostPad))
+#define GST_GHOST_PAD_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GHOST_PAD, GstGhostPadClass))
+#define GST_GHOST_PAD_CAST(obj)         ((GstGhostPad*)(obj))
 
 /**
  * GstGhostPad:
@@ -107,26 +109,27 @@
 };
 
 
-GType		 gst_ghost_pad_get_type 	(void);
+GType            gst_ghost_pad_get_type          (void);
 
-GstPad*		 gst_ghost_pad_new		(const gchar *name, GstPad *target);
-GstPad*		 gst_ghost_pad_new_no_target	(const gchar *name, GstPadDirection dir);
+GstPad*          gst_ghost_pad_new               (const gchar *name, GstPad *target) G_GNUC_MALLOC;
+GstPad*          gst_ghost_pad_new_no_target     (const gchar *name, GstPadDirection dir) G_GNUC_MALLOC;
 
-GstPad*		 gst_ghost_pad_new_from_template (const gchar *name, GstPad * target, GstPadTemplate * templ);
-GstPad*		 gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate * templ);
+GstPad*          gst_ghost_pad_new_from_template (const gchar *name, GstPad * target, GstPadTemplate * templ) G_GNUC_MALLOC;
+GstPad*          gst_ghost_pad_new_no_target_from_template (const gchar *name, GstPadTemplate * templ) G_GNUC_MALLOC;
 
-GstPad*		 gst_ghost_pad_get_target	(GstGhostPad *gpad);
-gboolean	 gst_ghost_pad_set_target	(GstGhostPad *gpad, GstPad *newtarget);
+GstPad*          gst_ghost_pad_get_target        (GstGhostPad *gpad);
+gboolean         gst_ghost_pad_set_target        (GstGhostPad *gpad, GstPad *newtarget);
 
-gboolean	 gst_ghost_pad_construct	(GstGhostPad *gpad);
+gboolean         gst_ghost_pad_construct         (GstGhostPad *gpad);
 
 void             gst_ghost_pad_unlink_default         (GstPad * pad);
 GstPadLinkReturn gst_ghost_pad_link_default           (GstPad * pad, GstPad * peer);
-gboolean         gst_ghost_pad_activate_pull_default  (GstPad * pad, gboolean active);
-gboolean         gst_ghost_pad_activate_push_default  (GstPad * pad, gboolean active);
 
-gboolean         gst_ghost_pad_internal_activate_push_default (GstPad * pad, gboolean active);
-gboolean         gst_ghost_pad_internal_activate_pull_default (GstPad * pad, gboolean active);
+gboolean         gst_ghost_pad_activate_mode_default  (GstPad * pad, GstObject * parent,
+                                                       GstPadMode mode, gboolean active);
+
+gboolean         gst_ghost_pad_internal_activate_mode_default   (GstPad * pad, GstObject * parent,
+                                                                 GstPadMode mode, gboolean active);
 
 G_END_DECLS
 
diff --git a/gst/gstindexfactory.c b/gst/gstindexfactory.c
deleted file mode 100644
index 111a0ce..0000000
--- a/gst/gstindexfactory.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* GStreamer
- * Copyright (C) 2001 RidgeRun (http://www.ridgerun.com/)
- * Written by Erik Walthinsen <omega@ridgerun.com>
- *
- * gstindexfactory.c: Index for mappings and other data
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstindexfactory
- * @short_description: Create GstIndexes from a factory
- * @see_also: #GstIndex
- *
- * GstIndexFactory is used to dynamically create GstIndex implementations.
- */
-
-
-#include "gst_private.h"
-
-#include "gstinfo.h"
-#include "gstindex.h"
-#include "gstindexfactory.h"
-#include "gstmarshal.h"
-#include "gstregistry.h"
-
-static void gst_index_factory_finalize (GObject * object);
-
-static GstPluginFeatureClass *factory_parent_class = NULL;
-
-/* static guint gst_index_factory_signals[LAST_SIGNAL] = { 0 }; */
-G_DEFINE_TYPE (GstIndexFactory, gst_index_factory, GST_TYPE_PLUGIN_FEATURE);
-
-static void
-gst_index_factory_class_init (GstIndexFactoryClass * klass)
-{
-  GObjectClass *gobject_class = (GObjectClass *) klass;
-
-  factory_parent_class = g_type_class_peek_parent (klass);
-
-  gobject_class->finalize = gst_index_factory_finalize;
-}
-
-static void
-gst_index_factory_init (GstIndexFactory * factory)
-{
-}
-
-static void
-gst_index_factory_finalize (GObject * object)
-{
-  GstIndexFactory *factory = GST_INDEX_FACTORY (object);
-
-  g_free (factory->longdesc);
-
-  G_OBJECT_CLASS (factory_parent_class)->finalize (object);
-
-}
-
-/**
- * gst_index_factory_new:
- * @name: name of indexfactory to create
- * @longdesc: long description of indexfactory to create
- * @type: the GType of the GstIndex element of this factory
- *
- * Create a new indexfactory with the given parameters
- *
- * Returns: (transfer full): a new #GstIndexFactory.
- */
-GstIndexFactory *
-gst_index_factory_new (const gchar * name, const gchar * longdesc, GType type)
-{
-  GstIndexFactory *factory;
-
-  g_return_val_if_fail (name != NULL, NULL);
-
-  factory =
-      GST_INDEX_FACTORY (g_object_new (GST_TYPE_INDEX_FACTORY, "name", name,
-          NULL));
-
-  if (factory->longdesc)
-    g_free (factory->longdesc);
-  factory->longdesc = g_strdup (longdesc);
-  factory->type = type;
-
-  return factory;
-}
-
-/**
- * gst_index_factory_destroy:
- * @factory: factory to destroy
- *
- * Removes the index from the global list.
- */
-void
-gst_index_factory_destroy (GstIndexFactory * factory)
-{
-  g_return_if_fail (factory != NULL);
-
-  /* we don't free the struct bacause someone might  have a handle to it.. */
-  /* FIXME: gst_index_factory_destroy */
-}
-
-/**
- * gst_index_factory_find:
- * @name: name of indexfactory to find
- *
- * Search for an indexfactory of the given name.
- *
- * Returns: (transfer full): #GstIndexFactory if found, NULL otherwise
- */
-GstIndexFactory *
-gst_index_factory_find (const gchar * name)
-{
-  GstPluginFeature *feature;
-
-  g_return_val_if_fail (name != NULL, NULL);
-
-  GST_DEBUG ("gstindex: find \"%s\"", name);
-
-  feature = gst_registry_find_feature (gst_registry_get_default (), name,
-      GST_TYPE_INDEX_FACTORY);
-  if (feature)
-    return GST_INDEX_FACTORY (feature);
-
-  return NULL;
-}
-
-/**
- * gst_index_factory_create:
- * @factory: the factory used to create the instance
- *
- * Create a new #GstIndex instance from the
- * given indexfactory.
- *
- * Returns: (transfer full): a new #GstIndex instance.
- */
-GstIndex *
-gst_index_factory_create (GstIndexFactory * factory)
-{
-  GstIndexFactory *newfactory;
-  GstIndex *new = NULL;
-
-  g_return_val_if_fail (factory != NULL, NULL);
-
-  newfactory =
-      GST_INDEX_FACTORY (gst_plugin_feature_load (GST_PLUGIN_FEATURE
-          (factory)));
-  if (newfactory == NULL)
-    return NULL;
-
-  new = GST_INDEX (g_object_newv (newfactory->type, 0, NULL));
-
-  gst_object_unref (newfactory);
-
-  return new;
-}
-
-/**
- * gst_index_factory_make:
- * @name: the name of the factory used to create the instance
- *
- * Create a new #GstIndex instance from the
- * indexfactory with the given name.
- *
- * Returns: (transfer full): a new #GstIndex instance.
- */
-GstIndex *
-gst_index_factory_make (const gchar * name)
-{
-  GstIndexFactory *factory;
-  GstIndex *index;
-
-  g_return_val_if_fail (name != NULL, NULL);
-
-  factory = gst_index_factory_find (name);
-
-  if (factory == NULL)
-    goto no_factory;
-
-  index = gst_index_factory_create (factory);
-
-  if (index == NULL)
-    goto create_failed;
-
-  gst_object_unref (factory);
-  return index;
-
-  /* ERRORS */
-no_factory:
-  {
-    GST_INFO ("no such index factory \"%s\"!", name);
-    return NULL;
-  }
-create_failed:
-  {
-    GST_INFO_OBJECT (factory, "couldn't create instance!");
-    gst_object_unref (factory);
-    return NULL;
-  }
-}
diff --git a/gst/gstindexfactory.h b/gst/gstindexfactory.h
deleted file mode 100644
index f5e9ef3..0000000
--- a/gst/gstindexfactory.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
- *                    2000 Wim Taymans <wim.taymans@chello.be>
- *
- * gstindexfactory.h: Header for GstIndexFactory, base class to handle efficient
- *                    storage or caching of seeking information.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_INDEX_FACTORY_H__
-#define __GST_INDEX_FACTORY_H__
-
-#include <gst/gstobject.h>
-#include <gst/gstformat.h>
-#include <gst/gstpluginfeature.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_INDEX_FACTORY  		(gst_index_factory_get_type())
-#define GST_INDEX_FACTORY(obj) 			(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_INDEX_FACTORY, GstIndexFactory))
-#define GST_IS_INDEX_FACTORY(obj) 		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_INDEX_FACTORY))
-#define GST_INDEX_FACTORY_CLASS(klass) 		(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_INDEX_FACTORY, GstIndexFactoryClass))
-#define GST_IS_INDEX_FACTORY_CLASS(klass) 	(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_INDEX_FACTORY))
-#define GST_INDEX_FACTORY_GET_CLASS(obj) 	(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_INDEX_FACTORY, GstIndexFactoryClass))
-
-typedef struct _GstIndexFactory GstIndexFactory;
-typedef struct _GstIndexFactoryClass GstIndexFactoryClass;
-
-/**
- * GstIndexFactory:
- *
- * The GstIndexFactory object
- */
-struct _GstIndexFactory {
-  GstPluginFeature feature;
-
-  gchar *longdesc;            /* long description of the index (well, don't overdo it..) */
-  GType type;                 /* unique GType of the index */
-
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstIndexFactoryClass {
-  GstPluginFeatureClass parent;
-
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-GType 			gst_index_factory_get_type 	(void);
-
-GstIndexFactory*	gst_index_factory_new 		(const gchar *name,
-							 const gchar *longdesc, GType type);
-void 			gst_index_factory_destroy	(GstIndexFactory *factory);
-
-GstIndexFactory*	gst_index_factory_find		(const gchar *name);
-
-GstIndex*		gst_index_factory_create 	(GstIndexFactory *factory);
-GstIndex*		gst_index_factory_make   	(const gchar *name);
-
-G_END_DECLS
-
-#endif /* __GST_INDEX_FACTORY_H__ */
diff --git a/gst/gstinfo.c b/gst/gstinfo.c
index 1a62b83..9c0871f 100644
--- a/gst/gstinfo.c
+++ b/gst/gstinfo.c
@@ -133,14 +133,13 @@
 
 /* disabled by default, as soon as some threshold is set > NONE,
  * it becomes enabled. */
-gboolean __gst_debug_enabled = FALSE;
-GstDebugLevel __gst_debug_min = GST_LEVEL_NONE;
+gboolean _gst_debug_enabled = FALSE;
+GstDebugLevel _gst_debug_min = GST_LEVEL_NONE;
 
 GstDebugCategory *GST_CAT_DEFAULT = NULL;
 
 GstDebugCategory *GST_CAT_GST_INIT = NULL;
-GstDebugCategory *GST_CAT_AUTOPLUG = NULL;
-GstDebugCategory *GST_CAT_AUTOPLUG_ATTEMPT = NULL;
+GstDebugCategory *GST_CAT_MEMORY = NULL;
 GstDebugCategory *GST_CAT_PARENTAGE = NULL;
 GstDebugCategory *GST_CAT_STATES = NULL;
 GstDebugCategory *GST_CAT_SCHEDULING = NULL;
@@ -157,7 +156,6 @@
 GstDebugCategory *GST_CAT_PLUGIN_LOADING = NULL;
 GstDebugCategory *GST_CAT_PLUGIN_INFO = NULL;
 GstDebugCategory *GST_CAT_PROPERTIES = NULL;
-GstDebugCategory *GST_CAT_TYPES = NULL;
 GstDebugCategory *GST_CAT_NEGOTIATION = NULL;
 GstDebugCategory *GST_CAT_REFCOUNTING = NULL;
 GstDebugCategory *GST_CAT_ERROR_SYSTEM = NULL;
@@ -170,6 +168,7 @@
 GstDebugCategory *GST_CAT_REGISTRY = NULL;
 GstDebugCategory *GST_CAT_QOS = NULL;
 GstDebugCategory *_priv_GST_CAT_POLL = NULL;
+GstDebugCategory *GST_CAT_META = NULL;
 
 
 #endif /* !defined(GST_DISABLE_GST_DEBUG) || !defined(GST_REMOVE_DISABLED) */
@@ -239,7 +238,7 @@
 };
 
 /* list of all name/level pairs from --gst-debug and GST_DEBUG */
-static GStaticMutex __level_name_mutex = G_STATIC_MUTEX_INIT;
+static GMutex __level_name_mutex;
 static GSList *__level_name = NULL;
 typedef struct
 {
@@ -249,7 +248,7 @@
 LevelNameEntry;
 
 /* list of all categories */
-static GStaticMutex __cat_mutex = G_STATIC_MUTEX_INIT;
+static GMutex __cat_mutex;
 static GSList *__categories = NULL;
 
 /* all registered debug handlers */
@@ -259,7 +258,7 @@
   gpointer user_data;
 }
 LogFuncEntry;
-static GStaticMutex __log_func_mutex = G_STATIC_MUTEX_INIT;
+static GMutex __log_func_mutex;
 static GSList *__log_functions = NULL;
 
 #define PRETTY_TAGS_DEFAULT  TRUE
@@ -303,14 +302,9 @@
   return (in_valgrind == GST_VG_INSIDE);
 }
 
-/**
- * _gst_debug_init:
- *
- * Initializes the debugging system.
- * Normally you don't want to call this, because gst_init() does it for you.
- */
+/* Initialize the debugging system */
 void
-_gst_debug_init (void)
+_priv_gst_debug_init (void)
 {
   const gchar *env;
 
@@ -358,10 +352,8 @@
   /* FIXME: add descriptions here */
   GST_CAT_GST_INIT = _gst_debug_category_new ("GST_INIT",
       GST_DEBUG_BOLD | GST_DEBUG_FG_RED, NULL);
-  GST_CAT_AUTOPLUG = _gst_debug_category_new ("GST_AUTOPLUG",
-      GST_DEBUG_BOLD | GST_DEBUG_FG_BLUE, NULL);
-  GST_CAT_AUTOPLUG_ATTEMPT = _gst_debug_category_new ("GST_AUTOPLUG_ATTEMPT",
-      GST_DEBUG_BOLD | GST_DEBUG_FG_CYAN | GST_DEBUG_BG_BLUE, NULL);
+  GST_CAT_MEMORY = _gst_debug_category_new ("GST_MEMORY",
+      GST_DEBUG_BOLD | GST_DEBUG_FG_BLUE, "memory");
   GST_CAT_PARENTAGE = _gst_debug_category_new ("GST_PARENTAGE",
       GST_DEBUG_BOLD | GST_DEBUG_FG_WHITE | GST_DEBUG_BG_RED, NULL);
   GST_CAT_STATES = _gst_debug_category_new ("GST_STATES",
@@ -391,8 +383,6 @@
       GST_DEBUG_BOLD | GST_DEBUG_FG_CYAN, NULL);
   GST_CAT_PROPERTIES = _gst_debug_category_new ("GST_PROPERTIES",
       GST_DEBUG_BOLD | GST_DEBUG_FG_WHITE | GST_DEBUG_BG_BLUE, NULL);
-  GST_CAT_TYPES = _gst_debug_category_new ("GST_TYPES",
-      GST_DEBUG_BOLD | GST_DEBUG_FG_WHITE | GST_DEBUG_BG_RED, NULL);
   GST_CAT_NEGOTIATION = _gst_debug_category_new ("GST_NEGOTIATION",
       GST_DEBUG_BOLD | GST_DEBUG_FG_BLUE, NULL);
   GST_CAT_REFCOUNTING = _gst_debug_category_new ("GST_REFCOUNTING",
@@ -415,6 +405,7 @@
   GST_CAT_REGISTRY = _gst_debug_category_new ("GST_REGISTRY", 0, "registry");
   GST_CAT_QOS = _gst_debug_category_new ("GST_QOS", 0, "QoS");
   _priv_GST_CAT_POLL = _gst_debug_category_new ("GST_POLL", 0, "poll");
+  GST_CAT_META = _gst_debug_category_new ("GST_META", 0, "meta");
 
 
   /* print out the valgrind message if we're in valgrind */
@@ -629,6 +620,20 @@
   if (*(GType *) ptr == GST_TYPE_STRUCTURE) {
     return gst_info_structure_to_string ((const GstStructure *) ptr);
   }
+  if (GST_IS_BUFFER (ptr)) {
+    GstBuffer *buf = (GstBuffer *) ptr;
+    gchar *ret;
+
+    ret =
+        g_strdup_printf ("%p, pts %" GST_TIME_FORMAT ", dts %" GST_TIME_FORMAT
+        ", dur %" GST_TIME_FORMAT ", size %" G_GSIZE_FORMAT ", offset %"
+        G_GUINT64_FORMAT ", offset_end %" G_GUINT64_FORMAT, buf,
+        GST_TIME_ARGS (GST_BUFFER_PTS (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DTS (buf)),
+        GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), gst_buffer_get_size (buf),
+        GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf));
+    return ret;
+  }
 #ifdef USE_POISONING
   if (*(guint32 *) ptr == 0xffffffff) {
     return g_strdup_printf ("<poisoned@%p>", ptr);
@@ -722,10 +727,12 @@
     case GST_FORMAT_TIME:{
       return g_strdup_printf ("time segment start=%" GST_TIME_FORMAT
           ", stop=%" GST_TIME_FORMAT ", rate=%f, applied_rate=%f"
-          ", flags=0x%02x, time=%" GST_TIME_FORMAT ", base=%" GST_TIME_FORMAT,
+          ", flags=0x%02x, time=%" GST_TIME_FORMAT ", base=%" GST_TIME_FORMAT
+          ", position %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT,
           GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop),
           segment->rate, segment->applied_rate, (guint) segment->flags,
-          GST_TIME_ARGS (segment->time), GST_TIME_ARGS (segment->base));
+          GST_TIME_ARGS (segment->time), GST_TIME_ARGS (segment->base),
+          GST_TIME_ARGS (segment->position), GST_TIME_ARGS (segment->duration));
     }
     default:{
       const gchar *format_name;
@@ -735,10 +742,11 @@
         format_name = "(UNKNOWN FORMAT)";
       return g_strdup_printf ("%s segment start=%" G_GINT64_FORMAT
           ", stop=%" G_GINT64_FORMAT ", rate=%f, applied_rate=%f"
-          ", flags=0x%02x, time=%" GST_TIME_FORMAT ", base=%" GST_TIME_FORMAT,
+          ", flags=0x%02x, time=%" G_GINT64_FORMAT ", base=%" G_GINT64_FORMAT
+          ", position %" G_GINT64_FORMAT ", duration %" G_GINT64_FORMAT,
           format_name, segment->start, segment->stop, segment->rate,
           segment->applied_rate, (guint) segment->flags,
-          GST_TIME_ARGS (segment->time), GST_TIME_ARGS (segment->base));
+          segment->time, segment->base, segment->position, segment->duration);
     }
   }
 }
@@ -968,13 +976,13 @@
     /* colors, windows. We take a lock to keep colors and content together.
      * Maybe there is a better way but for now this will do the right
      * thing. */
-    static GStaticMutex win_print_mutex = G_STATIC_MUTEX_INIT;
+    static GMutex win_print_mutex;
     const gint clear = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
 #define SET_COLOR(c) G_STMT_START { \
   if (log_file == stderr) \
     SetConsoleTextAttribute (GetStdHandle (STD_ERROR_HANDLE), (c)); \
   } G_STMT_END
-    g_static_mutex_lock (&win_print_mutex);
+    g_mutex_lock (&win_print_mutex);
     /* timestamp */
     fprintf (log_file, "%" GST_TIME_FORMAT " ", GST_TIME_ARGS (elapsed));
     fflush (log_file);
@@ -1000,7 +1008,7 @@
     SET_COLOR (clear);
     fprintf (log_file, " %s\n", gst_debug_message_get (message));
     fflush (log_file);
-    g_static_mutex_unlock (&win_print_mutex);
+    g_mutex_unlock (&win_print_mutex);
 #endif
   } else {
     /* no color, all platforms */
@@ -1078,10 +1086,10 @@
    * It'd probably be clever to use some kind of RCU here, but I don't know
    * anything about that.
    */
-  g_static_mutex_lock (&__log_func_mutex);
+  g_mutex_lock (&__log_func_mutex);
   list = g_slist_copy (__log_functions);
   __log_functions = g_slist_prepend (list, entry);
-  g_static_mutex_unlock (&__log_func_mutex);
+  g_mutex_unlock (&__log_func_mutex);
 
   GST_DEBUG ("prepended log function %p (user data %p) to log functions",
       func, data);
@@ -1110,7 +1118,7 @@
   GSList *new;
   guint removals = 0;
 
-  g_static_mutex_lock (&__log_func_mutex);
+  g_mutex_lock (&__log_func_mutex);
   new = __log_functions;
   while ((found = g_slist_find_custom (new, data, func))) {
     if (new == __log_functions) {
@@ -1125,7 +1133,7 @@
   }
   /* FIXME: We leak the old list here. See _add_log_function for why. */
   __log_functions = new;
-  g_static_mutex_unlock (&__log_func_mutex);
+  g_mutex_unlock (&__log_func_mutex);
 
   return removals;
 }
@@ -1218,11 +1226,11 @@
 void
 gst_debug_set_active (gboolean active)
 {
-  __gst_debug_enabled = active;
+  _gst_debug_enabled = active;
   if (active)
-    __gst_debug_min = GST_LEVEL_COUNT;
+    _gst_debug_min = GST_LEVEL_COUNT;
   else
-    __gst_debug_min = GST_LEVEL_NONE;
+    _gst_debug_min = GST_LEVEL_NONE;
 }
 
 /**
@@ -1235,7 +1243,7 @@
 gboolean
 gst_debug_is_active (void)
 {
-  return __gst_debug_enabled;
+  return _gst_debug_enabled;
 }
 
 /**
@@ -1273,7 +1281,7 @@
   GstDebugCategory *cat = (GstDebugCategory *) category;
   GSList *walk;
 
-  g_static_mutex_lock (&__level_name_mutex);
+  g_mutex_lock (&__level_name_mutex);
   walk = __level_name;
   while (walk) {
     LevelNameEntry *entry = walk->data;
@@ -1289,15 +1297,15 @@
   gst_debug_category_set_threshold (cat, gst_debug_get_default_threshold ());
 
 exit:
-  g_static_mutex_unlock (&__level_name_mutex);
+  g_mutex_unlock (&__level_name_mutex);
 }
 
 static void
 gst_debug_reset_all_thresholds (void)
 {
-  g_static_mutex_lock (&__cat_mutex);
+  g_mutex_lock (&__cat_mutex);
   g_slist_foreach (__categories, gst_debug_reset_threshold, NULL);
-  g_static_mutex_unlock (&__cat_mutex);
+  g_mutex_unlock (&__cat_mutex);
 }
 
 static void
@@ -1333,12 +1341,12 @@
   entry = g_slice_new (LevelNameEntry);
   entry->pat = pat;
   entry->level = level;
-  g_static_mutex_lock (&__level_name_mutex);
+  g_mutex_lock (&__level_name_mutex);
   __level_name = g_slist_prepend (__level_name, entry);
-  g_static_mutex_unlock (&__level_name_mutex);
-  g_static_mutex_lock (&__cat_mutex);
+  g_mutex_unlock (&__level_name_mutex);
+  g_mutex_lock (&__cat_mutex);
   g_slist_foreach (__categories, for_each_threshold_by_entry, entry);
-  g_static_mutex_unlock (&__cat_mutex);
+  g_mutex_unlock (&__cat_mutex);
 }
 
 /**
@@ -1356,7 +1364,7 @@
   g_return_if_fail (name != NULL);
 
   pat = g_pattern_spec_new (name);
-  g_static_mutex_lock (&__level_name_mutex);
+  g_mutex_lock (&__level_name_mutex);
   walk = __level_name;
   /* improve this if you want, it's mighty slow */
   while (walk) {
@@ -1370,7 +1378,7 @@
       walk = __level_name;
     }
   }
-  g_static_mutex_unlock (&__level_name_mutex);
+  g_mutex_unlock (&__level_name_mutex);
   g_pattern_spec_free (pat);
   gst_debug_reset_all_thresholds ();
 }
@@ -1395,9 +1403,9 @@
   gst_debug_reset_threshold (cat, NULL);
 
   /* add to category list */
-  g_static_mutex_lock (&__cat_mutex);
+  g_mutex_lock (&__cat_mutex);
   __categories = g_slist_prepend (__categories, cat);
-  g_static_mutex_unlock (&__cat_mutex);
+  g_mutex_unlock (&__cat_mutex);
 
   return cat;
 }
@@ -1415,9 +1423,9 @@
     return;
 
   /* remove from category list */
-  g_static_mutex_lock (&__cat_mutex);
+  g_mutex_lock (&__cat_mutex);
   __categories = g_slist_remove (__categories, category);
-  g_static_mutex_unlock (&__cat_mutex);
+  g_mutex_unlock (&__cat_mutex);
 
   g_free ((gpointer) category->name);
   g_free ((gpointer) category->description);
@@ -1444,9 +1452,9 @@
 {
   g_return_if_fail (category != NULL);
 
-  if (level > __gst_debug_min) {
-    __gst_debug_enabled = TRUE;
-    __gst_debug_min = level;
+  if (level > _gst_debug_min) {
+    _gst_debug_enabled = TRUE;
+    _gst_debug_min = level;
   }
 
   g_atomic_int_set (&category->threshold, level);
@@ -1540,9 +1548,9 @@
 {
   GSList *ret;
 
-  g_static_mutex_lock (&__cat_mutex);
+  g_mutex_lock (&__cat_mutex);
   ret = g_slist_copy (__categories);
-  g_static_mutex_unlock (&__cat_mutex);
+  g_mutex_unlock (&__cat_mutex);
 
   return ret;
 }
@@ -1565,7 +1573,7 @@
 /*** FUNCTION POINTERS ********************************************************/
 
 static GHashTable *__gst_function_pointers;     /* NULL */
-static GStaticMutex __dbg_functions_mutex = G_STATIC_MUTEX_INIT;
+static GMutex __dbg_functions_mutex;
 
 /* This function MUST NOT return NULL */
 const gchar *
@@ -1580,14 +1588,14 @@
   if (G_UNLIKELY (func == NULL))
     return "(NULL)";
 
-  g_static_mutex_lock (&__dbg_functions_mutex);
+  g_mutex_lock (&__dbg_functions_mutex);
   if (G_LIKELY (__gst_function_pointers)) {
     ptrname = g_hash_table_lookup (__gst_function_pointers, (gpointer) func);
-    g_static_mutex_unlock (&__dbg_functions_mutex);
+    g_mutex_unlock (&__dbg_functions_mutex);
     if (G_LIKELY (ptrname))
       return ptrname;
   } else {
-    g_static_mutex_unlock (&__dbg_functions_mutex);
+    g_mutex_unlock (&__dbg_functions_mutex);
   }
   /* we need to create an entry in the hash table for this one so we don't leak
    * the name */
@@ -1612,14 +1620,14 @@
 {
   gpointer ptr = (gpointer) func;
 
-  g_static_mutex_lock (&__dbg_functions_mutex);
+  g_mutex_lock (&__dbg_functions_mutex);
 
   if (!__gst_function_pointers)
     __gst_function_pointers = g_hash_table_new (g_direct_hash, g_direct_equal);
   if (!g_hash_table_lookup (__gst_function_pointers, ptr))
     g_hash_table_insert (__gst_function_pointers, ptr, (gpointer) ptrname);
 
-  g_static_mutex_unlock (&__dbg_functions_mutex);
+  g_mutex_unlock (&__dbg_functions_mutex);
 }
 
 /*** PRINTF EXTENSIONS ********************************************************/
diff --git a/gst/gstinfo.h b/gst/gstinfo.h
index f841cd7..5b8f87c 100644
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -42,6 +42,11 @@
  *  that could lead to problems or weird behaviour later on. An example of this
  *  would be clocking issues ("your computer is pretty slow") or broken input
  *  data ("Can't synchronize to stream.")
+ * @GST_LEVEL_FIXME: Fixme messages are messages that indicate that something
+ *  in the executed code path is not fully implemented or handled yet. Note
+ *  that this does not replace proper error handling in any way, the purpose
+ *  of this message is to make it easier to spot incomplete/unfinished pieces
+ *  of code when reading the debug log. (Since: 0.10.23)
  * @GST_LEVEL_INFO: Informational messages should be used to keep the developer
  *  updated about what is happening.
  *  Examples where this should be used are when a typefind function has
@@ -58,11 +63,6 @@
  *  should never output anything else but LOG messages. Use this log level to
  *  log recurring information in chain functions and loop functions, for
  *  example.
- * @GST_LEVEL_FIXME: Fixme messages are messages that indicate that something
- *  in the executed code path is not fully implemented or handled yet. Note
- *  that this does not replace proper error handling in any way, the purpose
- *  of this message is to make it easier to spot incomplete/unfinished pieces
- *  of code when reading the debug log. (Since: 0.10.23)
  * @GST_LEVEL_TRACE: Tracing-related messages (Since: 0.10.30)
  *  Examples for this are referencing/dereferencing of objects.
  * @GST_LEVEL_MEMDUMP: memory dump messages are used to log (small) chunks of
@@ -75,12 +75,12 @@
  */
 typedef enum {
   GST_LEVEL_NONE = 0,
-  GST_LEVEL_ERROR,
-  GST_LEVEL_WARNING,
-  GST_LEVEL_INFO,
-  GST_LEVEL_DEBUG,
-  GST_LEVEL_LOG,
-  GST_LEVEL_FIXME = 6,
+  GST_LEVEL_ERROR = 1,
+  GST_LEVEL_WARNING = 2,
+  GST_LEVEL_FIXME = 3,
+  GST_LEVEL_INFO = 4,
+  GST_LEVEL_DEBUG = 5,
+  GST_LEVEL_LOG = 6,
   GST_LEVEL_TRACE = 7,
   /* add more */
   GST_LEVEL_MEMDUMP = 9,
@@ -256,11 +256,6 @@
                                  GstDebugMessage  * message,
                                  gpointer           data);
 
-
-/* FIXME 0.11: move this into private headers */
-void            _gst_debug_init (void);
-
-
 #ifdef GST_USING_PRINTF_EXTENSION
 
 /* not using G_GNUC_PRINTF, since gcc will choke on GST_PTR_FORMAT being %P */
@@ -490,11 +485,11 @@
  */
 GST_EXPORT GstDebugCategory *	GST_CAT_DEFAULT;
 /* this symbol may not be used */
-extern gboolean			__gst_debug_enabled;
+GST_EXPORT gboolean			_gst_debug_enabled;
 
 /* since 0.10.7, the min debug level, used for quickly discarding debug
  * messages that fall under the threshold. */
-GST_EXPORT GstDebugLevel            __gst_debug_min;
+GST_EXPORT GstDebugLevel            _gst_debug_min;
 
 /**
  * GST_CAT_LEVEL_LOG:
@@ -509,7 +504,7 @@
  */
 #ifdef G_HAVE_ISO_VARARGS
 #define GST_CAT_LEVEL_LOG(cat,level,object,...) G_STMT_START{		\
-  if (G_UNLIKELY (level <= __gst_debug_min)) {						\
+  if (G_UNLIKELY (level <= _gst_debug_min)) {						\
     gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
         (GObject *) (object), __VA_ARGS__);				\
   }									\
@@ -517,7 +512,7 @@
 #else /* G_HAVE_GNUC_VARARGS */
 #ifdef G_HAVE_GNUC_VARARGS
 #define GST_CAT_LEVEL_LOG(cat,level,object,args...) G_STMT_START{	\
-  if (G_UNLIKELY (level <= __gst_debug_min)) {						\
+  if (G_UNLIKELY (level <= _gst_debug_min)) {						\
     gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__,	\
         (GObject *) (object), ##args );					\
   }									\
@@ -527,7 +522,7 @@
 GST_CAT_LEVEL_LOG_valist (GstDebugCategory * cat,
     GstDebugLevel level, gpointer object, const char *format, va_list varargs)
 {
-  if (G_UNLIKELY (level <= __gst_debug_min)) {
+  if (G_UNLIKELY (level <= _gst_debug_min)) {
     gst_debug_log_valist (cat, level, "", "", 0, (GObject *) object, format,
         varargs);
   }
@@ -550,7 +545,7 @@
  * other macros and hence in a separate block right here. Docs chunks are
  * with the other doc chunks below though. */
 #define __GST_CAT_MEMDUMP_LOG(cat,object,msg,data,length) G_STMT_START{       \
-  if (G_UNLIKELY (GST_LEVEL_MEMDUMP <= __gst_debug_min)) {                    \
+  if (G_UNLIKELY (GST_LEVEL_MEMDUMP <= _gst_debug_min)) {                    \
     _gst_debug_dump_mem ((cat), __FILE__, GST_FUNCTION, __LINE__,             \
         (GObject *) (object), (msg), (data), (length));                       \
   }                                                                           \
@@ -1260,9 +1255,7 @@
 #  pragma GCC poison _gst_debug_category_new
 #endif
 
-#define __gst_debug_min GST_LEVEL_NONE
-
-#define _gst_debug_init()				G_STMT_START{ }G_STMT_END
+#define _gst_debug_min GST_LEVEL_NONE
 
 #define gst_debug_set_default_threshold(level)		G_STMT_START{ }G_STMT_END
 #define gst_debug_get_default_threshold()		(GST_LEVEL_NONE)
diff --git a/gst/gstiterator.c b/gst/gstiterator.c
index 56675b4..a8f34fb 100644
--- a/gst/gstiterator.c
+++ b/gst/gstiterator.c
@@ -73,6 +73,14 @@
 #include "gst_private.h"
 #include <gst/gstiterator.h>
 
+/**
+ * gst_iterator_copy:
+ * @it: a #GstIterator
+ *
+ * Copy the iterator and its state.
+ *
+ * Returns: a new copy of @it.
+ */
 GstIterator *
 gst_iterator_copy (const GstIterator * it)
 {
@@ -85,16 +93,8 @@
   return copy;
 }
 
-GType
-gst_iterator_get_type (void)
-{
-  static GType type = 0;
-
-  if (G_UNLIKELY (type == 0))
-    type = g_boxed_type_register_static ("GstIterator",
-        (GBoxedCopyFunc) gst_iterator_copy, (GBoxedFreeFunc) gst_iterator_free);
-  return type;
-}
+G_DEFINE_BOXED_TYPE (GstIterator, gst_iterator,
+    (GBoxedCopyFunc) gst_iterator_copy, (GBoxedFreeFunc) gst_iterator_free);
 
 static void
 gst_iterator_init (GstIterator * it,
@@ -121,7 +121,7 @@
 }
 
 /**
- * gst_iterator_new:
+ * gst_iterator_new: (skip)
  * @size: the size of the iterator structure
  * @type: #GType of children
  * @lock: pointer to a #GMutex.
@@ -219,7 +219,7 @@
 }
 
 /**
- * gst_iterator_new_list:
+ * gst_iterator_new_list: (skip)
  * @type: #GType of elements
  * @lock: pointer to a #GMutex protecting the list.
  * @master_cookie: pointer to a guint32 that is incremented when the list
diff --git a/gst/gstiterator.h b/gst/gstiterator.h
index 3443402..2a21f8b 100644
--- a/gst/gstiterator.h
+++ b/gst/gstiterator.h
@@ -40,10 +40,10 @@
  * The result of gst_iterator_next().
  */
 typedef enum {
-  GST_ITERATOR_DONE	= 0,
-  GST_ITERATOR_OK	= 1,
-  GST_ITERATOR_RESYNC	= 2,
-  GST_ITERATOR_ERROR	= 3
+  GST_ITERATOR_DONE     = 0,
+  GST_ITERATOR_OK       = 1,
+  GST_ITERATOR_RESYNC   = 2,
+  GST_ITERATOR_ERROR    = 3
 } GstIteratorResult;
 
 typedef struct _GstIterator GstIterator;
@@ -57,9 +57,9 @@
  * The result of a #GstIteratorItemFunction.
  */
 typedef enum {
-  GST_ITERATOR_ITEM_SKIP	= 0,
-  GST_ITERATOR_ITEM_PASS	= 1,
-  GST_ITERATOR_ITEM_END		= 2
+  GST_ITERATOR_ITEM_SKIP        = 0,
+  GST_ITERATOR_ITEM_PASS        = 1,
+  GST_ITERATOR_ITEM_END         = 2
 } GstIteratorItem;
 
 /**
@@ -94,7 +94,7 @@
  * @result: a pointer to hold the next item
  *
  * The function that will be called when the next element of the iterator
- * should be retrieved. 
+ * should be retrieved.
  *
  * Implementors of a #GstIterator should implement this
  * function and pass it to the constructor of the custom iterator.
@@ -102,7 +102,7 @@
  *
  * Returns: the result of the operation.
  */
-typedef GstIteratorResult (*GstIteratorNextFunction)	(GstIterator *it, GValue *result);
+typedef GstIteratorResult (*GstIteratorNextFunction)    (GstIterator *it, GValue *result);
 /**
  * GstIteratorResyncFunction:
  * @it: the iterator
@@ -116,7 +116,7 @@
  * function and pass it to the constructor of the custom iterator.
  * The function will be called with the iterator lock held.
  */
-typedef void		  (*GstIteratorResyncFunction)	(GstIterator *it);
+typedef void              (*GstIteratorResyncFunction)  (GstIterator *it);
 /**
  * GstIteratorFreeFunction:
  * @it: the iterator
@@ -127,7 +127,7 @@
  * function and pass it to the constructor of the custom iterator.
  * The function will be called with the iterator lock held.
  */
-typedef void		  (*GstIteratorFreeFunction)	(GstIterator *it);
+typedef void              (*GstIteratorFreeFunction)    (GstIterator *it);
 
 /**
  * GstIteratorForeachFunction:
@@ -148,7 +148,7 @@
  *
  * Returns: TRUE if the fold should continue, FALSE if it should stop.
  */
-typedef gboolean	  (*GstIteratorFoldFunction)    (const GValue * item, GValue * ret, gpointer user_data);
+typedef gboolean          (*GstIteratorFoldFunction)    (const GValue * item, GValue * ret, gpointer user_data);
 
 /**
  * GST_ITERATOR:
@@ -156,14 +156,14 @@
  *
  * Macro to cast to a #GstIterator
  */
-#define GST_ITERATOR(it)		((GstIterator*)(it))
+#define GST_ITERATOR(it)                ((GstIterator*)(it))
 /**
  * GST_ITERATOR_LOCK:
  * @it: the #GstIterator to get the lock of
  *
  * Macro to get the lock protecting the datastructure being iterated.
  */
-#define GST_ITERATOR_LOCK(it)		(GST_ITERATOR(it)->lock)
+#define GST_ITERATOR_LOCK(it)           (GST_ITERATOR(it)->lock)
 /**
  * GST_ITERATOR_COOKIE:
  * @it: the #GstIterator to get the cookie of
@@ -175,7 +175,7 @@
  * value of the master cookie. If they are different, a concurrent
  * modification happened to the iterator and a resync is needed.
  */
-#define GST_ITERATOR_COOKIE(it)		(GST_ITERATOR(it)->cookie)
+#define GST_ITERATOR_COOKIE(it)         (GST_ITERATOR(it)->cookie)
 /**
  * GST_ITERATOR_ORIG_COOKIE:
  * @it: the #GstIterator to get the master cookie of
@@ -184,7 +184,7 @@
  * master cookie protects the structure being iterated and gets updated
  * whenever the datastructure changes.
  */
-#define GST_ITERATOR_ORIG_COOKIE(it)	(GST_ITERATOR(it)->master_cookie)
+#define GST_ITERATOR_ORIG_COOKIE(it)    (GST_ITERATOR(it)->master_cookie)
 
 /**
  * GstIterator:
@@ -201,7 +201,7 @@
  * @master_cookie: A pointer to the master cookie.
  * @size: the size of the iterator
  *
- * #GstIterator base structure. The values of this structure are 
+ * #GstIterator base structure. The values of this structure are
  * protected for subclasses, use the methods to use the #GstIterator.
  */
 struct _GstIterator {
@@ -212,13 +212,13 @@
   GstIteratorResyncFunction resync;
   GstIteratorFreeFunction free;
 
-  GstIterator *pushed;		/* pushed iterator */
+  GstIterator *pushed;          /* pushed iterator */
 
   GType     type;
   GMutex   *lock;
-  guint32   cookie;		/* cookie of the iterator */
-  guint32  *master_cookie;	/* pointer to guint32 holding the cookie when this
-				   iterator was created */
+  guint32   cookie;             /* cookie of the iterator */
+  guint32  *master_cookie;      /* pointer to guint32 holding the cookie when this
+                                   iterator was created */
   guint     size;
 
   /*< private >*/
@@ -228,44 +228,44 @@
 GType                   gst_iterator_get_type           (void);
 
 /* creating iterators */
-GstIterator*		gst_iterator_new		(guint size,
-							 GType type,
-							 GMutex *lock,
-							 guint32 *master_cookie,
+GstIterator*            gst_iterator_new                (guint size,
+                                                         GType type,
+                                                         GMutex *lock,
+                                                         guint32 *master_cookie,
                                                          GstIteratorCopyFunction copy,
-							 GstIteratorNextFunction next,
+                                                         GstIteratorNextFunction next,
                                                          GstIteratorItemFunction item,
-							 GstIteratorResyncFunction resync,
-							 GstIteratorFreeFunction free);
+                                                         GstIteratorResyncFunction resync,
+                                                         GstIteratorFreeFunction free) G_GNUC_MALLOC;
 
-GstIterator*		gst_iterator_new_list	        (GType type,
-							 GMutex *lock,
-							 guint32 *master_cookie,
-							 GList **list,
-							 GObject * owner,
-                                                         GstIteratorItemFunction item);
+GstIterator*            gst_iterator_new_list           (GType type,
+                                                         GMutex *lock,
+                                                         guint32 *master_cookie,
+                                                         GList **list,
+                                                         GObject * owner,
+                                                         GstIteratorItemFunction item) G_GNUC_MALLOC;
 
 GstIterator*            gst_iterator_new_single         (GType type,
-                                                         const GValue * object);
+                                                         const GValue * object) G_GNUC_MALLOC;
 
-GstIterator*            gst_iterator_copy               (const GstIterator *it);
+GstIterator*            gst_iterator_copy               (const GstIterator *it) G_GNUC_MALLOC;
 
 /* using iterators */
-GstIteratorResult	gst_iterator_next		(GstIterator *it, GValue * elem);
-void			gst_iterator_resync		(GstIterator *it);
-void			gst_iterator_free		(GstIterator *it);
+GstIteratorResult       gst_iterator_next               (GstIterator *it, GValue * elem);
+void                    gst_iterator_resync             (GstIterator *it);
+void                    gst_iterator_free               (GstIterator *it);
 
-void			gst_iterator_push		(GstIterator *it, GstIterator *other);
+void                    gst_iterator_push               (GstIterator *it, GstIterator *other);
 
 /* higher-order functions that operate on iterators */
-GstIterator*		gst_iterator_filter		(GstIterator *it, GCompareFunc func,
-                                                         const GValue * user_data);
-GstIteratorResult	gst_iterator_fold		(GstIterator *it,
+GstIterator*            gst_iterator_filter             (GstIterator *it, GCompareFunc func,
+                                                         const GValue * user_data) G_GNUC_MALLOC;
+GstIteratorResult       gst_iterator_fold               (GstIterator *it,
                                                          GstIteratorFoldFunction func,
                                                          GValue *ret, gpointer user_data);
-GstIteratorResult	gst_iterator_foreach		(GstIterator *it,
+GstIteratorResult       gst_iterator_foreach            (GstIterator *it,
                                                          GstIteratorForeachFunction func, gpointer user_data);
-gboolean 		gst_iterator_find_custom	(GstIterator *it, GCompareFunc func,
+gboolean                gst_iterator_find_custom        (GstIterator *it, GCompareFunc func,
                                                          GValue *elem, gpointer user_data);
 
 G_END_DECLS
diff --git a/gst/gstmarshal.list b/gst/gstmarshal.list
deleted file mode 100644
index b9fc164..0000000
--- a/gst/gstmarshal.list
+++ /dev/null
@@ -1,25 +0,0 @@
-VOID:VOID
-VOID:BOOLEAN
-VOID:INT
-VOID:STRING
-VOID:BOXED
-VOID:BOXED,OBJECT
-VOID:POINTER
-VOID:POINTER,OBJECT
-VOID:OBJECT
-VOID:OBJECT,OBJECT
-VOID:OBJECT,PARAM
-VOID:OBJECT,POINTER
-VOID:OBJECT,BOXED
-VOID:OBJECT,BOXED,STRING
-VOID:OBJECT,OBJECT,STRING
-VOID:OBJECT,STRING
-VOID:INT,INT
-VOID:INT64
-VOID:UINT,BOXED
-VOID:UINT,POINTER
-BOOLEAN:VOID
-BOOLEAN:POINTER
-BOOLEAN:BOXED
-POINTER:POINTER
-BOXED:BOXED
diff --git a/gst/gstmemory.c b/gst/gstmemory.c
index ebaefc3..5a7f289 100644
--- a/gst/gstmemory.c
+++ b/gst/gstmemory.c
@@ -27,13 +27,19 @@
  * GstMemory is a lightweight refcounted object that wraps a region of memory.
  * They are typically used to manage the data of a #GstBuffer.
  *
+ * A GstMemory object has an allocated region of memory of maxsize. The maximum
+ * size does not change during the lifetime of the memory object. The memory
+ * also has an offset and size property that specifies the valid range of memory
+ * in the allocated region.
+ *
  * Memory is usually created by allocators with a gst_allocator_alloc()
  * method call. When NULL is used as the allocator, the default allocator will
  * be used.
  *
  * New allocators can be registered with gst_allocator_register().
  * Allocators are identified by name and can be retrieved with
- * gst_allocator_find().
+ * gst_allocator_find(). gst_allocator_set_default() can be used to change the
+ * default allocator.
  *
  * New memory can be created with gst_memory_new_wrapped() that wraps the memory
  * allocated elsewhere.
@@ -45,26 +51,42 @@
  * gst_memory_get_sizes() and gst_memory_resize() respectively.
  *
  * Getting access to the data of the memory is performed with gst_memory_map().
+ * The call will return a pointer to offset bytes into the region of memory.
  * After the memory access is completed, gst_memory_unmap() should be called.
  *
- * Memory can be copied with gst_memory_copy(), which will returnn a writable
+ * Memory can be copied with gst_memory_copy(), which will return a writable
  * copy. gst_memory_share() will create a new memory block that shares the
  * memory with an existing memory block at a custom offset and with a custom
  * size.
  *
  * Memory can be efficiently merged when gst_memory_is_span() returns TRUE.
  *
- * Last reviewed on 2011-06-08 (0.11.0)
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 
+#ifdef HAVE_CONFIG_H
 #include "config.h"
+#endif
+
 #include "gst_private.h"
 #include "gstmemory.h"
 
+#ifndef GST_DISABLE_TRACE
+#include "gsttrace.h"
+static GstAllocTrace *_gst_memory_trace;
+static GstAllocTrace *_gst_allocator_trace;
+#endif
 
-/* buffer alignment in bytes - 1
- * an alignment of 7 would be the same as malloc() guarantees
- */
+G_DEFINE_BOXED_TYPE (GstMemory, gst_memory, (GBoxedCopyFunc) gst_memory_ref,
+    (GBoxedFreeFunc) gst_memory_unref);
+
+G_DEFINE_BOXED_TYPE (GstAllocator, gst_allocator,
+    (GBoxedCopyFunc) gst_allocator_ref, (GBoxedFreeFunc) gst_allocator_unref);
+
+G_DEFINE_BOXED_TYPE (GstAllocationParams, gst_allocation_params,
+    (GBoxedCopyFunc) gst_allocation_params_copy,
+    (GBoxedFreeFunc) gst_allocation_params_free);
+
 #if defined(MEMORY_ALIGNMENT_MALLOC)
 size_t gst_memory_alignment = 7;
 #elif defined(MEMORY_ALIGNMENT_PAGESIZE)
@@ -79,9 +101,12 @@
 
 struct _GstAllocator
 {
-  GQuark name;
+  gint refcount;
 
   GstMemoryInfo info;
+
+  gpointer user_data;
+  GDestroyNotify notify;
 };
 
 /* default memory implementation */
@@ -90,40 +115,47 @@
   GstMemory mem;
   gsize slice_size;
   guint8 *data;
-  GFreeFunc free_func;
-  gsize maxsize;
-  gsize offset;
-  gsize size;
+  gpointer user_data;
+  GDestroyNotify notify;
 } GstMemoryDefault;
 
 /* the default allocator */
-static const GstAllocator *_default_allocator;
+static GstAllocator *_default_allocator;
 
 /* our predefined allocators */
-static const GstAllocator *_default_mem_impl;
+static GstAllocator *_default_mem_impl;
 
 /* initialize the fields */
 static void
 _default_mem_init (GstMemoryDefault * mem, GstMemoryFlags flags,
     GstMemory * parent, gsize slice_size, gpointer data,
-    GFreeFunc free_func, gsize maxsize, gsize offset, gsize size)
+    gsize maxsize, gsize offset, gsize size, gsize align,
+    gpointer user_data, GDestroyNotify notify)
 {
   mem->mem.allocator = _default_mem_impl;
   mem->mem.flags = flags;
   mem->mem.refcount = 1;
   mem->mem.parent = parent ? gst_memory_ref (parent) : NULL;
+  mem->mem.state = (flags & GST_MEMORY_FLAG_READONLY ? 0x1 : 0);
+  mem->mem.maxsize = maxsize;
+  mem->mem.align = align;
+  mem->mem.offset = offset;
+  mem->mem.size = size;
   mem->slice_size = slice_size;
   mem->data = data;
-  mem->free_func = free_func;
-  mem->maxsize = maxsize;
-  mem->offset = offset;
-  mem->size = size;
+  mem->user_data = user_data;
+  mem->notify = notify;
+
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "new memory %p, maxsize:%" G_GSIZE_FORMAT
+      " offset:%" G_GSIZE_FORMAT " size:%" G_GSIZE_FORMAT, mem, maxsize,
+      offset, size);
 }
 
 /* create a new memory block that manages the given memory */
 static GstMemoryDefault *
 _default_mem_new (GstMemoryFlags flags, GstMemory * parent, gpointer data,
-    GFreeFunc free_func, gsize maxsize, gsize offset, gsize size)
+    gsize maxsize, gsize offset, gsize size, gsize align, gpointer user_data,
+    GDestroyNotify notify)
 {
   GstMemoryDefault *mem;
   gsize slice_size;
@@ -132,17 +164,18 @@
 
   mem = g_slice_alloc (slice_size);
   _default_mem_init (mem, flags, parent, slice_size,
-      data, free_func, maxsize, offset, size);
+      data, maxsize, offset, size, align, user_data, notify);
 
   return mem;
 }
 
 /* allocate the memory and structure in one block */
 static GstMemoryDefault *
-_default_mem_new_block (gsize maxsize, gsize align, gsize offset, gsize size)
+_default_mem_new_block (GstMemoryFlags flags, gsize maxsize, gsize align,
+    gsize offset, gsize size)
 {
   GstMemoryDefault *mem;
-  gsize aoffset, slice_size;
+  gsize aoffset, slice_size, padding;
   guint8 *data;
 
   /* ensure configured alignment */
@@ -158,69 +191,58 @@
 
   data = (guint8 *) mem + sizeof (GstMemoryDefault);
 
-  if ((aoffset = ((guintptr) data & align)))
+  /* do alignment */
+  if ((aoffset = ((guintptr) data & align))) {
     aoffset = (align + 1) - aoffset;
+    data += aoffset;
+    maxsize -= aoffset;
+  }
 
-  _default_mem_init (mem, 0, NULL, slice_size, data, NULL, maxsize,
-      aoffset + offset, size);
+  if (offset && (flags & GST_MEMORY_FLAG_ZERO_PREFIXED))
+    memset (data, 0, offset);
+
+  padding = maxsize - (offset + size);
+  if (padding && (flags & GST_MEMORY_FLAG_ZERO_PADDED))
+    memset (data + offset + size, 0, padding);
+
+  _default_mem_init (mem, flags, NULL, slice_size, data, maxsize,
+      offset, size, align, NULL, NULL);
 
   return mem;
 }
 
 static GstMemory *
-_default_mem_alloc (const GstAllocator * allocator, gsize maxsize, gsize align)
+_default_alloc_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params, gpointer user_data)
 {
-  return (GstMemory *) _default_mem_new_block (maxsize, align, 0, maxsize);
-}
+  gsize maxsize = size + params->prefix + params->padding;
 
-static gsize
-_default_mem_get_sizes (GstMemoryDefault * mem, gsize * offset, gsize * maxsize)
-{
-  if (offset)
-    *offset = mem->offset;
-  if (maxsize)
-    *maxsize = mem->maxsize;
-
-  return mem->size;
-}
-
-static void
-_default_mem_resize (GstMemoryDefault * mem, gssize offset, gsize size)
-{
-  g_return_if_fail (size + mem->offset + offset <= mem->maxsize);
-
-  mem->offset += offset;
-  mem->size = size;
+  return (GstMemory *) _default_mem_new_block (params->flags,
+      maxsize, params->align, params->prefix, size);
 }
 
 static gpointer
-_default_mem_map (GstMemoryDefault * mem, gsize * size, gsize * maxsize,
-    GstMapFlags flags)
+_default_mem_map (GstMemoryDefault * mem, GstMapFlags flags)
 {
-  if (size)
-    *size = mem->size;
-  if (maxsize)
-    *maxsize = mem->maxsize;
-
-  return mem->data + mem->offset;
+  return mem->data;
 }
 
 static gboolean
-_default_mem_unmap (GstMemoryDefault * mem, gpointer data, gsize size)
+_default_mem_unmap (GstMemoryDefault * mem)
 {
-  if (size != -1)
-    mem->size = size;
   return TRUE;
 }
 
 static void
 _default_mem_free (GstMemoryDefault * mem)
 {
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "free memory %p", mem);
+
   if (mem->mem.parent)
     gst_memory_unref (mem->mem.parent);
 
-  if (mem->free_func)
-    mem->free_func (mem->data);
+  if (mem->notify)
+    mem->notify (mem->user_data);
 
   g_slice_free1 (mem->slice_size, mem);
 }
@@ -231,10 +253,13 @@
   GstMemoryDefault *copy;
 
   if (size == -1)
-    size = mem->size > offset ? mem->size - offset : 0;
+    size = mem->mem.size > offset ? mem->mem.size - offset : 0;
 
-  copy = _default_mem_new_block (mem->maxsize, 0, mem->offset + offset, size);
-  memcpy (copy->data, mem->data, mem->maxsize);
+  copy =
+      _default_mem_new_block (0, mem->mem.maxsize, 0, mem->mem.offset + offset,
+      size);
+  memcpy (copy->data, mem->data, mem->mem.maxsize);
+  GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy memory %p -> %p", mem, copy);
 
   return copy;
 }
@@ -250,10 +275,12 @@
     parent = (GstMemory *) mem;
 
   if (size == -1)
-    size = mem->size - offset;
+    size = mem->mem.size - offset;
 
-  sub = _default_mem_new (parent->flags, parent, mem->data, NULL, mem->maxsize,
-      mem->offset + offset, size);
+  sub =
+      _default_mem_new (parent->flags, parent, mem->data,
+      mem->mem.maxsize, mem->mem.offset + offset, size, mem->mem.align, NULL,
+      NULL);
 
   return sub;
 }
@@ -268,59 +295,78 @@
 
     parent = (GstMemoryDefault *) mem1->mem.parent;
 
-    *offset = mem1->offset - parent->offset;
+    *offset = mem1->mem.offset - parent->mem.offset;
   }
 
   /* and memory is contiguous */
-  return mem1->data + mem1->offset + mem1->size == mem2->data + mem2->offset;
+  return mem1->data + mem1->mem.offset + mem1->mem.size ==
+      mem2->data + mem2->mem.offset;
 }
 
 static GstMemory *
-_fallback_copy (GstMemory * mem, gssize offset, gsize size)
+_fallback_mem_copy (GstMemory * mem, gssize offset, gssize size)
 {
   GstMemory *copy;
-  guint8 *data, *dest;
-  gsize msize;
+  GstMapInfo sinfo, dinfo;
+  GstAllocationParams params = { 0, 0, 0, mem->align, };
 
-  data = gst_memory_map (mem, &msize, NULL, GST_MAP_READ);
+  if (!gst_memory_map (mem, &sinfo, GST_MAP_READ))
+    return NULL;
+
   if (size == -1)
-    size = msize > offset ? msize - offset : 0;
-  /* use the same allocator as the memory we copy, FIXME, alignment?  */
-  copy = gst_allocator_alloc (mem->allocator, size, 0);
-  dest = gst_memory_map (copy, NULL, NULL, GST_MAP_WRITE);
-  memcpy (dest, data + offset, size);
-  gst_memory_unmap (copy, dest, size);
+    size = sinfo.size > offset ? sinfo.size - offset : 0;
 
-  gst_memory_unmap (mem, data, msize);
+  /* use the same allocator as the memory we copy  */
+  copy = gst_allocator_alloc (mem->allocator, size, &params);
+  if (!gst_memory_map (copy, &dinfo, GST_MAP_WRITE)) {
+    GST_CAT_WARNING (GST_CAT_MEMORY, "could not write map memory %p", copy);
+    gst_memory_unmap (mem, &sinfo);
+    return NULL;
+  }
 
-  return (GstMemory *) copy;
+  memcpy (dinfo.data, sinfo.data + offset, size);
+  GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy memory %p -> %p", mem, copy);
+  gst_memory_unmap (copy, &dinfo);
+  gst_memory_unmap (mem, &sinfo);
+
+  return copy;
 }
 
 static gboolean
-_fallback_is_span (GstMemory * mem1, GstMemory * mem2, gsize * offset)
+_fallback_mem_is_span (GstMemory * mem1, GstMemory * mem2, gsize * offset)
 {
   return FALSE;
 }
 
-static GStaticRWLock lock = G_STATIC_RW_LOCK_INIT;
+static GRWLock lock;
 static GHashTable *allocators;
 
+static void
+_priv_sysmem_notify (gpointer user_data)
+{
+  g_warning ("The default memory allocator was freed!");
+}
+
 void
 _priv_gst_memory_initialize (void)
 {
   static const GstMemoryInfo _mem_info = {
-    (GstMemoryAllocFunction) _default_mem_alloc,
-    (GstMemoryGetSizesFunction) _default_mem_get_sizes,
-    (GstMemoryResizeFunction) _default_mem_resize,
+    GST_ALLOCATOR_SYSMEM,
+    (GstAllocatorAllocFunction) _default_alloc_alloc,
     (GstMemoryMapFunction) _default_mem_map,
     (GstMemoryUnmapFunction) _default_mem_unmap,
     (GstMemoryFreeFunction) _default_mem_free,
     (GstMemoryCopyFunction) _default_mem_copy,
     (GstMemoryShareFunction) _default_mem_share,
     (GstMemoryIsSpanFunction) _default_mem_is_span,
-    NULL
   };
 
+#ifndef GST_DISABLE_TRACE
+  _gst_memory_trace = _gst_alloc_trace_register ("GstMemory", -1);
+  _gst_allocator_trace = _gst_alloc_trace_register ("GstAllocator", -1);
+#endif
+
+  g_rw_lock_init (&lock);
   allocators = g_hash_table_new (g_str_hash, g_str_equal);
 
 #ifdef HAVE_GETPAGESIZE
@@ -329,36 +375,50 @@
 #endif
 #endif
 
-  GST_DEBUG ("memory alignment: %" G_GSIZE_FORMAT, gst_memory_alignment);
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "memory alignment: %" G_GSIZE_FORMAT,
+      gst_memory_alignment);
 
-  _default_mem_impl = gst_allocator_register (GST_ALLOCATOR_SYSMEM, &_mem_info);
+  _default_mem_impl = gst_allocator_new (&_mem_info, NULL, _priv_sysmem_notify);
 
-  _default_allocator = _default_mem_impl;
+  _default_allocator = gst_allocator_ref (_default_mem_impl);
+  gst_allocator_register (GST_ALLOCATOR_SYSMEM,
+      gst_allocator_ref (_default_mem_impl));
 }
 
 /**
  * gst_memory_new_wrapped:
  * @flags: #GstMemoryFlags
  * @data: data to wrap
- * @free_func: function to free @data
  * @maxsize: allocated size of @data
  * @offset: offset in @data
  * @size: size of valid data
+ * @user_data: user_data
+ * @notify: called with @user_data when the memory is freed
  *
  * Allocate a new memory block that wraps the given @data.
  *
+ * The prefix/padding must be filled with 0 if @flags contains
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
+ *
  * Returns: a new #GstMemory.
  */
 GstMemory *
 gst_memory_new_wrapped (GstMemoryFlags flags, gpointer data,
-    GFreeFunc free_func, gsize maxsize, gsize offset, gsize size)
+    gsize maxsize, gsize offset, gsize size, gpointer user_data,
+    GDestroyNotify notify)
 {
   GstMemoryDefault *mem;
 
   g_return_val_if_fail (data != NULL, NULL);
   g_return_val_if_fail (offset + size <= maxsize, NULL);
 
-  mem = _default_mem_new (flags, NULL, data, free_func, maxsize, offset, size);
+  mem =
+      _default_mem_new (flags, NULL, data, maxsize, offset, size, 0, user_data,
+      notify);
+
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_memory_trace, mem);
+#endif
 
   return (GstMemory *) mem;
 }
@@ -376,6 +436,9 @@
 {
   g_return_val_if_fail (mem != NULL, NULL);
 
+  GST_CAT_TRACE (GST_CAT_MEMORY, "memory %p, %d->%d", mem, mem->refcount,
+      mem->refcount + 1);
+
   g_atomic_int_inc (&mem->refcount);
 
   return mem;
@@ -394,8 +457,32 @@
   g_return_if_fail (mem != NULL);
   g_return_if_fail (mem->allocator != NULL);
 
-  if (g_atomic_int_dec_and_test (&mem->refcount))
-    mem->allocator->info.free (mem);
+  GST_CAT_TRACE (GST_CAT_MEMORY, "memory %p, %d->%d", mem, mem->refcount,
+      mem->refcount - 1);
+
+  if (g_atomic_int_dec_and_test (&mem->refcount)) {
+    /* there should be no outstanding mappings */
+    g_return_if_fail (g_atomic_int_get (&mem->state) < 4);
+#ifndef GST_DISABLE_TRACE
+    _gst_alloc_trace_free (_gst_memory_trace, mem);
+#endif
+    mem->allocator->info.mem_free (mem);
+  }
+}
+
+/**
+ * gst_memory_is_exclusive:
+ * @mem: a #GstMemory
+ *
+ * Check if the current ref to @mem is exclusive, this means that no other
+ * references exist other than @mem.
+ */
+gboolean
+gst_memory_is_exclusive (GstMemory * mem)
+{
+  g_return_val_if_fail (mem != NULL, FALSE);
+
+  return (g_atomic_int_get (&mem->refcount) == 1);
 }
 
 /**
@@ -413,7 +500,12 @@
 {
   g_return_val_if_fail (mem != NULL, 0);
 
-  return mem->allocator->info.get_sizes (mem, offset, maxsize);
+  if (offset)
+    *offset = mem->offset;
+  if (maxsize)
+    *maxsize = mem->maxsize;
+
+  return mem->size;
 }
 
 /**
@@ -424,66 +516,209 @@
  *
  * Resize the memory region. @mem should be writable and offset + size should be
  * less than the maxsize of @mem.
+ *
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED will be
+ * cleared when offset or padding is increased respectively.
  */
 void
 gst_memory_resize (GstMemory * mem, gssize offset, gsize size)
 {
   g_return_if_fail (mem != NULL);
-  g_return_if_fail (GST_MEMORY_IS_WRITABLE (mem));
+  g_return_if_fail (offset >= 0 || mem->offset >= -offset);
+  g_return_if_fail (size + mem->offset + offset <= mem->maxsize);
 
-  mem->allocator->info.resize (mem, offset, size);
+  /* if we increase the prefix, we can't guarantee it is still 0 filled */
+  if ((offset > 0) && GST_MEMORY_IS_ZERO_PREFIXED (mem))
+    GST_MEMORY_FLAG_UNSET (mem, GST_MEMORY_FLAG_ZERO_PREFIXED);
+
+  /* if we increase the padding, we can't guarantee it is still 0 filled */
+  if ((offset + size < mem->size) && GST_MEMORY_IS_ZERO_PADDED (mem))
+    GST_MEMORY_FLAG_UNSET (mem, GST_MEMORY_FLAG_ZERO_PADDED);
+
+  mem->offset += offset;
+  mem->size = size;
+}
+
+static gboolean
+gst_memory_lock (GstMemory * mem, GstMapFlags flags)
+{
+  gint access_mode, state, newstate;
+
+  access_mode = flags & 3;
+
+  do {
+    state = g_atomic_int_get (&mem->state);
+    if (state == 0) {
+      /* nothing mapped, set access_mode and refcount */
+      newstate = 4 | access_mode;
+    } else {
+      /* access_mode must match */
+      if ((state & access_mode) != access_mode)
+        goto lock_failed;
+      /* increase refcount */
+      newstate = state + 4;
+    }
+  } while (!g_atomic_int_compare_and_exchange (&mem->state, state, newstate));
+
+  return TRUE;
+
+lock_failed:
+  {
+    GST_CAT_DEBUG (GST_CAT_MEMORY, "lock failed %p: state %d, access_mode %d",
+        mem, state, access_mode);
+    return FALSE;
+  }
+}
+
+static void
+gst_memory_unlock (GstMemory * mem)
+{
+  gint state, newstate;
+
+  do {
+    state = g_atomic_int_get (&mem->state);
+    /* decrease the refcount */
+    newstate = state - 4;
+    /* last refcount, unset access_mode */
+    if (newstate < 4)
+      newstate = 0;
+  } while (!g_atomic_int_compare_and_exchange (&mem->state, state, newstate));
+}
+
+
+/**
+ * gst_memory_make_mapped:
+ * @mem: (transfer full): a #GstMemory
+ * @info: (out): pointer for info
+ * @flags: mapping flags
+ *
+ * Create a #GstMemory object that is mapped with @flags. If @mem is mappable
+ * with @flags, this function returns the mapped @mem directly. Otherwise a
+ * mapped copy of @mem is returned.
+ *
+ * This function takes ownership of old @mem and returns a reference to a new
+ * #GstMemory.
+ *
+ * Returns: (transfer full): a #GstMemory object mapped with @flags or NULL when
+ * a mapping is not possible.
+ */
+GstMemory *
+gst_memory_make_mapped (GstMemory * mem, GstMapInfo * info, GstMapFlags flags)
+{
+  GstMemory *result;
+
+  if (gst_memory_map (mem, info, flags)) {
+    result = mem;
+  } else {
+    result = gst_memory_copy (mem, 0, -1);
+    gst_memory_unref (mem);
+
+    if (result == NULL)
+      goto cannot_copy;
+
+    if (!gst_memory_map (result, info, flags))
+      goto cannot_map;
+  }
+  return result;
+
+  /* ERRORS */
+cannot_copy:
+  {
+    GST_CAT_DEBUG (GST_CAT_MEMORY, "cannot copy memory %p", mem);
+    return NULL;
+  }
+cannot_map:
+  {
+    GST_CAT_DEBUG (GST_CAT_MEMORY, "cannot map memory %p with flags %d", mem,
+        flags);
+    gst_memory_unref (result);
+    return NULL;
+  }
 }
 
 /**
  * gst_memory_map:
  * @mem: a #GstMemory
- * @size: pointer for size
- * @maxsize: pointer for maxsize
+ * @info: (out): pointer for info
  * @flags: mapping flags
  *
- * Get a pointer to the memory of @mem that can be accessed according to @flags.
+ * Fill @info with the pointer and sizes of the memory in @mem that can be
+ * accessed according to @flags.
  *
- * @size and @maxsize will contain the size of the memory and the maximum
- * allocated memory of @mem respectively. They can be set to NULL.
+ * This function can return %FALSE for various reasons:
+ * - the memory backed by @mem is not accessible with the given @flags.
+ * - the memory was already mapped with a different mapping.
  *
- * Returns: a pointer to the memory of @mem.
+ * @info and its contents remain valid for as long as @mem is valid and
+ * until gst_memory_unmap() is called.
+ *
+ * For each gst_memory_map() call, a corresponding gst_memory_unmap() call
+ * should be done.
+ *
+ * Returns: %TRUE if the map operation was successful.
  */
-gpointer
-gst_memory_map (GstMemory * mem, gsize * size, gsize * maxsize,
-    GstMapFlags flags)
+gboolean
+gst_memory_map (GstMemory * mem, GstMapInfo * info, GstMapFlags flags)
 {
-  g_return_val_if_fail (mem != NULL, NULL);
-  g_return_val_if_fail (!(flags & GST_MAP_WRITE) ||
-      GST_MEMORY_IS_WRITABLE (mem), NULL);
+  g_return_val_if_fail (mem != NULL, FALSE);
+  g_return_val_if_fail (info != NULL, FALSE);
 
-  return mem->allocator->info.map (mem, size, maxsize, flags);
+  if (!gst_memory_lock (mem, flags))
+    goto lock_failed;
+
+  info->data = mem->allocator->info.mem_map (mem, mem->maxsize, flags);
+
+  if (G_UNLIKELY (info->data == NULL))
+    goto error;
+
+  info->memory = mem;
+  info->flags = flags;
+  info->size = mem->size;
+  info->maxsize = mem->maxsize - mem->offset;
+  info->data = info->data + mem->offset;
+
+  return TRUE;
+
+  /* ERRORS */
+lock_failed:
+  {
+    GST_CAT_DEBUG (GST_CAT_MEMORY, "mem %p: lock %d failed", mem, flags);
+    return FALSE;
+  }
+error:
+  {
+    /* something went wrong, restore the orginal state again */
+    GST_CAT_ERROR (GST_CAT_MEMORY, "mem %p: map failed", mem);
+    gst_memory_unlock (mem);
+    return FALSE;
+  }
 }
 
 /**
  * gst_memory_unmap:
  * @mem: a #GstMemory
- * @data: data to unmap
- * @size: new size of @mem
+ * @info: a #GstMapInfo
  *
- * Release the memory pointer obtained with gst_memory_map() and set the size of
- * the memory to @size. @size can be set to -1 when the size should not be
- * updated.
- *
- * Returns: TRUE when the memory was release successfully.
+ * Release the memory obtained with gst_memory_map()
  */
-gboolean
-gst_memory_unmap (GstMemory * mem, gpointer data, gsize size)
+void
+gst_memory_unmap (GstMemory * mem, GstMapInfo * info)
 {
-  g_return_val_if_fail (mem != NULL, FALSE);
+  g_return_if_fail (mem != NULL);
+  g_return_if_fail (info != NULL);
+  g_return_if_fail (info->memory == mem);
+  /* there must be a ref */
+  g_return_if_fail (g_atomic_int_get (&mem->state) >= 4);
 
-  return mem->allocator->info.unmap (mem, data, size);
+  mem->allocator->info.mem_unmap (mem);
+  gst_memory_unlock (mem);
 }
 
 /**
  * gst_memory_copy:
  * @mem: a #GstMemory
  * @offset: an offset to copy
- * @size: size to copy
+ * @size: size to copy or -1 to copy all bytes from offset
  *
  * Return a copy of @size bytes from @mem starting from @offset. This copy is
  * guaranteed to be writable. @size can be set to -1 to return a copy all bytes
@@ -492,32 +727,50 @@
  * Returns: a new #GstMemory.
  */
 GstMemory *
-gst_memory_copy (GstMemory * mem, gssize offset, gsize size)
+gst_memory_copy (GstMemory * mem, gssize offset, gssize size)
 {
+  GstMemory *copy;
+
   g_return_val_if_fail (mem != NULL, NULL);
 
-  return mem->allocator->info.copy (mem, offset, size);
+  copy = mem->allocator->info.mem_copy (mem, offset, size);
+
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_memory_trace, copy);
+#endif
+
+  return copy;
 }
 
 /**
  * gst_memory_share:
  * @mem: a #GstMemory
  * @offset: an offset to share
- * @size: size to share
+ * @size: size to share or -1 to share bytes from offset
  *
- * Return a shared copy of @size bytes from @mem starting from @offset. No memory
- * copy is performed and the memory region is simply shared. The result is
- * guaranteed to be not-writable. @size can be set to -1 to return a share all bytes
- * from @offset.
+ * Return a shared copy of @size bytes from @mem starting from @offset. No
+ * memory copy is performed and the memory region is simply shared. The result
+ * is guaranteed to be not-writable. @size can be set to -1 to return a share
+ * all bytes from @offset.
  *
  * Returns: a new #GstMemory.
  */
 GstMemory *
-gst_memory_share (GstMemory * mem, gssize offset, gsize size)
+gst_memory_share (GstMemory * mem, gssize offset, gssize size)
 {
-  g_return_val_if_fail (mem != NULL, NULL);
+  GstMemory *shared;
 
-  return mem->allocator->info.share (mem, offset, size);
+  g_return_val_if_fail (mem != NULL, NULL);
+  g_return_val_if_fail (!GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_NO_SHARE),
+      NULL);
+
+  shared = mem->allocator->info.mem_share (mem, offset, size);
+
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_memory_trace, shared);
+#endif
+
+  return shared;
 }
 
 /**
@@ -550,128 +803,289 @@
     return FALSE;
 
   /* and memory is contiguous */
-  if (!mem1->allocator->info.is_span (mem1, mem2, offset))
+  if (!mem1->allocator->info.mem_is_span (mem1, mem2, offset))
     return FALSE;
 
   return TRUE;
 }
 
 /**
- * gst_allocator_register:
- * @name: the name of the allocator
- * @info: #GstMemoryInfo
+ * gst_allocator_new:
+ * @info: a #GstMemoryInfo
+ * @user_data: user data
+ * @notify: a #GDestroyNotify for @user_data
  *
- * Registers the memory allocator with @name and implementation functions
- * @info.
+ * Create a new memory allocator with @info and @user_data.
  *
  * All functions in @info are mandatory exept the copy and is_span
  * functions, which will have a default implementation when left NULL.
  *
- * The user_data field in @info will be passed to all calls of the alloc
- * function.
+ * The @user_data will be passed to all calls of the alloc function. @notify
+ * will be called with @user_data when the allocator is freed.
  *
  * Returns: a new #GstAllocator.
  */
-const GstAllocator *
-gst_allocator_register (const gchar * name, const GstMemoryInfo * info)
+GstAllocator *
+gst_allocator_new (const GstMemoryInfo * info, gpointer user_data,
+    GDestroyNotify notify)
 {
   GstAllocator *allocator;
 
 #define INSTALL_FALLBACK(_t) \
   if (allocator->info._t == NULL) allocator->info._t = _fallback_ ##_t;
 
-  g_return_val_if_fail (name != NULL, NULL);
   g_return_val_if_fail (info != NULL, NULL);
   g_return_val_if_fail (info->alloc != NULL, NULL);
-  g_return_val_if_fail (info->get_sizes != NULL, NULL);
-  g_return_val_if_fail (info->resize != NULL, NULL);
-  g_return_val_if_fail (info->map != NULL, NULL);
-  g_return_val_if_fail (info->unmap != NULL, NULL);
-  g_return_val_if_fail (info->free != NULL, NULL);
-  g_return_val_if_fail (info->share != NULL, NULL);
+  g_return_val_if_fail (info->mem_map != NULL, NULL);
+  g_return_val_if_fail (info->mem_unmap != NULL, NULL);
+  g_return_val_if_fail (info->mem_free != NULL, NULL);
+  g_return_val_if_fail (info->mem_share != NULL, NULL);
 
   allocator = g_slice_new (GstAllocator);
-  allocator->name = g_quark_from_string (name);
+  allocator->refcount = 1;
   allocator->info = *info;
-  INSTALL_FALLBACK (copy);
-  INSTALL_FALLBACK (is_span);
+  allocator->user_data = user_data;
+  allocator->notify = notify;
+  INSTALL_FALLBACK (mem_copy);
+  INSTALL_FALLBACK (mem_is_span);
 #undef INSTALL_FALLBACK
 
-  GST_DEBUG ("registering allocator \"%s\"", name);
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "new allocator %p", allocator);
 
-  g_static_rw_lock_writer_lock (&lock);
-  g_hash_table_insert (allocators, (gpointer) name, (gpointer) allocator);
-  g_static_rw_lock_writer_unlock (&lock);
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_allocator_trace, allocator);
+#endif
 
   return allocator;
 }
 
 /**
+ * gst_allocator_get_memory_type:
+ * @allocator: a #GstAllocator
+ *
+ * Get the memory type allocated by this allocator
+ *
+ * Returns: the memory type provided by @allocator
+ */
+const gchar *
+gst_allocator_get_memory_type (GstAllocator * allocator)
+{
+  g_return_val_if_fail (allocator != NULL, NULL);
+
+  return allocator->info.mem_type;
+}
+
+/**
+ * gst_allocator_ref:
+ * @allocator: a #GstAllocator
+ *
+ * Increases the refcount of @allocator.
+ *
+ * Returns: @allocator with increased refcount
+ */
+GstAllocator *
+gst_allocator_ref (GstAllocator * allocator)
+{
+  g_return_val_if_fail (allocator != NULL, NULL);
+
+  GST_CAT_TRACE (GST_CAT_MEMORY, "allocator %p, %d->%d", allocator,
+      allocator->refcount, allocator->refcount + 1);
+
+  g_atomic_int_inc (&allocator->refcount);
+
+  return allocator;
+}
+
+/**
+ * gst_allocator_unref:
+ * @allocator: a #GstAllocator
+ *
+ * Decreases the refcount of @allocator. When the refcount reaches 0, the notify
+ * function of @allocator will be called and the allocator will be freed.
+ */
+void
+gst_allocator_unref (GstAllocator * allocator)
+{
+  g_return_if_fail (allocator != NULL);
+
+  GST_CAT_TRACE (GST_CAT_MEMORY, "allocator %p, %d->%d", allocator,
+      allocator->refcount, allocator->refcount - 1);
+
+  if (g_atomic_int_dec_and_test (&allocator->refcount)) {
+    if (allocator->notify)
+      allocator->notify (allocator->user_data);
+#ifndef GST_DISABLE_TRACE
+    _gst_alloc_trace_free (_gst_allocator_trace, allocator);
+#endif
+    g_slice_free1 (sizeof (GstAllocator), allocator);
+  }
+}
+
+/**
+ * gst_allocator_register:
+ * @name: the name of the allocator
+ * @allocator: (transfer full): #GstAllocator
+ *
+ * Registers the memory @allocator with @name. This function takes ownership of
+ * @allocator.
+ */
+void
+gst_allocator_register (const gchar * name, GstAllocator * allocator)
+{
+  g_return_if_fail (name != NULL);
+  g_return_if_fail (allocator != NULL);
+
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "registering allocator %p with name \"%s\"",
+      allocator, name);
+
+  g_rw_lock_writer_lock (&lock);
+  g_hash_table_insert (allocators, (gpointer) name, (gpointer) allocator);
+  g_rw_lock_writer_unlock (&lock);
+}
+
+/**
  * gst_allocator_find:
  * @name: the name of the allocator
  *
  * Find a previously registered allocator with @name. When @name is NULL, the
  * default allocator will be returned.
  *
- * Returns: a #GstAllocator or NULL when the allocator with @name was not
- * registered.
+ * Returns: (transfer full): a #GstAllocator or NULL when the allocator with @name was not
+ * registered. Use gst_allocator_unref() to release the allocator after usage.
  */
-const GstAllocator *
+GstAllocator *
 gst_allocator_find (const gchar * name)
 {
-  const GstAllocator *allocator;
+  GstAllocator *allocator;
 
-  g_static_rw_lock_reader_lock (&lock);
+  g_rw_lock_reader_lock (&lock);
   if (name) {
     allocator = g_hash_table_lookup (allocators, (gconstpointer) name);
   } else {
     allocator = _default_allocator;
   }
-  g_static_rw_lock_reader_unlock (&lock);
+  if (allocator)
+    gst_allocator_ref (allocator);
+  g_rw_lock_reader_unlock (&lock);
 
   return allocator;
 }
 
 /**
  * gst_allocator_set_default:
- * @allocator: a #GstAllocator
+ * @allocator: (transfer full): a #GstAllocator
  *
- * Set the default allocator.
+ * Set the default allocator. This function takes ownership of @allocator.
  */
 void
-gst_allocator_set_default (const GstAllocator * allocator)
+gst_allocator_set_default (GstAllocator * allocator)
 {
+  GstAllocator *old;
   g_return_if_fail (allocator != NULL);
 
-  g_static_rw_lock_writer_lock (&lock);
+  g_rw_lock_writer_lock (&lock);
+  old = _default_allocator;
   _default_allocator = allocator;
-  g_static_rw_lock_writer_unlock (&lock);
+  g_rw_lock_writer_unlock (&lock);
+
+  if (old)
+    gst_allocator_unref (old);
+}
+
+/**
+ * gst_allocation_params_init:
+ * @params: a #GstAllocationParams
+ *
+ * Initialize @params to its default values
+ */
+void
+gst_allocation_params_init (GstAllocationParams * params)
+{
+  g_return_if_fail (params != NULL);
+
+  memset (params, 0, sizeof (GstAllocationParams));
+}
+
+/**
+ * gst_allocation_params_copy:
+ * @params: (transfer none): a #GstAllocationParams
+ *
+ * Create a copy of @params.
+ *
+ * Free-function: gst_allocation_params_free
+ *
+ * Returns: (transfer full): a new ##GstAllocationParams, free with
+ * gst_allocation_params_free().
+ */
+GstAllocationParams *
+gst_allocation_params_copy (const GstAllocationParams * params)
+{
+  GstAllocationParams *result = NULL;
+
+  if (params) {
+    result =
+        (GstAllocationParams *) g_slice_copy (sizeof (GstAllocationParams),
+        params);
+  }
+  return result;
+}
+
+/**
+ * gst_allocation_params_free:
+ * @params: (in) (transfer full): a #GstAllocationParams
+ *
+ * Free @params
+ */
+void
+gst_allocation_params_free (GstAllocationParams * params)
+{
+  g_slice_free (GstAllocationParams, params);
 }
 
 /**
  * gst_allocator_alloc:
- * @allocator: a #GstAllocator to use
- * @maxsize: allocated size of @data
- * @align: alignment for the data
+ * @allocator: (transfer none) (allow-none): a #GstAllocator to use
+ * @size: size of the visible memory area
+ * @params: (transfer none) (allow-none): optional parameters
  *
  * Use @allocator to allocate a new memory block with memory that is at least
- * @maxsize big and has the given alignment.
+ * @size big.
+ *
+ * The optional @params can specify the prefix and padding for the memory. If
+ * NULL is passed, no flags, no extra prefix/padding and a default alignment is
+ * used.
+ *
+ * The prefix/padding will be filled with 0 if flags contains
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
  *
  * When @allocator is NULL, the default allocator will be used.
  *
- * @align is given as a bitmask so that @align + 1 equals the amount of bytes to
- * align to. For example, to align to 8 bytes, use an alignment of 7.
+ * The alignment in @params is given as a bitmask so that @align + 1 equals
+ * the amount of bytes to align to. For example, to align to 8 bytes,
+ * use an alignment of 7.
  *
- * Returns: a new #GstMemory.
+ * Returns: (transfer full): a new #GstMemory.
  */
 GstMemory *
-gst_allocator_alloc (const GstAllocator * allocator, gsize maxsize, gsize align)
+gst_allocator_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
 {
-  g_return_val_if_fail (((align + 1) & align) == 0, NULL);
+  GstMemory *mem;
+  static GstAllocationParams defparams = { 0, 0, 0, 0, };
+
+  if (params) {
+    g_return_val_if_fail (((params->align + 1) & params->align) == 0, NULL);
+  } else {
+    params = &defparams;
+  }
 
   if (allocator == NULL)
     allocator = _default_allocator;
 
-  return allocator->info.alloc (allocator, maxsize, align,
-      allocator->info.user_data);
+  mem = allocator->info.alloc (allocator, size, params, allocator->user_data);
+
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_memory_trace, mem);
+#endif
+  return mem;
 }
diff --git a/gst/gstmemory.h b/gst/gstmemory.h
index c1f8e67..c69ee59 100644
--- a/gst/gstmemory.h
+++ b/gst/gstmemory.h
@@ -29,11 +29,29 @@
 
 G_BEGIN_DECLS
 
+#define GST_TYPE_MEMORY (gst_memory_get_type())
+GType gst_memory_get_type(void);
+
+#define GST_TYPE_ALLOCATOR (gst_allocator_get_type())
+GType gst_allocator_get_type(void);
+
+#define GST_TYPE_ALLOCATION_PARAMS (gst_allocation_params_get_type())
+GType gst_allocation_params_get_type(void);
+
 typedef struct _GstMemory GstMemory;
 typedef struct _GstMemoryInfo GstMemoryInfo;
 typedef struct _GstAllocator GstAllocator;
+typedef struct _GstAllocationParams GstAllocationParams;
 
-extern gsize gst_memory_alignment;
+/**
+ * gst_memory_alignment:
+ *
+ * The default memory alignment in bytes - 1
+ * an alignment of 7 would be the same as what malloc() guarantees.
+ */
+GST_EXPORT gsize gst_memory_alignment;
+
+#define GST_MEMORY_CAST(mem)   ((GstMemory *)(mem))
 
 /**
  * GstMemoryFlags:
@@ -41,26 +59,67 @@
  * memory with #GST_MAP_WRITE.
  * @GST_MEMORY_FLAG_NO_SHARE: memory must not be shared. Copies will have to be
  * made when this memory needs to be shared between buffers.
+ * @GST_MEMORY_FLAG_ZERO_PREFIXED: the memory prefix is filled with 0 bytes
+ * @GST_MEMORY_FLAG_ZERO_PADDED: the memory padding is filled with 0 bytes
  * @GST_MEMORY_FLAG_LAST: first flag that can be used for custom purposes
  *
  * Flags for wrapped memory.
  */
 typedef enum {
-  GST_MEMORY_FLAG_READONLY = (1 << 0),
-  GST_MEMORY_FLAG_NO_SHARE = (1 << 1),
+  GST_MEMORY_FLAG_READONLY      = (1 << 0),
+  GST_MEMORY_FLAG_NO_SHARE      = (1 << 1),
+  GST_MEMORY_FLAG_ZERO_PREFIXED = (1 << 2),
+  GST_MEMORY_FLAG_ZERO_PADDED   = (1 << 3),
 
-  GST_MEMORY_FLAG_LAST = (1 << 24)
+  GST_MEMORY_FLAG_LAST          = (1 << 16)
 } GstMemoryFlags;
 
 /**
- * GST_MEMORY_IS_WRITABLE:
- * @mem: a #GstMemory
+ * GST_MEMORY_FLAGS:
+ * @mem: a #GstMemory.
  *
- * Check if @mem is writable.
+ * A flags word containing #GstMemoryFlags flags set on @mem
  */
-#define GST_MEMORY_IS_WRITABLE(mem) (((mem)->refcount == 1) && \
-    (((mem)->parent == NULL) || ((mem)->parent->refcount == 1)) && \
-    (((mem)->flags & GST_MEMORY_FLAG_READONLY) == 0))
+#define GST_MEMORY_FLAGS(mem)  (GST_MEMORY_CAST (mem)->flags)
+/**
+ * GST_MEMORY_FLAG_IS_SET:
+ * @mem: a #GstMemory.
+ * @flag: the #GstMemoryFlags to check.
+ *
+ * Gives the status of a specific flag on a @mem.
+ */
+#define GST_MEMORY_FLAG_IS_SET(mem,flag)   !!(GST_MEMORY_FLAGS (mem) & (flag))
+/**
+ * GST_MEMORY_FLAG_UNSET:
+ * @mem: a #GstMemory.
+ * @flag: the #GstMemoryFlags to clear.
+ *
+ * Clear a specific flag on a @mem.
+ */
+#define GST_MEMORY_FLAG_UNSET(mem,flag)   (GST_MEMORY_FLAGS (mem) &= ~(flag))
+
+/**
+ * GST_MEMORY_IS_READONLY:
+ * @mem: a #GstMemory.
+ *
+ * Check if @mem is readonly.
+ */
+#define GST_MEMORY_IS_READONLY(mem)        GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_READONLY)
+/**
+ * GST_MEMORY_IS_ZERO_PREFIXED:
+ * @mem: a #GstMemory.
+ *
+ * Check if the prefix in @mem is 0 filled.
+ */
+#define GST_MEMORY_IS_ZERO_PREFIXED(mem)   GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PREFIXED)
+/**
+ * GST_MEMORY_IS_ZERO_PADDED:
+ * @mem: a #GstMemory.
+ *
+ * Check if the padding in @mem is 0 filled.
+ */
+#define GST_MEMORY_IS_ZERO_PADDED(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PADDED)
+
 
 /**
  * GstMemory:
@@ -68,31 +127,74 @@
  * @flags: memory flags
  * @refcount: refcount
  * @parent: parent memory block
+ * @state: private state
+ * @maxsize: the maximum size allocated
+ * @align: the alignment of the memory
+ * @offset: the offset where valid data starts
+ * @size: the size of valid data
  *
  * Base structure for memory implementations. Custom memory will put this structure
  * as the first member of their structure.
  */
 struct _GstMemory {
-  const GstAllocator *allocator;
+  GstAllocator   *allocator;
 
   GstMemoryFlags  flags;
   gint            refcount;
   GstMemory      *parent;
+  volatile gint   state;
+  gsize           maxsize;
+  gsize           align;
+  gsize           offset;
+  gsize           size;
 };
 
 /**
  * GstMapFlags:
  * @GST_MAP_READ: map for read access
  * @GST_MAP_WRITE: map for write access
+ * @GST_MAP_FLAG_LAST: first flag that can be used for custom purposes
  *
  * Flags used when mapping memory
  */
 typedef enum {
-  GST_MAP_READ =  (1 << 0),
-  GST_MAP_WRITE = (1 << 1),
+  GST_MAP_READ      = (1 << 0),
+  GST_MAP_WRITE     = (1 << 1),
+
+  GST_MAP_FLAG_LAST = (1 << 16)
 } GstMapFlags;
 
 /**
+ * GstMapInfo:
+ * @memory: a pointer to the mapped memory
+ * @flags: flags used when mapping the memory
+ * @data: a pointer to the mapped data
+ * @size: the valid size in @data
+ * @maxsize: the maximum bytes in @data
+ * @user_data: extra private user_data that the implementation of the memory
+ *             can use to store extra info.
+ *
+ * A structure containing the result of a map operation such as
+ * gst_memory_map(). It contains the data and size.
+ */
+typedef struct {
+  GstMemory *memory;
+  GstMapFlags flags;
+  guint8 *data;
+  gsize size;
+  gsize maxsize;
+  /*< private >*/
+  gpointer user_data[4];
+} GstMapInfo;
+
+/**
+ * GST_MAP_INFO_INIT:
+ *
+ * Initializer for #GstMapInfo
+ */
+#define GST_MAP_INFO_INIT { NULL, 0, NULL, 0, 0, }
+
+/**
  * GST_MAP_READWRITE:
  *
  * Map for readwrite access
@@ -107,80 +209,70 @@
 #define GST_ALLOCATOR_SYSMEM   "SystemMemory"
 
 /**
- * GstMemoryAllocFunction:
+ * GstAllocationParams:
+ * @flags: flags to control allocation
+ * @align: the desired alignment of the memory
+ * @prefix: the disired prefix
+ * @padding: the desired padding
+ *
+ * Parameters to control the allocation of memory
+ */
+struct _GstAllocationParams {
+  GstMemoryFlags flags;
+  gsize          align;
+  gsize          prefix;
+  gsize          padding;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstAllocatorAllocFunction:
  * @allocator: a #GstAllocator
- * @maxsize: the maxsize
- * @align: the alignment
+ * @size: the size
+ * @params: allocator params
  * @user_data: user data
  *
- * Allocate a new #GstMemory from @allocator that can hold at least @maxsize bytes
- * and is aligned to (@align + 1) bytes.
+ * Allocate a new #GstMemory from @allocator that can hold at least @size
+ * bytes (+ padding) and is aligned to (@align + 1) bytes.
  *
- * @user_data is the data that was used when registering @allocator.
+ * The offset and size of the memory should be set and the prefix/padding must
+ * be filled with 0 if @params flags contains #GST_MEMORY_FLAG_ZERO_PREFIXED and
+ * #GST_MEMORY_FLAG_ZERO_PADDED respectively.
+ *
+ * @user_data is the data that was used when creating @allocator.
  *
  * Returns: a newly allocated #GstMemory. Free with gst_memory_unref()
  */
-typedef GstMemory *  (*GstMemoryAllocFunction)  (const GstAllocator *allocator,
-                                                 gsize maxsize, gsize align,
-                                                 gpointer user_data);
-
-/**
- * GstMemoryGetSizesFunction:
- * @mem: a #GstMemory
- * @offset: result pointer for offset
- * @maxsize: result pointer for maxsize
- *
- * Retrieve the size, offset and maxsize of @mem.
- *
- * Returns: the size of @mem, the offset and the maximum allocated size in @maxsize.
- */
-typedef gsize       (*GstMemoryGetSizesFunction)  (GstMemory *mem, gsize *offset, gsize *maxsize);
-
-/**
- * GstMemoryResizeFunction:
- * @mem: a #GstMemory
- * @offset: the offset adjustement
- * @size: the new size
- *
- * Adjust the size and offset of @mem. @offset bytes will be adjusted from the
- * current first byte in @mem as retrieved with gst_memory_map() and the new
- * size will be set to @size.
- *
- * @size can be set to -1, which will only adjust the offset.
- */
-typedef void        (*GstMemoryResizeFunction)    (GstMemory *mem, gssize offset, gsize size);
+typedef GstMemory *  (*GstAllocatorAllocFunction)  (GstAllocator *allocator,
+                                                    gsize size, GstAllocationParams *params,
+                                                    gpointer user_data);
 
 /**
  * GstMemoryMapFunction:
  * @mem: a #GstMemory
- * @size: pointer for the size
- * @maxsize: pointer for the maxsize
+ * @maxsize: size to map
  * @flags: access mode for the memory
  *
  * Get the memory of @mem that can be accessed according to the mode specified
- * in @flags. @size and @maxsize will respectively contain the current amount of
- * valid bytes in the returned memory and the maximum allocated memory.
- * @size and @maxsize can optionally be set to NULL.
+ * in @flags. The function should return a pointer that contains at least
+ * @maxsize bytes.
  *
- * Returns: a pointer to memory. @size bytes are currently used from the
- * returned pointer and @maxsize bytes can potentially be used.
+ * Returns: a pointer to memory of which at least @maxsize bytes can be
+ * accessed according to the access pattern in @flags.
  */
-typedef gpointer    (*GstMemoryMapFunction)       (GstMemory *mem, gsize *size, gsize *maxsize,
-                                                   GstMapFlags flags);
+typedef gpointer    (*GstMemoryMapFunction)       (GstMemory *mem, gsize maxsize, GstMapFlags flags);
 
 /**
  * GstMemoryUnmapFunction:
  * @mem: a #GstMemory
- * @data: the data pointer
- * @size: the new size
  *
- * Return the pointer previously retrieved with gst_memory_map() and adjust the
- * size of the memory with @size. @size can optionally be set to -1 to not
- * modify the size.
+ * Return the pointer previously retrieved with gst_memory_map().
  *
  * Returns: %TRUE on success.
  */
-typedef gboolean    (*GstMemoryUnmapFunction)     (GstMemory *mem, gpointer data, gsize size);
+typedef void        (*GstMemoryUnmapFunction)     (GstMemory *mem);
 
 /**
  * GstMemoryFreeFunction:
@@ -195,7 +287,7 @@
  * GstMemoryCopyFunction:
  * @mem: a #GstMemory
  * @offset: an offset
- * @size: a size
+ * @size: a size or -1
  *
  * Copy @size bytes from @mem starting at @offset and return them wrapped in a
  * new GstMemory object.
@@ -204,13 +296,13 @@
  * Returns: a new #GstMemory object wrapping a copy of the requested region in
  * @mem.
  */
-typedef GstMemory * (*GstMemoryCopyFunction)      (GstMemory *mem, gssize offset, gsize size);
+typedef GstMemory * (*GstMemoryCopyFunction)      (GstMemory *mem, gssize offset, gssize size);
 
 /**
  * GstMemoryShareFunction:
  * @mem: a #GstMemory
  * @offset: an offset
- * @size: a size
+ * @size: a size or -1
  *
  * Share @size bytes from @mem starting at @offset and return them wrapped in a
  * new GstMemory object. If @size is set to -1, all bytes starting at @offset are
@@ -218,7 +310,7 @@
  *
  * Returns: a new #GstMemory object sharing the requested region in @mem.
  */
-typedef GstMemory * (*GstMemoryShareFunction)     (GstMemory *mem, gssize offset, gsize size);
+typedef GstMemory * (*GstMemoryShareFunction)     (GstMemory *mem, gssize offset, gssize size);
 
 /**
  * GstMemoryIsSpanFunction:
@@ -235,67 +327,89 @@
 
 /**
  * GstMemoryInfo:
- * @alloc: the implementation of the GstMemoryAllocFunction
- * @get_sizes: the implementation of the GstMemoryGetSizesFunction
- * @resize: the implementation of the GstMemoryResizeFunction
- * @map: the implementation of the GstMemoryMapFunction
- * @unmap: the implementation of the GstMemoryUnmapFunction
- * @free: the implementation of the GstMemoryFreeFunction
- * @copy: the implementation of the GstMemoryCopyFunction
- * @share: the implementation of the GstMemoryShareFunction
- * @is_span: the implementation of the GstMemoryIsSpanFunction
- * @user_data: generic user data for the allocator
+ * @mem_type: the memory type this allocator provides
+ * @alloc: the implementation of the GstAllocatorAllocFunction
+ * @mem_map: the implementation of the GstMemoryMapFunction
+ * @mem_unmap: the implementation of the GstMemoryUnmapFunction
+ * @mem_free: the implementation of the GstMemoryFreeFunction
+ * @mem_copy: the implementation of the GstMemoryCopyFunction
+ * @mem_share: the implementation of the GstMemoryShareFunction
+ * @mem_is_span: the implementation of the GstMemoryIsSpanFunction
  *
  * The #GstMemoryInfo is used to register new memory allocators and contain
  * the implementations for various memory operations.
  */
 struct _GstMemoryInfo {
-  GstMemoryAllocFunction    alloc;
-  GstMemoryGetSizesFunction get_sizes;
-  GstMemoryResizeFunction   resize;
-  GstMemoryMapFunction      map;
-  GstMemoryUnmapFunction    unmap;
-  GstMemoryFreeFunction     free;
+  const gchar              *mem_type;
 
-  GstMemoryCopyFunction     copy;
-  GstMemoryShareFunction    share;
-  GstMemoryIsSpanFunction   is_span;
+  GstAllocatorAllocFunction alloc;
 
-  gpointer user_data;
+  GstMemoryMapFunction      mem_map;
+  GstMemoryUnmapFunction    mem_unmap;
+  GstMemoryFreeFunction     mem_free;
+
+  GstMemoryCopyFunction     mem_copy;
+  GstMemoryShareFunction    mem_share;
+  GstMemoryIsSpanFunction   mem_is_span;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
 };
 
-/* allocators */
-const GstAllocator *  gst_allocator_register    (const gchar *name, const GstMemoryInfo *info);
-const GstAllocator *  gst_allocator_find        (const gchar *name);
+/**
+ * GstAllocator:
+ *
+ * An opaque type returned from gst_allocator_new() or gst_allocator_find()
+ * that can be used to allocator memory.
+ */
 
-void                  gst_allocator_set_default (const GstAllocator * allocator);
+/* allocators */
+GstAllocator * gst_allocator_new             (const GstMemoryInfo * info,
+                                              gpointer user_data, GDestroyNotify notify);
+const gchar *  gst_allocator_get_memory_type (GstAllocator * allocator);
+
+GstAllocator * gst_allocator_ref             (GstAllocator * allocator);
+void           gst_allocator_unref           (GstAllocator * allocator);
+
+void           gst_allocator_register        (const gchar *name, GstAllocator *allocator);
+GstAllocator * gst_allocator_find            (const gchar *name);
+
+void           gst_allocator_set_default     (GstAllocator * allocator);
 
 /* allocating memory blocks */
-GstMemory * gst_allocator_alloc        (const GstAllocator * allocator,
-                                        gsize maxsize, gsize align);
+void           gst_allocation_params_init     (GstAllocationParams *params);
+GstAllocationParams *
+               gst_allocation_params_copy     (const GstAllocationParams *params) G_GNUC_MALLOC;
+void           gst_allocation_params_free     (GstAllocationParams *params);
 
-GstMemory * gst_memory_new_wrapped     (GstMemoryFlags flags, gpointer data, GFreeFunc free_func,
-                                        gsize maxsize, gsize offset, gsize size);
+GstMemory *    gst_allocator_alloc           (GstAllocator * allocator, gsize size,
+                                              GstAllocationParams *params);
+
+GstMemory *    gst_memory_new_wrapped  (GstMemoryFlags flags, gpointer data, gsize maxsize,
+                                        gsize offset, gsize size, gpointer user_data,
+                                        GDestroyNotify notify);
 
 /* refcounting */
-GstMemory * gst_memory_ref        (GstMemory *mem);
-void        gst_memory_unref      (GstMemory *mem);
+GstMemory *    gst_memory_ref          (GstMemory *mem);
+void           gst_memory_unref        (GstMemory *mem);
+
+gboolean       gst_memory_is_exclusive (GstMemory *mem);
 
 /* getting/setting memory properties */
-gsize       gst_memory_get_sizes  (GstMemory *mem, gsize *offset, gsize *maxsize);
-void        gst_memory_resize     (GstMemory *mem, gssize offset, gsize size);
+gsize          gst_memory_get_sizes    (GstMemory *mem, gsize *offset, gsize *maxsize);
+void           gst_memory_resize       (GstMemory *mem, gssize offset, gsize size);
 
 /* retrieving data */
-gpointer    gst_memory_map        (GstMemory *mem, gsize *size, gsize *maxsize,
-                                   GstMapFlags flags);
-gboolean    gst_memory_unmap      (GstMemory *mem, gpointer data, gsize size);
+GstMemory *    gst_memory_make_mapped  (GstMemory *mem, GstMapInfo *info, GstMapFlags flags);
+gboolean       gst_memory_map          (GstMemory *mem, GstMapInfo *info, GstMapFlags flags);
+void           gst_memory_unmap        (GstMemory *mem, GstMapInfo *info);
 
 /* copy and subregions */
-GstMemory * gst_memory_copy       (GstMemory *mem, gssize offset, gsize size);
-GstMemory * gst_memory_share      (GstMemory *mem, gssize offset, gsize size);
+GstMemory *    gst_memory_copy         (GstMemory *mem, gssize offset, gssize size);
+GstMemory *    gst_memory_share        (GstMemory *mem, gssize offset, gssize size);
 
 /* span memory */
-gboolean    gst_memory_is_span    (GstMemory *mem1, GstMemory *mem2, gsize *offset);
+gboolean       gst_memory_is_span      (GstMemory *mem1, GstMemory *mem2, gsize *offset);
 
 G_END_DECLS
 
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 41e7ccc..6b8b2c0 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -32,7 +32,7 @@
  *
  * Messages are posted by objects in the pipeline and are passed to the
  * application using the #GstBus.
-
+ *
  * The basic use pattern of posting a message on a #GstBus is as follows:
  *
  * <example>
@@ -104,6 +104,7 @@
   {GST_MESSAGE_STEP_START, "step-start", 0},
   {GST_MESSAGE_QOS, "qos", 0},
   {GST_MESSAGE_PROGRESS, "progress", 0},
+  {GST_MESSAGE_TOC, "toc", 0},
   {0, NULL, 0}
 };
 
@@ -177,14 +178,15 @@
 
   g_return_if_fail (message != NULL);
 
-  GST_CAT_LOG (GST_CAT_MESSAGE, "finalize message %p", message);
+  GST_CAT_LOG (GST_CAT_MESSAGE, "finalize message %p, %s from %s", message,
+      GST_MESSAGE_TYPE_NAME (message), GST_MESSAGE_SRC_NAME (message));
 
   if (GST_MESSAGE_SRC (message)) {
     gst_object_unref (GST_MESSAGE_SRC (message));
     GST_MESSAGE_SRC (message) = NULL;
   }
 
-  if (message->lock) {
+  if (message->lock.p) {
     GST_MESSAGE_LOCK (message);
     GST_MESSAGE_SIGNAL (message);
     GST_MESSAGE_UNLOCK (message);
@@ -199,44 +201,61 @@
   g_slice_free1 (GST_MINI_OBJECT_SIZE (message), message);
 }
 
+static void
+gst_message_init (GstMessageImpl * message, gsize size, GstMessageType type,
+    GstObject * src);
+
 static GstMessage *
 _gst_message_copy (GstMessage * message)
 {
   GstMessageImpl *copy;
   GstStructure *structure;
 
-  GST_CAT_LOG (GST_CAT_MESSAGE, "copy message %p", message);
+  GST_CAT_LOG (GST_CAT_MESSAGE, "copy message %p, %s from %s", message,
+      GST_MESSAGE_TYPE_NAME (message),
+      GST_OBJECT_NAME (GST_MESSAGE_SRC (message)));
 
   copy = g_slice_new0 (GstMessageImpl);
 
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (copy),
-      _gst_message_type, sizeof (GstMessageImpl));
+  gst_message_init (copy, sizeof (GstMessageImpl), GST_MESSAGE_TYPE (message),
+      GST_MESSAGE_SRC (message));
 
-  copy->message.mini_object.copy =
-      (GstMiniObjectCopyFunction) _gst_message_copy;
-  copy->message.mini_object.free =
-      (GstMiniObjectFreeFunction) _gst_message_free;
-
-  GST_MESSAGE_TYPE (copy) = GST_MESSAGE_TYPE (message);
   GST_MESSAGE_TIMESTAMP (copy) = GST_MESSAGE_TIMESTAMP (message);
   GST_MESSAGE_SEQNUM (copy) = GST_MESSAGE_SEQNUM (message);
-  if (GST_MESSAGE_SRC (message)) {
-    GST_MESSAGE_SRC (copy) = gst_object_ref (GST_MESSAGE_SRC (message));
-  }
-
-  GST_MESSAGE_GET_LOCK (copy) = GST_MESSAGE_GET_LOCK (message);
-  GST_MESSAGE_COND (copy) = GST_MESSAGE_COND (message);
 
   structure = GST_MESSAGE_STRUCTURE (message);
   if (structure) {
-    copy->structure = gst_structure_copy (structure);
-    gst_structure_set_parent_refcount (copy->structure,
+    GST_MESSAGE_STRUCTURE (copy) = gst_structure_copy (structure);
+    gst_structure_set_parent_refcount (GST_MESSAGE_STRUCTURE (copy),
         &copy->message.mini_object.refcount);
+  } else {
+    GST_MESSAGE_STRUCTURE (copy) = NULL;
   }
 
   return GST_MESSAGE_CAST (copy);
 }
 
+static void
+gst_message_init (GstMessageImpl * message, gsize size, GstMessageType type,
+    GstObject * src)
+{
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (message), _gst_message_type,
+      size);
+
+  message->message.mini_object.copy =
+      (GstMiniObjectCopyFunction) _gst_message_copy;
+  message->message.mini_object.free =
+      (GstMiniObjectFreeFunction) _gst_message_free;
+
+  GST_MESSAGE_TYPE (message) = type;
+  if (src)
+    gst_object_ref (src);
+  GST_MESSAGE_SRC (message) = src;
+  GST_MESSAGE_TIMESTAMP (message) = GST_CLOCK_TIME_NONE;
+  GST_MESSAGE_SEQNUM (message) = gst_util_seqnum_next ();
+}
+
+
 /**
  * gst_message_new_custom:
  * @type: The #GstMessageType to distinguish messages
@@ -260,32 +279,29 @@
 
   message = g_slice_new0 (GstMessageImpl);
 
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (message),
-      _gst_message_type, sizeof (GstMessageImpl));
-
-  message->message.mini_object.copy =
-      (GstMiniObjectCopyFunction) _gst_message_copy;
-  message->message.mini_object.free =
-      (GstMiniObjectFreeFunction) _gst_message_free;
-
   GST_CAT_LOG (GST_CAT_MESSAGE, "source %s: creating new message %p %s",
       (src ? GST_OBJECT_NAME (src) : "NULL"), message,
       gst_message_type_get_name (type));
 
-  GST_MESSAGE_TYPE (message) = type;
-  if (src)
-    gst_object_ref (src);
-  GST_MESSAGE_SRC (message) = src;
-  GST_MESSAGE_TIMESTAMP (message) = GST_CLOCK_TIME_NONE;
-  GST_MESSAGE_SEQNUM (message) = gst_util_seqnum_next ();
-
   if (structure) {
-    gst_structure_set_parent_refcount (structure,
-        &message->message.mini_object.refcount);
+    /* structure must not have a parent */
+    if (!gst_structure_set_parent_refcount (structure,
+            &message->message.mini_object.refcount))
+      goto had_parent;
   }
-  message->structure = structure;
+  gst_message_init (message, sizeof (GstMessageImpl), type, src);
+
+  GST_MESSAGE_STRUCTURE (message) = structure;
 
   return GST_MESSAGE_CAST (message);
+
+  /* ERRORS */
+had_parent:
+  {
+    g_slice_free1 (GST_MINI_OBJECT_SIZE (message), message);
+    g_warning ("structure is already owned by another object");
+    return NULL;
+  }
 }
 
 /**
@@ -385,8 +401,8 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_ERROR),
-      GST_QUARK (GERROR), GST_TYPE_G_ERROR, error,
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_ERROR),
+      GST_QUARK (GERROR), G_TYPE_ERROR, error,
       GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
   message = gst_message_new_custom (GST_MESSAGE_ERROR, src, structure);
 
@@ -412,8 +428,8 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_WARNING),
-      GST_QUARK (GERROR), GST_TYPE_G_ERROR, error,
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_WARNING),
+      GST_QUARK (GERROR), G_TYPE_ERROR, error,
       GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
   message = gst_message_new_custom (GST_MESSAGE_WARNING, src, structure);
 
@@ -441,8 +457,8 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_INFO),
-      GST_QUARK (GERROR), GST_TYPE_G_ERROR, error,
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_INFO),
+      GST_QUARK (GERROR), G_TYPE_ERROR, error,
       GST_QUARK (DEBUG), G_TYPE_STRING, debug, NULL);
   message = gst_message_new_custom (GST_MESSAGE_INFO, src, structure);
 
@@ -504,7 +520,7 @@
 
   g_return_val_if_fail (percent >= 0 && percent <= 100, NULL);
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_BUFFERING),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_BUFFERING),
       GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, percent,
       GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, GST_BUFFERING_STREAM,
       GST_QUARK (AVG_IN_RATE), G_TYPE_INT, -1,
@@ -537,7 +553,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_STATE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STATE),
       GST_QUARK (OLD_STATE), GST_TYPE_STATE, (gint) oldstate,
       GST_QUARK (NEW_STATE), GST_TYPE_STATE, (gint) newstate,
       GST_QUARK (PENDING_STATE), GST_TYPE_STATE, (gint) pending, NULL);
@@ -592,7 +608,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_CLOCK_PROVIDE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_CLOCK_PROVIDE),
       GST_QUARK (CLOCK), GST_TYPE_CLOCK, clock,
       GST_QUARK (READY), G_TYPE_BOOLEAN, ready, NULL);
   message = gst_message_new_custom (GST_MESSAGE_CLOCK_PROVIDE, src, structure);
@@ -622,7 +638,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_CLOCK_LOST),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_CLOCK_LOST),
       GST_QUARK (CLOCK), GST_TYPE_CLOCK, clock, NULL);
   message = gst_message_new_custom (GST_MESSAGE_CLOCK_LOST, src, structure);
 
@@ -647,7 +663,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_NEW_CLOCK),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_NEW_CLOCK),
       GST_QUARK (CLOCK), GST_TYPE_CLOCK, clock, NULL);
   message = gst_message_new_custom (GST_MESSAGE_NEW_CLOCK, src, structure);
 
@@ -684,7 +700,7 @@
   /* g_return_val_if_fail (GST_PAD_DIRECTION (src) == GST_PAD_SINK, NULL); */
   g_return_val_if_fail (GST_IS_ELEMENT (owner), NULL);
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_STRUCTURE_CHANGE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STRUCTURE_CHANGE),
       GST_QUARK (TYPE), GST_TYPE_STRUCTURE_CHANGE_TYPE, type,
       GST_QUARK (OWNER), GST_TYPE_ELEMENT, owner,
       GST_QUARK (BUSY), G_TYPE_BOOLEAN, busy, NULL);
@@ -717,7 +733,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_SEGMENT_START),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_SEGMENT_START),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (POSITION), G_TYPE_INT64, position, NULL);
   message = gst_message_new_custom (GST_MESSAGE_SEGMENT_START, src, structure);
@@ -747,7 +763,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_SEGMENT_DONE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_SEGMENT_DONE),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (POSITION), G_TYPE_INT64, position, NULL);
   message = gst_message_new_custom (GST_MESSAGE_SEGMENT_DONE, src, structure);
@@ -819,7 +835,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_DURATION),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_DURATION),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (DURATION), G_TYPE_INT64, duration, NULL);
   message = gst_message_new_custom (GST_MESSAGE_DURATION, src, structure);
@@ -866,7 +882,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_ASYNC_DONE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_ASYNC_DONE),
       GST_QUARK (RESET_TIME), G_TYPE_BOOLEAN, reset_time, NULL);
   message = gst_message_new_custom (GST_MESSAGE_ASYNC_DONE, src, structure);
 
@@ -917,7 +933,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_REQUEST_STATE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_REQUEST_STATE),
       GST_QUARK (NEW_STATE), GST_TYPE_STATE, (gint) state, NULL);
   message = gst_message_new_custom (GST_MESSAGE_REQUEST_STATE, src, structure);
 
@@ -1335,7 +1351,7 @@
   structure = GST_MESSAGE_STRUCTURE (message);
   error_gvalue = gst_structure_id_get_value (structure, GST_QUARK (GERROR));
   g_return_if_fail (error_gvalue != NULL);
-  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == GST_TYPE_G_ERROR);
+  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == G_TYPE_ERROR);
 
   error_val = (GError *) g_value_get_boxed (error_gvalue);
   if (error_val)
@@ -1375,7 +1391,7 @@
   structure = GST_MESSAGE_STRUCTURE (message);
   error_gvalue = gst_structure_id_get_value (structure, GST_QUARK (GERROR));
   g_return_if_fail (error_gvalue != NULL);
-  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == GST_TYPE_G_ERROR);
+  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == G_TYPE_ERROR);
 
   error_val = (GError *) g_value_get_boxed (error_gvalue);
   if (error_val)
@@ -1416,7 +1432,7 @@
   structure = GST_MESSAGE_STRUCTURE (message);
   error_gvalue = gst_structure_id_get_value (structure, GST_QUARK (GERROR));
   g_return_if_fail (error_gvalue != NULL);
-  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == GST_TYPE_G_ERROR);
+  g_return_if_fail (G_VALUE_TYPE (error_gvalue) == G_TYPE_ERROR);
 
   error_val = (GError *) g_value_get_boxed (error_gvalue);
   if (error_val)
@@ -1595,7 +1611,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_STREAM_STATUS),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STREAM_STATUS),
       GST_QUARK (TYPE), GST_TYPE_STREAM_STATUS_TYPE, (gint) type,
       GST_QUARK (OWNER), GST_TYPE_ELEMENT, owner, NULL);
   message = gst_message_new_custom (GST_MESSAGE_STREAM_STATUS, src, structure);
@@ -1721,7 +1737,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_STEP_DONE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STEP_DONE),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (AMOUNT), G_TYPE_UINT64, amount,
       GST_QUARK (RATE), G_TYPE_DOUBLE, rate,
@@ -1806,7 +1822,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_STEP_START),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STEP_START),
       GST_QUARK (ACTIVE), G_TYPE_BOOLEAN, active,
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (AMOUNT), G_TYPE_UINT64, amount,
@@ -1890,7 +1906,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_QOS),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_QOS),
       GST_QUARK (LIVE), G_TYPE_BOOLEAN, live,
       GST_QUARK (RUNNING_TIME), G_TYPE_UINT64, running_time,
       GST_QUARK (STREAM_TIME), G_TYPE_UINT64, stream_time,
@@ -2119,7 +2135,7 @@
   if (type == GST_PROGRESS_TYPE_START || type == GST_PROGRESS_TYPE_CONTINUE)
     percent = 0;
 
-  structure = gst_structure_id_new (GST_QUARK (MESSAGE_PROGRESS),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_PROGRESS),
       GST_QUARK (TYPE), GST_TYPE_PROGRESS_TYPE, type,
       GST_QUARK (CODE), G_TYPE_STRING, code,
       GST_QUARK (TEXT), G_TYPE_STRING, text,
@@ -2156,3 +2172,62 @@
       GST_QUARK (CODE), G_TYPE_STRING, code,
       GST_QUARK (TEXT), G_TYPE_STRING, text, NULL);
 }
+
+/**
+ * gst_message_new_toc:
+ * @src: the object originating the message.
+ * @toc: #GstToc structure for the message.
+ * @updated: whether TOC was updated or not.
+ *
+ * Create a new TOC message. The message is posted by elements
+ * that discovered or updated a TOC.
+ *
+ * Returns: a new TOC message.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.37
+ */
+GstMessage *
+gst_message_new_toc (GstObject * src, GstToc * toc, gboolean updated)
+{
+  GstStructure *toc_struct;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  toc_struct = __gst_toc_to_structure (toc);
+
+  if (G_LIKELY (toc_struct != NULL)) {
+    __gst_toc_structure_set_updated (toc_struct, updated);
+    return gst_message_new_custom (GST_MESSAGE_TOC, src, toc_struct);
+  } else
+    return NULL;
+}
+
+/**
+ * gst_message_parse_toc:
+ * @message: a valid #GstMessage of type GST_MESSAGE_TOC.
+ * @toc: (out): return location for the TOC.
+ * @updated: (out): return location for the updated flag.
+ *
+ * Extract the TOC from the #GstMessage. The TOC returned in the
+ * output argument is a copy; the caller must free it with
+ * gst_toc_free() when done.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_message_parse_toc (GstMessage * message, GstToc ** toc, gboolean * updated)
+{
+  g_return_if_fail (GST_IS_MESSAGE (message));
+  g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TOC);
+  g_return_if_fail (toc != NULL);
+
+  *toc = __gst_toc_from_structure (GST_MESSAGE_STRUCTURE (message));
+
+  if (updated != NULL)
+    *updated =
+        __gst_toc_structure_get_updated (GST_MESSAGE_STRUCTURE (message));
+}
diff --git a/gst/gstmessage.h b/gst/gstmessage.h
index 050be67..aadb646 100644
--- a/gst/gstmessage.h
+++ b/gst/gstmessage.h
@@ -88,6 +88,8 @@
  * @GST_MESSAGE_QOS: A buffer was dropped or an element changed its processing
  * strategy for Quality of Service reasons. Since: 0.10.29
  * @GST_MESSAGE_PROGRESS: A progress message. Since: 0.10.33
+ * @GST_MESSAGE_TOC: A new table of contents (TOC) was found or previously found TOC
+ * was updated. Since: 0.10.37
  * @GST_MESSAGE_ANY: mask for all of the above messages.
  *
  * The different message types that are available.
@@ -124,6 +126,7 @@
   GST_MESSAGE_STEP_START        = (1 << 23),
   GST_MESSAGE_QOS               = (1 << 24),
   GST_MESSAGE_PROGRESS          = (1 << 25),
+  GST_MESSAGE_TOC               = (1 << 26),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 
@@ -133,13 +136,7 @@
 #include <gst/gsttaglist.h>
 #include <gst/gststructure.h>
 #include <gst/gstquery.h>
-
-/**
- * GST_MESSAGE_TRACE_NAME:
- *
- * The name used for memory allocation tracing
- */
-#define GST_MESSAGE_TRACE_NAME  "GstMessage"
+#include <gst/gsttoc.h>
 
 #define GST_TYPE_MESSAGE                         (gst_message_get_type())
 #define GST_IS_MESSAGE(obj)                      (GST_IS_MINI_OBJECT_TYPE (obj, GST_TYPE_MESSAGE))
@@ -149,12 +146,12 @@
 /* the lock is used to handle the synchronous handling of messages,
  * the emiting thread is block until the handling thread processed
  * the message using this mutex/cond pair */
-#define GST_MESSAGE_GET_LOCK(message)   (GST_MESSAGE_CAST(message)->lock)
+#define GST_MESSAGE_GET_LOCK(message)   (&GST_MESSAGE_CAST(message)->lock)
 #define GST_MESSAGE_LOCK(message)       g_mutex_lock(GST_MESSAGE_GET_LOCK(message))
 #define GST_MESSAGE_UNLOCK(message)     g_mutex_unlock(GST_MESSAGE_GET_LOCK(message))
-#define GST_MESSAGE_COND(message)       (GST_MESSAGE_CAST(message)->cond)
-#define GST_MESSAGE_WAIT(message)       g_cond_wait(GST_MESSAGE_COND(message),GST_MESSAGE_GET_LOCK(message))
-#define GST_MESSAGE_SIGNAL(message)     g_cond_signal(GST_MESSAGE_COND(message))
+#define GST_MESSAGE_GET_COND(message)   (&GST_MESSAGE_CAST(message)->cond)
+#define GST_MESSAGE_WAIT(message)       g_cond_wait(GST_MESSAGE_GET_COND(message),GST_MESSAGE_GET_LOCK(message))
+#define GST_MESSAGE_SIGNAL(message)     g_cond_signal(GST_MESSAGE_GET_COND(message))
 
 /**
  * GST_MESSAGE_TYPE:
@@ -282,17 +279,17 @@
  */
 struct _GstMessage
 {
-  GstMiniObject mini_object;
+  GstMiniObject   mini_object;
 
   /*< public > *//* with COW */
-  GstMessageType type;
-  guint64 timestamp;
-  GstObject *src;
-  guint32 seqnum;
+  GstMessageType  type;
+  guint64         timestamp;
+  GstObject      *src;
+  guint32         seqnum;
 
   /*< private >*//* with MESSAGE_LOCK */
-  GMutex *lock;                 /* lock and cond for async delivery */
-  GCond *cond;
+  GMutex          lock;                 /* lock and cond for async delivery */
+  GCond           cond;
 };
 
 GType           gst_message_get_type            (void);
@@ -390,15 +387,24 @@
  * message is unreffed, the new one is reffed).
  *
  * Either @new_message or the #GstMessage pointed to by @old_message may be NULL.
+ *
+ * Returns: TRUE if @new_message was different from @old_message
  */
-#define         gst_message_replace(old_message,new_message) \
-    gst_mini_object_replace ((GstMiniObject **)(old_message), GST_MINI_OBJECT_CAST (new_message))
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_message_replace (GstMessage **old_message, GstMessage *new_message);
+#endif
+
+static inline gboolean
+gst_message_replace (GstMessage **old_message, GstMessage *new_message)
+{
+  return gst_mini_object_replace ((GstMiniObject **) old_message, (GstMiniObject *) new_message);
+}
 
 
 /* custom messages */
 GstMessage *    gst_message_new_custom          (GstMessageType type,
                                                  GstObject    * src,
-                                                 GstStructure * structure);
+                                                 GstStructure * structure) G_GNUC_MALLOC;
 const GstStructure *
                 gst_message_get_structure       (GstMessage *message);
 
@@ -409,27 +415,27 @@
 void            gst_message_set_seqnum          (GstMessage *message, guint32 seqnum);
 
 /* EOS */
-GstMessage *    gst_message_new_eos             (GstObject * src);
+GstMessage *    gst_message_new_eos             (GstObject * src) G_GNUC_MALLOC;
 
 /* ERROR */
 
-GstMessage *    gst_message_new_error           (GstObject * src, GError * error, const gchar * debug);
+GstMessage *    gst_message_new_error           (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC;
 void            gst_message_parse_error         (GstMessage *message, GError **gerror, gchar **debug);
 
 /* WARNING */
-GstMessage *    gst_message_new_warning         (GstObject * src, GError * error, const gchar * debug);
+GstMessage *    gst_message_new_warning         (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC;
 void            gst_message_parse_warning       (GstMessage *message, GError **gerror, gchar **debug);
 
 /* INFO */
-GstMessage *    gst_message_new_info            (GstObject * src, GError * error, const gchar * debug);
+GstMessage *    gst_message_new_info            (GstObject * src, GError * error, const gchar * debug) G_GNUC_MALLOC;
 void            gst_message_parse_info          (GstMessage *message, GError **gerror, gchar **debug);
 
 /* TAG */
-GstMessage *    gst_message_new_tag             (GstObject * src, GstTagList * tag_list);
+GstMessage *    gst_message_new_tag             (GstObject * src, GstTagList * tag_list) G_GNUC_MALLOC;
 void            gst_message_parse_tag           (GstMessage *message, GstTagList **tag_list);
 
 /* BUFFERING */
-GstMessage *    gst_message_new_buffering         (GstObject * src, gint percent);
+GstMessage *    gst_message_new_buffering         (GstObject * src, gint percent) G_GNUC_MALLOC;
 void            gst_message_parse_buffering       (GstMessage *message, gint *percent);
 void            gst_message_set_buffering_stats   (GstMessage *message, GstBufferingMode mode,
                                                    gint avg_in, gint avg_out,
@@ -440,93 +446,93 @@
 
 /* STATE_CHANGED */
 GstMessage *    gst_message_new_state_changed   (GstObject * src, GstState oldstate,
-                                                 GstState newstate, GstState pending);
+                                                 GstState newstate, GstState pending) G_GNUC_MALLOC;
 void            gst_message_parse_state_changed (GstMessage *message, GstState *oldstate,
                                                  GstState *newstate, GstState *pending);
 
 /* STATE_DIRTY */
-GstMessage *    gst_message_new_state_dirty     (GstObject * src);
+GstMessage *    gst_message_new_state_dirty     (GstObject * src) G_GNUC_MALLOC;
 
 /* STEP_DONE */
 GstMessage *    gst_message_new_step_done       (GstObject * src, GstFormat format, guint64 amount,
                                                  gdouble rate, gboolean flush, gboolean intermediate,
-                                                 guint64 duration, gboolean eos);
+                                                 guint64 duration, gboolean eos) G_GNUC_MALLOC;
 void            gst_message_parse_step_done     (GstMessage * message, GstFormat *format, guint64 *amount,
                                                  gdouble *rate, gboolean *flush, gboolean *intermediate,
                                                  guint64 *duration, gboolean *eos);
 /* CLOCK_PROVIDE */
-GstMessage *    gst_message_new_clock_provide   (GstObject * src, GstClock *clock, gboolean ready);
+GstMessage *    gst_message_new_clock_provide   (GstObject * src, GstClock *clock, gboolean ready) G_GNUC_MALLOC;
 void            gst_message_parse_clock_provide (GstMessage *message, GstClock **clock,
                                                  gboolean *ready);
 
 /* CLOCK_LOST */
-GstMessage *    gst_message_new_clock_lost      (GstObject * src, GstClock *clock);
+GstMessage *    gst_message_new_clock_lost      (GstObject * src, GstClock *clock) G_GNUC_MALLOC;
 void            gst_message_parse_clock_lost    (GstMessage *message, GstClock **clock);
 
 /* NEW_CLOCK */
-GstMessage *    gst_message_new_new_clock       (GstObject * src, GstClock *clock);
+GstMessage *    gst_message_new_new_clock       (GstObject * src, GstClock *clock) G_GNUC_MALLOC;
 void            gst_message_parse_new_clock     (GstMessage *message, GstClock **clock);
 
 /* APPLICATION */
-GstMessage *    gst_message_new_application     (GstObject * src, GstStructure * structure);
+GstMessage *    gst_message_new_application     (GstObject * src, GstStructure * structure) G_GNUC_MALLOC;
 
 /* ELEMENT */
-GstMessage *    gst_message_new_element         (GstObject * src, GstStructure * structure);
+GstMessage *    gst_message_new_element         (GstObject * src, GstStructure * structure) G_GNUC_MALLOC;
 
 /* SEGMENT_START */
-GstMessage *    gst_message_new_segment_start   (GstObject * src, GstFormat format, gint64 position);
+GstMessage *    gst_message_new_segment_start   (GstObject * src, GstFormat format, gint64 position) G_GNUC_MALLOC;
 void            gst_message_parse_segment_start (GstMessage *message, GstFormat *format,
                                                  gint64 *position);
 
 /* SEGMENT_DONE */
-GstMessage *    gst_message_new_segment_done    (GstObject * src, GstFormat format, gint64 position);
+GstMessage *    gst_message_new_segment_done    (GstObject * src, GstFormat format, gint64 position) G_GNUC_MALLOC;
 void            gst_message_parse_segment_done  (GstMessage *message, GstFormat *format,
                                                  gint64 *position);
 
 /* DURATION */
-GstMessage *    gst_message_new_duration        (GstObject * src, GstFormat format, gint64 duration);
+GstMessage *    gst_message_new_duration        (GstObject * src, GstFormat format, gint64 duration) G_GNUC_MALLOC;
 void            gst_message_parse_duration      (GstMessage *message, GstFormat *format,
                                                  gint64 *duration);
 
 /* LATENCY */
-GstMessage *    gst_message_new_latency         (GstObject * src);
+GstMessage *    gst_message_new_latency         (GstObject * src) G_GNUC_MALLOC;
 
 /* ASYNC_START */
-GstMessage *    gst_message_new_async_start     (GstObject * src);
+GstMessage *    gst_message_new_async_start     (GstObject * src) G_GNUC_MALLOC;
 
 /* ASYNC_DONE */
-GstMessage *    gst_message_new_async_done      (GstObject * src, gboolean reset_time);
+GstMessage *    gst_message_new_async_done      (GstObject * src, gboolean reset_time) G_GNUC_MALLOC;
 void            gst_message_parse_async_done    (GstMessage *message, gboolean *reset_time);
 
 /* STRUCTURE CHANGE */
 GstMessage *    gst_message_new_structure_change   (GstObject * src, GstStructureChangeType type,
-                                                    GstElement *owner, gboolean busy);
+                                                    GstElement *owner, gboolean busy) G_GNUC_MALLOC;
 void            gst_message_parse_structure_change (GstMessage *message, GstStructureChangeType *type,
                                                     GstElement **owner, gboolean *busy);
 
 /* STREAM STATUS */
 GstMessage *    gst_message_new_stream_status        (GstObject * src, GstStreamStatusType type,
-                                                      GstElement *owner);
+                                                      GstElement *owner) G_GNUC_MALLOC;
 void            gst_message_parse_stream_status      (GstMessage *message, GstStreamStatusType *type,
                                                       GstElement **owner);
 void            gst_message_set_stream_status_object (GstMessage *message, const GValue *object);
 const GValue *  gst_message_get_stream_status_object (GstMessage *message);
 
 /* REQUEST_STATE */
-GstMessage *    gst_message_new_request_state   (GstObject * src, GstState state);
+GstMessage *    gst_message_new_request_state   (GstObject * src, GstState state) G_GNUC_MALLOC;
 void            gst_message_parse_request_state (GstMessage * message, GstState *state);
 
 /* STEP_START */
 GstMessage *    gst_message_new_step_start      (GstObject * src, gboolean active, GstFormat format,
                                                  guint64 amount, gdouble rate, gboolean flush,
-                                                 gboolean intermediate);
+                                                 gboolean intermediate) G_GNUC_MALLOC;
 void            gst_message_parse_step_start    (GstMessage * message, gboolean *active, GstFormat *format,
                                                  guint64 *amount, gdouble *rate, gboolean *flush,
                                                  gboolean *intermediate);
 
 /* QOS */
 GstMessage *    gst_message_new_qos             (GstObject * src, gboolean live, guint64 running_time,
-                                                 guint64 stream_time, guint64 timestamp, guint64 duration);
+                                                 guint64 stream_time, guint64 timestamp, guint64 duration) G_GNUC_MALLOC;
 void            gst_message_set_qos_values      (GstMessage * message, gint64 jitter, gdouble proportion,
                                                  gint quality);
 void            gst_message_set_qos_stats       (GstMessage * message, GstFormat format, guint64 processed,
@@ -539,10 +545,13 @@
                                                  guint64 * dropped);
 /* PROGRESS */
 GstMessage *    gst_message_new_progress           (GstObject * src, GstProgressType type, const gchar *code,
-                                                    const gchar *text);
+                                                    const gchar *text) G_GNUC_MALLOC;
 void            gst_message_parse_progress         (GstMessage * message, GstProgressType * type, gchar ** code,
                                                     gchar ** text);
 
+/* TOC */
+GstMessage *    gst_message_new_toc             (GstObject *src, GstToc *toc, gboolean updated);
+void            gst_message_parse_toc           (GstMessage *message, GstToc **toc, gboolean *updated);
 
 G_END_DECLS
 
diff --git a/gst/gstmeta.c b/gst/gstmeta.c
index 078aef1..8f4a543 100644
--- a/gst/gstmeta.c
+++ b/gst/gstmeta.c
@@ -23,7 +23,27 @@
  * SECTION:gstmeta
  * @short_description: Buffer metadata
  *
- * Last reviewed on December 17th, 2009 (0.10.26)
+ * The #GstMeta structure should be included as the first member of a #GstBuffer
+ * metadata structure. The structure defines the API of the metadata and should
+ * be accessible to all elements using the metadata.
+ *
+ * A metadata API is registered with gst_meta_api_type_register() which takes a
+ * name for the metadata API and some tags associated with the metadata.
+ * With gst_meta_api_type_has_tag() one can check if a certain metadata API
+ * contains a given tag.
+ *
+ * Multiple implementations of a metadata API can be registered.
+ * To implement a metadata API, gst_meta_register() should be used. This
+ * function takes all parameters needed to create, free and transform metadata
+ * along with the size of the metadata. The function returns a #GstMetaInfo
+ * structure that contains the information for the implementation of the API.
+ *
+ * A specific implementation can be retrieved by name with gst_meta_get_info().
+ *
+ * See #GstBuffer for how the metadata can be added, retrieved and removed from
+ * buffers.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 #include "gst_private.h"
 
@@ -33,50 +53,115 @@
 #include "gstutils.h"
 
 static GHashTable *metainfo = NULL;
-static GStaticRWLock lock = G_STATIC_RW_LOCK_INIT;
+static GRWLock lock;
+
+GQuark _gst_meta_transform_copy;
+GQuark _gst_meta_tag_memory;
 
 void
 _priv_gst_meta_initialize (void)
 {
+  g_rw_lock_init (&lock);
   metainfo = g_hash_table_new (g_str_hash, g_str_equal);
+
+  _gst_meta_transform_copy = g_quark_from_static_string ("gst-copy");
+  _gst_meta_tag_memory = g_quark_from_static_string ("memory");
 }
 
 /**
- * gst_meta_register_info:
- * @info: a #GstMetaInfo
+ * gst_meta_api_type_register:
+ * @api: an API to register
+ * @tags: tags for @api
  *
- * Register a #GstMetaInfo. The same @info can be retrieved later with
- * gst_meta_get_info() by using @impl as the key.
+ * Register and return a GType for the @api and associate it with
+ * @tags.
  *
- * Returns: a #GstMetaInfo that can be used to access metadata.
+ * Returns: a unique GType for @api.
+ */
+GType
+gst_meta_api_type_register (const gchar * api, const gchar ** tags)
+{
+  GType type;
+
+  g_return_val_if_fail (api != NULL, 0);
+  g_return_val_if_fail (tags != NULL, 0);
+
+  GST_CAT_DEBUG (GST_CAT_META, "register API \"%s\"", api);
+  type = g_pointer_type_register_static (api);
+
+  if (type != 0) {
+    gint i;
+
+    for (i = 0; tags[i]; i++) {
+      GST_CAT_DEBUG (GST_CAT_META, "  adding tag \"%s\"", tags[i]);
+      g_type_set_qdata (type, g_quark_from_string (tags[i]),
+          GINT_TO_POINTER (TRUE));
+    }
+  }
+  return type;
+}
+
+/**
+ * gst_meta_api_type_has_tag:
+ * @api: an API
+ * @tag: the tag to check
+ *
+ * Check if @api was registered with @tag.
+ *
+ * Returns: %TRUE if @api was registered with @tag.
+ */
+gboolean
+gst_meta_api_type_has_tag (GType api, GQuark tag)
+{
+  g_return_val_if_fail (api != 0, FALSE);
+  g_return_val_if_fail (tag != 0, FALSE);
+
+  return g_type_get_qdata (api, tag) != NULL;
+}
+
+/**
+ * gst_meta_register:
+ * @api: the type of the #GstMeta API
+ * @impl: the name of the #GstMeta implementation
+ * @size: the size of the #GstMeta structure
+ * @init_func: a #GstMetaInitFunction
+ * @free_func: a #GstMetaFreeFunction
+ * @transform_func: a #GstMetaTransformFunction
+ *
+ * Register a new #GstMeta implementation.
+ *
+ * The same @info can be retrieved later with gst_meta_get_info() by using
+ * @impl as the key.
+ *
+ * Returns: (transfer none): a #GstMetaInfo that can be used to access metadata.
  */
 
 const GstMetaInfo *
-gst_meta_register (const gchar * api, const gchar * impl, gsize size,
+gst_meta_register (GType api, const gchar * impl, gsize size,
     GstMetaInitFunction init_func, GstMetaFreeFunction free_func,
-    GstMetaCopyFunction copy_func, GstMetaTransformFunction transform_func)
+    GstMetaTransformFunction transform_func)
 {
   GstMetaInfo *info;
 
-  g_return_val_if_fail (api != NULL, NULL);
+  g_return_val_if_fail (api != 0, NULL);
   g_return_val_if_fail (impl != NULL, NULL);
   g_return_val_if_fail (size != 0, NULL);
 
   info = g_slice_new (GstMetaInfo);
-  info->api = g_quark_from_string (api);
+  info->api = api;
   info->type = g_pointer_type_register_static (impl);
   info->size = size;
   info->init_func = init_func;
   info->free_func = free_func;
-  info->copy_func = copy_func;
   info->transform_func = transform_func;
 
-  GST_DEBUG ("register \"%s\" implementing \"%s\" of size %" G_GSIZE_FORMAT,
-      api, impl, size);
+  GST_CAT_DEBUG (GST_CAT_META,
+      "register \"%s\" implementing \"%s\" of size %" G_GSIZE_FORMAT, impl,
+      g_type_name (api), size);
 
-  g_static_rw_lock_writer_lock (&lock);
+  g_rw_lock_writer_lock (&lock);
   g_hash_table_insert (metainfo, (gpointer) impl, (gpointer) info);
-  g_static_rw_lock_writer_unlock (&lock);
+  g_rw_lock_writer_unlock (&lock);
 
   return info;
 }
@@ -85,11 +170,11 @@
  * gst_meta_get_info:
  * @impl: the name
  *
- * Lookup a previously registered meta info structure by its implementor name
+ * Lookup a previously registered meta info structure by its implementation name
  * @impl.
  *
- * Returns: a #GstMetaInfo with @impl or #NULL when no such metainfo
- * exists.
+ * Returns: (transfer none): a #GstMetaInfo with @impl, or #NULL when no such
+ * metainfo exists.
  */
 const GstMetaInfo *
 gst_meta_get_info (const gchar * impl)
@@ -98,56 +183,9 @@
 
   g_return_val_if_fail (impl != NULL, NULL);
 
-  g_static_rw_lock_reader_lock (&lock);
+  g_rw_lock_reader_lock (&lock);
   info = g_hash_table_lookup (metainfo, impl);
-  g_static_rw_lock_reader_unlock (&lock);
+  g_rw_lock_reader_unlock (&lock);
 
   return info;
 }
-
-/* Timing metadata */
-static void
-meta_timing_copy (GstBuffer * copybuf, GstMetaTiming * meta,
-    GstBuffer * buffer, gsize offset, gsize size)
-{
-  GstMetaTiming *timing;
-
-  GST_DEBUG ("trans called from buffer %p to %p, meta %p,"
-      "offset %" G_GSIZE_FORMAT ", size %" G_GSIZE_FORMAT, buffer,
-      copybuf, meta, offset, size);
-
-  timing = gst_buffer_add_meta_timing (copybuf);
-  if (offset == 0) {
-    /* same offset, copy timestamps */
-    timing->pts = meta->pts;
-    timing->dts = meta->dts;
-    if (size == gst_buffer_get_size (buffer)) {
-      /* same size, copy duration */
-      timing->duration = meta->duration;
-    } else {
-      /* else clear */
-      timing->duration = GST_CLOCK_TIME_NONE;
-    }
-  } else {
-    timing->pts = -1;
-    timing->dts = -1;
-    timing->duration = -1;
-  }
-  timing->clock_rate = meta->clock_rate;
-}
-
-const GstMetaInfo *
-gst_meta_timing_get_info (void)
-{
-  static const GstMetaInfo *meta_info = NULL;
-
-  if (meta_info == NULL) {
-    meta_info = gst_meta_register ("GstMetaTiming", "GstMetaTiming",
-        sizeof (GstMetaTiming),
-        (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) NULL,
-        (GstMetaCopyFunction) meta_timing_copy,
-        (GstMetaTransformFunction) NULL);
-  }
-  return meta_info;
-}
diff --git a/gst/gstmeta.h b/gst/gstmeta.h
index 90d7fc2..bd7b2e2 100644
--- a/gst/gstmeta.h
+++ b/gst/gstmeta.h
@@ -28,25 +28,72 @@
 typedef struct _GstMeta GstMeta;
 typedef struct _GstMetaInfo GstMetaInfo;
 
+#define GST_META_CAST(meta)   ((GstMeta *)(meta))
+
+/**
+ * GstMetaFlags:
+ * @GST_META_FLAG_NONE: no flags
+ * @GST_META_FLAG_READONLY: metadata should not be modified
+ * @GST_META_FLAG_POOLED: metadata is managed by a bufferpool and should not
+ *    be removed
+ * @GST_META_FLAG_LAST: additional flags can be added starting from this flag.
+ *
+ * Extra metadata flags.
+ */
+typedef enum {
+  GST_META_FLAG_NONE        = 0,
+  GST_META_FLAG_READONLY    = (1 << 0),
+  GST_META_FLAG_POOLED      = (1 << 1),
+
+  GST_META_FLAG_LAST        = (1 << 16)
+} GstMetaFlags;
+
+/**
+ * GST_META_FLAGS:
+ * @meta: a #GstMeta.
+ *
+ * A flags word containing #GstMetaFlags flags set on @meta
+ */
+#define GST_META_FLAGS(meta)  (GST_META_CAST (meta)->flags)
+/**
+ * GST_META_FLAG_IS_SET:
+ * @meta: a #GstMeta.
+ * @flag: the #GstMetaFlags to check.
+ *
+ * Gives the status of a specific flag on a metadata.
+ */
+#define GST_META_FLAG_IS_SET(meta,flag)        !!(GST_META_FLAGS (meta) & (flag))
+/**
+ * GST_META_FLAG_SET:
+ * @meta: a #GstMeta.
+ * @flag: the #GstMetaFlags to set.
+ *
+ * Sets a metadata flag on a metadata.
+ */
+#define GST_META_FLAG_SET(meta,flag)           (GST_META_FLAGS (meta) |= (flag))
+/**
+ * GST_META_FLAG_UNSET:
+ * @meta: a #GstMeta.
+ * @flag: the #GstMetaFlags to clear.
+ *
+ * Clears a metadata flag.
+ */
+#define GST_META_FLAG_UNSET(meta,flag)         (GST_META_FLAGS (meta) &= ~(flag))
+
 /**
  * GstMeta:
+ * @flags: extra flags for the metadata
  * @info: pointer to the #GstMetaInfo
  *
  * Base structure for metadata. Custom metadata will put this structure
  * as the first member of their structure.
  */
 struct _GstMeta {
+  GstMetaFlags       flags;
   const GstMetaInfo *info;
 };
 
 /**
- * GST_META_TRACE_NAME:
- *
- * The name used for tracing memory allocations.
- */
-#define GST_META_TRACE_NAME           "GstMeta"
-
-/**
  * GstMetaInitFunction:
  * @meta: a #GstMeta
  * @params: parameters passed to the init function
@@ -65,24 +112,56 @@
  */
 typedef void (*GstMetaFreeFunction)     (GstMeta *meta, GstBuffer *buffer);
 
-typedef void (*GstMetaCopyFunction)     (GstBuffer *dest, GstMeta *meta,
-                                         GstBuffer *buffer, gsize offset, gsize size);
+/**
+ * gst_meta_transform_copy:
+ *
+ * GQuark for the "gst-copy" transform.
+ */
+GST_EXPORT GQuark _gst_meta_transform_copy;
+
+/**
+ * GST_META_TRANSFORM_IS_COPY:
+ * @type: a transform type
+ *
+ * Check if the transform type is a copy transform
+ */
+#define GST_META_TRANSFORM_IS_COPY(type) ((type) == _gst_meta_transform_copy)
+
+/**
+ * GstMetaTransformCopy:
+ * @region: %TRUE if only region is copied
+ * @offset: the offset to copy, 0 if @region is %FALSE, otherwise > 0
+ * @size: the size to copy, -1 or the buffer size when @region is %FALSE
+ *
+ * Extra data passed to a "gst-copy" transform #GstMetaTransformFunction.
+ */
+typedef struct {
+  gboolean region;
+  gsize offset;
+  gsize size;
+} GstMetaTransformCopy;
+
 /**
  * GstMetaTransformFunction:
  * @transbuf: a #GstBuffer
  * @meta: a #GstMeta
  * @buffer: a #GstBuffer
+ * @type: the transform type
  * @data: transform specific data.
  *
  * Function called for each @meta in @buffer as a result of performing a
- * transformation on @transbuf. Additional type specific transform data
- * is passed to the function.
+ * transformation on @transbuf. Additional @type specific transform data
+ * is passed to the function as @data.
  *
- * Implementations should check the type of the transform @data and parse
- * additional type specific field that should be used to perform the transform.
+ * Implementations should check the @type of the transform and parse
+ * additional type specific fields in @data that should be used to update
+ * the metadata on @transbuf.
+ *
+ * Returns: %TRUE if the transform could be performed
  */
-typedef void (*GstMetaTransformFunction) (GstBuffer *transbuf, GstMeta *meta,
-                                          GstBuffer *buffer, gpointer data);
+typedef gboolean (*GstMetaTransformFunction) (GstBuffer *transbuf,
+                                              GstMeta *meta, GstBuffer *buffer,
+                                              GQuark type, gpointer data);
 
 /**
  * GstMetaInfo:
@@ -91,60 +170,45 @@
  * @size: size of the metadata
  * @init_func: function for initializing the metadata
  * @free_func: function for freeing the metadata
- * @copy_func: function for copying the metadata
  * @transform_func: function for transforming the metadata
  *
  * The #GstMetaInfo provides information about a specific metadata
  * structure.
  */
 struct _GstMetaInfo {
-  GQuark                     api;
+  GType                      api;
   GType                      type;
   gsize                      size;
 
   GstMetaInitFunction        init_func;
   GstMetaFreeFunction        free_func;
-  GstMetaCopyFunction        copy_func;
   GstMetaTransformFunction   transform_func;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
 };
 
-const GstMetaInfo *  gst_meta_register        (const gchar *api, const gchar *impl,
-                                               gsize size,
-                                               GstMetaInitFunction        init_func,
-                                               GstMetaFreeFunction        free_func,
-                                               GstMetaCopyFunction        copy_func,
-                                               GstMetaTransformFunction   transform_func);
-const GstMetaInfo *  gst_meta_get_info        (const gchar * impl);
+GType                gst_meta_api_type_register (const gchar *api,
+                                                 const gchar **tags);
+gboolean             gst_meta_api_type_has_tag  (GType api, GQuark tag);
 
-/* default metadata */
+const GstMetaInfo *  gst_meta_register          (GType api, const gchar *impl,
+                                                 gsize size,
+                                                 GstMetaInitFunction      init_func,
+                                                 GstMetaFreeFunction      free_func,
+                                                 GstMetaTransformFunction transform_func);
+const GstMetaInfo *  gst_meta_get_info          (const gchar * impl);
 
-/* timing metadata */
-typedef struct _GstMetaTiming GstMetaTiming;
-
-const GstMetaInfo *gst_meta_timing_get_info(void);
-#define GST_META_TIMING_INFO (gst_meta_timing_get_info())
+/* some default tags */
+GST_EXPORT GQuark _gst_meta_tag_memory;
 
 /**
- * GstMetaTiming:
- * @meta: parent metadata
- * @dts: the decoding timestamp
- * @pts: the presentation timestamp
- * @duration: the duration
- * @clock_rate: the clock rate of the dts, pts and duration values
+ * GST_META_TAG_MEMORY:
  *
- * Extra timing metadata
+ * Metadata tagged with this tag depends on the particular memory
+ * or buffer that it is on.
  */
-struct _GstMetaTiming {
-  GstMeta        meta;        /* common meta header */
-
-  GstClockTime   dts;         /* decoding timestamp */
-  GstClockTime   pts;         /* presentation timestamp */
-  GstClockTime   duration;    /* duration of the data */
-  GstClockTime   clock_rate;  /* clock rate for the above values */
-};
-
-#define gst_buffer_get_meta_timing(b)  ((GstMetaTiming*)gst_buffer_get_meta((b),GST_META_TIMING_INFO))
-#define gst_buffer_add_meta_timing(b)  ((GstMetaTiming*)gst_buffer_add_meta((b),GST_META_TIMING_INFO,NULL))
+#define GST_META_TAG_MEMORY (_gst_meta_tag_memory)
 
 G_END_DECLS
 
diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c
index 78749dd..55d846b 100644
--- a/gst/gstminiobject.c
+++ b/gst/gstminiobject.c
@@ -22,12 +22,25 @@
  * SECTION:gstminiobject
  * @short_description: Lightweight base class for the GStreamer object hierarchy
  *
- * #GstMiniObject is a baseclass like #GObject, but has been stripped down of
- * features to be fast and small.
- * It offers sub-classing and ref-counting in the same way as #GObject does.
- * It has no properties and no signal-support though.
+ * #GstMiniObject is a simple structure that can be used to implement refcounted
+ * types.
  *
- * Last reviewed on 2005-11-23 (0.9.5)
+ * Subclasses will include #GstMiniObject as the first member in their structure
+ * and then call gst_mini_object_init() to initialize the #GstMiniObject fields.
+ *
+ * gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the
+ * refcount respectively. When the refcount of a mini-object reaches 0, the
+ * dispose function is called first and when this returns %TRUE, the free
+ * function of the miniobject is called.
+ *
+ * A copy can be made with gst_mini_object_copy().
+ *
+ * gst_mini_object_is_writable() will return %TRUE when the refcount of the
+ * object is exactly 1, meaning the current caller has the only reference to the
+ * object. gst_mini_object_make_writable() will return a writable version of the
+ * object, which might be a new copy when the refcount was not 1.
+ *
+ * Last reviewed on 2012-03-28 (0.11.3)
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -38,8 +51,6 @@
 #include "gst/gstinfo.h"
 #include <gobject/gvaluecollector.h>
 
-#define GST_DISABLE_TRACE
-
 #ifndef GST_DISABLE_TRACE
 #include "gsttrace.h"
 static GstAllocTrace *_gst_mini_object_trace;
@@ -48,6 +59,14 @@
 /* Mutex used for weak referencing */
 G_LOCK_DEFINE_STATIC (weak_refs_mutex);
 
+void
+_priv_gst_mini_object_initialize (void)
+{
+#ifndef GST_DISABLE_TRACE
+  _gst_mini_object_trace = _gst_alloc_trace_register ("GstMiniObject", 0);
+#endif
+}
+
 /**
  * gst_mini_object_init:
  * @mini_object: a #GstMiniObject 
@@ -69,6 +88,10 @@
   mini_object->size = size;
   mini_object->n_weak_refs = 0;
   mini_object->weak_refs = NULL;
+
+#ifndef GST_DISABLE_TRACE
+  _gst_alloc_trace_new (_gst_mini_object_trace, mini_object);
+#endif
 }
 
 /**
@@ -101,9 +124,8 @@
  * @mini_object: the mini-object to check
  *
  * Checks if a mini-object is writable.  A mini-object is writable
- * if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
- * flag is not set.  Modification of a mini-object should only be
- * done after verifying that it is writable.
+ * if the reference count is one. Modification of a mini-object should
+ * only be done after verifying that it is writable.
  *
  * MT safe
  *
@@ -204,13 +226,14 @@
 gst_mini_object_unref (GstMiniObject * mini_object)
 {
   g_return_if_fail (mini_object != NULL);
-  g_return_if_fail (mini_object->refcount > 0);
 
   GST_CAT_TRACE (GST_CAT_REFCOUNTING, "%p unref %d->%d",
       mini_object,
       GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object),
       GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) - 1);
 
+  g_return_if_fail (mini_object->refcount > 0);
+
   if (G_UNLIKELY (g_atomic_int_dec_and_test (&mini_object->refcount))) {
     gboolean do_free;
 
@@ -227,7 +250,7 @@
         weak_refs_notify (mini_object);
 
 #ifndef GST_DISABLE_TRACE
-      gst_alloc_trace_free (_gst_mini_object_trace, mini_object);
+      _gst_alloc_trace_free (_gst_mini_object_trace, mini_object);
 #endif
       if (mini_object->free)
         mini_object->free (mini_object);
diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h
index 65b4dfb..6984308 100644
--- a/gst/gstminiobject.h
+++ b/gst/gstminiobject.h
@@ -71,7 +71,7 @@
  * GstMiniObjectWeakNotify:
  * @data: data that was provided when the weak reference was established
  * @where_the_mini_object_was: the mini object being finalized
- * 
+ *
  * A #GstMiniObjectWeakNotify function can be added to a mini object as a
  * callback that gets triggered when the mini object is finalized. Since the
  * mini object is already being finalized when the #GstMiniObjectWeakNotify is
@@ -84,10 +84,10 @@
     GstMiniObject * where_the_mini_object_was);
 
 /**
- * GST_MINI_OBJECT_FLAGS:
- * @obj: MiniObject to return flags for.
+ * GST_MINI_OBJECT_TYPE:
+ * @obj: MiniObject to return type for.
  *
- * This macro returns the entire set of flags for the mini-object.
+ * This macro returns the type of the mini-object.
  */
 #define GST_MINI_OBJECT_TYPE(obj)  (GST_MINI_OBJECT_CAST(obj)->type)
 /**
@@ -198,7 +198,7 @@
 void            gst_mini_object_init            (GstMiniObject *mini_object,
                                                  GType type, gsize size);
 
-GstMiniObject * gst_mini_object_copy		(const GstMiniObject *mini_object);
+GstMiniObject * gst_mini_object_copy		(const GstMiniObject *mini_object) G_GNUC_MALLOC;
 gboolean        gst_mini_object_is_writable	(const GstMiniObject *mini_object);
 GstMiniObject * gst_mini_object_make_writable	(GstMiniObject *mini_object);
 
@@ -217,10 +217,17 @@
 gboolean        gst_mini_object_take            (GstMiniObject **olddata, GstMiniObject *newdata);
 GstMiniObject * gst_mini_object_steal           (GstMiniObject **olddata);
 
+/**
+ * GST_DEFINE_MINI_OBJECT_TYPE:
+ * @TypeName: name of the new type in CamelCase
+ * @type_name: name of the new type
+ *
+ * Define a new mini-object type with the given name
+ */
 #define GST_DEFINE_MINI_OBJECT_TYPE(TypeName,type_name) \
    G_DEFINE_BOXED_TYPE(TypeName,type_name,              \
        (GBoxedCopyFunc) gst_mini_object_ref,            \
-       (GBoxedFreeFunc)gst_mini_object_unref)
+       (GBoxedFreeFunc) gst_mini_object_unref)
 
 G_END_DECLS
 
diff --git a/gst/gstobject.c b/gst/gstobject.c
index 50c4c25..f830402 100644
--- a/gst/gstobject.c
+++ b/gst/gstobject.c
@@ -27,68 +27,84 @@
  *
  * #GstObject provides a root for the object hierarchy tree filed in by the
  * GStreamer library.  It is currently a thin wrapper on top of
- * #GObject. It is an abstract class that is not very usable on its own.
+ * #GInitiallyUnowned. It is an abstract class that is not very usable on its own.
  *
  * #GstObject gives us basic refcounting, parenting functionality and locking.
  * Most of the function are just extended for special GStreamer needs and can be
  * found under the same name in the base class of #GstObject which is #GObject
  * (e.g. g_object_ref() becomes gst_object_ref()).
  *
- * The most interesting difference between #GstObject and #GObject is the
- * "floating" reference count. A #GObject is created with a reference count of
- * 1, owned by the creator of the #GObject. (The owner of a reference is the
- * code section that has the right to call gst_object_unref() in order to
- * remove that reference.) A #GstObject is created with a reference count of 1
- * also, but it isn't owned by anyone; Instead, the initial reference count
- * of a #GstObject is "floating". The floating reference can be removed by
- * anyone at any time, by calling gst_object_sink().  gst_object_sink() does
- * nothing if an object is already sunk (has no floating reference).
- *
- * When you add a #GstElement to its parent container, the parent container will
- * do this:
- * <informalexample>
- * <programlisting>
- *   gst_object_ref (GST_OBJECT (child_element));
- *   gst_object_sink (GST_OBJECT (child_element));
- * </programlisting>
- * </informalexample>
- * This means that the container now owns a reference to the child element
- * (since it called gst_object_ref()), and the child element has no floating
- * reference.
- *
- * The purpose of the floating reference is to keep the child element alive
- * until you add it to a parent container, which then manages the lifetime of
- * the object itself:
- * <informalexample>
- * <programlisting>
- *    element = gst_element_factory_make (factoryname, name);
- *    // element has one floating reference to keep it alive
- *    gst_bin_add (GST_BIN (bin), element);
- *    // element has one non-floating reference owned by the container
- * </programlisting>
- * </informalexample>
- *
- * Another effect of this is, that calling gst_object_unref() on a bin object,
- * will also destoy all the #GstElement objects in it. The same is true for
- * calling gst_bin_remove().
- *
- * Special care has to be taken for all methods that gst_object_sink() an object
- * since if the caller of those functions had a floating reference to the object,
- * the object reference is now invalid.
+ * Since #GstObject dereives from #GInitiallyUnowned, it also inherits the
+ * floating reference. Be aware that functions such as gst_bin_add() and
+ * gst_element_add_pad() take ownership of the floating reference.
  *
  * In contrast to #GObject instances, #GstObject adds a name property. The functions
  * gst_object_set_name() and gst_object_get_name() are used to set/get the name
  * of the object.
  *
- * Last reviewed on 2005-11-09 (0.9.4)
+ * <refsect2>
+ * <title>controlled properties</title>
+ * <para>
+ * Controlled properties offers a lightweight way to adjust gobject
+ * properties over stream-time. It works by using time-stamped value pairs that
+ * are queued for element-properties. At run-time the elements continously pull
+ * values changes for the current stream-time.
+ *
+ * What needs to be changed in a #GstElement?
+ * Very little - it is just two steps to make a plugin controllable!
+ * <orderedlist>
+ *   <listitem><para>
+ *     mark gobject-properties paramspecs that make sense to be controlled,
+ *     by GST_PARAM_CONTROLLABLE.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     when processing data (get, chain, loop function) at the beginning call
+ *     gst_object_sync_values(element,timestamp).
+ *     This will made the controller to update all gobject properties that are under
+ *     control with the current values based on timestamp.
+ *   </para></listitem>
+ * </orderedlist>
+ *
+ * What needs to be done in applications?
+ * Again its not a lot to change.
+ * <orderedlist>
+ *   <listitem><para>
+ *     first put some properties under control, by calling
+ *     gst_object_control_properties (object, "prop1", "prop2",...);
+ *   </para></listitem>
+ *   <listitem><para>
+ *     create a #GstControlSource.
+ *     csource = gst_interpolation_control_source_new ();
+ *     g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Attach the #GstControlSource on the controller to a property.
+ *     gst_object_add_control_binding (object, gst_direct_control_binding_new (objetct, "prop1", csource));
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Set the control values
+ *     gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1);
+ *     gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);
+ *   </para></listitem>
+ *   <listitem><para>
+ *     start your pipeline
+ *   </para></listitem>
+ * </orderedlist>
+ * </para>
+ * </refsect2>
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #include "gst_private.h"
 #include "glib-compat-private.h"
 
 #include "gstobject.h"
-#include "gstmarshal.h"
+#include "gstclock.h"
+#include "gstcontrolbinding.h"
+#include "gstcontrolsource.h"
 #include "gstinfo.h"
+#include "gstparamspecs.h"
 #include "gstutils.h"
 
 #ifndef GST_DISABLE_TRACE
@@ -149,7 +165,8 @@
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
 #ifndef GST_DISABLE_TRACE
-  _gst_object_trace = gst_alloc_trace_register (g_type_name (GST_TYPE_OBJECT));
+  _gst_object_trace =
+      _gst_alloc_trace_register (g_type_name (GST_TYPE_OBJECT), -2);
 #endif
 
   gobject_class->set_property = gst_object_set_property;
@@ -158,14 +175,12 @@
   properties[PROP_NAME] =
       g_param_spec_string ("name", "Name", "The name of the object", NULL,
       G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-  g_object_class_install_property (gobject_class, PROP_NAME,
-      properties[PROP_NAME]);
 
   properties[PROP_PARENT] =
       g_param_spec_object ("parent", "Parent", "The parent of the object",
       GST_TYPE_OBJECT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
-  g_object_class_install_property (gobject_class, PROP_PARENT,
-      properties[PROP_PARENT]);
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, properties);
 
   /**
    * GstObject::deep-notify:
@@ -181,7 +196,7 @@
       g_signal_new ("deep-notify", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE | G_SIGNAL_DETAILED |
       G_SIGNAL_NO_HOOKS, G_STRUCT_OFFSET (GstObjectClass, deep_notify), NULL,
-      NULL, gst_marshal_VOID__OBJECT_PARAM, G_TYPE_NONE, 2, GST_TYPE_OBJECT,
+      NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, GST_TYPE_OBJECT,
       G_TYPE_PARAM);
 
   klass->path_string_separator = "/";
@@ -197,16 +212,19 @@
 static void
 gst_object_init (GstObject * object)
 {
-  object->lock = g_mutex_new ();
+  g_mutex_init (&object->lock);
   object->parent = NULL;
   object->name = NULL;
   GST_CAT_TRACE_OBJECT (GST_CAT_REFCOUNTING, object, "%p new", object);
 
 #ifndef GST_DISABLE_TRACE
-  gst_alloc_trace_new (_gst_object_trace, object);
+  _gst_alloc_trace_new (_gst_object_trace, object);
 #endif
 
   object->flags = 0;
+
+  object->control_rate = 100 * GST_MSECOND;
+  object->last_sync = GST_CLOCK_TIME_NONE;
 }
 
 /**
@@ -262,7 +280,7 @@
 }
 
 /**
- * gst_object_ref_sink:
+ * gst_object_ref_sink: (skip)
  * @object: a #GstObject to sink
  *
  * Increase the reference count of @object, and possibly remove the floating
@@ -342,6 +360,7 @@
 static void
 gst_object_dispose (GObject * object)
 {
+  GstObject *self = (GstObject *) object;
   GstObject *parent;
 
   GST_CAT_TRACE_OBJECT (GST_CAT_REFCOUNTING, object, "dispose");
@@ -352,6 +371,16 @@
   GST_OBJECT_PARENT (object) = NULL;
   GST_OBJECT_UNLOCK (object);
 
+  if (self->control_bindings) {
+    GList *node;
+
+    for (node = self->control_bindings; node; node = g_list_next (node)) {
+      gst_object_unparent (node->data);
+    }
+    g_list_free (self->control_bindings);
+    self->control_bindings = NULL;
+  }
+
   ((GObjectClass *) gst_object_parent_class)->dispose (object);
 
   return;
@@ -381,10 +410,10 @@
   g_signal_handlers_destroy (object);
 
   g_free (gstobject->name);
-  g_mutex_free (gstobject->lock);
+  g_mutex_clear (&gstobject->lock);
 
 #ifndef GST_DISABLE_TRACE
-  gst_alloc_trace_free (_gst_object_trace, object);
+  _gst_alloc_trace_free (_gst_object_trace, object);
 #endif
 
   ((GObjectClass *) gst_object_parent_class)->finalize (object);
@@ -416,7 +445,7 @@
 
   gst_object = GST_OBJECT_CAST (object);
 #ifndef GST_DISABLE_GST_DEBUG
-  if (G_UNLIKELY (__gst_debug_min >= GST_LEVEL_LOG)) {
+  if (G_UNLIKELY (_gst_debug_min >= GST_LEVEL_LOG)) {
     name = gst_object_get_name (gst_object);
     debug_name = GST_STR_NULL (name);
   } else
@@ -665,7 +694,7 @@
     goto had_parent;
 
   object->parent = parent;
-  g_object_ref_sink (object);
+  gst_object_ref_sink (object);
   GST_OBJECT_UNLOCK (object);
 
   /* FIXME, this does not work, the deep notify takes the lock from the parent
@@ -950,3 +979,402 @@
 
   return path;
 }
+
+/* controller helper functions */
+
+/*
+ * gst_object_find_control_binding:
+ * @self: the gobject to search for a property in
+ * @name: the gobject property name to look for
+ *
+ * Searches the list of properties under control.
+ *
+ * Returns: a #GstControlBinding or %NULL if the property is not being
+ * controlled.
+ */
+static GstControlBinding *
+gst_object_find_control_binding (GstObject * self, const gchar * name)
+{
+  GstControlBinding *binding;
+  GList *node;
+
+  for (node = self->control_bindings; node; node = g_list_next (node)) {
+    binding = node->data;
+    /* FIXME: eventually use GQuark to speed it up */
+    if (!strcmp (binding->name, name)) {
+      GST_DEBUG_OBJECT (self, "found control binding for property '%s'", name);
+      return binding;
+    }
+  }
+  GST_DEBUG_OBJECT (self, "controller does not manage property '%s'", name);
+
+  return NULL;
+}
+
+/* controller functions */
+
+/**
+ * gst_object_suggest_next_sync:
+ * @object: the object that has controlled properties
+ *
+ * Returns a suggestion for timestamps where buffers should be split
+ * to get best controller results.
+ *
+ * Returns: Returns the suggested timestamp or %GST_CLOCK_TIME_NONE
+ * if no control-rate was set.
+ */
+GstClockTime
+gst_object_suggest_next_sync (GstObject * object)
+{
+  GstClockTime ret;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), GST_CLOCK_TIME_NONE);
+  g_return_val_if_fail (object->control_rate != GST_CLOCK_TIME_NONE,
+      GST_CLOCK_TIME_NONE);
+
+  GST_OBJECT_LOCK (object);
+
+  /* TODO: Implement more logic, depending on interpolation mode and control
+   * points
+   * FIXME: we need playback direction
+   */
+  ret = object->last_sync + object->control_rate;
+
+  GST_OBJECT_UNLOCK (object);
+
+  return ret;
+}
+
+/**
+ * gst_object_sync_values:
+ * @object: the object that has controlled properties
+ * @timestamp: the time that should be processed
+ *
+ * Sets the properties of the object, according to the #GstControlSources that
+ * (maybe) handle them and for the given timestamp.
+ *
+ * If this function fails, it is most likely the application developers fault.
+ * Most probably the control sources are not setup correctly.
+ *
+ * Returns: %TRUE if the controller values could be applied to the object
+ * properties, %FALSE otherwise
+ */
+gboolean
+gst_object_sync_values (GstObject * object, GstClockTime timestamp)
+{
+  GList *node;
+  gboolean ret = TRUE;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+
+  GST_LOG_OBJECT (object, "sync_values");
+  if (!object->control_bindings)
+    return TRUE;
+
+  /* FIXME: this deadlocks */
+  /* GST_OBJECT_LOCK (object); */
+  g_object_freeze_notify ((GObject *) object);
+  for (node = object->control_bindings; node; node = g_list_next (node)) {
+    ret &= gst_control_binding_sync_values ((GstControlBinding *) node->data,
+        object, timestamp, object->last_sync);
+  }
+  object->last_sync = timestamp;
+  g_object_thaw_notify ((GObject *) object);
+  /* GST_OBJECT_UNLOCK (object); */
+
+  return ret;
+}
+
+
+/**
+ * gst_object_has_active_control_bindings:
+ * @object: the object that has controlled properties
+ *
+ * Check if the @object has an active controlled properties.
+ *
+ * Returns: %TRUE if the object has active controlled properties
+ */
+gboolean
+gst_object_has_active_control_bindings (GstObject * object)
+{
+  gboolean res = FALSE;
+  GList *node;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+
+  GST_OBJECT_LOCK (object);
+  for (node = object->control_bindings; node; node = g_list_next (node)) {
+    res |= !gst_control_binding_is_disabled ((GstControlBinding *) node->data);
+  }
+  GST_OBJECT_UNLOCK (object);
+  return res;
+}
+
+/**
+ * gst_object_set_control_bindings_disabled:
+ * @object: the object that has controlled properties
+ * @disabled: boolean that specifies whether to disable the controller
+ * or not.
+ *
+ * This function is used to disable all controlled properties of the @object for
+ * some time, i.e. gst_object_sync_values() will do nothing.
+ */
+void
+gst_object_set_control_bindings_disabled (GstObject * object, gboolean disabled)
+{
+  GList *node;
+
+  g_return_if_fail (GST_IS_OBJECT (object));
+
+  GST_OBJECT_LOCK (object);
+  for (node = object->control_bindings; node; node = g_list_next (node)) {
+    gst_control_binding_set_disabled ((GstControlBinding *) node->data,
+        disabled);
+  }
+  GST_OBJECT_UNLOCK (object);
+}
+
+/**
+ * gst_object_set_control_binding_disabled:
+ * @object: the object that has controlled properties
+ * @property_name: property to disable
+ * @disabled: boolean that specifies whether to disable the controller
+ * or not.
+ *
+ * This function is used to disable the #GstController on a property for
+ * some time, i.e. gst_controller_sync_values() will do nothing for the
+ * property.
+ */
+void
+gst_object_set_control_binding_disabled (GstObject * object,
+    const gchar * property_name, gboolean disabled)
+{
+  GstControlBinding *binding;
+
+  g_return_if_fail (GST_IS_OBJECT (object));
+  g_return_if_fail (property_name);
+
+  GST_OBJECT_LOCK (object);
+  if ((binding = gst_object_find_control_binding (object, property_name))) {
+    gst_control_binding_set_disabled (binding, disabled);
+  }
+  GST_OBJECT_UNLOCK (object);
+}
+
+
+/**
+ * gst_object_add_control_binding:
+ * @object: the controller object
+ * @binding: (transfer full): the #GstControlBinding that should be used
+ *
+ * Sets the #GstControlBinding. If there already was a #GstControlBinding
+ * for this property it will be replaced.
+ * The @object will take ownership of the @binding.
+ *
+ * Returns: %FALSE if the given @binding has not been setup for this object  or
+ * %TRUE otherwise.
+ */
+gboolean
+gst_object_add_control_binding (GstObject * object, GstControlBinding * binding)
+{
+  GstControlBinding *old;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), FALSE);
+  //g_return_val_if_fail (g_type_is_a (binding->pspec->owner_type,
+  //        G_OBJECT_TYPE (object)), FALSE);
+
+  GST_OBJECT_LOCK (object);
+  if ((old = gst_object_find_control_binding (object, binding->name))) {
+    GST_DEBUG_OBJECT (object, "controlled property %s removed", old->name);
+    object->control_bindings = g_list_remove (object->control_bindings, old);
+    gst_object_unparent (GST_OBJECT_CAST (old));
+  }
+  object->control_bindings = g_list_prepend (object->control_bindings, binding);
+  gst_object_set_parent (GST_OBJECT_CAST (binding), object);
+  GST_DEBUG_OBJECT (object, "controlled property %s added", binding->name);
+  GST_OBJECT_UNLOCK (object);
+
+  return TRUE;
+}
+
+/**
+ * gst_object_get_control_binding:
+ * @object: the object
+ * @property_name: name of the property
+ *
+ * Gets the corresponding #GstControlBinding for the property. This should be
+ * unreferenced again after use.
+ *
+ * Returns: (transfer full): the #GstControlBinding for @property_name or %NULL if
+ * the property is not controlled.
+ */
+GstControlBinding *
+gst_object_get_control_binding (GstObject * object, const gchar * property_name)
+{
+  GstControlBinding *binding;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), NULL);
+  g_return_val_if_fail (property_name, NULL);
+
+  GST_OBJECT_LOCK (object);
+  if ((binding = gst_object_find_control_binding (object, property_name))) {
+    g_object_ref (binding);
+  }
+  GST_OBJECT_UNLOCK (object);
+
+  return binding;
+}
+
+/**
+ * gst_object_remove_control_binding:
+ * @object: the object
+ * @binding: the binding
+ *
+ * Removes the corresponding #GstControlBinding. If it was the
+ * last ref of the binding, it will be disposed.  
+ *
+ * Returns: %TRUE if the binding could be removed.
+ */
+gboolean
+gst_object_remove_control_binding (GstObject * object,
+    GstControlBinding * binding)
+{
+  GList *node;
+  gboolean ret = FALSE;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), FALSE);
+
+  GST_OBJECT_LOCK (object);
+  if ((node = g_list_find (object->control_bindings, binding))) {
+    GST_DEBUG_OBJECT (object, "controlled property %s removed", binding->name);
+    object->control_bindings =
+        g_list_delete_link (object->control_bindings, node);
+    gst_object_unparent (GST_OBJECT_CAST (binding));
+    ret = TRUE;
+  }
+  GST_OBJECT_UNLOCK (object);
+
+  return ret;
+}
+
+/**
+ * gst_object_get_value:
+ * @object: the object that has controlled properties
+ * @property_name: the name of the property to get
+ * @timestamp: the time the control-change should be read from
+ *
+ * Gets the value for the given controlled property at the requested time.
+ *
+ * Returns: the GValue of the property at the given time, or %NULL if the
+ * property isn't controlled.
+ */
+GValue *
+gst_object_get_value (GstObject * object, const gchar * property_name,
+    GstClockTime timestamp)
+{
+  GstControlBinding *binding;
+  GValue *val = NULL;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), NULL);
+  g_return_val_if_fail (property_name, NULL);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
+
+  GST_OBJECT_LOCK (object);
+  if ((binding = gst_object_find_control_binding (object, property_name))) {
+    val = gst_control_binding_get_value (binding, timestamp);
+  }
+  GST_OBJECT_UNLOCK (object);
+
+  return val;
+}
+
+/**
+ * gst_object_get_value_array:
+ * @object: the object that has controlled properties
+ * @property_name: the name of the property to get
+ * @timestamp: the time that should be processed
+ * @interval: the time spacing between subsequent values
+ * @n_values: the number of values
+ * @values: array to put control-values in
+ *
+ * Gets a number of values for the given controllered property starting at the
+ * requested time. The array @values need to hold enough space for @n_values of
+ * the same type as the objects property's type.
+ *
+ * This function is useful if one wants to e.g. draw a graph of the control
+ * curve or apply a control curve sample by sample.
+ *
+ * Returns: %TRUE if the given array could be filled, %FALSE otherwise
+ */
+gboolean
+gst_object_get_value_array (GstObject * object, const gchar * property_name,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values)
+{
+  gboolean res = FALSE;
+  GstControlBinding *binding;
+
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (property_name, FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
+  g_return_val_if_fail (values, FALSE);
+
+  GST_OBJECT_LOCK (object);
+  if ((binding = gst_object_find_control_binding (object, property_name))) {
+    res = gst_control_binding_get_value_array (binding, timestamp, interval,
+        n_values, values);
+  }
+  GST_OBJECT_UNLOCK (object);
+  return res;
+}
+
+
+/**
+ * gst_object_get_control_rate:
+ * @object: the object that has controlled properties
+ *
+ * Obtain the control-rate for this @object. Audio processing #GstElement
+ * objects will use this rate to sub-divide their processing loop and call
+ * gst_object_sync_values() inbetween. The length of the processing segment
+ * should be up to @control-rate nanoseconds.
+ *
+ * If the @object is not under property control, this will return
+ * %GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
+ *
+ * The control-rate is not expected to change if the element is in
+ * %GST_STATE_PAUSED or %GST_STATE_PLAYING.
+ *
+ * Returns: the control rate in nanoseconds
+ */
+GstClockTime
+gst_object_get_control_rate (GstObject * object)
+{
+  g_return_val_if_fail (GST_IS_OBJECT (object), FALSE);
+
+  return object->control_rate;
+}
+
+/**
+ * gst_object_set_control_rate:
+ * @object: the object that has controlled properties
+ * @control_rate: the new control-rate in nanoseconds.
+ *
+ * Change the control-rate for this @object. Audio processing #GstElement
+ * objects will use this rate to sub-divide their processing loop and call
+ * gst_object_sync_values() inbetween. The length of the processing segment
+ * should be up to @control-rate nanoseconds.
+ *
+ * The control-rate should not change if the element is in %GST_STATE_PAUSED or
+ * %GST_STATE_PLAYING.
+ */
+void
+gst_object_set_control_rate (GstObject * object, GstClockTime control_rate)
+{
+  g_return_if_fail (GST_IS_OBJECT (object));
+
+  object->control_rate = control_rate;
+}
diff --git a/gst/gstobject.h b/gst/gstobject.h
index 7c9ac04..e753516 100644
--- a/gst/gstobject.h
+++ b/gst/gstobject.h
@@ -75,7 +75,7 @@
  *
  * Acquire a reference to the mutex of this object.
  */
-#define GST_OBJECT_GET_LOCK(obj)               (GST_OBJECT_CAST(obj)->lock)
+#define GST_OBJECT_GET_LOCK(obj)               (&GST_OBJECT_CAST(obj)->lock)
 /**
  * GST_OBJECT_LOCK:
  * @obj: a #GstObject to lock
@@ -149,7 +149,6 @@
  */
 #define GST_OBJECT_FLAG_UNSET(obj,flag)        (GST_OBJECT_FLAGS (obj) &= ~(flag))
 
-
 typedef struct _GstObject GstObject;
 typedef struct _GstObjectClass GstObjectClass;
 
@@ -166,12 +165,16 @@
   GInitiallyUnowned object;
 
   /*< public >*/ /* with LOCK */
-  GMutex        *lock;        /* object LOCK */
+  GMutex         lock;        /* object LOCK */
   gchar         *name;        /* object name */
   GstObject     *parent;      /* this object's parent, weak ref */
   guint32        flags;
 
   /*< private >*/
+  GList         *control_bindings;  /* List of GstControlBinding */
+  guint64        control_rate;
+  guint64        last_sync;
+
   gpointer _gst_reserved;
 };
 
@@ -228,6 +231,33 @@
 /* misc utils */
 gboolean	gst_object_check_uniqueness	(GList *list, const gchar *name);
 
+/* controller functions */
+#include <gst/gstcontrolbinding.h>
+#include <gst/gstcontrolsource.h>
+
+GstClockTime    gst_object_suggest_next_sync      (GstObject * object);
+gboolean        gst_object_sync_values            (GstObject * object, GstClockTime timestamp);
+
+gboolean        gst_object_has_active_control_bindings   (GstObject *object);
+void            gst_object_set_control_bindings_disabled (GstObject *object, gboolean disabled);
+void            gst_object_set_control_binding_disabled  (GstObject *object,
+                                                          const gchar * property_name,
+                                                          gboolean disabled);
+
+gboolean        gst_object_add_control_binding    (GstObject * object, GstControlBinding * binding);
+GstControlBinding *
+                gst_object_get_control_binding    (GstObject *object, const gchar * property_name);
+gboolean        gst_object_remove_control_binding (GstObject * object, GstControlBinding * binding);
+
+GValue *        gst_object_get_value              (GstObject * object, const gchar * property_name,
+                                                   GstClockTime timestamp);
+gboolean        gst_object_get_value_array        (GstObject * object, const gchar * property_name,
+                                                   GstClockTime timestamp, GstClockTime interval,
+                                                   guint n_values, GValue *values);
+
+GstClockTime    gst_object_get_control_rate       (GstObject * object);
+void            gst_object_set_control_rate       (GstObject * object, GstClockTime control_rate);
+
 G_END_DECLS
 
 #endif /* __GST_OBJECT_H__ */
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 75732dc..0464209 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -23,41 +23,69 @@
  * SECTION:gstpad
  * @short_description: Object contained by elements that allows links to
  *                     other elements
- * @see_also: #GstPadTemplate, #GstElement, #GstEvent
+ * @see_also: #GstPadTemplate, #GstElement, #GstEvent, #GstQuery, #GstBuffer
  *
  * A #GstElement is linked to other elements via "pads", which are extremely
  * light-weight generic link points.
- * After two pads are retrieved from an element with gst_element_get_pad(),
- * the pads can be link with gst_pad_link(). (For quick links,
- * you can also use gst_element_link(), which will make the obvious
- * link for you if it's straightforward.)
+ *
+ * Pads have a #GstPadDirection, source pads produce data, sink pads consume
+ * data.
  *
  * Pads are typically created from a #GstPadTemplate with
- * gst_pad_new_from_template().
- *
- * Pads have #GstCaps attached to it to describe the media type they are
- * capable of dealing with.  gst_pad_get_caps() and gst_pad_set_caps() are
- * used to manipulate the caps of the pads.
- * Pads created from a pad template cannot set capabilities that are
- * incompatible with the pad template capabilities.
+ * gst_pad_new_from_template() and are then added to a #GstElement. This usually
+ * happens when the element is created but it can also happen dynamically based
+ * on the data that the element is processing or based on the pads that the
+ * application requests.
  *
  * Pads without pad templates can be created with gst_pad_new(),
  * which takes a direction and a name as an argument.  If the name is NULL,
  * then a guaranteed unique name will be assigned to it.
  *
+ * A #GstElement creating a pad will typically use the various
+ * gst_pad_set_*_function() calls to register callbacks for events, queries or
+ * dataflow on the pads.
+ *
  * gst_pad_get_parent() will retrieve the #GstElement that owns the pad.
  *
- * A #GstElement creating a pad will typically use the various
- * gst_pad_set_*_function() calls to register callbacks for various events
- * on the pads.
+ * After two pads are retrieved from an element with gst_element_get_pad(),
+ * the pads can be linked with gst_pad_link(). (For quick links,
+ * you can also use gst_element_link(), which will make the obvious
+ * link for you if it's straightforward.). Pads can be unlinked again with
+ * gst_pad_unlink(). gst_pad_get_peer() can be used to check what the pad is
+ * linked to.
+ *
+ * Before dataflow is possible on the pads, they need to be activated with
+ * gst_pad_set_active().
+ *
+ * gst_pad_query() and gst_pad_peer_query() can be used to query various
+ * properties of the pad and the stream.
+ *
+ * To send a #GstEvent on a pad, use gst_pad_send_event() and
+ * gst_pad_push_event(). Some events will be sticky on the pad, meaning that
+ * after they pass on the pad they can be queried later with
+ * gst_pad_get_sticky_event() and gst_pad_sticky_events_foreach().
+ * gst_pad_get_current_caps() and gst_pad_has_current_caps() are convenience
+ * functions to query the current sticky CAPS event on a pad.
  *
  * GstElements will use gst_pad_push() and gst_pad_pull_range() to push out
  * or pull in a buffer.
  *
- * To send a #GstEvent on a pad, use gst_pad_send_event() and
- * gst_pad_push_event().
+ * The dataflow, events and queries that happen on a pad can be monitored with
+ * probes that can be installed with gst_pad_add_probe(). gst_pad_is_blocked()
+ * can be used to check if a block probe is installed on the pad.
+ * gst_pad_is_blocking() checks if the blocking probe is currently blocking the
+ * pad. gst_pad_remove_probe() is used to remove a previously installed probe
+ * and unblock blocking probes if any.
  *
- * Last reviewed on 2006-07-06 (0.10.9)
+ * Pad have an offset that can be retrieved with gst_pad_get_offset(). This
+ * offset will be applied to the running_time of all data passing over the pad.
+ * gst_pad_set_offset() can be used to change the offset.
+ *
+ * Convenience functions exist to start, pause and stop the task on a pad with
+ * gst_pad_start_task(), gst_pad_pause_task() and gst_pad_stop_task()
+ * respectively.
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #include "gst_private.h"
@@ -65,7 +93,6 @@
 #include "gstpad.h"
 #include "gstpadtemplate.h"
 #include "gstenumtypes.h"
-#include "gstmarshal.h"
 #include "gstutils.h"
 #include "gstinfo.h"
 #include "gsterror.h"
@@ -101,16 +128,18 @@
  * moved to the active event when the eventfunc returned TRUE. */
 typedef struct
 {
-  GstEvent *pending;
+  gboolean received;
   GstEvent *event;
 } PadEvent;
 
 struct _GstPadPrivate
 {
-  PadEvent events[GST_EVENT_MAX_STICKY];
+  guint events_cookie;
+  GArray *events;
 
   gint using;
-  gint probe_cookie;
+  guint probe_list_cookie;
+  guint probe_cookie;
 };
 
 typedef struct
@@ -124,10 +153,10 @@
 typedef struct
 {
   GstPad *pad;
-  GstProbeType mask;
-  gpointer type_data;
-  GstProbeReturn ret;
+  GstPadProbeInfo *info;
+  gboolean dropped;
   gboolean pass;
+  gboolean marshalled;
   guint cookie;
 } ProbeMarshall;
 
@@ -138,15 +167,16 @@
 static void gst_pad_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
-static GstCaps *gst_pad_get_caps_unlocked (GstPad * pad, GstCaps * filter);
 static void gst_pad_set_pad_template (GstPad * pad, GstPadTemplate * templ);
-static gboolean gst_pad_activate_default (GstPad * pad);
-static gboolean gst_pad_acceptcaps_default (GstPad * pad, GstCaps * caps);
-static void gst_pad_fixate_caps_default (GstPad * pad, GstCaps * caps);
+static gboolean gst_pad_activate_default (GstPad * pad, GstObject * parent);
 static GstFlowReturn gst_pad_chain_list_default (GstPad * pad,
-    GstBufferList * list);
+    GstObject * parent, GstBufferList * list);
 
-static GstObjectClass *parent_class = NULL;
+static GstFlowReturn gst_pad_send_event_unchecked (GstPad * pad,
+    GstEvent * event, GstPadProbeType type);
+static GstFlowReturn gst_pad_push_event_unchecked (GstPad * pad,
+    GstEvent * event, GstPadProbeType type);
+
 static guint gst_pad_signals[LAST_SIGNAL] = { 0 };
 
 static GParamSpec *pspec_caps = NULL;
@@ -165,11 +195,10 @@
 
 static GstFlowQuarks flow_quarks[] = {
   {GST_FLOW_CUSTOM_SUCCESS, "custom-success", 0},
-  {GST_FLOW_RESEND, "resend", 0},
   {GST_FLOW_OK, "ok", 0},
   {GST_FLOW_NOT_LINKED, "not-linked", 0},
-  {GST_FLOW_WRONG_STATE, "wrong-state", 0},
-  {GST_FLOW_UNEXPECTED, "unexpected", 0},
+  {GST_FLOW_FLUSHING, "flushing", 0},
+  {GST_FLOW_EOS, "eos", 0},
   {GST_FLOW_NOT_NEGOTIATED, "not-negotiated", 0},
   {GST_FLOW_ERROR, "error", 0},
   {GST_FLOW_NOT_SUPPORTED, "not-supported", 0},
@@ -237,6 +266,7 @@
       GST_DEBUG_BOLD | GST_DEBUG_FG_GREEN, "dataflow inside pads"); \
 }
 
+#define gst_pad_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstPad, gst_pad, GST_TYPE_OBJECT, _do_init);
 
 static void
@@ -250,8 +280,6 @@
 
   g_type_class_add_private (klass, sizeof (GstPadPrivate));
 
-  parent_class = g_type_class_peek_parent (klass);
-
   gobject_class->dispose = gst_pad_dispose;
   gobject_class->finalize = gst_pad_finalize;
   gobject_class->set_property = gst_pad_set_property;
@@ -267,7 +295,7 @@
   gst_pad_signals[PAD_LINKED] =
       g_signal_new ("linked", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstPadClass, linked), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_PAD);
   /**
    * GstPad::unlinked:
    * @pad: the pad that emitted the signal
@@ -278,7 +306,7 @@
   gst_pad_signals[PAD_UNLINKED] =
       g_signal_new ("unlinked", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstPadClass, unlinked), NULL, NULL,
-      gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_PAD);
 
   pspec_caps = g_param_spec_boxed ("caps", "Caps",
       "The capabilities of the pad", GST_TYPE_CAPS,
@@ -301,12 +329,9 @@
   /* Register common function pointer descriptions */
   GST_DEBUG_REGISTER_FUNCPTR (gst_pad_activate_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_pad_event_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_pad_get_query_types_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_pad_query_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_pad_iterate_internal_links_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_pad_acceptcaps_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_pad_chain_list_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_pad_fixate_caps_default);
 }
 
 static void
@@ -318,100 +343,227 @@
 
   GST_PAD_ACTIVATEFUNC (pad) = gst_pad_activate_default;
   GST_PAD_EVENTFUNC (pad) = gst_pad_event_default;
-  GST_PAD_QUERYTYPEFUNC (pad) = gst_pad_get_query_types_default;
   GST_PAD_QUERYFUNC (pad) = gst_pad_query_default;
   GST_PAD_ITERINTLINKFUNC (pad) = gst_pad_iterate_internal_links_default;
-  GST_PAD_ACCEPTCAPSFUNC (pad) = gst_pad_acceptcaps_default;
-  GST_PAD_FIXATECAPSFUNC (pad) = gst_pad_fixate_caps_default;
   GST_PAD_CHAINLISTFUNC (pad) = gst_pad_chain_list_default;
 
   GST_PAD_SET_FLUSHING (pad);
 
-  g_static_rec_mutex_init (&pad->stream_rec_lock);
+  g_rec_mutex_init (&pad->stream_rec_lock);
 
-  pad->block_cond = g_cond_new ();
+  g_cond_init (&pad->block_cond);
 
   g_hook_list_init (&pad->probes, sizeof (GstProbe));
+
+  pad->priv->events = g_array_sized_new (FALSE, TRUE, sizeof (PadEvent), 16);
 }
 
 /* called when setting the pad inactive. It removes all sticky events from
  * the pad */
 static void
-clear_events (PadEvent events[])
+remove_events (GstPad * pad)
 {
-  guint i;
+  guint i, len;
+  GArray *events;
 
-  for (i = 0; i < GST_EVENT_MAX_STICKY; i++) {
-    gst_event_replace (&events[i].event, NULL);
-    gst_event_replace (&events[i].pending, NULL);
+  events = pad->priv->events;
+
+  len = events->len;
+  for (i = 0; i < len; i++) {
+    PadEvent *ev = &g_array_index (events, PadEvent, i);
+    gst_event_unref (ev->event);
+  }
+  GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+  g_array_set_size (events, 0);
+  pad->priv->events_cookie++;
+}
+
+static PadEvent *
+find_event_by_type (GstPad * pad, GstEventType type, guint idx)
+{
+  guint i, len;
+  GArray *events;
+  PadEvent *ev;
+
+  events = pad->priv->events;
+  len = events->len;
+
+  for (i = 0; i < len; i++) {
+    ev = &g_array_index (events, PadEvent, i);
+    if (ev->event == NULL)
+      continue;
+
+    if (GST_EVENT_TYPE (ev->event) == type) {
+      if (idx == 0)
+        goto found;
+      idx--;
+    }
+  }
+  ev = NULL;
+found:
+  return ev;
+}
+
+static PadEvent *
+find_event (GstPad * pad, GstEvent * event)
+{
+  guint i, len;
+  GArray *events;
+  PadEvent *ev;
+
+  events = pad->priv->events;
+  len = events->len;
+
+  for (i = 0; i < len; i++) {
+    ev = &g_array_index (events, PadEvent, i);
+    if (event == ev->event)
+      goto found;
+  }
+  ev = NULL;
+found:
+  return ev;
+}
+
+static void
+remove_event_by_type (GstPad * pad, GstEventType type)
+{
+  guint i, len;
+  GArray *events;
+  PadEvent *ev;
+
+  events = pad->priv->events;
+  len = events->len;
+
+  i = 0;
+  while (i < len) {
+    ev = &g_array_index (events, PadEvent, i);
+    if (ev->event == NULL)
+      goto next;
+
+    if (GST_EVENT_TYPE (ev->event) != type)
+      goto next;
+
+    gst_event_unref (ev->event);
+    g_array_remove_index (events, i);
+    len--;
+    pad->priv->events_cookie++;
+    continue;
+
+  next:
+    i++;
   }
 }
 
-/* The sticky event with @idx from the srcpad is copied to the
- * pending event on the sinkpad (when different).
- * This function applies the pad offsets in case of segment events.
- * This will make sure that we send the event to the sinkpad event
- * function when the next buffer of event arrives.
- * Should be called with the OBJECT lock of both pads.
- * This function returns TRUE when there is a pending event on the
- * sinkpad */
-static gboolean
-replace_event (GstPad * srcpad, GstPad * sinkpad, guint idx)
+/* check all events on srcpad against those on sinkpad. All events that are not
+ * on sinkpad are marked as received=FALSE and the PENDING_EVENTS is set on the
+ * srcpad so that the events will be sent next time */
+static void
+schedule_events (GstPad * srcpad, GstPad * sinkpad)
 {
-  PadEvent *srcev, *sinkev;
-  GstEvent *event;
+  gint i, len;
+  GArray *events;
+  PadEvent *ev;
   gboolean pending = FALSE;
 
-  srcev = &srcpad->priv->events[idx];
+  events = srcpad->priv->events;
+  len = events->len;
 
-  if ((event = srcev->event)) {
-    sinkev = &sinkpad->priv->events[idx];
+  for (i = 0; i < len; i++) {
+    ev = &g_array_index (events, PadEvent, i);
+    if (ev->event == NULL)
+      continue;
 
-    switch (GST_EVENT_TYPE (event)) {
-      case GST_EVENT_SEGMENT:
-      {
-        GstSegment segment;
-        gint64 offset;
-
-        offset = srcpad->offset + sinkpad->offset;
-        if (offset != 0) {
-          gst_event_copy_segment (event, &segment);
-          /* adjust the base time. FIXME, check negative times, try to tweak the
-           * start to do clipping on negative times */
-          segment.base += offset;
-          /* make a new event from the updated segment */
-          event = gst_event_new_segment (&segment);
-        }
-        break;
-      }
-      default:
-        break;
-    }
-    if (sinkev->event != event) {
-      /* put in the pending entry when different */
-      gst_event_replace (&sinkev->pending, event);
+    if (sinkpad == NULL || !find_event (sinkpad, ev->event)) {
+      ev->received = FALSE;
       pending = TRUE;
     }
   }
-  return pending;
+  if (pending)
+    GST_OBJECT_FLAG_SET (srcpad, GST_PAD_FLAG_PENDING_EVENTS);
 }
 
+typedef gboolean (*PadEventFunction) (GstPad * pad, PadEvent * ev,
+    gpointer user_data);
 
+/* should be called with pad LOCK */
 static void
-prepare_event_update (GstPad * srcpad, GstPad * sinkpad)
+events_foreach (GstPad * pad, PadEventFunction func, gpointer user_data)
 {
-  gboolean pending;
-  gint i;
+  guint i, len;
+  GArray *events;
+  gboolean ret;
+  guint cookie;
 
-  /* make sure we push the events from the source to this new peer, for this we
-   * copy the events on the sinkpad and mark EVENTS_PENDING */
-  pending = FALSE;
-  for (i = 0; i < GST_EVENT_MAX_STICKY; i++)
-    pending |= replace_event (srcpad, sinkpad, i);
+  events = pad->priv->events;
 
-  /* we had some new pending events, set our flag */
-  if (pending)
-    GST_OBJECT_FLAG_SET (sinkpad, GST_PAD_NEED_EVENTS);
+restart:
+  cookie = pad->priv->events_cookie;
+  i = 0;
+  len = events->len;
+  while (i < len) {
+    PadEvent *ev, ev_ret;
+
+    ev = &g_array_index (events, PadEvent, i);
+    if (G_UNLIKELY (ev->event == NULL))
+      goto next;
+
+    /* take aditional ref, func might release the lock */
+    ev_ret.event = gst_event_ref (ev->event);
+    ev_ret.received = ev->received;
+
+    ret = func (pad, &ev_ret, user_data);
+
+    /* recheck the cookie, lock might have been released and the list could have
+     * changed */
+    if (G_UNLIKELY (cookie != pad->priv->events_cookie)) {
+      if (G_LIKELY (ev_ret.event))
+        gst_event_unref (ev_ret.event);
+      goto restart;
+    }
+
+    /* store the received state */
+    ev->received = ev_ret.received;
+
+    /* if the event changed, we need to do something */
+    if (G_UNLIKELY (ev->event != ev_ret.event)) {
+      if (G_UNLIKELY (ev_ret.event == NULL)) {
+        /* function unreffed and set the event to NULL, remove it */
+        g_array_remove_index (events, i);
+        len--;
+        cookie = ++pad->priv->events_cookie;
+        continue;
+      } else {
+        /* function gave a new event for us */
+        gst_event_take (&ev->event, ev_ret.event);
+      }
+    } else {
+      /* just unref, nothing changed */
+      gst_event_unref (ev_ret.event);
+    }
+    if (!ret)
+      break;
+  next:
+    i++;
+  }
+}
+
+/* should be called with LOCK */
+static GstEvent *
+apply_pad_offset (GstPad * pad, GstEvent * event)
+{
+  /* check if we need to adjust the segment */
+  if (pad->offset != 0) {
+    GstSegment segment;
+
+    /* copy segment values */
+    gst_event_copy_segment (event, &segment);
+    gst_event_unref (event);
+
+    /* adjust and make a new event with the offset applied */
+    segment.base += pad->offset;
+    event = gst_event_new_segment (&segment);
+  }
+  return event;
 }
 
 /* should be called with the OBJECT_LOCK */
@@ -419,14 +571,11 @@
 get_pad_caps (GstPad * pad)
 {
   GstCaps *caps = NULL;
-  GstEvent *event;
-  guint idx;
+  PadEvent *ev;
 
-  idx = GST_EVENT_STICKY_IDX_TYPE (GST_EVENT_CAPS);
-  /* we can only use the caps when we have successfully send the caps
-   * event to the event function and is thus in the active entry */
-  if ((event = pad->priv->events[idx].event))
-    gst_event_parse_caps (event, &caps);
+  ev = find_event_by_type (pad, GST_EVENT_CAPS, 0);
+  if (ev && ev->event)
+    gst_event_parse_caps (ev->event, &caps);
 
   return caps;
 }
@@ -454,7 +603,7 @@
 
   gst_pad_set_pad_template (pad, NULL);
 
-  clear_events (pad->priv->events);
+  remove_events (pad);
 
   g_hook_list_clear (&pad->probes);
 
@@ -474,8 +623,30 @@
     gst_object_unref (task);
   }
 
-  g_static_rec_mutex_free (&pad->stream_rec_lock);
-  g_cond_free (pad->block_cond);
+  if (pad->activatenotify)
+    pad->activatenotify (pad->activatedata);
+  if (pad->activatemodenotify)
+    pad->activatemodenotify (pad->activatemodedata);
+  if (pad->linknotify)
+    pad->linknotify (pad->linkdata);
+  if (pad->unlinknotify)
+    pad->unlinknotify (pad->unlinkdata);
+  if (pad->chainnotify)
+    pad->chainnotify (pad->chaindata);
+  if (pad->chainlistnotify)
+    pad->chainlistnotify (pad->chainlistdata);
+  if (pad->getrangenotify)
+    pad->getrangenotify (pad->getrangedata);
+  if (pad->eventnotify)
+    pad->eventnotify (pad->eventdata);
+  if (pad->querynotify)
+    pad->querynotify (pad->querydata);
+  if (pad->iterintlinknotify)
+    pad->iterintlinknotify (pad->iterintlinkdata);
+
+  g_rec_mutex_clear (&pad->stream_rec_lock);
+  g_cond_clear (&pad->block_cond);
+  g_array_free (pad->priv->events, TRUE);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -534,7 +705,7 @@
  * will be assigned.
  * This function makes a copy of the name so you can safely free the name.
  *
- * Returns: (transfer full): a new #GstPad, or NULL in case of an error.
+ * Returns: (transfer floating): a new #GstPad, or NULL in case of an error.
  *
  * MT safe.
  */
@@ -591,6 +762,20 @@
   return pad;
 }
 
+#define ACQUIRE_PARENT(pad, parent, label)                      \
+  G_STMT_START {                                                \
+    if (G_LIKELY ((parent = GST_OBJECT_PARENT (pad))))          \
+      gst_object_ref (parent);                                  \
+    else if (G_LIKELY (GST_PAD_NEEDS_PARENT (pad)))             \
+      goto label;                                               \
+  } G_STMT_END
+
+#define RELEASE_PARENT(parent)                                  \
+  G_STMT_START {                                                \
+    if (G_LIKELY (parent))                                      \
+      gst_object_unref (parent);                                \
+  } G_STMT_END
+
 /**
  * gst_pad_get_direction:
  * @pad: a #GstPad to get the direction of.
@@ -618,53 +803,72 @@
 }
 
 static gboolean
-gst_pad_activate_default (GstPad * pad)
+gst_pad_activate_default (GstPad * pad, GstObject * parent)
 {
-  return gst_pad_activate_push (pad, TRUE);
+  return gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE);
 }
 
 static void
-pre_activate (GstPad * pad, GstActivateMode new_mode)
+pre_activate (GstPad * pad, GstPadMode new_mode)
 {
   switch (new_mode) {
-    case GST_ACTIVATE_PUSH:
-    case GST_ACTIVATE_PULL:
+    case GST_PAD_MODE_NONE:
       GST_OBJECT_LOCK (pad);
-      GST_DEBUG_OBJECT (pad, "setting ACTIVATE_MODE %d, unset flushing",
-          new_mode);
-      GST_PAD_UNSET_FLUSHING (pad);
-      GST_PAD_ACTIVATE_MODE (pad) = new_mode;
-      GST_OBJECT_UNLOCK (pad);
-      break;
-    case GST_ACTIVATE_NONE:
-      GST_OBJECT_LOCK (pad);
-      GST_DEBUG_OBJECT (pad, "setting ACTIVATE_MODE NONE, set flushing");
+      GST_DEBUG_OBJECT (pad, "setting PAD_MODE NONE, set flushing");
       GST_PAD_SET_FLUSHING (pad);
-      GST_PAD_ACTIVATE_MODE (pad) = new_mode;
+      GST_PAD_MODE (pad) = new_mode;
       /* unlock blocked pads so element can resume and stop */
       GST_PAD_BLOCK_BROADCAST (pad);
       GST_OBJECT_UNLOCK (pad);
       break;
+    case GST_PAD_MODE_PUSH:
+    case GST_PAD_MODE_PULL:
+      GST_OBJECT_LOCK (pad);
+      GST_DEBUG_OBJECT (pad, "setting PAD_MODE %d, unset flushing", new_mode);
+      GST_PAD_UNSET_FLUSHING (pad);
+      GST_PAD_MODE (pad) = new_mode;
+      if (GST_PAD_IS_SINK (pad)) {
+        GstPad *peer;
+        /* make sure the peer src pad sends us all events */
+        if ((peer = GST_PAD_PEER (pad))) {
+          gst_object_ref (peer);
+          GST_OBJECT_UNLOCK (pad);
+
+          GST_DEBUG_OBJECT (pad, "reschedule events on peer %s:%s",
+              GST_DEBUG_PAD_NAME (peer));
+
+          GST_OBJECT_LOCK (peer);
+          schedule_events (peer, NULL);
+          GST_OBJECT_UNLOCK (peer);
+
+          gst_object_unref (peer);
+        } else {
+          GST_OBJECT_UNLOCK (pad);
+        }
+      } else {
+        GST_OBJECT_UNLOCK (pad);
+      }
+      break;
   }
 }
 
 static void
-post_activate (GstPad * pad, GstActivateMode new_mode)
+post_activate (GstPad * pad, GstPadMode new_mode)
 {
   switch (new_mode) {
-    case GST_ACTIVATE_PUSH:
-    case GST_ACTIVATE_PULL:
-      /* nop */
-      break;
-    case GST_ACTIVATE_NONE:
+    case GST_PAD_MODE_NONE:
       /* ensures that streaming stops */
       GST_PAD_STREAM_LOCK (pad);
       GST_DEBUG_OBJECT (pad, "stopped streaming");
       GST_OBJECT_LOCK (pad);
-      clear_events (pad->priv->events);
+      remove_events (pad);
       GST_OBJECT_UNLOCK (pad);
       GST_PAD_STREAM_UNLOCK (pad);
       break;
+    case GST_PAD_MODE_PUSH:
+    case GST_PAD_MODE_PULL:
+      /* NOP */
+      break;
   }
 }
 
@@ -691,54 +895,56 @@
 gboolean
 gst_pad_set_active (GstPad * pad, gboolean active)
 {
-  GstActivateMode old;
+  GstObject *parent;
+  GstPadMode old;
   gboolean ret = FALSE;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
 
   GST_OBJECT_LOCK (pad);
-  old = GST_PAD_ACTIVATE_MODE (pad);
+  old = GST_PAD_MODE (pad);
+  ACQUIRE_PARENT (pad, parent, no_parent);
   GST_OBJECT_UNLOCK (pad);
 
   if (active) {
-    switch (old) {
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad, "activating pad from push");
-        ret = TRUE;
-        break;
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad, "activating pad from pull");
-        ret = TRUE;
-        break;
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "activating pad from none");
-        ret = (GST_PAD_ACTIVATEFUNC (pad)) (pad);
-        break;
-      default:
-        GST_DEBUG_OBJECT (pad, "unknown activation mode!");
-        break;
+    if (old == GST_PAD_MODE_NONE) {
+      GST_DEBUG_OBJECT (pad, "activating pad from none");
+      ret = (GST_PAD_ACTIVATEFUNC (pad)) (pad, parent);
+    } else {
+      GST_DEBUG_OBJECT (pad, "pad was active in mode %d", old);
+      ret = TRUE;
     }
   } else {
-    switch (old) {
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from push");
-        ret = gst_pad_activate_push (pad, FALSE);
-        break;
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from pull");
-        ret = gst_pad_activate_pull (pad, FALSE);
-        break;
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from none");
-        ret = TRUE;
-        break;
-      default:
-        GST_DEBUG_OBJECT (pad, "unknown activation mode!");
-        break;
+    if (old == GST_PAD_MODE_NONE) {
+      GST_DEBUG_OBJECT (pad, "pad was inactive");
+      ret = TRUE;
+    } else {
+      GST_DEBUG_OBJECT (pad, "deactivating pad from mode %d", old);
+      ret = gst_pad_activate_mode (pad, old, FALSE);
     }
   }
 
-  if (!ret) {
+  RELEASE_PARENT (parent);
+
+  if (G_UNLIKELY (!ret))
+    goto failed;
+
+  if (!active) {
+    GST_OBJECT_LOCK (pad);
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+    GST_OBJECT_UNLOCK (pad);
+  }
+  return ret;
+
+  /* ERRORS */
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
+failed:
+  {
     GST_OBJECT_LOCK (pad);
     if (!active) {
       g_critical ("Failed to deactivate pad %s:%s, very bad",
@@ -747,27 +953,18 @@
       GST_WARNING_OBJECT (pad, "Failed to activate pad");
     }
     GST_OBJECT_UNLOCK (pad);
-  } else {
-    if (!active) {
-      GST_OBJECT_LOCK (pad);
-      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_NEED_RECONFIGURE);
-      GST_OBJECT_UNLOCK (pad);
-    }
+    return FALSE;
   }
-
-  return ret;
 }
 
 /**
- * gst_pad_activate_pull:
+ * gst_pad_activate_mode:
  * @pad: the #GstPad to activate or deactivate.
+ * @mode: the requested activation mode
  * @active: whether or not the pad should be active.
  *
- * Activates or deactivates the given pad in pull mode via dispatching to the
- * pad's activatepullfunc. For use from within pad activation functions only.
- * When called on sink pads, will first proxy the call to the peer pad, which
- * is expected to activate its internally linked pads from within its
- * activate_pull function.
+ * Activates or deactivates the given pad in @mode via dispatching to the
+ * pad's activatemodefunc. For use from within pad activation functions only.
  *
  * If you don't know what this is, you probably don't want to call it.
  *
@@ -776,79 +973,69 @@
  * MT safe.
  */
 gboolean
-gst_pad_activate_pull (GstPad * pad, gboolean active)
+gst_pad_activate_mode (GstPad * pad, GstPadMode mode, gboolean active)
 {
-  GstActivateMode old, new;
+  gboolean res = FALSE;
+  GstObject *parent;
+  GstPadMode old, new;
+  GstPadDirection dir;
   GstPad *peer;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
 
   GST_OBJECT_LOCK (pad);
-  old = GST_PAD_ACTIVATE_MODE (pad);
+  old = GST_PAD_MODE (pad);
+  dir = GST_PAD_DIRECTION (pad);
+  ACQUIRE_PARENT (pad, parent, no_parent);
   GST_OBJECT_UNLOCK (pad);
 
-  if (active) {
-    switch (old) {
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad, "activating pad from pull, was ok");
-        goto was_ok;
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad,
-            "activating pad from push, deactivate push first");
-        /* pad was activate in the wrong direction, deactivate it
-         * and reactivate it in pull mode */
-        if (G_UNLIKELY (!gst_pad_activate_push (pad, FALSE)))
-          goto deactivate_failed;
-        /* fallthrough, pad is deactivated now. */
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "activating pad from none");
-        break;
-    }
-  } else {
-    switch (old) {
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from none, was ok");
-        goto was_ok;
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from push, weird");
-        /* pad was activated in the other direction, deactivate it
-         * in push mode, this should not happen... */
-        if (G_UNLIKELY (!gst_pad_activate_push (pad, FALSE)))
-          goto deactivate_failed;
-        /* everything is fine now */
-        goto was_ok;
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from pull");
-        break;
-    }
+  new = active ? mode : GST_PAD_MODE_NONE;
+
+  if (old == new)
+    goto was_ok;
+
+  if (active && old != mode) {
+    /* pad was activate in the wrong direction, deactivate it
+     * and reactivate it in the requested mode */
+    GST_DEBUG_OBJECT (pad, "deactivating pad from mode %d", old);
+    if (G_UNLIKELY (!gst_pad_activate_mode (pad, old, FALSE)))
+      goto deactivate_failed;
   }
 
-  if (gst_pad_get_direction (pad) == GST_PAD_SINK) {
-    if ((peer = gst_pad_get_peer (pad))) {
-      GST_DEBUG_OBJECT (pad, "calling peer");
-      if (G_UNLIKELY (!gst_pad_activate_pull (peer, active)))
-        goto peer_failed;
-      gst_object_unref (peer);
-    } else {
-      /* there is no peer, this is only fatal when we activate. When we
-       * deactivate, we must assume the application has unlinked the peer and
-       * will deactivate it eventually. */
-      if (active)
-        goto not_linked;
-      else
-        GST_DEBUG_OBJECT (pad, "deactivating unlinked pad");
-    }
-  } else {
-    if (G_UNLIKELY (GST_PAD_GETRANGEFUNC (pad) == NULL))
-      goto failure;             /* Can't activate pull on a src without a
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+    {
+      if (dir == GST_PAD_SINK) {
+        if ((peer = gst_pad_get_peer (pad))) {
+          GST_DEBUG_OBJECT (pad, "calling peer");
+          if (G_UNLIKELY (!gst_pad_activate_mode (peer, mode, active)))
+            goto peer_failed;
+          gst_object_unref (peer);
+        } else {
+          /* there is no peer, this is only fatal when we activate. When we
+           * deactivate, we must assume the application has unlinked the peer and
+           * will deactivate it eventually. */
+          if (active)
+            goto not_linked;
+          else
+            GST_DEBUG_OBJECT (pad, "deactivating unlinked pad");
+        }
+      } else {
+        if (G_UNLIKELY (GST_PAD_GETRANGEFUNC (pad) == NULL))
+          goto failure;         /* Can't activate pull on a src without a
                                    getrange function */
+      }
+      break;
+    }
+    default:
+      break;
   }
 
-  new = active ? GST_ACTIVATE_PULL : GST_ACTIVATE_NONE;
   pre_activate (pad, new);
 
-  if (GST_PAD_ACTIVATEPULLFUNC (pad)) {
-    if (G_UNLIKELY (!GST_PAD_ACTIVATEPULLFUNC (pad) (pad, active)))
+  if (GST_PAD_ACTIVATEMODEFUNC (pad)) {
+    if (G_UNLIKELY (!GST_PAD_ACTIVATEMODEFUNC (pad) (pad, parent, mode,
+                active)))
       goto failure;
   } else {
     /* can happen for sinks of passthrough elements */
@@ -856,153 +1043,59 @@
 
   post_activate (pad, new);
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "%s in pull mode",
-      active ? "activated" : "deactivated");
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "%s in mode %d",
+      active ? "activated" : "deactivated", mode);
 
-  return TRUE;
+exit_success:
+  res = TRUE;
+exit:
+  RELEASE_PARENT (parent);
 
+  return res;
+
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
 was_ok:
   {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in pull mode",
-        active ? "activated" : "deactivated");
-    return TRUE;
+    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in mode %d",
+        active ? "activated" : "deactivated", mode);
+    goto exit_success;
   }
 deactivate_failed:
   {
     GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad,
-        "failed to %s in switch to pull from mode %d",
-        (active ? "activate" : "deactivate"), old);
-    return FALSE;
+        "failed to %s in switch to mode %d from mode %d",
+        (active ? "activate" : "deactivate"), mode, old);
+    goto exit;
   }
 peer_failed:
   {
     GST_OBJECT_LOCK (peer);
     GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad,
-        "activate_pull on peer (%s:%s) failed", GST_DEBUG_PAD_NAME (peer));
+        "activate_mode on peer (%s:%s) failed", GST_DEBUG_PAD_NAME (peer));
     GST_OBJECT_UNLOCK (peer);
     gst_object_unref (peer);
-    return FALSE;
+    goto exit;
   }
 not_linked:
   {
     GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "can't activate unlinked sink "
         "pad in pull mode");
-    return FALSE;
+    goto exit;
   }
 failure:
   {
     GST_OBJECT_LOCK (pad);
-    GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "failed to %s in pull mode",
-        active ? "activate" : "deactivate");
+    GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "failed to %s in mode %d",
+        active ? "activate" : "deactivate", mode);
     GST_PAD_SET_FLUSHING (pad);
-    GST_PAD_ACTIVATE_MODE (pad) = old;
+    GST_PAD_MODE (pad) = old;
     GST_OBJECT_UNLOCK (pad);
-    return FALSE;
-  }
-}
-
-/**
- * gst_pad_activate_push:
- * @pad: the #GstPad to activate or deactivate.
- * @active: whether the pad should be active or not.
- *
- * Activates or deactivates the given pad in push mode via dispatching to the
- * pad's activatepushfunc. For use from within pad activation functions only.
- *
- * If you don't know what this is, you probably don't want to call it.
- *
- * Returns: %TRUE if the operation was successful.
- *
- * MT safe.
- */
-gboolean
-gst_pad_activate_push (GstPad * pad, gboolean active)
-{
-  GstActivateMode old, new;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "trying to set %s in push mode",
-      active ? "activated" : "deactivated");
-
-  GST_OBJECT_LOCK (pad);
-  old = GST_PAD_ACTIVATE_MODE (pad);
-  GST_OBJECT_UNLOCK (pad);
-
-  if (active) {
-    switch (old) {
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad, "activating pad from push, was ok");
-        goto was_ok;
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad,
-            "activating pad from push, deactivating pull first");
-        /* pad was activate in the wrong direction, deactivate it
-         * an reactivate it in push mode */
-        if (G_UNLIKELY (!gst_pad_activate_pull (pad, FALSE)))
-          goto deactivate_failed;
-        /* fallthrough, pad is deactivated now. */
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "activating pad from none");
-        break;
-    }
-  } else {
-    switch (old) {
-      case GST_ACTIVATE_NONE:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from none, was ok");
-        goto was_ok;
-      case GST_ACTIVATE_PULL:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from pull, weird");
-        /* pad was activated in the other direction, deactivate it
-         * in pull mode, this should not happen... */
-        if (G_UNLIKELY (!gst_pad_activate_pull (pad, FALSE)))
-          goto deactivate_failed;
-        /* everything is fine now */
-        goto was_ok;
-      case GST_ACTIVATE_PUSH:
-        GST_DEBUG_OBJECT (pad, "deactivating pad from push");
-        break;
-    }
-  }
-
-  new = active ? GST_ACTIVATE_PUSH : GST_ACTIVATE_NONE;
-  pre_activate (pad, new);
-
-  if (GST_PAD_ACTIVATEPUSHFUNC (pad)) {
-    if (G_UNLIKELY (!GST_PAD_ACTIVATEPUSHFUNC (pad) (pad, active))) {
-      goto failure;
-    }
-  } else {
-    /* quite ok, element relies on state change func to prepare itself */
-  }
-
-  post_activate (pad, new);
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "%s in push mode",
-      active ? "activated" : "deactivated");
-  return TRUE;
-
-was_ok:
-  {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in push mode",
-        active ? "activated" : "deactivated");
-    return TRUE;
-  }
-deactivate_failed:
-  {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad,
-        "failed to %s in switch to push from mode %d",
-        (active ? "activate" : "deactivate"), old);
-    return FALSE;
-  }
-failure:
-  {
-    GST_OBJECT_LOCK (pad);
-    GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "failed to %s in push mode",
-        active ? "activate" : "deactivate");
-    GST_PAD_SET_FLUSHING (pad);
-    GST_PAD_ACTIVATE_MODE (pad) = old;
-    GST_OBJECT_UNLOCK (pad);
-    return FALSE;
+    goto exit;
   }
 }
 
@@ -1042,18 +1135,13 @@
  * Be notified of different states of pads. The provided callback is called for
  * every state that matches @mask.
  *
- * <note>
- *  Pad probe handlers are only called for source pads in push mode
- *  and sink pads in pull mode.
- * </note>
- *
  * Returns: an id or 0 on error. The id can be used to remove the probe with
  * gst_pad_remove_probe().
  *
  * MT safe.
  */
 gulong
-gst_pad_add_probe (GstPad * pad, GstProbeType mask,
+gst_pad_add_probe (GstPad * pad, GstPadProbeType mask,
     GstPadProbeCallback callback, gpointer user_data,
     GDestroyNotify destroy_data)
 {
@@ -1064,6 +1152,7 @@
   g_return_val_if_fail (mask != 0, 0);
 
   GST_OBJECT_LOCK (pad);
+
   /* make a new probe */
   hook = g_hook_alloc (&pad->probes);
 
@@ -1072,24 +1161,23 @@
 
   /* when no contraints are given for the types, assume all types are
    * acceptable */
-  if ((mask & GST_PROBE_TYPE_DATA) == 0)
-    mask |= GST_PROBE_TYPE_DATA;
-  if ((mask & GST_PROBE_TYPE_SCHEDULING) == 0)
-    mask |= GST_PROBE_TYPE_SCHEDULING;
+  if ((mask & GST_PAD_PROBE_TYPE_ALL_BOTH) == 0)
+    mask |= GST_PAD_PROBE_TYPE_ALL_BOTH;
+  if ((mask & GST_PAD_PROBE_TYPE_SCHEDULING) == 0)
+    mask |= GST_PAD_PROBE_TYPE_SCHEDULING;
 
   /* store our flags and other fields */
   hook->flags |= (mask << G_HOOK_FLAG_USER_SHIFT);
   hook->func = callback;
   hook->data = user_data;
   hook->destroy = destroy_data;
-  PROBE_COOKIE (hook) = 0;
-
-  /* incremenent cookie so that the new hook get's called */
-  pad->priv->probe_cookie++;
+  PROBE_COOKIE (hook) = (pad->priv->probe_cookie - 1);
 
   /* add the probe */
   g_hook_prepend (&pad->probes, hook);
   pad->num_probes++;
+  /* incremenent cookie so that the new hook get's called */
+  pad->priv->probe_list_cookie++;
 
   /* get the id of the hook, we return this and it can be used to remove the
    * probe later */
@@ -1097,16 +1185,16 @@
 
   GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "got probe id %lu", res);
 
-  if (mask & GST_PROBE_TYPE_BLOCKING) {
+  if (mask & GST_PAD_PROBE_TYPE_BLOCKING) {
     /* we have a block probe */
     pad->num_blocked++;
-    GST_OBJECT_FLAG_SET (pad, GST_PAD_BLOCKED);
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_BLOCKED);
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "added blocking probe, "
         "now %d blocking probes", pad->num_blocked);
   }
 
   /* call the callback if we need to be called for idle callbacks */
-  if ((mask & GST_PROBE_TYPE_IDLE) && (callback != NULL)) {
+  if ((mask & GST_PAD_PROBE_TYPE_IDLE) && (callback != NULL)) {
     if (pad->priv->using > 0) {
       /* the pad is in use, we can't signal the idle callback yet. Since we set the
        * flag above, the last thread to leave the push will do the callback. New
@@ -1115,12 +1203,14 @@
           "pad is in use, delay idle callback");
       GST_OBJECT_UNLOCK (pad);
     } else {
+      GstPadProbeInfo info = { GST_PAD_PROBE_TYPE_IDLE, res, };
+
       /* the pad is idle now, we can signal the idle callback now */
       GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
           "pad is idle, trigger idle callback");
       GST_OBJECT_UNLOCK (pad);
 
-      callback (pad, GST_PROBE_TYPE_IDLE, NULL, user_data);
+      callback (pad, &info, user_data);
     }
   } else {
     GST_OBJECT_UNLOCK (pad);
@@ -1131,18 +1221,18 @@
 static void
 cleanup_hook (GstPad * pad, GHook * hook)
 {
-  GstProbeType type;
+  GstPadProbeType type;
 
   type = (hook->flags) >> G_HOOK_FLAG_USER_SHIFT;
 
-  if (type & GST_PROBE_TYPE_BLOCKING) {
+  if (type & GST_PAD_PROBE_TYPE_BLOCKING) {
     /* unblock when we remove the last blocking probe */
     pad->num_blocked--;
     GST_DEBUG_OBJECT (pad, "remove blocking probe, now %d left",
         pad->num_blocked);
     if (pad->num_blocked == 0) {
       GST_DEBUG_OBJECT (pad, "last blocking probe removed, unblocking");
-      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_BLOCKED);
+      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_BLOCKED);
       GST_PAD_BLOCK_BROADCAST (pad);
     }
   }
@@ -1207,7 +1297,7 @@
   g_return_val_if_fail (GST_IS_PAD (pad), result);
 
   GST_OBJECT_LOCK (pad);
-  result = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKED);
+  result = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKED);
   GST_OBJECT_UNLOCK (pad);
 
   return result;
@@ -1235,8 +1325,7 @@
 
   GST_OBJECT_LOCK (pad);
   /* the blocking flag is only valid if the pad is not flushing */
-  result = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKING) &&
-      !GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLUSHING);
+  result = GST_PAD_IS_BLOCKING (pad) && !GST_PAD_IS_FLUSHING (pad);
   GST_OBJECT_UNLOCK (pad);
 
   return result;
@@ -1246,10 +1335,10 @@
  * gst_pad_check_reconfigure:
  * @pad: the #GstPad to check
  *
- * Check and clear the #GST_PAD_NEED_RECONFIGURE flag on @pad and return %TRUE
+ * Check and clear the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
  * if the flag was set.
  *
- * Returns: %TRUE is the GST_PAD_NEED_RECONFIGURE flag was set on @pad.
+ * Returns: %TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on @pad.
  */
 gboolean
 gst_pad_check_reconfigure (GstPad * pad)
@@ -1260,7 +1349,9 @@
 
   GST_OBJECT_LOCK (pad);
   reconfigure = GST_PAD_NEEDS_RECONFIGURE (pad);
-  GST_OBJECT_FLAG_UNSET (pad, GST_PAD_NEED_RECONFIGURE);
+  if (reconfigure)
+    GST_DEBUG_OBJECT (pad, "remove RECONFIGURE flag");
+  GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
   GST_OBJECT_UNLOCK (pad);
 
   return reconfigure;
@@ -1279,14 +1370,16 @@
   g_return_if_fail (GST_IS_PAD (pad));
 
   GST_OBJECT_LOCK (pad);
-  GST_OBJECT_FLAG_SET (pad, GST_PAD_NEED_RECONFIGURE);
+  GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
   GST_OBJECT_UNLOCK (pad);
 }
 
 /**
- * gst_pad_set_activate_function:
+ * gst_pad_set_activate_function_full:
  * @pad: a #GstPad.
  * @activate: the #GstPadActivateFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @activate will not be used anymore.
  *
  * Sets the given activate function for @pad. The activate function will
  * dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
@@ -1295,77 +1388,81 @@
  * Call this function if your sink pad can start a pull-based task.
  */
 void
-gst_pad_set_activate_function (GstPad * pad, GstPadActivateFunction activate)
+gst_pad_set_activate_function_full (GstPad * pad,
+    GstPadActivateFunction activate, gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->activatenotify)
+    pad->activatenotify (pad->activatedata);
   GST_PAD_ACTIVATEFUNC (pad) = activate;
+  pad->activatedata = user_data;
+  pad->activatenotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "activatefunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (activate));
 }
 
 /**
- * gst_pad_set_activatepull_function:
+ * gst_pad_set_activatemode_function_full:
  * @pad: a #GstPad.
- * @activatepull: the #GstPadActivateModeFunction to set.
+ * @activatemode: the #GstPadActivateModeFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @activatemode will not be used anymore.
  *
- * Sets the given activate_pull function for the pad. An activate_pull function
- * prepares the element and any upstream connections for pulling. See XXX
- * part-activation.txt for details.
+ * Sets the given activate_mode function for the pad. An activate_mode function
+ * prepares the element for data passing.
  */
 void
-gst_pad_set_activatepull_function (GstPad * pad,
-    GstPadActivateModeFunction activatepull)
+gst_pad_set_activatemode_function_full (GstPad * pad,
+    GstPadActivateModeFunction activatemode, gpointer user_data,
+    GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
-  GST_PAD_ACTIVATEPULLFUNC (pad) = activatepull;
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "activatepullfunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (activatepull));
+  if (pad->activatemodenotify)
+    pad->activatemodenotify (pad->activatemodedata);
+  GST_PAD_ACTIVATEMODEFUNC (pad) = activatemode;
+  pad->activatemodedata = user_data;
+  pad->activatemodenotify = notify;
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "activatemodefunc set to %s",
+      GST_DEBUG_FUNCPTR_NAME (activatemode));
 }
 
 /**
- * gst_pad_set_activatepush_function:
- * @pad: a #GstPad.
- * @activatepush: the #GstPadActivateModeFunction to set.
- *
- * Sets the given activate_push function for the pad. An activate_push function
- * prepares the element for pushing. See XXX part-activation.txt for details.
- */
-void
-gst_pad_set_activatepush_function (GstPad * pad,
-    GstPadActivateModeFunction activatepush)
-{
-  g_return_if_fail (GST_IS_PAD (pad));
-
-  GST_PAD_ACTIVATEPUSHFUNC (pad) = activatepush;
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "activatepushfunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (activatepush));
-}
-
-/**
- * gst_pad_set_chain_function:
+ * gst_pad_set_chain_function_full:
  * @pad: a sink #GstPad.
  * @chain: the #GstPadChainFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @chain will not be used anymore.
  *
  * Sets the given chain function for the pad. The chain function is called to
  * process a #GstBuffer input buffer. see #GstPadChainFunction for more details.
  */
 void
-gst_pad_set_chain_function (GstPad * pad, GstPadChainFunction chain)
+gst_pad_set_chain_function_full (GstPad * pad, GstPadChainFunction chain,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
   g_return_if_fail (GST_PAD_IS_SINK (pad));
 
+  if (pad->chainnotify)
+    pad->chainnotify (pad->chaindata);
   GST_PAD_CHAINFUNC (pad) = chain;
+  pad->chaindata = user_data;
+  pad->chainnotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "chainfunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (chain));
 }
 
 /**
- * gst_pad_set_chain_list_function:
+ * gst_pad_set_chain_list_function_full:
  * @pad: a sink #GstPad.
  * @chainlist: the #GstPadChainListFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @chainlist will not be used anymore.
  *
  * Sets the given chain list function for the pad. The chainlist function is
  * called to process a #GstBufferList input buffer list. See
@@ -1374,181 +1471,135 @@
  * Since: 0.10.24
  */
 void
-gst_pad_set_chain_list_function (GstPad * pad,
-    GstPadChainListFunction chainlist)
+gst_pad_set_chain_list_function_full (GstPad * pad,
+    GstPadChainListFunction chainlist, gpointer user_data,
+    GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
   g_return_if_fail (GST_PAD_IS_SINK (pad));
 
+  if (pad->chainlistnotify)
+    pad->chainlistnotify (pad->chainlistdata);
   GST_PAD_CHAINLISTFUNC (pad) = chainlist;
+  pad->chainlistdata = user_data;
+  pad->chainlistnotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "chainlistfunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (chainlist));
 }
 
 /**
- * gst_pad_set_getrange_function:
+ * gst_pad_set_getrange_function_full:
  * @pad: a source #GstPad.
  * @get: the #GstPadGetRangeFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @get will not be used anymore.
  *
  * Sets the given getrange function for the pad. The getrange function is
  * called to produce a new #GstBuffer to start the processing pipeline. see
  * #GstPadGetRangeFunction for a description of the getrange function.
  */
 void
-gst_pad_set_getrange_function (GstPad * pad, GstPadGetRangeFunction get)
+gst_pad_set_getrange_function_full (GstPad * pad, GstPadGetRangeFunction get,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
   g_return_if_fail (GST_PAD_IS_SRC (pad));
 
+  if (pad->getrangenotify)
+    pad->getrangenotify (pad->getrangedata);
   GST_PAD_GETRANGEFUNC (pad) = get;
+  pad->getrangedata = user_data;
+  pad->getrangenotify = notify;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "getrangefunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (get));
 }
 
 /**
- * gst_pad_set_event_function:
+ * gst_pad_set_event_function_full:
  * @pad: a #GstPad of either direction.
  * @event: the #GstPadEventFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @event will not be used anymore.
  *
  * Sets the given event handler for the pad.
  */
 void
-gst_pad_set_event_function (GstPad * pad, GstPadEventFunction event)
+gst_pad_set_event_function_full (GstPad * pad, GstPadEventFunction event,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->eventnotify)
+    pad->eventnotify (pad->eventdata);
   GST_PAD_EVENTFUNC (pad) = event;
+  pad->eventdata = user_data;
+  pad->eventnotify = notify;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "eventfunc for set to %s",
       GST_DEBUG_FUNCPTR_NAME (event));
 }
 
 /**
- * gst_pad_set_query_function:
+ * gst_pad_set_query_function_full:
  * @pad: a #GstPad of either direction.
  * @query: the #GstPadQueryFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @query will not be used anymore.
  *
  * Set the given query function for the pad.
  */
 void
-gst_pad_set_query_function (GstPad * pad, GstPadQueryFunction query)
+gst_pad_set_query_function_full (GstPad * pad, GstPadQueryFunction query,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->querynotify)
+    pad->querynotify (pad->querydata);
   GST_PAD_QUERYFUNC (pad) = query;
+  pad->querydata = user_data;
+  pad->querynotify = notify;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "queryfunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (query));
 }
 
 /**
- * gst_pad_set_query_type_function:
- * @pad: a #GstPad of either direction.
- * @type_func: the #GstPadQueryTypeFunction to set.
- *
- * Set the given query type function for the pad.
- */
-void
-gst_pad_set_query_type_function (GstPad * pad,
-    GstPadQueryTypeFunction type_func)
-{
-  g_return_if_fail (GST_IS_PAD (pad));
-
-  GST_PAD_QUERYTYPEFUNC (pad) = type_func;
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "querytypefunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (type_func));
-}
-
-/**
- * gst_pad_get_query_types:
- * @pad: a #GstPad.
- *
- * Get an array of supported queries that can be performed
- * on this pad.
- *
- * Returns: (transfer none) (array zero-terminated=1): a zero-terminated array
- *     of #GstQueryType.
- */
-const GstQueryType *
-gst_pad_get_query_types (GstPad * pad)
-{
-  GstPadQueryTypeFunction func;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
-
-  if (G_UNLIKELY ((func = GST_PAD_QUERYTYPEFUNC (pad)) == NULL))
-    goto no_func;
-
-  return func (pad);
-
-no_func:
-  {
-    return NULL;
-  }
-}
-
-static gboolean
-gst_pad_get_query_types_dispatcher (GstPad * pad, const GstQueryType ** data)
-{
-  GstPad *peer;
-
-  if ((peer = gst_pad_get_peer (pad))) {
-    *data = gst_pad_get_query_types (peer);
-    gst_object_unref (peer);
-  }
-  return TRUE;
-}
-
-/**
- * gst_pad_get_query_types_default:
- * @pad: a #GstPad.
- *
- * Invoke the default query types function on the pad. This function will get
- * the supported query type from the peer of an internally linked pad of @pad.
- *
- * Returns: (transfer none) (array zero-terminated=1): a zero-terminated array
- *     of #GstQueryType, or NULL if none of the internally-linked pads has a
- *     query types function.
- */
-const GstQueryType *
-gst_pad_get_query_types_default (GstPad * pad)
-{
-  GstQueryType *result = NULL;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
-
-  gst_pad_forward (pad, (GstPadForwardFunction)
-      gst_pad_get_query_types_dispatcher, &result);
-
-  return result;
-}
-
-/**
- * gst_pad_set_iterate_internal_links_function:
+ * gst_pad_set_iterate_internal_links_function_full:
  * @pad: a #GstPad of either direction.
  * @iterintlink: the #GstPadIterIntLinkFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @iterintlink will not be used anymore.
  *
  * Sets the given internal link iterator function for the pad.
  *
  * Since: 0.10.21
  */
 void
-gst_pad_set_iterate_internal_links_function (GstPad * pad,
-    GstPadIterIntLinkFunction iterintlink)
+gst_pad_set_iterate_internal_links_function_full (GstPad * pad,
+    GstPadIterIntLinkFunction iterintlink, gpointer user_data,
+    GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->iterintlinknotify)
+    pad->iterintlinknotify (pad->iterintlinkdata);
   GST_PAD_ITERINTLINKFUNC (pad) = iterintlink;
+  pad->iterintlinkdata = user_data;
+  pad->iterintlinknotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "internal link iterator set to %s",
       GST_DEBUG_FUNCPTR_NAME (iterintlink));
 }
 
 /**
- * gst_pad_set_link_function:
+ * gst_pad_set_link_function_full:
  * @pad: a #GstPad.
  * @link: the #GstPadLinkFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @link will not be used anymore.
  *
  * Sets the given link function for the pad. It will be called when
  * the pad is linked with another pad.
@@ -1563,111 +1614,48 @@
  * of the peer sink pad, if present.
  */
 void
-gst_pad_set_link_function (GstPad * pad, GstPadLinkFunction link)
+gst_pad_set_link_function_full (GstPad * pad, GstPadLinkFunction link,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->linknotify)
+    pad->linknotify (pad->linkdata);
   GST_PAD_LINKFUNC (pad) = link;
+  pad->linkdata = user_data;
+  pad->linknotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "linkfunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (link));
 }
 
 /**
- * gst_pad_set_unlink_function:
+ * gst_pad_set_unlink_function_full:
  * @pad: a #GstPad.
  * @unlink: the #GstPadUnlinkFunction to set.
+ * @user_data: user_data passed to @notify
+ * @notify: notify called when @unlink will not be used anymore.
  *
  * Sets the given unlink function for the pad. It will be called
  * when the pad is unlinked.
  */
 void
-gst_pad_set_unlink_function (GstPad * pad, GstPadUnlinkFunction unlink)
+gst_pad_set_unlink_function_full (GstPad * pad, GstPadUnlinkFunction unlink,
+    gpointer user_data, GDestroyNotify notify)
 {
   g_return_if_fail (GST_IS_PAD (pad));
 
+  if (pad->unlinknotify)
+    pad->unlinknotify (pad->unlinkdata);
   GST_PAD_UNLINKFUNC (pad) = unlink;
+  pad->unlinkdata = user_data;
+  pad->unlinknotify = notify;
+
   GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "unlinkfunc set to %s",
       GST_DEBUG_FUNCPTR_NAME (unlink));
 }
 
 /**
- * gst_pad_set_getcaps_function:
- * @pad: a #GstPad.
- * @getcaps: the #GstPadGetCapsFunction to set.
- *
- * Sets the given getcaps function for the pad. @getcaps should return the
- * allowable caps for a pad in the context of the element's state, its link to
- * other elements, and the devices or files it has opened. These caps must be a
- * subset of the pad template caps. In the NULL state with no links, @getcaps
- * should ideally return the same caps as the pad template. In rare
- * circumstances, an object property can affect the caps returned by @getcaps,
- * but this is discouraged.
- *
- * You do not need to call this function if @pad's allowed caps are always the
- * same as the pad template caps. This can only be true if the padtemplate
- * has fixed simple caps.
- *
- * For most filters, the caps returned by @getcaps is directly affected by the
- * allowed caps on other pads. For demuxers and decoders, the caps returned by
- * the srcpad's getcaps function is directly related to the stream data. Again,
- * @getcaps should return the most specific caps it reasonably can, since this
- * helps with autoplugging.
- *
- * Note that the return value from @getcaps is owned by the caller, so the
- * caller should unref the caps after usage.
- */
-void
-gst_pad_set_getcaps_function (GstPad * pad, GstPadGetCapsFunction getcaps)
-{
-  g_return_if_fail (GST_IS_PAD (pad));
-
-  GST_PAD_GETCAPSFUNC (pad) = getcaps;
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "getcapsfunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (getcaps));
-}
-
-/**
- * gst_pad_set_acceptcaps_function:
- * @pad: a #GstPad.
- * @acceptcaps: the #GstPadAcceptCapsFunction to set.
- *
- * Sets the given acceptcaps function for the pad.  The acceptcaps function
- * will be called to check if the pad can accept the given caps. Setting the
- * acceptcaps function to NULL restores the default behaviour of allowing
- * any caps that matches the caps from gst_pad_get_caps().
- */
-void
-gst_pad_set_acceptcaps_function (GstPad * pad,
-    GstPadAcceptCapsFunction acceptcaps)
-{
-  g_return_if_fail (GST_IS_PAD (pad));
-
-  GST_PAD_ACCEPTCAPSFUNC (pad) = acceptcaps;
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "acceptcapsfunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (acceptcaps));
-}
-
-/**
- * gst_pad_set_fixatecaps_function:
- * @pad: a #GstPad.
- * @fixatecaps: the #GstPadFixateCapsFunction to set.
- *
- * Sets the given fixatecaps function for the pad.  The fixatecaps function
- * will be called whenever the default values for a GstCaps needs to be
- * filled in.
- */
-void
-gst_pad_set_fixatecaps_function (GstPad * pad,
-    GstPadFixateCapsFunction fixatecaps)
-{
-  g_return_if_fail (GST_IS_PAD (pad));
-
-  GST_PAD_FIXATECAPSFUNC (pad) = fixatecaps;
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "fixatecapsfunc set to %s",
-      GST_DEBUG_FUNCPTR_NAME (fixatecaps));
-}
-
-/**
  * gst_pad_unlink:
  * @srcpad: the source #GstPad to unlink.
  * @sinkpad: the sink #GstPad to unlink.
@@ -1685,7 +1673,6 @@
 {
   gboolean result = FALSE;
   GstElement *parent = NULL;
-  gint i;
 
   g_return_val_if_fail (GST_IS_PAD (srcpad), FALSE);
   g_return_val_if_fail (GST_PAD_IS_SRC (srcpad), FALSE);
@@ -1727,10 +1714,6 @@
   GST_PAD_PEER (srcpad) = NULL;
   GST_PAD_PEER (sinkpad) = NULL;
 
-  /* clear pending caps if any */
-  for (i = 0; i < GST_EVENT_MAX_STICKY; i++)
-    gst_event_replace (&sinkpad->priv->events[i].pending, NULL);
-
   GST_OBJECT_UNLOCK (sinkpad);
   GST_OBJECT_UNLOCK (srcpad);
 
@@ -1807,8 +1790,14 @@
 
   /* Doing the expensive caps checking takes priority over only checking the template caps */
   if (flags & GST_PAD_LINK_CHECK_CAPS) {
-    srccaps = gst_pad_get_caps_unlocked (src, NULL);
-    sinkcaps = gst_pad_get_caps_unlocked (sink, NULL);
+    GST_OBJECT_UNLOCK (sink);
+    GST_OBJECT_UNLOCK (src);
+
+    srccaps = gst_pad_query_caps (src, NULL);
+    sinkcaps = gst_pad_query_caps (sink, NULL);
+
+    GST_OBJECT_LOCK (src);
+    GST_OBJECT_LOCK (sink);
   } else {
     /* If one of the two pads doesn't have a template, consider the intersection
      * as valid.*/
@@ -2078,8 +2067,8 @@
   GST_PAD_PEER (srcpad) = sinkpad;
   GST_PAD_PEER (sinkpad) = srcpad;
 
-  /* make sure we update events */
-  prepare_event_update (srcpad, sinkpad);
+  /* check events, when something is different, mark pending */
+  schedule_events (srcpad, sinkpad);
 
   /* get the link functions */
   srcfunc = GST_PAD_LINKFUNC (srcpad);
@@ -2215,140 +2204,6 @@
   return (templ ? gst_object_ref (templ) : NULL);
 }
 
-static GstCaps *
-caps_with_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstCaps *result;
-
-  if (GST_PAD_GETCAPSFUNC (pad) == NULL)
-    return NULL;
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-      "dispatching to pad getcaps function with "
-      "filter %" GST_PTR_FORMAT, filter);
-
-  GST_OBJECT_FLAG_SET (pad, GST_PAD_IN_GETCAPS);
-  GST_OBJECT_UNLOCK (pad);
-  result = GST_PAD_GETCAPSFUNC (pad) (pad, filter);
-  GST_OBJECT_LOCK (pad);
-  GST_OBJECT_FLAG_UNSET (pad, GST_PAD_IN_GETCAPS);
-
-  if (G_UNLIKELY (result == NULL))
-    goto null_caps;
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-      "pad getcaps returned %" GST_PTR_FORMAT, result);
-
-#ifndef G_DISABLE_ASSERT
-  /* check that the returned caps are a real subset of the template caps */
-  if (GST_PAD_PAD_TEMPLATE (pad)) {
-    const GstCaps *templ_caps =
-        GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (pad));
-    if (!gst_caps_is_subset (result, templ_caps)) {
-      GstCaps *temp;
-
-      GST_CAT_ERROR_OBJECT (GST_CAT_CAPS, pad,
-          "pad returned caps %" GST_PTR_FORMAT
-          " which are not a real subset of its template caps %"
-          GST_PTR_FORMAT, result, templ_caps);
-      g_warning
-          ("pad %s:%s returned caps which are not a real "
-          "subset of its template caps", GST_DEBUG_PAD_NAME (pad));
-      temp = gst_caps_intersect (templ_caps, result);
-      gst_caps_unref (result);
-      result = temp;
-    }
-  }
-  if (filter) {
-    if (!gst_caps_is_subset (result, filter)) {
-      GstCaps *temp;
-
-      GST_CAT_ERROR_OBJECT (GST_CAT_CAPS, pad,
-          "pad returned caps %" GST_PTR_FORMAT
-          " which are not a real subset of the filter caps %"
-          GST_PTR_FORMAT, result, filter);
-      g_warning ("pad %s:%s returned caps which are not a real "
-          "subset of the filter caps", GST_DEBUG_PAD_NAME (pad));
-      /* FIXME: Order? But shouldn't happen anyway... */
-      temp = gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (result);
-      result = temp;
-    }
-  }
-#endif
-
-  return result;
-
-  /* ERRORS */
-null_caps:
-  {
-    g_critical ("pad %s:%s returned NULL caps from getcaps function",
-        GST_DEBUG_PAD_NAME (pad));
-    return NULL;
-  }
-}
-
-/* should be called with the pad LOCK held */
-/* refs the caps, so caller is responsible for getting it unreffed */
-static GstCaps *
-gst_pad_get_caps_unlocked (GstPad * pad, GstCaps * filter)
-{
-  GstCaps *result = NULL;
-  GstPadTemplate *templ;
-  gboolean fixed_caps;
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "get pad caps");
-
-  fixed_caps = GST_PAD_IS_FIXED_CAPS (pad);
-
-  if (fixed_caps) {
-    /* fixed caps, try the negotiated caps first */
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "fixed pad caps: trying pad caps");
-    if ((result = get_pad_caps (pad)))
-      goto filter_done;
-  }
-
-  /* try the getcaps function next */
-  if ((result = caps_with_getcaps (pad, filter)))
-    goto done;
-
-  if ((templ = GST_PAD_PAD_TEMPLATE (pad))) {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "trying pad template caps");
-    if ((result = GST_PAD_TEMPLATE_CAPS (templ)))
-      goto filter_done;
-  }
-
-  if (!fixed_caps) {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-        "non-fixed pad caps: trying pad caps");
-    /* non fixed caps, try the negotiated caps */
-    if ((result = get_pad_caps (pad)))
-      goto filter_done;
-  }
-
-  /* this almost never happens */
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "pad has no caps");
-  result = gst_caps_new_empty ();
-  goto done;
-
-filter_done:
-  /* run the filter on the result */
-  if (filter) {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-        "using caps %p %" GST_PTR_FORMAT " with filter %p %"
-        GST_PTR_FORMAT, result, result, filter, filter);
-    result = gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "result %p %" GST_PTR_FORMAT,
-        result, result);
-  } else {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-        "using caps %p %" GST_PTR_FORMAT, result, result);
-    result = gst_caps_ref (result);
-  }
-done:
-  return result;
-}
-
 /**
  * gst_pad_has_current_caps:
  * @pad: a  #GstPad to check
@@ -2402,269 +2257,6 @@
 }
 
 /**
- * gst_pad_get_caps:
- * @pad: a  #GstPad to get the capabilities of.
- * @filter: suggested #GstCaps.
- *
- * Gets the capabilities this pad can produce or consume.
- * Note that this method doesn't necessarily return the caps set by
- * gst_pad_set_caps() - use gst_pad_get_current_caps() for that instead.
- * gst_pad_get_caps returns all possible caps a pad can operate with, using
- * the pad's get_caps function;
- * this returns the pad template caps if not explicitly set.
- *
- * When called on sinkpads @filter contains the caps that
- * upstream could produce in the order preferred by upstream. When
- * called on srcpads @filter contains the caps accepted by
- * downstream in the preffered order. @filter might be %NULL but
- * if it is not %NULL the returned caps will be a subset of @filter.
- *
- * Note that this function does not return writable #GstCaps, use
- * gst_caps_make_writable() before modifying the caps.
- *
- * Returns: the caps of the pad with incremented ref-count.
- */
-GstCaps *
-gst_pad_get_caps (GstPad * pad, GstCaps * filter)
-{
-  GstCaps *result = NULL;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
-  g_return_val_if_fail (filter == NULL || GST_IS_CAPS (filter), NULL);
-
-  GST_OBJECT_LOCK (pad);
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "get pad caps");
-
-  result = gst_pad_get_caps_unlocked (pad, filter);
-
-  GST_OBJECT_UNLOCK (pad);
-
-  return result;
-}
-
-
-/**
- * gst_pad_peer_get_caps:
- * @pad: a  #GstPad to get the capabilities of.
- * @filter: a #GstCaps filter.
- *
- * Gets the capabilities of the peer connected to this pad. Similar to
- * gst_pad_get_caps().
- *
- * When called on srcpads @filter contains the caps that
- * upstream could produce in the order preferred by upstream. When
- * called on sinkpads @filter contains the caps accepted by
- * downstream in the preffered order. @filter might be %NULL but
- * if it is not %NULL the returned caps will be a subset of @filter.
- *
- * Returns: the caps of the peer pad with incremented ref-count. This function
- * returns %NULL when there is no peer pad.
- */
-GstCaps *
-gst_pad_peer_get_caps (GstPad * pad, GstCaps * filter)
-{
-  GstPad *peerpad;
-  GstCaps *result = NULL;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
-  g_return_val_if_fail (filter == NULL || GST_IS_CAPS (filter), NULL);
-
-  GST_OBJECT_LOCK (pad);
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "get peer caps");
-
-  peerpad = GST_PAD_PEER (pad);
-  if (G_UNLIKELY (peerpad == NULL))
-    goto no_peer;
-
-  gst_object_ref (peerpad);
-  GST_OBJECT_UNLOCK (pad);
-
-  result = gst_pad_get_caps (peerpad, filter);
-
-  gst_object_unref (peerpad);
-
-  return result;
-
-no_peer:
-  {
-    GST_OBJECT_UNLOCK (pad);
-    return NULL;
-  }
-}
-
-static void
-gst_pad_fixate_caps_default (GstPad * pad, GstCaps * caps)
-{
-  /* default fixation */
-  gst_caps_fixate (caps);
-}
-
-/**
- * gst_pad_fixate_caps:
- * @pad: a  #GstPad to fixate
- * @caps: the  #GstCaps to fixate
- *
- * Fixate a caps on the given pad. Modifies the caps in place, so you should
- * make sure that the caps are actually writable (see gst_caps_make_writable()).
- */
-void
-gst_pad_fixate_caps (GstPad * pad, GstCaps * caps)
-{
-  GstPadFixateCapsFunction fixatefunc;
-
-  g_return_if_fail (GST_IS_PAD (pad));
-  g_return_if_fail (caps != NULL);
-  g_return_if_fail (!gst_caps_is_empty (caps));
-  g_return_if_fail (!gst_caps_is_any (caps));
-
-  if (gst_caps_is_fixed (caps) || gst_caps_is_any (caps))
-    return;
-
-  g_return_if_fail (gst_caps_is_writable (caps));
-
-  if (G_LIKELY ((fixatefunc = GST_PAD_FIXATECAPSFUNC (pad))))
-    fixatefunc (pad, caps);
-}
-
-/* Default accept caps implementation just checks against
- * against the allowed caps for the pad */
-static gboolean
-gst_pad_acceptcaps_default (GstPad * pad, GstCaps * caps)
-{
-  /* get the caps and see if it intersects to something not empty */
-  GstCaps *allowed;
-  gboolean result = FALSE;
-
-  GST_DEBUG_OBJECT (pad, "caps %" GST_PTR_FORMAT, caps);
-
-  allowed = gst_pad_get_caps (pad, NULL);
-  if (!allowed)
-    goto nothing_allowed;
-
-  GST_DEBUG_OBJECT (pad, "allowed caps %" GST_PTR_FORMAT, allowed);
-
-  result = gst_caps_is_subset (caps, allowed);
-
-  gst_caps_unref (allowed);
-
-  return result;
-
-  /* ERRORS */
-nothing_allowed:
-  {
-    GST_DEBUG_OBJECT (pad, "no caps allowed on the pad");
-    return FALSE;
-  }
-}
-
-/**
- * gst_pad_accept_caps:
- * @pad: a #GstPad to check
- * @caps: a #GstCaps to check on the pad
- *
- * Check if the given pad accepts the caps.
- *
- * Returns: TRUE if the pad can accept the caps.
- */
-gboolean
-gst_pad_accept_caps (GstPad * pad, GstCaps * caps)
-{
-  gboolean result;
-  GstPadAcceptCapsFunction acceptfunc;
-#if 0
-  GstCaps *existing = NULL;
-#endif
-
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
-  /* any pad can be unnegotiated */
-  if (caps == NULL)
-    return TRUE;
-
-  /* lock for checking the existing caps */
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %p", caps);
-#if 0
-  GST_OBJECT_LOCK (pad);
-  /* The current caps on a pad are trivially acceptable */
-  if (G_LIKELY ((existing = GST_PAD_CAPS (pad)))) {
-    if (caps == existing || gst_caps_is_equal (caps, existing))
-      goto is_same_caps;
-  }
-  GST_OBJECT_UNLOCK (pad);
-#endif
-  acceptfunc = GST_PAD_ACCEPTCAPSFUNC (pad);
-
-  /* Only null if the element explicitly unset it */
-  if (G_UNLIKELY (acceptfunc == NULL))
-    goto no_func;
-
-  /* we can call the function */
-  result = acceptfunc (pad, caps);
-  GST_DEBUG_OBJECT (pad, "acceptfunc returned %d", result);
-
-  return result;
-
-#if 0
-is_same_caps:
-  {
-    GST_DEBUG_OBJECT (pad, "pad had same caps");
-    GST_OBJECT_UNLOCK (pad);
-    return TRUE;
-  }
-#endif
-no_func:
-  {
-    GST_DEBUG_OBJECT (pad, "no acceptcaps function");
-    return FALSE;
-  }
-}
-
-/**
- * gst_pad_peer_accept_caps:
- * @pad: a  #GstPad to check the peer of
- * @caps: a #GstCaps to check on the pad
- *
- * Check if the peer of @pad accepts @caps. If @pad has no peer, this function
- * returns TRUE.
- *
- * Returns: TRUE if the peer of @pad can accept the caps or @pad has no peer.
- */
-gboolean
-gst_pad_peer_accept_caps (GstPad * pad, GstCaps * caps)
-{
-  GstPad *peerpad;
-  gboolean result;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
-  GST_OBJECT_LOCK (pad);
-
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "peer accept caps of (%p)", pad);
-
-  peerpad = GST_PAD_PEER (pad);
-  if (G_UNLIKELY (peerpad == NULL))
-    goto no_peer;
-
-  gst_object_ref (peerpad);
-  /* release lock before calling external methods but keep ref to pad */
-  GST_OBJECT_UNLOCK (pad);
-
-  result = gst_pad_accept_caps (peerpad, caps);
-
-  gst_object_unref (peerpad);
-
-  return result;
-
-no_peer:
-  {
-    GST_OBJECT_UNLOCK (pad);
-    return TRUE;
-  }
-}
-
-/**
  * gst_pad_set_caps:
  * @pad: a  #GstPad to set the capabilities of.
  * @caps: (transfer none): a #GstCaps to set.
@@ -2699,120 +2291,6 @@
   return res;
 }
 
-static gboolean
-do_event_function (GstPad * pad, GstEvent * event,
-    GstPadEventFunction eventfunc, gboolean * caps_notify)
-{
-  gboolean result = TRUE, call_event = TRUE;
-  GstCaps *caps, *old, *templ;
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      /* backwards compatibility mode for caps */
-      gst_event_parse_caps (event, &caps);
-
-      /* See if pad accepts the caps */
-      templ = gst_pad_get_pad_template_caps (pad);
-      if (!gst_caps_is_subset (caps, templ))
-        goto not_accepted;
-
-      /* check if it changed */
-      if ((old = gst_pad_get_current_caps (pad))) {
-        call_event = !gst_caps_is_equal (caps, old);
-        gst_caps_unref (old);
-      }
-      if (call_event)
-        *caps_notify = TRUE;
-      gst_caps_unref (templ);
-      break;
-    }
-    default:
-      break;
-  }
-
-  if (call_event) {
-    GST_DEBUG_OBJECT (pad, "calling event function with event %p", event);
-    result = eventfunc (pad, event);
-  } else {
-    gst_event_unref (event);
-  }
-  return result;
-
-  /* ERRORS */
-not_accepted:
-  {
-    gst_caps_unref (templ);
-    gst_event_unref (event);
-    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
-        "caps %" GST_PTR_FORMAT " not accepted", caps);
-    return FALSE;
-  }
-}
-
-/* function to send all pending events on the sinkpad to the event
- * function and collect the results. This function should be called with
- * the object lock. The object lock might be released by this function.
- */
-static GstFlowReturn
-gst_pad_update_events (GstPad * pad)
-{
-  GstFlowReturn ret = GST_FLOW_OK;
-  guint i;
-  GstPadEventFunction eventfunc;
-  GstEvent *event;
-  gboolean caps_notify = FALSE;
-
-  if (G_UNLIKELY ((eventfunc = GST_PAD_EVENTFUNC (pad)) == NULL))
-    goto no_function;
-
-  for (i = 0; i < GST_EVENT_MAX_STICKY; i++) {
-    gboolean res;
-    PadEvent *ev;
-
-    ev = &pad->priv->events[i];
-
-    /* skip without pending event */
-    if ((event = gst_event_steal (&ev->pending)) == NULL)
-      continue;
-
-    gst_event_ref (event);
-    GST_OBJECT_UNLOCK (pad);
-
-    res = do_event_function (pad, event, eventfunc, &caps_notify);
-
-    /* things could have changed while we release the lock, check if we still
-     * are handling the same event, if we don't something changed and we have
-     * to try again. FIXME. we need a cookie here. FIXME, we also want to remove
-     * that lock eventually and then do the retry elsewhere. */
-
-    if (res) {
-      /* make the event active */
-      gst_event_take (&ev->event, event);
-
-      /* notify caps change when needed */
-      if (caps_notify) {
-        g_object_notify_by_pspec ((GObject *) pad, pspec_caps);
-        caps_notify = FALSE;
-      }
-    } else {
-      gst_event_unref (event);
-      ret = GST_FLOW_ERROR;
-    }
-    GST_OBJECT_LOCK (pad);
-  }
-  /* when we get here all events were successfully updated. */
-  return ret;
-
-  /* ERRORS */
-no_function:
-  {
-    g_warning ("pad %s:%s has no event handler, file a bug.",
-        GST_DEBUG_PAD_NAME (pad));
-    return GST_FLOW_NOT_SUPPORTED;
-  }
-}
-
 /**
  * gst_pad_get_pad_template_caps:
  * @pad: a #GstPad to get the template capabilities from.
@@ -2825,14 +2303,12 @@
 GstCaps *
 gst_pad_get_pad_template_caps (GstPad * pad)
 {
-  static GstStaticCaps anycaps = GST_STATIC_CAPS ("ANY");
-
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
 
   if (GST_PAD_PAD_TEMPLATE (pad))
     return gst_pad_template_get_caps (GST_PAD_PAD_TEMPLATE (pad));
 
-  return gst_static_caps_get (&anycaps);
+  return gst_caps_ref (GST_CAPS_ANY);
 }
 
 /**
@@ -2870,7 +2346,7 @@
  * @pad and its peer.
  *
  * The allowed capabilities is calculated as the intersection of the results of
- * calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
+ * calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference
  * on the resulting caps.
  *
  * Returns: (transfer full): the allowed #GstCaps of the pad link. Unref the
@@ -2898,9 +2374,9 @@
 
   gst_object_ref (peer);
   GST_OBJECT_UNLOCK (pad);
-  mycaps = gst_pad_get_caps (pad, NULL);
+  mycaps = gst_pad_query_caps (pad, NULL);
 
-  peercaps = gst_pad_get_caps (peer, NULL);
+  peercaps = gst_pad_query_caps (peer, NULL);
   gst_object_unref (peer);
 
   caps = gst_caps_intersect (mycaps, peercaps);
@@ -2924,6 +2400,7 @@
 /**
  * gst_pad_iterate_internal_links_default:
  * @pad: the #GstPad to get the internal links of.
+ * @parent: the parent of @pad or NULL
  *
  * Iterate the list of pads to which the given pad is linked to inside of
  * the parent element.
@@ -2938,39 +2415,40 @@
  * Since: 0.10.21
  */
 GstIterator *
-gst_pad_iterate_internal_links_default (GstPad * pad)
+gst_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
 {
   GstIterator *res;
   GList **padlist;
   guint32 *cookie;
   GMutex *lock;
   gpointer owner;
+  GstElement *eparent;
 
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
 
-  {
-    GstElement *parent;
-
+  if (parent != NULL && GST_IS_ELEMENT (parent)) {
+    eparent = GST_ELEMENT_CAST (gst_object_ref (parent));
+  } else {
     GST_OBJECT_LOCK (pad);
-    parent = GST_PAD_PARENT (pad);
-    if (!parent || !GST_IS_ELEMENT (parent))
+    eparent = GST_PAD_PARENT (pad);
+    if (!eparent || !GST_IS_ELEMENT (eparent))
       goto no_parent;
 
-    gst_object_ref (parent);
+    gst_object_ref (eparent);
     GST_OBJECT_UNLOCK (pad);
-
-    if (pad->direction == GST_PAD_SRC)
-      padlist = &parent->sinkpads;
-    else
-      padlist = &parent->srcpads;
-
-    GST_DEBUG_OBJECT (pad, "Making iterator");
-
-    cookie = &parent->pads_cookie;
-    owner = parent;
-    lock = GST_OBJECT_GET_LOCK (parent);
   }
 
+  if (pad->direction == GST_PAD_SRC)
+    padlist = &eparent->sinkpads;
+  else
+    padlist = &eparent->srcpads;
+
+  GST_DEBUG_OBJECT (pad, "Making iterator");
+
+  cookie = &eparent->pads_cookie;
+  owner = eparent;
+  lock = GST_OBJECT_GET_LOCK (eparent);
+
   res = gst_iterator_new_list (GST_TYPE_PAD,
       lock, cookie, padlist, (GObject *) owner, NULL);
 
@@ -3009,13 +2487,28 @@
 gst_pad_iterate_internal_links (GstPad * pad)
 {
   GstIterator *res = NULL;
+  GstObject *parent;
 
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
 
+  GST_OBJECT_LOCK (pad);
+  ACQUIRE_PARENT (pad, parent, no_parent);
+  GST_OBJECT_UNLOCK (pad);
+
   if (GST_PAD_ITERINTLINKFUNC (pad))
-    res = GST_PAD_ITERINTLINKFUNC (pad) (pad);
+    res = GST_PAD_ITERINTLINKFUNC (pad) (pad, parent);
+
+  RELEASE_PARENT (parent);
 
   return res;
+
+  /* ERRORS */
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
 }
 
 /**
@@ -3056,7 +2549,7 @@
         intpad = g_value_get_object (&item);
 
         /* if already pushed, skip. FIXME, find something faster to tag pads */
-        if (g_list_find (pushed_pads, intpad)) {
+        if (intpad == NULL || g_list_find (pushed_pads, intpad)) {
           g_value_reset (&item);
           break;
         }
@@ -3120,6 +2613,7 @@
 /**
  * gst_pad_event_default:
  * @pad: a #GstPad to call the default event handler on.
+ * @parent: the parent of @pad or NULL
  * @event: (transfer full): the #GstEvent to handle.
  *
  * Invokes the default event handler for the given pad.
@@ -3127,18 +2621,15 @@
  * The EOS event will pause the task associated with @pad before it is forwarded
  * to all internally linked pads,
  *
- * The CAPS event will never be forwarded.
- *
  * The the event is sent to all pads internally linked to @pad. This function
  * takes ownership of @event.
  *
  * Returns: TRUE if the event was sent successfully.
  */
 gboolean
-gst_pad_event_default (GstPad * pad, GstEvent * event)
+gst_pad_event_default (GstPad * pad, GstObject * parent, GstEvent * event)
 {
-  gboolean result;
-  EventData data;
+  gboolean result, forward = TRUE;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
@@ -3152,129 +2643,173 @@
       gst_pad_pause_task (pad);
       break;
     }
+    case GST_EVENT_CAPS:
+      forward = GST_PAD_IS_PROXY_CAPS (pad);
+      result = TRUE;
+      break;
     default:
       break;
   }
 
-  data.event = event;
-  data.dispatched = FALSE;
-  data.result = FALSE;
+  if (forward) {
+    EventData data;
 
-  gst_pad_forward (pad, (GstPadForwardFunction) event_forward_func, &data);
+    data.event = event;
+    data.dispatched = FALSE;
+    data.result = FALSE;
 
-  /* for sinkpads without a parent element or without internal links, nothing
-   * will be dispatched but we still want to return TRUE. */
-  if (data.dispatched)
-    result = data.result;
-  else
-    result = TRUE;
+    gst_pad_forward (pad, (GstPadForwardFunction) event_forward_func, &data);
+
+    /* for sinkpads without a parent element or without internal links, nothing
+     * will be dispatched but we still want to return TRUE. */
+    if (data.dispatched)
+      result = data.result;
+    else
+      result = TRUE;
+  }
 
   gst_event_unref (event);
 
   return result;
 }
 
-/**
- * gst_pad_query:
- * @pad: a #GstPad to invoke the default query on.
- * @query: (transfer none): the #GstQuery to perform.
- *
- * Dispatches a query to a pad. The query should have been allocated by the
- * caller via one of the type-specific allocation functions. The element that
- * the pad belongs to is responsible for filling the query with an appropriate
- * response, which should then be parsed with a type-specific query parsing
- * function.
- *
- * Again, the caller is responsible for both the allocation and deallocation of
- * the query structure.
- *
- * Please also note that some queries might need a running pipeline to work.
- *
- * Returns: TRUE if the query could be performed.
- */
-gboolean
-gst_pad_query (GstPad * pad, GstQuery * query)
+/* Default accept caps implementation just checks against
+ * the allowed caps for the pad */
+static gboolean
+gst_pad_query_accept_caps_default (GstPad * pad, GstQuery * query)
 {
-  gboolean res;
-  GstPadQueryFunction func;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
-
-  GST_DEBUG_OBJECT (pad, "sending query %p (%s)", query,
-      GST_QUERY_TYPE_NAME (query));
-
-  if ((func = GST_PAD_QUERYFUNC (pad)) == NULL)
-    goto no_func;
-
-  res = func (pad, query);
-
-  GST_DEBUG_OBJECT (pad, "sent query %p (%s), result %d", query,
-      GST_QUERY_TYPE_NAME (query), res);
-
-  return res;
-
-no_func:
-  {
-    GST_DEBUG_OBJECT (pad, "had no query function");
-    return FALSE;
-  }
-}
-
-/**
- * gst_pad_peer_query:
- * @pad: a #GstPad to invoke the peer query on.
- * @query: (transfer none): the #GstQuery to perform.
- *
- * Performs gst_pad_query() on the peer of @pad.
- *
- * The caller is responsible for both the allocation and deallocation of
- * the query structure.
- *
- * Returns: TRUE if the query could be performed. This function returns %FALSE
- * if @pad has no peer.
- *
- * Since: 0.10.15
- */
-gboolean
-gst_pad_peer_query (GstPad * pad, GstQuery * query)
-{
-  GstPad *peerpad;
+  /* get the caps and see if it intersects to something not empty */
+  GstCaps *caps, *allowed;
   gboolean result;
 
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+  GST_DEBUG_OBJECT (pad, "query accept-caps %" GST_PTR_FORMAT, query);
+
+  /* first forward the query to internally linked pads when we are dealing with
+   * a PROXY CAPS */
+  if (GST_PAD_IS_PROXY_CAPS (pad)) {
+    if ((result = gst_pad_proxy_query_accept_caps (pad, query))) {
+      goto done;
+    }
+  }
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, pad,
+      "fallback ACCEPT_CAPS query, consider implementing a specialized version");
+
+  allowed = gst_pad_query_caps (pad, NULL);
+  gst_query_parse_accept_caps (query, &caps);
+
+  if (allowed) {
+    GST_DEBUG_OBJECT (pad, "allowed caps %" GST_PTR_FORMAT, allowed);
+    result = gst_caps_is_subset (caps, allowed);
+    gst_caps_unref (allowed);
+  } else {
+    GST_DEBUG_OBJECT (pad, "no caps allowed on the pad");
+    result = FALSE;
+  }
+  gst_query_set_accept_caps_result (query, result);
+
+done:
+  return TRUE;
+}
+
+/* Default caps implementation */
+static gboolean
+gst_pad_query_caps_default (GstPad * pad, GstQuery * query)
+{
+  GstCaps *result = NULL, *filter;
+  GstPadTemplate *templ;
+  gboolean fixed_caps;
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "get pad caps");
+
+  gst_query_parse_caps (query, &filter);
+
+  /* first try to proxy if we must */
+  if (GST_PAD_IS_PROXY_CAPS (pad)) {
+    if ((gst_pad_proxy_query_caps (pad, query))) {
+      gst_query_parse_caps_result (query, &result);
+      goto filter_done;
+    }
+  }
+
+  /* no proxy or it failed, do default handling */
+  fixed_caps = GST_PAD_IS_FIXED_CAPS (pad);
 
   GST_OBJECT_LOCK (pad);
+  if (fixed_caps) {
+    /* fixed caps, try the negotiated caps first */
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "fixed pad caps: trying pad caps");
+    if ((result = get_pad_caps (pad)))
+      goto filter_done_unlock;
+  }
 
-  GST_DEBUG_OBJECT (pad, "peer query %p (%s)", query,
-      GST_QUERY_TYPE_NAME (query));
+  if ((templ = GST_PAD_PAD_TEMPLATE (pad))) {
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "trying pad template caps");
+    if ((result = GST_PAD_TEMPLATE_CAPS (templ)))
+      goto filter_done_unlock;
+  }
 
-  peerpad = GST_PAD_PEER (pad);
-  if (G_UNLIKELY (peerpad == NULL))
-    goto no_peer;
+  if (!fixed_caps) {
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "non-fixed pad caps: trying pad caps");
+    /* non fixed caps, try the negotiated caps */
+    if ((result = get_pad_caps (pad)))
+      goto filter_done_unlock;
+  }
 
-  gst_object_ref (peerpad);
+  /* this almost never happens */
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "pad has no caps");
+  result = GST_CAPS_ANY;
+
+filter_done_unlock:
   GST_OBJECT_UNLOCK (pad);
 
-  result = gst_pad_query (peerpad, query);
-
-  gst_object_unref (peerpad);
-
-  return result;
-
-  /* ERRORS */
-no_peer:
-  {
-    GST_WARNING_OBJECT (pad, "pad has no peer");
-    GST_OBJECT_UNLOCK (pad);
-    return FALSE;
+filter_done:
+  /* run the filter on the result */
+  if (filter) {
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "using caps %p %" GST_PTR_FORMAT " with filter %p %"
+        GST_PTR_FORMAT, result, result, filter, filter);
+    result = gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "result %p %" GST_PTR_FORMAT,
+        result, result);
+  } else {
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "using caps %p %" GST_PTR_FORMAT, result, result);
+    result = gst_caps_ref (result);
   }
+
+  gst_query_set_caps_result (query, result);
+  gst_caps_unref (result);
+
+  return TRUE;
+}
+
+typedef struct
+{
+  GstQuery *query;
+  gboolean result;
+  gboolean dispatched;
+} QueryData;
+
+static gboolean
+query_forward_func (GstPad * pad, QueryData * data)
+{
+  GST_LOG_OBJECT (pad, "query peer %p (%s) of %s:%s",
+      data->query, GST_EVENT_TYPE_NAME (data->query), GST_DEBUG_PAD_NAME (pad));
+
+  data->result |= gst_pad_peer_query (pad, data->query);
+
+  data->dispatched = TRUE;
+
+  /* stop on first successful reply */
+  return data->result;
 }
 
 /**
  * gst_pad_query_default:
  * @pad: a #GstPad to call the default query handler on.
+ * @parent: the parent of @pad or NULL
  * @query: (transfer none): the #GstQuery to handle.
  *
  * Invokes the default query handler for the given pad.
@@ -3286,14 +2821,25 @@
  * Returns: TRUE if the query was performed successfully.
  */
 gboolean
-gst_pad_query_default (GstPad * pad, GstQuery * query)
+gst_pad_query_default (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  gboolean forward = TRUE, ret = FALSE;
+  gboolean forward, ret = FALSE;
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_SCHEDULING:
       forward = FALSE;
       break;
+    case GST_QUERY_ALLOCATION:
+      forward = GST_PAD_IS_PROXY_ALLOCATION (pad);
+      break;
+    case GST_QUERY_ACCEPT_CAPS:
+      ret = gst_pad_query_accept_caps_default (pad, query);
+      forward = FALSE;
+      break;
+    case GST_QUERY_CAPS:
+      ret = gst_pad_query_caps_default (pad, query);
+      forward = FALSE;
+      break;
     case GST_QUERY_POSITION:
     case GST_QUERY_SEEKING:
     case GST_QUERY_FORMATS:
@@ -3301,14 +2847,32 @@
     case GST_QUERY_JITTER:
     case GST_QUERY_RATE:
     case GST_QUERY_CONVERT:
-    case GST_QUERY_ALLOCATION:
     default:
+      forward = TRUE;
       break;
   }
 
+  GST_DEBUG_OBJECT (pad, "%sforwarding %p (%s) query", (forward ? "" : "not "),
+      query, GST_QUERY_TYPE_NAME (query));
+
   if (forward) {
-    ret = gst_pad_forward
-        (pad, (GstPadForwardFunction) gst_pad_peer_query, query);
+    QueryData data;
+
+    data.query = query;
+    data.dispatched = FALSE;
+    data.result = FALSE;
+
+    gst_pad_forward (pad, (GstPadForwardFunction) query_forward_func, &data);
+
+    if (data.dispatched) {
+      ret = data.result;
+    } else {
+      /* nothing dispatched, assume drained */
+      if (GST_QUERY_TYPE (query) == GST_QUERY_DRAIN)
+        ret = TRUE;
+      else
+        ret = FALSE;
+    }
   }
   return ret;
 }
@@ -3317,56 +2881,71 @@
 probe_hook_marshal (GHook * hook, ProbeMarshall * data)
 {
   GstPad *pad = data->pad;
-  GstProbeType flags;
+  GstPadProbeInfo *info = data->info;
+  GstPadProbeType type, flags;
   GstPadProbeCallback callback;
-  GstProbeReturn ret;
+  GstPadProbeReturn ret;
 
   /* if we have called this callback, do nothing */
-  if (PROBE_COOKIE (hook) == data->cookie)
+  if (PROBE_COOKIE (hook) == data->cookie) {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+        "hook %lu, cookie %u already called", hook->hook_id,
+        PROBE_COOKIE (hook));
     return;
+  }
 
   PROBE_COOKIE (hook) = data->cookie;
 
   flags = hook->flags >> G_HOOK_FLAG_USER_SHIFT;
+  type = info->type;
 
   /* one of the data types */
-  if ((flags & GST_PROBE_TYPE_DATA & data->mask) == 0)
-    return;
+  if ((flags & GST_PAD_PROBE_TYPE_ALL_BOTH & type) == 0)
+    goto no_match;
   /* one of the scheduling types */
-  if ((flags & GST_PROBE_TYPE_SCHEDULING & data->mask) == 0)
-    return;
-  /* all of the blocking types must match */
-  if ((flags & GST_PROBE_TYPE_BLOCKING) !=
-      (data->mask & GST_PROBE_TYPE_BLOCKING))
-    return;
+  if ((flags & GST_PAD_PROBE_TYPE_SCHEDULING & type) == 0)
+    goto no_match;
+  /* one of the blocking types must match */
+  if ((type & GST_PAD_PROBE_TYPE_BLOCKING) &&
+      (flags & GST_PAD_PROBE_TYPE_BLOCKING & type) == 0)
+    goto no_match;
+  /* only probes that have GST_PAD_PROBE_TYPE_EVENT_FLUSH set */
+  if ((type & GST_PAD_PROBE_TYPE_EVENT_FLUSH) &&
+      (flags & GST_PAD_PROBE_TYPE_EVENT_FLUSH & type) == 0)
+    goto no_match;
 
   GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
-      "hook %lu with flags 0x%08x matches", hook->hook_id, flags);
+      "hook %lu, cookie %u with flags 0x%08x matches", hook->hook_id,
+      PROBE_COOKIE (hook), flags);
+
+  data->marshalled = TRUE;
 
   callback = (GstPadProbeCallback) hook->func;
   if (callback == NULL)
     return;
 
+  info->id = hook->hook_id;
+
   GST_OBJECT_UNLOCK (pad);
 
-  ret = callback (pad, data->mask, data->type_data, hook->data);
+  ret = callback (pad, info, hook->data);
 
   GST_OBJECT_LOCK (pad);
 
   switch (ret) {
-    case GST_PROBE_REMOVE:
+    case GST_PAD_PROBE_REMOVE:
       /* remove the probe */
       GST_DEBUG_OBJECT (pad, "asked to remove hook");
       cleanup_hook (pad, hook);
       break;
-    case GST_PROBE_DROP:
+    case GST_PAD_PROBE_DROP:
       /* need to drop the data, make sure other probes don't get called
        * anymore */
       GST_DEBUG_OBJECT (pad, "asked to drop item");
-      data->mask = GST_PROBE_TYPE_INVALID;
-      data->ret = GST_PROBE_DROP;
+      info->type = GST_PAD_PROBE_TYPE_INVALID;
+      data->dropped = TRUE;
       break;
-    case GST_PROBE_PASS:
+    case GST_PAD_PROBE_PASS:
       /* inform the pad block to let things pass */
       GST_DEBUG_OBJECT (pad, "asked to pass item");
       data->pass = TRUE;
@@ -3375,51 +2954,96 @@
       GST_DEBUG_OBJECT (pad, "probe returned %d", ret);
       break;
   }
+  return;
+
+no_match:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+        "hook %lu, cookie %u with flags 0x%08x does not match %08x",
+        hook->hook_id, PROBE_COOKIE (hook), flags, info->type);
+    return;
+  }
 }
 
-#define PROBE(pad,mask,data,label)                \
-  G_STMT_START {                                  \
-    if (G_UNLIKELY (pad->num_probes)) {           \
-      ret = do_probe_callbacks (pad, mask, data); \
-      if (G_UNLIKELY (ret != GST_FLOW_OK))        \
-        goto label;                               \
-    }                                             \
+/* a probe that does not take or return any data */
+#define PROBE_NO_DATA(pad,mask,label,defaultval)                \
+  G_STMT_START {						\
+    if (G_UNLIKELY (pad->num_probes)) {				\
+      /* pass NULL as the data item */                          \
+      GstPadProbeInfo info = { mask, 0, NULL, 0, 0 };           \
+      ret = do_probe_callbacks (pad, &info, defaultval);	\
+      if (G_UNLIKELY (ret != defaultval && ret != GST_FLOW_OK))	\
+        goto label;						\
+    }								\
   } G_STMT_END
 
+#define PROBE_FULL(pad,mask,data,offs,size,label)               \
+  G_STMT_START {						\
+    if (G_UNLIKELY (pad->num_probes)) {				\
+      /* pass the data item */                                  \
+      GstPadProbeInfo info = { mask, 0, data, offs, size };     \
+      ret = do_probe_callbacks (pad, &info, GST_FLOW_OK);	\
+      /* store the possibly updated data item */                \
+      data = GST_PAD_PROBE_INFO_DATA (&info);                   \
+      /* if something went wrong, exit */                       \
+      if (G_UNLIKELY (ret != GST_FLOW_OK))	                \
+        goto label;						\
+    }								\
+  } G_STMT_END
+
+#define PROBE_PUSH(pad,mask,data,label)		                 \
+  PROBE_FULL(pad, mask, data, -1, -1, label);
+#define PROBE_PULL(pad,mask,data,offs,size,label)		 \
+  PROBE_FULL(pad, mask, data, offs, size, label);
+
 static GstFlowReturn
-do_probe_callbacks (GstPad * pad, GstProbeType mask, gpointer type_data)
+do_probe_callbacks (GstPad * pad, GstPadProbeInfo * info,
+    GstFlowReturn defaultval)
 {
   ProbeMarshall data;
   guint cookie;
+  gboolean is_block;
 
   data.pad = pad;
-  data.mask = mask;
-  data.type_data = type_data;
-  data.ret = GST_PROBE_OK;
+  data.info = info;
   data.pass = FALSE;
-  data.cookie = pad->priv->probe_cookie++;
+  data.marshalled = FALSE;
+  data.dropped = FALSE;
+  data.cookie = ++pad->priv->probe_cookie;
+
+  is_block =
+      (info->type & GST_PAD_PROBE_TYPE_BLOCK) == GST_PAD_PROBE_TYPE_BLOCK;
 
 again:
-  cookie = pad->priv->probe_cookie;
+  GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+      "do probes cookie %u", data.cookie);
+  cookie = pad->priv->probe_list_cookie;
 
-  g_hook_list_marshal (&pad->probes, FALSE,
+  g_hook_list_marshal (&pad->probes, TRUE,
       (GHookMarshaller) probe_hook_marshal, &data);
 
   /* if the list changed, call the new callbacks (they will not have their
    * cookie set to data.cookie */
-  if (cookie != pad->priv->probe_cookie) {
+  if (cookie != pad->priv->probe_list_cookie) {
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "probe list changed, restarting");
     goto again;
   }
 
-  if (data.ret == GST_PROBE_DROP)
+  /* the first item that dropped will stop the hooks and then we drop here */
+  if (data.dropped)
     goto dropped;
 
+  /* if no handler matched and we are blocking, let the item pass */
+  if (!data.marshalled && is_block)
+    goto passed;
+
+  /* At this point, all handlers returned either OK or PASS. If one handler
+   * returned PASS, let the item pass */
   if (data.pass)
     goto passed;
 
-  if (mask & GST_PROBE_TYPE_BLOCK) {
+  if (is_block) {
     while (GST_PAD_IS_BLOCKED (pad)) {
       GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
           "we are blocked %d times", pad->num_blocked);
@@ -3434,9 +3058,9 @@
        * the pad after setting the FLUSHING flag. */
       GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
           "Waiting to be unblocked or set flushing");
-      GST_OBJECT_FLAG_SET (pad, GST_PAD_BLOCKING);
+      GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_BLOCKING);
       GST_PAD_BLOCK_WAIT (pad);
-      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_BLOCKING);
+      GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_BLOCKING);
       GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "We got unblocked");
 
       if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
@@ -3444,13 +3068,13 @@
     }
   }
 
-  return GST_FLOW_OK;
+  return defaultval;
 
   /* ERRORS */
 flushing:
   {
     GST_DEBUG_OBJECT (pad, "pad is flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 dropped:
   {
@@ -3459,6 +3083,7 @@
   }
 passed:
   {
+    /* FIXME : Should we return FLOW_OK or the defaultval ?? */
     GST_DEBUG_OBJECT (pad, "data is passed");
     return GST_FLOW_OK;
   }
@@ -3499,9 +3124,7 @@
 void
 gst_pad_set_offset (GstPad * pad, gint64 offset)
 {
-  guint idx;
-  GstPad *peer;
-  GstPad *tmp = NULL;
+  PadEvent *ev;
 
   g_return_if_fail (GST_IS_PAD (pad));
 
@@ -3511,47 +3134,325 @@
     goto done;
 
   pad->offset = offset;
+  GST_DEBUG_OBJECT (pad, "changed offset to %" G_GINT64_FORMAT, offset);
 
-  /* if no peer, we just updated the offset */
-  if ((peer = GST_PAD_PEER (pad)) == NULL)
+  /* sinkpads will apply their offset the next time a segment
+   * event is received. */
+  if (GST_PAD_IS_SINK (pad))
     goto done;
 
-  /* switch pads around when dealing with a sinkpad */
-  if (GST_PAD_IS_SINK (pad)) {
-    /* ref the peer so it doesn't go away when we release the lock */
-    tmp = gst_object_ref (peer);
-    /* make sure we get the peer (the srcpad) */
-    GST_OBJECT_UNLOCK (pad);
-
-    /* swap pads */
-    peer = pad;
-    pad = tmp;
-
-    GST_OBJECT_LOCK (pad);
-    /* check if the pad didn't get relinked */
-    if (GST_PAD_PEER (pad) != peer)
-      goto done;
-
-    /* we can release the ref now */
-    gst_object_unref (peer);
+  /* resend the last segment event on next buffer push */
+  if ((ev = find_event_by_type (pad, GST_EVENT_SEGMENT, 0))) {
+    ev->received = FALSE;
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
   }
 
-  /* the index of the segment event in the array */
-  idx = GST_EVENT_STICKY_IDX_TYPE (GST_EVENT_SEGMENT);
-
-  /* lock order is srcpad >> sinkpad */
-  GST_OBJECT_LOCK (peer);
-  /* take the current segment event, adjust it and then place
-   * it on the sinkpad. events on the srcpad are always active. */
-  if (replace_event (pad, peer, idx))
-    GST_OBJECT_FLAG_SET (peer, GST_PAD_NEED_EVENTS);
-
-  GST_OBJECT_UNLOCK (peer);
-
 done:
   GST_OBJECT_UNLOCK (pad);
 }
 
+/* should be called with pad LOCK */
+static gboolean
+push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
+{
+  GstFlowReturn *data = user_data;
+  GstEvent *event = ev->event;
+
+  if (ev->received) {
+    GST_DEBUG_OBJECT (pad, "event %s was already received",
+        GST_EVENT_TYPE_NAME (event));
+    return TRUE;
+  }
+
+  *data = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
+      GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
+
+  switch (*data) {
+    case GST_FLOW_OK:
+      ev->received = TRUE;
+      GST_DEBUG_OBJECT (pad, "event %s marked received",
+          GST_EVENT_TYPE_NAME (event));
+      break;
+    case GST_FLOW_NOT_LINKED:
+      /* not linked is not a problem, we are sticky so the event will be
+       * sent later */
+      GST_DEBUG_OBJECT (pad, "pad was not linked");
+      *data = GST_FLOW_OK;
+      /* fallthrough */
+    default:
+      GST_DEBUG_OBJECT (pad, "mark pending events");
+      GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+      break;
+  }
+  return *data == GST_FLOW_OK;
+}
+
+/* check sticky events and push them when needed. should be called
+ * with pad LOCK */
+static inline GstFlowReturn
+check_sticky (GstPad * pad)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  if (G_UNLIKELY (GST_PAD_HAS_PENDING_EVENTS (pad))) {
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+
+    GST_DEBUG_OBJECT (pad, "pushing all sticky events");
+    events_foreach (pad, push_sticky, &ret);
+  }
+  return ret;
+}
+
+
+/**
+ * gst_pad_query:
+ * @pad: a #GstPad to invoke the default query on.
+ * @query: (transfer none): the #GstQuery to perform.
+ *
+ * Dispatches a query to a pad. The query should have been allocated by the
+ * caller via one of the type-specific allocation functions. The element that
+ * the pad belongs to is responsible for filling the query with an appropriate
+ * response, which should then be parsed with a type-specific query parsing
+ * function.
+ *
+ * Again, the caller is responsible for both the allocation and deallocation of
+ * the query structure.
+ *
+ * Please also note that some queries might need a running pipeline to work.
+ *
+ * Returns: TRUE if the query could be performed.
+ */
+gboolean
+gst_pad_query (GstPad * pad, GstQuery * query)
+{
+  GstObject *parent;
+  gboolean res, serialized;
+  GstPadQueryFunction func;
+  GstPadProbeType type;
+  GstFlowReturn ret;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+
+  if (GST_PAD_IS_SRC (pad)) {
+    if (G_UNLIKELY (!GST_QUERY_IS_UPSTREAM (query)))
+      goto wrong_direction;
+    type = GST_PAD_PROBE_TYPE_QUERY_UPSTREAM;
+  } else if (GST_PAD_IS_SINK (pad)) {
+    if (G_UNLIKELY (!GST_QUERY_IS_DOWNSTREAM (query)))
+      goto wrong_direction;
+    type = GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM;
+  } else
+    goto unknown_direction;
+
+  GST_DEBUG_OBJECT (pad, "doing query %p (%s)", query,
+      GST_QUERY_TYPE_NAME (query));
+
+  serialized = GST_QUERY_IS_SERIALIZED (query);
+  if (G_UNLIKELY (serialized))
+    GST_PAD_STREAM_LOCK (pad);
+
+  GST_OBJECT_LOCK (pad);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH |
+      GST_PAD_PROBE_TYPE_BLOCK, query, probe_stopped);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, query, probe_stopped);
+
+  ACQUIRE_PARENT (pad, parent, no_parent);
+  GST_OBJECT_UNLOCK (pad);
+
+  if ((func = GST_PAD_QUERYFUNC (pad)) == NULL)
+    goto no_func;
+
+  res = func (pad, parent, query);
+
+  RELEASE_PARENT (parent);
+
+  GST_DEBUG_OBJECT (pad, "sent query %p (%s), result %d", query,
+      GST_QUERY_TYPE_NAME (query), res);
+
+  if (res != TRUE)
+    goto query_failed;
+
+  GST_OBJECT_LOCK (pad);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PULL, query, probe_stopped);
+  GST_OBJECT_UNLOCK (pad);
+
+  if (G_UNLIKELY (serialized))
+    GST_PAD_STREAM_UNLOCK (pad);
+
+  return res;
+
+  /* ERRORS */
+wrong_direction:
+  {
+    g_warning ("pad %s:%s query %s in wrong direction",
+        GST_DEBUG_PAD_NAME (pad), GST_QUERY_TYPE_NAME (query));
+    return FALSE;
+  }
+unknown_direction:
+  {
+    g_warning ("pad %s:%s has invalid direction", GST_DEBUG_PAD_NAME (pad));
+    return FALSE;
+  }
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "had no parent");
+    GST_OBJECT_UNLOCK (pad);
+    if (G_UNLIKELY (serialized))
+      GST_PAD_STREAM_UNLOCK (pad);
+    return FALSE;
+  }
+no_func:
+  {
+    GST_DEBUG_OBJECT (pad, "had no query function");
+    RELEASE_PARENT (parent);
+    if (G_UNLIKELY (serialized))
+      GST_PAD_STREAM_UNLOCK (pad);
+    return FALSE;
+  }
+query_failed:
+  {
+    GST_DEBUG_OBJECT (pad, "query failed");
+    if (G_UNLIKELY (serialized))
+      GST_PAD_STREAM_UNLOCK (pad);
+    return FALSE;
+  }
+probe_stopped:
+  {
+    GST_DEBUG_OBJECT (pad, "probe stopped: %s", gst_flow_get_name (ret));
+    GST_OBJECT_UNLOCK (pad);
+    if (G_UNLIKELY (serialized))
+      GST_PAD_STREAM_UNLOCK (pad);
+
+    /* if a probe dropped, we don't sent it further but assume that the probe
+     * answered the query and return TRUE */
+    if (ret == GST_FLOW_CUSTOM_SUCCESS)
+      res = TRUE;
+    else
+      res = FALSE;
+
+    return res;
+  }
+}
+
+/**
+ * gst_pad_peer_query:
+ * @pad: a #GstPad to invoke the peer query on.
+ * @query: (transfer none): the #GstQuery to perform.
+ *
+ * Performs gst_pad_query() on the peer of @pad.
+ *
+ * The caller is responsible for both the allocation and deallocation of
+ * the query structure.
+ *
+ * Returns: TRUE if the query could be performed. This function returns %FALSE
+ * if @pad has no peer.
+ *
+ * Since: 0.10.15
+ */
+gboolean
+gst_pad_peer_query (GstPad * pad, GstQuery * query)
+{
+  GstPad *peerpad;
+  GstPadProbeType type;
+  gboolean res, serialized;
+  GstFlowReturn ret;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+
+  if (GST_PAD_IS_SRC (pad)) {
+    if (G_UNLIKELY (!GST_QUERY_IS_DOWNSTREAM (query)))
+      goto wrong_direction;
+    type = GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM;
+  } else if (GST_PAD_IS_SINK (pad)) {
+    if (G_UNLIKELY (!GST_QUERY_IS_UPSTREAM (query)))
+      goto wrong_direction;
+    type = GST_PAD_PROBE_TYPE_QUERY_UPSTREAM;
+  } else
+    goto unknown_direction;
+
+  GST_DEBUG_OBJECT (pad, "peer query %p (%s)", query,
+      GST_QUERY_TYPE_NAME (query));
+
+  serialized = GST_QUERY_IS_SERIALIZED (query);
+
+  GST_OBJECT_LOCK (pad);
+  if (GST_PAD_IS_SRC (pad) && serialized) {
+    /* all serialized queries on the srcpad trigger push of
+     * sticky events */
+    if (!check_sticky (pad) == GST_FLOW_OK)
+      goto sticky_failed;
+  }
+
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH |
+      GST_PAD_PROBE_TYPE_BLOCK, query, probe_stopped);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, query, probe_stopped);
+
+  peerpad = GST_PAD_PEER (pad);
+  if (G_UNLIKELY (peerpad == NULL))
+    goto no_peer;
+
+  gst_object_ref (peerpad);
+  GST_OBJECT_UNLOCK (pad);
+
+  res = gst_pad_query (peerpad, query);
+
+  gst_object_unref (peerpad);
+
+  if (res != TRUE)
+    goto query_failed;
+
+  GST_OBJECT_LOCK (pad);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PULL, query, probe_stopped);
+  GST_OBJECT_UNLOCK (pad);
+
+  return res;
+
+  /* ERRORS */
+wrong_direction:
+  {
+    g_warning ("pad %s:%s query %s in wrong direction",
+        GST_DEBUG_PAD_NAME (pad), GST_QUERY_TYPE_NAME (query));
+    return FALSE;
+  }
+unknown_direction:
+  {
+    g_warning ("pad %s:%s has invalid direction", GST_DEBUG_PAD_NAME (pad));
+    return FALSE;
+  }
+sticky_failed:
+  {
+    GST_WARNING_OBJECT (pad, "could not send sticky events");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
+no_peer:
+  {
+    GST_WARNING_OBJECT (pad, "pad has no peer");
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
+query_failed:
+  {
+    GST_DEBUG_OBJECT (pad, "query failed");
+    return FALSE;
+  }
+probe_stopped:
+  {
+    GST_DEBUG_OBJECT (pad, "probe stopped: %s", gst_flow_get_name (ret));
+    GST_OBJECT_UNLOCK (pad);
+
+    /* if a probe dropped, we don't sent it further but assume that the probe
+     * answered the query and return TRUE */
+    if (ret == GST_FLOW_CUSTOM_SUCCESS)
+      res = TRUE;
+    else
+      res = FALSE;
+
+    return res;
+  }
+}
 
 /**********************************************************************
  * Data passing functions
@@ -3561,10 +3462,10 @@
  * checking for that little extra speed.
  */
 static inline GstFlowReturn
-gst_pad_chain_data_unchecked (GstPad * pad, GstProbeType type, void *data)
+gst_pad_chain_data_unchecked (GstPad * pad, GstPadProbeType type, void *data)
 {
   GstFlowReturn ret;
-  gboolean needs_events;
+  GstObject *parent;
 
   GST_PAD_STREAM_LOCK (pad);
 
@@ -3572,18 +3473,14 @@
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
 
-  needs_events = GST_PAD_NEEDS_EVENTS (pad);
-  if (G_UNLIKELY (needs_events)) {
-    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_NEED_EVENTS);
+  if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
+    goto wrong_mode;
 
-    GST_DEBUG_OBJECT (pad, "need to update all events");
-    ret = gst_pad_update_events (pad);
-    if (G_UNLIKELY (ret != GST_FLOW_OK))
-      goto events_error;
-  }
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_BLOCK, data, probe_stopped);
 
-  PROBE (pad, GST_PROBE_TYPE_PUSH | type, data, probe_stopped);
+  PROBE_PUSH (pad, type, data, probe_stopped);
 
+  parent = GST_OBJECT_PARENT (pad);
   GST_OBJECT_UNLOCK (pad);
 
   /* NOTE: we read the chainfunc unlocked.
@@ -3591,18 +3488,17 @@
    * the data to the wrong function. This is not really a
    * problem since functions are assigned at creation time
    * and don't change that often... */
-  if (G_LIKELY (type & GST_PROBE_TYPE_BUFFER)) {
+  if (G_LIKELY (type & GST_PAD_PROBE_TYPE_BUFFER)) {
     GstPadChainFunction chainfunc;
 
     if (G_UNLIKELY ((chainfunc = GST_PAD_CHAINFUNC (pad)) == NULL))
       goto no_function;
 
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
-        "calling chainfunction &%s with buffer %p, ts %" GST_TIME_FORMAT,
-        GST_DEBUG_FUNCPTR_NAME (chainfunc),
-        GST_BUFFER (data), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (data)));
+        "calling chainfunction &%s with buffer %" GST_PTR_FORMAT,
+        GST_DEBUG_FUNCPTR_NAME (chainfunc), GST_BUFFER (data));
 
-    ret = chainfunc (pad, GST_BUFFER_CAST (data));
+    ret = chainfunc (pad, parent, GST_BUFFER_CAST (data));
 
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "called chainfunction &%s with buffer %p, returned %s",
@@ -3617,7 +3513,7 @@
         "calling chainlistfunction &%s",
         GST_DEBUG_FUNCPTR_NAME (chainlistfunc));
 
-    ret = chainlistfunc (pad, GST_BUFFER_LIST_CAST (data));
+    ret = chainlistfunc (pad, parent, GST_BUFFER_LIST_CAST (data));
 
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "called chainlistfunction &%s, returned %s",
@@ -3635,14 +3531,17 @@
         "chaining, but pad was flushing");
     GST_OBJECT_UNLOCK (pad);
     GST_PAD_STREAM_UNLOCK (pad);
-    return GST_FLOW_WRONG_STATE;
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return GST_FLOW_FLUSHING;
   }
-events_error:
+wrong_mode:
   {
-    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "events were not accepted");
+    g_critical ("chain on pad %s:%s but it was not in push mode",
+        GST_DEBUG_PAD_NAME (pad));
     GST_OBJECT_UNLOCK (pad);
     GST_PAD_STREAM_UNLOCK (pad);
-    return ret;
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return GST_FLOW_ERROR;
   }
 probe_stopped:
   {
@@ -3656,7 +3555,7 @@
         ret = GST_FLOW_OK;
         break;
       default:
-        GST_DEBUG_OBJECT (pad, "en error occured %s", gst_flow_get_name (ret));
+        GST_DEBUG_OBJECT (pad, "an error occured %s", gst_flow_get_name (ret));
         break;
     }
     return ret;
@@ -3664,11 +3563,8 @@
 no_function:
   {
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
-    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
-        "pushing, but not chainhandler");
-    GST_ELEMENT_ERROR (GST_PAD_PARENT (pad), CORE, PAD, (NULL),
-        ("push on pad %s:%s but it has no chainfunction",
-            GST_DEBUG_PAD_NAME (pad)));
+    g_critical ("chain on pad %s:%s but it has no chainfunction",
+        GST_DEBUG_PAD_NAME (pad));
     GST_PAD_STREAM_UNLOCK (pad);
     return GST_FLOW_NOT_SUPPORTED;
   }
@@ -3682,7 +3578,7 @@
  *
  * Chain a buffer to @pad.
  *
- * The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+ * The function returns #GST_FLOW_FLUSHING if the pad was flushing.
  *
  * If the buffer type is not acceptable for @pad (as negotiated with a
  * preceeding GST_EVENT_CAPS event), this function returns
@@ -3707,11 +3603,13 @@
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_IS_BUFFER (buffer), GST_FLOW_ERROR);
 
-  return gst_pad_chain_data_unchecked (pad, GST_PROBE_TYPE_BUFFER, buffer);
+  return gst_pad_chain_data_unchecked (pad,
+      GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH, buffer);
 }
 
 static GstFlowReturn
-gst_pad_chain_list_default (GstPad * pad, GstBufferList * list)
+gst_pad_chain_list_default (GstPad * pad, GstObject * parent,
+    GstBufferList * list)
 {
   guint i, len;
   GstBuffer *buffer;
@@ -3719,13 +3617,14 @@
 
   GST_INFO_OBJECT (pad, "chaining each group in list as a merged buffer");
 
-  len = gst_buffer_list_len (list);
+  len = gst_buffer_list_length (list);
 
   ret = GST_FLOW_OK;
   for (i = 0; i < len; i++) {
     buffer = gst_buffer_list_get (list, i);
     ret =
-        gst_pad_chain_data_unchecked (pad, GST_PROBE_TYPE_BUFFER,
+        gst_pad_chain_data_unchecked (pad,
+        GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH,
         gst_buffer_ref (buffer));
     if (ret != GST_FLOW_OK)
       break;
@@ -3743,7 +3642,7 @@
  *
  * Chain a bufferlist to @pad.
  *
- * The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+ * The function returns #GST_FLOW_FLUSHING if the pad was flushing.
  *
  * If @pad was not negotiated properly with a CAPS event, this function
  * returns #GST_FLOW_NOT_NEGOTIATED.
@@ -3769,11 +3668,12 @@
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_IS_BUFFER_LIST (list), GST_FLOW_ERROR);
 
-  return gst_pad_chain_data_unchecked (pad, GST_PROBE_TYPE_BUFFER_LIST, list);
+  return gst_pad_chain_data_unchecked (pad,
+      GST_PAD_PROBE_TYPE_BUFFER_LIST | GST_PAD_PROBE_TYPE_PUSH, list);
 }
 
 static GstFlowReturn
-gst_pad_push_data (GstPad * pad, GstProbeType type, void *data)
+gst_pad_push_data (GstPad * pad, GstPadProbeType type, void *data)
 {
   GstPad *peer;
   GstFlowReturn ret;
@@ -3782,13 +3682,17 @@
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
 
-  type |= GST_PROBE_TYPE_PUSH;
+  if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
+    goto wrong_mode;
+
+  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+    goto events_error;
 
   /* do block probes */
-  PROBE (pad, type | GST_PROBE_TYPE_BLOCK, data, probe_stopped);
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_BLOCK, data, probe_stopped);
 
   /* do post-blocking probes */
-  PROBE (pad, type, data, probe_stopped);
+  PROBE_PUSH (pad, type, data, probe_stopped);
 
   if (G_UNLIKELY ((peer = GST_PAD_PEER (pad)) == NULL))
     goto not_linked;
@@ -3806,7 +3710,8 @@
   pad->priv->using--;
   if (pad->priv->using == 0) {
     /* pad is not active anymore, trigger idle callbacks */
-    PROBE (pad, GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_IDLE, NULL, probe_stopped);
+    PROBE_NO_DATA (pad, GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_IDLE,
+        probe_stopped, ret);
   }
   GST_OBJECT_UNLOCK (pad);
 
@@ -3820,7 +3725,23 @@
         "pushing, but pad was flushing");
     GST_OBJECT_UNLOCK (pad);
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
+  }
+wrong_mode:
+  {
+    g_critical ("pushing on pad %s:%s but it was not activated in push mode",
+        GST_DEBUG_PAD_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return GST_FLOW_ERROR;
+  }
+events_error:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+        "error pushing events, return %s", gst_flow_get_name (ret));
+    GST_OBJECT_UNLOCK (pad);
+    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    return ret;
   }
 probe_stopped:
   {
@@ -3833,7 +3754,7 @@
         ret = GST_FLOW_OK;
         break;
       default:
-        GST_DEBUG_OBJECT (pad, "en error occured %s", gst_flow_get_name (ret));
+        GST_DEBUG_OBJECT (pad, "an error occured %s", gst_flow_get_name (ret));
         break;
     }
     return ret;
@@ -3877,7 +3798,8 @@
   g_return_val_if_fail (GST_PAD_IS_SRC (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_IS_BUFFER (buffer), GST_FLOW_ERROR);
 
-  return gst_pad_push_data (pad, GST_PROBE_TYPE_BUFFER, buffer);
+  return gst_pad_push_data (pad,
+      GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH, buffer);
 }
 
 /**
@@ -3913,7 +3835,8 @@
   g_return_val_if_fail (GST_PAD_IS_SRC (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_IS_BUFFER_LIST (list), GST_FLOW_ERROR);
 
-  return gst_pad_push_data (pad, GST_PROBE_TYPE_BUFFER_LIST, list);
+  return gst_pad_push_data (pad,
+      GST_PAD_PROBE_TYPE_BUFFER_LIST | GST_PAD_PROBE_TYPE_PUSH, list);
 }
 
 static GstFlowReturn
@@ -3922,12 +3845,30 @@
 {
   GstFlowReturn ret;
   GstPadGetRangeFunction getrangefunc;
+  GstObject *parent;
+  GstBuffer *res_buf;
 
   GST_PAD_STREAM_LOCK (pad);
 
   GST_OBJECT_LOCK (pad);
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
+
+  if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PULL))
+    goto wrong_mode;
+
+  if (G_UNLIKELY ((ret = check_sticky (pad))) != GST_FLOW_OK)
+    goto events_error;
+
+  res_buf = *buffer;
+
+  /* when one of the probes returns DROPPED, probe_stopped will be called
+   * and we skip calling the getrange function, res_buf should then contain a
+   * valid result buffer */
+  PROBE_PULL (pad, GST_PAD_PROBE_TYPE_PULL | GST_PAD_PROBE_TYPE_BLOCK,
+      res_buf, offset, size, probe_stopped);
+
+  ACQUIRE_PARENT (pad, parent, no_parent);
   GST_OBJECT_UNLOCK (pad);
 
   if (G_UNLIKELY ((getrangefunc = GST_PAD_GETRANGEFUNC (pad)) == NULL))
@@ -3938,19 +3879,24 @@
       G_GUINT64_FORMAT ", size %u",
       GST_DEBUG_FUNCPTR_NAME (getrangefunc), offset, size);
 
-  ret = getrangefunc (pad, offset, size, buffer);
+  ret = getrangefunc (pad, parent, offset, size, &res_buf);
+
+  RELEASE_PARENT (parent);
 
   if (G_UNLIKELY (ret != GST_FLOW_OK))
     goto get_range_failed;
 
   /* can only fire the signal if we have a valid buffer */
   GST_OBJECT_LOCK (pad);
-  PROBE (pad, GST_PROBE_TYPE_PULL | GST_PROBE_TYPE_BUFFER, *buffer,
-      probe_stopped);
+probed_data:
+  PROBE_PULL (pad, GST_PAD_PROBE_TYPE_PULL | GST_PAD_PROBE_TYPE_BUFFER,
+      res_buf, offset, size, probe_stopped_unref);
   GST_OBJECT_UNLOCK (pad);
 
   GST_PAD_STREAM_UNLOCK (pad);
 
+  *buffer = res_buf;
+
   return ret;
 
   /* ERRORS */
@@ -3960,13 +3906,35 @@
         "getrange, but pad was flushing");
     GST_OBJECT_UNLOCK (pad);
     GST_PAD_STREAM_UNLOCK (pad);
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
+  }
+wrong_mode:
+  {
+    g_critical ("getrange on pad %s:%s but it was not activated in pull mode",
+        GST_DEBUG_PAD_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    GST_PAD_STREAM_UNLOCK (pad);
+    return GST_FLOW_ERROR;
+  }
+events_error:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "error pushing events");
+    GST_OBJECT_UNLOCK (pad);
+    GST_PAD_STREAM_UNLOCK (pad);
+    return ret;
+  }
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    GST_PAD_STREAM_UNLOCK (pad);
+    return GST_FLOW_FLUSHING;
   }
 no_function:
   {
-    GST_ELEMENT_ERROR (GST_PAD_PARENT (pad), CORE, PAD, (NULL),
-        ("getrange on pad %s:%s but it has no getrangefunction",
-            GST_DEBUG_PAD_NAME (pad)));
+    g_critical ("getrange on pad %s:%s but it has no getrangefunction",
+        GST_DEBUG_PAD_NAME (pad));
+    RELEASE_PARENT (parent);
     GST_PAD_STREAM_UNLOCK (pad);
     return GST_FLOW_NOT_SUPPORTED;
   }
@@ -3974,18 +3942,42 @@
   {
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "probe returned %s", gst_flow_get_name (ret));
+    if (ret == GST_FLOW_CUSTOM_SUCCESS) {
+      if (res_buf) {
+        /* the probe filled the buffer and asks us to not call the getrange
+         * anymore, we continue with the post probes then. */
+        GST_DEBUG_OBJECT (pad, "handled buffer");
+        ret = GST_FLOW_OK;
+        goto probed_data;
+      } else {
+        /* no buffer, we are EOS */
+        GST_DEBUG_OBJECT (pad, "no buffer, return EOS");
+        ret = GST_FLOW_EOS;
+      }
+    }
     GST_OBJECT_UNLOCK (pad);
     GST_PAD_STREAM_UNLOCK (pad);
-    gst_buffer_unref (*buffer);
-    *buffer = NULL;
+
+    return ret;
+  }
+probe_stopped_unref:
+  {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+        "probe returned %s", gst_flow_get_name (ret));
+    /* if we drop here, it signals EOS */
+    if (ret == GST_FLOW_CUSTOM_SUCCESS)
+      ret = GST_FLOW_EOS;
+    GST_OBJECT_UNLOCK (pad);
+    GST_PAD_STREAM_UNLOCK (pad);
+    if (*buffer == NULL)
+      gst_buffer_unref (res_buf);
     return ret;
   }
 get_range_failed:
   {
     GST_PAD_STREAM_UNLOCK (pad);
-    *buffer = NULL;
     GST_CAT_LEVEL_LOG (GST_CAT_SCHEDULING,
-        (ret >= GST_FLOW_UNEXPECTED) ? GST_LEVEL_INFO : GST_LEVEL_WARNING,
+        (ret >= GST_FLOW_EOS) ? GST_LEVEL_INFO : GST_LEVEL_WARNING,
         pad, "getrange failed, flow: %s", gst_flow_get_name (ret));
     return ret;
   }
@@ -3999,7 +3991,7 @@
  * @buffer: (out callee-allocates): a pointer to hold the #GstBuffer,
  *     returns #GST_FLOW_ERROR if %NULL.
  *
- * When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
+ * When @pad is flushing this function returns #GST_FLOW_FLUSHING
  * immediately and @buffer is %NULL.
  *
  * Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
@@ -4007,6 +3999,23 @@
  * installed (see gst_pad_set_getrange_function()) this function returns
  * #GST_FLOW_NOT_SUPPORTED.
  *
+ * If @buffer points to a variable holding NULL, a valid new #GstBuffer will be
+ * placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
+ * must be freed with gst_buffer_unref() after usage.
+ *
+ * When @buffer points to a variable that points to a valid #GstBuffer, the
+ * buffer will be filled with the result data when this function returns
+ * #GST_FLOW_OK. If the provided buffer is larger than @size, only
+ * @size bytes will be filled in the result buffer and its size will be updated
+ * accordingly.
+ *
+ * Note that less than @size bytes can be returned in @buffer when, for example,
+ * an EOS condition is near or when @buffer is not large enough to hold @size
+ * bytes. The caller should check the result buffer size to get the result size.
+ *
+ * When this function returns any other result value than #GST_FLOW_OK, @buffer
+ * will be unchanged.
+ *
  * This is a lowlevel function. Usualy gst_pad_pull_range() is used.
  *
  * Returns: a #GstFlowReturn from the pad.
@@ -4020,6 +4029,8 @@
   g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_PAD_IS_SRC (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (*buffer == NULL
+      || GST_IS_BUFFER (*buffer), GST_FLOW_ERROR);
 
   return gst_pad_get_range_unchecked (pad, offset, size, buffer);
 }
@@ -4032,7 +4043,7 @@
  * @buffer: (out callee-allocates): a pointer to hold the #GstBuffer, returns
  *     GST_FLOW_ERROR if %NULL.
  *
- * Pulls a @buffer from the peer pad.
+ * Pulls a @buffer from the peer pad or fills up a provided buffer.
  *
  * This function will first trigger the pad block signal if it was
  * installed.
@@ -4042,11 +4053,23 @@
  * See gst_pad_get_range() for a list of return values and for the
  * semantics of the arguments of this function.
  *
+ * If @buffer points to a variable holding NULL, a valid new #GstBuffer will be
+ * placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
+ * must be freed with gst_buffer_unref() after usage. When this function
+ * returns any other result value, @buffer will still point to NULL.
+ *
+ * When @buffer points to a variable that points to a valid #GstBuffer, the
+ * buffer will be filled with the result data when this function returns
+ * #GST_FLOW_OK. When this function returns any other result value,
+ * @buffer will be unchanged. If the provided buffer is larger than @size, only
+ * @size bytes will be filled in the result buffer and its size will be updated
+ * accordingly.
+ *
+ * Note that less than @size bytes can be returned in @buffer when, for example,
+ * an EOS condition is near or when @buffer is not large enough to hold @size
+ * bytes. The caller should check the result buffer size to get the result size.
+ *
  * Returns: a #GstFlowReturn from the peer pad.
- * When this function returns #GST_FLOW_OK, @buffer will contain a valid
- * #GstBuffer that should be freed with gst_buffer_unref() after usage.
- * @buffer may not be used or freed when any other return value than
- * #GST_FLOW_OK is returned.
  *
  * MT safe.
  */
@@ -4056,18 +4079,28 @@
 {
   GstPad *peer;
   GstFlowReturn ret;
-  gboolean needs_events;
+  GstBuffer *res_buf;
 
   g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), GST_FLOW_ERROR);
   g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (*buffer == NULL
+      || GST_IS_BUFFER (*buffer), GST_FLOW_ERROR);
 
   GST_OBJECT_LOCK (pad);
   if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
     goto flushing;
 
-  PROBE (pad, GST_PROBE_TYPE_PULL | GST_PROBE_TYPE_BLOCK, NULL,
-      pre_probe_stopped);
+  if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PULL))
+    goto wrong_mode;
+
+  res_buf = *buffer;
+
+  /* when one of the probes returns DROPPED, probe_stopped will be
+   * called and we skip calling the peer getrange function. *buffer should then
+   * contain a valid buffer */
+  PROBE_PULL (pad, GST_PAD_PROBE_TYPE_PULL | GST_PAD_PROBE_TYPE_BLOCK,
+      res_buf, offset, size, probe_stopped);
 
   if (G_UNLIKELY ((peer = GST_PAD_PEER (pad)) == NULL))
     goto not_linked;
@@ -4076,7 +4109,7 @@
   pad->priv->using++;
   GST_OBJECT_UNLOCK (pad);
 
-  ret = gst_pad_get_range_unchecked (peer, offset, size, buffer);
+  ret = gst_pad_get_range_unchecked (peer, offset, size, &res_buf);
 
   gst_object_unref (peer);
 
@@ -4084,27 +4117,21 @@
   pad->priv->using--;
   if (pad->priv->using == 0) {
     /* pad is not active anymore, trigger idle callbacks */
-    PROBE (pad, GST_PROBE_TYPE_PULL | GST_PROBE_TYPE_IDLE, NULL,
-        post_probe_stopped);
+    PROBE_NO_DATA (pad, GST_PAD_PROBE_TYPE_PULL | GST_PAD_PROBE_TYPE_IDLE,
+        probe_stopped_unref, ret);
   }
 
   if (G_UNLIKELY (ret != GST_FLOW_OK))
     goto pull_range_failed;
 
-  PROBE (pad, GST_PROBE_TYPE_PULL | GST_PROBE_TYPE_BUFFER, buffer,
-      post_probe_stopped);
+probed_data:
+  PROBE_PULL (pad, GST_PAD_PROBE_TYPE_PULL | GST_PAD_PROBE_TYPE_BUFFER,
+      res_buf, offset, size, probe_stopped_unref);
 
-  needs_events = GST_PAD_NEEDS_EVENTS (pad);
-  if (G_UNLIKELY (needs_events)) {
-    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_NEED_EVENTS);
-
-    GST_DEBUG_OBJECT (pad, "we need to update the events");
-    ret = gst_pad_update_events (pad);
-    if (G_UNLIKELY (ret != GST_FLOW_OK))
-      goto events_error;
-  }
   GST_OBJECT_UNLOCK (pad);
 
+  *buffer = res_buf;
+
   return ret;
 
   /* ERROR recovery here */
@@ -4113,12 +4140,32 @@
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "pullrange, but pad was flushing");
     GST_OBJECT_UNLOCK (pad);
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
-pre_probe_stopped:
+wrong_mode:
+  {
+    g_critical ("pullrange on pad %s:%s but it was not activated in pull mode",
+        GST_DEBUG_PAD_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    return GST_FLOW_ERROR;
+  }
+probe_stopped:
   {
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "pre probe returned %s",
         gst_flow_get_name (ret));
+    if (ret == GST_FLOW_CUSTOM_SUCCESS) {
+      if (res_buf) {
+        /* the probe filled the buffer and asks us to not forward to the peer
+         * anymore, we continue with the post probes then */
+        GST_DEBUG_OBJECT (pad, "handled buffer");
+        ret = GST_FLOW_OK;
+        goto probed_data;
+      } else {
+        /* no buffer, we are EOS then */
+        GST_DEBUG_OBJECT (pad, "no buffer, return EOS");
+        ret = GST_FLOW_EOS;
+      }
+    }
     GST_OBJECT_UNLOCK (pad);
     return ret;
   }
@@ -4131,30 +4178,211 @@
   }
 pull_range_failed:
   {
-    *buffer = NULL;
     GST_OBJECT_UNLOCK (pad);
     GST_CAT_LEVEL_LOG (GST_CAT_SCHEDULING,
-        (ret >= GST_FLOW_UNEXPECTED) ? GST_LEVEL_INFO : GST_LEVEL_WARNING,
+        (ret >= GST_FLOW_EOS) ? GST_LEVEL_INFO : GST_LEVEL_WARNING,
         pad, "pullrange failed, flow: %s", gst_flow_get_name (ret));
     return ret;
   }
-post_probe_stopped:
+probe_stopped_unref:
   {
     GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
         "post probe returned %s", gst_flow_get_name (ret));
     GST_OBJECT_UNLOCK (pad);
-    if (ret == GST_FLOW_OK)
-      gst_buffer_unref (*buffer);
-    *buffer = NULL;
+    /* if we drop here, it signals EOS */
+    if (ret == GST_FLOW_CUSTOM_SUCCESS)
+      ret = GST_FLOW_EOS;
+    if (*buffer == NULL)
+      gst_buffer_unref (res_buf);
     return ret;
   }
-events_error:
+}
+
+static gboolean
+gst_pad_store_sticky_event (GstPad * pad, GstEvent * event, gboolean locked)
+{
+  guint i, len;
+  GstEventType type;
+  GArray *events;
+  gboolean res = FALSE;
+  const gchar *name = NULL;
+
+  type = GST_EVENT_TYPE (event);
+  if (type & GST_EVENT_TYPE_STICKY_MULTI)
+    name = gst_structure_get_name (gst_event_get_structure (event));
+
+  events = pad->priv->events;
+  len = events->len;
+
+  for (i = 0; i < len; i++) {
+    PadEvent *ev = &g_array_index (events, PadEvent, i);
+
+    if (ev->event == NULL)
+      continue;
+
+    if (type == GST_EVENT_TYPE (ev->event)) {
+      /* matching types, check matching name if needed */
+      if (name && !gst_event_has_name (ev->event, name))
+        continue;
+
+      /* overwrite */
+      if ((res = gst_event_replace (&ev->event, event)))
+        ev->received = FALSE;
+      break;
+    }
+  }
+  if (i == len) {
+    PadEvent ev;
+    ev.event = gst_event_ref (event);
+    ev.received = FALSE;
+    g_array_append_val (events, ev);
+    res = TRUE;
+  }
+
+  if (res) {
+    pad->priv->events_cookie++;
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+
+    GST_LOG_OBJECT (pad, "stored sticky event %s", GST_EVENT_TYPE_NAME (event));
+
+    switch (GST_EVENT_TYPE (event)) {
+      case GST_EVENT_CAPS:
+        if (locked)
+          GST_OBJECT_UNLOCK (pad);
+
+        GST_DEBUG_OBJECT (pad, "notify caps");
+        g_object_notify_by_pspec ((GObject *) pad, pspec_caps);
+
+        if (locked)
+          GST_OBJECT_LOCK (pad);
+        break;
+      default:
+        break;
+    }
+  }
+  return res;
+}
+
+/* should be called with pad LOCK */
+static GstFlowReturn
+gst_pad_push_event_unchecked (GstPad * pad, GstEvent * event,
+    GstPadProbeType type)
+{
+  GstFlowReturn ret;
+  GstPad *peerpad;
+  GstEventType event_type;
+
+  /* Two checks to be made:
+   * . (un)set the FLUSHING flag for flushing events,
+   * . handle pad blocking */
+  event_type = GST_EVENT_TYPE (event);
+  switch (event_type) {
+    case GST_EVENT_FLUSH_START:
+      GST_PAD_SET_FLUSHING (pad);
+
+      GST_PAD_BLOCK_BROADCAST (pad);
+      type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
+      break;
+    case GST_EVENT_FLUSH_STOP:
+      GST_PAD_UNSET_FLUSHING (pad);
+
+      /* Remove sticky EOS events */
+      GST_LOG_OBJECT (pad, "Removing pending EOS events");
+      remove_event_by_type (pad, GST_EVENT_EOS);
+
+      type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
+      break;
+    default:
+    {
+      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+        goto flushed;
+
+      switch (GST_EVENT_TYPE (event)) {
+        case GST_EVENT_SEGMENT:
+          /* pass the adjusted segment event on. We need to do this even if
+           * there is no peer pad because of the probes. */
+          event = apply_pad_offset (pad, event);
+          break;
+        case GST_EVENT_RECONFIGURE:
+          if (GST_PAD_IS_SINK (pad))
+            GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+          break;
+        default:
+          break;
+      }
+      PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH |
+          GST_PAD_PROBE_TYPE_BLOCK, event, probe_stopped);
+      break;
+    }
+  }
+
+  /* send probes after modifying the events above */
+  PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, event, probe_stopped);
+
+  /* now check the peer pad */
+  peerpad = GST_PAD_PEER (pad);
+  if (peerpad == NULL)
+    goto not_linked;
+
+  gst_object_ref (peerpad);
+  pad->priv->using++;
+  GST_OBJECT_UNLOCK (pad);
+
+  GST_LOG_OBJECT (pad, "sending event %p (%s) to peerpad %" GST_PTR_FORMAT,
+      event, GST_EVENT_TYPE_NAME (event), peerpad);
+
+  ret = gst_pad_send_event_unchecked (peerpad, event, type);
+
+  /* Note: we gave away ownership of the event at this point but we can still
+   * print the old pointer */
+  GST_LOG_OBJECT (pad,
+      "sent event %p to peerpad %" GST_PTR_FORMAT ", ret %s", event, peerpad,
+      gst_flow_get_name (ret));
+
+  gst_object_unref (peerpad);
+
+  GST_OBJECT_LOCK (pad);
+  pad->priv->using--;
+  if (pad->priv->using == 0) {
+    /* pad is not active anymore, trigger idle callbacks */
+    PROBE_NO_DATA (pad, GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_IDLE,
+        idle_probe_stopped, ret);
+  }
+  return ret;
+
+  /* ERROR handling */
+flushed:
   {
-    GST_OBJECT_UNLOCK (pad);
-    gst_buffer_unref (*buffer);
-    *buffer = NULL;
-    GST_CAT_WARNING_OBJECT (GST_CAT_SCHEDULING, pad,
-        "pullrange returned events that were not accepted");
+    GST_DEBUG_OBJECT (pad, "We're flushing");
+    gst_event_unref (event);
+    return GST_FLOW_FLUSHING;
+  }
+probe_stopped:
+  {
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+    gst_event_unref (event);
+
+    switch (ret) {
+      case GST_FLOW_CUSTOM_SUCCESS:
+        GST_DEBUG_OBJECT (pad, "dropped event");
+        ret = GST_FLOW_OK;
+        break;
+      default:
+        GST_DEBUG_OBJECT (pad, "an error occured %s", gst_flow_get_name (ret));
+        break;
+    }
+    return ret;
+  }
+not_linked:
+  {
+    GST_DEBUG_OBJECT (pad, "Dropping event because pad is not linked");
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
+    gst_event_unref (event);
+    return GST_FLOW_NOT_LINKED;
+  }
+idle_probe_stopped:
+  {
+    GST_DEBUG_OBJECT (pad, "Idle probe returned %s", gst_flow_get_name (ret));
     return ret;
   }
 }
@@ -4178,165 +4406,300 @@
 gboolean
 gst_pad_push_event (GstPad * pad, GstEvent * event)
 {
-  GstFlowReturn ret;
-  GstPad *peerpad;
-  gboolean result;
-  gboolean stored = FALSE;
+  gboolean res;
+  GstPadProbeType type;
+  gboolean sticky, serialized;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-  g_return_val_if_fail (event != NULL, FALSE);
   g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
 
+  if (GST_PAD_IS_SRC (pad)) {
+    if (G_UNLIKELY (!GST_EVENT_IS_DOWNSTREAM (event)))
+      goto wrong_direction;
+    type = GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM;
+  } else if (GST_PAD_IS_SINK (pad)) {
+    if (G_UNLIKELY (!GST_EVENT_IS_UPSTREAM (event)))
+      goto wrong_direction;
+    /* events pushed on sinkpad never are sticky */
+    type = GST_PAD_PROBE_TYPE_EVENT_UPSTREAM;
+  } else
+    goto unknown_direction;
+
   GST_OBJECT_LOCK (pad);
+  sticky = GST_EVENT_IS_STICKY (event);
+  serialized = GST_EVENT_IS_SERIALIZED (event);
 
-  peerpad = GST_PAD_PEER (pad);
+  if (sticky) {
+    /* can't store on flushing pads */
+    if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+      goto flushed;
 
-  /* Two checks to be made:
-   * . (un)set the FLUSHING flag for flushing events,
-   * . handle pad blocking */
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_START:
-      GST_PAD_SET_FLUSHING (pad);
-
-      if (G_UNLIKELY (GST_PAD_IS_BLOCKED (pad))) {
-        /* flush start will have set the FLUSHING flag and will then
-         * unlock all threads doing a GCond wait on the blocking pad. This
-         * will typically unblock the STREAMING thread blocked on a pad. */
-        GST_LOG_OBJECT (pad, "Pad is blocked, not forwarding flush-start, "
-            "doing block signal.");
-        GST_PAD_BLOCK_BROADCAST (pad);
-        goto flushed;
-      }
-      break;
-    case GST_EVENT_FLUSH_STOP:
-      GST_PAD_UNSET_FLUSHING (pad);
-      if (G_UNLIKELY (GST_PAD_IS_BLOCKED (pad))) {
-        GST_LOG_OBJECT (pad, "Pad is blocked, not forwarding flush-stop");
-        goto flushed;
-      }
-      break;
-    default:
-    {
-      /* store the event on the pad, but only on srcpads */
-      if (GST_PAD_IS_SRC (pad) && GST_EVENT_IS_STICKY (event)) {
-        guint idx;
-
-        idx = GST_EVENT_STICKY_IDX (event);
-        GST_LOG_OBJECT (pad, "storing sticky event %s at index %u",
-            GST_EVENT_TYPE_NAME (event), idx);
-
-        /* srcpad sticky events always become active immediately */
-        gst_event_replace (&pad->priv->events[idx].event, event);
-
-        stored = TRUE;
-      }
-
-      /* backwards compatibility mode for caps */
-      switch (GST_EVENT_TYPE (event)) {
-        case GST_EVENT_CAPS:
-        {
-          GST_OBJECT_UNLOCK (pad);
-
-          g_object_notify_by_pspec ((GObject *) pad, pspec_caps);
-
-          GST_OBJECT_LOCK (pad);
-          /* the peerpad might have changed. Things we checked above could not
-           * have changed. */
-          peerpad = GST_PAD_PEER (pad);
-          break;
-        }
-        case GST_EVENT_SEGMENT:
-        {
-          gint64 offset;
-
-          offset = pad->offset;
-          /* check if we need to adjust the segment */
-          if (offset != 0 && (peerpad != NULL)) {
-            GstSegment segment;
-
-            /* copy segment values */
-            gst_event_copy_segment (event, &segment);
-            gst_event_unref (event);
-
-            /* adjust and make a new event with the offset applied */
-            segment.base += offset;
-            event = gst_event_new_segment (&segment);
-          }
-          break;
-        }
-        case GST_EVENT_RECONFIGURE:
-          if (GST_PAD_IS_SINK (pad))
-            GST_OBJECT_FLAG_SET (pad, GST_PAD_NEED_RECONFIGURE);
-          break;
-        default:
-          break;
-      }
-
-      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
-        goto flushed;
-
-      PROBE (pad, GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_EVENT
-          | GST_PROBE_TYPE_BLOCK, event, probe_stopped);
-
-      break;
+    /* srcpad sticky events are store immediately, the received flag is set
+     * to FALSE and will be set to TRUE when we can successfully push the
+     * event to the peer pad */
+    if (gst_pad_store_sticky_event (pad, event, TRUE)) {
+      GST_DEBUG_OBJECT (pad, "event %s updated", GST_EVENT_TYPE_NAME (event));
     }
   }
-
-  /* send probes after modifying the events above */
-  PROBE (pad, GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_EVENT, event, probe_stopped);
-
-  /* now check the peer pad */
-  if (peerpad == NULL)
-    goto not_linked;
-
-  gst_object_ref (peerpad);
-  pad->priv->using++;
-  GST_OBJECT_UNLOCK (pad);
-
-  GST_LOG_OBJECT (pad, "sending event %p (%s) to peerpad %" GST_PTR_FORMAT,
-      event, GST_EVENT_TYPE_NAME (event), peerpad);
-
-  result = gst_pad_send_event (peerpad, event);
-
-  /* Note: we gave away ownership of the event at this point but we can still
-   * print the old pointer */
-  GST_LOG_OBJECT (pad,
-      "sent event %p to peerpad %" GST_PTR_FORMAT ", result %d", event, peerpad,
-      result);
-
-  gst_object_unref (peerpad);
-
-  GST_OBJECT_LOCK (pad);
-  pad->priv->using--;
-  if (pad->priv->using == 0) {
-    /* pad is not active anymore, trigger idle callbacks */
-    PROBE (pad, GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_IDLE, NULL, probe_stopped);
+  if (GST_PAD_IS_SRC (pad) && (serialized || sticky)) {
+    /* all serialized or sticky events on the srcpad trigger push of
+     * sticky events */
+    res = (check_sticky (pad) == GST_FLOW_OK);
+  }
+  if (!sticky) {
+    /* other events are pushed right away */
+    res = (gst_pad_push_event_unchecked (pad, event, type) == GST_FLOW_OK);
+  } else {
+    gst_event_unref (event);
+    res = TRUE;
   }
   GST_OBJECT_UNLOCK (pad);
 
-  return result | stored;
+  return res;
 
   /* ERROR handling */
+wrong_direction:
+  {
+    g_warning ("pad %s:%s pushing %s event in wrong direction",
+        GST_DEBUG_PAD_NAME (pad), GST_EVENT_TYPE_NAME (event));
+    gst_event_unref (event);
+    return FALSE;
+  }
+unknown_direction:
+  {
+    g_warning ("pad %s:%s has invalid direction", GST_DEBUG_PAD_NAME (pad));
+    gst_event_unref (event);
+    return FALSE;
+  }
 flushed:
   {
     GST_DEBUG_OBJECT (pad, "We're flushing");
     GST_OBJECT_UNLOCK (pad);
     gst_event_unref (event);
-    return stored;
+    return FALSE;
+  }
+}
+
+/* Check if we can call the event function with the given event */
+static GstFlowReturn
+pre_eventfunc_check (GstPad * pad, GstEvent * event)
+{
+  GstCaps *caps, *templ;
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:
+    {
+      /* backwards compatibility mode for caps */
+      gst_event_parse_caps (event, &caps);
+
+      /* See if pad accepts the caps */
+      templ = gst_pad_get_pad_template_caps (pad);
+      if (!gst_caps_is_subset (caps, templ))
+        goto not_accepted;
+
+      gst_caps_unref (templ);
+      break;
+    }
+    default:
+      break;
+  }
+  return GST_FLOW_OK;
+
+  /* ERRORS */
+not_accepted:
+  {
+    gst_caps_unref (templ);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "caps %" GST_PTR_FORMAT " not accepted", caps);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "no intersection with template %" GST_PTR_FORMAT, templ);
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
+}
+
+static GstFlowReturn
+gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
+    GstPadProbeType type)
+{
+  GstFlowReturn ret;
+  GstEventType event_type;
+  gboolean serialized, need_unlock = FALSE, sticky;
+  GstPadEventFunction eventfunc;
+  GstObject *parent;
+
+  GST_OBJECT_LOCK (pad);
+  if (GST_PAD_IS_SINK (pad))
+    serialized = GST_EVENT_IS_SERIALIZED (event);
+  else
+    serialized = FALSE;
+  sticky = GST_EVENT_IS_STICKY (event);
+  event_type = GST_EVENT_TYPE (event);
+  switch (event_type) {
+    case GST_EVENT_FLUSH_START:
+      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad,
+          "have event type %d (FLUSH_START)", GST_EVENT_TYPE (event));
+
+      /* can't even accept a flush begin event when flushing */
+      if (GST_PAD_IS_FLUSHING (pad))
+        goto flushing;
+
+      GST_PAD_SET_FLUSHING (pad);
+      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "set flush flag");
+      break;
+    case GST_EVENT_FLUSH_STOP:
+      if (G_LIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_NONE)) {
+        GST_PAD_UNSET_FLUSHING (pad);
+        GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
+      }
+      /* Remove pending EOS events */
+      GST_LOG_OBJECT (pad, "Removing pending EOS events");
+      remove_event_by_type (pad, GST_EVENT_EOS);
+
+      GST_OBJECT_UNLOCK (pad);
+      /* grab stream lock */
+      GST_PAD_STREAM_LOCK (pad);
+      need_unlock = TRUE;
+      GST_OBJECT_LOCK (pad);
+      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+        goto flushing;
+      break;
+    case GST_EVENT_RECONFIGURE:
+      if (GST_PAD_IS_SRC (pad))
+        GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+    default:
+      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad,
+          "have event type %" GST_PTR_FORMAT, event);
+
+      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+        goto flushing;
+
+      if (serialized) {
+        /* lock order: STREAM_LOCK, LOCK, recheck flushing. */
+        GST_OBJECT_UNLOCK (pad);
+        GST_PAD_STREAM_LOCK (pad);
+        need_unlock = TRUE;
+        GST_OBJECT_LOCK (pad);
+        if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+          goto flushing;
+      }
+
+      switch (GST_EVENT_TYPE (event)) {
+        case GST_EVENT_SEGMENT:
+          event = apply_pad_offset (pad, event);
+          break;
+        default:
+          break;
+      }
+
+      /* now do the probe */
+      PROBE_PUSH (pad,
+          type | GST_PAD_PROBE_TYPE_PUSH |
+          GST_PAD_PROBE_TYPE_BLOCK, event, probe_stopped);
+
+      PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, event, probe_stopped);
+      break;
+  }
+
+  if (G_UNLIKELY ((eventfunc = GST_PAD_EVENTFUNC (pad)) == NULL))
+    goto no_function;
+
+  ACQUIRE_PARENT (pad, parent, no_parent);
+  GST_OBJECT_UNLOCK (pad);
+
+  ret = pre_eventfunc_check (pad, event);
+  if (G_UNLIKELY (ret != GST_FLOW_OK))
+    goto precheck_failed;
+
+  if (sticky)
+    gst_event_ref (event);
+
+  if (eventfunc (pad, parent, event)) {
+    ret = GST_FLOW_OK;
+  } else {
+    /* something went wrong */
+    switch (event_type) {
+      case GST_EVENT_CAPS:
+        ret = GST_FLOW_NOT_NEGOTIATED;
+        break;
+      default:
+        ret = GST_FLOW_ERROR;
+        break;
+    }
+  }
+  RELEASE_PARENT (parent);
+
+  GST_DEBUG_OBJECT (pad, "sent event, ret %s", gst_flow_get_name (ret));
+
+  if (sticky) {
+    if (ret == GST_FLOW_OK) {
+      /* after the event function accepted the event, we can store the sticky
+       * event on the pad */
+      gst_pad_store_sticky_event (pad, event, FALSE);
+    }
+    gst_event_unref (event);
+  }
+
+  if (need_unlock)
+    GST_PAD_STREAM_UNLOCK (pad);
+
+  return ret;
+
+  /* ERROR handling */
+flushing:
+  {
+    GST_OBJECT_UNLOCK (pad);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
+    GST_CAT_INFO_OBJECT (GST_CAT_EVENT, pad,
+        "Received event on flushing pad. Discarding");
+    gst_event_unref (event);
+    return GST_FLOW_FLUSHING;
   }
 probe_stopped:
   {
-    GST_DEBUG_OBJECT (pad, "Probe returned %s", gst_flow_get_name (ret));
     GST_OBJECT_UNLOCK (pad);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
     gst_event_unref (event);
-    return stored;
+
+    switch (ret) {
+      case GST_FLOW_CUSTOM_SUCCESS:
+        GST_DEBUG_OBJECT (pad, "dropped event");
+        ret = GST_FLOW_OK;
+        break;
+      default:
+        GST_DEBUG_OBJECT (pad, "an error occured %s", gst_flow_get_name (ret));
+        break;
+    }
+    return ret;
   }
-not_linked:
+no_function:
   {
-    GST_DEBUG_OBJECT (pad, "Dropping event because pad is not linked");
+    g_warning ("pad %s:%s has no event handler, file a bug.",
+        GST_DEBUG_PAD_NAME (pad));
     GST_OBJECT_UNLOCK (pad);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
     gst_event_unref (event);
-    return stored;
+    return GST_FLOW_NOT_SUPPORTED;
+  }
+no_parent:
+  {
+    GST_DEBUG_OBJECT (pad, "no parent");
+    GST_OBJECT_UNLOCK (pad);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
+    gst_event_unref (event);
+    return GST_FLOW_FLUSHING;
+  }
+precheck_failed:
+  {
+    GST_DEBUG_OBJECT (pad, "pre event check failed");
+    RELEASE_PARENT (parent);
+    if (need_unlock)
+      GST_PAD_STREAM_UNLOCK (pad);
+    gst_event_unref (event);
+    return ret;
   }
 }
 
@@ -4371,154 +4734,27 @@
 gboolean
 gst_pad_send_event (GstPad * pad, GstEvent * event)
 {
-  GstFlowReturn ret;
-  gboolean result = FALSE;
-  gboolean serialized, need_unlock = FALSE, needs_events, sticky;
+  gboolean result;
+  GstPadProbeType type;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
-  GST_OBJECT_LOCK (pad);
   if (GST_PAD_IS_SINK (pad)) {
     if (G_UNLIKELY (!GST_EVENT_IS_DOWNSTREAM (event)))
       goto wrong_direction;
-    serialized = GST_EVENT_IS_SERIALIZED (event);
-    sticky = GST_EVENT_IS_STICKY (event);
+    type = GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM;
   } else if (GST_PAD_IS_SRC (pad)) {
     if (G_UNLIKELY (!GST_EVENT_IS_UPSTREAM (event)))
       goto wrong_direction;
-    /* events on srcpad never are serialized and sticky */
-    serialized = sticky = FALSE;
+    type = GST_PAD_PROBE_TYPE_EVENT_UPSTREAM;
   } else
     goto unknown_direction;
 
-  /* get the flag first, we clear it when we have a FLUSH or a non-serialized
-   * event. */
-  needs_events = GST_PAD_NEEDS_EVENTS (pad);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_START:
-      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad,
-          "have event type %d (FLUSH_START)", GST_EVENT_TYPE (event));
-
-      /* can't even accept a flush begin event when flushing */
-      if (GST_PAD_IS_FLUSHING (pad))
-        goto flushing;
-
-      GST_PAD_SET_FLUSHING (pad);
-      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "set flush flag");
-      needs_events = FALSE;
-      break;
-    case GST_EVENT_FLUSH_STOP:
-      if (G_LIKELY (GST_PAD_ACTIVATE_MODE (pad) != GST_ACTIVATE_NONE)) {
-        GST_PAD_UNSET_FLUSHING (pad);
-        GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "cleared flush flag");
-      }
-      GST_OBJECT_UNLOCK (pad);
-      /* grab stream lock */
-      GST_PAD_STREAM_LOCK (pad);
-      need_unlock = TRUE;
-      GST_OBJECT_LOCK (pad);
-      needs_events = FALSE;
-      break;
-    case GST_EVENT_RECONFIGURE:
-      if (GST_PAD_IS_SRC (pad))
-        GST_OBJECT_FLAG_SET (pad, GST_PAD_NEED_RECONFIGURE);
-    default:
-      GST_CAT_DEBUG_OBJECT (GST_CAT_EVENT, pad, "have event type %s",
-          GST_EVENT_TYPE_NAME (event));
-
-      if (serialized) {
-        /* lock order: STREAM_LOCK, LOCK, recheck flushing. */
-        GST_OBJECT_UNLOCK (pad);
-        GST_PAD_STREAM_LOCK (pad);
-        need_unlock = TRUE;
-        GST_OBJECT_LOCK (pad);
-      } else {
-        /* don't forward events on non-serialized events */
-        needs_events = FALSE;
-      }
-
-      /* store the event on the pad, but only on srcpads. We need to store the
-       * event before checking the flushing flag. */
-      if (sticky) {
-        guint idx;
-        PadEvent *ev;
-
-        switch (GST_EVENT_TYPE (event)) {
-          case GST_EVENT_SEGMENT:
-            if (pad->offset != 0) {
-              GstSegment segment;
-
-              /* copy segment values */
-              gst_event_copy_segment (event, &segment);
-              gst_event_unref (event);
-
-              /* adjust and make a new event with the offset applied */
-              segment.base += pad->offset;
-              event = gst_event_new_segment (&segment);
-            }
-            break;
-          default:
-            break;
-        }
-
-        idx = GST_EVENT_STICKY_IDX (event);
-        ev = &pad->priv->events[idx];
-
-        if (ev->event != event) {
-          GST_LOG_OBJECT (pad, "storing sticky event %s at index %u",
-              GST_EVENT_TYPE_NAME (event), idx);
-          gst_event_replace (&ev->pending, event);
-          /* set the flag so that we update the events next time. We would
-           * usually update below but we might be flushing too. */
-          GST_OBJECT_FLAG_SET (pad, GST_PAD_NEED_EVENTS);
-          needs_events = TRUE;
-        }
-      }
-      /* now do the probe */
-      if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
-        goto flushing;
-
-      PROBE (pad, GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_EVENT, event,
-          probe_stopped);
-
-      break;
-  }
-
-  if (G_UNLIKELY (needs_events)) {
-    GstFlowReturn ret;
-
-    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_NEED_EVENTS);
-
-    GST_DEBUG_OBJECT (pad, "need to update all events");
-    ret = gst_pad_update_events (pad);
-    if (ret != GST_FLOW_OK)
-      goto update_failed;
-    GST_OBJECT_UNLOCK (pad);
-
-    gst_event_unref (event);
-
+  if (gst_pad_send_event_unchecked (pad, event, type) != GST_FLOW_OK)
+    result = FALSE;
+  else
     result = TRUE;
-  }
-
-  /* ensure to pass on event;
-   * note that a sticky event has already been updated above */
-  if (G_LIKELY (!needs_events || !sticky)) {
-    GstPadEventFunction eventfunc;
-
-    if (G_UNLIKELY ((eventfunc = GST_PAD_EVENTFUNC (pad)) == NULL))
-      goto no_function;
-
-    GST_OBJECT_UNLOCK (pad);
-
-    result = eventfunc (pad, event);
-  }
-
-  if (need_unlock)
-    GST_PAD_STREAM_UNLOCK (pad);
-
-  GST_DEBUG_OBJECT (pad, "sent event, result %d", result);
 
   return result;
 
@@ -4527,52 +4763,12 @@
   {
     g_warning ("pad %s:%s sending %s event in wrong direction",
         GST_DEBUG_PAD_NAME (pad), GST_EVENT_TYPE_NAME (event));
-    GST_OBJECT_UNLOCK (pad);
     gst_event_unref (event);
     return FALSE;
   }
 unknown_direction:
   {
     g_warning ("pad %s:%s has invalid direction", GST_DEBUG_PAD_NAME (pad));
-    GST_OBJECT_UNLOCK (pad);
-    gst_event_unref (event);
-    return FALSE;
-  }
-no_function:
-  {
-    g_warning ("pad %s:%s has no event handler, file a bug.",
-        GST_DEBUG_PAD_NAME (pad));
-    GST_OBJECT_UNLOCK (pad);
-    if (need_unlock)
-      GST_PAD_STREAM_UNLOCK (pad);
-    gst_event_unref (event);
-    return FALSE;
-  }
-flushing:
-  {
-    GST_OBJECT_UNLOCK (pad);
-    if (need_unlock)
-      GST_PAD_STREAM_UNLOCK (pad);
-    GST_CAT_INFO_OBJECT (GST_CAT_EVENT, pad,
-        "Received event on flushing pad. Discarding");
-    gst_event_unref (event);
-    return FALSE;
-  }
-probe_stopped:
-  {
-    GST_DEBUG_OBJECT (pad, "probe returned %s", gst_flow_get_name (ret));
-    GST_OBJECT_UNLOCK (pad);
-    if (need_unlock)
-      GST_PAD_STREAM_UNLOCK (pad);
-    gst_event_unref (event);
-    return FALSE;
-  }
-update_failed:
-  {
-    GST_OBJECT_UNLOCK (pad);
-    if (need_unlock)
-      GST_PAD_STREAM_UNLOCK (pad);
-    GST_CAT_INFO_OBJECT (GST_CAT_EVENT, pad, "Update events failed");
     gst_event_unref (event);
     return FALSE;
   }
@@ -4612,94 +4808,80 @@
  * gst_pad_get_sticky_event:
  * @pad: the #GstPad to get the event from.
  * @event_type: the #GstEventType that should be retrieved.
+ * @idx: the index of the event
  *
  * Returns a new reference of the sticky event of type @event_type
  * from the event.
  *
- * Returns: (transfer full): a #GstEvent of type @event_type. Unref after usage.
+ * Returns: (transfer full): a #GstEvent of type @event_type or NULL when no
+ * event of @event_type was on @pad. Unref after usage.
  */
 GstEvent *
-gst_pad_get_sticky_event (GstPad * pad, GstEventType event_type)
+gst_pad_get_sticky_event (GstPad * pad, GstEventType event_type, guint idx)
 {
   GstEvent *event = NULL;
-  guint idx;
+  PadEvent *ev;
 
   g_return_val_if_fail (GST_IS_PAD (pad), NULL);
   g_return_val_if_fail ((event_type & GST_EVENT_TYPE_STICKY) != 0, NULL);
 
-  idx = GST_EVENT_STICKY_IDX_TYPE (event_type);
-
   GST_OBJECT_LOCK (pad);
-  if ((event = pad->priv->events[idx].event)) {
+  ev = find_event_by_type (pad, event_type, idx);
+  if (ev && (event = ev->event))
     gst_event_ref (event);
-  }
   GST_OBJECT_UNLOCK (pad);
 
   return event;
 }
 
-/**
- * gst_pad_sticky_events_foreach:
- * @pad: the #GstPad that should be used for iteration.
- * @foreach_func: (scope call): the #GstPadStickyEventsForeachFunction that should be called for every event.
- * @user_data: (closure): the optional user data.
- *
- * Iterates all active sticky events on @pad and calls @foreach_func for every
- * event. If @foreach_func returns something else than GST_FLOW_OK the iteration
- * is immediately stopped.
- *
- * Returns: GST_FLOW_OK if iteration was successful
- */
-GstFlowReturn
-gst_pad_sticky_events_foreach (GstPad * pad,
-    GstPadStickyEventsForeachFunction foreach_func, gpointer user_data)
+typedef struct
 {
-  GstFlowReturn ret = GST_FLOW_OK;
-  guint i;
-  GstEvent *event;
+  GstPadStickyEventsForeachFunction func;
+  gpointer user_data;
+} ForeachDispatch;
 
-  g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR);
-  g_return_val_if_fail (foreach_func != NULL, GST_FLOW_ERROR);
+static gboolean
+foreach_dispatch_function (GstPad * pad, PadEvent * ev, gpointer user_data)
+{
+  ForeachDispatch *data = user_data;
+  gboolean ret;
+
+  GST_OBJECT_UNLOCK (pad);
+
+  ret = data->func (pad, &ev->event, data->user_data);
 
   GST_OBJECT_LOCK (pad);
 
-restart:
-  for (i = 0; i < GST_EVENT_MAX_STICKY; i++) {
-    gboolean res;
-    PadEvent *ev;
-
-    ev = &pad->priv->events[i];
-
-    /* skip without active event */
-    if ((event = ev->event) == NULL)
-      continue;
-
-    gst_event_ref (event);
-    GST_OBJECT_UNLOCK (pad);
-
-    res = foreach_func (pad, event, user_data);
-
-    GST_OBJECT_LOCK (pad);
-    gst_event_unref (event);
-
-    if (res != GST_FLOW_OK) {
-      ret = res;
-      break;
-    }
-
-    /* things could have changed while we release the lock, check if we still
-     * are handling the same event, if we don't something changed and we have
-     * to try again. FIXME. we need a cookie here. */
-    if (event != ev->event) {
-      GST_DEBUG_OBJECT (pad, "events changed, restarting");
-      goto restart;
-    }
-  }
-  GST_OBJECT_UNLOCK (pad);
-
   return ret;
 }
 
+/**
+ * gst_pad_sticky_events_foreach:
+ * @pad: the #GstPad that should be used for iteration.
+ * @foreach_func: (scope call): the #GstPadStickyEventsForeachFunction that
+ *                should be called for every event.
+ * @user_data: (closure): the optional user data.
+ *
+ * Iterates all sticky events on @pad and calls @foreach_func for every
+ * event. If @foreach_func returns %FALSE the iteration is immediately stopped.
+ */
+void
+gst_pad_sticky_events_foreach (GstPad * pad,
+    GstPadStickyEventsForeachFunction foreach_func, gpointer user_data)
+{
+  ForeachDispatch data;
+
+  g_return_if_fail (GST_IS_PAD (pad));
+  g_return_if_fail (foreach_func != NULL);
+
+  data.func = foreach_func;
+  data.user_data = user_data;
+
+  GST_OBJECT_LOCK (pad);
+  events_foreach (pad, foreach_dispatch_function, &data);
+  GST_OBJECT_UNLOCK (pad);
+}
+
 static void
 do_stream_status (GstPad * pad, GstStreamStatusType type,
     GThread * thread, GstTask * task)
@@ -4788,10 +4970,10 @@
   GST_OBJECT_LOCK (pad);
   task = GST_PAD_TASK (pad);
   if (task == NULL) {
-    task = gst_task_create (func, data);
+    task = gst_task_new (func, data);
     gst_task_set_lock (task, GST_PAD_GET_STREAM_LOCK (pad));
     gst_task_set_thread_callbacks (task, &thr_callbacks, pad, NULL);
-    GST_DEBUG_OBJECT (pad, "created task");
+    GST_INFO_OBJECT (pad, "created task %p", task);
     GST_PAD_TASK (pad) = task;
     gst_object_ref (task);
     /* release lock to post the message */
diff --git a/gst/gstpad.h b/gst/gstpad.h
index d9ed2c5..df66794 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -29,6 +29,7 @@
 typedef struct _GstPad GstPad;
 typedef struct _GstPadPrivate GstPadPrivate;
 typedef struct _GstPadClass GstPadClass;
+typedef struct _GstPadProbeInfo GstPadProbeInfo;
 
 /**
  * GstPadDirection:
@@ -44,6 +45,22 @@
   GST_PAD_SINK
 } GstPadDirection;
 
+/**
+ * GstPadMode:
+ * @GST_PAD_MODE_NONE: Pad will not handle dataflow
+ * @GST_PAD_MODE_PUSH: Pad handles dataflow in downstream push mode
+ * @GST_PAD_MODE_PULL: Pad handles dataflow in upstream pull mode
+ *
+ * The status of a GstPad. After activating a pad, which usually happens when the
+ * parent element goes from READY to PAUSED, the GstPadMode defines if the
+ * pad operates in push or pull mode.
+ */
+typedef enum {
+  GST_PAD_MODE_NONE,
+  GST_PAD_MODE_PUSH,
+  GST_PAD_MODE_PULL
+} GstPadMode;
+
 #include <gst/gstobject.h>
 #include <gst/gstbuffer.h>
 #include <gst/gstbufferlist.h>
@@ -109,12 +126,10 @@
 
 /**
  * GstFlowReturn:
- * @GST_FLOW_RESEND:		 Resend buffer, possibly with new caps (not
- *                                 sent yet) (unused/unimplemented).
  * @GST_FLOW_OK:		 Data passing was ok.
  * @GST_FLOW_NOT_LINKED:	 Pad is not linked.
- * @GST_FLOW_WRONG_STATE:	 Pad is in wrong state.
- * @GST_FLOW_UNEXPECTED:	 Did not expect anything, like after EOS.
+ * @GST_FLOW_FLUSHING:	         Pad is flushing.
+ * @GST_FLOW_EOS:                Pad is EOS.
  * @GST_FLOW_NOT_NEGOTIATED:	 Pad is not negotiated.
  * @GST_FLOW_ERROR:		 Some (fatal) error occured. Element generating
  *                               this error should post an error message with more
@@ -148,13 +163,12 @@
   GST_FLOW_CUSTOM_SUCCESS = 100,
 
   /* core predefined */
-  GST_FLOW_RESEND	  =  1,
   GST_FLOW_OK		  =  0,
   /* expected failures */
   GST_FLOW_NOT_LINKED     = -1,
-  GST_FLOW_WRONG_STATE    = -2,
+  GST_FLOW_FLUSHING       = -2,
   /* error cases */
-  GST_FLOW_UNEXPECTED     = -3,
+  GST_FLOW_EOS            = -3,
   GST_FLOW_NOT_NEGOTIATED = -4,
   GST_FLOW_ERROR	  = -5,
   GST_FLOW_NOT_SUPPORTED  = -6,
@@ -178,7 +192,7 @@
  *   their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but
  *   would be unsafe e.g. if one pad has %GST_CAPS_ANY.
  * @GST_PAD_LINK_CHECK_CAPS: Check if the pads are compatible by comparing the
- *   caps returned by gst_pad_get_caps().
+ *   caps returned by gst_pad_query_caps().
  *
  * The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS
  * and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are
@@ -211,26 +225,11 @@
  */
 #define GST_PAD_LINK_CHECK_DEFAULT ((GstPadLinkCheck) (GST_PAD_LINK_CHECK_HIERARCHY | GST_PAD_LINK_CHECK_CAPS))
 
-/**
- * GstActivateMode:
- * @GST_ACTIVATE_NONE:	  	 Pad will not handle dataflow
- * @GST_ACTIVATE_PUSH:		 Pad handles dataflow in downstream push mode
- * @GST_ACTIVATE_PULL:     	 Pad handles dataflow in upstream pull mode
- *
- * The status of a GstPad. After activating a pad, which usually happens when the
- * parent element goes from READY to PAUSED, the GstActivateMode defines if the
- * pad operates in push or pull mode.
- */
-typedef enum {
-  GST_ACTIVATE_NONE,
-  GST_ACTIVATE_PUSH,
-  GST_ACTIVATE_PULL
-} GstActivateMode;
-
 /* pad states */
 /**
  * GstPadActivateFunction:
  * @pad: a #GstPad
+ * @parent: the parent of @pad
  *
  * This function is called when the pad is activated during the element
  * READY to PAUSED state change. By default this function will call the
@@ -239,23 +238,29 @@
  *
  * Returns: TRUE if the pad could be activated.
  */
-typedef gboolean		(*GstPadActivateFunction)	(GstPad *pad);
+typedef gboolean		(*GstPadActivateFunction)	(GstPad *pad, GstObject *parent);
 /**
  * GstPadActivateModeFunction:
  * @pad: a #GstPad
+ * @parent: the parent of @pad
+ * @mode: the requested activation mode of @pad
  * @active: activate or deactivate the pad.
  *
  * The prototype of the push and pull activate functions.
  *
  * Returns: TRUE if the pad could be activated or deactivated.
  */
-typedef gboolean		(*GstPadActivateModeFunction)	(GstPad *pad, gboolean active);
+typedef gboolean		(*GstPadActivateModeFunction)	(GstPad *pad, GstObject *parent,
+                                                                 GstPadMode mode, gboolean active);
 
 
 /* data passing */
 /**
  * GstPadChainFunction:
  * @pad: the sink #GstPad that performed the chain.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  * @buffer: the #GstBuffer that is chained, not %NULL.
  *
  * A function that will be called on sinkpads when chaining buffers.
@@ -270,11 +275,15 @@
  *
  * Returns: #GST_FLOW_OK for success
  */
-typedef GstFlowReturn		(*GstPadChainFunction)		(GstPad *pad, GstBuffer *buffer);
+typedef GstFlowReturn		(*GstPadChainFunction)		(GstPad *pad, GstObject *parent,
+                                                                 GstBuffer *buffer);
 
 /**
  * GstPadChainListFunction:
  * @pad: the sink #GstPad that performed the chain.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  * @list: the #GstBufferList that is chained, not %NULL.
  *
  * A function that will be called on sinkpads when chaining buffer lists.
@@ -289,11 +298,15 @@
  *
  * Returns: #GST_FLOW_OK for success
  */
-typedef GstFlowReturn		(*GstPadChainListFunction)	(GstPad *pad, GstBufferList *list);
+typedef GstFlowReturn		(*GstPadChainListFunction)	(GstPad *pad, GstObject *parent,
+                                                                 GstBufferList *list);
 
 /**
  * GstPadGetRangeFunction:
  * @pad: the src #GstPad to perform the getrange on.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  * @offset: the offset of the range
  * @length: the length of the range
  * @buffer: a memory location to hold the result buffer, cannot be NULL.
@@ -313,7 +326,7 @@
  * #GST_QUERY_SEEKING.
  *
  * Any @offset larger or equal than the length will make the function return
- * #GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
+ * #GST_FLOW_EOS, which corresponds to EOS. In this case @buffer does not
  * contain a valid buffer.
  *
  * The buffer size of @buffer will only be smaller than @length when @offset is
@@ -334,25 +347,33 @@
  * Returns: #GST_FLOW_OK for success and a valid buffer in @buffer. Any other
  * return value leaves @buffer undefined.
  */
-typedef GstFlowReturn		(*GstPadGetRangeFunction)	(GstPad *pad, guint64 offset,
-		                                                 guint length, GstBuffer **buffer);
+typedef GstFlowReturn		(*GstPadGetRangeFunction)	(GstPad *pad, GstObject *parent,
+                                                                 guint64 offset, guint length,
+                                                                 GstBuffer **buffer);
 
 /**
  * GstPadEventFunction:
  * @pad: the #GstPad to handle the event.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  * @event: the #GstEvent to handle.
  *
  * Function signature to handle an event for the pad.
  *
  * Returns: TRUE if the pad could handle the event.
  */
-typedef gboolean		(*GstPadEventFunction)		(GstPad *pad, GstEvent *event);
+typedef gboolean		(*GstPadEventFunction)		(GstPad *pad, GstObject *parent,
+                                                                 GstEvent *event);
 
 
 /* internal links */
 /**
  * GstPadIterIntLinkFunction:
  * @pad: The #GstPad to query.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  *
  * The signature of the internal pad link iterator function.
  *
@@ -363,29 +384,23 @@
  *
  * Since 0.10.21
  */
-typedef GstIterator*           (*GstPadIterIntLinkFunction)    (GstPad *pad);
+typedef GstIterator*           (*GstPadIterIntLinkFunction)    (GstPad *pad, GstObject *parent);
 
 /* generic query function */
 /**
- * GstPadQueryTypeFunction:
- * @pad: a #GstPad to query
- *
- * The signature of the query types function.
- *
- * Returns: a constant array of query types
- */
-typedef const GstQueryType*	(*GstPadQueryTypeFunction)	(GstPad *pad);
-
-/**
  * GstPadQueryFunction:
  * @pad: the #GstPad to query.
+ * @parent: the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT flag is set,
+ *          @parent is guaranteed to be not-NULL and remain valid during the
+ *          execution of this function.
  * @query: the #GstQuery object to execute
  *
  * The signature of the query function.
  *
  * Returns: TRUE if the query could be performed.
  */
-typedef gboolean		(*GstPadQueryFunction)		(GstPad *pad, GstQuery *query);
+typedef gboolean		(*GstPadQueryFunction)		(GstPad *pad, GstObject *parent,
+                                                                 GstQuery *query);
 
 
 /* linking */
@@ -408,50 +423,6 @@
 typedef void			(*GstPadUnlinkFunction)		(GstPad *pad);
 
 
-/* caps nego */
-/**
- * GstPadGetCapsFunction:
- * @pad: the #GstPad to get the capabilities of.
- * @filter: filter #GstCaps.
- *
- * When called on sinkpads @filter contains the caps that
- * upstream could produce in the order preferred by upstream. When
- * called on srcpads @filter contains the caps accepted by
- * downstream in the preffered order. @filter might be %NULL but if
- * it is not %NULL only a subset of @filter must be returned.
- *
- * Returns a copy of the capabilities of the specified pad. By default this
- * function will return the pad template capabilities, but can optionally
- * be overridden by elements.
- *
- * Returns: a newly allocated copy #GstCaps of the pad.
- */
-typedef GstCaps*		(*GstPadGetCapsFunction)	(GstPad *pad, GstCaps *filter);
-
-/**
- * GstPadAcceptCapsFunction:
- * @pad: the #GstPad to check
- * @caps: the #GstCaps to check
- *
- * Check if @pad can accept @caps. By default this function will see if @caps
- * intersect with the result from gst_pad_get_caps() by can be overridden to
- * perform extra checks.
- *
- * Returns: TRUE if the caps can be accepted by the pad.
- */
-typedef gboolean		(*GstPadAcceptCapsFunction)	(GstPad *pad, GstCaps *caps);
-/**
- * GstPadFixateCapsFunction:
- * @pad: a #GstPad
- * @caps: the #GstCaps to fixate
- *
- * Given possibly unfixed caps @caps, let @pad use its default preferred
- * format to make a fixed caps. @caps should be writable. By default this
- * function will pick the first value of any ranges or lists in the caps but
- * elements can override this function to perform other behaviour.
- */
-typedef void			(*GstPadFixateCapsFunction)	(GstPad *pad, GstCaps *caps);
-
 /* misc */
 /**
  * GstPadForwardFunction:
@@ -466,109 +437,190 @@
 typedef gboolean		(*GstPadForwardFunction)	(GstPad *pad, gpointer user_data);
 
 /**
- * GstProbeType:
- * @GST_PROBE_TYPE_INVALID: invalid probe type
- * @GST_PROBE_TYPE_IDLE: probe idle pads and block
- * @GST_PROBE_TYPE_BLOCK: probe and block pads
- * @GST_PROBE_TYPE_BUFFER: probe buffers
- * @GST_PROBE_TYPE_BUFFER_LIST: probe buffer lists
- * @GST_PROBE_TYPE_EVENT: probe events
- * @GST_PROBE_TYPE_PUSH: probe push
- * @GST_PROBE_TYPE_PULL: probe pull
+ * GstPadProbeType:
+ * @GST_PAD_PROBE_TYPE_INVALID: invalid probe type
+ * @GST_PAD_PROBE_TYPE_IDLE: probe idle pads and block
+ * @GST_PAD_PROBE_TYPE_BLOCK: probe and block pads
+ * @GST_PAD_PROBE_TYPE_BUFFER: probe buffers
+ * @GST_PAD_PROBE_TYPE_BUFFER_LIST: probe buffer lists
+ * @GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM: probe downstream events
+ * @GST_PAD_PROBE_TYPE_EVENT_UPSTREAM: probe upstream events
+ * @GST_PAD_PROBE_TYPE_EVENT_FLUSH: probe flush events. This probe has to be
+ *     explicitly enabled and is not included in the
+ *     @@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or
+ *     @@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types.
+ * @GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM: probe downstream queries
+ * @GST_PAD_PROBE_TYPE_QUERY_UPSTREAM: probe upstream queries
+ * @GST_PAD_PROBE_TYPE_PUSH: probe push
+ * @GST_PAD_PROBE_TYPE_PULL: probe pull
  *
  * The different probing types that can occur. When either one of
- * @GST_PROBE_TYPE_IDLE or @GST_PROBE_TYPE_BLOCK is used, the probe will be a
+ * @GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a
  * blocking probe.
  */
 typedef enum
 {
-  GST_PROBE_TYPE_INVALID      = 0,
+  GST_PAD_PROBE_TYPE_INVALID          = 0,
   /* flags to control blocking */
-  GST_PROBE_TYPE_IDLE         = (1 << 0),
-  GST_PROBE_TYPE_BLOCK        = (1 << 1),
+  GST_PAD_PROBE_TYPE_IDLE             = (1 << 0),
+  GST_PAD_PROBE_TYPE_BLOCK            = (1 << 1),
   /* flags to select datatypes */
-  GST_PROBE_TYPE_BUFFER       = (1 << 2),
-  GST_PROBE_TYPE_BUFFER_LIST  = (1 << 3),
-  GST_PROBE_TYPE_EVENT        = (1 << 4),
+  GST_PAD_PROBE_TYPE_BUFFER           = (1 << 4),
+  GST_PAD_PROBE_TYPE_BUFFER_LIST      = (1 << 5),
+  GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM = (1 << 6),
+  GST_PAD_PROBE_TYPE_EVENT_UPSTREAM   = (1 << 7),
+  GST_PAD_PROBE_TYPE_EVENT_FLUSH      = (1 << 8),
+  GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM = (1 << 9),
+  GST_PAD_PROBE_TYPE_QUERY_UPSTREAM   = (1 << 10),
   /* flags to select scheduling mode */
-  GST_PROBE_TYPE_PUSH         = (1 << 5),
-  GST_PROBE_TYPE_PULL         = (1 << 6),
-} GstProbeType;
+  GST_PAD_PROBE_TYPE_PUSH             = (1 << 12),
+  GST_PAD_PROBE_TYPE_PULL             = (1 << 13)
+} GstPadProbeType;
 
-#define GST_PROBE_TYPE_BLOCKING   (GST_PROBE_TYPE_IDLE | GST_PROBE_TYPE_BLOCK)
-#define GST_PROBE_TYPE_DATA       (GST_PROBE_TYPE_BUFFER | GST_PROBE_TYPE_EVENT | \
-                                   GST_PROBE_TYPE_BUFFER_LIST)
-#define GST_PROBE_TYPE_SCHEDULING (GST_PROBE_TYPE_PUSH | GST_PROBE_TYPE_PULL)
+#define GST_PAD_PROBE_TYPE_BLOCKING         (GST_PAD_PROBE_TYPE_IDLE | GST_PAD_PROBE_TYPE_BLOCK)
+#define GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM (GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM)
+#define GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM   (GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_DATA_UPSTREAM)
+#define GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM  (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_BUFFER_LIST | \
+                                             GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM)
+#define GST_PAD_PROBE_TYPE_DATA_UPSTREAM    (GST_PAD_PROBE_TYPE_EVENT_UPSTREAM)
+#define GST_PAD_PROBE_TYPE_DATA_BOTH        (GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM | \
+                                             GST_PAD_PROBE_TYPE_DATA_UPSTREAM)
+#define GST_PAD_PROBE_TYPE_EVENT_BOTH       (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | \
+                                             GST_PAD_PROBE_TYPE_EVENT_UPSTREAM)
+#define GST_PAD_PROBE_TYPE_QUERY_BOTH       (GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM | \
+                                             GST_PAD_PROBE_TYPE_QUERY_UPSTREAM)
+#define GST_PAD_PROBE_TYPE_ALL_BOTH         (GST_PAD_PROBE_TYPE_DATA_BOTH | \
+                                             GST_PAD_PROBE_TYPE_QUERY_BOTH)
+#define GST_PAD_PROBE_TYPE_SCHEDULING       (GST_PAD_PROBE_TYPE_PUSH | GST_PAD_PROBE_TYPE_PULL)
 
 /**
- * GstProbeReturn:
- * @GST_PROBE_OK: normal probe return value
- * @GST_PROBE_DROP: drop data in data probes
- * @GST_PROBE_REMOVE: remove probe
- * @GST_PROBE_PASS: pass the data item in the block probe and block on
+ * GstPadProbeReturn:
+ * @GST_PAD_PROBE_OK: normal probe return value
+ * @GST_PAD_PROBE_DROP: drop data in data probes. For push mode this means that
+ *        the data item is not sent downstream. For pull mode, it means that the
+ *        data item is not passed upstream. In both cases, this result code
+ *        returns #GST_FLOW_OK or %TRUE to the caller.
+ * @GST_PAD_PROBE_REMOVE: remove probe
+ * @GST_PAD_PROBE_PASS: pass the data item in the block probe and block on
  *                         the next item
  *
  * Different return values for the #GstPadProbeCallback.
  */
 typedef enum
 {
-  GST_PROBE_DROP,
-  GST_PROBE_OK,
-  GST_PROBE_REMOVE,
-  GST_PROBE_PASS,
-} GstProbeReturn;
+  GST_PAD_PROBE_DROP,
+  GST_PAD_PROBE_OK,
+  GST_PAD_PROBE_REMOVE,
+  GST_PAD_PROBE_PASS,
+} GstPadProbeReturn;
+
+
+/**
+ * GstPadProbeInfo:
+ * @type: the current probe type
+ * @id: the id of the probe
+ * @data: type specific data, check the @type field to know the datatype.
+ *    This field can be NULL.
+ * @offset: offset of pull probe, this field is valid when @type contains
+ *    #GST_PAD_PROBE_TYPE_PULL
+ * @size: size of pull probe, this field is valid when @type contains
+ *    #GST_PAD_PROBE_TYPE_PULL
+ *
+ * Info passed in the #GstPadProbeCallback.
+ */
+struct _GstPadProbeInfo
+{
+  GstPadProbeType type;
+  gulong id;
+  gpointer data;
+  guint64 offset;
+  guint size;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+#define GST_PAD_PROBE_INFO_TYPE(d)         ((d)->type)
+#define GST_PAD_PROBE_INFO_ID(d)           ((d)->id)
+#define GST_PAD_PROBE_INFO_DATA(d)         ((d)->data)
+
+#define GST_PAD_PROBE_INFO_BUFFER(d)       GST_BUFFER_CAST(GST_PAD_PROBE_INFO_DATA(d))
+#define GST_PAD_PROBE_INFO_BUFFER_LIST(d)  GST_BUFFER_LIST_CAST(GST_PAD_PROBE_INFO_DATA(d))
+#define GST_PAD_PROBE_INFO_EVENT(d)        GST_EVENT_CAST(GST_PAD_PROBE_INFO_DATA(d))
+#define GST_PAD_PROBE_INFO_QUERY(d)        GST_QUERY_CAST(GST_PAD_PROBE_INFO_DATA(d))
+
+#define GST_PAD_PROBE_INFO_OFFSET(d)       ((d)->offset)
+#define GST_PAD_PROBE_INFO_SIZE(d)         ((d)->size)
 
 /**
  * GstPadProbeCallback
  * @pad: the #GstPad that is blocked
- * @type: the current probe type
- * @type_data: type specific data
+ * @info: #GstPadProbeInfo
  * @user_data: the gpointer to optional user data.
  *
  * Callback used by gst_pad_add_probe(). Gets called to notify about the current
  * blocking type.
+ *
+ * The callback is allowed to modify the data pointer in @info.
  */
-typedef GstProbeReturn      (*GstPadProbeCallback)              (GstPad *pad, GstProbeType type,
-                                                                 gpointer type_data, gpointer user_data);
+typedef GstPadProbeReturn   (*GstPadProbeCallback)   (GstPad *pad, GstPadProbeInfo *info,
+                                                      gpointer user_data);
 
 /**
  * GstPadStickyEventsForeachFunction:
  * @pad: the #GstPad.
- * @event: the sticky #GstEvent.
+ * @event: a sticky #GstEvent.
  * @user_data: the #gpointer to optional user data.
  *
  * Callback used by gst_pad_sticky_events_foreach().
  *
- * Returns: GST_FLOW_OK if the iteration should continue
+ * When this function returns %TRUE, the next event will be
+ * returned. When %FALSE is returned, gst_pad_sticky_events_foreach() will return.
+ *
+ * When @event is set to NULL, the item will be removed from the list of sticky events.
+ * When @event has been made writable, the new buffer reference can be assigned
+ * to @event. This function is responsible for unreffing the old event when
+ * removing or modifying.
+ *
+ * Returns: %TRUE if the iteration should continue
  */
-typedef GstFlowReturn           (*GstPadStickyEventsForeachFunction) (GstPad *pad, GstEvent *event, gpointer user_data);
+typedef gboolean  (*GstPadStickyEventsForeachFunction) (GstPad *pad, GstEvent **event,
+                                                        gpointer user_data);
 
 /**
  * GstPadFlags:
- * @GST_PAD_BLOCKED: is dataflow on a pad blocked
- * @GST_PAD_FLUSHING: is pad refusing buffers
- * @GST_PAD_IN_GETCAPS: GstPadGetCapsFunction() is running now
- * @GST_PAD_BLOCKING: is pad currently blocking on a buffer or event
- * @GST_PAD_NEED_RECONFIGURE: the pad should be reconfigured/renegotiated.
+ * @GST_PAD_FLAG_BLOCKED: is dataflow on a pad blocked
+ * @GST_PAD_FLAG_FLUSHING: is pad refusing buffers
+ * @GST_PAD_FLAG_BLOCKING: is pad currently blocking on a buffer or event
+ * @GST_PAD_FLAG_NEED_PARENT: ensure that there is a parent object before calling
+ *                       into the pad callbacks.
+ * @GST_PAD_FLAG_NEED_RECONFIGURE: the pad should be reconfigured/renegotiated.
  *                            The flag has to be unset manually after
  *                            reconfiguration happened.
- *                            Since: 0.10.34.
- * @GST_PAD_NEED_EVENTS: the pad has pending events
- * @GST_PAD_FIXED_CAPS: the pad is using fixed caps this means that once the
- *                      caps are set on the pad, the getcaps function only
+ * @GST_PAD_FLAG_PENDING_EVENTS: the pad has pending events
+ * @GST_PAD_FLAG_FIXED_CAPS: the pad is using fixed caps this means that once the
+ *                      caps are set on the pad, the caps query function only
  *                      returns those caps.
+ * @GST_PAD_FLAG_PROXY_CAPS: the default event and query handler will forward
+ *                      all events and queries to the internally linked pads
+ *                      instead of discarding them.
+ * @GST_PAD_FLAG_PROXY_ALLOCATION: the default query handler will forward
+ *                      allocation queries to the internally linked pads
+ *                      instead of discarding them.
  * @GST_PAD_FLAG_LAST: offset to define more flags
  *
  * Pad state flags
  */
 typedef enum {
-  GST_PAD_BLOCKED          = (GST_OBJECT_FLAG_LAST << 0),
-  GST_PAD_FLUSHING         = (GST_OBJECT_FLAG_LAST << 1),
-  GST_PAD_IN_GETCAPS       = (GST_OBJECT_FLAG_LAST << 2),
-  GST_PAD_BLOCKING         = (GST_OBJECT_FLAG_LAST << 4),
-  GST_PAD_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 5),
-  GST_PAD_NEED_EVENTS      = (GST_OBJECT_FLAG_LAST << 6),
-  GST_PAD_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST << 7),
+  GST_PAD_FLAG_BLOCKED          = (GST_OBJECT_FLAG_LAST << 0),
+  GST_PAD_FLAG_FLUSHING         = (GST_OBJECT_FLAG_LAST << 1),
+  GST_PAD_FLAG_BLOCKING         = (GST_OBJECT_FLAG_LAST << 2),
+  GST_PAD_FLAG_NEED_PARENT      = (GST_OBJECT_FLAG_LAST << 3),
+  GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 4),
+  GST_PAD_FLAG_PENDING_EVENTS   = (GST_OBJECT_FLAG_LAST << 5),
+  GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST << 6),
+  GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST << 7),
+  GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 8),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST << 16)
 } GstPadFlags;
@@ -579,29 +631,6 @@
  * @padtemplate: padtemplate for this pad
  * @direction: the direction of the pad, cannot change after creating
  *             the pad.
- * @stream_rec_lock: recursive stream lock of the pad, used to protect
- *                   the data used in streaming.
- * @task: task for this pad if the pad is actively driving dataflow.
- * @block_cond: conditional to signal pad block
- * @probes: installed probes
- * @getcapsfunc: function to get caps of the pad
- * @acceptcapsfunc: function to check if pad can accept caps
- * @fixatecapsfunc: function to fixate caps
- * @mode: current activation mode of the pad
- * @activatefunc: pad activation function
- * @activatepushfunc: function to activate/deactivate pad in push mode
- * @activatepullfunc: function to activate/deactivate pad in pull mode
- * @peer: the pad this pad is linked to
- * @linkfunc: function called when pad is linked
- * @unlinkfunc: function called when pad is unlinked
- * @chainfunc: function to chain buffer to pad
- * @chainlistfunc: function to chain a list of buffers to pad
- * @getrangefunc: function to get a range of data from a pad
- * @eventfunc: function to send an event to a pad
- * @offset: the pad offset
- * @querytypefunc: get list of supported queries
- * @queryfunc: perform a query on the pad
- * @iterintlinkfunc: get the internal links iterator of this pad
  *
  * The #GstPad structure. Use the functions to update the variables.
  */
@@ -615,48 +644,59 @@
 
   GstPadDirection                direction;
 
-  /*< public >*/ /* with STREAM_LOCK */
+  /*< private >*/
   /* streaming rec_lock */
-  GStaticRecMutex		 stream_rec_lock;
+  GRecMutex		         stream_rec_lock;
   GstTask			*task;
 
-  /*< public >*/ /* with LOCK */
   /* block cond, mutex is from the object */
-  GCond				*block_cond;
+  GCond				 block_cond;
   GHookList                      probes;
 
-  /* the pad capabilities */
-  GstPadGetCapsFunction		getcapsfunc;
-  GstPadAcceptCapsFunction	 acceptcapsfunc;
-  GstPadFixateCapsFunction	 fixatecapsfunc;
-
-  GstActivateMode		 mode;
+  GstPadMode		         mode;
   GstPadActivateFunction	 activatefunc;
-  GstPadActivateModeFunction	 activatepushfunc;
-  GstPadActivateModeFunction	 activatepullfunc;
+  gpointer                       activatedata;
+  GDestroyNotify                 activatenotify;
+  GstPadActivateModeFunction	 activatemodefunc;
+  gpointer                       activatemodedata;
+  GDestroyNotify                 activatemodenotify;
 
   /* pad link */
   GstPad			*peer;
   GstPadLinkFunction		 linkfunc;
+  gpointer                       linkdata;
+  GDestroyNotify                 linknotify;
   GstPadUnlinkFunction		 unlinkfunc;
+  gpointer                       unlinkdata;
+  GDestroyNotify                 unlinknotify;
 
   /* data transport functions */
   GstPadChainFunction		 chainfunc;
+  gpointer                       chaindata;
+  GDestroyNotify                 chainnotify;
   GstPadChainListFunction        chainlistfunc;
+  gpointer                       chainlistdata;
+  GDestroyNotify                 chainlistnotify;
   GstPadGetRangeFunction	 getrangefunc;
+  gpointer                       getrangedata;
+  GDestroyNotify                 getrangenotify;
   GstPadEventFunction		 eventfunc;
+  gpointer                       eventdata;
+  GDestroyNotify                 eventnotify;
 
   /* pad offset */
   gint64                         offset;
 
   /* generic query method */
-  GstPadQueryTypeFunction	 querytypefunc;
   GstPadQueryFunction		 queryfunc;
+  gpointer                       querydata;
+  GDestroyNotify                 querynotify;
 
   /* internal links */
   GstPadIterIntLinkFunction      iterintlinkfunc;
+  gpointer                       iterintlinkdata;
+  GDestroyNotify                 iterintlinknotify;
 
-  /*< private >*/
   /* counts number of probes attached. */
   gint				 num_probes;
   gint				 num_blocked;
@@ -686,16 +726,14 @@
 #define GST_PAD_PAD_TEMPLATE(pad)	(GST_PAD_CAST(pad)->padtemplate)
 #define GST_PAD_DIRECTION(pad)		(GST_PAD_CAST(pad)->direction)
 #define GST_PAD_TASK(pad)		(GST_PAD_CAST(pad)->task)
-#define GST_PAD_ACTIVATE_MODE(pad)	(GST_PAD_CAST(pad)->mode)
+#define GST_PAD_MODE(pad)	        (GST_PAD_CAST(pad)->mode)
 
 #define GST_PAD_ACTIVATEFUNC(pad)	(GST_PAD_CAST(pad)->activatefunc)
-#define GST_PAD_ACTIVATEPUSHFUNC(pad)	(GST_PAD_CAST(pad)->activatepushfunc)
-#define GST_PAD_ACTIVATEPULLFUNC(pad)	(GST_PAD_CAST(pad)->activatepullfunc)
+#define GST_PAD_ACTIVATEMODEFUNC(pad)	(GST_PAD_CAST(pad)->activatemodefunc)
 #define GST_PAD_CHAINFUNC(pad)		(GST_PAD_CAST(pad)->chainfunc)
 #define GST_PAD_CHAINLISTFUNC(pad)      (GST_PAD_CAST(pad)->chainlistfunc)
 #define GST_PAD_GETRANGEFUNC(pad)	(GST_PAD_CAST(pad)->getrangefunc)
 #define GST_PAD_EVENTFUNC(pad)		(GST_PAD_CAST(pad)->eventfunc)
-#define GST_PAD_QUERYTYPEFUNC(pad)	(GST_PAD_CAST(pad)->querytypefunc)
 #define GST_PAD_QUERYFUNC(pad)		(GST_PAD_CAST(pad)->queryfunc)
 #define GST_PAD_ITERINTLINKFUNC(pad)    (GST_PAD_CAST(pad)->iterintlinkfunc)
 
@@ -703,27 +741,32 @@
 #define GST_PAD_LINKFUNC(pad)		(GST_PAD_CAST(pad)->linkfunc)
 #define GST_PAD_UNLINKFUNC(pad)		(GST_PAD_CAST(pad)->unlinkfunc)
 
-#define GST_PAD_GETCAPSFUNC(pad)	(GST_PAD_CAST(pad)->getcapsfunc)
-#define GST_PAD_ACCEPTCAPSFUNC(pad)	(GST_PAD_CAST(pad)->acceptcapsfunc)
-#define GST_PAD_FIXATECAPSFUNC(pad)	(GST_PAD_CAST(pad)->fixatecapsfunc)
-
 #define GST_PAD_IS_SRC(pad)		(GST_PAD_DIRECTION(pad) == GST_PAD_SRC)
 #define GST_PAD_IS_SINK(pad)		(GST_PAD_DIRECTION(pad) == GST_PAD_SINK)
 
 #define GST_PAD_IS_LINKED(pad)		(GST_PAD_PEER(pad) != NULL)
 
-#define GST_PAD_IS_ACTIVE(pad)          (GST_PAD_ACTIVATE_MODE(pad) != GST_ACTIVATE_NONE)
+#define GST_PAD_IS_ACTIVE(pad)          (GST_PAD_MODE(pad) != GST_PAD_MODE_NONE)
 
-#define GST_PAD_IS_BLOCKED(pad)		(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKED))
-#define GST_PAD_IS_BLOCKING(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKING))
-#define GST_PAD_IS_FLUSHING(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLUSHING))
-#define GST_PAD_IS_IN_GETCAPS(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_GETCAPS))
-#define GST_PAD_NEEDS_RECONFIGURE(pad)  (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_NEED_RECONFIGURE))
-#define GST_PAD_NEEDS_EVENTS(pad)       (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_NEED_EVENTS))
-#define GST_PAD_IS_FIXED_CAPS(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FIXED_CAPS))
+#define GST_PAD_IS_BLOCKED(pad)		(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKED))
+#define GST_PAD_IS_BLOCKING(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKING))
 
-#define GST_PAD_SET_FLUSHING(pad)	(GST_OBJECT_FLAG_SET (pad, GST_PAD_FLUSHING))
-#define GST_PAD_UNSET_FLUSHING(pad)	(GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLUSHING))
+#define GST_PAD_IS_FLUSHING(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FLUSHING))
+#define GST_PAD_SET_FLUSHING(pad)	(GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_FLUSHING))
+#define GST_PAD_UNSET_FLUSHING(pad)	(GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_FLUSHING))
+
+#define GST_PAD_NEEDS_RECONFIGURE(pad)  (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE))
+#define GST_PAD_HAS_PENDING_EVENTS(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PENDING_EVENTS))
+#define GST_PAD_IS_FIXED_CAPS(pad)	(GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FIXED_CAPS))
+#define GST_PAD_NEEDS_PARENT(pad)       (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_NEED_PARENT))
+
+#define GST_PAD_IS_PROXY_CAPS(pad)      (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PROXY_CAPS))
+#define GST_PAD_SET_PROXY_CAPS(pad)     (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_CAPS))
+#define GST_PAD_UNSET_PROXY_CAPS(pad)   (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_CAPS))
+
+#define GST_PAD_IS_PROXY_ALLOCATION(pad)    (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PROXY_ALLOCATION))
+#define GST_PAD_SET_PROXY_ALLOCATION(pad)   (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_ALLOCATION))
+#define GST_PAD_UNSET_PROXY_ALLOCATION(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_ALLOCATION))
 
 /**
  * GST_PAD_GET_STREAM_LOCK:
@@ -739,15 +782,7 @@
  *
  * Lock the stream lock of @pad.
  */
-#define GST_PAD_STREAM_LOCK(pad)        (g_static_rec_mutex_lock(GST_PAD_GET_STREAM_LOCK(pad)))
-/**
- * GST_PAD_STREAM_LOCK_FULL:
- * @pad: a #GstPad
- * @t: the number of times to recursively lock
- *
- * Lock the stream lock of @pad @t times.
- */
-#define GST_PAD_STREAM_LOCK_FULL(pad,t) (g_static_rec_mutex_lock_full(GST_PAD_GET_STREAM_LOCK(pad), t))
+#define GST_PAD_STREAM_LOCK(pad)        g_rec_mutex_lock(GST_PAD_GET_STREAM_LOCK(pad))
 /**
  * GST_PAD_STREAM_TRYLOCK:
  * @pad: a #GstPad
@@ -755,24 +790,16 @@
  * Try to Lock the stream lock of the pad, return TRUE if the lock could be
  * taken.
  */
-#define GST_PAD_STREAM_TRYLOCK(pad)     (g_static_rec_mutex_trylock(GST_PAD_GET_STREAM_LOCK(pad)))
+#define GST_PAD_STREAM_TRYLOCK(pad)     g_rec_mutex_trylock(GST_PAD_GET_STREAM_LOCK(pad))
 /**
  * GST_PAD_STREAM_UNLOCK:
  * @pad: a #GstPad
  *
  * Unlock the stream lock of @pad.
  */
-#define GST_PAD_STREAM_UNLOCK(pad)      (g_static_rec_mutex_unlock(GST_PAD_GET_STREAM_LOCK(pad)))
-/**
- * GST_PAD_STREAM_UNLOCK_FULL:
- * @pad: a #GstPad
- *
- * Fully unlock the recursive stream lock of @pad, return the number of times
- * @pad was locked.
- */
-#define GST_PAD_STREAM_UNLOCK_FULL(pad) (g_static_rec_mutex_unlock_full(GST_PAD_GET_STREAM_LOCK(pad)))
+#define GST_PAD_STREAM_UNLOCK(pad)      g_rec_mutex_unlock(GST_PAD_GET_STREAM_LOCK(pad))
 
-#define GST_PAD_BLOCK_GET_COND(pad)     (GST_PAD_CAST(pad)->block_cond)
+#define GST_PAD_BLOCK_GET_COND(pad)     (&GST_PAD_CAST(pad)->block_cond)
 #define GST_PAD_BLOCK_WAIT(pad)         (g_cond_wait(GST_PAD_BLOCK_GET_COND (pad), GST_OBJECT_GET_LOCK (pad)))
 #define GST_PAD_BLOCK_SIGNAL(pad)       (g_cond_signal(GST_PAD_BLOCK_GET_COND (pad)))
 #define GST_PAD_BLOCK_BROADCAST(pad)    (g_cond_broadcast(GST_PAD_BLOCK_GET_COND (pad)))
@@ -810,11 +837,11 @@
 
 gboolean		gst_pad_set_active			(GstPad *pad, gboolean active);
 gboolean		gst_pad_is_active			(GstPad *pad);
-gboolean		gst_pad_activate_pull			(GstPad *pad, gboolean active);
-gboolean		gst_pad_activate_push			(GstPad *pad, gboolean active);
+gboolean		gst_pad_activate_mode			(GstPad *pad, GstPadMode mode,
+                                                                 gboolean active);
 
 gulong                  gst_pad_add_probe                       (GstPad *pad,
-								 GstProbeType mask,
+								 GstPadProbeType mask,
 								 GstPadProbeCallback callback,
                                                                  gpointer user_data,
                                                                  GDestroyNotify destroy_data);
@@ -831,21 +858,56 @@
 
 GstPadTemplate*		gst_pad_get_pad_template		(GstPad *pad);
 
-GstEvent*               gst_pad_get_sticky_event                (GstPad *pad, GstEventType event_type);
-GstFlowReturn           gst_pad_sticky_events_foreach           (GstPad *pad, GstPadStickyEventsForeachFunction foreach_func, gpointer user_data);
+GstEvent*               gst_pad_get_sticky_event                (GstPad *pad, GstEventType event_type,
+                                                                 guint idx);
+void                    gst_pad_sticky_events_foreach           (GstPad *pad, GstPadStickyEventsForeachFunction foreach_func, gpointer user_data);
 
 /* data passing setup functions */
-void			gst_pad_set_activate_function		(GstPad *pad, GstPadActivateFunction activate);
-void			gst_pad_set_activatepull_function	(GstPad *pad, GstPadActivateModeFunction activatepull);
-void			gst_pad_set_activatepush_function	(GstPad *pad, GstPadActivateModeFunction activatepush);
-void			gst_pad_set_chain_function		(GstPad *pad, GstPadChainFunction chain);
-void			gst_pad_set_chain_list_function	        (GstPad *pad, GstPadChainListFunction chainlist);
-void			gst_pad_set_getrange_function		(GstPad *pad, GstPadGetRangeFunction get);
-void			gst_pad_set_event_function		(GstPad *pad, GstPadEventFunction event);
+void			gst_pad_set_activate_function_full	(GstPad *pad,
+                                                                 GstPadActivateFunction activate,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+void			gst_pad_set_activatemode_function_full	(GstPad *pad,
+                                                                 GstPadActivateModeFunction activatemode,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+/* data passing functions */
+void			gst_pad_set_chain_function_full		(GstPad *pad,
+                                                                 GstPadChainFunction chain,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+void			gst_pad_set_chain_list_function_full	(GstPad *pad,
+                                                                 GstPadChainListFunction chainlist,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+void			gst_pad_set_getrange_function_full	(GstPad *pad,
+                                                                 GstPadGetRangeFunction get,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+void			gst_pad_set_event_function_full		(GstPad *pad,
+                                                                 GstPadEventFunction event,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+
+#define gst_pad_set_activate_function(p,f)      gst_pad_set_activate_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_activatemode_function(p,f)  gst_pad_set_activatemode_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_chain_function(p,f)         gst_pad_set_chain_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_chain_list_function(p,f)    gst_pad_set_chain_list_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_getrange_function(p,f)      gst_pad_set_getrange_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_event_function(p,f)         gst_pad_set_event_function_full((p),(f),NULL,NULL)
 
 /* pad links */
-void			gst_pad_set_link_function		(GstPad *pad, GstPadLinkFunction link);
-void			gst_pad_set_unlink_function		(GstPad *pad, GstPadUnlinkFunction unlink);
+void			gst_pad_set_link_function_full		(GstPad *pad,
+                                                                 GstPadLinkFunction link,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+void			gst_pad_set_unlink_function_full        (GstPad *pad,
+                                                                 GstPadUnlinkFunction unlink,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+
+#define gst_pad_set_link_function(p,f)          gst_pad_set_link_function_full((p),(f),NULL,NULL)
+#define gst_pad_set_unlink_function(p,f)        gst_pad_set_unlink_function_full((p),(f),NULL,NULL)
 
 gboolean                gst_pad_can_link                        (GstPad *srcpad, GstPad *sinkpad);
 GstPadLinkReturn        gst_pad_link				(GstPad *srcpad, GstPad *sinkpad);
@@ -855,24 +917,13 @@
 
 GstPad*			gst_pad_get_peer			(GstPad *pad);
 
-/* capsnego functions */
-void			gst_pad_set_getcaps_function		(GstPad *pad, GstPadGetCapsFunction getcaps);
-void			gst_pad_set_acceptcaps_function		(GstPad *pad, GstPadAcceptCapsFunction acceptcaps);
-void			gst_pad_set_fixatecaps_function		(GstPad *pad, GstPadFixateCapsFunction fixatecaps);
-
 GstCaps*                gst_pad_get_pad_template_caps		(GstPad *pad);
 
 /* capsnego function for linked/unlinked pads */
 GstCaps *		gst_pad_get_current_caps                (GstPad * pad);
 gboolean		gst_pad_has_current_caps                (GstPad * pad);
-GstCaps *		gst_pad_get_caps			(GstPad * pad, GstCaps *filter);
-void			gst_pad_fixate_caps			(GstPad * pad, GstCaps *caps);
-gboolean		gst_pad_accept_caps			(GstPad * pad, GstCaps *caps);
 gboolean		gst_pad_set_caps			(GstPad * pad, GstCaps *caps);
 
-GstCaps *		gst_pad_peer_get_caps			(GstPad * pad, GstCaps *filter);
-gboolean		gst_pad_peer_accept_caps		(GstPad * pad, GstCaps *caps);
-
 /* capsnego for linked pads */
 GstCaps *		gst_pad_get_allowed_caps		(GstPad * pad);
 
@@ -886,7 +937,8 @@
 GstFlowReturn		gst_pad_pull_range			(GstPad *pad, guint64 offset, guint size,
 								 GstBuffer **buffer);
 gboolean		gst_pad_push_event			(GstPad *pad, GstEvent *event);
-gboolean		gst_pad_event_default			(GstPad *pad, GstEvent *event);
+gboolean		gst_pad_event_default			(GstPad *pad, GstObject *parent,
+                                                                 GstEvent *event);
 
 /* data passing functions on pad */
 GstFlowReturn		gst_pad_chain				(GstPad *pad, GstBuffer *buffer);
@@ -902,21 +954,25 @@
 gboolean		gst_pad_stop_task			(GstPad *pad);
 
 /* internal links */
-void                    gst_pad_set_iterate_internal_links_function (GstPad * pad,
-                                                                 GstPadIterIntLinkFunction iterintlink);
+void                    gst_pad_set_iterate_internal_links_function_full (GstPad * pad,
+                                                                 GstPadIterIntLinkFunction iterintlink,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
 GstIterator *           gst_pad_iterate_internal_links          (GstPad * pad);
-GstIterator *           gst_pad_iterate_internal_links_default  (GstPad * pad);
+GstIterator *           gst_pad_iterate_internal_links_default  (GstPad * pad, GstObject *parent);
 
+#define gst_pad_set_iterate_internal_links_function(p,f) gst_pad_set_iterate_internal_links_function_full((p),(f),NULL,NULL)
 
 /* generic query function */
-void			gst_pad_set_query_type_function		(GstPad *pad, GstPadQueryTypeFunction type_func);
-const GstQueryType*	gst_pad_get_query_types			(GstPad *pad);
-const GstQueryType*	gst_pad_get_query_types_default		(GstPad *pad);
-
 gboolean		gst_pad_query				(GstPad *pad, GstQuery *query);
 gboolean		gst_pad_peer_query			(GstPad *pad, GstQuery *query);
-void			gst_pad_set_query_function		(GstPad *pad, GstPadQueryFunction query);
-gboolean		gst_pad_query_default			(GstPad *pad, GstQuery *query);
+void			gst_pad_set_query_function_full		(GstPad *pad, GstPadQueryFunction query,
+                                                                 gpointer user_data,
+                                                                 GDestroyNotify notify);
+gboolean		gst_pad_query_default			(GstPad *pad, GstObject *parent,
+                                                                 GstQuery *query);
+
+#define gst_pad_set_query_function(p,f)   gst_pad_set_query_function_full((p),(f),NULL,NULL)
 
 /* misc helper functions */
 gboolean		gst_pad_forward                         (GstPad *pad, GstPadForwardFunction forward,
diff --git a/gst/gstpadtemplate.c b/gst/gstpadtemplate.c
index bf8d576..a8f1716 100644
--- a/gst/gstpadtemplate.c
+++ b/gst/gstpadtemplate.c
@@ -63,7 +63,7 @@
  *     GST_PAD_SINK,    // the direction of the pad
  *     GST_PAD_ALWAYS,  // when this pad will be present
  *     GST_STATIC_CAPS (        // the capabilities of the padtemplate
- *       "audio/x-raw-int, "
+ *       "audio/x-raw, "
  *         "channels = (int) [ 1, 6 ]"
  *     )
  *   );
@@ -100,7 +100,6 @@
 #include "gstpad.h"
 #include "gstpadtemplate.h"
 #include "gstenumtypes.h"
-#include "gstmarshal.h"
 #include "gstutils.h"
 #include "gstinfo.h"
 #include "gsterror.h"
@@ -123,7 +122,6 @@
   LAST_SIGNAL
 };
 
-static GstObject *parent_class = NULL;
 static guint gst_pad_template_signals[LAST_SIGNAL] = { 0 };
 
 static void gst_pad_template_dispose (GObject * object);
@@ -132,6 +130,7 @@
 static void gst_pad_template_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
+#define gst_pad_template_parent_class parent_class
 G_DEFINE_TYPE (GstPadTemplate, gst_pad_template, GST_TYPE_OBJECT);
 
 static void
@@ -143,8 +142,6 @@
   gobject_class = (GObjectClass *) klass;
   gstobject_class = (GstObjectClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
-
   /**
    * GstPadTemplate::pad-created:
    * @pad_template: the object which received the signal.
@@ -155,7 +152,7 @@
   gst_pad_template_signals[TEMPL_PAD_CREATED] =
       g_signal_new ("pad-created", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstPadTemplateClass, pad_created),
-      NULL, NULL, gst_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_PAD);
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_PAD);
 
   gobject_class->dispose = gst_pad_template_dispose;
 
@@ -274,17 +271,7 @@
   return TRUE;
 }
 
-GType
-gst_static_pad_template_get_type (void)
-{
-  static GType staticpadtemplate_type = 0;
-
-  if (G_UNLIKELY (staticpadtemplate_type == 0)) {
-    staticpadtemplate_type =
-        g_pointer_type_register_static ("GstStaticPadTemplate");
-  }
-  return staticpadtemplate_type;
-}
+G_DEFINE_POINTER_TYPE (GstStaticPadTemplate, gst_static_pad_template);
 
 /**
  * gst_static_pad_template_get:
@@ -322,12 +309,12 @@
  * @name_template: the name template.
  * @direction: the #GstPadDirection of the template.
  * @presence: the #GstPadPresence of the pad.
- * @caps: a #GstCaps set for the template.
+ * @caps: (transfer none): a #GstCaps set for the template.
  *
  * Creates a new pad template with a name according to the given template
  * and with the given arguments.
  *
- * Returns: (transfer full): a new #GstPadTemplate.
+ * Returns: (transfer floating): a new #GstPadTemplate.
  */
 GstPadTemplate *
 gst_pad_template_new (const gchar * name_template,
@@ -369,7 +356,7 @@
 {
   g_return_val_if_fail (templ, NULL);
 
-  return (GstCaps *) gst_static_caps_get (&templ->static_caps);
+  return gst_static_caps_get (&templ->static_caps);
 }
 
 /**
diff --git a/gst/gstpadtemplate.h b/gst/gstpadtemplate.h
index bc2bcee..7bbbf16 100644
--- a/gst/gstpadtemplate.h
+++ b/gst/gstpadtemplate.h
@@ -138,7 +138,7 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
-/** 
+/**
  * GstStaticPadTemplate:
  * @name_template: the name of the template
  * @direction: the direction of the template
@@ -178,7 +178,7 @@
 
 GstPadTemplate*		gst_pad_template_new			(const gchar *name_template,
 								 GstPadDirection direction, GstPadPresence presence,
-								 GstCaps *caps);
+								 GstCaps *caps) G_GNUC_MALLOC;
 
 GstPadTemplate *	gst_static_pad_template_get             (GstStaticPadTemplate *pad_template);
 GstCaps*		gst_static_pad_template_get_caps	(GstStaticPadTemplate *templ);
diff --git a/gst/gstparamspecs.c b/gst/gstparamspecs.c
index e75a944..bed692d 100644
--- a/gst/gstparamspecs.c
+++ b/gst/gstparamspecs.c
@@ -162,7 +162,7 @@
  * used in connection with g_object_class_install_property() in a GObjects's
  * instance_init function.
  *
- * Returns: a newly created parameter specification
+ * Returns: (transfer full): a newly created parameter specification
  *
  * Since: 0.10.14
  */
diff --git a/gst/gstparamspecs.h b/gst/gstparamspecs.h
index c2cdf6f..0e22f40 100644
--- a/gst/gstparamspecs.h
+++ b/gst/gstparamspecs.h
@@ -105,7 +105,7 @@
  */
 struct _GstParamSpecFraction {
   GParamSpec    parent_instance;
-  
+
   gint          min_num, min_den;
   gint          max_num, max_den;
   gint          def_num, def_den;
@@ -120,7 +120,7 @@
                                        gint min_num, gint min_denom,
                                        gint max_num, gint max_denom,
                                        gint default_num, gint default_denom,
-                                       GParamFlags flags);
+                                       GParamFlags flags) G_GNUC_MALLOC;
 
 G_END_DECLS
 
diff --git a/gst/gstparse.c b/gst/gstparse.c
index f60d758..3e6714d 100644
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
@@ -44,12 +44,6 @@
 #include "parse/types.h"
 #endif
 
-static void
-_prepend_missing_element (gchar * element, GList ** list)
-{
-  *list = g_list_prepend (*list, g_strdup (element));
-}
-
 static GstParseContext *
 gst_parse_context_copy (const GstParseContext * context)
 {
@@ -58,27 +52,21 @@
 
   ret = gst_parse_context_new ();
   if (context) {
-    g_list_foreach (context->missing_elements, (GFunc) _prepend_missing_element,
-        &ret->missing_elements);
-    ret->missing_elements = g_list_reverse (ret->missing_elements);
+    GQueue missing_copy = G_QUEUE_INIT;
+    GList *l;
+
+    for (l = context->missing_elements; l != NULL; l = l->next)
+      g_queue_push_tail (&missing_copy, g_strdup ((const gchar *) l->data));
+
+    ret->missing_elements = missing_copy.head;
   }
 #endif
   return ret;
 }
 
-GType
-gst_parse_context_get_type (void)
-{
-  static GType type = 0;
-
-  if (G_UNLIKELY (type == 0)) {
-    type = g_boxed_type_register_static ("GstParseContext",
-        (GBoxedCopyFunc) gst_parse_context_copy,
-        (GBoxedFreeFunc) gst_parse_context_free);
-  }
-
-  return type;
-}
+G_DEFINE_BOXED_TYPE (GstParseContext, gst_parse_context,
+    (GBoxedCopyFunc) gst_parse_context_copy,
+    (GBoxedFreeFunc) gst_parse_context_free);
 
 /**
  * gst_parse_error_quark:
@@ -292,7 +280,7 @@
  * the @error is set. In this case there was a recoverable parsing error and you
  * can try to play the pipeline.
  *
- * Returns: (transfer full): a new element on success, %NULL on failure. If
+ * Returns: (transfer floating): a new element on success, %NULL on failure. If
  *    more than one toplevel element is specified by the @pipeline_description,
  *   all elements are put into a #GstPipeline, which than is returned.
  */
@@ -335,7 +323,7 @@
   GST_CAT_INFO (GST_CAT_PIPELINE, "parsing pipeline description '%s'",
       pipeline_description);
 
-  element = _gst_parse_launch (pipeline_description, error, context, flags);
+  element = priv_gst_parse_launch (pipeline_description, error, context, flags);
 
   /* don't return partially constructed pipeline if FATAL_ERRORS was given */
   if (G_UNLIKELY (error != NULL && *error != NULL && element != NULL)) {
diff --git a/gst/gstparse.h b/gst/gstparse.h
index a0f27b3..4025031 100644
--- a/gst/gstparse.h
+++ b/gst/gstparse.h
@@ -89,9 +89,9 @@
 /* create, process and free a parse context */
 
 GType             gst_parse_context_get_type (void);
-GstParseContext * gst_parse_context_new (void);
+GstParseContext * gst_parse_context_new (void) G_GNUC_MALLOC;
 
-gchar          ** gst_parse_context_get_missing_elements (GstParseContext * context);
+gchar          ** gst_parse_context_get_missing_elements (GstParseContext * context) G_GNUC_MALLOC;
 
 void              gst_parse_context_free (GstParseContext * context);
 
@@ -99,20 +99,20 @@
 /* parse functions */
 
 GstElement      * gst_parse_launch       (const gchar      * pipeline_description,
-                                          GError          ** error);
+                                          GError          ** error) G_GNUC_MALLOC;
 
 GstElement      * gst_parse_launchv      (const gchar     ** argv,
-                                          GError          ** error);
+                                          GError          ** error) G_GNUC_MALLOC;
 
 GstElement      * gst_parse_launch_full  (const gchar      * pipeline_description,
                                           GstParseContext  * context,
                                           GstParseFlags      flags,
-                                          GError          ** error);
+                                          GError          ** error) G_GNUC_MALLOC;
 
 GstElement      * gst_parse_launchv_full (const gchar     ** argv,
                                           GstParseContext  * context,
                                           GstParseFlags      flags,
-                                          GError          ** error);
+                                          GError          ** error) G_GNUC_MALLOC;
 
 G_END_DECLS
 
diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c
index 4efc029..38eb09d 100644
--- a/gst/gstpipeline.c
+++ b/gst/gstpipeline.c
@@ -29,8 +29,7 @@
  * A #GstPipeline is a special #GstBin used as the toplevel container for
  * the filter graph. The #GstPipeline will manage the selection and
  * distribution of a global #GstClock as well as provide a #GstBus to the
- * application. It will also implement a default behaviour for managing
- * seek events (see gst_element_seek()).
+ * application.
  *
  * gst_pipeline_new() is used to create a pipeline. when you are done with
  * the pipeline, use gst_object_unref() to free its resources including all
@@ -73,12 +72,7 @@
  * in the PLAYING state. This default behaviour can be changed with the
  * gst_element_set_start_time() method.
  *
- * When sending a flushing seek event to a GstPipeline (see
- * gst_element_seek()), it will make sure that the pipeline is properly
- * PAUSED and resumed as well as set the new running time to 0 when the
- * seek succeeded.
- *
- * Last reviewed on 2009-05-29 (0.10.24)
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #include "gst_private.h"
@@ -304,7 +298,7 @@
  *
  * Create a new pipeline with the given name.
  *
- * Returns: (transfer full): newly created GstPipeline
+ * Returns: (transfer floating): newly created GstPipeline
  *
  * MT safe.
  */
@@ -402,7 +396,9 @@
 
       /* running time changed, either with a PAUSED or a flush, we need to check
        * if there is a new clock & update the base time */
-      if (update_clock || last_start_time != start_time) {
+      /* only do this for top-level, however */
+      if (GST_OBJECT_PARENT (element) == NULL &&
+          (update_clock || last_start_time != start_time)) {
         GST_DEBUG_OBJECT (pipeline, "Need to update start_time");
 
         /* when going to PLAYING, select a clock when needed. If we just got
@@ -419,7 +415,7 @@
         if (clock) {
           now = gst_clock_get_time (clock);
         } else {
-          GST_DEBUG ("no clock, using base time of NONE");
+          GST_DEBUG_OBJECT (pipeline, "no clock, using base time of NONE");
           now = GST_CLOCK_TIME_NONE;
         }
 
diff --git a/gst/gstpipeline.h b/gst/gstpipeline.h
index 7dbf96f..43563cb 100644
--- a/gst/gstpipeline.h
+++ b/gst/gstpipeline.h
@@ -28,13 +28,13 @@
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_PIPELINE 		(gst_pipeline_get_type ())
-#define GST_PIPELINE(obj) 		(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PIPELINE, GstPipeline))
-#define GST_IS_PIPELINE(obj) 		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PIPELINE))
-#define GST_PIPELINE_CLASS(klass) 	(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PIPELINE, GstPipelineClass))
-#define GST_IS_PIPELINE_CLASS(klass) 	(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PIPELINE))
-#define GST_PIPELINE_GET_CLASS(obj) 	(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PIPELINE, GstPipelineClass))
-#define GST_PIPELINE_CAST(obj) 		((GstPipeline*)(obj))
+#define GST_TYPE_PIPELINE               (gst_pipeline_get_type ())
+#define GST_PIPELINE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PIPELINE, GstPipeline))
+#define GST_IS_PIPELINE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PIPELINE))
+#define GST_PIPELINE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PIPELINE, GstPipelineClass))
+#define GST_IS_PIPELINE_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PIPELINE))
+#define GST_PIPELINE_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PIPELINE, GstPipelineClass))
+#define GST_PIPELINE_CAST(obj)          ((GstPipeline*)(obj))
 
 typedef struct _GstPipeline GstPipeline;
 typedef struct _GstPipelineClass GstPipelineClass;
@@ -55,7 +55,7 @@
 
 /**
  * GstPipeline:
- * @fixed_clock: The fixed clock of the pipeline, used when 
+ * @fixed_clock: The fixed clock of the pipeline, used when
  *               GST_PIPELINE_FLAG_FIXED_CLOCK is set.
  * @stream_time: The stream time of the pipeline. A better name for this
  *         property would be the running_time, the total time spent in the
@@ -67,18 +67,18 @@
  * The #GstPipeline structure.
  */
 struct _GstPipeline {
-  GstBin 	 bin;
+  GstBin         bin;
 
   /*< public >*/ /* with LOCK */
   GstClock      *fixed_clock;
 
-  GstClockTime   stream_time;	
+  GstClockTime   stream_time;
   GstClockTime   delay;
 
   /*< private >*/
   GstPipelinePrivate *priv;
 
-  gpointer _gst_reserved[GST_PADDING-1];
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstPipelineClass {
@@ -88,10 +88,10 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
-GType		gst_pipeline_get_type		(void);
-GstElement*	gst_pipeline_new		(const gchar *name);
+GType           gst_pipeline_get_type           (void);
+GstElement*     gst_pipeline_new                (const gchar *name) G_GNUC_MALLOC;
 
-GstBus*		gst_pipeline_get_bus		(GstPipeline *pipeline);
+GstBus*         gst_pipeline_get_bus            (GstPipeline *pipeline);
 
 void            gst_pipeline_use_clock          (GstPipeline *pipeline, GstClock *clock);
 gboolean        gst_pipeline_set_clock          (GstPipeline *pipeline, GstClock *clock);
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index dfb5f0c..413ffd7 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -90,7 +90,7 @@
  * MIT/X11: http://www.opensource.org/licenses/mit-license.php
  * 3-clause BSD: http://www.opensource.org/licenses/bsd-license.php
  */
-static const gchar *valid_licenses[] = {
+static const gchar *const valid_licenses[] = {
   "LGPL",                       /* GNU Lesser General Public License */
   "GPL",                        /* GNU General Public License */
   "QPL",                        /* Trolltech Qt Public License */
@@ -123,15 +123,20 @@
 gst_plugin_finalize (GObject * object)
 {
   GstPlugin *plugin = GST_PLUGIN_CAST (object);
-  GstRegistry *registry = gst_registry_get_default ();
-  GList *g;
 
   GST_DEBUG ("finalizing plugin %" GST_PTR_FORMAT, plugin);
+
+  /* FIXME: make registry add a weak ref instead */
+#if 0
+  GstRegistry *registry = gst_registry_get ();
+  GList *g;
   for (g = registry->plugins; g; g = g->next) {
     if (g->data == (gpointer) plugin) {
       g_warning ("removing plugin that is still in registry");
     }
   }
+#endif
+
   g_free (plugin->filename);
   g_free (plugin->basename);
 
@@ -221,7 +226,7 @@
   plugin = g_object_newv (GST_TYPE_PLUGIN, 0, NULL);
   if (gst_plugin_register_func (plugin, &desc, NULL) != NULL) {
     GST_INFO ("registered static plugin \"%s\"", name);
-    res = gst_default_registry_add_plugin (plugin);
+    res = gst_registry_add_plugin (gst_registry_get (), plugin);
     GST_INFO ("added static plugin \"%s\", result: %d", name, res);
   }
   return res;
@@ -291,7 +296,7 @@
   plugin = g_object_newv (GST_TYPE_PLUGIN, 0, NULL);
   if (gst_plugin_register_func (plugin, &desc, user_data) != NULL) {
     GST_INFO ("registered static plugin \"%s\"", name);
-    res = gst_default_registry_add_plugin (plugin);
+    res = gst_registry_add_plugin (gst_registry_get (), plugin);
     GST_INFO ("added static plugin \"%s\", result: %d", name, res);
   }
   return res;
@@ -455,7 +460,7 @@
 static gboolean
 gst_plugin_check_license (const gchar * license)
 {
-  const gchar **check_license = valid_licenses;
+  const gchar *const *check_license = valid_licenses;
 
   g_assert (check_license);
 
@@ -472,7 +477,7 @@
 {
   /* return NULL if the major and minor version numbers are not compatible */
   /* with ours. */
-  if (major != GST_VERSION_MAJOR || minor != GST_VERSION_MINOR)
+  if (major != GST_VERSION_MAJOR || minor > GST_VERSION_MINOR)
     return FALSE;
 
   return TRUE;
@@ -654,7 +659,7 @@
   return (*date_time == '\0');
 }
 
-static GStaticMutex gst_plugin_loading_mutex = G_STATIC_MUTEX_INIT;
+static GMutex gst_plugin_loading_mutex;
 
 #define CHECK_PLUGIN_DESC_FIELD(desc,field,fn)                               \
   if (G_UNLIKELY ((desc)->field == NULL)) {                                  \
@@ -686,14 +691,14 @@
 
   g_return_val_if_fail (filename != NULL, NULL);
 
-  registry = gst_registry_get_default ();
-  g_static_mutex_lock (&gst_plugin_loading_mutex);
+  registry = gst_registry_get ();
+  g_mutex_lock (&gst_plugin_loading_mutex);
 
   plugin = gst_registry_lookup (registry, filename);
   if (plugin) {
     if (plugin->module) {
       /* already loaded */
-      g_static_mutex_unlock (&gst_plugin_loading_mutex);
+      g_mutex_unlock (&gst_plugin_loading_mutex);
       return plugin;
     } else {
       /* load plugin and update fields */
@@ -828,17 +833,17 @@
 
   if (new_plugin) {
     gst_object_ref (plugin);
-    gst_default_registry_add_plugin (plugin);
+    gst_registry_add_plugin (gst_registry_get (), plugin);
   }
 
-  g_static_mutex_unlock (&gst_plugin_loading_mutex);
+  g_mutex_unlock (&gst_plugin_loading_mutex);
   return plugin;
 
 return_error:
   {
     if (plugin)
       gst_object_unref (plugin);
-    g_static_mutex_unlock (&gst_plugin_loading_mutex);
+    g_mutex_unlock (&gst_plugin_loading_mutex);
     return NULL;
   }
 }
@@ -1259,7 +1264,7 @@
   GError *error = NULL;
 
   GST_DEBUG ("looking up plugin %s in default registry", name);
-  plugin = gst_registry_find_plugin (gst_registry_get_default (), name);
+  plugin = gst_registry_find_plugin (gst_registry_get (), name);
   if (plugin) {
     GST_DEBUG ("loading plugin %s from file %s", name, plugin->filename);
     newplugin = gst_plugin_load_file (plugin->filename, &error);
@@ -1419,12 +1424,11 @@
   return FALSE;
 }
 
-static GList *
+static void
 gst_plugin_ext_dep_extract_env_vars_paths (GstPlugin * plugin,
-    GstPluginDep * dep)
+    GstPluginDep * dep, GQueue * paths)
 {
   gchar **evars;
-  GList *paths = NULL;
 
   for (evars = dep->env_vars; evars != NULL && *evars != NULL; ++evars) {
     const gchar *e;
@@ -1471,9 +1475,9 @@
           full_path = g_strdup (arr[i]);
         }
 
-        if (!g_list_find_custom (paths, full_path, (GCompareFunc) strcmp)) {
+        if (!g_queue_find_custom (paths, full_path, (GCompareFunc) strcmp)) {
           GST_LOG_OBJECT (plugin, "path: '%s'", full_path);
-          paths = g_list_prepend (paths, full_path);
+          g_queue_push_tail (paths, full_path);
           full_path = NULL;
         } else {
           GST_LOG_OBJECT (plugin, "path: '%s' (duplicate,ignoring)", full_path);
@@ -1487,10 +1491,7 @@
     g_strfreev (components);
   }
 
-  GST_LOG_OBJECT (plugin, "Extracted %d paths from environment",
-      g_list_length (paths));
-
-  return paths;
+  GST_LOG_OBJECT (plugin, "Extracted %d paths from environment", paths->length);
 }
 
 static guint
@@ -1636,43 +1637,37 @@
 gst_plugin_ext_dep_get_stat_hash (GstPlugin * plugin, GstPluginDep * dep)
 {
   gboolean paths_are_default_only;
-  GList *scan_paths;
+  GQueue scan_paths = G_QUEUE_INIT;
   guint scan_hash = 0;
+  gchar *path;
 
   GST_LOG_OBJECT (plugin, "start");
 
   paths_are_default_only =
       dep->flags & GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY;
 
-  scan_paths = gst_plugin_ext_dep_extract_env_vars_paths (plugin, dep);
+  gst_plugin_ext_dep_extract_env_vars_paths (plugin, dep, &scan_paths);
 
-  if (scan_paths == NULL || !paths_are_default_only) {
+  if (g_queue_is_empty (&scan_paths) || !paths_are_default_only) {
     gchar **paths;
 
     for (paths = dep->paths; paths != NULL && *paths != NULL; ++paths) {
       const gchar *path = *paths;
 
-      if (!g_list_find_custom (scan_paths, path, (GCompareFunc) strcmp)) {
+      if (!g_queue_find_custom (&scan_paths, path, (GCompareFunc) strcmp)) {
         GST_LOG_OBJECT (plugin, "path: '%s'", path);
-        scan_paths = g_list_prepend (scan_paths, g_strdup (path));
+        g_queue_push_tail (&scan_paths, g_strdup (path));
       } else {
         GST_LOG_OBJECT (plugin, "path: '%s' (duplicate, ignoring)", path);
       }
     }
   }
 
-  /* not that the order really matters, but it makes debugging easier */
-  scan_paths = g_list_reverse (scan_paths);
-
-  while (scan_paths != NULL) {
-    const gchar *path = scan_paths->data;
-
+  while ((path = g_queue_pop_head (&scan_paths))) {
     scan_hash += gst_plugin_ext_dep_scan_path_with_filenames (plugin, path,
         (const gchar **) dep->names, dep->flags);
     scan_hash = scan_hash << 1;
-
-    g_free (scan_paths->data);
-    scan_paths = g_list_delete_link (scan_paths, scan_paths);
+    g_free (path);
   }
 
   GST_LOG_OBJECT (plugin, "done, scan_hash: %08x", scan_hash);
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index 32bec0d..f1be63b 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -213,6 +213,7 @@
                                  * that matches the plugin's basename */
 
   GstPluginPrivate *priv;
+
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -259,7 +260,7 @@
 GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = {	\
   major,						\
   minor,						\
-  name,							\
+ #name,						        \
   (gchar *) description,				\
   init,							\
   version,						\
@@ -341,12 +342,11 @@
 GstPlugin *             gst_plugin_load                 (GstPlugin *plugin);
 GstPlugin *             gst_plugin_load_by_name         (const gchar *name);
 
-void                    gst_plugin_add_dependency (GstPlugin    * plugin,
-                                                   const gchar ** env_vars,
-                                                   const gchar ** paths,
-                                                   const gchar ** names,
-                                                   GstPluginDependencyFlags flags);
-
+void                    gst_plugin_add_dependency        (GstPlugin    * plugin,
+                                                          const gchar ** env_vars,
+                                                          const gchar ** paths,
+                                                          const gchar ** names,
+                                                          GstPluginDependencyFlags flags);
 void                    gst_plugin_add_dependency_simple (GstPlugin   * plugin,
                                                           const gchar * env_vars,
                                                           const gchar * paths,
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index 79925a6..5b86fd3 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -114,8 +114,7 @@
   GST_DEBUG ("loaded plugin %s", feature->plugin_name);
   gst_object_unref (plugin);
 
-  real_feature =
-      gst_registry_lookup_feature (gst_registry_get_default (),
+  real_feature = gst_registry_lookup_feature (gst_registry_get (),
       GST_OBJECT_NAME (feature));
 
   if (real_feature == NULL)
@@ -148,25 +147,6 @@
 }
 
 /**
- * gst_plugin_feature_type_name_filter:
- * @feature: the #GstPluginFeature
- * @data: (in): the type and name to check against
- *
- * Compares type and name of plugin feature. Can be used with gst_filter_run().
- *
- * Returns: TRUE if equal.
- */
-gboolean
-gst_plugin_feature_type_name_filter (GstPluginFeature * feature,
-    GstTypeNameData * data)
-{
-  g_return_val_if_fail (GST_IS_PLUGIN_FEATURE (feature), FALSE);
-
-  return ((data->type == 0 || data->type == G_OBJECT_TYPE (feature)) &&
-      (data->name == NULL || !strcmp (data->name, GST_OBJECT_NAME (feature))));
-}
-
-/**
  * gst_plugin_feature_set_rank:
  * @feature: feature to rank
  * @rank: rank value - higher number means more priority rank
@@ -306,7 +286,7 @@
   GST_DEBUG ("Looking up plugin '%s' containing plugin feature '%s'",
       feature->plugin_name, GST_OBJECT_NAME (feature));
 
-  registry = gst_registry_get_default ();
+  registry = gst_registry_get ();
   plugin = gst_registry_find_plugin (registry, feature->plugin_name);
 
   if (plugin) {
@@ -321,6 +301,15 @@
     GST_DEBUG ("version string '%s' parsed to %d values", ver_str, nscan);
 
     if (nscan >= 3) {
+      /* FIXME 1.0: Remove this before doing the actual 1.0.0 release */
+      if ((major == 0 && minor == 11 && micro >= 90) ||
+          (major == 0 && minor == 11 && micro == 89 && nano > 0)) {
+        major = 1;
+        minor = 0;
+        micro = 0;
+        nano = 0;
+      }
+
       if (major > min_major)
         ret = TRUE;
       else if (major < min_major)
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index b8db0f4..b99d9ee 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -67,15 +67,13 @@
  * gst_plugin_feature_get_name:
  * @feature: a #GstPluginFeature to get the name of @feature.
  *
- * Returns a copy of the name of @feature.
- * Caller should g_free() the return value after usage.
- * For a nameless plugin feature, this returns NULL, which you can safely g_free()
- * as well.
+ * Returns the name of @feature.
+ * For a nameless plugin feature, this returns NULL.
  *
- * Returns: (transfer full): the name of @feature. g_free() after usage. MT safe.
+ * Returns: (transfer none): the name of @feature. MT safe.
  *
  */
-#define                 gst_plugin_feature_get_name(feature)      gst_object_get_name(GST_OBJECT_CAST(feature))
+#define                 gst_plugin_feature_get_name(feature)      GST_OBJECT_NAME(feature)
 
 /**
  * gst_plugin_feature_set_name:
@@ -102,7 +100,7 @@
   GstPlugin     *plugin;      /* weak ref */
 
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING - 1];
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstPluginFeatureClass {
@@ -113,18 +111,6 @@
 };
 
 /**
- * GstTypeNameData:
- * @name: a name
- * @type: a GType
- *
- * Structure used for filtering based on @name and @type.
- */
-typedef struct {
-  const gchar   *name;
-  GType          type;
-} GstTypeNameData;
-
-/**
  * GstPluginFeatureFilter:
  * @feature: the pluginfeature to check
  * @user_data: the user_data that has been passed on e.g.
@@ -144,14 +130,11 @@
 GstPluginFeature *
                 gst_plugin_feature_load                 (GstPluginFeature *feature);
 
-gboolean        gst_plugin_feature_type_name_filter     (GstPluginFeature *feature,
-                                                         GstTypeNameData *data);
-
 void            gst_plugin_feature_set_rank             (GstPluginFeature *feature, guint rank);
 guint           gst_plugin_feature_get_rank             (GstPluginFeature *feature);
 
 void            gst_plugin_feature_list_free            (GList *list);
-GList          *gst_plugin_feature_list_copy            (GList *list);
+GList          *gst_plugin_feature_list_copy            (GList *list) G_GNUC_MALLOC;
 void            gst_plugin_feature_list_debug           (GList *list);
 
 /**
diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
index 8bb2df8..4539421 100644
--- a/gst/gstpluginloader.c
+++ b/gst/gstpluginloader.c
@@ -701,7 +701,7 @@
 
     /* Now serialise the plugin details and send */
     if (!_priv_gst_registry_chunks_save_plugin (&chunks,
-            gst_registry_get_default (), newplugin))
+            gst_registry_get (), newplugin))
       goto fail;
 
     /* Store where the header is, write an empty one, then write
diff --git a/gst/gstpluginloader.h b/gst/gstpluginloader.h
index b2dbabd..448b034 100644
--- a/gst/gstpluginloader.h
+++ b/gst/gstpluginloader.h
@@ -26,10 +26,10 @@
 typedef struct _GstPluginLoader GstPluginLoader;
 
 typedef struct _GstPluginLoaderFuncs {
-  GstPluginLoader * (*create)(GstRegistry *registry);
-  gboolean (*destroy)(GstPluginLoader *loader);
-  gboolean (*load)(GstPluginLoader *loader, const gchar *filename,
-      off_t file_size, time_t file_mtime);
+  GstPluginLoader * (*create)   (GstRegistry *registry);
+  gboolean          (*destroy)  (GstPluginLoader *loader);
+  gboolean          (*load)     (GstPluginLoader *loader, const gchar *filename,
+                                 off_t file_size, time_t file_mtime);
 } GstPluginLoaderFuncs;
 
 extern const GstPluginLoaderFuncs _priv_gst_plugin_loader_funcs;
diff --git a/gst/gstpoll.c b/gst/gstpoll.c
index 83c8497..7aab1d1 100644
--- a/gst/gstpoll.c
+++ b/gst/gstpoll.c
@@ -29,17 +29,17 @@
  * A #GstPoll keeps track of file descriptors much like fd_set (used with
  * select()) or a struct pollfd array (used with poll()). Once created with
  * gst_poll_new(), the set can be used to wait for file descriptors to be
- * readable and/or writeable. It is possible to make this wait be controlled
+ * readable and/or writable. It is possible to make this wait be controlled
  * by specifying %TRUE for the @controllable flag when creating the set (or
  * later calling gst_poll_set_controllable()).
  *
  * New file descriptors are added to the set using gst_poll_add_fd(), and
  * removed using gst_poll_remove_fd(). Controlling which file descriptors
- * should be waited for to become readable and/or writeable are done using
+ * should be waited for to become readable and/or writable are done using
  * gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
  *
  * Use gst_poll_wait() to wait for the file descriptors to actually become
- * readable and/or writeable, or to timeout if no file descriptor is available
+ * readable and/or writable, or to timeout if no file descriptor is available
  * in time. The wait can be controlled by calling gst_poll_restart() and
  * gst_poll_set_flushing().
  *
@@ -75,7 +75,12 @@
 #define EINPROGRESS WSAEINPROGRESS
 #else
 #define _GNU_SOURCE 1
+#ifdef HAVE_SYS_POLL_H
 #include <sys/poll.h>
+#endif
+#ifdef HAVE_POLL_H
+#include <poll.h>
+#endif
 #include <sys/time.h>
 #include <sys/socket.h>
 #endif
@@ -120,7 +125,7 @@
 {
   GstPollMode mode;
 
-  GMutex *lock;
+  GMutex lock;
   /* array of fds, always written to and read from with lock */
   GArray *fds;
   /* array of active fds, only written to from the waiting thread with the
@@ -155,8 +160,8 @@
 #define IS_FLUSHING(s)      (g_atomic_int_get(&(s)->flushing))
 #define SET_FLUSHING(s,val) (g_atomic_int_set(&(s)->flushing, (val)))
 
-#define INC_WAITING(s)      (G_ATOMIC_INT_ADD(&(s)->waiting, 1))
-#define DEC_WAITING(s)      (G_ATOMIC_INT_ADD(&(s)->waiting, -1))
+#define INC_WAITING(s)      (g_atomic_int_add(&(s)->waiting, 1))
+#define DEC_WAITING(s)      (g_atomic_int_add(&(s)->waiting, -1))
 #define GET_WAITING(s)      (g_atomic_int_get(&(s)->waiting))
 
 #define TEST_REBUILD(s)     (g_atomic_int_compare_and_exchange(&(s)->rebuild, 1, 0))
@@ -177,7 +182,7 @@
 {
   gboolean result = TRUE;
 
-  if (G_ATOMIC_INT_ADD (&set->control_pending, 1) == 0) {
+  if (g_atomic_int_add (&set->control_pending, 1) == 0) {
     /* raise when nothing pending */
     GST_LOG ("%p: raise", set);
     result = WAKE_EVENT (set);
@@ -217,7 +222,7 @@
         break;
       else
         /* retry again until we read it successfully */
-        G_ATOMIC_INT_ADD (&set->control_pending, 1);
+        g_atomic_int_add (&set->control_pending, 1);
     }
   }
   return old;
@@ -271,20 +276,20 @@
 {
   guint i;
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
   for (i = 0; i < set->fds->len; i++) {
     struct pollfd *pfd = &g_array_index (set->fds, struct pollfd, i);
 
     if (pfd->fd >= FD_SETSIZE)
       goto too_many;
   }
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return TRUE;
 
 too_many:
   {
-    g_mutex_unlock (set->lock);
+    g_mutex_unlock (&set->lock);
     return FALSE;
   }
 }
@@ -347,7 +352,7 @@
   FD_ZERO (writefds);
   FD_ZERO (errorfds);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   for (i = 0; i < set->active_fds->len; i++) {
     struct pollfd *pfd = &g_array_index (set->fds, struct pollfd, i);
@@ -364,7 +369,7 @@
     }
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return max_fd;
 }
@@ -375,7 +380,7 @@
 {
   guint i;
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   for (i = 0; i < set->active_fds->len; i++) {
     struct pollfd *pfd = &g_array_index (set->active_fds, struct pollfd, i);
@@ -391,7 +396,7 @@
     }
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 }
 #else /* G_OS_WIN32 */
 /*
@@ -532,7 +537,7 @@
 #endif
 
 /**
- * gst_poll_new:
+ * gst_poll_new: (skip)
  * @controllable: whether it should be possible to control a wait.
  *
  * Create a new file descriptor set. If @controllable, it
@@ -554,7 +559,7 @@
   GST_DEBUG ("controllable : %d", controllable);
 
   nset = g_slice_new0 (GstPoll);
-  nset->lock = g_mutex_new ();
+  g_mutex_init (&nset->lock);
 #ifndef G_OS_WIN32
   nset->mode = GST_POLL_MODE_AUTO;
   nset->fds = g_array_new (FALSE, FALSE, sizeof (struct pollfd));
@@ -606,7 +611,7 @@
 }
 
 /**
- * gst_poll_new_timer:
+ * gst_poll_new_timer: (skip)
  *
  * Create a new poll object that can be used for scheduling cancellable
  * timeouts.
@@ -674,7 +679,7 @@
 
   g_array_free (set->active_fds, TRUE);
   g_array_free (set->fds, TRUE);
-  g_mutex_free (set->lock);
+  g_mutex_clear (&set->lock);
   g_slice_free (GstPoll, set);
 }
 
@@ -787,11 +792,11 @@
   g_return_val_if_fail (fd != NULL, FALSE);
   g_return_val_if_fail (fd->fd >= 0, FALSE);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   ret = gst_poll_add_fd_unlocked (set, fd);
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return ret;
 }
@@ -819,7 +824,7 @@
 
   GST_DEBUG ("%p: fd (fd:%d, idx:%d)", set, fd->fd, fd->idx);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   /* get the index, -1 is an fd that is not added */
   idx = find_index (set->fds, fd);
@@ -840,7 +845,7 @@
     GST_WARNING ("%p: couldn't find fd !", set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return idx >= 0;
 }
@@ -870,7 +875,7 @@
   GST_DEBUG ("%p: fd (fd:%d, idx:%d), active : %d", set,
       fd->fd, fd->idx, active);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   idx = find_index (set->fds, fd);
   if (idx >= 0) {
@@ -892,7 +897,7 @@
     GST_WARNING ("%p: couldn't find fd !", set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return idx >= 0;
 }
@@ -948,11 +953,11 @@
   g_return_val_if_fail (fd != NULL, FALSE);
   g_return_val_if_fail (fd->fd >= 0, FALSE);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   ret = gst_poll_fd_ctl_read_unlocked (set, fd, active);
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 
   return ret;
 }
@@ -983,7 +988,7 @@
   g_return_if_fail (fd != NULL);
   g_return_if_fail (fd->fd >= 0);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&set->lock);
 
   idx = find_index (set->fds, fd);
   if (idx >= 0) {
@@ -993,7 +998,7 @@
     MARK_REBUILD (set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&set->lock);
 #endif
 }
 
@@ -1020,7 +1025,7 @@
 
   GST_DEBUG ("%p: fd (fd:%d, idx:%d)", set, fd->fd, fd->idx);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&((GstPoll *) set)->lock);
 
   idx = find_index (set->active_fds, fd);
   if (idx >= 0) {
@@ -1037,7 +1042,7 @@
     GST_WARNING ("%p: couldn't find fd !", set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&((GstPoll *) set)->lock);
 
   return res;
 }
@@ -1065,7 +1070,7 @@
 
   GST_DEBUG ("%p: fd (fd:%d, idx:%d)", set, fd->fd, fd->idx);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&((GstPoll *) set)->lock);
 
   idx = find_index (set->active_fds, fd);
   if (idx >= 0) {
@@ -1086,7 +1091,7 @@
     GST_WARNING ("%p: couldn't find fd !", set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&((GstPoll *) set)->lock);
 
   return res;
 }
@@ -1137,11 +1142,11 @@
   g_return_val_if_fail (fd != NULL, FALSE);
   g_return_val_if_fail (fd->fd >= 0, FALSE);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&((GstPoll *) set)->lock);
 
   res = gst_poll_fd_can_read_unlocked (set, fd);
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&((GstPoll *) set)->lock);
 
   return res;
 }
@@ -1169,7 +1174,7 @@
 
   GST_DEBUG ("%p: fd (fd:%d, idx:%d)", set, fd->fd, fd->idx);
 
-  g_mutex_lock (set->lock);
+  g_mutex_lock (&((GstPoll *) set)->lock);
 
   idx = find_index (set->active_fds, fd);
   if (idx >= 0) {
@@ -1186,7 +1191,7 @@
     GST_WARNING ("%p: couldn't find fd !", set);
   }
 
-  g_mutex_unlock (set->lock);
+  g_mutex_unlock (&((GstPoll *) set)->lock);
 
   return res;
 }
@@ -1247,7 +1252,7 @@
     mode = choose_mode (set, timeout);
 
     if (TEST_REBUILD (set)) {
-      g_mutex_lock (set->lock);
+      g_mutex_lock (&set->lock);
 #ifndef G_OS_WIN32
       g_array_set_size (set->active_fds, set->fds->len);
       memcpy (set->active_fds->data, set->fds->data,
@@ -1256,7 +1261,7 @@
       if (!gst_poll_prepare_winsock_active_sets (set))
         goto winsock_error;
 #endif
-      g_mutex_unlock (set->lock);
+      g_mutex_unlock (&set->lock);
     }
 
     switch (mode) {
@@ -1449,7 +1454,7 @@
 winsock_error:
   {
     GST_LOG ("%p: winsock error", set);
-    g_mutex_unlock (set->lock);
+    g_mutex_unlock (&set->lock);
     DEC_WAITING (set);
     return -1;
   }
diff --git a/gst/gstpoll.h b/gst/gstpoll.h
index 741a79b..0bec885 100644
--- a/gst/gstpoll.h
+++ b/gst/gstpoll.h
@@ -63,8 +63,8 @@
  */
 #define GST_POLL_FD_INIT  { -1, -1 }
 
-GstPoll*        gst_poll_new              (gboolean controllable);
-GstPoll*        gst_poll_new_timer        (void);
+GstPoll*        gst_poll_new              (gboolean controllable) G_GNUC_MALLOC;
+GstPoll*        gst_poll_new_timer        (void) G_GNUC_MALLOC;
 void            gst_poll_free             (GstPoll *set);
 
 void            gst_poll_get_read_gpollfd (GstPoll *set, GPollFD *fd);
diff --git a/gst/gstpreset.c b/gst/gstpreset.c
index 6280896..3277f21 100644
--- a/gst/gstpreset.c
+++ b/gst/gstpreset.c
@@ -34,6 +34,13 @@
  * native preset format of those wrapped plugins.
  * One method that is useful to be overridden is gst_preset_get_property_names().
  * With that one can control which properties are saved and in which order.
+ *
+ * The default implementation supports presets located in a system directory, 
+ * application specific directory and in the users home directory. When getting
+ * a list of presets individual presets are read and overlaid in 1) system, 
+ * 2) application and 3) user order. Whenever an earlier entry is newer, the
+ * later entries will be updated. 
+ * 
  */
 /* FIXME:
  * - non racyness
@@ -106,11 +113,18 @@
 #define PRESET_HEADER_VERSION "version"
 
 static GQuark preset_user_path_quark = 0;
+static GQuark preset_app_path_quark = 0;
 static GQuark preset_system_path_quark = 0;
 static GQuark preset_quark = 0;
 
 /*static GQuark property_list_quark = 0;*/
 
+/* the application can set a custom path that is checked in addition to standart
+ * system and user dirs. This helps to develop new presets first local to the
+ * application.
+ */
+static gchar *preset_app_dir = NULL;
+
 /* default iface implementation */
 
 static gboolean gst_preset_default_save_presets_file (GstPreset * preset);
@@ -119,16 +133,17 @@
  * preset_get_paths:
  * @preset: a #GObject that implements #GstPreset
  * @preset_user_path: location for path or %NULL
+ * @preset_app_path: location for path or %NULL
  * @preset_system_path: location for path or %NULL
  *
- * Fetch the preset_path for user local and system wide settings. Don't free
- * after use.
+ * Fetch the preset_path for user local, application specific and system wide
+ * settings. Don't free after use.
  *
  * Returns: %FALSE if no paths could be found.
  */
 static gboolean
 preset_get_paths (GstPreset * preset, const gchar ** preset_user_path,
-    const gchar ** preset_system_path)
+    const gchar ** preset_app_path, const gchar ** preset_system_path)
 {
   GType type = G_TYPE_FROM_INSTANCE (preset);
   gchar *preset_path;
@@ -145,7 +160,7 @@
 
       /* user presets go in  user's XDG data directory. */
       preset_dir = g_build_filename (g_get_user_data_dir (),
-          "gstreamer-" GST_MAJORMINOR, "presets", NULL);
+          "gstreamer-" GST_API_VERSION, "presets", NULL);
       GST_INFO_OBJECT (preset, "user_preset_dir: '%s'", preset_dir);
       preset_path =
           g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s.prs", preset_dir,
@@ -161,13 +176,29 @@
     *preset_user_path = preset_path;
   }
 
+  if (preset_app_path) {
+    if (preset_app_dir) {
+      if (!(preset_path = g_type_get_qdata (type, preset_system_path_quark))) {
+        preset_path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s.prs",
+            preset_app_dir, element_name);
+        GST_INFO_OBJECT (preset, "application_preset_path: '%s'", preset_path);
+
+        /* cache the preset path to the type */
+        g_type_set_qdata (type, preset_app_path_quark, preset_path);
+      }
+      *preset_app_path = preset_path;
+    } else {
+      *preset_app_path = NULL;
+    }
+  }
+
   if (preset_system_path) {
     /* preset system path requested, see if we have it cached in the qdata */
     if (!(preset_path = g_type_get_qdata (type, preset_system_path_quark))) {
       gchar *preset_dir;
 
       /* system presets in '$GST_DATADIR/gstreamer-0.10/presets/GstAudioPanorama.prs' */
-      preset_dir = g_build_filename (GST_DATADIR, "gstreamer-" GST_MAJORMINOR,
+      preset_dir = g_build_filename (GST_DATADIR, "gstreamer-" GST_API_VERSION,
           "presets", NULL);
       GST_INFO_OBJECT (preset, "system_preset_dir: '%s'", preset_dir);
       preset_path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s.prs",
@@ -195,10 +226,30 @@
   return FALSE;
 }
 
-/* caller must free @preset_version after use */
+static guint64
+preset_parse_version (const gchar * str_version)
+{
+  guint major, minor, micro, nano;
+  gint num;
+
+  major = minor = micro = nano = 0;
+
+  /* parse version (e.g. 0.10.15.1) to guint64 */
+  num = sscanf (str_version, "%u.%u.%u.%u", &major, &minor, &micro, &nano);
+  /* make sure we have atleast "major.minor" */
+  if (num > 1) {
+    guint64 version;
+
+    version = ((((major << 8 | minor) << 8) | micro) << 8) | nano;
+    GST_DEBUG ("version %s -> %" G_GUINT64_FORMAT, str_version, version);
+    return version;
+  }
+  return G_GUINT64_CONSTANT (0);
+}
+
 static GKeyFile *
 preset_open_and_parse_header (GstPreset * preset, const gchar * preset_path,
-    gchar ** preset_version)
+    guint64 * preset_version)
 {
   GKeyFile *in;
   GError *error = NULL;
@@ -226,9 +277,12 @@
   g_free (name);
 
   /* get the version now so that the caller can check it */
-  if (preset_version)
-    *preset_version =
+  if (preset_version) {
+    gchar *str =
         g_key_file_get_value (in, PRESET_HEADER, PRESET_HEADER_VERSION, NULL);
+    *preset_version = preset_parse_version (str);
+    g_free (str);
+  }
 
   return in;
 
@@ -252,27 +306,6 @@
   }
 }
 
-static guint64
-preset_parse_version (const gchar * str_version)
-{
-  guint major, minor, micro, nano;
-  gint num;
-
-  major = minor = micro = nano = 0;
-
-  /* parse version (e.g. 0.10.15.1) to guint64 */
-  num = sscanf (str_version, "%u.%u.%u.%u", &major, &minor, &micro, &nano);
-  /* make sure we have atleast "major.minor" */
-  if (num > 1) {
-    guint64 version;
-
-    version = ((((major << 8 | minor) << 8) | micro) << 8) | nano;
-    GST_DEBUG ("version %s -> %" G_GUINT64_FORMAT, str_version, version);
-    return version;
-  }
-  return G_GUINT64_CONSTANT (0);
-}
-
 static void
 preset_merge (GKeyFile * system, GKeyFile * user)
 {
@@ -331,56 +364,70 @@
 
   /* first see if the have a cached version for the type */
   if (!(presets = g_type_get_qdata (type, preset_quark))) {
-    const gchar *preset_user_path, *preset_system_path;
-    gchar *str_version_user = NULL, *str_version_system = NULL;
-    gboolean updated_from_system = FALSE;
-    GKeyFile *in_user, *in_system;
+    const gchar *preset_user_path, *preset_app_path, *preset_system_path;
+    guint64 version_system = G_GUINT64_CONSTANT (0);
+    guint64 version_app = G_GUINT64_CONSTANT (0);
+    guint64 version_user = G_GUINT64_CONSTANT (0);
+    guint64 version = G_GUINT64_CONSTANT (0);
+    gboolean merged = FALSE;
+    GKeyFile *in_user, *in_app = NULL, *in_system;
 
-    preset_get_paths (preset, &preset_user_path, &preset_system_path);
+    preset_get_paths (preset, &preset_user_path, &preset_app_path,
+        &preset_system_path);
 
-    /* try to load the user and system presets, we do this to get the versions
-     * of both files. */
+    /* try to load the user, app and system presets, we do this to get the
+     * versions of all files. */
     in_user = preset_open_and_parse_header (preset, preset_user_path,
-        &str_version_user);
+        &version_user);
+    if (preset_app_path) {
+      in_app = preset_open_and_parse_header (preset, preset_app_path,
+          &version_app);
+    }
     in_system = preset_open_and_parse_header (preset, preset_system_path,
-        &str_version_system);
+        &version_system);
 
     /* compare version to check for merge */
     if (in_system) {
-      /* keep system presets if there is no user preset or when the system
-       * version is higher than the user version. */
-      if (!in_user) {
-        presets = in_system;
-      } else if (preset_parse_version (str_version_system) >
-          preset_parse_version (str_version_user)) {
-        presets = in_system;
-        updated_from_system = TRUE;
+      presets = in_system;
+      version = version_system;
+    }
+    if (in_app) {
+      /* if system version is higher, merge */
+      if (version > version_app) {
+        preset_merge (presets, in_app);
+        g_key_file_free (in_app);
+      } else {
+        if (presets)
+          g_key_file_free (presets);
+        presets = in_app;
+        version = version_system;
       }
     }
     if (in_user) {
-      if (updated_from_system) {
-        /* merge user on top of system presets */
+      /* if system or app version is higher, merge */
+      if (version > version_user) {
         preset_merge (presets, in_user);
         g_key_file_free (in_user);
+        merged = TRUE;
       } else {
-        /* keep user presets */
+        if (presets)
+          g_key_file_free (presets);
         presets = in_user;
+        version = version_user;
       }
     }
-    if (!in_user && !in_system) {
-      /* we did not load a user or system presets file, create a new one */
+
+    if (!presets) {
+      /* we did not load a user, app or system presets file, create a new one */
       presets = g_key_file_new ();
       g_key_file_set_string (presets, PRESET_HEADER, PRESET_HEADER_ELEMENT_NAME,
           G_OBJECT_TYPE_NAME (preset));
     }
 
-    g_free (str_version_user);
-    g_free (str_version_system);
-
     /* attach the preset to the type */
     g_type_set_qdata (type, preset_quark, (gpointer) presets);
 
-    if (updated_from_system) {
+    if (merged) {
       gst_preset_default_save_presets_file (preset);
     }
   }
@@ -578,7 +625,7 @@
   gchar *data;
   gsize data_size;
 
-  preset_get_paths (preset, &preset_path, NULL);
+  preset_get_paths (preset, &preset_path, NULL, NULL);
 
   /* get the presets from the type */
   if (!(presets = preset_get_keyfile (preset)))
@@ -1041,6 +1088,46 @@
   return GST_PRESET_GET_INTERFACE (preset)->get_meta (preset, name, tag, value);
 }
 
+/**
+ * gst_preset_set_app_dir:
+ * @app_dir: the application specific preset dir
+ *
+ * Sets an extra directory as an absolute path that should be considered when
+ * looking for presets. Any presets in the application dir will shadow the 
+ * system presets.
+ *
+ * Returns: %TRUE for success, %FALSE if the dir already has been set
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_preset_set_app_dir (const gchar * app_dir)
+{
+  g_return_val_if_fail (app_dir, FALSE);
+
+  if (!preset_app_dir) {
+    preset_app_dir = g_strdup (app_dir);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * gst_preset_get_app_dir:
+ *
+ * Gets the directory for application specific presets if set by the
+ * application.
+ *
+ * Returns: the directory or %NULL, don't free or modify the string
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_preset_get_app_dir (void)
+{
+  return preset_app_dir;
+}
+
 /* class internals */
 
 static void
@@ -1072,6 +1159,7 @@
     preset_quark = g_quark_from_static_string ("GstPreset::presets");
     preset_user_path_quark =
         g_quark_from_static_string ("GstPreset::user_path");
+    preset_app_path_quark = g_quark_from_static_string ("GstPreset::app_path");
     preset_system_path_quark =
         g_quark_from_static_string ("GstPreset::system_path");
 
diff --git a/gst/gstpreset.h b/gst/gstpreset.h
index ccf1366..30973f3 100644
--- a/gst/gstpreset.h
+++ b/gst/gstpreset.h
@@ -23,6 +23,7 @@
 #define __GST_PRESET_H__
 
 #include <glib-object.h>
+#include <gst/gstconfig.h>
 
 G_BEGIN_DECLS
 
@@ -67,7 +68,7 @@
   gboolean     (*rename_preset)       (GstPreset *preset, const gchar *old_name,
                                        const gchar *new_name);
   gboolean     (*delete_preset)       (GstPreset *preset, const gchar *name);
-  
+
   gboolean     (*set_meta)            (GstPreset *preset, const gchar *name,
                                        const gchar *tag, const gchar *value);
   gboolean     (*get_meta)            (GstPreset *preset, const gchar *name,
@@ -78,9 +79,9 @@
 
 GType gst_preset_get_type(void);
 
-gchar**      gst_preset_get_preset_names   (GstPreset *preset);
+gchar**      gst_preset_get_preset_names   (GstPreset *preset) G_GNUC_MALLOC;
 
-gchar**      gst_preset_get_property_names (GstPreset *preset);
+gchar**      gst_preset_get_property_names (GstPreset *preset) G_GNUC_MALLOC;
 
 gboolean     gst_preset_load_preset        (GstPreset *preset, const gchar *name);
 gboolean     gst_preset_save_preset        (GstPreset *preset, const gchar *name);
@@ -93,6 +94,9 @@
 gboolean     gst_preset_get_meta           (GstPreset *preset, const gchar *name,
                                             const gchar *tag, gchar **value);
 
+gboolean     gst_preset_set_app_dir        (const gchar *app_dir);
+const gchar *gst_preset_get_app_dir        (void);
+
 G_END_DECLS
 
 #endif /* __GST_PRESET_H__ */
diff --git a/gst/gstquark.c b/gst/gstquark.c
index 26b3f16..d7b6b6d 100644
--- a/gst/gstquark.c
+++ b/gst/gstquark.c
@@ -22,6 +22,7 @@
 
 #include "gst_private.h"
 #include "gstquark.h"
+#include "gstelementmetadata.h"
 
 /* These strings must match order and number declared in the GstQuarkId
  * enum in gstquark.h! */
@@ -51,10 +52,15 @@
   "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
   "quality", "processed", "dropped", "buffering-ranges", "GstMessageProgress",
   "code", "text", "percent", "timeout", "GstBufferPoolConfig", "caps", "size",
-  "min-buffers", "max-buffers", "prefix", "postfix", "align", "time",
+  "min-buffers", "max-buffers", "prefix", "padding", "align", "time",
   "GstQueryAllocation", "need-pool", "meta", "pool", "GstEventCaps",
   "GstEventReconfigure", "segment", "GstQueryScheduling", "pull-mode",
-  "random-access", "sequential", "allocator", "GstEventFlushStop", "options"
+  "allocator", "GstEventFlushStop", "options", "GstQueryAcceptCaps",
+  "result", "GstQueryCaps", "filter", "modes", "GstEventStreamConfig",
+  "setup-data", "stream-headers", "GstEventGap", "GstQueryDrain", "params",
+  "toc-select", "uid", "toc", GST_ELEMENT_METADATA_LONGNAME,
+  GST_ELEMENT_METADATA_KLASS, GST_ELEMENT_METADATA_DESCRIPTION,
+  GST_ELEMENT_METADATA_AUTHOR
 };
 
 GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquark.h b/gst/gstquark.h
index 06eb709..8f8968f 100644
--- a/gst/gstquark.h
+++ b/gst/gstquark.h
@@ -138,7 +138,7 @@
   GST_QUARK_MIN_BUFFERS = 109,
   GST_QUARK_MAX_BUFFERS = 110,
   GST_QUARK_PREFIX = 111,
-  GST_QUARK_POSTFIX = 112,
+  GST_QUARK_PADDING = 112,
   GST_QUARK_ALIGN = 113,
   GST_QUARK_TIME = 114,
   GST_QUARK_QUERY_ALLOCATION = 115,
@@ -150,13 +150,28 @@
   GST_QUARK_SEGMENT = 121,
   GST_QUARK_QUERY_SCHEDULING = 122,
   GST_QUARK_PULL_MODE = 123,
-  GST_QUARK_RANDOM_ACCESS = 124,
-  GST_QUARK_SEQUENTIAL = 125,
-  GST_QUARK_ALLOCATOR = 126,
-  GST_QUARK_EVENT_FLUSH_STOP = 127,
-  GST_QUARK_OPTIONS = 128,
-
-  GST_QUARK_MAX = 129
+  GST_QUARK_ALLOCATOR = 124,
+  GST_QUARK_EVENT_FLUSH_STOP = 125,
+  GST_QUARK_OPTIONS = 126,
+  GST_QUARK_QUERY_ACCEPT_CAPS = 127,
+  GST_QUARK_RESULT = 128,
+  GST_QUARK_QUERY_CAPS = 129,
+  GST_QUARK_FILTER = 130,
+  GST_QUARK_MODES = 131,
+  GST_QUARK_EVENT_STREAM_CONFIG = 132,
+  GST_QUARK_SETUP_DATA = 133,
+  GST_QUARK_STREAM_HEADERS = 134,
+  GST_QUARK_EVENT_GAP = 135,
+  GST_QUARK_QUERY_DRAIN = 136,
+  GST_QUARK_PARAMS = 137,
+  GST_QUARK_EVENT_TOC_SELECT = 138,
+  GST_QUARK_UID = 139,
+  GST_QUARK_QUERY_TOC = 140,
+  GST_QUARK_ELEMENT_METADATA_LONGNAME = 141,
+  GST_QUARK_ELEMENT_METADATA_KLASS = 142,
+  GST_QUARK_ELEMENT_METADATA_DESCRIPTION = 143,
+  GST_QUARK_ELEMENT_METADATA_AUTHOR = 144,
+  GST_QUARK_MAX = 145
 } GstQuarkId;
 
 extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquery.c b/gst/gstquery.c
index eb28019..4aaa17e 100644
--- a/gst/gstquery.c
+++ b/gst/gstquery.c
@@ -23,12 +23,10 @@
 
 /**
  * SECTION:gstquery
- * @short_description: Dynamically register new query types. Provide functions
- *                     to create queries, and to set and parse values in them.
+ * @short_description: Provide functions to create queries, and to set and parse
+ *                     values in them.
  * @see_also: #GstPad, #GstElement
  *
- * GstQuery functions are used to register new query types to the gstreamer
- * core and use them.
  * Queries can be performed on pads (gst_pad_query()) and elements
  * (gst_element_query()). Please note that some queries might need a running
  * pipeline to work.
@@ -58,9 +56,10 @@
  *  </programlisting>
  * </example>
  *
- * Last reviewed on 2006-02-14 (0.10.4)
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
+
 #include "gst_private.h"
 #include "gstinfo.h"
 #include "gstquery.h"
@@ -84,28 +83,36 @@
 
 #define GST_QUERY_STRUCTURE(q)  (((GstQueryImpl *)(q))->structure)
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static GList *_gst_queries = NULL;
-static GHashTable *_nick_to_query = NULL;
-static GHashTable *_query_type_to_nick = NULL;
-static guint32 _n_values = 1;   /* we start from 1 because 0 reserved for NONE */
 
-static GstQueryTypeDefinition standard_definitions[] = {
-  {GST_QUERY_POSITION, "position", "Current position", 0},
-  {GST_QUERY_DURATION, "duration", "Total duration", 0},
-  {GST_QUERY_LATENCY, "latency", "Latency", 0},
-  {GST_QUERY_JITTER, "jitter", "Jitter", 0},
-  {GST_QUERY_RATE, "rate", "Configured rate 1000000 = 1", 0},
-  {GST_QUERY_SEEKING, "seeking", "Seeking capabilities and parameters", 0},
-  {GST_QUERY_SEGMENT, "segment", "currently configured segment", 0},
-  {GST_QUERY_CONVERT, "convert", "Converting between formats", 0},
-  {GST_QUERY_FORMATS, "formats", "Supported formats for conversion", 0},
-  {GST_QUERY_BUFFERING, "buffering", "Buffering status", 0},
-  {GST_QUERY_CUSTOM, "custom", "Custom query", 0},
-  {GST_QUERY_URI, "uri", "URI of the source or sink", 0},
-  {GST_QUERY_ALLOCATION, "allocation", "Allocation properties", 0},
-  {GST_QUERY_SCHEDULING, "scheduling", "Scheduling properties", 0},
-  {GST_QUERY_NONE, NULL, NULL, 0}
+typedef struct
+{
+  const gint type;
+  const gchar *name;
+  GQuark quark;
+} GstQueryQuarks;
+
+static GstQueryQuarks query_quarks[] = {
+  {GST_QUERY_UNKNOWN, "unknown", 0},
+  {GST_QUERY_POSITION, "position", 0},
+  {GST_QUERY_DURATION, "duration", 0},
+  {GST_QUERY_LATENCY, "latency", 0},
+  {GST_QUERY_JITTER, "jitter", 0},
+  {GST_QUERY_RATE, "rate", 0},
+  {GST_QUERY_SEEKING, "seeking", 0},
+  {GST_QUERY_SEGMENT, "segment", 0},
+  {GST_QUERY_CONVERT, "convert", 0},
+  {GST_QUERY_FORMATS, "formats", 0},
+  {GST_QUERY_BUFFERING, "buffering", 0},
+  {GST_QUERY_CUSTOM, "custom", 0},
+  {GST_QUERY_URI, "uri", 0},
+  {GST_QUERY_ALLOCATION, "allocation", 0},
+  {GST_QUERY_SCHEDULING, "scheduling", 0},
+  {GST_QUERY_ACCEPT_CAPS, "accept-caps", 0},
+  {GST_QUERY_CAPS, "caps", 0},
+  {GST_QUERY_DRAIN, "drain", 0},
+  {GST_QUERY_TOC, "toc", 0},
+
+  {0, NULL, 0}
 };
 
 GST_DEFINE_MINI_OBJECT_TYPE (GstQuery, gst_query);
@@ -113,205 +120,73 @@
 void
 _priv_gst_query_initialize (void)
 {
-  GstQueryTypeDefinition *standards = standard_definitions;
+  gint i;
 
-  GST_CAT_INFO (GST_CAT_GST_INIT, "init queries");
+  _gst_query_type = gst_query_get_type ();
 
   GST_DEBUG_CATEGORY_INIT (gst_query_debug, "query", 0, "query system");
 
-  g_static_mutex_lock (&mutex);
-  if (_nick_to_query == NULL) {
-    _nick_to_query = g_hash_table_new (g_str_hash, g_str_equal);
-    _query_type_to_nick = g_hash_table_new (NULL, NULL);
+  for (i = 0; query_quarks[i].name; i++) {
+    query_quarks[i].quark = g_quark_from_static_string (query_quarks[i].name);
   }
-
-  while (standards->nick) {
-    standards->quark = g_quark_from_static_string (standards->nick);
-    g_hash_table_insert (_nick_to_query, (gpointer) standards->nick, standards);
-    g_hash_table_insert (_query_type_to_nick,
-        GINT_TO_POINTER (standards->value), standards);
-
-    _gst_queries = g_list_append (_gst_queries, standards);
-    standards++;
-    _n_values++;
-  }
-  g_static_mutex_unlock (&mutex);
-
-  _gst_query_type = gst_query_get_type ();
 }
 
 /**
  * gst_query_type_get_name:
- * @query: the query type
+ * @type: the query type
  *
  * Get a printable name for the given query type. Do not modify or free.
  *
  * Returns: a reference to the static name of the query.
  */
 const gchar *
-gst_query_type_get_name (GstQueryType query)
+gst_query_type_get_name (GstQueryType type)
 {
-  const GstQueryTypeDefinition *def;
+  gint i;
 
-  def = gst_query_type_get_details (query);
-  g_return_val_if_fail (def != NULL, NULL);
-
-  return def->nick;
+  for (i = 0; query_quarks[i].name; i++) {
+    if (type == query_quarks[i].type)
+      return query_quarks[i].name;
+  }
+  return "unknown";
 }
 
 /**
  * gst_query_type_to_quark:
- * @query: the query type
+ * @type: the query type
  *
  * Get the unique quark for the given query type.
  *
  * Returns: the quark associated with the query type
  */
 GQuark
-gst_query_type_to_quark (GstQueryType query)
+gst_query_type_to_quark (GstQueryType type)
 {
-  const GstQueryTypeDefinition *def;
+  gint i;
 
-  def = gst_query_type_get_details (query);
-  g_return_val_if_fail (def != NULL, 0);
-
-  return def->quark;
-}
-
-/**
- * gst_query_type_register:
- * @nick: The nick of the new query
- * @description: The description of the new query
- *
- * Create a new GstQueryType based on the nick or return an
- * already registered query with that nick
- *
- * Returns: A new GstQueryType or an already registered query
- * with the same nick.
- */
-GstQueryType
-gst_query_type_register (const gchar * nick, const gchar * description)
-{
-  GstQueryTypeDefinition *query;
-  GstQueryType lookup;
-
-  g_return_val_if_fail (nick != NULL, GST_QUERY_NONE);
-  g_return_val_if_fail (description != NULL, GST_QUERY_NONE);
-
-  lookup = gst_query_type_get_by_nick (nick);
-  if (lookup != GST_QUERY_NONE)
-    return lookup;
-
-  query = g_slice_new (GstQueryTypeDefinition);
-  query->value = (GstQueryType) _n_values;
-  query->nick = g_strdup (nick);
-  query->description = g_strdup (description);
-  query->quark = g_quark_from_static_string (query->nick);
-
-  g_static_mutex_lock (&mutex);
-  g_hash_table_insert (_nick_to_query, (gpointer) query->nick, query);
-  g_hash_table_insert (_query_type_to_nick, GINT_TO_POINTER (query->value),
-      query);
-  _gst_queries = g_list_append (_gst_queries, query);
-  _n_values++;
-  g_static_mutex_unlock (&mutex);
-
-  return query->value;
-}
-
-/**
- * gst_query_type_get_by_nick:
- * @nick: The nick of the query
- *
- * Get the query type registered with @nick.
- *
- * Returns: The query registered with @nick or #GST_QUERY_NONE
- * if the query was not registered.
- */
-GstQueryType
-gst_query_type_get_by_nick (const gchar * nick)
-{
-  GstQueryTypeDefinition *query;
-
-  g_return_val_if_fail (nick != NULL, GST_QUERY_NONE);
-
-  g_static_mutex_lock (&mutex);
-  query = g_hash_table_lookup (_nick_to_query, nick);
-  g_static_mutex_unlock (&mutex);
-
-  if (query != NULL)
-    return query->value;
-  else
-    return GST_QUERY_NONE;
-}
-
-/**
- * gst_query_types_contains:
- * @types: The query array to search
- * @type: the #GstQueryType to find
- *
- * See if the given #GstQueryType is inside the @types query types array.
- *
- * Returns: TRUE if the type is found inside the array
- */
-gboolean
-gst_query_types_contains (const GstQueryType * types, GstQueryType type)
-{
-  if (!types)
-    return FALSE;
-
-  while (*types) {
-    if (*types == type)
-      return TRUE;
-
-    types++;
+  for (i = 0; query_quarks[i].name; i++) {
+    if (type == query_quarks[i].type)
+      return query_quarks[i].quark;
   }
-  return FALSE;
+  return 0;
 }
 
-
 /**
- * gst_query_type_get_details:
+ * gst_query_type_get_flags:
  * @type: a #GstQueryType
  *
- * Get details about the given #GstQueryType.
+ * Gets the #GstQueryTypeFlags associated with @type.
  *
- * Returns: The #GstQueryTypeDefinition for @type or NULL on failure.
+ * Returns: a #GstQueryTypeFlags.
  */
-const GstQueryTypeDefinition *
-gst_query_type_get_details (GstQueryType type)
+GstQueryTypeFlags
+gst_query_type_get_flags (GstQueryType type)
 {
-  const GstQueryTypeDefinition *result;
+  GstQueryTypeFlags ret;
 
-  g_static_mutex_lock (&mutex);
-  result = g_hash_table_lookup (_query_type_to_nick, GINT_TO_POINTER (type));
-  g_static_mutex_unlock (&mutex);
+  ret = type & ((1 << GST_QUERY_NUM_SHIFT) - 1);
 
-  return result;
-}
-
-/**
- * gst_query_type_iterate_definitions:
- *
- * Get a #GstIterator of all the registered query types. The definitions
- * iterated over are read only.
- *
- * Free-function: gst_iterator_free
- *
- * Returns: (transfer full): a #GstIterator of #GstQueryTypeDefinition.
- */
-GstIterator *
-gst_query_type_iterate_definitions (void)
-{
-  GstIterator *result;
-
-  g_static_mutex_lock (&mutex);
-  /* FIXME: register a boxed type for GstQueryTypeDefinition */
-  result = gst_iterator_new_list (G_TYPE_POINTER,
-      g_static_mutex_get_mutex (&mutex), &_n_values, &_gst_queries, NULL, NULL);
-  g_static_mutex_unlock (&mutex);
-
-  return result;
+  return ret;
 }
 
 static void
@@ -330,41 +205,30 @@
   g_slice_free1 (GST_MINI_OBJECT_SIZE (query), query);
 }
 
-static GstQuery *gst_query_new (GstQueryType type, GstStructure * structure);
-
 static GstQuery *
 _gst_query_copy (GstQuery * query)
 {
   GstQuery *copy;
+  GstStructure *s;
 
-  copy = gst_query_new (query->type, GST_QUERY_STRUCTURE (query));
+  s = GST_QUERY_STRUCTURE (query);
+  if (s) {
+    s = gst_structure_copy (s);
+  }
+  copy = gst_query_new_custom (query->type, s);
 
   return copy;
 }
 
-static GstQuery *
-gst_query_new (GstQueryType type, GstStructure * structure)
+static void
+gst_query_init (GstQueryImpl * query, gsize size, GstQueryType type)
 {
-  GstQueryImpl *query;
-
-  query = g_slice_new0 (GstQueryImpl);
-
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (query),
-      _gst_query_type, sizeof (GstQueryImpl));
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (query), _gst_query_type, size);
 
   query->query.mini_object.copy = (GstMiniObjectCopyFunction) _gst_query_copy;
   query->query.mini_object.free = (GstMiniObjectFreeFunction) _gst_query_free;
 
-  GST_DEBUG ("creating new query %p %d", query, type);
-
   GST_QUERY_TYPE (query) = type;
-  query->structure = structure;
-
-  if (structure)
-    gst_structure_set_parent_refcount (structure,
-        &query->query.mini_object.refcount);
-
-  return GST_QUERY_CAST (query);
 }
 
 /**
@@ -385,11 +249,11 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_POSITION),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_POSITION),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (CURRENT), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_POSITION, structure);
+  query = gst_query_new_custom (GST_QUERY_POSITION, structure);
 
   return query;
 }
@@ -464,11 +328,11 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_DURATION),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_DURATION),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (DURATION), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_DURATION, structure);
+  query = gst_query_new_custom (GST_QUERY_DURATION, structure);
 
   return query;
 }
@@ -543,12 +407,12 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_LATENCY),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_LATENCY),
       GST_QUARK (LIVE), G_TYPE_BOOLEAN, FALSE,
       GST_QUARK (MIN_LATENCY), G_TYPE_UINT64, G_GUINT64_CONSTANT (0),
       GST_QUARK (MAX_LATENCY), G_TYPE_UINT64, G_GUINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_LATENCY, structure);
+  query = gst_query_new_custom (GST_QUERY_LATENCY, structure);
 
   return query;
 }
@@ -557,8 +421,8 @@
  * gst_query_set_latency:
  * @query: a #GstQuery
  * @live: if there is a live element upstream
- * @min_latency: the minimal latency of the live element
- * @max_latency: the maximal latency of the live element
+ * @min_latency: the minimal latency of the upstream elements
+ * @max_latency: the maximal latency of the upstream elements
  *
  * Answer a latency query by setting the requested values in the given format.
  *
@@ -632,13 +496,13 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_CONVERT),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_CONVERT),
       GST_QUARK (SRC_FORMAT), GST_TYPE_FORMAT, src_format,
       GST_QUARK (SRC_VALUE), G_TYPE_INT64, value,
       GST_QUARK (DEST_FORMAT), GST_TYPE_FORMAT, dest_format,
       GST_QUARK (DEST_VALUE), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_CONVERT, structure);
+  query = gst_query_new_custom (GST_QUERY_CONVERT, structure);
 
   return query;
 }
@@ -726,13 +590,13 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_SEGMENT),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_SEGMENT),
       GST_QUARK (RATE), G_TYPE_DOUBLE, (gdouble) 0.0,
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (START_VALUE), G_TYPE_INT64, G_GINT64_CONSTANT (-1),
       GST_QUARK (STOP_VALUE), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_SEGMENT, structure);
+  query = gst_query_new_custom (GST_QUERY_SEGMENT, structure);
 
   return query;
 }
@@ -826,10 +690,31 @@
 GstQuery *
 gst_query_new_custom (GstQueryType type, GstStructure * structure)
 {
-  g_return_val_if_fail (gst_query_type_get_details (type) != NULL, NULL);
-  g_return_val_if_fail (structure != NULL, NULL);
+  GstQueryImpl *query;
 
-  return gst_query_new (type, structure);
+  query = g_slice_new0 (GstQueryImpl);
+
+  GST_DEBUG ("creating new query %p %s", query, gst_query_type_get_name (type));
+
+  if (structure) {
+    /* structure must not have a parent */
+    if (!gst_structure_set_parent_refcount (structure,
+            &query->query.mini_object.refcount))
+      goto had_parent;
+  }
+  gst_query_init (query, sizeof (GstQueryImpl), type);
+
+  GST_QUERY_STRUCTURE (query) = structure;
+
+  return GST_QUERY_CAST (query);
+
+  /* ERRORS */
+had_parent:
+  {
+    g_slice_free1 (GST_MINI_OBJECT_SIZE (query), query);
+    g_warning ("structure is already owned by another object");
+    return NULL;
+  }
 }
 
 /**
@@ -854,7 +739,8 @@
  * gst_query_writable_structure:
  * @query: a #GstQuery
  *
- * Get the structure of a query.
+ * Get the structure of a query. This method should be called with a writable
+ * @query so that the returned structure is guranteed to be writable.
  *
  * Returns: (transfer none): the #GstStructure of the query. The structure is
  *     still owned by the query and will therefore be freed when the query
@@ -886,13 +772,13 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_SEEKING),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_SEEKING),
       GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
       GST_QUARK (SEEKABLE), G_TYPE_BOOLEAN, FALSE,
       GST_QUARK (SEGMENT_START), G_TYPE_INT64, G_GINT64_CONSTANT (-1),
       GST_QUARK (SEGMENT_END), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_SEEKING, structure);
+  query = gst_query_new_custom (GST_QUERY_SEEKING, structure);
 
   return query;
 }
@@ -961,6 +847,31 @@
             GST_QUARK (SEGMENT_END)));
 }
 
+static GArray *
+ensure_array (GstStructure * s, GQuark quark, gsize element_size,
+    GDestroyNotify clear_func)
+{
+  GArray *array;
+  const GValue *value;
+
+  value = gst_structure_id_get_value (s, quark);
+  if (value) {
+    array = (GArray *) g_value_get_boxed (value);
+  } else {
+    GValue new_array_val = { 0, };
+
+    array = g_array_new (FALSE, TRUE, element_size);
+    if (clear_func)
+      g_array_set_clear_func (array, clear_func);
+
+    g_value_init (&new_array_val, G_TYPE_ARRAY);
+    g_value_take_boxed (&new_array_val, array);
+
+    gst_structure_id_take_value (s, quark, &new_array_val);
+  }
+  return array;
+}
+
 /**
  * gst_query_new_formats:
  *
@@ -979,8 +890,8 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_empty_new (GST_QUARK (QUERY_FORMATS));
-  query = gst_query_new (GST_QUERY_FORMATS, structure);
+  structure = gst_structure_new_id_empty (GST_QUARK (QUERY_FORMATS));
+  query = gst_query_new_custom (GST_QUERY_FORMATS, structure);
 
   return query;
 }
@@ -1067,7 +978,7 @@
 /**
  * gst_query_parse_n_formats:
  * @query: a #GstQuery
- * @n_formats: (out): the number of formats in this query.
+ * @n_formats: (out) (allow-none): the number of formats in this query.
  *
  * Parse the number of formats in the formats @query.
  *
@@ -1096,7 +1007,7 @@
  * gst_query_parse_nth_format:
  * @query: a #GstQuery
  * @nth: (out): the nth format to retrieve.
- * @format: (out): a pointer to store the nth format
+ * @format: (out) (allow-none): a pointer to store the nth format
  *
  * Parse the format query and retrieve the @nth format from it into
  * @format. If the list contains less elements than @nth, @format will be
@@ -1127,7 +1038,7 @@
 }
 
 /**
- * gst_query_new_buffering
+ * gst_query_new_buffering:
  * @format: the default #GstFormat for the new query
  *
  * Constructs a new query object for querying the buffering status of
@@ -1147,7 +1058,7 @@
 
   /* by default, we configure the answer as no buffering with a 100% buffering
    * progress */
-  structure = gst_structure_id_new (GST_QUARK (QUERY_BUFFERING),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_BUFFERING),
       GST_QUARK (BUSY), G_TYPE_BOOLEAN, FALSE,
       GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, 100,
       GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, GST_BUFFERING_STREAM,
@@ -1159,13 +1070,13 @@
       GST_QUARK (START_VALUE), G_TYPE_INT64, G_GINT64_CONSTANT (-1),
       GST_QUARK (STOP_VALUE), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
 
-  query = gst_query_new (GST_QUERY_BUFFERING, structure);
+  query = gst_query_new_custom (GST_QUERY_BUFFERING, structure);
 
   return query;
 }
 
 /**
- * gst_query_set_buffering_percent
+ * gst_query_set_buffering_percent:
  * @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
  * @busy: if buffering is busy
  * @percent: a buffering percent
@@ -1191,7 +1102,7 @@
 }
 
 /**
- * gst_query_parse_buffering_percent
+ * gst_query_parse_buffering_percent:
  * @query: A valid #GstQuery of type GST_QUERY_BUFFERING.
  * @busy: (out) (allow-none): if buffering is busy, or NULL
  * @percent: (out) (allow-none): a buffering percent, or NULL
@@ -1285,7 +1196,6 @@
             GST_QUARK (BUFFERING_LEFT)));
 }
 
-
 /**
  * gst_query_set_buffering_range:
  * @query: a #GstQuery
@@ -1356,8 +1266,15 @@
             GST_QUARK (ESTIMATED_TOTAL)));
 }
 
+/* GstQueryBufferingRange: internal struct for GArray */
+typedef struct
+{
+  gint64 start;
+  gint64 stop;
+} GstQueryBufferingRange;
+
 /**
- * gst_query_add_buffering_range
+ * gst_query_add_buffering_range:
  * @query: a GST_QUERY_BUFFERING type query #GstQuery
  * @start: start position of the range
  * @stop: stop position of the range
@@ -1372,11 +1289,9 @@
 gboolean
 gst_query_add_buffering_range (GstQuery * query, gint64 start, gint64 stop)
 {
-  GValueArray *array;
-  GValue *last_array_value;
-  const GValue *value;
-  GValue range_value = { 0 };
+  GstQueryBufferingRange range;
   GstStructure *structure;
+  GArray *array;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING, FALSE);
   g_return_val_if_fail (gst_query_is_writable (query), FALSE);
@@ -1385,36 +1300,27 @@
     return FALSE;
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (BUFFERING_RANGES));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-    last_array_value = g_value_array_get_nth (array, array->n_values - 1);
-    if (G_UNLIKELY (start <= gst_value_get_int64_range_min (last_array_value)))
+  array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
+      sizeof (GstQueryBufferingRange), NULL);
+
+  if (array->len > 1) {
+    GstQueryBufferingRange *last;
+
+    last = &g_array_index (array, GstQueryBufferingRange, array->len - 1);
+
+    if (G_UNLIKELY (start <= last->start))
       return FALSE;
-  } else {
-    GValue new_array_val = { 0, };
-
-    array = g_value_array_new (0);
-
-    g_value_init (&new_array_val, G_TYPE_VALUE_ARRAY);
-    g_value_take_boxed (&new_array_val, array);
-
-    /* set the value array only once, so we then modify (append to) the
-     * existing value array owned by the GstStructure / the field's GValue */
-    gst_structure_id_take_value (structure, GST_QUARK (BUFFERING_RANGES),
-        &new_array_val);
   }
 
-  g_value_init (&range_value, GST_TYPE_INT64_RANGE);
-  gst_value_set_int64_range (&range_value, start, stop);
-  g_value_array_append (array, &range_value);
-  /* skip the g_value_unset(&range_value) here, we know it's not needed */
+  range.start = start;
+  range.stop = stop;
+  g_array_append_val (array, range);
 
   return TRUE;
 }
 
 /**
- * gst_query_get_n_buffering_ranges
+ * gst_query_get_n_buffering_ranges:
  * @query: a GST_QUERY_BUFFERING type query #GstQuery
  *
  * Retrieve the number of values currently stored in the
@@ -1427,25 +1333,21 @@
 guint
 gst_query_get_n_buffering_ranges (GstQuery * query)
 {
-  GValueArray *array;
-  const GValue *value;
-  guint size = 0;
   GstStructure *structure;
+  GArray *array;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (BUFFERING_RANGES));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-    size = array->n_values;
-  }
-  return size;
+  array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
+      sizeof (GstQueryBufferingRange), NULL);
+
+  return array->len;
 }
 
 
 /**
- * gst_query_parse_nth_buffering_range
+ * gst_query_parse_nth_buffering_range:
  * @query: a GST_QUERY_BUFFERING type query #GstQuery
  * @index: position in the buffered-ranges array to read
  * @start: (out) (allow-none): the start position to set, or NULL
@@ -1462,27 +1364,26 @@
 gst_query_parse_nth_buffering_range (GstQuery * query, guint index,
     gint64 * start, gint64 * stop)
 {
-  const GValue *value;
-  GValueArray *ranges;
-  GValue *range_value;
-  gboolean ret = FALSE;
+  GstQueryBufferingRange *range;
   GstStructure *structure;
+  GArray *array;
 
-  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING, ret);
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERING, FALSE);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (BUFFERING_RANGES));
-  ranges = (GValueArray *) g_value_get_boxed (value);
-  range_value = g_value_array_get_nth (ranges, index);
-  if (range_value) {
-    if (start)
-      *start = gst_value_get_int64_range_min (range_value);
-    if (stop)
-      *stop = gst_value_get_int64_range_max (range_value);
-    ret = TRUE;
-  }
 
-  return ret;
+  array = ensure_array (structure, GST_QUARK (BUFFERING_RANGES),
+      sizeof (GstQueryBufferingRange), NULL);
+  g_return_val_if_fail (index < array->len, FALSE);
+
+  range = &g_array_index (array, GstQueryBufferingRange, index);
+
+  if (start)
+    *start = range->start;
+  if (stop)
+    *stop = range->stop;
+
+  return TRUE;
 }
 
 
@@ -1505,10 +1406,10 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_URI),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_URI),
       GST_QUARK (URI), G_TYPE_STRING, NULL, NULL);
 
-  query = gst_query_new (GST_QUERY_URI, structure);
+  query = gst_query_new_custom (GST_QUERY_URI, structure);
 
   return query;
 }
@@ -1561,7 +1462,7 @@
 }
 
 /**
- * gst_query_new_allocation
+ * gst_query_new_allocation:
  * @caps: the negotiated caps
  * @need_pool: return a pool
  *
@@ -1577,21 +1478,25 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_ALLOCATION),
+  structure = gst_structure_new_id (GST_QUARK (QUERY_ALLOCATION),
       GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
-      GST_QUARK (NEED_POOL), G_TYPE_BOOLEAN, need_pool,
-      GST_QUARK (SIZE), G_TYPE_UINT, 0,
-      GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, 0,
-      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, 0,
-      GST_QUARK (PREFIX), G_TYPE_UINT, 0,
-      GST_QUARK (ALIGN), G_TYPE_UINT, 0,
-      GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, NULL, NULL);
+      GST_QUARK (NEED_POOL), G_TYPE_BOOLEAN, need_pool, NULL);
 
-  query = gst_query_new (GST_QUERY_ALLOCATION, structure);
+  query = gst_query_new_custom (GST_QUERY_ALLOCATION, structure);
 
   return query;
 }
 
+/**
+ * gst_query_parse_allocation:
+ * @query: a #GstQuery
+ * @caps: (out) (transfer none) (allow-none): The #GstCaps
+ * @need_pool: (out) (allow-none): Whether a #GstBufferPool is needed
+ *
+ * Parse an allocation query, writing the requested caps in @caps and
+ * whether a pool is needed in @need_pool, if the respective parameters
+ * are non-NULL.
+ */
 void
 gst_query_parse_allocation (GstQuery * query, GstCaps ** caps,
     gboolean * need_pool)
@@ -1601,114 +1506,187 @@
   g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
 
   structure = GST_QUERY_STRUCTURE (query);
+  if (caps) {
+    *caps = g_value_get_boxed (gst_structure_id_get_value (structure,
+            GST_QUARK (CAPS)));
+  }
   gst_structure_id_get (structure,
-      GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
       GST_QUARK (NEED_POOL), G_TYPE_BOOLEAN, need_pool, NULL);
 }
 
+typedef struct
+{
+  GstBufferPool *pool;
+  guint size;
+  guint min_buffers;
+  guint max_buffers;
+} AllocationPool;
+
+static void
+allocation_pool_free (AllocationPool * ap)
+{
+  if (ap->pool)
+    gst_object_unref (ap->pool);
+}
+
 /**
- * gst_query_set_allocation_params
+ * gst_query_add_allocation_pool:
  * @query: A valid #GstQuery of type GST_QUERY_ALLOCATION.
+ * @pool: the #GstBufferPool
  * @size: the size
  * @min_buffers: the min buffers
  * @max_buffers: the max buffers
- * @prefix: the prefix
- * @alignment: the alignment
- * @pool: the #GstBufferPool
  *
- * Set the allocation parameters in @query.
+ * Set the pool parameters in @query.
  */
 void
-gst_query_set_allocation_params (GstQuery * query, guint size,
-    guint min_buffers, guint max_buffers, guint prefix,
-    guint alignment, GstBufferPool * pool)
+gst_query_add_allocation_pool (GstQuery * query, GstBufferPool * pool,
+    guint size, guint min_buffers, guint max_buffers)
 {
+  GArray *array;
   GstStructure *structure;
+  AllocationPool ap;
 
   g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
   g_return_if_fail (gst_query_is_writable (query));
-  g_return_if_fail (((alignment + 1) & alignment) == 0);
-  g_return_if_fail (size != 0 || pool == NULL);
+  g_return_if_fail (size != 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  gst_structure_id_set (structure,
-      GST_QUARK (SIZE), G_TYPE_UINT, size,
-      GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
-      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
-      GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
-      GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
-      GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
+  array = ensure_array (structure, GST_QUARK (POOL),
+      sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
+
+  if ((ap.pool = pool))
+    gst_object_ref (pool);
+  ap.size = size;
+  ap.min_buffers = min_buffers;
+  ap.max_buffers = max_buffers;
+
+  g_array_append_val (array, ap);
+}
+
+
+/**
+ * gst_query_get_n_allocation_pools:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ *
+ * Retrieve the number of values currently stored in the
+ * pool array of the query's structure.
+ *
+ * Returns: the pool array size as a #guint.
+ */
+guint
+gst_query_get_n_allocation_pools (GstQuery * query)
+{
+  GArray *array;
+  GstStructure *structure;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (POOL),
+      sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
+
+  return array->len;
 }
 
 /**
- * gst_query_parse_allocation_params
+ * gst_query_parse_nth_allocation_pool:
  * @query: A valid #GstQuery of type GST_QUERY_ALLOCATION.
- * @size: the size
- * @min_buffers: the min buffers
- * @max_buffers: the max buffers
- * @prefix: the prefix
- * @alignment: the alignment
- * @pool: the #GstBufferPool
+ * @index: index to parse
+ * @pool: (out) (allow-none) (transfer none): the #GstBufferPool
+ * @size: (out) (allow-none): the size
+ * @min_buffers: (out) (allow-none): the min buffers
+ * @max_buffers: (out) (allow-none): the max buffers
  *
- * Get the allocation parameters in @query.
+ * Get the pool parameters in @query.
  */
 void
-gst_query_parse_allocation_params (GstQuery * query, guint * size,
-    guint * min_buffers, guint * max_buffers, guint * prefix,
-    guint * alignment, GstBufferPool ** pool)
+gst_query_parse_nth_allocation_pool (GstQuery * query, guint index,
+    GstBufferPool ** pool, guint * size, guint * min_buffers,
+    guint * max_buffers)
 {
+  GArray *array;
   GstStructure *structure;
+  AllocationPool *ap;
 
   g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
 
   structure = GST_QUERY_STRUCTURE (query);
-  gst_structure_id_get (structure,
-      GST_QUARK (SIZE), G_TYPE_UINT, size,
-      GST_QUARK (MIN_BUFFERS), G_TYPE_UINT, min_buffers,
-      GST_QUARK (MAX_BUFFERS), G_TYPE_UINT, max_buffers,
-      GST_QUARK (PREFIX), G_TYPE_UINT, prefix,
-      GST_QUARK (ALIGN), G_TYPE_UINT, alignment,
-      GST_QUARK (POOL), GST_TYPE_BUFFER_POOL, pool, NULL);
+  array = ensure_array (structure, GST_QUARK (POOL),
+      sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
+  g_return_if_fail (index < array->len);
+
+  ap = &g_array_index (array, AllocationPool, index);
+
+  if (pool)
+    if ((*pool = ap->pool))
+      gst_object_ref (*pool);
+  if (size)
+    *size = ap->size;
+  if (min_buffers)
+    *min_buffers = ap->min_buffers;
+  if (max_buffers)
+    *max_buffers = ap->max_buffers;
 }
 
 /**
- * gst_query_add_allocation_meta
+ * gst_query_set_nth_allocation_pool:
+ * @index: index to modify
+ * @query: A valid #GstQuery of type GST_QUERY_ALLOCATION.
+ * @pool: the #GstBufferPool
+ * @size: the size
+ * @min_buffers: the min buffers
+ * @max_buffers: the max buffers
+ *
+ * Set the pool parameters in @query.
+ */
+void
+gst_query_set_nth_allocation_pool (GstQuery * query, guint index,
+    GstBufferPool * pool, guint size, guint min_buffers, guint max_buffers)
+{
+  GArray *array;
+  GstStructure *structure;
+  AllocationPool *oldap, ap;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (POOL),
+      sizeof (AllocationPool), (GDestroyNotify) allocation_pool_free);
+  g_return_if_fail (index < array->len);
+
+  oldap = &g_array_index (array, AllocationPool, index);
+  allocation_pool_free (oldap);
+
+  if ((ap.pool = pool))
+    gst_object_ref (pool);
+  ap.size = size;
+  ap.min_buffers = min_buffers;
+  ap.max_buffers = max_buffers;
+  g_array_index (array, AllocationPool, index) = ap;
+}
+
+/**
+ * gst_query_add_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @api: the metadata API
  *
  * Add @api as aone of the supported metadata API to @query.
  */
 void
-gst_query_add_allocation_meta (GstQuery * query, const gchar * api)
+gst_query_add_allocation_meta (GstQuery * query, GType api)
 {
-  GValueArray *array;
-  const GValue *value;
-  GValue api_value = { 0 };
+  GArray *array;
   GstStructure *structure;
 
   g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
-  g_return_if_fail (api != NULL);
+  g_return_if_fail (api != 0);
   g_return_if_fail (gst_query_is_writable (query));
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (META));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-  } else {
-    GValue new_array_val = { 0, };
+  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
 
-    array = g_value_array_new (0);
-
-    g_value_init (&new_array_val, G_TYPE_VALUE_ARRAY);
-    g_value_take_boxed (&new_array_val, array);
-
-    gst_structure_id_take_value (structure, GST_QUARK (META), &new_array_val);
-  }
-
-  g_value_init (&api_value, G_TYPE_STRING);
-  g_value_set_string (&api_value, api);
-  g_value_array_append (array, &api_value);
-  g_value_unset (&api_value);
+  g_array_append_val (array, api);
 }
 
 /**
@@ -1723,58 +1701,68 @@
 guint
 gst_query_get_n_allocation_metas (GstQuery * query)
 {
-  GValueArray *array;
-  const GValue *value;
-  guint size = 0;
+  GArray *array;
   GstStructure *structure;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (META));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-    size = array->n_values;
-  }
-  return size;
+  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+
+  return array->len;
 }
 
 /**
- * gst_query_parse_nth_allocation_meta
+ * gst_query_parse_nth_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the metadata API array to read
  *
  * Parse an available query and get the metadata API
  * at @index of the metadata API array.
  *
- * Returns: a #gchar of the metadata API at @index.
+ * Returns: a #GType of the metadata API at @index.
  */
-const gchar *
+GType
 gst_query_parse_nth_allocation_meta (GstQuery * query, guint index)
 {
-  const GValue *value;
-  const gchar *ret = NULL;
+  GArray *array;
   GstStructure *structure;
 
-  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, NULL);
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (META));
-  if (value) {
-    GValueArray *meta;
-    GValue *api_value;
+  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
 
-    meta = (GValueArray *) g_value_get_boxed (value);
-    api_value = g_value_array_get_nth (meta, index);
+  g_return_val_if_fail (index < array->len, 0);
 
-    if (api_value)
-      ret = g_value_get_string (api_value);
-  }
-  return ret;
+  return g_array_index (array, GType, index);
 }
 
 /**
- * gst_query_has_allocation_meta
+ * gst_query_remove_nth_allocation_meta:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ * @index: position in the metadata API array to remove
+ *
+ * Remove the metadata API at @index of the metadata API array.
+ */
+void
+gst_query_remove_nth_allocation_meta (GstQuery * query, guint index)
+{
+  GArray *array;
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
+  g_return_if_fail (gst_query_is_writable (query));
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  g_return_if_fail (index < array->len);
+
+  g_array_remove_index (array, index);
+}
+
+/**
+ * gst_query_has_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @api: the metadata API
  *
@@ -1783,77 +1771,79 @@
  * Returns: TRUE when @api is in the list of metadata.
  */
 gboolean
-gst_query_has_allocation_meta (GstQuery * query, const gchar * api)
+gst_query_has_allocation_meta (GstQuery * query, GType api)
 {
-  const GValue *value;
+  GArray *array;
   GstStructure *structure;
+  guint i, len;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, FALSE);
-  g_return_val_if_fail (api != NULL, FALSE);
+  g_return_val_if_fail (api != 0, FALSE);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (META));
-  if (value) {
-    GValueArray *array;
-    GValue *api_value;
-    guint i;
+  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
 
-    array = (GValueArray *) g_value_get_boxed (value);
-    for (i = 0; i < array->n_values; i++) {
-      api_value = g_value_array_get_nth (array, i);
-      if (!strcmp (api, g_value_get_string (api_value)))
-        return TRUE;
-    }
+  len = array->len;
+  for (i = 0; i < len; i++) {
+    if (g_array_index (array, GType, i) == api)
+      return TRUE;
   }
   return FALSE;
 }
 
-/**
- * gst_query_add_allocation_memory
- * @query: a GST_QUERY_ALLOCATION type query #GstQuery
- * @alloc: the memory allocator
- *
- * Add @alloc as a supported memory allocator.
- */
-void
-gst_query_add_allocation_memory (GstQuery * query, const gchar * alloc)
+typedef struct
 {
-  GValueArray *array;
-  const GValue *value;
-  GValue alloc_value = { 0 };
-  GstStructure *structure;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+} AllocationParam;
 
-  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
-  g_return_if_fail (gst_query_is_writable (query));
-
-  structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (ALLOCATOR));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-  } else {
-    GValue new_array_val = { 0, };
-
-    array = g_value_array_new (0);
-
-    g_value_init (&new_array_val, G_TYPE_VALUE_ARRAY);
-    g_value_take_boxed (&new_array_val, array);
-
-    gst_structure_id_take_value (structure, GST_QUARK (ALLOCATOR),
-        &new_array_val);
-  }
-
-  g_value_init (&alloc_value, G_TYPE_STRING);
-  g_value_set_string (&alloc_value, alloc);
-  g_value_array_append (array, &alloc_value);
-  g_value_unset (&alloc_value);
+static void
+allocation_param_free (AllocationParam * ap)
+{
+  if (ap->allocator)
+    gst_allocator_unref (ap->allocator);
 }
 
 /**
- * gst_query_get_n_allocation_memories:
+ * gst_query_add_allocation_param:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ * @allocator: the memory allocator
+ * @params: a #GstAllocationParams
+ *
+ * Add @allocator and its @params as a supported memory allocator.
+ */
+void
+gst_query_add_allocation_param (GstQuery * query, GstAllocator * allocator,
+    const GstAllocationParams * params)
+{
+  GArray *array;
+  GstStructure *structure;
+  AllocationParam ap;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
+  g_return_if_fail (gst_query_is_writable (query));
+  g_return_if_fail (allocator != NULL || params != NULL);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (ALLOCATOR),
+      sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
+
+  if ((ap.allocator = allocator))
+    gst_allocator_ref (allocator);
+  if (params)
+    ap.params = *params;
+  else
+    gst_allocation_params_init (&ap.params);
+
+  g_array_append_val (array, ap);
+}
+
+/**
+ * gst_query_get_n_allocation_params:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  *
  * Retrieve the number of values currently stored in the
- * allocator array of the query's structure.
+ * allocator params array of the query's structure.
  *
  * If no memory allocator is specified, the downstream element can handle
  * the default memory allocator.
@@ -1861,60 +1851,94 @@
  * Returns: the allocator array size as a #guint.
  */
 guint
-gst_query_get_n_allocation_memories (GstQuery * query)
+gst_query_get_n_allocation_params (GstQuery * query)
 {
-  GValueArray *array;
-  const GValue *value;
-  guint size = 0;
+  GArray *array;
   GstStructure *structure;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (ALLOCATOR));
-  if (value) {
-    array = (GValueArray *) g_value_get_boxed (value);
-    size = array->n_values;
-  }
-  return size;
+  array = ensure_array (structure, GST_QUARK (ALLOCATOR),
+      sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
+
+  return array->len;
 }
 
 /**
- * gst_query_parse_nth_allocation_memory
+ * gst_query_parse_nth_allocation_param:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the allocator array to read
+ * @allocator: (transfer none): variable to hold the result
+ * @params: parameters for the allocator
  *
- * Parse an available query and get the alloctor
+ * Parse an available query and get the alloctor and its params
  * at @index of the allocator array.
- *
- * Returns: the name of the allocator at @index.
  */
-const gchar *
-gst_query_parse_nth_allocation_memory (GstQuery * query, guint index)
+void
+gst_query_parse_nth_allocation_param (GstQuery * query, guint index,
+    GstAllocator ** allocator, GstAllocationParams * params)
 {
-  const GValue *value;
-  const gchar *ret = NULL;
+  GArray *array;
   GstStructure *structure;
+  AllocationParam *ap;
 
-  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, NULL);
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
 
   structure = GST_QUERY_STRUCTURE (query);
-  value = gst_structure_id_get_value (structure, GST_QUARK (ALLOCATOR));
-  if (value) {
-    GValueArray *memory;
-    GValue *alloc_value;
+  array = ensure_array (structure, GST_QUARK (ALLOCATOR),
+      sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
+  g_return_if_fail (index < array->len);
 
-    memory = (GValueArray *) g_value_get_boxed (value);
-    alloc_value = g_value_array_get_nth (memory, index);
+  ap = &g_array_index (array, AllocationParam, index);
 
-    if (alloc_value)
-      ret = g_value_get_string (alloc_value);
-  }
-  return ret;
+  if (allocator)
+    if ((*allocator = ap->allocator))
+      gst_allocator_ref (*allocator);
+  if (params)
+    *params = ap->params;
 }
 
 /**
- * gst_query_new_scheduling
+ * gst_query_set_nth_allocation_param:
+ * @query: a GST_QUERY_ALLOCATION type query #GstQuery
+ * @index: position in the allocator array to set
+ * @allocator: (transfer full): new allocator to set
+ * @params: parameters for the allocator
+ *
+ * Parse an available query and get the alloctor and its params
+ * at @index of the allocator array.
+ */
+void
+gst_query_set_nth_allocation_param (GstQuery * query, guint index,
+    GstAllocator * allocator, const GstAllocationParams * params)
+{
+  GArray *array;
+  GstStructure *structure;
+  AllocationParam *old, ap;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array = ensure_array (structure, GST_QUARK (ALLOCATOR),
+      sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
+  g_return_if_fail (index < array->len);
+
+  old = &g_array_index (array, AllocationParam, index);
+  allocation_param_free (old);
+
+  if ((ap.allocator = allocator))
+    gst_allocator_ref (allocator);
+  if (params)
+    ap.params = *params;
+  else
+    gst_allocation_params_init (&ap.params);
+
+  g_array_index (array, AllocationParam, index) = ap;
+}
+
+/**
+ * gst_query_new_scheduling:
  *
  * Constructs a new query object for querying the scheduling properties.
  *
@@ -1928,33 +1952,28 @@
   GstQuery *query;
   GstStructure *structure;
 
-  structure = gst_structure_id_new (GST_QUARK (QUERY_SCHEDULING),
-      GST_QUARK (PULL_MODE), G_TYPE_BOOLEAN, FALSE,
-      GST_QUARK (RANDOM_ACCESS), G_TYPE_BOOLEAN, FALSE,
-      GST_QUARK (SEQUENTIAL), G_TYPE_BOOLEAN, TRUE,
+  structure = gst_structure_new_id (GST_QUARK (QUERY_SCHEDULING),
+      GST_QUARK (FLAGS), GST_TYPE_SCHEDULING_FLAGS, 0,
       GST_QUARK (MINSIZE), G_TYPE_INT, 1,
       GST_QUARK (MAXSIZE), G_TYPE_INT, -1,
-      GST_QUARK (ALIGN), G_TYPE_INT, 1, NULL);
-  query = gst_query_new (GST_QUERY_SCHEDULING, structure);
+      GST_QUARK (ALIGN), G_TYPE_INT, 0, NULL);
+  query = gst_query_new_custom (GST_QUERY_SCHEDULING, structure);
 
   return query;
 }
 
 /**
- * gst_query_set_scheduling
+ * gst_query_set_scheduling:
  * @query: A valid #GstQuery of type GST_QUERY_SCHEDULING.
- * @pull_mode: if pull mode scheduling is supported
- * @random_access: if random access is possible
- * @sequential: if sequential access is recommended
+ * @flags: #GstSchedulingFlags
  * @minsize: the suggested minimum size of pull requests
- * @maxsize: the suggested maximum size of pull requests:
+ * @maxsize: the suggested maximum size of pull requests
  * @align: the suggested alignment of pull requests
  *
  * Set the scheduling properties.
  */
 void
-gst_query_set_scheduling (GstQuery * query, gboolean pull_mode,
-    gboolean random_access, gboolean sequential,
+gst_query_set_scheduling (GstQuery * query, GstSchedulingFlags flags,
     gint minsize, gint maxsize, gint align)
 {
   GstStructure *structure;
@@ -1964,29 +1983,24 @@
 
   structure = GST_QUERY_STRUCTURE (query);
   gst_structure_id_set (structure,
-      GST_QUARK (PULL_MODE), G_TYPE_BOOLEAN, pull_mode,
-      GST_QUARK (RANDOM_ACCESS), G_TYPE_BOOLEAN, random_access,
-      GST_QUARK (SEQUENTIAL), G_TYPE_BOOLEAN, sequential,
+      GST_QUARK (FLAGS), GST_TYPE_SCHEDULING_FLAGS, flags,
       GST_QUARK (MINSIZE), G_TYPE_INT, minsize,
       GST_QUARK (MAXSIZE), G_TYPE_INT, maxsize,
       GST_QUARK (ALIGN), G_TYPE_INT, align, NULL);
 }
 
 /**
- * gst_query_parse_scheduling
+ * gst_query_parse_scheduling:
  * @query: A valid #GstQuery of type GST_QUERY_SCHEDULING.
- * @pull_mode: if pull mode scheduling is supported
- * @random_access: if random access is possible
- * @sequential: if sequential access is recommended
- * @minsize: the suggested minimum size of pull requests
- * @maxsize: the suggested maximum size of pull requests:
- * @align: the suggested alignment of pull requests
+ * @flags: (out) (allow-none): #GstSchedulingFlags
+ * @minsize: (out) (allow-none): the suggested minimum size of pull requests
+ * @maxsize: (out) (allow-none): the suggested maximum size of pull requests:
+ * @align: (out) (allow-none): the suggested alignment of pull requests
  *
  * Set the scheduling properties.
  */
 void
-gst_query_parse_scheduling (GstQuery * query, gboolean * pull_mode,
-    gboolean * random_access, gboolean * sequential,
+gst_query_parse_scheduling (GstQuery * query, GstSchedulingFlags * flags,
     gint * minsize, gint * maxsize, gint * align)
 {
   GstStructure *structure;
@@ -1995,10 +2009,405 @@
 
   structure = GST_QUERY_STRUCTURE (query);
   gst_structure_id_get (structure,
-      GST_QUARK (PULL_MODE), G_TYPE_BOOLEAN, pull_mode,
-      GST_QUARK (RANDOM_ACCESS), G_TYPE_BOOLEAN, random_access,
-      GST_QUARK (SEQUENTIAL), G_TYPE_BOOLEAN, sequential,
+      GST_QUARK (FLAGS), GST_TYPE_SCHEDULING_FLAGS, flags,
       GST_QUARK (MINSIZE), G_TYPE_INT, minsize,
       GST_QUARK (MAXSIZE), G_TYPE_INT, maxsize,
       GST_QUARK (ALIGN), G_TYPE_INT, align, NULL);
 }
+
+/**
+ * gst_query_add_scheduling_mode:
+ * @query: a GST_QUERY_SCHEDULING type query #GstQuery
+ * @mode: a #GstPadMode
+ *
+ * Add @mode as aone of the supported scheduling modes to @query.
+ */
+void
+gst_query_add_scheduling_mode (GstQuery * query, GstPadMode mode)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING);
+  g_return_if_fail (gst_query_is_writable (query));
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array =
+      ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
+
+  g_array_append_val (array, mode);
+}
+
+/**
+ * gst_query_get_n_scheduling_modes:
+ * @query: a GST_QUERY_SCHEDULING type query #GstQuery
+ *
+ * Retrieve the number of values currently stored in the
+ * scheduling mode array of the query's structure.
+ *
+ * Returns: the scheduling mode array size as a #guint.
+ */
+guint
+gst_query_get_n_scheduling_modes (GstQuery * query)
+{
+  GArray *array;
+  GstStructure *structure;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING, 0);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array =
+      ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
+
+  return array->len;
+}
+
+/**
+ * gst_query_parse_nth_scheduling_mode:
+ * @query: a GST_QUERY_SCHEDULING type query #GstQuery
+ * @index: position in the scheduling modes array to read
+ *
+ * Parse an available query and get the scheduling mode
+ * at @index of the scheduling modes array.
+ *
+ * Returns: a #GstPadMode of the scheduling mode at @index.
+ */
+GstPadMode
+gst_query_parse_nth_scheduling_mode (GstQuery * query, guint index)
+{
+  GstStructure *structure;
+  GArray *array;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING,
+      GST_PAD_MODE_NONE);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array =
+      ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
+  g_return_val_if_fail (index < array->len, GST_PAD_MODE_NONE);
+
+  return g_array_index (array, GstPadMode, index);
+}
+
+/**
+ * gst_query_has_scheduling_mode:
+ * @query: a GST_QUERY_SCHEDULING type query #GstQuery
+ * @mode: the scheduling mode
+ *
+ * Check if @query has scheduling mode set.
+ *
+ * Returns: TRUE when @mode is in the list of scheduling modes.
+ */
+gboolean
+gst_query_has_scheduling_mode (GstQuery * query, GstPadMode mode)
+{
+  GstStructure *structure;
+  GArray *array;
+  guint i, len;
+
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_SCHEDULING, FALSE);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  array =
+      ensure_array (structure, GST_QUARK (MODES), sizeof (GstPadMode), NULL);
+
+  len = array->len;
+  for (i = 0; i < len; i++) {
+    if (mode == g_array_index (array, GstPadMode, i))
+      return TRUE;
+  }
+  return FALSE;
+}
+
+/**
+ * gst_query_new_accept_caps:
+ * @caps: a fixed #GstCaps
+ *
+ * Constructs a new query object for querying if @caps are accepted.
+ *
+ * Free-function: gst_query_unref
+ *
+ * Returns: (transfer full): a new #GstQuery
+ */
+GstQuery *
+gst_query_new_accept_caps (GstCaps * caps)
+{
+  GstQuery *query;
+  GstStructure *structure;
+
+  g_return_val_if_fail (gst_caps_is_fixed (caps), NULL);
+
+  structure = gst_structure_new_id (GST_QUARK (QUERY_ACCEPT_CAPS),
+      GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
+      GST_QUARK (RESULT), G_TYPE_BOOLEAN, FALSE, NULL);
+  query = gst_query_new_custom (GST_QUERY_ACCEPT_CAPS, structure);
+
+  return query;
+}
+
+/**
+ * gst_query_parse_accept_caps:
+ * @query: The query to parse
+ * @caps: (out): A pointer to the caps
+ *
+ * Get the caps from @query. The caps remains valid as long as @query remains
+ * valid.
+ */
+void
+gst_query_parse_accept_caps (GstQuery * query, GstCaps ** caps)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS);
+  g_return_if_fail (caps != NULL);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  *caps = g_value_get_boxed (gst_structure_id_get_value (structure,
+          GST_QUARK (CAPS)));
+}
+
+void
+gst_query_set_accept_caps_result (GstQuery * query, gboolean result)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS);
+  g_return_if_fail (gst_query_is_writable (query));
+
+  structure = GST_QUERY_STRUCTURE (query);
+  gst_structure_id_set (structure,
+      GST_QUARK (RESULT), G_TYPE_BOOLEAN, result, NULL);
+}
+
+void
+gst_query_parse_accept_caps_result (GstQuery * query, gboolean * result)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  gst_structure_id_get (structure,
+      GST_QUARK (RESULT), G_TYPE_BOOLEAN, result, NULL);
+}
+
+/**
+ * gst_query_new_caps:
+ * @filter: a filter
+ *
+ * Constructs a new query object for querying the caps.
+ *
+ * The CAPS query should return the* allowable caps for a pad in the context
+ * of the element's state, its link to other elements, and the devices or files
+ * it has opened. These caps must be a subset of the pad template caps. In the
+ * NULL state with no links, the CAPS query should ideally return the same caps
+ * as the pad template. In rare circumstances, an object property can affect
+ * the caps returned by the CAPS query, but this is discouraged.
+ *
+ * For most filters, the caps returned by CAPS query is directly affected by the
+ * allowed caps on other pads. For demuxers and decoders, the caps returned by
+ * the srcpad's getcaps function is directly related to the stream data. Again,
+ * the CAPS query should return the most specific caps it reasonably can, since this
+ * helps with autoplugging.
+ *
+ * Free-function: gst_query_unref
+ *
+ * Returns: (transfer full): a new #GstQuery
+ */
+GstQuery *
+gst_query_new_caps (GstCaps * filter)
+{
+  GstQuery *query;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id (GST_QUARK (QUERY_CAPS),
+      GST_QUARK (FILTER), GST_TYPE_CAPS, filter,
+      GST_QUARK (CAPS), GST_TYPE_CAPS, NULL, NULL);
+  query = gst_query_new_custom (GST_QUERY_CAPS, structure);
+
+  return query;
+}
+
+/**
+ * gst_query_parse_caps:
+ * @query: The query to parse
+ * @filter: (out): A pointer to the caps filter
+ *
+ * Get the filter from the caps @query. The caps remains valid as long as
+ * @query remains valid.
+ */
+void
+gst_query_parse_caps (GstQuery * query, GstCaps ** filter)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CAPS);
+  g_return_if_fail (filter != NULL);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  *filter = g_value_get_boxed (gst_structure_id_get_value (structure,
+          GST_QUARK (FILTER)));
+}
+
+/**
+ * gst_query_set_caps_result:
+ * @query: The query to use
+ * @caps: (in): A pointer to the caps
+ *
+ * Set the @caps result in @query.
+ */
+void
+gst_query_set_caps_result (GstQuery * query, GstCaps * caps)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CAPS);
+  g_return_if_fail (gst_query_is_writable (query));
+
+  structure = GST_QUERY_STRUCTURE (query);
+  gst_structure_id_set (structure, GST_QUARK (CAPS), GST_TYPE_CAPS, caps, NULL);
+}
+
+/**
+ * gst_query_parse_caps_result:
+ * @query: The query to parse
+ * @caps: (out): A pointer to the caps
+ *
+ * Get the caps result from @query. The caps remains valid as long as
+ * @query remains valid.
+ */
+void
+gst_query_parse_caps_result (GstQuery * query, GstCaps ** caps)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CAPS);
+  g_return_if_fail (caps != NULL);
+
+  structure = GST_QUERY_STRUCTURE (query);
+  *caps = g_value_get_boxed (gst_structure_id_get_value (structure,
+          GST_QUARK (CAPS)));
+}
+
+void
+gst_query_intersect_caps_result (GstQuery * query, GstCaps * filter,
+    GstCapsIntersectMode mode)
+{
+  GstCaps *res, *caps = NULL;
+
+  gst_query_parse_caps_result (query, &caps);
+  res = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+  gst_query_set_caps_result (query, res);
+  gst_caps_unref (res);
+}
+
+/**
+ * gst_query_new_drain:
+ *
+ * Constructs a new query object for querying the drain state.
+ *
+ * Free-function: gst_query_unref
+ *
+ * Returns: (transfer full): a new #GstQuery
+ */
+GstQuery *
+gst_query_new_drain (void)
+{
+  GstQuery *query;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id_empty (GST_QUARK (QUERY_DRAIN));
+  query = gst_query_new_custom (GST_QUERY_DRAIN, structure);
+
+  return query;
+}
+
+/**
+ * gst_query_new_toc:
+ *
+ * Constructs a new query TOC query object. Use gst_query_unref()
+ * when done with it. A TOC query is used to query the full TOC with
+ * the UID marker for TOC extending (to insert some new entries).
+ *
+ * Returns: A #GstQuery.
+ */
+GstQuery *
+gst_query_new_toc (void)
+{
+  GstQuery *query;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id_empty (GST_QUARK (QUERY_TOC));
+  query = gst_query_new_custom (GST_QUERY_TOC, structure);
+
+  return query;
+}
+
+/**
+ * gst_query_set_toc:
+ * @query: a #GstQuery with query type GST_QUERY_TOC.
+ * @toc: the GstToc to set.
+ * @extend_uid: UID which can be used for TOC extending (may be NULL),
+ * 0 means root TOC level.
+ *
+ * Answer a TOC query by setting appropriate #GstToc structure.
+ */
+void
+gst_query_set_toc (GstQuery * query, GstToc * toc, const gchar * extend_uid)
+{
+  GstStructure *structure;
+  GstStructure *old_structure;
+
+  g_return_if_fail (query != NULL);
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_TOC);
+  g_return_if_fail (toc != NULL);
+
+  structure = __gst_toc_to_structure (toc);
+
+  g_return_if_fail (structure != NULL);
+
+  /* that shouldn't be happen in normal usage */
+  old_structure = GST_QUERY_STRUCTURE (query);
+  if (old_structure) {
+    gst_structure_set_parent_refcount (old_structure, NULL);
+    gst_structure_free (old_structure);
+  }
+
+  if (extend_uid != NULL)
+    __gst_toc_structure_set_extend_uid (structure, extend_uid);
+
+  gst_structure_set_parent_refcount (structure, &(query->mini_object.refcount));
+  GST_QUERY_STRUCTURE (query) = structure;
+}
+
+/**
+ * gst_query_parse_toc:
+ * @query: a #GstQuery.
+ * @toc: (out): the storage for the received TOC (may be NULL).
+ * @extend_uid: (out): the storage for the received extend UID marker (may be NULL),
+ * 0 means root TOC level.
+ *
+ * Parse a TOC query, writing the TOC into @toc as a newly
+ * allocated #GstToc and extend UID into @extend_uid, if the respective parameters
+ * are non-NULL. Use @extend_uid value to insert new entries into the TOC (@extend_uid will
+ * act as root entry for newly inserted entries).
+ * Free @toc with gst_toc_free() and @extend_uid with g_free() after usage.
+ */
+void
+gst_query_parse_toc (GstQuery * query, GstToc ** toc, gchar ** extend_uid)
+{
+  const GstStructure *structure;
+
+  g_return_if_fail (query != NULL);
+  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_TOC);
+
+  structure = gst_query_get_structure (query);
+
+  g_return_if_fail (structure != NULL);
+
+  if (toc != NULL)
+    *toc = __gst_toc_from_structure (structure);
+
+  if (extend_uid != NULL)
+    *extend_uid = __gst_toc_structure_get_extend_uid (structure);
+}
diff --git a/gst/gstquery.h b/gst/gstquery.h
index 7b83cbc..c060ce0 100644
--- a/gst/gstquery.h
+++ b/gst/gstquery.h
@@ -33,12 +33,56 @@
 #include <gst/gststructure.h>
 #include <gst/gstformat.h>
 #include <gst/gstpad.h>
+#include <gst/gsttoc.h>
 
 G_BEGIN_DECLS
 
+typedef struct _GstQuery GstQuery;
+
+/**
+ * GstQueryTypeFlags:
+ * @GST_QUERY_TYPE_UPSTREAM:     Set if the query can travel upstream.
+ * @GST_QUERY_TYPE_DOWNSTREAM:   Set if the query can travel downstream.
+ * @GST_QUERY_TYPE_SERIALIZED:   Set if the query should be serialized with data
+ *                               flow.
+ *
+ * #GstQueryTypeFlags indicate the aspects of the different #GstQueryType
+ * values. You can get the type flags of a #GstQueryType with the
+ * gst_query_type_get_flags() function.
+ */
+typedef enum {
+  GST_QUERY_TYPE_UPSTREAM       = 1 << 0,
+  GST_QUERY_TYPE_DOWNSTREAM     = 1 << 1,
+  GST_QUERY_TYPE_SERIALIZED     = 1 << 2
+} GstQueryTypeFlags;
+
+/**
+ * GST_QUERY_TYPE_BOTH:
+ *
+ * The same thing as #GST_QUERY_TYPE_UPSTREAM | #GST_QUERY_TYPE_DOWNSTREAM.
+ */
+#define GST_QUERY_TYPE_BOTH \
+    (GST_QUERY_TYPE_UPSTREAM | GST_QUERY_TYPE_DOWNSTREAM)
+
+#define GST_QUERY_NUM_SHIFT     (8)
+
+/**
+ * GST_QUERY_MAKE_TYPE:
+ * @num: the query number to create
+ * @flags: the query flags
+ *
+ * when making custom query types, use this macro with the num and
+ * the given flags
+ */
+#define GST_QUERY_MAKE_TYPE(num,flags) \
+    (((num) << GST_QUERY_NUM_SHIFT) | (flags))
+
+#define FLAG(name) GST_QUERY_TYPE_##name
+
+
 /**
  * GstQueryType:
- * @GST_QUERY_NONE: invalid query type
+ * @GST_QUERY_UNKNOWN: unknown query type
  * @GST_QUERY_POSITION: current position in stream
  * @GST_QUERY_DURATION: total duration of the stream
  * @GST_QUERY_LATENCY: latency of stream
@@ -55,71 +99,44 @@
  * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
  * @GST_QUERY_ALLOCATION: the buffer allocation properties
  * @GST_QUERY_SCHEDULING: the scheduling properties
+ * @GST_QUERY_ACCEPT_CAPS: the accept caps query
+ * @GST_QUERY_CAPS: the caps query
+ * @GST_QUERY_DRAIN: wait till all serialized data is consumed downstream
+ * @GST_QUERY_TOC: query the full table of contents (TOC) with the marker
+ * for an entry which can be used to extend received TOC. Since 0.10.37.
  *
  * Standard predefined Query types
  */
 /* NOTE: don't forget to update the table in gstquery.c when changing
  * this enum */
 typedef enum {
-  GST_QUERY_NONE = 0,
-  GST_QUERY_POSITION,
-  GST_QUERY_DURATION,
-  GST_QUERY_LATENCY,
-  GST_QUERY_JITTER,     /* not in draft-query, necessary? */
-  GST_QUERY_RATE,
-  GST_QUERY_SEEKING,
-  GST_QUERY_SEGMENT,
-  GST_QUERY_CONVERT,
-  GST_QUERY_FORMATS,
-  GST_QUERY_BUFFERING,
-  GST_QUERY_CUSTOM,
-  GST_QUERY_URI,
-  GST_QUERY_ALLOCATION,
-  GST_QUERY_SCHEDULING
+  GST_QUERY_UNKNOWN      = GST_QUERY_MAKE_TYPE (0, 0),
+  GST_QUERY_POSITION     = GST_QUERY_MAKE_TYPE (10, FLAG(BOTH)),
+  GST_QUERY_DURATION     = GST_QUERY_MAKE_TYPE (20, FLAG(BOTH)),
+  GST_QUERY_LATENCY      = GST_QUERY_MAKE_TYPE (30, FLAG(BOTH)),
+  GST_QUERY_JITTER       = GST_QUERY_MAKE_TYPE (40, FLAG(BOTH)),
+  GST_QUERY_RATE         = GST_QUERY_MAKE_TYPE (50, FLAG(BOTH)),
+  GST_QUERY_SEEKING      = GST_QUERY_MAKE_TYPE (60, FLAG(BOTH)),
+  GST_QUERY_SEGMENT      = GST_QUERY_MAKE_TYPE (70, FLAG(BOTH)),
+  GST_QUERY_CONVERT      = GST_QUERY_MAKE_TYPE (80, FLAG(BOTH)),
+  GST_QUERY_FORMATS      = GST_QUERY_MAKE_TYPE (90, FLAG(BOTH)),
+  GST_QUERY_BUFFERING    = GST_QUERY_MAKE_TYPE (110, FLAG(BOTH)),
+  GST_QUERY_CUSTOM       = GST_QUERY_MAKE_TYPE (120, FLAG(BOTH)),
+  GST_QUERY_URI          = GST_QUERY_MAKE_TYPE (130, FLAG(BOTH)),
+  GST_QUERY_ALLOCATION   = GST_QUERY_MAKE_TYPE (140, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_SCHEDULING   = GST_QUERY_MAKE_TYPE (150, FLAG(UPSTREAM)),
+  GST_QUERY_ACCEPT_CAPS  = GST_QUERY_MAKE_TYPE (160, FLAG(BOTH)),
+  GST_QUERY_CAPS         = GST_QUERY_MAKE_TYPE (170, FLAG(BOTH)),
+  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
+  GST_QUERY_TOC          = GST_QUERY_MAKE_TYPE (190, FLAG(BOTH))
 } GstQueryType;
-
-/**
- * GstBufferingMode:
- * @GST_BUFFERING_STREAM: a small amount of data is buffered
- * @GST_BUFFERING_DOWNLOAD: the stream is being downloaded
- * @GST_BUFFERING_TIMESHIFT: the stream is being downloaded in a ringbuffer
- * @GST_BUFFERING_LIVE: the stream is a live stream
- *
- * The different types of buffering methods.
- */
-typedef enum {
-  GST_BUFFERING_STREAM,
-  GST_BUFFERING_DOWNLOAD,
-  GST_BUFFERING_TIMESHIFT,
-  GST_BUFFERING_LIVE
-} GstBufferingMode;
-
-typedef struct _GstQueryTypeDefinition GstQueryTypeDefinition;
-typedef struct _GstQuery GstQuery;
-
-/**
- * GstQueryTypeDefinition:
- * @value: the unique id of the Query type
- * @nick: a short nick
- * @description: a longer description of the query type
- * @quark: the quark for the nick
- *
- * A Query Type definition
- */
-struct _GstQueryTypeDefinition
-{
-  GstQueryType   value;
-  const gchar   *nick;
-  const gchar   *description;
-  GQuark         quark;
-};
+#undef FLAG
 
 #define GST_TYPE_QUERY                         (gst_query_get_type())
 #define GST_IS_QUERY(obj)                      (GST_IS_MINI_OBJECT_TYPE (obj, GST_TYPE_QUERY))
 #define GST_QUERY_CAST(obj)                    ((GstQuery*)(obj))
 #define GST_QUERY(obj)                         (GST_QUERY_CAST(obj))
 
-
 /**
  * GST_QUERY_TYPE:
  * @query: the query to query
@@ -138,6 +155,28 @@
  */
 #define GST_QUERY_TYPE_NAME(query) (gst_query_type_get_name(GST_QUERY_TYPE(query)))
 
+/**
+ * GST_QUERY_IS_UPSTREAM:
+ * @ev: the query to query
+ *
+ * Check if an query can travel upstream.
+ */
+#define GST_QUERY_IS_UPSTREAM(ev)       !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_UPSTREAM)
+/**
+ * GST_QUERY_IS_DOWNSTREAM:
+ * @ev: the query to query
+ *
+ * Check if an query can travel downstream.
+ */
+#define GST_QUERY_IS_DOWNSTREAM(ev)     !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_DOWNSTREAM)
+/**
+ * GST_QUERY_IS_SERIALIZED:
+ * @ev: the query to query
+ *
+ * Check if an query is serialized with the data stream.
+ */
+#define GST_QUERY_IS_SERIALIZED(ev)     !!(GST_QUERY_TYPE (ev) & GST_QUERY_TYPE_SERIALIZED)
+
 
 /**
  * GstQuery:
@@ -154,26 +193,14 @@
   GstQueryType type;
 };
 
-const gchar*    gst_query_type_get_name        (GstQueryType query);
-GQuark          gst_query_type_to_quark        (GstQueryType query);
+const gchar*    gst_query_type_get_name        (GstQueryType type);
+GQuark          gst_query_type_to_quark        (GstQueryType type);
+GstQueryTypeFlags
+                gst_query_type_get_flags       (GstQueryType type);
+
 
 GType           gst_query_get_type             (void);
 
-/* register a new query */
-GstQueryType    gst_query_type_register        (const gchar *nick,
-                                                const gchar *description);
-GstQueryType    gst_query_type_get_by_nick     (const gchar *nick);
-
-/* check if a query is in an array of querys */
-gboolean        gst_query_types_contains       (const GstQueryType *types,
-                                                GstQueryType type);
-
-/* query for query details */
-
-const GstQueryTypeDefinition*
-                gst_query_type_get_details         (GstQueryType type);
-GstIterator*    gst_query_type_iterate_definitions (void);
-
 /* refcounting */
 /**
  * gst_query_ref:
@@ -260,49 +287,57 @@
  * query is unreffed, the new one is reffed).
  *
  * Either @new_query or the #GstQuery pointed to by @old_query may be NULL.
+ *
+ * Returns: TRUE if @new_query was different from @old_query
  */
-#define         gst_query_replace(old_query,new_query) \
-    gst_mini_object_replace ((GstMiniObject **)(old_query), GST_MINI_OBJECT_CAST (new_query))
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC gboolean gst_query_replace (GstQuery **old_query, GstQuery *new_query);
+#endif
 
+static inline gboolean
+gst_query_replace (GstQuery **old_query, GstQuery *new_query)
+{
+  return gst_mini_object_replace ((GstMiniObject **) old_query, (GstMiniObject *) new_query);
+}
 
 /* application specific query */
-GstQuery *      gst_query_new_custom            (GstQueryType type, GstStructure *structure);
+GstQuery *      gst_query_new_custom            (GstQueryType type, GstStructure *structure) G_GNUC_MALLOC;
 const GstStructure *
                 gst_query_get_structure         (GstQuery *query);
 GstStructure *  gst_query_writable_structure    (GstQuery *query);
 
 /* position query */
-GstQuery*       gst_query_new_position          (GstFormat format);
+GstQuery*       gst_query_new_position          (GstFormat format) G_GNUC_MALLOC;
 void            gst_query_set_position          (GstQuery *query, GstFormat format, gint64 cur);
 void            gst_query_parse_position        (GstQuery *query, GstFormat *format, gint64 *cur);
 
 /* duration query */
-GstQuery*       gst_query_new_duration          (GstFormat format);
+GstQuery*       gst_query_new_duration          (GstFormat format) G_GNUC_MALLOC;
 void            gst_query_set_duration          (GstQuery *query, GstFormat format, gint64 duration);
 void            gst_query_parse_duration        (GstQuery *query, GstFormat *format, gint64 *duration);
 
 /* latency query */
-GstQuery*       gst_query_new_latency           (void);
+GstQuery*       gst_query_new_latency           (void) G_GNUC_MALLOC;
 void            gst_query_set_latency           (GstQuery *query, gboolean live, GstClockTime min_latency,
                                                  GstClockTime max_latency);
 void            gst_query_parse_latency         (GstQuery *query, gboolean *live, GstClockTime *min_latency,
                                                  GstClockTime *max_latency);
 
 /* convert query */
-GstQuery*       gst_query_new_convert           (GstFormat src_format, gint64 value, GstFormat dest_format);
+GstQuery*       gst_query_new_convert           (GstFormat src_format, gint64 value, GstFormat dest_format) G_GNUC_MALLOC;
 void            gst_query_set_convert           (GstQuery *query, GstFormat src_format, gint64 src_value,
                                                  GstFormat dest_format, gint64 dest_value);
 void            gst_query_parse_convert         (GstQuery *query, GstFormat *src_format, gint64 *src_value,
                                                  GstFormat *dest_format, gint64 *dest_value);
 /* segment query */
-GstQuery*       gst_query_new_segment           (GstFormat format);
+GstQuery*       gst_query_new_segment           (GstFormat format) G_GNUC_MALLOC;
 void            gst_query_set_segment           (GstQuery *query, gdouble rate, GstFormat format,
                                                  gint64 start_value, gint64 stop_value);
 void            gst_query_parse_segment         (GstQuery *query, gdouble *rate, GstFormat *format,
                                                  gint64 *start_value, gint64 *stop_value);
 
 /* seeking query */
-GstQuery*       gst_query_new_seeking           (GstFormat format);
+GstQuery*       gst_query_new_seeking           (GstFormat format) G_GNUC_MALLOC;
 void            gst_query_set_seeking           (GstQuery *query, GstFormat format,
                                                  gboolean seekable,
                                                  gint64 segment_start,
@@ -312,14 +347,30 @@
                                                  gint64 *segment_start,
                                                  gint64 *segment_end);
 /* formats query */
-GstQuery*       gst_query_new_formats           (void);
+GstQuery*       gst_query_new_formats           (void) G_GNUC_MALLOC;
 void            gst_query_set_formats           (GstQuery *query, gint n_formats, ...);
 void            gst_query_set_formatsv          (GstQuery *query, gint n_formats, const GstFormat *formats);
 void            gst_query_parse_n_formats       (GstQuery *query, guint *n_formats);
 void            gst_query_parse_nth_format      (GstQuery *query, guint nth, GstFormat *format);
 
 /* buffering query */
-GstQuery*       gst_query_new_buffering           (GstFormat format);
+/**
+ * GstBufferingMode:
+ * @GST_BUFFERING_STREAM: a small amount of data is buffered
+ * @GST_BUFFERING_DOWNLOAD: the stream is being downloaded
+ * @GST_BUFFERING_TIMESHIFT: the stream is being downloaded in a ringbuffer
+ * @GST_BUFFERING_LIVE: the stream is a live stream
+ *
+ * The different types of buffering methods.
+ */
+typedef enum {
+  GST_BUFFERING_STREAM,
+  GST_BUFFERING_DOWNLOAD,
+  GST_BUFFERING_TIMESHIFT,
+  GST_BUFFERING_LIVE
+} GstBufferingMode;
+
+GstQuery*       gst_query_new_buffering           (GstFormat format) G_GNUC_MALLOC;
 void            gst_query_set_buffering_percent   (GstQuery *query, gboolean busy, gint percent);
 void            gst_query_parse_buffering_percent (GstQuery *query, gboolean *busy, gint *percent);
 
@@ -345,40 +396,95 @@
                                                      gint64 *stop);
 
 /* URI query */
-GstQuery *      gst_query_new_uri                 (void);
-void            gst_query_parse_uri               (GstQuery *query, gchar **uri);
-void            gst_query_set_uri                 (GstQuery *query, const gchar *uri);
+GstQuery *      gst_query_new_uri                    (void) G_GNUC_MALLOC;
+void            gst_query_parse_uri                  (GstQuery *query, gchar **uri);
+void            gst_query_set_uri                    (GstQuery *query, const gchar *uri);
 
 /* allocation query */
-GstQuery *      gst_query_new_allocation          (GstCaps *caps, gboolean need_pool);
-void            gst_query_parse_allocation        (GstQuery *query, GstCaps **caps, gboolean *need_pool);
+GstQuery *      gst_query_new_allocation             (GstCaps *caps, gboolean need_pool) G_GNUC_MALLOC;
+void            gst_query_parse_allocation           (GstQuery *query, GstCaps **caps, gboolean *need_pool);
 
-void            gst_query_set_allocation_params   (GstQuery *query, guint size, guint min_buffers,
-                                                   guint max_buffers, guint prefix, guint alignment,
-                                                   GstBufferPool *pool);
-void            gst_query_parse_allocation_params (GstQuery *query, guint *size, guint *min_buffers,
-                                                   guint *max_buffers, guint *prefix, guint *alignment,
-                                                   GstBufferPool **pool);
+/* pools */
+void            gst_query_add_allocation_pool        (GstQuery *query, GstBufferPool *pool,
+                                                      guint size, guint min_buffers,
+                                                      guint max_buffers);
+guint           gst_query_get_n_allocation_pools     (GstQuery *query);
+void            gst_query_parse_nth_allocation_pool  (GstQuery *query, guint index,
+                                                      GstBufferPool **pool,
+                                                      guint *size, guint *min_buffers,
+                                                      guint *max_buffers);
+void            gst_query_set_nth_allocation_pool    (GstQuery *query, guint index,
+                                                      GstBufferPool *pool,
+                                                      guint size, guint min_buffers,
+                                                      guint max_buffers);
 
-void            gst_query_add_allocation_meta       (GstQuery *query, const gchar *api);
-guint           gst_query_get_n_allocation_metas    (GstQuery *query);
-const gchar *   gst_query_parse_nth_allocation_meta (GstQuery *query, guint index);
-gboolean        gst_query_has_allocation_meta       (GstQuery *query, const gchar *api);
+/* allocators */
+void            gst_query_add_allocation_param       (GstQuery *query, GstAllocator *allocator,
+                                                      const GstAllocationParams *params);
+guint           gst_query_get_n_allocation_params    (GstQuery *query);
+void            gst_query_parse_nth_allocation_param (GstQuery *query, guint index,
+                                                      GstAllocator **allocator,
+                                                      GstAllocationParams *params);
+void            gst_query_set_nth_allocation_param   (GstQuery *query, guint index,
+                                                      GstAllocator *allocator,
+                                                      const GstAllocationParams *params);
 
-void            gst_query_add_allocation_memory       (GstQuery *query, const gchar *alloc);
-guint           gst_query_get_n_allocation_memories   (GstQuery *query);
-const gchar *   gst_query_parse_nth_allocation_memory (GstQuery *query, guint index);
+/* metadata */
+void            gst_query_add_allocation_meta        (GstQuery *query, GType api);
+guint           gst_query_get_n_allocation_metas     (GstQuery *query);
+GType           gst_query_parse_nth_allocation_meta  (GstQuery *query, guint index);
+void            gst_query_remove_nth_allocation_meta (GstQuery *query, guint index);
+gboolean        gst_query_has_allocation_meta        (GstQuery *query, GType api);
+
 
 /* scheduling query */
-GstQuery *      gst_query_new_scheduling          (void);
+/**
+ * GstSchedulingFlags:
+ * @GST_SCHEDULING_FLAG_SEEKABLE: if seeking is possible
+ * @GST_SCHEDULING_FLAG_SEQUENTIAL: if sequential access is recommended
+ *
+ * The different scheduling flags.
+ */
+typedef enum {
+  GST_SCHEDULING_FLAG_SEEKABLE      = (1 << 0),
+  GST_SCHEDULING_FLAG_SEQUENTIAL    = (1 << 1)
+} GstSchedulingFlags;
 
-void            gst_query_set_scheduling          (GstQuery *query, gboolean pull_mode,
-                                                   gboolean random_access, gboolean sequential,
+GstQuery *      gst_query_new_scheduling          (void) G_GNUC_MALLOC;
+
+void            gst_query_set_scheduling          (GstQuery *query, GstSchedulingFlags flags,
                                                    gint minsize, gint maxsize, gint align);
-void            gst_query_parse_scheduling        (GstQuery *query, gboolean *pull_mode,
-                                                   gboolean *random_access, gboolean *sequential,
+void            gst_query_parse_scheduling        (GstQuery *query, GstSchedulingFlags *flags,
                                                    gint *minsize, gint *maxsize, gint *align);
 
+void            gst_query_add_scheduling_mode       (GstQuery *query, GstPadMode mode);
+guint           gst_query_get_n_scheduling_modes    (GstQuery *query);
+GstPadMode      gst_query_parse_nth_scheduling_mode (GstQuery *query, guint index);
+gboolean        gst_query_has_scheduling_mode       (GstQuery *query, GstPadMode mode);
+
+/* accept-caps query */
+GstQuery *      gst_query_new_accept_caps          (GstCaps *caps) G_GNUC_MALLOC;
+void            gst_query_parse_accept_caps        (GstQuery *query, GstCaps **caps);
+void            gst_query_set_accept_caps_result   (GstQuery *query, gboolean result);
+void            gst_query_parse_accept_caps_result (GstQuery *query, gboolean *result);
+
+/* caps query */
+GstQuery *      gst_query_new_caps                 (GstCaps *filter) G_GNUC_MALLOC;
+void            gst_query_parse_caps               (GstQuery *query, GstCaps **filter);
+
+void            gst_query_set_caps_result          (GstQuery *query, GstCaps *caps);
+void            gst_query_parse_caps_result        (GstQuery *query, GstCaps **caps);
+
+void            gst_query_intersect_caps_result    (GstQuery *query, GstCaps *filter,
+                                                    GstCapsIntersectMode mode);
+/* drain query */
+GstQuery *      gst_query_new_drain                (void) G_GNUC_MALLOC;
+
+/* TOC query */
+GstQuery *      gst_query_new_toc                 (void);
+void            gst_query_set_toc                 (GstQuery *query, GstToc *toc, const gchar *extend_uid);
+void            gst_query_parse_toc               (GstQuery *query, GstToc **toc, gchar **extend_uid);
+
 G_END_DECLS
 
 #endif /* __GST_QUERY_H__ */
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 345068e..6f41dcf 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -32,13 +32,7 @@
  *
  * The #GstRegistry object is a list of plugins and some functions for dealing
  * with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may
- * not be loaded at a given time. There may be multiple #GstRegistry objects,
- * but the "default registry" is the only object that has any meaning to the
- * core.
- *
- * The registry file is actually a cache of plugin information. This is
- * unlike versions prior to 0.10, where the registry file was the primary source
- * of plugin information, and was created by the gst-register command.
+ * not be loaded at a given time.
  *
  * The primary source, at all times, of plugin information is each plugin file
  * itself. Thus, if an application wants information about a particular plugin,
@@ -63,13 +57,13 @@
  *   <listitem>
  *     <para>default locations (if GST_PLUGIN_SYSTEM_PATH is not set). Those
  *       default locations are:
- *       <filename>~/.gstreamer-$GST_MAJORMINOR/plugins/</filename>
- *       and <filename>$prefix/libs/gstreamer-$GST_MAJORMINOR/</filename>.
+ *       <filename>~/.gstreamer-$GST_API_VERSION/plugins/</filename>
+ *       and <filename>$prefix/libs/gstreamer-$GST_API_VERSION/</filename>.
  *     </para>
  *   </listitem>
  * </itemizedlist>
  * The registry cache file is loaded from
- * <filename>~/.gstreamer-$GST_MAJORMINOR/registry-$ARCH.bin</filename> or the
+ * <filename>~/.gstreamer-$GST_API_VERSION/registry-$ARCH.bin</filename> or the
  * file listed in the GST_REGISTRY env var. One reason to change the registry
  * location is for testing.
  *
@@ -99,11 +93,13 @@
  *
  * <emphasis role="bold">Implementation notes:</emphasis>
  *
- * The "cache" and "default registry" are different concepts and can represent
+ * The "cache" and "registry" are different concepts and can represent
  * different sets of plugins. For various reasons, at init time, the cache is
  * stored in the default registry, and plugins not relevant to the current
  * process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are
  * removed at the end of initialization.
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -127,8 +123,6 @@
 #include "gstinfo.h"
 #include "gsterror.h"
 #include "gstregistry.h"
-#include "gstmarshal.h"
-#include "gstfilter.h"
 
 #include "gstpluginloader.h"
 
@@ -146,6 +140,18 @@
 
 struct _GstRegistryPrivate
 {
+  GList *plugins;
+  GList *features;
+
+  GList *paths;
+
+  int cache_file;
+
+  /* hash to speedup _lookup_feature_locked() */
+  GHashTable *feature_hash;
+  /* hash to speedup _lookup */
+  GHashTable *basename_hash;
+
   /* updated whenever the feature list changes */
   guint32 cookie;
   /* speedup for searching features */
@@ -157,7 +163,7 @@
 
 /* the one instance of the default registry and the mutex protecting the
  * variable. */
-static GStaticMutex _gst_registry_mutex = G_STATIC_MUTEX_INIT;
+static GMutex _gst_registry_mutex;
 static GstRegistry *_gst_registry_default = NULL;
 
 /* defaults */
@@ -175,6 +181,8 @@
 
 /* Set to TRUE when the registry cache should be disabled */
 gboolean _gst_disable_registry_cache = FALSE;
+
+static gboolean __registry_reuse_plugin_scanner = TRUE;
 #endif
 
 /* Element signals and args */
@@ -194,8 +202,8 @@
 static GstPlugin *gst_registry_lookup_bn_locked (GstRegistry * registry,
     const char *basename);
 
+#define gst_registry_parent_class parent_class
 G_DEFINE_TYPE (GstRegistry, gst_registry, GST_TYPE_OBJECT);
-static GstObjectClass *parent_class = NULL;
 
 static void
 gst_registry_class_init (GstRegistryClass * klass)
@@ -204,7 +212,6 @@
 
   gobject_class = (GObjectClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
   g_type_class_add_private (klass, sizeof (GstRegistryPrivate));
 
   /**
@@ -217,8 +224,8 @@
    */
   gst_registry_signals[PLUGIN_ADDED] =
       g_signal_new ("plugin-added", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRegistryClass, plugin_added), NULL,
-      NULL, gst_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
+      G_TYPE_NONE, 1, GST_TYPE_PLUGIN);
 
   /**
    * GstRegistry::feature-added:
@@ -230,8 +237,8 @@
    */
   gst_registry_signals[FEATURE_ADDED] =
       g_signal_new ("feature-added", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRegistryClass, feature_added),
-      NULL, NULL, gst_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER);
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic,
+      G_TYPE_NONE, 1, GST_TYPE_PLUGIN_FEATURE);
 
   gobject_class->finalize = gst_registry_finalize;
 }
@@ -239,11 +246,11 @@
 static void
 gst_registry_init (GstRegistry * registry)
 {
-  registry->feature_hash = g_hash_table_new (g_str_hash, g_str_equal);
-  registry->basename_hash = g_hash_table_new (g_str_hash, g_str_equal);
   registry->priv =
       G_TYPE_INSTANCE_GET_PRIVATE (registry, GST_TYPE_REGISTRY,
       GstRegistryPrivate);
+  registry->priv->feature_hash = g_hash_table_new (g_str_hash, g_str_equal);
+  registry->priv->basename_hash = g_hash_table_new (g_str_hash, g_str_equal);
 }
 
 static void
@@ -253,8 +260,8 @@
   GList *plugins, *p;
   GList *features, *f;
 
-  plugins = registry->plugins;
-  registry->plugins = NULL;
+  plugins = registry->priv->plugins;
+  registry->priv->plugins = NULL;
 
   GST_DEBUG_OBJECT (registry, "registry finalize");
   p = plugins;
@@ -270,26 +277,26 @@
   }
   g_list_free (plugins);
 
-  features = registry->features;
-  registry->features = NULL;
+  features = registry->priv->features;
+  registry->priv->features = NULL;
 
   f = features;
   while (f) {
     GstPluginFeature *feature = f->data;
 
     if (feature) {
-      GST_LOG_OBJECT (registry, "removing feature %p (%s)",
-          feature, gst_plugin_feature_get_name (feature));
+      GST_LOG_OBJECT (registry, "removing feature %p (%s)", feature,
+          GST_OBJECT_NAME (feature));
       gst_object_unparent (GST_OBJECT_CAST (feature));
     }
     f = g_list_next (f);
   }
   g_list_free (features);
 
-  g_hash_table_destroy (registry->feature_hash);
-  registry->feature_hash = NULL;
-  g_hash_table_destroy (registry->basename_hash);
-  registry->basename_hash = NULL;
+  g_hash_table_destroy (registry->priv->feature_hash);
+  registry->priv->feature_hash = NULL;
+  g_hash_table_destroy (registry->priv->basename_hash);
+  registry->priv->basename_hash = NULL;
 
   if (registry->priv->element_factory_list) {
     GST_DEBUG_OBJECT (registry, "Cleaning up cached element factory list");
@@ -305,25 +312,26 @@
 }
 
 /**
- * gst_registry_get_default:
+ * gst_registry_get:
  *
- * Retrieves the default registry. The caller does not own a reference on the
- * registry, as it is alive as long as GStreamer is initialized.
+ * Retrieves the singleton plugin registry. The caller does not own a
+ * reference on the registry, as it is alive as long as GStreamer is
+ * initialized.
  *
- * Returns: (transfer none): The default #GstRegistry.
+ * Returns: (transfer none): the #GstRegistry.
  */
 GstRegistry *
-gst_registry_get_default (void)
+gst_registry_get (void)
 {
   GstRegistry *registry;
 
-  g_static_mutex_lock (&_gst_registry_mutex);
+  g_mutex_lock (&_gst_registry_mutex);
   if (G_UNLIKELY (!_gst_registry_default)) {
     _gst_registry_default = g_object_newv (GST_TYPE_REGISTRY, 0, NULL);
     gst_object_ref_sink (GST_OBJECT_CAST (_gst_registry_default));
   }
   registry = _gst_registry_default;
-  g_static_mutex_unlock (&_gst_registry_mutex);
+  g_mutex_unlock (&_gst_registry_mutex);
 
   return registry;
 }
@@ -347,11 +355,12 @@
     goto empty_path;
 
   GST_OBJECT_LOCK (registry);
-  if (g_list_find_custom (registry->paths, path, (GCompareFunc) strcmp))
+  if (g_list_find_custom (registry->priv->paths, path, (GCompareFunc) strcmp))
     goto was_added;
 
   GST_INFO ("Adding plugin path: \"%s\"", path);
-  registry->paths = g_list_append (registry->paths, g_strdup (path));
+  registry->priv->paths =
+      g_list_append (registry->priv->paths, g_strdup (path));
   GST_OBJECT_UNLOCK (registry);
 
   return;
@@ -390,7 +399,7 @@
   GST_OBJECT_LOCK (registry);
   /* We don't need to copy the strings, because they won't be deleted
    * as long as the GstRegistry is around */
-  list = g_list_copy (registry->paths);
+  list = g_list_copy (registry->priv->paths);
   GST_OBJECT_UNLOCK (registry);
 
   return list;
@@ -438,9 +447,10 @@
         GST_OBJECT_UNLOCK (registry);
         return FALSE;
       }
-      registry->plugins = g_list_remove (registry->plugins, existing_plugin);
+      registry->priv->plugins =
+          g_list_remove (registry->priv->plugins, existing_plugin);
       if (G_LIKELY (existing_plugin->basename))
-        g_hash_table_remove (registry->basename_hash,
+        g_hash_table_remove (registry->priv->basename_hash,
             existing_plugin->basename);
       gst_object_unref (existing_plugin);
     }
@@ -449,9 +459,10 @@
   GST_DEBUG_OBJECT (registry, "adding plugin %p for filename \"%s\"",
       plugin, GST_STR_NULL (plugin->filename));
 
-  registry->plugins = g_list_prepend (registry->plugins, plugin);
+  registry->priv->plugins = g_list_prepend (registry->priv->plugins, plugin);
   if (G_LIKELY (plugin->basename))
-    g_hash_table_replace (registry->basename_hash, plugin->basename, plugin);
+    g_hash_table_replace (registry->priv->basename_hash, plugin->basename,
+        plugin);
 
   gst_object_ref_sink (plugin);
   GST_OBJECT_UNLOCK (registry);
@@ -473,7 +484,7 @@
   g_return_if_fail (GST_IS_PLUGIN (plugin));
 
   /* Remove all features for this plugin */
-  f = registry->features;
+  f = registry->priv->features;
   while (f != NULL) {
     GList *next = g_list_next (f);
     GstPluginFeature *feature = f->data;
@@ -483,8 +494,10 @@
           feature, gst_plugin_feature_get_name (feature), plugin,
           plugin->desc.name);
 
-      registry->features = g_list_delete_link (registry->features, f);
-      g_hash_table_remove (registry->feature_hash, GST_OBJECT_NAME (feature));
+      registry->priv->features =
+          g_list_delete_link (registry->priv->features, f);
+      g_hash_table_remove (registry->priv->feature_hash,
+          GST_OBJECT_NAME (feature));
       gst_object_unparent (GST_OBJECT_CAST (feature));
     }
     f = next;
@@ -511,9 +524,9 @@
       plugin, gst_plugin_get_name (plugin));
 
   GST_OBJECT_LOCK (registry);
-  registry->plugins = g_list_remove (registry->plugins, plugin);
+  registry->priv->plugins = g_list_remove (registry->priv->plugins, plugin);
   if (G_LIKELY (plugin->basename))
-    g_hash_table_remove (registry->basename_hash, plugin->basename);
+    g_hash_table_remove (registry->priv->basename_hash, plugin->basename);
   gst_registry_remove_features_for_plugin_unlocked (registry, plugin);
   GST_OBJECT_UNLOCK (registry);
   gst_object_unref (plugin);
@@ -550,14 +563,15 @@
     /* Remove the existing feature from the list now, before we insert the new
      * one, but don't unref yet because the hash is still storing a reference to
      * it. */
-    registry->features = g_list_remove (registry->features, existing_feature);
+    registry->priv->features =
+        g_list_remove (registry->priv->features, existing_feature);
   }
 
   GST_DEBUG_OBJECT (registry, "adding feature %p (%s)", feature,
       GST_OBJECT_NAME (feature));
 
-  registry->features = g_list_prepend (registry->features, feature);
-  g_hash_table_replace (registry->feature_hash, GST_OBJECT_NAME (feature),
+  registry->priv->features = g_list_prepend (registry->priv->features, feature);
+  g_hash_table_replace (registry->priv->feature_hash, GST_OBJECT_NAME (feature),
       feature);
 
   if (G_UNLIKELY (existing_feature)) {
@@ -597,8 +611,8 @@
       feature, gst_plugin_feature_get_name (feature));
 
   GST_OBJECT_LOCK (registry);
-  registry->features = g_list_remove (registry->features, feature);
-  g_hash_table_remove (registry->feature_hash, GST_OBJECT_NAME (feature));
+  registry->priv->features = g_list_remove (registry->priv->features, feature);
+  g_hash_table_remove (registry->priv->feature_hash, GST_OBJECT_NAME (feature));
   registry->priv->cookie++;
   GST_OBJECT_UNLOCK (registry);
 
@@ -627,22 +641,46 @@
 gst_registry_plugin_filter (GstRegistry * registry,
     GstPluginFilter filter, gboolean first, gpointer user_data)
 {
-  GList *list;
-  GList *g;
+  GList *list = NULL;
 
   g_return_val_if_fail (GST_IS_REGISTRY (registry), NULL);
 
   GST_OBJECT_LOCK (registry);
-  list = gst_filter_run (registry->plugins, (GstFilterFunc) filter, first,
-      user_data);
-  for (g = list; g; g = g->next) {
-    gst_object_ref (GST_PLUGIN_CAST (g->data));
+  {
+    const GList *walk;
+
+    for (walk = registry->priv->plugins; walk != NULL; walk = walk->next) {
+      GstPlugin *plugin = walk->data;
+
+      if (filter == NULL || filter (plugin, user_data)) {
+        list = g_list_prepend (list, gst_object_ref (plugin));
+
+        if (first)
+          break;
+      }
+    }
   }
   GST_OBJECT_UNLOCK (registry);
 
   return list;
 }
 
+typedef struct
+{
+  const gchar *name;
+  GType type;
+} GstTypeNameData;
+
+static gboolean
+gst_plugin_feature_type_name_filter (GstPluginFeature * feature,
+    GstTypeNameData * data)
+{
+  g_assert (GST_IS_PLUGIN_FEATURE (feature));
+
+  return ((data->type == 0 || data->type == G_OBJECT_TYPE (feature)) &&
+      (data->name == NULL || !strcmp (data->name, GST_OBJECT_NAME (feature))));
+}
+
 /* returns TRUE if the list was changed
  *
  * Must be called with the object lock taken */
@@ -655,16 +693,24 @@
 
   if (G_UNLIKELY (!*previous || priv->cookie != *cookie)) {
     GstTypeNameData data;
+    const GList *walk;
 
-    if (*previous)
+    if (*previous) {
       gst_plugin_feature_list_free (*previous);
+      *previous = NULL;
+    }
 
     data.type = type;
     data.name = NULL;
-    *previous =
-        gst_filter_run (registry->features,
-        (GstFilterFunc) gst_plugin_feature_type_name_filter, FALSE, &data);
-    g_list_foreach (*previous, (GFunc) gst_object_ref, NULL);
+
+    for (walk = registry->priv->features; walk != NULL; walk = walk->next) {
+      GstPluginFeature *feature = walk->data;
+
+      if (gst_plugin_feature_type_name_filter (feature, &data)) {
+        *previous = g_list_prepend (*previous, gst_object_ref (feature));
+      }
+    }
+
     *cookie = priv->cookie;
     res = TRUE;
   }
@@ -746,16 +792,24 @@
 gst_registry_feature_filter (GstRegistry * registry,
     GstPluginFeatureFilter filter, gboolean first, gpointer user_data)
 {
-  GList *list;
-  GList *g;
+  GList *list = NULL;
 
   g_return_val_if_fail (GST_IS_REGISTRY (registry), NULL);
 
   GST_OBJECT_LOCK (registry);
-  list = gst_filter_run (registry->features, (GstFilterFunc) filter, first,
-      user_data);
-  for (g = list; g; g = g->next) {
-    gst_object_ref (GST_PLUGIN_FEATURE_CAST (g->data));
+  {
+    const GList *walk;
+
+    for (walk = registry->priv->features; walk != NULL; walk = walk->next) {
+      GstPluginFeature *feature = walk->data;
+
+      if (filter == NULL || filter (feature, user_data)) {
+        list = g_list_prepend (list, gst_object_ref (feature));
+
+        if (first)
+          break;
+      }
+    }
   }
   GST_OBJECT_UNLOCK (registry);
 
@@ -883,7 +937,7 @@
   g_return_val_if_fail (GST_IS_REGISTRY (registry), NULL);
 
   GST_OBJECT_LOCK (registry);
-  list = g_list_copy (registry->plugins);
+  list = g_list_copy (registry->priv->plugins);
   for (g = list; g; g = g->next) {
     gst_object_ref (GST_PLUGIN_CAST (g->data));
   }
@@ -895,7 +949,7 @@
 static GstPluginFeature *
 gst_registry_lookup_feature_locked (GstRegistry * registry, const char *name)
 {
-  return g_hash_table_lookup (registry->feature_hash, name);
+  return g_hash_table_lookup (registry->priv->feature_hash, name);
 }
 
 /**
@@ -930,7 +984,7 @@
 static GstPlugin *
 gst_registry_lookup_bn_locked (GstRegistry * registry, const char *basename)
 {
-  return g_hash_table_lookup (registry->basename_hash, basename);
+  return g_hash_table_lookup (registry->priv->basename_hash, basename);
 }
 
 static GstPlugin *
@@ -1086,6 +1140,12 @@
     gst_object_unref (newplugin);
     changed = TRUE;
   }
+#ifndef GST_DISABLE_REGISTRY
+  if (!__registry_reuse_plugin_scanner) {
+    clear_scan_context (context);
+    context->helper_state = REGISTRY_SCAN_HELPER_NOT_STARTED;
+  }
+#endif
 
   return changed;
 }
@@ -1324,11 +1384,11 @@
 {
   GstRegistry *registry;
 
-  g_static_mutex_lock (&_gst_registry_mutex);
+  g_mutex_lock (&_gst_registry_mutex);
   if ((registry = _gst_registry_default) != NULL) {
     _gst_registry_default = NULL;
   }
-  g_static_mutex_unlock (&_gst_registry_mutex);
+  g_mutex_unlock (&_gst_registry_mutex);
 
   /* unref outside of the lock because we can. */
   if (registry)
@@ -1336,32 +1396,32 @@
 }
 
 /**
- * gst_default_registry_check_feature_version:
+ * gst_registry_check_feature_version:
+ * @registry: a #GstRegistry
  * @feature_name: the name of the feature (e.g. "oggdemux")
  * @min_major: the minimum major version number
  * @min_minor: the minimum minor version number
  * @min_micro: the minimum micro version number
  *
- * Checks whether a plugin feature by the given name exists in the
- * default registry and whether its version is at least the
+ * Checks whether a plugin feature by the given name exists in
+ * @registry and whether its version is at least the
  * version required.
  *
  * Returns: #TRUE if the feature could be found and the version is
  * the same as the required version or newer, and #FALSE otherwise.
  */
 gboolean
-gst_default_registry_check_feature_version (const gchar * feature_name,
-    guint min_major, guint min_minor, guint min_micro)
+gst_registry_check_feature_version (GstRegistry * registry,
+    const gchar * feature_name, guint min_major, guint min_minor,
+    guint min_micro)
 {
   GstPluginFeature *feature;
-  GstRegistry *registry;
   gboolean ret = FALSE;
 
   g_return_val_if_fail (feature_name != NULL, FALSE);
 
   GST_DEBUG ("Looking up plugin feature '%s'", feature_name);
 
-  registry = gst_registry_get_default ();
   feature = gst_registry_lookup_feature (registry, feature_name);
   if (feature) {
     ret = gst_plugin_feature_check_version (feature, min_major, min_minor,
@@ -1389,7 +1449,7 @@
   if (plugin) {
     GST_INFO ("Loaded plugin: \"%s\"", filename);
 
-    gst_default_registry_add_plugin (plugin);
+    gst_registry_add_plugin (gst_registry_get (), plugin);
   } else {
     if (err) {
       /* Report error to user, and free error */
@@ -1417,16 +1477,16 @@
   GST_OBJECT_LOCK (registry);
 
   GST_DEBUG_OBJECT (registry, "removing cached plugins");
-  g = registry->plugins;
+  g = registry->priv->plugins;
   while (g) {
     g_next = g->next;
     plugin = g->data;
     if (plugin->flags & GST_PLUGIN_FLAG_CACHED) {
       GST_DEBUG_OBJECT (registry, "removing cached plugin \"%s\"",
           GST_STR_NULL (plugin->filename));
-      registry->plugins = g_list_delete_link (registry->plugins, g);
+      registry->priv->plugins = g_list_delete_link (registry->priv->plugins, g);
       if (G_LIKELY (plugin->basename))
-        g_hash_table_remove (registry->basename_hash, plugin->basename);
+        g_hash_table_remove (registry->priv->basename_hash, plugin->basename);
       gst_registry_remove_features_for_plugin_unlocked (registry, plugin);
       gst_object_unref (plugin);
       changed = TRUE;
@@ -1514,7 +1574,7 @@
     /* plugins in the user's home directory take precedence over
      * system-installed ones */
     home_plugins = g_build_filename (g_get_user_data_dir (),
-        "gstreamer-" GST_MAJORMINOR, "plugins", NULL);
+        "gstreamer-" GST_API_VERSION, "plugins", NULL);
 
     GST_DEBUG ("scanning home plugins %s", home_plugins);
     changed |= gst_registry_scan_path_internal (&context, home_plugins);
@@ -1571,7 +1631,8 @@
   }
 
   GST_INFO ("Registry cache changed. Writing new registry cache");
-  if (!priv_gst_registry_binary_write_cache (default_registry, registry_file)) {
+  if (!priv_gst_registry_binary_write_cache (default_registry,
+          default_registry->priv->plugins, registry_file)) {
     g_set_error (error, GST_CORE_ERROR, GST_CORE_ERROR_FAILED,
         _("Error writing registry cache to %s: %s"),
         registry_file, g_strerror (errno));
@@ -1591,11 +1652,11 @@
   gboolean do_update = TRUE;
   gboolean have_cache = TRUE;
 
-  default_registry = gst_registry_get_default ();
+  default_registry = gst_registry_get ();
   registry_file = g_strdup (g_getenv ("GST_REGISTRY"));
   if (registry_file == NULL) {
     registry_file = g_build_filename (g_get_user_cache_dir (),
-        "gstreamer-" GST_MAJORMINOR, "registry." HOST_CPU ".bin", NULL);
+        "gstreamer-" GST_API_VERSION, "registry." HOST_CPU ".bin", NULL);
   }
 
   if (!_gst_disable_registry_cache) {
@@ -1620,6 +1681,12 @@
   }
 
   if (do_update) {
+    const gchar *reuse_env;
+
+    if ((reuse_env = g_getenv ("GST_REGISTRY_REUSE_PLUGIN_SCANNER"))) {
+      /* do reuse for any value different from "no" */
+      __registry_reuse_plugin_scanner = (strcmp (reuse_env, "no") != 0);
+    }
     /* now check registry */
     GST_DEBUG ("Updating registry cache");
     scan_and_update_registry (default_registry, registry_file, TRUE, error);
diff --git a/gst/gstregistry.h b/gst/gstregistry.h
index f2d07c1..b7c4835 100644
--- a/gst/gstregistry.h
+++ b/gst/gstregistry.h
@@ -30,12 +30,12 @@
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_REGISTRY 		(gst_registry_get_type ())
-#define GST_REGISTRY(obj) 		(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REGISTRY, GstRegistry))
-#define GST_IS_REGISTRY(obj) 		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REGISTRY))
-#define GST_REGISTRY_CLASS(klass) 	(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REGISTRY, GstRegistryClass))
-#define GST_IS_REGISTRY_CLASS(klass) 	(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REGISTRY))
-#define GST_REGISTRY_GET_CLASS(obj) 	(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_REGISTRY, GstRegistryClass))
+#define GST_TYPE_REGISTRY               (gst_registry_get_type ())
+#define GST_REGISTRY(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REGISTRY, GstRegistry))
+#define GST_IS_REGISTRY(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REGISTRY))
+#define GST_REGISTRY_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REGISTRY, GstRegistryClass))
+#define GST_IS_REGISTRY_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REGISTRY))
+#define GST_REGISTRY_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_REGISTRY, GstRegistryClass))
 
 typedef struct _GstRegistry GstRegistry;
 typedef struct _GstRegistryClass GstRegistryClass;
@@ -47,181 +47,54 @@
  * Opaque #GstRegistry structure.
  */
 struct _GstRegistry {
-  GstObject 	 object;
+  GstObject      object;
 
   /*< private >*/
-  GList *plugins;
-  GList *features;
-
-  GList 	*paths;
-
-  /* FIXME move these elsewhere */
-  int            cache_file;
-
-  /* hash to speedup _lookup_feature_locked() */
-  GHashTable *feature_hash;
-  /* hash to speedup _lookup */
-  GHashTable *basename_hash;
-
   GstRegistryPrivate *priv;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstRegistryClass {
-  GstObjectClass	parent_class;
-
-  /* signals */
-  void 			(*plugin_added)		(GstRegistry *registry, GstPlugin *plugin);
-  void 			(*feature_added)	(GstRegistry *registry, GstPluginFeature *feature);
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+  GstObjectClass        parent_class;
 };
 
+GType                   gst_registry_get_type           (void);
 
-/* normal GObject stuff */
-GType			gst_registry_get_type		(void);
+GstRegistry *           gst_registry_get                (void);
 
-GstRegistry *           gst_registry_get_default        (void);
-
-gboolean			gst_registry_scan_path		(GstRegistry *registry, const gchar *path);
+gboolean                gst_registry_scan_path          (GstRegistry *registry, const gchar *path);
 void                    gst_registry_add_path           (GstRegistry * registry, const gchar * path);
-GList*			gst_registry_get_path_list	(GstRegistry *registry);
+GList*                  gst_registry_get_path_list      (GstRegistry *registry);
 
-gboolean		gst_registry_add_plugin		(GstRegistry *registry, GstPlugin *plugin);
-void			gst_registry_remove_plugin	(GstRegistry *registry, GstPlugin *plugin);
+gboolean                gst_registry_add_plugin         (GstRegistry *registry, GstPlugin *plugin);
+void                    gst_registry_remove_plugin      (GstRegistry *registry, GstPlugin *plugin);
 gboolean                gst_registry_add_feature        (GstRegistry * registry, GstPluginFeature * feature);
 void                    gst_registry_remove_feature     (GstRegistry * registry, GstPluginFeature * feature);
 
 GList*                  gst_registry_get_plugin_list    (GstRegistry *registry);
-GList*			gst_registry_plugin_filter	(GstRegistry *registry,
-							 GstPluginFilter filter,
-							 gboolean first,
-							 gpointer user_data);
-GList*			gst_registry_feature_filter	(GstRegistry *registry,
-							 GstPluginFeatureFilter filter,
-							 gboolean first,
-							 gpointer user_data);
+GList*                  gst_registry_plugin_filter      (GstRegistry *registry,
+                                                         GstPluginFilter filter,
+                                                         gboolean first,
+                                                         gpointer user_data);
+GList*                  gst_registry_feature_filter     (GstRegistry *registry,
+                                                         GstPluginFeatureFilter filter,
+                                                         gboolean first,
+                                                         gpointer user_data);
 GList *                 gst_registry_get_feature_list   (GstRegistry *registry,
                                                          GType type);
 GList *                 gst_registry_get_feature_list_by_plugin (GstRegistry *registry, const gchar *name);
 guint32                 gst_registry_get_feature_list_cookie (GstRegistry *registry);
 
-GstPlugin*		gst_registry_find_plugin	(GstRegistry *registry, const gchar *name);
-GstPluginFeature*	gst_registry_find_feature	(GstRegistry *registry, const gchar *name, GType type);
+GstPlugin*              gst_registry_find_plugin        (GstRegistry *registry, const gchar *name);
+GstPluginFeature*       gst_registry_find_feature       (GstRegistry *registry, const gchar *name, GType type);
 
-GstPlugin * 		gst_registry_lookup 		(GstRegistry *registry, const char *filename);
-GstPluginFeature * 	gst_registry_lookup_feature 	(GstRegistry *registry, const char *name);
+GstPlugin *             gst_registry_lookup             (GstRegistry *registry, const char *filename);
+GstPluginFeature *      gst_registry_lookup_feature     (GstRegistry *registry, const char *name);
 
-/* convinience defines for the default registry */
-
-/**
- * gst_default_registry_add_plugin:
- * @plugin: (transfer full): the plugin to add
- *
- * Add the plugin to the default registry.
- * The plugin-added signal will be emitted.
- *
- * Returns: TRUE on success.
- */
-#define gst_default_registry_add_plugin(plugin) \
-  gst_registry_add_plugin (gst_registry_get_default(), plugin)
-
-/**
- * gst_default_registry_add_path:
- * @path: the path to add to the registry
- *
- * Add the given path to the default registry. The syntax of the
- * path is specific to the registry. If the path has already been
- * added, do nothing.
- */
-#define gst_default_registry_add_path(path) \
-  gst_registry_add_path (gst_registry_get_default(), path)
-
-/**
- * gst_default_registry_get_path_list:
- *
- * Get the list of paths for the default registry.
- *
- * Returns: (transfer container) (element-type char*): a #GList of paths as
- *     strings. g_list_free() after use.
- */
-#define gst_default_registry_get_path_list() \
-  gst_registry_get_path_list (gst_registry_get_default())
-  
-/**
- * gst_default_registry_get_plugin_list:
- *
- * Get a copy of all plugins registered in the default registry.
- *
- * Returns: (transfer full) (element-type Gst.Plugin): a copy of the list.
- *     Free after use.
- */
-#define gst_default_registry_get_plugin_list() \
-  gst_registry_get_plugin_list (gst_registry_get_default())
-
-/**
- * gst_default_registry_find_feature:
- * @name: the pluginfeature name to find
- * @type: the pluginfeature type to find
- *
- * Find the pluginfeature with the given name and type in the default registry.
- *
- * Returns: (transfer full): the pluginfeature with the given name and type or
- *    NULL if the plugin was not found.
- */
-#define gst_default_registry_find_feature(name,type) \
-  gst_registry_find_feature (gst_registry_get_default(),name,type)
-
-/**
- * gst_default_registry_find_plugin:
- * @name: the plugin name to find
- *
- * Find the plugin with the given name in the default registry.
- * The plugin will be reffed; caller is responsible for unreffing.
- *
- * Returns: (transfer full): The plugin with the given name or NULL if the
- *     plugin was not found.
- */
-#define gst_default_registry_find_plugin(name) \
-  gst_registry_find_plugin (gst_registry_get_default(),name)
-
-/**
- * gst_default_registry_feature_filter:
- * @filter: the filter to use
- * @first: only return first match
- * @user_data: user data passed to the filter function
- *
- * Runs a filter against all features of the plugins in the default registry
- * and returns a GList with the results.
- * If the first flag is set, only the first match is
- * returned (as a list with a single object).
- *
- * Returns: (transfer full) (element-type Gst.PluginFeature): a #GList of
- *     plugin features, gst_plugin_feature_list_free after use.
- */
-#define gst_default_registry_feature_filter(filter,first,user_data) \
-  gst_registry_feature_filter (gst_registry_get_default(),filter,first,user_data)
-
-/**
- * gst_default_registry_get_feature_list_cookie:
- *
- * Returns the default registrys feature list cookie. This changes
- * every time a feature is added or removed from the registry.
- *
- * Returns: the feature list cookie.
- *
- * Since: 0.10.26
- */
-#define gst_default_registry_get_feature_list_cookie() \
-  gst_registry_get_feature_list_cookie (gst_registry_get_default())
-
-gboolean                gst_default_registry_check_feature_version (const gchar *feature_name,
-                                                                    guint        min_major,
-                                                                    guint        min_minor,
-                                                                    guint        min_micro);
+gboolean                gst_registry_check_feature_version (GstRegistry *registry,
+                                                            const gchar *feature_name,
+                                                            guint        min_major,
+                                                            guint        min_minor,
+                                                            guint        min_micro);
 
 G_END_DECLS
 
diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c
index 85648be..c358f31 100644
--- a/gst/gstregistrybinary.c
+++ b/gst/gstregistrybinary.c
@@ -219,10 +219,11 @@
 {
   long written;
   if (offset != cache->currentoffset) {
-    if (lseek (cache->cache_fd, offset, SEEK_SET) != 0) {
-      GST_ERROR ("Seeking to new offset failed");
-      return FALSE;
+    if (lseek (cache->cache_fd, offset, SEEK_SET) < 0) {
+      GST_ERROR ("Seeking to new offset failed: %s", g_strerror (errno));
+      return -1;
     }
+    GST_LOG ("Seeked from offset %lu to %lu", offset, cache->currentoffset);
     cache->currentoffset = offset;
   }
 
@@ -245,12 +246,13 @@
   if (close (cache->cache_fd) < 0)
     goto close_failed;
 
-  if (success) {
-    /* Only do the rename if we wrote the entire file successfully */
-    if (g_rename (cache->tmp_location, cache->location) < 0) {
-      GST_ERROR ("g_rename() failed: %s", g_strerror (errno));
-      goto rename_failed;
-    }
+  if (!success)
+    goto fail_after_close;
+
+  /* Only do the rename if we wrote the entire file successfully */
+  if (g_rename (cache->tmp_location, cache->location) < 0) {
+    GST_ERROR ("g_rename() failed: %s", g_strerror (errno));
+    goto rename_failed;
   }
 
   g_free (cache->tmp_location);
@@ -353,7 +355,7 @@
  * Returns: %TRUE on success.
  */
 gboolean
-priv_gst_registry_binary_write_cache (GstRegistry * registry,
+priv_gst_registry_binary_write_cache (GstRegistry * registry, GList * plugins,
     const char *location)
 {
   GList *walk;
@@ -370,7 +372,7 @@
     goto fail;
 
   /* iterate trough the list of plugins and fit them into binary structures */
-  for (walk = registry->plugins; walk; walk = g_list_next (walk)) {
+  for (walk = plugins; walk != NULL; walk = walk->next) {
     GstPlugin *plugin = GST_PLUGIN (walk->data);
 
     if (!plugin->filename)
@@ -523,7 +525,6 @@
   /* make sure these types exist */
   GST_TYPE_ELEMENT_FACTORY;
   GST_TYPE_TYPE_FIND_FACTORY;
-  GST_TYPE_INDEX_FACTORY;
 
 #ifndef GST_DISABLE_GST_DEBUG
   timer = g_timer_new ();
diff --git a/gst/gstregistrybinary.h b/gst/gstregistrybinary.h
index aa2c6d3..7120363 100644
--- a/gst/gstregistrybinary.h
+++ b/gst/gstregistrybinary.h
@@ -55,7 +55,7 @@
  * This _must_ be updated whenever the registry format changes,
  * we currently use the core version where this change happened.
  */
-#define GST_MAGIC_BINARY_VERSION_STR "0.10.30.1"
+#define GST_MAGIC_BINARY_VERSION_STR "1.0.0"
 
 /*
  * GST_MAGIC_BINARY_VERSION_LEN:
diff --git a/gst/gstregistrychunks.c b/gst/gstregistrychunks.c
index bc1ca6b..0c58dab 100644
--- a/gst/gstregistrychunks.c
+++ b/gst/gstregistrychunks.c
@@ -321,27 +321,17 @@
     }
     /* save caps */
     if (factory->caps) {
-      /* we copy the caps here so we can simplify them before saving. This
-       * is a lot faster when loading them later on */
-      GstCaps *copy = gst_caps_copy (factory->caps);
+      GstCaps *fcaps = gst_caps_ref (factory->caps);
+      /* we simplify the caps before saving. This is a lot faster
+       * when loading them later on */
+      fcaps = gst_caps_simplify (fcaps);
+      str = gst_caps_to_string (fcaps);
+      gst_caps_unref (fcaps);
 
-      gst_caps_do_simplify (copy);
-      str = gst_caps_to_string (copy);
-      gst_caps_unref (copy);
       gst_registry_chunks_save_string (list, str);
     } else {
       gst_registry_chunks_save_const_string (list, "");
     }
-  } else if (GST_IS_INDEX_FACTORY (feature)) {
-    GstIndexFactory *factory = GST_INDEX_FACTORY (feature);
-
-    pf = g_slice_new (GstRegistryChunkPluginFeature);
-    chk =
-        gst_registry_chunks_make_data (pf,
-        sizeof (GstRegistryChunkPluginFeature));
-
-    /* pack element factory strings */
-    gst_registry_chunks_save_const_string (list, factory->longdesc);
   } else {
     GST_WARNING ("unhandled feature type '%s'", type_name);
   }
@@ -503,7 +493,7 @@
   template = g_slice_new (GstStaticPadTemplate);
   template->presence = pt->presence;
   template->direction = (GstPadDirection) pt->direction;
-  template->static_caps.caps.mini_object.refcount = 0;
+  template->static_caps.caps = NULL;
 
   /* unpack pad template strings */
   unpack_const_string (*in, template->name_template, end, fail);
@@ -660,17 +650,6 @@
         factory->extensions[i - 1] = str;
       }
     }
-  } else if (GST_IS_INDEX_FACTORY (feature)) {
-    GstIndexFactory *factory = GST_INDEX_FACTORY (feature);
-
-    align (*in);
-    GST_DEBUG
-        ("Reading/casting for GstRegistryChunkPluginFeature at address %p",
-        *in);
-    unpack_element (*in, pf, GstRegistryChunkPluginFeature, end, fail);
-
-    /* unpack index factory strings */
-    unpack_string (*in, factory->longdesc, end, fail);
   } else {
     GST_WARNING ("unhandled factory type : %s", G_OBJECT_TYPE_NAME (feature));
     goto fail;
diff --git a/gst/gstsample.c b/gst/gstsample.c
new file mode 100644
index 0000000..4a7551b
--- /dev/null
+++ b/gst/gstsample.c
@@ -0,0 +1,204 @@
+/* GStreamer
+ * Copyright (C) 2011 Wim Taymans <wim.taymans@gmail.com>
+ *
+ * gstsample.c: media sample
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstsample
+ * @short_description: A media sample
+ * @see_also: #GstBuffer, #GstCaps, #GstSegment
+ *
+ * A #GstSample is a small object containing data, a type, timing and
+ * extra arbitrary information.
+ *
+ * Last reviewed on 2012-03-29 (0.11.3)
+ */
+#include "gst_private.h"
+
+#include "gstsample.h"
+
+struct _GstSample
+{
+  GstMiniObject mini_object;
+
+  GstBuffer *buffer;
+  GstCaps *caps;
+  GstSegment segment;
+  GstStructure *info;
+};
+
+GType _gst_sample_type = 0;
+
+GST_DEFINE_MINI_OBJECT_TYPE (GstSample, gst_sample);
+
+void
+_priv_gst_sample_initialize (void)
+{
+  _gst_sample_type = gst_sample_get_type ();
+}
+
+static GstSample *
+_gst_sample_copy (GstSample * sample)
+{
+  GstSample *copy;
+
+  copy = gst_sample_new (sample->buffer, sample->caps, &sample->segment,
+      gst_structure_copy (sample->info));
+
+  return copy;
+}
+
+static void
+_gst_sample_free (GstSample * sample)
+{
+  GST_LOG ("free %p", sample);
+
+  if (sample->buffer)
+    gst_buffer_unref (sample->buffer);
+  if (sample->caps)
+    gst_caps_unref (sample->caps);
+
+  g_slice_free1 (GST_MINI_OBJECT_SIZE (sample), sample);
+}
+
+/**
+ * gst_sample_new:
+ * @buffer: a #GstBuffer
+ * @caps: a #GstCaps
+ * @segment: a #GstSegment
+ * @info: a #GstStructure
+ *
+ * Create a new #GstSample with the provided details.
+ *
+ * Free-function: gst_sample_unref
+ *
+ * Returns: (transfer full): the new #GstSample. gst_sample_unref()
+ *     after usage.
+ *
+ * Since: 0.10.24
+ */
+GstSample *
+gst_sample_new (GstBuffer * buffer, GstCaps * caps, const GstSegment * segment,
+    GstStructure * info)
+{
+  GstSample *sample;
+
+  sample = g_slice_new0 (GstSample);
+
+  GST_LOG ("new %p", sample);
+
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (sample), _gst_sample_type,
+      sizeof (GstSample));
+
+  sample->mini_object.copy = (GstMiniObjectCopyFunction) _gst_sample_copy;
+  sample->mini_object.free = (GstMiniObjectFreeFunction) _gst_sample_free;
+
+  sample->buffer = buffer ? gst_buffer_ref (buffer) : NULL;
+  sample->caps = caps ? gst_caps_ref (caps) : NULL;
+
+  if (segment)
+    gst_segment_copy_into (segment, &sample->segment);
+  else
+    gst_segment_init (&sample->segment, GST_FORMAT_TIME);
+
+  if (info) {
+    if (!gst_structure_set_parent_refcount (info,
+            &sample->mini_object.refcount))
+      goto had_parent;
+
+    sample->info = info;
+  }
+  return sample;
+
+  /* ERRORS */
+had_parent:
+  {
+    gst_sample_unref (sample);
+    g_warning ("structure is already owned by another object");
+    return NULL;
+  }
+}
+
+/**
+ * gst_sample_get_buffer:
+ * @sample: a #GstSample
+ *
+ * Get the buffer associated with @sample
+ *
+ * Returns: (transfer none): the buffer of @sample or NULL when there
+ *  is no buffer. The buffer remains valid as long as @sample is valid.
+ */
+GstBuffer *
+gst_sample_get_buffer (GstSample * sample)
+{
+  g_return_val_if_fail (GST_IS_SAMPLE (sample), NULL);
+
+  return sample->buffer;
+}
+
+/**
+ * gst_sample_get_caps:
+ * @sample: a #GstSample
+ *
+ * Get the caps associated with @sample
+ *
+ * Returns: (transfer none): the caps of @sample or NULL when there
+ *  is no caps. The caps remain valid as long as @sample is valid.
+ */
+GstCaps *
+gst_sample_get_caps (GstSample * sample)
+{
+  g_return_val_if_fail (GST_IS_SAMPLE (sample), NULL);
+
+  return sample->caps;
+}
+
+/**
+ * gst_sample_get_segment:
+ * @sample: a #GstSample
+ *
+ * Get the segment associated with @sample
+ *
+ * Returns: (transfer none): the segment of @sample.
+ *  The segment remains valid as long as @sample is valid.
+ */
+GstSegment *
+gst_sample_get_segment (GstSample * sample)
+{
+  g_return_val_if_fail (GST_IS_SAMPLE (sample), NULL);
+
+  return &sample->segment;
+}
+
+/**
+ * gst_sample_get_info:
+ * @sample: a #GstSample
+ *
+ * Get extra information associated with @sample.
+ *
+ * Returns: (transfer none): the extra info of @sample.
+ *  The info remains valid as long as @sample is valid.
+ */
+const GstStructure *
+gst_sample_get_info (GstSample * sample)
+{
+  g_return_val_if_fail (GST_IS_SAMPLE (sample), NULL);
+
+  return sample->info;
+}
diff --git a/gst/gstsample.h b/gst/gstsample.h
new file mode 100644
index 0000000..45cd7ee
--- /dev/null
+++ b/gst/gstsample.h
@@ -0,0 +1,129 @@
+/* GStreamer
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ *                    2000 Wim Taymans <wtay@chello.be>
+ *
+ * gstsample.h: Header for GstSample object
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+#ifndef __GST_SAMPLE_H__
+#define __GST_SAMPLE_H__
+
+#include <gst/gstbuffer.h>
+#include <gst/gstcaps.h>
+#include <gst/gstsegment.h>
+
+G_BEGIN_DECLS
+
+GST_EXPORT GType _gst_sample_type;
+
+#define GST_TYPE_SAMPLE      (_gst_sample_type)
+#define GST_IS_SAMPLE(obj)   (GST_IS_MINI_OBJECT_TYPE(obj, GST_TYPE_SAMPLE))
+#define GST_SAMPLE_CAST(obj) ((GstSample *)obj)
+#define GST_SAMPLE(obj)      (GST_SAMPLE_CAST(obj))
+
+/**
+ * GstSample:
+ *
+ * The opaque structure of a #GstSample. A sample contains a typed memory
+ * block and the associated timing information. It is mainly used to
+ * exchange buffers with and application.
+ */
+typedef struct _GstSample GstSample;
+
+GType gst_sample_get_type            (void);
+
+/* allocation */
+GstSample *          gst_sample_new           (GstBuffer          *buffer,
+                                               GstCaps            *caps,
+                                               const GstSegment   *segment,
+                                               GstStructure       *info);
+
+GstBuffer *          gst_sample_get_buffer    (GstSample *sample);
+GstCaps *            gst_sample_get_caps      (GstSample *sample);
+GstSegment *         gst_sample_get_segment   (GstSample *sample);
+const GstStructure * gst_sample_get_info      (GstSample *sample);
+
+/* refcounting */
+/**
+ * gst_sample_ref:
+ * @sample: a #GstSample
+ *
+ * Increases the refcount of the given sample by one.
+ *
+ * Returns: (transfer full): @sample
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstSample * gst_sample_ref (GstSample * sample);
+#endif
+
+static inline GstSample *
+gst_sample_ref (GstSample * sample)
+{
+  return GST_SAMPLE_CAST (gst_mini_object_ref (GST_MINI_OBJECT_CAST (
+      sample)));
+}
+
+/**
+ * gst_sample_unref:
+ * @sample: (transfer full): a #GstSample
+ *
+ * Decreases the refcount of the sample. If the refcount reaches 0, the
+ * sample will be freed.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_sample_unref (GstSample * sample);
+#endif
+
+static inline void
+gst_sample_unref (GstSample * sample)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (sample));
+}
+
+/**
+ * gst_value_set_sample:
+ * @v: a #GValue to receive the data
+ * @b: (transfer none): a #GstSample to assign to the GstValue
+ *
+ * Sets @b as the value of @v.  Caller retains reference to sample.
+ */
+#define         gst_value_set_sample(v,b)       g_value_set_boxed((v),(b))
+/**
+ * gst_value_take_sample:
+ * @v: a #GValue to receive the data
+ * @b: (transfer full): a #GstSample to assign to the GstValue
+ *
+ * Sets @b as the value of @v.  Caller gives away reference to sample.
+ */
+#define         gst_value_take_sample(v,b)      g_value_take_boxed(v,(b))
+/**
+ * gst_value_get_sample:
+ * @v: a #GValue to query
+ *
+ * Receives a #GstSample as the value of @v. Does not return a reference to
+ * the sample, so the pointer is only valid for as long as the caller owns
+ * a reference to @v.
+ *
+ * Returns: (transfer none): sample
+ */
+#define         gst_value_get_sample(v)         GST_SAMPLE_CAST (g_value_get_boxed(v))
+
+G_END_DECLS
+
+#endif /* __GST_SAMPLE_H__ */
diff --git a/gst/gstsegment.c b/gst/gstsegment.c
index 456bed5..0e5cc17 100644
--- a/gst/gstsegment.c
+++ b/gst/gstsegment.c
@@ -58,30 +58,30 @@
  * normally be left to their default 0 value. The stop position is left to -1 unless
  * explicitly configured to a different value after a seek event.
  *
- * The current position in the segment should be set with the gst_segment_set_last_stop().
- * The public last_stop field contains the last set stop position in the segment.
+ * The current position in the segment should be set by changing the position
+ * member in the structure.
  *
  * For elements that perform seeks, the current segment should be updated with the
- * gst_segment_set_seek() and the values from the seek event. This method will update
- * all the segment fields. The last_stop field will contain the new playback position.
+ * gst_segment_do_seek() and the values from the seek event. This method will update
+ * all the segment fields. The position field will contain the new playback position.
  * If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
- * the last_stop position, possibly with updated flags or rate.
+ * the position position, possibly with updated flags or rate.
  *
- * For elements that want to use #GstSegment to track the playback region, use
- * gst_segment_set_newsegment() to update the segment fields with the information from
- * the newsegment event. The gst_segment_clip() method can be used to check and clip
+ * For elements that want to use #GstSegment to track the playback region,
+ * update the segment fields with the information from the newsegment event.
+ * The gst_segment_clip() method can be used to check and clip
  * the media data to the segment boundaries.
  *
  * For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time()
  * can be used to convert a timestamp to a value that can be used to synchronize
- * to the clock. This function takes into account all accumulated segments as well as
+ * to the clock. This function takes into account the base as well as
  * any rate or applied_rate conversions.
  *
  * For elements that need to perform operations on media data in stream_time,
  * gst_segment_to_stream_time() can be used to convert a timestamp and the segment
  * info to stream time (which is always between 0 and the duration of the stream).
  *
- * Last reviewed on 2007-05-17 (0.10.13)
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 /**
@@ -107,24 +107,21 @@
   return result;
 }
 
+/**
+ * gst_segment_copy_into:
+ * @src: (transfer none): a #GstSegment
+ * @dest: (transfer none): a #GstSegment
+ *
+ * Copy the contents of @src into @dest.
+ */
 void
 gst_segment_copy_into (const GstSegment * src, GstSegment * dest)
 {
   memcpy (dest, src, sizeof (GstSegment));
 }
 
-GType
-gst_segment_get_type (void)
-{
-  static GType gst_segment_type = 0;
-
-  if (G_UNLIKELY (gst_segment_type == 0)) {
-    gst_segment_type = g_boxed_type_register_static ("GstSegment",
-        (GBoxedCopyFunc) gst_segment_copy, (GBoxedFreeFunc) gst_segment_free);
-  }
-
-  return gst_segment_type;
-}
+G_DEFINE_BOXED_TYPE (GstSegment, gst_segment,
+    (GBoxedCopyFunc) gst_segment_copy, (GBoxedFreeFunc) gst_segment_free);
 
 /**
  * gst_segment_new:
@@ -175,7 +172,7 @@
 {
   g_return_if_fail (segment != NULL);
 
-  segment->flags = GST_SEEK_FLAG_NONE;
+  segment->flags = GST_SEGMENT_FLAG_NONE;
   segment->rate = 1.0;
   segment->applied_rate = 1.0;
   segment->format = format;
@@ -265,16 +262,6 @@
       if (start == -1)
         start = 0;
       break;
-    case GST_SEEK_TYPE_CUR:
-    {
-      gint64 sstart = (gint64) start;
-      /* add start to currently configured segment */
-      if (sstart > 0 || segment->start > -sstart)
-        start = segment->start + start;
-      else
-        start = 0;
-      break;
-    }
     case GST_SEEK_TYPE_END:
       if (segment->duration != -1) {
         /* add start to total length */
@@ -301,16 +288,6 @@
     case GST_SEEK_TYPE_SET:
       /* stop holds required value */
       break;
-    case GST_SEEK_TYPE_CUR:
-      if (segment->stop != -1) {
-        gint64 sstop = (gint64) stop;
-        if (sstop > 0 || segment->stop > -sstop)
-          stop = segment->stop + stop;
-        else
-          stop = 0;
-      } else
-        stop = -1;
-      break;
     case GST_SEEK_TYPE_END:
       if (segment->duration != -1) {
         stop = segment->duration + stop;
@@ -592,9 +569,6 @@
       *clip_stop = stop;
     else
       *clip_stop = MIN (stop, segment->stop);
-
-    if (segment->duration != -1 && *clip_stop != -1)
-      *clip_stop = MIN (*clip_stop, segment->duration);
   }
 
   return TRUE;
diff --git a/gst/gstsegment.h b/gst/gstsegment.h
index db5e1ad..65f9210 100644
--- a/gst/gstsegment.h
+++ b/gst/gstsegment.h
@@ -34,10 +34,6 @@
 /**
  * GstSeekType:
  * @GST_SEEK_TYPE_NONE: no change in position is required
- * @GST_SEEK_TYPE_CUR: change relative to currently configured segment. This
- *    can't be used to seek relative to the current playback position - do a
- *    position query, calculate the desired position and then do an absolute
- *    position seek instead if that's what you want to do.
  * @GST_SEEK_TYPE_SET: absolute position is requested
  * @GST_SEEK_TYPE_END: relative position to duration is requested
  *
@@ -47,9 +43,8 @@
 typedef enum {
   /* one of these */
   GST_SEEK_TYPE_NONE            = 0,
-  GST_SEEK_TYPE_CUR             = 1,
-  GST_SEEK_TYPE_SET             = 2,
-  GST_SEEK_TYPE_END             = 3
+  GST_SEEK_TYPE_SET             = 1,
+  GST_SEEK_TYPE_END             = 2
 } GstSeekType;
 
 /**
@@ -147,12 +142,15 @@
 
   guint64         position;
   guint64         duration;
+
+  /* < private > */
+  gpointer        _gst_reserved[GST_PADDING];
 };
 
 GType        gst_segment_get_type            (void);
 
-GstSegment * gst_segment_new                 (void);
-GstSegment * gst_segment_copy                (const GstSegment *segment);
+GstSegment * gst_segment_new                 (void) G_GNUC_MALLOC;
+GstSegment * gst_segment_copy                (const GstSegment *segment) G_GNUC_MALLOC;
 void         gst_segment_copy_into           (const GstSegment *src, GstSegment *dest);
 void         gst_segment_free                (GstSegment *segment);
 
diff --git a/gst/gststructure.c b/gst/gststructure.c
index ca16622..8065b31 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -28,15 +28,16 @@
  * as GQuarks and the values can be of any GType.
  *
  * In addition to the key/value pairs, a #GstStructure also has a name. The name
- * starts with a letter and can be folled by letters, numbers and any of "/-_.:".
+ * starts with a letter and can be filled by letters, numbers and any of "/-_.:".
  *
  * #GstStructure is used by various GStreamer subsystems to store information
  * in a flexible and extensible way. A #GstStructure does not have a refcount
- * because it usually is part of a higher level object such as #GstCaps. It
- * provides a means to enforce mutability using the refcount of the parent
- * with the gst_structure_set_parent_refcount() method.
+ * because it usually is part of a higher level object such as #GstCaps,
+ * #GstMessage, #GstEvent, #GstQuery. It provides a means to enforce mutability
+ * using the refcount of the parent with the gst_structure_set_parent_refcount()
+ * method.
  *
- * A #GstStructure can be created with gst_structure_empty_new() or
+ * A #GstStructure can be created with gst_structure_new_empty() or
  * gst_structure_new(), which both take a name and an optional set of
  * key/value pairs along with the types of the values.
  *
@@ -52,7 +53,7 @@
  * Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
  * not allowed. Strings must not be empty either, but may be NULL.
  *
- * Last reviewed on 2009-06-08 (0.10.23)
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -113,19 +114,21 @@
 
 GType _gst_structure_type = 0;
 
+
+G_DEFINE_BOXED_TYPE (GstStructure, gst_structure,
+    gst_structure_copy_conditional, gst_structure_free);
+
 void
 _priv_gst_structure_initialize (void)
 {
-  _gst_structure_type = g_boxed_type_register_static ("GstStructure",
-      (GBoxedCopyFunc) gst_structure_copy_conditional,
-      (GBoxedFreeFunc) gst_structure_free);
+  _gst_structure_type = gst_structure_get_type ();
 
   g_value_register_transform_func (_gst_structure_type, G_TYPE_STRING,
       gst_structure_transform_to_string);
 }
 
 static GstStructure *
-gst_structure_id_empty_new_with_size (GQuark quark, guint prealloc)
+gst_structure_new_id_empty_with_size (GQuark quark, guint prealloc)
 {
   GstStructureImpl *structure;
 
@@ -136,11 +139,13 @@
   GST_STRUCTURE_FIELDS (structure) =
       g_array_sized_new (FALSE, FALSE, sizeof (GstStructureField), prealloc);
 
+  GST_TRACE ("created structure %p", structure);
+
   return GST_STRUCTURE_CAST (structure);
 }
 
 /**
- * gst_structure_id_empty_new:
+ * gst_structure_new_id_empty:
  * @quark: name of new structure
  *
  * Creates a new, empty #GstStructure with the given name as a GQuark.
@@ -150,11 +155,11 @@
  * Returns: (transfer full): a new, empty #GstStructure
  */
 GstStructure *
-gst_structure_id_empty_new (GQuark quark)
+gst_structure_new_id_empty (GQuark quark)
 {
   g_return_val_if_fail (quark != 0, NULL);
 
-  return gst_structure_id_empty_new_with_size (quark, 0);
+  return gst_structure_new_id_empty_with_size (quark, 0);
 }
 
 #ifndef G_DISABLE_CHECKS
@@ -181,12 +186,20 @@
     return FALSE;
   }
 
+  if (strncmp (name, "video/x-raw-", 12) == 0) {
+    g_warning ("0.10-style raw video caps are being created. Should be "
+        "video/x-raw,format=(string).. now.");
+  } else if (strncmp (name, "audio/x-raw-", 12) == 0) {
+    g_warning ("0.10-style raw audio caps are being created. Should be "
+        "audio/x-raw,format=(string).. now.");
+  }
+
   return TRUE;
 }
 #endif
 
 /**
- * gst_structure_empty_new:
+ * gst_structure_new_empty:
  * @name: name of new structure
  *
  * Creates a new, empty #GstStructure with the given @name.
@@ -198,11 +211,11 @@
  * Returns: (transfer full): a new, empty #GstStructure
  */
 GstStructure *
-gst_structure_empty_new (const gchar * name)
+gst_structure_new_empty (const gchar * name)
 {
   g_return_val_if_fail (gst_structure_validate_name (name), NULL);
 
-  return gst_structure_id_empty_new_with_size (g_quark_from_string (name), 0);
+  return gst_structure_new_id_empty_with_size (g_quark_from_string (name), 0);
 }
 
 /**
@@ -255,7 +268,7 @@
 {
   GstStructure *structure;
 
-  structure = gst_structure_empty_new (name);
+  structure = gst_structure_new_empty (name);
 
   if (structure)
     gst_structure_set_valist (structure, firstfield, varargs);
@@ -319,7 +332,7 @@
   g_return_val_if_fail (structure != NULL, NULL);
 
   len = GST_STRUCTURE_FIELDS (structure)->len;
-  new_structure = gst_structure_id_empty_new_with_size (structure->name, len);
+  new_structure = gst_structure_new_id_empty_with_size (structure->name, len);
 
   for (i = 0; i < len; i++) {
     GstStructureField new_field = { 0 };
@@ -330,6 +343,8 @@
     gst_value_init_and_copy (&new_field.value, &field->value);
     g_array_append_val (GST_STRUCTURE_FIELDS (new_structure), new_field);
   }
+  GST_CAT_TRACE (GST_CAT_PERFORMANCE, "doing copy %p -> %p",
+      structure, new_structure);
 
   return new_structure;
 }
@@ -362,6 +377,8 @@
 #ifdef USE_POISONING
   memset (structure, 0xff, sizeof (GstStructure));
 #endif
+  GST_TRACE ("free structure %p", structure);
+
   g_slice_free1 (sizeof (GstStructureImpl), structure);
 }
 
@@ -579,10 +596,6 @@
 
     type = va_arg (varargs, GType);
 
-    if (G_UNLIKELY (type == G_TYPE_DATE)) {
-      g_warning ("Don't use G_TYPE_DATE, use GST_TYPE_DATE instead\n");
-      type = GST_TYPE_DATE;
-    }
     G_VALUE_COLLECT_INIT (&field.value, type, varargs, 0, &err);
     if (G_UNLIKELY (err)) {
       g_critical ("%s", err);
@@ -649,10 +662,6 @@
 
     type = va_arg (varargs, GType);
 
-    if (G_UNLIKELY (type == G_TYPE_DATE)) {
-      g_warning ("Don't use G_TYPE_DATE, use GST_TYPE_DATE instead\n");
-      type = GST_TYPE_DATE;
-    }
 #ifndef G_VALUE_COLLECT_INIT
     g_value_init (&field.value, type);
     G_VALUE_COLLECT (&field.value, varargs, 0, &err);
@@ -716,7 +725,7 @@
 }
 
 /**
- * gst_structure_id_new:
+ * gst_structure_new_id:
  * @name_quark: name of new structure
  * @field_quark: the GQuark for the name of the field to set
  * @...: variable arguments
@@ -724,7 +733,7 @@
  * Creates a new #GstStructure with the given name as a GQuark, followed by
  * fieldname quark, GType, argument(s) "triplets" in the same format as
  * gst_structure_id_set(). Basically a convenience wrapper around
- * gst_structure_id_empty_new() and gst_structure_id_set().
+ * gst_structure_new_id_empty() and gst_structure_id_set().
  *
  * The last variable argument must be NULL (or 0).
  *
@@ -735,7 +744,7 @@
  * Since: 0.10.24
  */
 GstStructure *
-gst_structure_id_new (GQuark name_quark, GQuark field_quark, ...)
+gst_structure_new_id (GQuark name_quark, GQuark field_quark, ...)
 {
   GstStructure *s;
   va_list varargs;
@@ -743,7 +752,7 @@
   g_return_val_if_fail (name_quark != 0, NULL);
   g_return_val_if_fail (field_quark != 0, NULL);
 
-  s = gst_structure_id_empty_new (name_quark);
+  s = gst_structure_new_id_empty (name_quark);
 
   va_start (varargs, field_quark);
   gst_structure_id_set_valist_internal (s, field_quark, varargs);
@@ -795,10 +804,10 @@
       g_value_unset (&field->value);
       return;
     }
-  } else if (G_UNLIKELY (GST_VALUE_HOLDS_DATE (&field->value))) {
+  } else if (G_UNLIKELY (G_VALUE_HOLDS (&field->value, G_TYPE_DATE))) {
     const GDate *d;
 
-    d = gst_value_get_date (&field->value);
+    d = g_value_get_boxed (&field->value);
     /* only check for NULL GDates in taglists, as they might make sense
      * in other, generic structs */
     if (G_UNLIKELY ((IS_TAGLIST (structure) && d == NULL))) {
@@ -1396,7 +1405,7 @@
 
   if (field == NULL)
     return FALSE;
-  if (!GST_VALUE_HOLDS_DATE (&field->value))
+  if (!G_VALUE_HOLDS (&field->value, G_TYPE_DATE))
     return FALSE;
 
   /* FIXME: 0.11 g_value_dup_boxed() -> g_value_get_boxed() */
@@ -1685,9 +1694,11 @@
       ,
       {"structure", GST_TYPE_STRUCTURE}
       ,
-      {"date", GST_TYPE_DATE}
+      {"date", G_TYPE_DATE}
       ,
       {"datetime", GST_TYPE_DATE_TIME}
+      ,
+      {"bitmask", GST_TYPE_BITMASK}
     };
     _num = G_N_ELEMENTS (dyn_abbrs);
     /* permanently allocate and copy the array now */
@@ -1904,8 +1915,9 @@
 {
   GValue value1 = { 0 };
   GValue value2 = { 0 };
+  GValue value3 = { 0 };
   GType range_type;
-  gboolean ret;
+  gboolean ret, have_step = FALSE;
 
   if (*s != '[')
     return FALSE;
@@ -1932,12 +1944,34 @@
   while (g_ascii_isspace (*s))
     s++;
 
+  /* optional step for int and int64 */
+  if (G_VALUE_TYPE (&value1) == G_TYPE_INT
+      || G_VALUE_TYPE (&value1) == G_TYPE_INT64) {
+    if (*s == ',') {
+      s++;
+
+      while (g_ascii_isspace (*s))
+        s++;
+
+      ret = gst_structure_parse_value (s, &s, &value3, type);
+      if (ret == FALSE)
+        return FALSE;
+
+      while (g_ascii_isspace (*s))
+        s++;
+
+      have_step = TRUE;
+    }
+  }
+
   if (*s != ']')
     return FALSE;
   s++;
 
   if (G_VALUE_TYPE (&value1) != G_VALUE_TYPE (&value2))
     return FALSE;
+  if (have_step && G_VALUE_TYPE (&value1) != G_VALUE_TYPE (&value3))
+    return FALSE;
 
   if (G_VALUE_TYPE (&value1) == G_TYPE_DOUBLE) {
     range_type = GST_TYPE_DOUBLE_RANGE;
@@ -1948,13 +1982,26 @@
   } else if (G_VALUE_TYPE (&value1) == G_TYPE_INT) {
     range_type = GST_TYPE_INT_RANGE;
     g_value_init (value, range_type);
-    gst_value_set_int_range (value, gst_g_value_get_int_unchecked (&value1),
-        gst_g_value_get_int_unchecked (&value2));
+    if (have_step)
+      gst_value_set_int_range_step (value,
+          gst_g_value_get_int_unchecked (&value1),
+          gst_g_value_get_int_unchecked (&value2),
+          gst_g_value_get_int_unchecked (&value3));
+    else
+      gst_value_set_int_range (value, gst_g_value_get_int_unchecked (&value1),
+          gst_g_value_get_int_unchecked (&value2));
   } else if (G_VALUE_TYPE (&value1) == G_TYPE_INT64) {
     range_type = GST_TYPE_INT64_RANGE;
     g_value_init (value, range_type);
-    gst_value_set_int64_range (value, gst_g_value_get_int64_unchecked (&value1),
-        gst_g_value_get_int64_unchecked (&value2));
+    if (have_step)
+      gst_value_set_int64_range_step (value,
+          gst_g_value_get_int64_unchecked (&value1),
+          gst_g_value_get_int64_unchecked (&value2),
+          gst_g_value_get_int64_unchecked (&value3));
+    else
+      gst_value_set_int64_range (value,
+          gst_g_value_get_int64_unchecked (&value1),
+          gst_g_value_get_int64_unchecked (&value2));
   } else if (G_VALUE_TYPE (&value1) == GST_TYPE_FRACTION) {
     range_type = GST_TYPE_FRACTION_RANGE;
     g_value_init (value, range_type);
@@ -2200,7 +2247,7 @@
 /**
  * gst_structure_from_string:
  * @string: a string representation of a #GstStructure.
- * @end: (out) (allow-none): pointer to store the end of the string in.
+ * @end: (out) (allow-none) (transfer none): pointer to store the end of the string in.
  *
  * Creates a #GstStructure from a string representation.
  * If end is not NULL, a pointer to the place inside the given string
@@ -2240,7 +2287,7 @@
 
   save = *w;
   *w = '\0';
-  structure = gst_structure_empty_new (name);
+  structure = gst_structure_new_empty (name);
   *w = save;
 
   if (G_UNLIKELY (structure == NULL))
@@ -2855,9 +2902,9 @@
  * (as a GType), pointer(s) to a variable(s) to hold the return value(s).
  * The last variable argument should be NULL.
  *
- * For refcounted (mini)objects you will acquire your own reference which
+ * For refcounted (mini)objects you will receive a new reference which
  * you must release with a suitable _unref() when no longer needed. For
- * strings and boxed types you will acquire a copy which you will need to
+ * strings and boxed types you will receive a copy which you will need to
  * release with either g_free() or the suitable function for the boxed type.
  *
  * Returns: FALSE if there was a problem reading any of the fields (e.g.
@@ -2900,9 +2947,9 @@
  * more efficient since it saves the string-to-quark lookup in the global
  * quark hashtable.
  *
- * For refcounted (mini)objects you will acquire your own reference which
+ * For refcounted (mini)objects you will receive a new reference which
  * you must release with a suitable _unref() when no longer needed. For
- * strings and boxed types you will acquire a copy which you will need to
+ * strings and boxed types you will receive a copy which you will need to
  * release with either g_free() or the suitable function for the boxed type.
  *
  * Returns: FALSE if there was a problem reading any of the fields (e.g.
@@ -2953,7 +3000,7 @@
  *
  * Returns: TRUE if the two structures have the same name and field.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  **/
 gboolean
 gst_structure_is_equal (const GstStructure * structure1,
@@ -2962,6 +3009,9 @@
   g_return_val_if_fail (GST_IS_STRUCTURE (structure1), FALSE);
   g_return_val_if_fail (GST_IS_STRUCTURE (structure2), FALSE);
 
+  if (G_UNLIKELY (structure1 == structure2))
+    return TRUE;
+
   if (structure1->name != structure2->name) {
     return FALSE;
   }
@@ -3023,7 +3073,7 @@
  *
  * Returns: Intersection of @struct1 and @struct2
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 GstStructure *
 gst_structure_intersect (const GstStructure * struct1,
@@ -3039,7 +3089,7 @@
 
   /* copy fields from struct1 which we have not in struct2 to target
    * intersect if we have the field in both */
-  data.dest = gst_structure_id_empty_new (struct1->name);
+  data.dest = gst_structure_new_id_empty (struct1->name);
   data.intersect = struct2;
   if (G_UNLIKELY (!gst_structure_foreach ((GstStructure *) struct1,
               gst_structure_intersect_field1, &data)))
@@ -3073,10 +3123,7 @@
 
       if (eq == GST_VALUE_UNORDERED) {
         /* we need to try interseting */
-        GValue dest_value = { 0 };
-        if (gst_value_intersect (&dest_value, val1, val2)) {
-          g_value_unset (&dest_value);
-        } else {
+        if (!gst_value_intersect (NULL, val1, val2)) {
           return FALSE;
         }
       } else if (eq != GST_VALUE_EQUAL) {
@@ -3097,7 +3144,7 @@
  *
  * Returns: %TRUE if intersection would not be empty
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 gboolean
 gst_structure_can_intersect (const GstStructure * struct1,
@@ -3110,11 +3157,8 @@
     return FALSE;
 
   /* tries to intersect if we have the field in both */
-  if (G_UNLIKELY (!gst_structure_foreach ((GstStructure *) struct1,
-              gst_caps_structure_can_intersect_field, (gpointer) struct2)))
-    return FALSE;
-
-  return TRUE;
+  return gst_structure_foreach ((GstStructure *) struct1,
+      gst_caps_structure_can_intersect_field, (gpointer) struct2);
 }
 
 static gboolean
@@ -3122,45 +3166,24 @@
     gpointer user_data)
 {
   GstStructure *superset = user_data;
-  GValue subtraction = { 0, };
   const GValue *other;
+  int comparison;
 
   if (!(other = gst_structure_id_get_value (superset, field_id)))
     /* field is missing in the superset => is subset */
     return TRUE;
 
+  comparison = gst_value_compare (other, value);
+
   /* equal values are subset */
-  if (gst_value_compare (other, value) == GST_VALUE_EQUAL)
+  if (comparison == GST_VALUE_EQUAL)
     return TRUE;
 
-  /*
-   * 1 - [1,2] = empty
-   * -> !subset
-   *
-   * [1,2] - 1 = 2
-   *  -> 1 - [1,2] = empty
-   *  -> subset
-   *
-   * [1,3] - [1,2] = 3
-   * -> [1,2] - [1,3] = empty
-   * -> subset
-   *
-   * {1,2} - {1,3} = 2
-   * -> {1,3} - {1,2} = 3
-   * -> !subset
-   *
-   *  First caps subtraction needs to return a non-empty set, second
-   *  subtractions needs to give en empty set.
-   */
-  if (gst_value_subtract (&subtraction, other, value)) {
-    g_value_unset (&subtraction);
-    /* !empty result, swapping must be empty */
-    if (!gst_value_subtract (&subtraction, value, other))
-      return TRUE;
+  /* ordered, but unequal, values are not */
+  if (comparison != GST_VALUE_UNORDERED)
+    return FALSE;
 
-    g_value_unset (&subtraction);
-  }
-  return FALSE;
+  return gst_value_is_subset (value, other);
 }
 
 /**
@@ -3174,7 +3197,7 @@
  *
  * Returns: %TRUE if @subset is a subset of @superset
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 gboolean
 gst_structure_is_subset (const GstStructure * subset,
diff --git a/gst/gststructure.h b/gst/gststructure.h
index 61e4253..90c4b59 100644
--- a/gst/gststructure.h
+++ b/gst/gststructure.h
@@ -28,7 +28,7 @@
 
 G_BEGIN_DECLS
 
-extern GType _gst_structure_type;
+GST_EXPORT GType _gst_structure_type;
 
 typedef struct _GstStructure GstStructure;
 
@@ -83,18 +83,20 @@
   GQuark name;
 };
 
-GstStructure *          gst_structure_empty_new            (const gchar *            name);
-GstStructure *          gst_structure_id_empty_new         (GQuark                   quark);
+GType                   gst_structure_get_type             (void);
+
+GstStructure *          gst_structure_new_empty            (const gchar *            name) G_GNUC_MALLOC;
+GstStructure *          gst_structure_new_id_empty         (GQuark                   quark) G_GNUC_MALLOC;
 GstStructure *          gst_structure_new                  (const gchar *            name,
 					                    const gchar *            firstfield,
-							    ...);
+							    ...) G_GNUC_NULL_TERMINATED  G_GNUC_MALLOC;
 GstStructure *          gst_structure_new_valist           (const gchar *            name,
 						            const gchar *            firstfield,
-							    va_list                  varargs);
-GstStructure *          gst_structure_id_new               (GQuark                   name_quark,
+							    va_list                  varargs) G_GNUC_MALLOC;
+GstStructure *          gst_structure_new_id               (GQuark                   name_quark,
                                                             GQuark                   field_quark,
-                                                            ...);
-GstStructure *          gst_structure_copy                 (const GstStructure      *structure);
+                                                            ...) G_GNUC_MALLOC;
+GstStructure *          gst_structure_copy                 (const GstStructure      *structure) G_GNUC_MALLOC;
 gboolean		gst_structure_set_parent_refcount  (GstStructure            *structure,
                                                             gint                    *refcount);
 void                    gst_structure_free                 (GstStructure            *structure);
@@ -218,9 +220,9 @@
 							    gint *value_numerator,
 							    gint *value_denominator);
 
-gchar *                 gst_structure_to_string            (const GstStructure      *structure);
+gchar *                 gst_structure_to_string            (const GstStructure      *structure) G_GNUC_MALLOC;
 GstStructure *          gst_structure_from_string          (const gchar             *string,
-							    gchar                  **end);
+							    gchar                  **end) G_GNUC_MALLOC;
 
 gboolean                 gst_structure_fixate_field_nearest_int    (GstStructure *structure,
 									 const char   *field_name,
@@ -249,7 +251,7 @@
 gboolean                 gst_structure_can_intersect(const GstStructure *struct1,
 						     const GstStructure *struct2);
 GstStructure*            gst_structure_intersect (const GstStructure *struct1,
-                                                  const GstStructure *struct2);
+                                                  const GstStructure *struct2)  G_GNUC_MALLOC;
 void                     gst_structure_fixate    (GstStructure *structure);
 
 G_END_DECLS
diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c
index b592813..7c461c9 100644
--- a/gst/gstsystemclock.c
+++ b/gst/gstsystemclock.c
@@ -57,14 +57,25 @@
 
 #define GET_ENTRY_STATUS(e)          ((GstClockReturn) g_atomic_int_get(&GST_CLOCK_ENTRY_STATUS(e)))
 #define SET_ENTRY_STATUS(e,val)      (g_atomic_int_set(&GST_CLOCK_ENTRY_STATUS(e),(val)))
-#define CAS_ENTRY_STATUS(e,old,val)  (G_ATOMIC_INT_COMPARE_AND_EXCHANGE(\
+#define CAS_ENTRY_STATUS(e,old,val)  (g_atomic_int_compare_and_exchange(\
                                        (&GST_CLOCK_ENTRY_STATUS(e)), (old), (val)))
 
 /* Define this to get some extra debug about jitter from each clock_wait */
 #undef WAIT_DEBUGGING
 
+#define GST_SYSTEM_CLOCK_GET_COND(clock)        (&GST_SYSTEM_CLOCK_CAST(clock)->priv->entries_changed)
+#define GST_SYSTEM_CLOCK_WAIT(clock)            g_cond_wait(GST_SYSTEM_CLOCK_GET_COND(clock),GST_OBJECT_GET_LOCK(clock))
+#define GST_SYSTEM_CLOCK_TIMED_WAIT(clock,tv)   g_cond_timed_wait(GST_SYSTEM_CLOCK_GET_COND(clock),GST_OBJECT_GET_LOCK(clock),tv)
+#define GST_SYSTEM_CLOCK_BROADCAST(clock)       g_cond_broadcast(GST_SYSTEM_CLOCK_GET_COND(clock))
+
 struct _GstSystemClockPrivate
 {
+  GThread *thread;              /* thread for async notify */
+  gboolean stopping;
+
+  GList *entries;
+  GCond entries_changed;
+
   GstClockType clock_type;
   GstPoll *timer;
   gint wakeup_count;            /* the number of entries with a pending wakeup */
@@ -121,12 +132,11 @@
 static gboolean gst_system_clock_start_async (GstSystemClock * clock);
 static void gst_system_clock_add_wakeup (GstSystemClock * sysclock);
 
-static GStaticMutex _gst_sysclock_mutex = G_STATIC_MUTEX_INIT;
-
-static GstClockClass *parent_class = NULL;
+static GMutex _gst_sysclock_mutex;
 
 /* static guint gst_system_clock_signals[LAST_SIGNAL] = { 0 }; */
 
+#define gst_system_clock_parent_class parent_class
 G_DEFINE_TYPE (GstSystemClock, gst_system_clock, GST_TYPE_CLOCK);
 
 static void
@@ -138,8 +148,6 @@
   gobject_class = (GObjectClass *) klass;
   gstclock_class = (GstClockClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
-
   g_type_class_add_private (klass, sizeof (GstSystemClockPrivate));
 
   gobject_class->dispose = gst_system_clock_dispose;
@@ -162,23 +170,28 @@
 static void
 gst_system_clock_init (GstSystemClock * clock)
 {
+  GstSystemClockPrivate *priv;
+
   GST_OBJECT_FLAG_SET (clock,
       GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC |
       GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC |
       GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC |
       GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC);
 
-  clock->priv = GST_SYSTEM_CLOCK_GET_PRIVATE (clock);
+  clock->priv = priv = GST_SYSTEM_CLOCK_GET_PRIVATE (clock);
 
-  clock->priv->clock_type = DEFAULT_CLOCK_TYPE;
-  clock->priv->timer = gst_poll_new_timer ();
+  priv->clock_type = DEFAULT_CLOCK_TYPE;
+  priv->timer = gst_poll_new_timer ();
+
+  priv->entries = NULL;
+  g_cond_init (&priv->entries_changed);
 
 #ifdef G_OS_WIN32
-  QueryPerformanceFrequency (&clock->priv->frequency);
+  QueryPerformanceFrequency (&priv->frequency);
   /* can be 0 if the hardware does not have hardware support */
-  if (clock->priv->frequency.QuadPart != 0)
+  if (priv->frequency.QuadPart != 0)
     /* we take a base time so that time starts from 0 to ease debugging */
-    QueryPerformanceCounter (&clock->priv->start);
+    QueryPerformanceCounter (&priv->start);
 #endif /* G_OS_WIN32 */
 
 #if 0
@@ -194,32 +207,34 @@
 {
   GstClock *clock = (GstClock *) object;
   GstSystemClock *sysclock = GST_SYSTEM_CLOCK_CAST (clock);
+  GstSystemClockPrivate *priv = sysclock->priv;
   GList *entries;
 
   /* else we have to stop the thread */
   GST_OBJECT_LOCK (clock);
-  sysclock->stopping = TRUE;
+  priv->stopping = TRUE;
   /* unschedule all entries */
-  for (entries = clock->entries; entries; entries = g_list_next (entries)) {
+  for (entries = priv->entries; entries; entries = g_list_next (entries)) {
     GstClockEntry *entry = (GstClockEntry *) entries->data;
 
     GST_CAT_DEBUG (GST_CAT_CLOCK, "unscheduling entry %p", entry);
     SET_ENTRY_STATUS (entry, GST_CLOCK_UNSCHEDULED);
   }
-  GST_CLOCK_BROADCAST (clock);
+  GST_SYSTEM_CLOCK_BROADCAST (clock);
   gst_system_clock_add_wakeup (sysclock);
   GST_OBJECT_UNLOCK (clock);
 
-  if (sysclock->thread)
-    g_thread_join (sysclock->thread);
-  sysclock->thread = NULL;
+  if (priv->thread)
+    g_thread_join (priv->thread);
+  priv->thread = NULL;
   GST_CAT_DEBUG (GST_CAT_CLOCK, "joined thread");
 
-  g_list_foreach (clock->entries, (GFunc) gst_clock_id_unref, NULL);
-  g_list_free (clock->entries);
-  clock->entries = NULL;
+  g_list_foreach (priv->entries, (GFunc) gst_clock_id_unref, NULL);
+  g_list_free (priv->entries);
+  priv->entries = NULL;
 
-  gst_poll_free (sysclock->priv->timer);
+  gst_poll_free (priv->timer);
+  g_cond_clear (&priv->entries_changed);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 
@@ -279,7 +294,7 @@
 {
   GstClock *clock;
 
-  g_static_mutex_lock (&_gst_sysclock_mutex);
+  g_mutex_lock (&_gst_sysclock_mutex);
   clock = _the_system_clock;
 
   if (clock == NULL) {
@@ -292,9 +307,9 @@
     gst_object_ref_sink (clock);
 
     _the_system_clock = clock;
-    g_static_mutex_unlock (&_gst_sysclock_mutex);
+    g_mutex_unlock (&_gst_sysclock_mutex);
   } else {
-    g_static_mutex_unlock (&_gst_sysclock_mutex);
+    g_mutex_unlock (&_gst_sysclock_mutex);
     GST_CAT_DEBUG (GST_CAT_CLOCK, "returning static system clock");
   }
 
@@ -315,7 +330,7 @@
     while (!gst_poll_read_control (sysclock->priv->timer)) {
       g_warning ("gstsystemclock: read control failed, trying again\n");
     }
-    GST_CLOCK_BROADCAST (sysclock);
+    GST_SYSTEM_CLOCK_BROADCAST (sysclock);
   }
   GST_CAT_DEBUG (GST_CAT_CLOCK, "wakeup count %d",
       sysclock->priv->wakeup_count);
@@ -349,7 +364,7 @@
 gst_system_clock_wait_wakeup (GstSystemClock * sysclock)
 {
   while (sysclock->priv->wakeup_count > 0) {
-    GST_CLOCK_WAIT (sysclock);
+    GST_SYSTEM_CLOCK_WAIT (sysclock);
   }
 }
 
@@ -369,38 +384,39 @@
 gst_system_clock_async_thread (GstClock * clock)
 {
   GstSystemClock *sysclock = GST_SYSTEM_CLOCK_CAST (clock);
+  GstSystemClockPrivate *priv = sysclock->priv;
 
   GST_CAT_DEBUG (GST_CAT_CLOCK, "enter system clock thread");
   GST_OBJECT_LOCK (clock);
   /* signal spinup */
-  GST_CLOCK_BROADCAST (clock);
+  GST_SYSTEM_CLOCK_BROADCAST (clock);
   /* now enter our (almost) infinite loop */
-  while (!sysclock->stopping) {
+  while (!priv->stopping) {
     GstClockEntry *entry;
     GstClockTime requested;
     GstClockReturn res;
 
     /* check if something to be done */
-    while (clock->entries == NULL) {
+    while (priv->entries == NULL) {
       GST_CAT_DEBUG (GST_CAT_CLOCK, "no clock entries, waiting..");
       /* wait for work to do */
-      GST_CLOCK_WAIT (clock);
+      GST_SYSTEM_CLOCK_WAIT (clock);
       GST_CAT_DEBUG (GST_CAT_CLOCK, "got signal");
       /* clock was stopping, exit */
-      if (sysclock->stopping)
+      if (priv->stopping)
         goto exit;
     }
 
     /* see if we have a pending wakeup because the order of the list
      * changed. */
-    if (sysclock->priv->async_wakeup) {
+    if (priv->async_wakeup) {
       GST_CAT_DEBUG (GST_CAT_CLOCK, "clear async wakeup");
       gst_system_clock_remove_wakeup (sysclock);
-      sysclock->priv->async_wakeup = FALSE;
+      priv->async_wakeup = FALSE;
     }
 
     /* pick the next entry */
-    entry = clock->entries->data;
+    entry = priv->entries->data;
     GST_OBJECT_UNLOCK (clock);
 
     requested = entry->time;
@@ -435,8 +451,8 @@
           /* adjust time now */
           entry->time = requested + entry->interval;
           /* and resort the list now */
-          clock->entries =
-              g_list_sort (clock->entries, gst_clock_id_compare_func);
+          priv->entries =
+              g_list_sort (priv->entries, gst_clock_id_compare_func);
           /* and restart */
           continue;
         } else {
@@ -465,12 +481,12 @@
     }
   next_entry:
     /* we remove the current entry and unref it */
-    clock->entries = g_list_remove (clock->entries, entry);
+    priv->entries = g_list_remove (priv->entries, entry);
     gst_clock_id_unref ((GstClockID) entry);
   }
 exit:
   /* signal exit */
-  GST_CLOCK_BROADCAST (clock);
+  GST_SYSTEM_CLOCK_BROADCAST (clock);
   GST_OBJECT_UNLOCK (clock);
   GST_CAT_DEBUG (GST_CAT_CLOCK, "exit system clock thread");
 }
@@ -731,17 +747,19 @@
 gst_system_clock_start_async (GstSystemClock * clock)
 {
   GError *error = NULL;
+  GstSystemClockPrivate *priv = clock->priv;
 
-  if (G_LIKELY (clock->thread != NULL))
+  if (G_LIKELY (priv->thread != NULL))
     return TRUE;                /* Thread already running. Nothing to do */
 
-  clock->thread = g_thread_create ((GThreadFunc) gst_system_clock_async_thread,
-      clock, TRUE, &error);
+  priv->thread = g_thread_try_new ("GstSystemClock",
+      (GThreadFunc) gst_system_clock_async_thread, clock, &error);
+
   if (G_UNLIKELY (error))
     goto no_thread;
 
   /* wait for it to spin up */
-  GST_CLOCK_WAIT (clock);
+  GST_SYSTEM_CLOCK_WAIT (clock);
 
   return TRUE;
 
@@ -765,9 +783,11 @@
 gst_system_clock_id_wait_async (GstClock * clock, GstClockEntry * entry)
 {
   GstSystemClock *sysclock;
+  GstSystemClockPrivate *priv;
   GstClockEntry *head;
 
   sysclock = GST_SYSTEM_CLOCK_CAST (clock);
+  priv = sysclock->priv;
 
   GST_CAT_DEBUG (GST_CAT_CLOCK, "adding async entry %p", entry);
 
@@ -779,27 +799,27 @@
   if (G_UNLIKELY (GET_ENTRY_STATUS (entry) == GST_CLOCK_UNSCHEDULED))
     goto was_unscheduled;
 
-  if (clock->entries)
-    head = clock->entries->data;
+  if (priv->entries)
+    head = priv->entries->data;
   else
     head = NULL;
 
   /* need to take a ref */
   gst_clock_id_ref ((GstClockID) entry);
   /* insert the entry in sorted order */
-  clock->entries = g_list_insert_sorted (clock->entries, entry,
+  priv->entries = g_list_insert_sorted (priv->entries, entry,
       gst_clock_id_compare_func);
 
   /* only need to send the signal if the entry was added to the
    * front, else the thread is just waiting for another entry and
    * will get to this entry automatically. */
-  if (clock->entries->data == entry) {
+  if (priv->entries->data == entry) {
     GST_CAT_DEBUG (GST_CAT_CLOCK, "async entry added to head %p", head);
     if (head == NULL) {
       /* the list was empty before, signal the cond so that the async thread can
        * start taking a look at the queue */
       GST_CAT_DEBUG (GST_CAT_CLOCK, "first entry, sending signal");
-      GST_CLOCK_BROADCAST (clock);
+      GST_SYSTEM_CLOCK_BROADCAST (clock);
     } else {
       GstClockReturn status;
 
@@ -810,9 +830,9 @@
         GST_CAT_DEBUG (GST_CAT_CLOCK, "head entry is busy");
         /* the async thread was waiting for an entry, unlock the wait so that it
          * looks at the new head entry instead, we only need to do this once */
-        if (!sysclock->priv->async_wakeup) {
+        if (!priv->async_wakeup) {
           GST_CAT_DEBUG (GST_CAT_CLOCK, "wakeup async thread");
-          sysclock->priv->async_wakeup = TRUE;
+          priv->async_wakeup = TRUE;
           gst_system_clock_add_wakeup (sysclock);
         }
       }
diff --git a/gst/gstsystemclock.h b/gst/gstsystemclock.h
index 490f700..42aadef 100644
--- a/gst/gstsystemclock.h
+++ b/gst/gstsystemclock.h
@@ -64,10 +64,6 @@
   GstClock       clock;
 
   /*< private >*/
-  GThread       *thread;        /* thread for async notify */
-  gboolean       stopping;
-
-  /* ABI added */
   GstSystemClockPrivate *priv;
 
   gpointer _gst_reserved[GST_PADDING];
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index b62fbc7..c1a2ab0 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -35,18 +35,27 @@
 #endif
 
 #include "gst_private.h"
+#include "math-compat.h"
 #include "gst-i18n-lib.h"
 #include "gsttaglist.h"
 #include "gstinfo.h"
 #include "gstvalue.h"
 #include "gstbuffer.h"
 #include "gstquark.h"
+#include "gststructure.h"
 
 #include <gobject/gvaluecollector.h>
 #include <string.h>
 
 #define GST_TAG_IS_VALID(tag)           (gst_tag_get_info (tag) != NULL)
 
+/* FIXME 0.11: make taglists refcounted maybe? */
+/* a tag list is basically a structure, but we don't make this fact public */
+struct _GstTagList
+{
+  GstStructure structure;
+};
+
 /* FIXME 0.11: use GParamSpecs or something similar for tag registrations,
  * possibly even gst_tag_register(). Especially value ranges might be
  * useful for some tags. */
@@ -60,39 +69,33 @@
 
   GstTagMergeFunc merge_func;   /* functions to merge the values */
   GstTagFlag flag;              /* type of tag */
+  GQuark name_quark;            /* quark for the name */
 }
 GstTagInfo;
 
-static GMutex *__tag_mutex;
+#define g_value_get_char g_value_get_schar
 
+static GMutex __tag_mutex;
+#define TAG_LOCK g_mutex_lock (&__tag_mutex)
+#define TAG_UNLOCK g_mutex_unlock (&__tag_mutex)
+
+/* tags hash table: maps tag name string => GstTagInfo */
 static GHashTable *__tags;
 
-#define TAG_LOCK g_mutex_lock (__tag_mutex)
-#define TAG_UNLOCK g_mutex_unlock (__tag_mutex)
+G_DEFINE_BOXED_TYPE (GstTagList, gst_tag_list,
+    (GBoxedCopyFunc) gst_tag_list_copy, (GBoxedFreeFunc) gst_tag_list_free);
 
-GType
-gst_tag_list_get_type (void)
-{
-  static GType _gst_tag_list_type = 0;
-
-  if (G_UNLIKELY (_gst_tag_list_type == 0)) {
-    _gst_tag_list_type = g_boxed_type_register_static ("GstTagList",
-        (GBoxedCopyFunc) gst_tag_list_copy, (GBoxedFreeFunc) gst_tag_list_free);
-
-#if 0
-    g_value_register_transform_func (_gst_tag_list_type, G_TYPE_STRING,
-        _gst_structure_transform_to_string);
-#endif
-  }
-
-  return _gst_tag_list_type;
-}
+/* FIXME: had code:
+ *    g_value_register_transform_func (_gst_tag_list_type, G_TYPE_STRING,
+ *      _gst_structure_transform_to_string);
+ */
 
 void
 _priv_gst_tag_initialize (void)
 {
-  __tag_mutex = g_mutex_new ();
-  __tags = g_hash_table_new (g_direct_hash, g_direct_equal);
+  g_mutex_init (&__tag_mutex);
+
+  __tags = g_hash_table_new (g_str_hash, g_str_equal);
   gst_tag_register (GST_TAG_TITLE, GST_TAG_FLAG_META,
       G_TYPE_STRING,
       _("title"), _("commonly used title"), gst_tag_merge_strings_with_comma);
@@ -125,7 +128,7 @@
       G_TYPE_STRING,
       _("album artist sortname"),
       _("The artist of the entire album, as it should be sorted"), NULL);
-  gst_tag_register (GST_TAG_DATE, GST_TAG_FLAG_META, GST_TYPE_DATE,
+  gst_tag_register (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_DATE,
       _("date"), _("date the data was created (as a GDate structure)"), NULL);
   gst_tag_register (GST_TAG_DATE_TIME, GST_TAG_FLAG_META, GST_TYPE_DATE_TIME,
       _("datetime"),
@@ -258,13 +261,17 @@
       _("reference level of track and album gain values"), NULL);
   gst_tag_register (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META, G_TYPE_STRING,
       _("language code"),
-      _("language code for this stream, conforming to ISO-639-1"), NULL);
-  gst_tag_register (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_BUFFER,
+      _("language code for this stream, conforming to ISO-639-1 or ISO-639-2"),
+      NULL);
+  gst_tag_register (GST_TAG_LANGUAGE_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
+      _("language name"),
+      _("freeform name of the language this stream is in"), NULL);
+  gst_tag_register (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
       _("image"), _("image related to this stream"), gst_tag_merge_use_first);
-  gst_tag_register (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META, GST_TYPE_BUFFER,
+  gst_tag_register (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
       /* TRANSLATORS: 'preview image' = image that shows a preview of the full image */
       _("preview image"), _("preview image related to this stream"), NULL);
-  gst_tag_register (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META, GST_TYPE_BUFFER,
+  gst_tag_register (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
       _("attachment"), _("file attached to this stream"),
       gst_tag_merge_use_first);
   gst_tag_register (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META, G_TYPE_DOUBLE,
@@ -417,12 +424,12 @@
 }
 
 static GstTagInfo *
-gst_tag_lookup (GQuark entry)
+gst_tag_lookup (const gchar * tag_name)
 {
   GstTagInfo *ret;
 
   TAG_LOCK;
-  ret = g_hash_table_lookup (__tags, GUINT_TO_POINTER (entry));
+  ret = g_hash_table_lookup (__tags, (gpointer) tag_name);
   TAG_UNLOCK;
 
   return ret;
@@ -463,16 +470,15 @@
 gst_tag_register (const gchar * name, GstTagFlag flag, GType type,
     const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
 {
-  GQuark key;
   GstTagInfo *info;
+  gchar *name_dup;
 
   g_return_if_fail (name != NULL);
   g_return_if_fail (nick != NULL);
   g_return_if_fail (blurb != NULL);
   g_return_if_fail (type != 0 && type != GST_TYPE_LIST);
 
-  key = g_quark_from_string (name);
-  info = gst_tag_lookup (key);
+  info = gst_tag_lookup (name);
 
   if (info) {
     g_return_if_fail (info->type == type);
@@ -486,8 +492,13 @@
   info->blurb = g_strdup (blurb);
   info->merge_func = func;
 
+  /* we make a copy for the hash table anyway, which will stay around, so
+   * can use that for the quark table too */
+  name_dup = g_strdup (name);
+  info->name_quark = g_quark_from_static_string (name_dup);
+
   TAG_LOCK;
-  g_hash_table_insert (__tags, GUINT_TO_POINTER (key), info);
+  g_hash_table_insert (__tags, (gpointer) name_dup, info);
   TAG_UNLOCK;
 }
 
@@ -504,7 +515,7 @@
 {
   g_return_val_if_fail (tag != NULL, FALSE);
 
-  return gst_tag_lookup (g_quark_from_string (tag)) != NULL;
+  return gst_tag_lookup (tag) != NULL;
 }
 
 /**
@@ -521,7 +532,7 @@
   GstTagInfo *info;
 
   g_return_val_if_fail (tag != NULL, 0);
-  info = gst_tag_lookup (g_quark_from_string (tag));
+  info = gst_tag_lookup (tag);
   g_return_val_if_fail (info != NULL, 0);
 
   return info->type;
@@ -542,7 +553,7 @@
   GstTagInfo *info;
 
   g_return_val_if_fail (tag != NULL, NULL);
-  info = gst_tag_lookup (g_quark_from_string (tag));
+  info = gst_tag_lookup (tag);
   g_return_val_if_fail (info != NULL, NULL);
 
   return info->nick;
@@ -563,7 +574,7 @@
   GstTagInfo *info;
 
   g_return_val_if_fail (tag != NULL, NULL);
-  info = gst_tag_lookup (g_quark_from_string (tag));
+  info = gst_tag_lookup (tag);
   g_return_val_if_fail (info != NULL, NULL);
 
   return info->blurb;
@@ -583,7 +594,7 @@
   GstTagInfo *info;
 
   g_return_val_if_fail (tag != NULL, GST_TAG_FLAG_UNDEFINED);
-  info = gst_tag_lookup (g_quark_from_string (tag));
+  info = gst_tag_lookup (tag);
   g_return_val_if_fail (info != NULL, GST_TAG_FLAG_UNDEFINED);
 
   return info->flag;
@@ -604,14 +615,14 @@
   GstTagInfo *info;
 
   g_return_val_if_fail (tag != NULL, FALSE);
-  info = gst_tag_lookup (g_quark_from_string (tag));
+  info = gst_tag_lookup (tag);
   g_return_val_if_fail (info != NULL, FALSE);
 
   return info->merge_func == NULL;
 }
 
 /**
- * gst_tag_list_new:
+ * gst_tag_list_new_empty:
  *
  * Creates a new empty GstTagList.
  *
@@ -620,13 +631,13 @@
  * Returns: (transfer full): An empty tag list
  */
 GstTagList *
-gst_tag_list_new (void)
+gst_tag_list_new_empty (void)
 {
-  return GST_TAG_LIST (gst_structure_id_empty_new (GST_QUARK (TAGLIST)));
+  return GST_TAG_LIST (gst_structure_new_id_empty (GST_QUARK (TAGLIST)));
 }
 
 /**
- * gst_tag_list_new_full:
+ * gst_tag_list_new:
  * @tag: tag
  * @...: NULL-terminated list of values to set
  *
@@ -645,16 +656,15 @@
  *
  * Since: 0.10.24
  */
-/* FIXME 0.11: rename gst_tag_list_new_full to _new and _new to _new_empty */
 GstTagList *
-gst_tag_list_new_full (const gchar * tag, ...)
+gst_tag_list_new (const gchar * tag, ...)
 {
   GstTagList *list;
   va_list args;
 
   g_return_val_if_fail (tag != NULL, NULL);
 
-  list = gst_tag_list_new ();
+  list = gst_tag_list_new_empty ();
   va_start (args, tag);
   gst_tag_list_add_valist (list, GST_TAG_MERGE_APPEND, tag, args);
   va_end (args);
@@ -663,10 +673,10 @@
 }
 
 /**
- * gst_tag_list_new_full_valist:
+ * gst_tag_list_new_valist:
  * @var_args: tag / value pairs to set
  *
- * Just like gst_tag_list_new_full(), only that it takes a va_list argument.
+ * Just like gst_tag_list_new(), only that it takes a va_list argument.
  * Useful mostly for language bindings.
  *
  * Free-function: gst_tag_list_free
@@ -677,12 +687,12 @@
  * Since: 0.10.24
  */
 GstTagList *
-gst_tag_list_new_full_valist (va_list var_args)
+gst_tag_list_new_valist (va_list var_args)
 {
   GstTagList *list;
   const gchar *tag;
 
-  list = gst_tag_list_new ();
+  list = gst_tag_list_new_empty ();
 
   tag = va_arg (var_args, gchar *);
   gst_tag_list_add_valist (list, GST_TAG_MERGE_APPEND, tag, var_args);
@@ -691,6 +701,79 @@
 }
 
 /**
+ * gst_tag_list_to_string:
+ * @list: a #GstTagList
+ *
+ * Serializes a tag list to a string.
+ *
+ * Returns: a newly-allocated string, or NULL in case of an error. The
+ *    string must be freed with g_free() when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+gchar *
+gst_tag_list_to_string (const GstTagList * list)
+{
+  g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
+
+  return gst_structure_to_string (GST_STRUCTURE (list));
+}
+
+/**
+ * gst_tag_list_new_from_string:
+ * @str: a string created with gst_tag_list_to_string()
+ *
+ * Deserializes a tag list.
+ *
+ * Returns: a new #GstTagList, or NULL in case of an error.
+ *
+ * Since: 0.10.36
+ */
+GstTagList *
+gst_tag_list_new_from_string (const gchar * str)
+{
+  g_return_val_if_fail (str != NULL, NULL);
+  g_return_val_if_fail (g_str_has_prefix (str, "taglist"), NULL);
+
+  return GST_TAG_LIST (gst_structure_from_string (str, NULL));
+}
+
+/**
+ * gst_tag_list_n_tags:
+ * @list: A #GstTagList.
+ *
+ * Get the number of tags in @list.
+ *
+ * Returns: The number of tags in @list.
+ */
+gint
+gst_tag_list_n_tags (const GstTagList * list)
+{
+  g_return_val_if_fail (list != NULL, 0);
+  g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
+
+  return gst_structure_n_fields ((GstStructure *) list);
+}
+
+/**
+ * gst_tag_list_nth_tag_name:
+ * @list: A #GstTagList.
+ * @index: the index
+ *
+ * Get the name of the tag in @list at @index.
+ *
+ * Returns: The name of the tag at @index.
+ */
+const gchar *
+gst_tag_list_nth_tag_name (const GstTagList * list, guint index)
+{
+  g_return_val_if_fail (list != NULL, 0);
+  g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
+
+  return gst_structure_nth_field_name ((GstStructure *) list, index);
+}
+
+/**
  * gst_tag_list_is_empty:
  * @list: A #GstTagList.
  *
@@ -709,6 +792,77 @@
   return (gst_structure_n_fields ((GstStructure *) list) == 0);
 }
 
+static gboolean
+gst_tag_list_fields_equal (const GValue * value1, const GValue * value2)
+{
+  gdouble d1, d2;
+
+  if (gst_value_compare (value1, value2) == GST_VALUE_EQUAL)
+    return TRUE;
+
+  /* fields not equal: add some tolerance for doubles, otherwise bail out */
+  if (!G_VALUE_HOLDS_DOUBLE (value1) || !G_VALUE_HOLDS_DOUBLE (value2))
+    return FALSE;
+
+  d1 = g_value_get_double (value1);
+  d2 = g_value_get_double (value2);
+
+  /* This will only work for 'normal' values and values around 0,
+   * which should be good enough for our purposes here
+   * FIXME: maybe add this to gst_value_compare_double() ? */
+  return (fabs (d1 - d2) < 0.0000001);
+}
+
+/**
+ * gst_tag_list_is_equal:
+ * @list1: a #GstTagList.
+ * @list2: a #GstTagList.
+ *
+ * Checks if the two given taglists are equal.
+ *
+ * Returns: TRUE if the taglists are equal, otherwise FALSE
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2)
+{
+  const GstStructure *s1, *s2;
+  gint num_fields1, num_fields2, i;
+
+  g_return_val_if_fail (GST_IS_TAG_LIST (list1), FALSE);
+  g_return_val_if_fail (GST_IS_TAG_LIST (list2), FALSE);
+
+  /* we don't just use gst_structure_is_equal() here so we can add some
+   * tolerance for doubles, though maybe we should just add that to
+   * gst_value_compare_double() as well? */
+  s1 = (const GstStructure *) list1;
+  s2 = (const GstStructure *) list2;
+
+  num_fields1 = gst_structure_n_fields (s1);
+  num_fields2 = gst_structure_n_fields (s2);
+
+  if (num_fields1 != num_fields2)
+    return FALSE;
+
+  for (i = 0; i < num_fields1; i++) {
+    const GValue *value1, *value2;
+    const gchar *tag_name;
+
+    tag_name = gst_structure_nth_field_name (s1, i);
+    value1 = gst_structure_get_value (s1, tag_name);
+    value2 = gst_structure_get_value (s2, tag_name);
+
+    if (value2 == NULL)
+      return FALSE;
+
+    if (!gst_tag_list_fields_equal (value1, value2))
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
 /**
  * gst_is_tag_list:
  * @p: Object that might be a taglist
@@ -729,42 +883,46 @@
 
 typedef struct
 {
-  GstStructure *list;
+  GstTagList *list;
   GstTagMergeMode mode;
 }
 GstTagCopyData;
 
 static void
-gst_tag_list_add_value_internal (GstStructure * list, GstTagMergeMode mode,
-    GQuark tag, const GValue * value, GstTagInfo * info)
+gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
+    const gchar * tag, const GValue * value, GstTagInfo * info)
 {
+  GstStructure *list = GST_STRUCTURE (tag_list);
   const GValue *value2;
+  GQuark tag_quark;
 
   if (info == NULL) {
     info = gst_tag_lookup (tag);
     if (G_UNLIKELY (info == NULL)) {
-      g_warning ("unknown tag '%s'", g_quark_to_string (tag));
+      g_warning ("unknown tag '%s'", tag);
       return;
     }
   }
 
+  tag_quark = info->name_quark;
+
   if (info->merge_func
-      && (value2 = gst_structure_id_get_value (list, tag)) != NULL) {
+      && (value2 = gst_structure_id_get_value (list, tag_quark)) != NULL) {
     GValue dest = { 0, };
 
     switch (mode) {
       case GST_TAG_MERGE_REPLACE_ALL:
       case GST_TAG_MERGE_REPLACE:
-        gst_structure_id_set_value (list, tag, value);
+        gst_structure_id_set_value (list, tag_quark, value);
         break;
       case GST_TAG_MERGE_PREPEND:
         gst_value_list_merge (&dest, value, value2);
-        gst_structure_id_set_value (list, tag, &dest);
+        gst_structure_id_set_value (list, tag_quark, &dest);
         g_value_unset (&dest);
         break;
       case GST_TAG_MERGE_APPEND:
         gst_value_list_merge (&dest, value2, value);
-        gst_structure_id_set_value (list, tag, &dest);
+        gst_structure_id_set_value (list, tag_quark, &dest);
         g_value_unset (&dest);
         break;
       case GST_TAG_MERGE_KEEP:
@@ -778,13 +936,13 @@
     switch (mode) {
       case GST_TAG_MERGE_APPEND:
       case GST_TAG_MERGE_KEEP:
-        if (gst_structure_id_get_value (list, tag) != NULL)
+        if (gst_structure_id_get_value (list, tag_quark) != NULL)
           break;
         /* fall through */
       case GST_TAG_MERGE_REPLACE_ALL:
       case GST_TAG_MERGE_REPLACE:
       case GST_TAG_MERGE_PREPEND:
-        gst_structure_id_set_value (list, tag, value);
+        gst_structure_id_set_value (list, tag_quark, value);
         break;
       case GST_TAG_MERGE_KEEP_ALL:
         break;
@@ -796,10 +954,13 @@
 }
 
 static gboolean
-gst_tag_list_copy_foreach (GQuark tag, const GValue * value, gpointer user_data)
+gst_tag_list_copy_foreach (GQuark tag_quark, const GValue * value,
+    gpointer user_data)
 {
   GstTagCopyData *copy = (GstTagCopyData *) user_data;
+  const gchar *tag;
 
+  tag = g_quark_to_string (tag_quark);
   gst_tag_list_add_value_internal (copy->list, copy->mode, tag, value, NULL);
 
   return TRUE;
@@ -823,10 +984,10 @@
   g_return_if_fail (GST_IS_TAG_LIST (from));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
 
-  data.list = (GstStructure *) into;
+  data.list = into;
   data.mode = mode;
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (data.list);
+    gst_structure_remove_all_fields (GST_STRUCTURE (data.list));
   }
   gst_structure_foreach ((GstStructure *) from, gst_tag_list_copy_foreach,
       &data);
@@ -880,8 +1041,8 @@
   }
 
   /* create empty list, we need to do this to correctly handling merge modes */
-  list1_cp = (list1) ? gst_tag_list_copy (list1) : gst_tag_list_new ();
-  list2_cp = (list2) ? list2 : gst_tag_list_new ();
+  list1_cp = (list1) ? gst_tag_list_copy (list1) : gst_tag_list_new_empty ();
+  list2_cp = (list2) ? list2 : gst_tag_list_new_empty ();
 
   gst_tag_list_insert (list1_cp, list2_cp, mode);
 
@@ -991,7 +1152,6 @@
     const gchar * tag, va_list var_args)
 {
   GstTagInfo *info;
-  GQuark quark;
   gchar *error = NULL;
 
   g_return_if_fail (GST_IS_TAG_LIST (list));
@@ -999,14 +1159,13 @@
   g_return_if_fail (tag != NULL);
 
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (list);
+    gst_structure_remove_all_fields (GST_STRUCTURE (list));
   }
 
   while (tag != NULL) {
     GValue value = { 0, };
 
-    quark = g_quark_from_string (tag);
-    info = gst_tag_lookup (quark);
+    info = gst_tag_lookup (tag);
     if (G_UNLIKELY (info == NULL)) {
       g_warning ("unknown tag '%s'", tag);
       return;
@@ -1020,7 +1179,7 @@
        */
       return;
     }
-    gst_tag_list_add_value_internal (list, mode, quark, &value, info);
+    gst_tag_list_add_value_internal (list, mode, tag, &value, info);
     g_value_unset (&value);
     tag = va_arg (var_args, gchar *);
   }
@@ -1039,21 +1198,24 @@
 gst_tag_list_add_valist_values (GstTagList * list, GstTagMergeMode mode,
     const gchar * tag, va_list var_args)
 {
-  GQuark quark;
-
   g_return_if_fail (GST_IS_TAG_LIST (list));
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
   if (mode == GST_TAG_MERGE_REPLACE_ALL) {
-    gst_structure_remove_all_fields (list);
+    gst_structure_remove_all_fields (GST_STRUCTURE (list));
   }
 
   while (tag != NULL) {
-    quark = g_quark_from_string (tag);
-    g_return_if_fail (gst_tag_lookup (quark) != NULL);
-    gst_tag_list_add_value_internal (list, mode, quark, va_arg (var_args,
-            GValue *), NULL);
+    GstTagInfo *info;
+
+    info = gst_tag_lookup (tag);
+    if (G_UNLIKELY (info == NULL)) {
+      g_warning ("unknown tag '%s'", tag);
+      return;
+    }
+    gst_tag_list_add_value_internal (list, mode, tag, va_arg (var_args,
+            GValue *), info);
     tag = va_arg (var_args, gchar *);
   }
 }
@@ -1077,8 +1239,7 @@
   g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
   g_return_if_fail (tag != NULL);
 
-  gst_tag_list_add_value_internal (list, mode, g_quark_from_string (tag),
-      value, NULL);
+  gst_tag_list_add_value_internal (list, mode, tag, value, NULL);
 }
 
 /**
@@ -1206,7 +1367,7 @@
     return FALSE;
 
   if (G_VALUE_TYPE (src) == GST_TYPE_LIST) {
-    GstTagInfo *info = gst_tag_lookup (g_quark_from_string (tag));
+    GstTagInfo *info = gst_tag_lookup (tag);
 
     if (!info)
       return FALSE;
@@ -1267,64 +1428,8 @@
   return ret;                                                           \
 }
 
-/* FIXME 0.11: maybe get rid of _get_char*(), _get_uchar*(), _get_long*(),
- * _get_ulong*() and _get_pointer*()? - they are not really useful/common
- * enough to warrant convenience accessor functions */
-
 #define COPY_FUNC /**/
 /**
- * gst_tag_list_get_char:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @value: (out): location for the result
- *
- * Copies the contents for the given tag into the value, merging multiple values
- * into one if multiple values are associated with the tag.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-/**
- * gst_tag_list_get_char_index:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @index: number of entry to read out
- * @value: (out): location for the result
- *
- * Gets the value that is at the given index for the given tag in the given
- * list.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-TAG_MERGE_FUNCS (char, gchar, TRUE);
-/**
- * gst_tag_list_get_uchar:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @value: (out): location for the result
- *
- * Copies the contents for the given tag into the value, merging multiple values
- * into one if multiple values are associated with the tag.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-/**
- * gst_tag_list_get_uchar_index:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @index: number of entry to read out
- * @value: (out): location for the result
- *
- * Gets the value that is at the given index for the given tag in the given
- * list.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-TAG_MERGE_FUNCS (uchar, guchar, TRUE);
-/**
  * gst_tag_list_get_boolean:
  * @list: a #GstTagList to get the tag from
  * @tag: tag to read out
@@ -1403,70 +1508,6 @@
  */
 TAG_MERGE_FUNCS (uint, guint, TRUE);
 /**
- * gst_tag_list_get_long:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @value: (out): location for the result
- *
- * Copies the contents for the given tag into the value, merging multiple values
- * into one if multiple values are associated with the tag.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-/**
- * gst_tag_list_get_long_index:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @index: number of entry to read out
- * @value: (out): location for the result
- *
- * Gets the value that is at the given index for the given tag in the given
- * list.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-TAG_MERGE_FUNCS (long, glong, TRUE);
-/**
- * gst_tag_list_get_ulong:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @value: (out): location for the result
- *
- * Copies the contents for the given tag into the value, merging multiple values
- * into one if multiple values are associated with the tag.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-/**
- * gst_tag_list_get_ulong_index:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @index: number of entry to read out
- * @value: (out): location for the result
- *
- * Gets the value that is at the given index for the given tag in the given
- * list.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-TAG_MERGE_FUNCS (ulong, gulong, TRUE);
-/**
- * gst_tag_list_get_int64:
- * @list: a #GstTagList to get the tag from
- * @tag: tag to read out
- * @value: (out): location for the result
- *
- * Copies the contents for the given tag into the value, merging multiple values
- * into one if multiple values are associated with the tag.
- *
- * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
- *              given list.
- */
-/**
  * gst_tag_list_get_int64_index:
  * @list: a #GstTagList to get the tag from
  * @tag: tag to read out
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index e40d52a..00a2770 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -24,8 +24,8 @@
 #define __GST_TAGLIST_H__
 
 #include <gst/gstdatetime.h>
+#include <gst/gstsample.h>
 #include <gst/gstbuffer.h>
-#include <gst/gststructure.h>
 #include <gst/glib-compat.h>
 
 G_BEGIN_DECLS
@@ -142,24 +142,12 @@
 
 #define GST_TAG_FLAG_IS_VALID(flag)     (((flag) > GST_TAG_FLAG_UNDEFINED) && ((flag) < GST_TAG_FLAG_COUNT))
 
-/* FIXME 0.11: Don't typedef GstTagList to be a GstStructure, they're
- *             internally the same but not from an API point of view.
- *             See bug #518934.
- */
 /**
  * GstTagList:
  *
  * Opaque #GstTagList data structure.
  */
-#ifdef _FOOL_GTK_DOC_
 typedef struct _GstTagList GstTagList;
-#else
-#ifdef IN_GOBJECT_INTROSPECTION
-typedef struct _GstTagList GstTagList;
-#else
-typedef GstStructure GstTagList;
-#endif
-#endif
 
 #define GST_TAG_LIST(x)       ((GstTagList *) (x))
 #define GST_IS_TAG_LIST(x)    ((x) != NULL && gst_is_tag_list (GST_TAG_LIST (x)))
@@ -211,19 +199,26 @@
 gboolean               gst_tag_is_fixed        (const gchar * tag);
 
 /* tag lists */
-GstTagList * gst_tag_list_new               (void);
-GstTagList * gst_tag_list_new_full          (const gchar * tag, ...);
-GstTagList * gst_tag_list_new_full_valist   (va_list var_args);
+GstTagList * gst_tag_list_new_empty         (void) G_GNUC_MALLOC;
+GstTagList * gst_tag_list_new               (const gchar * tag, ...) G_GNUC_MALLOC;
+GstTagList * gst_tag_list_new_valist        (va_list var_args) G_GNUC_MALLOC;
+
+gchar      * gst_tag_list_to_string         (const GstTagList * list) G_GNUC_MALLOC;
+GstTagList * gst_tag_list_new_from_string   (const gchar      * str) G_GNUC_MALLOC;
 
 gboolean     gst_is_tag_list                (gconstpointer p);
-GstTagList * gst_tag_list_copy              (const GstTagList * list);
+GstTagList * gst_tag_list_copy              (const GstTagList * list) G_GNUC_MALLOC;
+gint         gst_tag_list_n_tags            (const GstTagList * list);
+const gchar* gst_tag_list_nth_tag_name      (const GstTagList * list, guint index);
 gboolean     gst_tag_list_is_empty          (const GstTagList * list);
+gboolean     gst_tag_list_is_equal          (const GstTagList * list1,
+                                             const GstTagList * list2);
 void         gst_tag_list_insert            (GstTagList       * into,
                                              const GstTagList * from,
                                              GstTagMergeMode    mode);
 GstTagList * gst_tag_list_merge             (const GstTagList * list1,
                                              const GstTagList * list2,
-                                             GstTagMergeMode    mode);
+                                             GstTagMergeMode    mode) G_GNUC_MALLOC;
 void         gst_tag_list_free              (GstTagList       * list);
 guint        gst_tag_list_get_tag_size      (const GstTagList * list,
                                              const gchar      * tag);
@@ -262,20 +257,6 @@
                                              const gchar      * tag);
 
 /* simplifications (FIXME: do we want them?) */
-gboolean     gst_tag_list_get_char          (const GstTagList * list,
-                                             const gchar      * tag,
-                                             gchar            * value);
-gboolean     gst_tag_list_get_char_index    (const GstTagList * list,
-                                             const gchar      * tag,
-                                             guint              index,
-                                             gchar            * value);
-gboolean     gst_tag_list_get_uchar         (const GstTagList * list,
-                                             const gchar      * tag,
-                                             guchar           * value);
-gboolean     gst_tag_list_get_uchar_index   (const GstTagList * list,
-                                             const gchar      * tag,
-                                             guint              index,
-                                             guchar           * value);
 gboolean     gst_tag_list_get_boolean       (const GstTagList * list,
                                              const gchar      * tag,
                                              gboolean         * value);
@@ -297,20 +278,6 @@
                                              const gchar      * tag,
                                              guint              index,
                                              guint            * value);
-gboolean     gst_tag_list_get_long          (const GstTagList * list,
-                                             const gchar      * tag,
-                                             glong            * value);
-gboolean     gst_tag_list_get_long_index    (const GstTagList * list,
-                                             const gchar      * tag,
-                                             guint              index,
-                                             glong            * value);
-gboolean     gst_tag_list_get_ulong         (const GstTagList * list,
-                                             const gchar      * tag,
-                                             gulong           * value);
-gboolean     gst_tag_list_get_ulong_index   (const GstTagList * list,
-                                             const gchar      * tag,
-                                             guint              index,
-                                             gulong           * value);
 gboolean     gst_tag_list_get_int64         (const GstTagList * list,
                                              const gchar      * tag,
                                              gint64           * value);
@@ -417,8 +384,7 @@
  *
  * Since: 0.10.15
  */
-/* FIXME 0.11: change to "artist-sortname" */
-#define GST_TAG_ARTIST_SORTNAME        "musicbrainz-sortname"
+#define GST_TAG_ARTIST_SORTNAME        "artist-sortname"
 /**
  * GST_TAG_ALBUM:
  *
@@ -736,13 +702,28 @@
 /**
  * GST_TAG_LANGUAGE_CODE:
  *
- * Language code (ISO-639-1) (string) of the content
+ * ISO-639-2 or ISO-639-1 code for the language the content is in (string)
+ *
+ * There is utility API in libgsttag in gst-plugins-base to obtain a translated
+ * language name from the language code: gst_tag_get_language_name()
  */
 #define GST_TAG_LANGUAGE_CODE          "language-code"
 /**
+ * GST_TAG_LANGUAGE_NAME:
+ *
+ * Name of the language the content is in (string)
+ *
+ * Free-form name of the language the content is in, if a language code
+ * is not available. This tag should not be set in addition to a language
+ * code. It is undefined what language or locale the language name is in.
+ *
+ * Since: 0.10.37
+ */
+#define GST_TAG_LANGUAGE_NAME          "language-name"
+/**
  * GST_TAG_IMAGE:
  *
- * image (buffer) (buffer caps should specify the content type and preferably
+ * image (sample) (sample caps should specify the content type and preferably
  * also set "image-type" field as #GstTagImageType)
  *
  * Since: 0.10.6
@@ -752,7 +733,7 @@
  * GST_TAG_PREVIEW_IMAGE:
  *
  * image that is meant for preview purposes, e.g. small icon-sized version
- * (buffer) (buffer caps should specify the content type)
+ * (sample) (sample caps should specify the content type)
  *
  * Since: 0.10.7
  */
@@ -761,7 +742,7 @@
 /**
  * GST_TAG_ATTACHMENT:
  *
- * generic file attachment (buffer) (buffer caps should specify the content
+ * generic file attachment (sample) (sample caps should specify the content
  * type and if possible set "filename" to the file name of the
  * attachment)
  *
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index d08d7e8..2ed099d 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -83,9 +83,12 @@
 {
   GstTagMergeMode mode;
   GstTagList *list;
-  GStaticMutex lock;
+  GMutex lock;
 } GstTagData;
 
+#define GST_TAG_DATA_LOCK(data) g_mutex_lock(&data->lock)
+#define GST_TAG_DATA_UNLOCK(data) g_mutex_unlock(&data->lock)
+
 GType
 gst_tag_setter_get_type (void)
 {
@@ -94,7 +97,7 @@
   if (g_once_init_enter (&tag_setter_type)) {
     GType _type;
     static const GTypeInfo tag_setter_info = {
-      sizeof (GstTagSetterIFace),       /* class_size */
+      sizeof (GstTagSetterInterface),   /* class_size */
       NULL,                     /* base_init */
       NULL,                     /* base_finalize */
       NULL,
@@ -125,7 +128,7 @@
   if (data->list)
     gst_tag_list_free (data->list);
 
-  g_static_mutex_free (&data->lock);
+  g_mutex_clear (&data->lock);
 
   g_slice_free (GstTagData, data);
 }
@@ -137,20 +140,22 @@
 
   data = g_object_get_qdata (G_OBJECT (setter), gst_tag_key);
   if (!data) {
-    static GStaticMutex create_mutex = G_STATIC_MUTEX_INIT;
-
     /* make sure no other thread is creating a GstTagData at the same time */
-    g_static_mutex_lock (&create_mutex);
+    static GMutex create_mutex; /* no initialisation required */
+
+    g_mutex_lock (&create_mutex);
+
     data = g_object_get_qdata (G_OBJECT (setter), gst_tag_key);
     if (!data) {
       data = g_slice_new (GstTagData);
-      g_static_mutex_init (&data->lock);
+      g_mutex_init (&data->lock);
       data->list = NULL;
       data->mode = GST_TAG_MERGE_KEEP;
       g_object_set_qdata_full (G_OBJECT (setter), gst_tag_key, data,
           gst_tag_data_free);
     }
-    g_static_mutex_unlock (&create_mutex);
+
+    g_mutex_unlock (&create_mutex);
   }
 
   return data;
@@ -174,12 +179,12 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (data->list) {
     gst_tag_list_free (data->list);
     data->list = NULL;
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -202,14 +207,14 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (data->list == NULL) {
     if (mode != GST_TAG_MERGE_KEEP_ALL)
       data->list = gst_tag_list_copy (list);
   } else {
     gst_tag_list_insert (data->list, list, mode);
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -281,13 +286,13 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (!data->list)
-    data->list = gst_tag_list_new ();
+    data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_valist (data->list, mode, tag, var_args);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -311,14 +316,14 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
 
   if (!data->list)
-    data->list = gst_tag_list_new ();
+    data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_valist_values (data->list, mode, tag, var_args);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -343,14 +348,14 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
 
   if (!data->list)
-    data->list = gst_tag_list_new ();
+    data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_value (data->list, mode, tag, value);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -392,9 +397,9 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   data->mode = mode;
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -416,9 +421,9 @@
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   mode = data->mode;
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 
   return mode;
 }
diff --git a/gst/gsttagsetter.h b/gst/gsttagsetter.h
index 44c794b..580053c 100644
--- a/gst/gsttagsetter.h
+++ b/gst/gsttagsetter.h
@@ -26,28 +26,28 @@
 
 G_BEGIN_DECLS
 
-#define GST_TYPE_TAG_SETTER		(gst_tag_setter_get_type ())
-#define GST_TAG_SETTER(obj)		(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_SETTER, GstTagSetter))
-#define GST_IS_TAG_SETTER(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_SETTER))
-#define GST_TAG_SETTER_GET_IFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TAG_SETTER, GstTagSetterIFace))
+#define GST_TYPE_TAG_SETTER             (gst_tag_setter_get_type ())
+#define GST_TAG_SETTER(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_SETTER, GstTagSetter))
+#define GST_IS_TAG_SETTER(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_SETTER))
+#define GST_TAG_SETTER_GET_INTERFACE(obj)       (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TAG_SETTER, GstTagSetterInterface))
 
 /**
  * GstTagSetter:
  *
  * Opaque #GstTagSetter data structure.
  */
-typedef struct _GstTagSetter			GstTagSetter; /* Dummy typedef */
-typedef struct _GstTagSetterIFace		GstTagSetterIFace;
+typedef struct _GstTagSetter                    GstTagSetter; /* Dummy typedef */
+typedef struct _GstTagSetterInterface           GstTagSetterInterface;
 
 /**
- * GstTagSetterIFace:
+ * GstTagSetterInterface:
  * @g_iface: parent interface type.
  *
- * #GstTagSetterIFace interface.
+ * #GstTagSetterInterface interface.
  */
 /* use an empty interface here to allow detection of elements using user-set
    tags */
-struct _GstTagSetterIFace
+struct _GstTagSetterInterface
 {
   GTypeInterface g_iface;
 
@@ -56,44 +56,44 @@
   /* virtual table */
 };
 
-GType		gst_tag_setter_get_type		    (void);
+GType           gst_tag_setter_get_type             (void);
 
-void		gst_tag_setter_reset_tags             (GstTagSetter * setter);
+void            gst_tag_setter_reset_tags             (GstTagSetter * setter);
 
-void		gst_tag_setter_merge_tags	    (GstTagSetter *	setter,
-						     const GstTagList *	list,
-						     GstTagMergeMode	mode);
-void		gst_tag_setter_add_tags		    (GstTagSetter *	setter,
-						     GstTagMergeMode	mode,
-						     const gchar *	tag,
-						     ...) G_GNUC_NULL_TERMINATED;
+void            gst_tag_setter_merge_tags           (GstTagSetter *     setter,
+                                                     const GstTagList * list,
+                                                     GstTagMergeMode    mode);
+void            gst_tag_setter_add_tags             (GstTagSetter *     setter,
+                                                     GstTagMergeMode    mode,
+                                                     const gchar *      tag,
+                                                     ...) G_GNUC_NULL_TERMINATED;
 
-void		gst_tag_setter_add_tag_values	    (GstTagSetter *	setter,
-						     GstTagMergeMode	mode,
-						     const gchar *	tag,
-						     ...) G_GNUC_NULL_TERMINATED;
+void            gst_tag_setter_add_tag_values       (GstTagSetter *     setter,
+                                                     GstTagMergeMode    mode,
+                                                     const gchar *      tag,
+                                                     ...) G_GNUC_NULL_TERMINATED;
 
-void            gst_tag_setter_add_tag_valist  	    (GstTagSetter *	setter,
-						     GstTagMergeMode	mode,
-						     const gchar *	tag,
-						     va_list		var_args);
+void            gst_tag_setter_add_tag_valist       (GstTagSetter *     setter,
+                                                     GstTagMergeMode    mode,
+                                                     const gchar *      tag,
+                                                     va_list            var_args);
 
-void            gst_tag_setter_add_tag_valist_values(GstTagSetter *	setter,
-						     GstTagMergeMode	mode,
-						     const gchar *	tag,
-						     va_list		var_args);
+void            gst_tag_setter_add_tag_valist_values(GstTagSetter *     setter,
+                                                     GstTagMergeMode    mode,
+                                                     const gchar *      tag,
+                                                     va_list            var_args);
 
-void		gst_tag_setter_add_tag_value	    (GstTagSetter *	setter,
-						     GstTagMergeMode	mode,
-						     const gchar *	tag,
-						     const GValue *     value);
+void            gst_tag_setter_add_tag_value        (GstTagSetter *     setter,
+                                                     GstTagMergeMode    mode,
+                                                     const gchar *      tag,
+                                                     const GValue *     value);
 
 const GstTagList *
-		gst_tag_setter_get_tag_list	     (GstTagSetter *	setter);
+                gst_tag_setter_get_tag_list          (GstTagSetter *    setter);
 
-void		gst_tag_setter_set_tag_merge_mode    (GstTagSetter *	setter,
-						      GstTagMergeMode	mode);
-GstTagMergeMode	gst_tag_setter_get_tag_merge_mode    (GstTagSetter *	setter);
+void            gst_tag_setter_set_tag_merge_mode    (GstTagSetter *    setter,
+                                                      GstTagMergeMode   mode);
+GstTagMergeMode gst_tag_setter_get_tag_merge_mode    (GstTagSetter *    setter);
 
 G_END_DECLS
 
diff --git a/gst/gsttask.c b/gst/gsttask.c
index aac6b7a..96c687b 100644
--- a/gst/gsttask.c
+++ b/gst/gsttask.c
@@ -45,7 +45,7 @@
  * and gst_task_stop() respectively or with the gst_task_set_state() function.
  *
  * A #GstTask will repeatedly call the #GstTaskFunction with the user data
- * that was provided when creating the task with gst_task_create(). While calling
+ * that was provided when creating the task with gst_task_new(). While calling
  * the function it will acquire the provided lock. The provided lock is released
  * when the task pauses or stops.
  *
@@ -54,24 +54,25 @@
  * stopped and the thread is stopped.
  *
  * After creating a #GstTask, use gst_object_unref() to free its resources. This can
- * only be done it the task is not running anymore.
+ * only be done when the task is not running anymore.
  *
  * Task functions can send a #GstMessage to send out-of-band data to the
  * application. The application can receive messages from the #GstBus in its
  * mainloop.
  *
- * For debugging perposes, the task will configure its object name as the thread
+ * For debugging purposes, the task will configure its object name as the thread
  * name on Linux. Please note that the object name should be configured before the
  * task is started; changing the object name after the task has been started, has
  * no effect on the thread name.
  *
- * Last reviewed on 2010-03-15 (0.10.29)
+ * Last reviewed on 2012-03-29 (0.11.3)
  */
 
 #include "gst_private.h"
 
 #include "gstinfo.h"
 #include "gsttask.h"
+#include "glib-compat-private.h"
 
 #include <stdio.h>
 
@@ -95,9 +96,6 @@
   gpointer thr_user_data;
   GDestroyNotify thr_notify;
 
-  gboolean prio_set;
-  GThreadPriority priority;
-
   /* configured pool */
   GstTaskPool *pool;
 
@@ -140,7 +138,7 @@
 
 static void gst_task_func (GstTask * task);
 
-static GStaticMutex pool_lock = G_STATIC_MUTEX_INIT;
+static GMutex pool_lock;
 
 #define _do_init \
 { \
@@ -152,14 +150,14 @@
 static void
 init_klass_pool (GstTaskClass * klass)
 {
-  g_static_mutex_lock (&pool_lock);
+  g_mutex_lock (&pool_lock);
   if (klass->pool) {
     gst_task_pool_cleanup (klass->pool);
     gst_object_unref (klass->pool);
   }
   klass->pool = gst_task_pool_new ();
   gst_task_pool_prepare (klass->pool, NULL);
-  g_static_mutex_unlock (&pool_lock);
+  g_mutex_unlock (&pool_lock);
 }
 
 static void
@@ -187,15 +185,14 @@
   task->running = FALSE;
   task->thread = NULL;
   task->lock = NULL;
-  task->cond = g_cond_new ();
+  g_cond_init (&task->cond);
   SET_TASK_STATE (task, GST_TASK_STOPPED);
-  task->priv->prio_set = FALSE;
 
   /* use the default klass pool for this task, users can
    * override this later */
-  g_static_mutex_lock (&pool_lock);
+  g_mutex_lock (&pool_lock);
   task->priv->pool = gst_object_ref (klass->pool);
-  g_static_mutex_unlock (&pool_lock);
+  g_mutex_unlock (&pool_lock);
 }
 
 static void
@@ -215,8 +212,7 @@
 
   /* task thread cannot be running here since it holds a ref
    * to the task so that the finalize could not have happened */
-  g_cond_free (task->cond);
-  task->cond = NULL;
+  g_cond_clear (&task->cond);
 
   G_OBJECT_CLASS (gst_task_parent_class)->finalize (object);
 }
@@ -255,7 +251,7 @@
 static void
 gst_task_func (GstTask * task)
 {
-  GStaticRecMutex *lock;
+  GRecMutex *lock;
   GThread *tself;
   GstTaskPrivate *priv;
 
@@ -275,9 +271,6 @@
   if (G_UNLIKELY (lock == NULL))
     goto no_lock;
   task->thread = tself;
-  /* only update the priority when it was changed */
-  if (priv->prio_set)
-    g_thread_set_priority (tself, priv->priority);
   GST_OBJECT_UNLOCK (task);
 
   /* fire the enter_thread callback when we need to */
@@ -285,7 +278,7 @@
     priv->thr_callbacks.enter_thread (task, tself, priv->thr_user_data);
 
   /* locking order is TASK_LOCK, LOCK */
-  g_static_rec_mutex_lock (lock);
+  g_rec_mutex_lock (lock);
   /* configure the thread name now */
   gst_task_configure_name (task);
 
@@ -293,18 +286,15 @@
     if (G_UNLIKELY (GET_TASK_STATE (task) == GST_TASK_PAUSED)) {
       GST_OBJECT_LOCK (task);
       while (G_UNLIKELY (GST_TASK_STATE (task) == GST_TASK_PAUSED)) {
-        gint t;
+        g_rec_mutex_unlock (lock);
 
-        t = g_static_rec_mutex_unlock_full (lock);
-        if (t <= 0) {
-          g_warning ("wrong STREAM_LOCK count %d", t);
-        }
         GST_TASK_SIGNAL (task);
+        GST_INFO_OBJECT (task, "Task going to paused");
         GST_TASK_WAIT (task);
+        GST_INFO_OBJECT (task, "Task resume from paused");
         GST_OBJECT_UNLOCK (task);
         /* locking order.. */
-        if (t > 0)
-          g_static_rec_mutex_lock_full (lock, t);
+        g_rec_mutex_lock (lock);
 
         GST_OBJECT_LOCK (task);
         if (G_UNLIKELY (GET_TASK_STATE (task) == GST_TASK_STOPPED)) {
@@ -318,7 +308,7 @@
     task->func (task->data);
   }
 done:
-  g_static_rec_mutex_unlock (lock);
+  g_rec_mutex_unlock (lock);
 
   GST_OBJECT_LOCK (task);
   task->thread = NULL;
@@ -330,10 +320,6 @@
     GST_OBJECT_UNLOCK (task);
     priv->thr_callbacks.leave_thread (task, tself, priv->thr_user_data);
     GST_OBJECT_LOCK (task);
-  } else {
-    /* restore normal priority when releasing back into the pool, we will not
-     * touch the priority when a custom callback has been installed. */
-    g_thread_set_priority (tself, G_THREAD_PRIORITY_NORMAL);
   }
   /* now we allow messing with the lock again by setting the running flag to
    * FALSE. Together with the SIGNAL this is the sign for the _join() to
@@ -377,7 +363,7 @@
 }
 
 /**
- * gst_task_create:
+ * gst_task_new:
  * @func: The #GstTaskFunction to use
  * @data: (closure): User data to pass to @func
  *
@@ -400,7 +386,7 @@
  * MT safe.
  */
 GstTask *
-gst_task_create (GstTaskFunction func, gpointer data)
+gst_task_new (GstTaskFunction func, gpointer data)
 {
   GstTask *task;
 
@@ -416,7 +402,7 @@
 /**
  * gst_task_set_lock:
  * @task: The #GstTask to use
- * @mutex: The #GMutex to use
+ * @mutex: The #GRecMutex to use
  *
  * Set the mutex used by the task. The mutex will be acquired before
  * calling the #GstTaskFunction.
@@ -427,11 +413,12 @@
  * MT safe.
  */
 void
-gst_task_set_lock (GstTask * task, GStaticRecMutex * mutex)
+gst_task_set_lock (GstTask * task, GRecMutex * mutex)
 {
   GST_OBJECT_LOCK (task);
   if (G_UNLIKELY (task->running))
     goto is_running;
+  GST_INFO ("setting stream lock %p on task %p", mutex, task);
   GST_TASK_GET_LOCK (task) = mutex;
   GST_OBJECT_UNLOCK (task);
 
@@ -446,41 +433,6 @@
 }
 
 /**
- * gst_task_set_priority:
- * @task: a #GstTask
- * @priority: a new priority for @task
- *
- * Changes the priority of @task to @priority.
- *
- * Note: try not to depend on task priorities.
- *
- * MT safe.
- *
- * Since: 0.10.24
- */
-void
-gst_task_set_priority (GstTask * task, GThreadPriority priority)
-{
-  GstTaskPrivate *priv;
-  GThread *thread;
-
-  g_return_if_fail (GST_IS_TASK (task));
-
-  priv = task->priv;
-
-  GST_OBJECT_LOCK (task);
-  priv->prio_set = TRUE;
-  priv->priority = priority;
-  thread = task->thread;
-  if (thread != NULL) {
-    /* if this task already has a thread, we can configure the priority right
-     * away, else we do that when we assign a thread to the task. */
-    g_thread_set_priority (thread, priority);
-  }
-  GST_OBJECT_UNLOCK (task);
-}
-
-/**
  * gst_task_get_pool:
  * @task: a #GstTask
  *
diff --git a/gst/gsttask.h b/gst/gsttask.h
index 21784b7..5c1600e 100644
--- a/gst/gsttask.h
+++ b/gst/gsttask.h
@@ -78,7 +78,7 @@
  *
  * Get access to the cond of the task.
  */
-#define GST_TASK_GET_COND(task)         (GST_TASK_CAST(task)->cond)
+#define GST_TASK_GET_COND(task)         (&GST_TASK_CAST(task)->cond)
 /**
  * GST_TASK_WAIT:
  * @task: Task to wait for
@@ -116,7 +116,7 @@
  * @leave_thread: a thread is exiting, this is called when the thread is about
  *   to leave its function
  *
- * Custom GstTask thread callback functions that can be installed. 
+ * Custom GstTask thread callback functions that can be installed.
  *
  * Since: 0.10.24
  */
@@ -144,9 +144,9 @@
 
   /*< public >*/ /* with LOCK */
   GstTaskState     state;
-  GCond           *cond;
+  GCond            cond;
 
-  GStaticRecMutex *lock;
+  GRecMutex       *lock;
 
   GstTaskFunction  func;
   gpointer         data;
@@ -175,9 +175,8 @@
 
 GType           gst_task_get_type       (void);
 
-GstTask*        gst_task_create         (GstTaskFunction func, gpointer data);
-void            gst_task_set_lock       (GstTask *task, GStaticRecMutex *mutex);
-void            gst_task_set_priority   (GstTask *task, GThreadPriority priority);
+GstTask*        gst_task_new            (GstTaskFunction func, gpointer data);
+void            gst_task_set_lock       (GstTask *task, GRecMutex *mutex);
 
 GstTaskPool *   gst_task_get_pool       (GstTask *task);
 void            gst_task_set_pool       (GstTask *task, GstTaskPool *pool);
diff --git a/gst/gsttaskpool.h b/gst/gsttaskpool.h
index 912015e..6f2ac66 100644
--- a/gst/gsttaskpool.h
+++ b/gst/gsttaskpool.h
@@ -92,7 +92,7 @@
 GstTaskPool *   gst_task_pool_new         (void);
 void            gst_task_pool_prepare     (GstTaskPool *pool, GError **error);
 
-gpointer        gst_task_pool_push        (GstTaskPool *pool, GstTaskPoolFunction func, 
+gpointer        gst_task_pool_push        (GstTaskPool *pool, GstTaskPoolFunction func,
                                            gpointer user_data, GError **error);
 void            gst_task_pool_join        (GstTaskPool *pool, gpointer id);
 
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
new file mode 100644
index 0000000..0ea0f33
--- /dev/null
+++ b/gst/gsttoc.c
@@ -0,0 +1,1038 @@
+/* GStreamer
+ * (c) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * gsttoc.c: GstToc initialization and parsing/creation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gsttoc
+ * @short_description: Generic table of contents support
+ * @see_also: #GstStructure, #GstEvent, #GstMessage, #GstQuery, #GstPad
+ *
+ * #GstToc functions are used to create/free #GstToc and #GstTocEntry structures.
+ * Also they are used to convert #GstToc into #GstStructure and vice versa.
+ *
+ * #GstToc lets you to inform other elements in pipeline or application that playing
+ * source has some kind of table of contents (TOC). These may be chapters, editions,
+ * angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
+ * TOC. Such TOC will be useful for applications to display instead of just a
+ * playlist.
+ *
+ * Using TOC is very easy. Firstly, create #GstToc structure which represents root
+ * contents of the source. You can also attach TOC-specific tags to it. Then fill
+ * it with #GstTocEntry entries by appending them to #GstToc.entries #GstTocEntry.subentries
+ * lists. You should use GST_TOC_ENTRY_TYPE_CHAPTER for generic TOC entry and
+ * GST_TOC_ENTRY_TYPE_EDITION for the entries which are considered to be alternatives
+ * (like DVD angles, Matroska editions and so on).
+ *
+ * Note that root level of the TOC can contain only either editions or chapters. You
+ * should not mix them together at the same level. Otherwise you will get serialization
+ * /deserialization errors. Make sure that no one of the entries has negative start and
+ *  stop values.
+ *
+ * Please, use #GstToc.info and #GstTocEntry.info fields in that way: create a #GstStructure,
+ * put all info related to your element there and put this structure into the info field under
+ * the name of your element. Some fields in the info structure can be used for internal purposes,
+ * so you should use it in the way described above to not to overwrite already existent fields.
+ *
+ * Use gst_event_new_toc() to create a new TOC #GstEvent, and gst_event_parse_toc() to
+ * parse received TOC event. Use gst_event_new_toc_select() to create a new TOC select #GstEvent,
+ * and gst_event_parse_toc_select() to parse received TOC select event. The same rule for
+ * the #GstMessage: gst_message_new_toc() to create new TOC #GstMessage, and
+ * gst_message_parse_toc() to parse received TOC message. Also you can create a new TOC query
+ * with gst_query_new_toc(), set it with gst_query_set_toc() and parse it with
+ * gst_query_parse_toc().
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "gst_private.h"
+#include "gstenumtypes.h"
+#include "gsttaglist.h"
+#include "gststructure.h"
+#include "gstvalue.h"
+#include "gsttoc.h"
+#include "gstpad.h"
+
+#define GST_TOC_TOC_NAME            "toc"
+#define GST_TOC_ENTRY_NAME          "entry"
+
+#define GST_TOC_TOC_UPDATED_FIELD   "updated"
+#define GST_TOC_TOC_EXTENDUID_FIELD "extenduid"
+#define GST_TOC_INFO_FIELD          "info"
+
+#define GST_TOC_ENTRY_UID_FIELD     "uid"
+#define GST_TOC_ENTRY_TYPE_FIELD    "type"
+#define GST_TOC_ENTRY_TAGS_FIELD    "tags"
+
+#define GST_TOC_TOC_ENTRIES_FIELD   "subentries"
+
+#define GST_TOC_INFO_NAME           "info-structure"
+#define GST_TOC_INFO_TIME_FIELD     "time"
+
+#define GST_TOC_TIME_NAME           "time-structure"
+#define GST_TOC_TIME_START_FIELD    "start"
+#define GST_TOC_TIME_STOP_FIELD     "stop"
+
+
+enum
+{
+  GST_TOC_TOC = 0,
+  GST_TOC_ENTRY = 1,
+  GST_TOC_UPDATED = 2,
+  GST_TOC_EXTENDUID = 3,
+  GST_TOC_UID = 4,
+  GST_TOC_TYPE = 5,
+  GST_TOC_TAGS = 6,
+  GST_TOC_SUBENTRIES = 7,
+  GST_TOC_INFO = 8,
+  GST_TOC_INFONAME = 9,
+  GST_TOC_TIME = 10,
+  GST_TOC_TIMENAME = 11,
+  GST_TOC_TIME_START = 12,
+  GST_TOC_TIME_STOP = 13,
+  GST_TOC_LAST = 14
+};
+
+static GQuark gst_toc_fields[GST_TOC_LAST] = { 0 };
+
+void
+_priv_gst_toc_initialize (void)
+{
+  static gboolean inited = FALSE;
+
+  if (G_LIKELY (!inited)) {
+    gst_toc_fields[GST_TOC_TOC] = g_quark_from_static_string (GST_TOC_TOC_NAME);
+    gst_toc_fields[GST_TOC_ENTRY] =
+        g_quark_from_static_string (GST_TOC_ENTRY_NAME);
+
+    gst_toc_fields[GST_TOC_UPDATED] =
+        g_quark_from_static_string (GST_TOC_TOC_UPDATED_FIELD);
+    gst_toc_fields[GST_TOC_EXTENDUID] =
+        g_quark_from_static_string (GST_TOC_TOC_EXTENDUID_FIELD);
+    gst_toc_fields[GST_TOC_INFO] =
+        g_quark_from_static_string (GST_TOC_INFO_FIELD);
+
+    gst_toc_fields[GST_TOC_UID] =
+        g_quark_from_static_string (GST_TOC_ENTRY_UID_FIELD);
+    gst_toc_fields[GST_TOC_TYPE] =
+        g_quark_from_static_string (GST_TOC_ENTRY_TYPE_FIELD);
+    gst_toc_fields[GST_TOC_TAGS] =
+        g_quark_from_static_string (GST_TOC_ENTRY_TAGS_FIELD);
+
+    gst_toc_fields[GST_TOC_SUBENTRIES] =
+        g_quark_from_static_string (GST_TOC_TOC_ENTRIES_FIELD);
+
+    gst_toc_fields[GST_TOC_INFONAME] =
+        g_quark_from_static_string (GST_TOC_INFO_NAME);
+    gst_toc_fields[GST_TOC_TIME] =
+        g_quark_from_static_string (GST_TOC_INFO_TIME_FIELD);
+    gst_toc_fields[GST_TOC_TIMENAME] =
+        g_quark_from_static_string (GST_TOC_TIME_NAME);
+    gst_toc_fields[GST_TOC_TIME_START] =
+        g_quark_from_static_string (GST_TOC_TIME_START_FIELD);
+    gst_toc_fields[GST_TOC_TIME_STOP] =
+        g_quark_from_static_string (GST_TOC_TIME_STOP_FIELD);
+
+    inited = TRUE;
+  }
+}
+
+/**
+ * gst_toc_new:
+ *
+ * Create new #GstToc structure.
+ *
+ * Returns: newly allocated #GstToc structure, free it with gst_toc_free().
+ *
+ * Since: 0.10.37
+ */
+GstToc *
+gst_toc_new (void)
+{
+  GstToc *toc;
+
+  toc = g_slice_new0 (GstToc);
+  toc->tags = gst_tag_list_new_empty ();
+  toc->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+
+  return toc;
+}
+
+/**
+ * gst_toc_entry_new:
+ * @type: entry type.
+ * @uid: unique ID (UID) in the whole TOC.
+ *
+ * Create new #GstTocEntry structure.
+ *
+ * Returns: newly allocated #GstTocEntry structure, free it with gst_toc_entry_free().
+ *
+ * Since: 0.10.37
+ */
+GstTocEntry *
+gst_toc_entry_new (GstTocEntryType type, const gchar * uid)
+{
+  GstTocEntry *entry;
+
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  entry = g_slice_new0 (GstTocEntry);
+  entry->uid = g_strdup (uid);
+  entry->type = type;
+  entry->tags = gst_tag_list_new_empty ();
+  entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+
+  return entry;
+}
+
+/**
+ * gst_toc_entry_new_with_pad:
+ * @type: entry type.
+ * @uid: unique ID (UID) in the whole TOC.
+ * @pad: #GstPad related to this entry.
+ *
+ * Create new #GstTocEntry structure with #GstPad related.
+ *
+ * Returns: newly allocated #GstTocEntry structure, free it with gst_toc_entry_free()
+ * when done.
+ *
+ * Since: 0.10.37
+ */
+GstTocEntry *
+gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar * uid,
+    gpointer pad)
+{
+  GstTocEntry *entry;
+
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  entry = g_slice_new0 (GstTocEntry);
+  entry->uid = g_strdup (uid);
+  entry->type = type;
+  entry->tags = gst_tag_list_new_empty ();
+  entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+
+  if (pad != NULL && GST_IS_PAD (pad))
+    entry->pads = g_list_append (entry->pads, gst_object_ref (pad));
+
+  return entry;
+}
+
+/**
+ * gst_toc_free:
+ * @toc: #GstToc structure to free.
+ *
+ * Free unused #GstToc structure.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_toc_free (GstToc * toc)
+{
+  g_return_if_fail (toc != NULL);
+
+  g_list_foreach (toc->entries, (GFunc) gst_toc_entry_free, NULL);
+  g_list_free (toc->entries);
+
+  if (toc->tags != NULL)
+    gst_tag_list_free (toc->tags);
+
+  if (toc->info != NULL)
+    gst_structure_free (toc->info);
+
+  g_slice_free (GstToc, toc);
+}
+
+/**
+ * gst_toc_entry_free:
+ * @entry: #GstTocEntry structure to free.
+ *
+ * Free unused #GstTocEntry structure. Note that #GstTocEntry.uid will
+ * be freed with g_free() and all #GstPad objects in the #GstTocEntry.pads
+ * list will be unrefed with gst_object_unref().
+ *
+ * Since: 0.10.37
+ */
+void
+gst_toc_entry_free (GstTocEntry * entry)
+{
+  GList *cur;
+
+  g_return_if_fail (entry != NULL);
+
+  g_list_foreach (entry->subentries, (GFunc) gst_toc_entry_free, NULL);
+  g_list_free (entry->subentries);
+
+  g_free (entry->uid);
+
+  if (entry->tags != NULL)
+    gst_tag_list_free (entry->tags);
+
+  if (entry->info != NULL)
+    gst_structure_free (entry->info);
+
+  cur = entry->pads;
+  while (cur != NULL) {
+    if (GST_IS_PAD (cur->data))
+      gst_object_unref (cur->data);
+    cur = cur->next;
+  }
+
+  g_list_free (entry->pads);
+
+  g_slice_free (GstTocEntry, entry);
+}
+
+static GstStructure *
+gst_toc_structure_new (GstTagList * tags, GstStructure * info)
+{
+  GstStructure *ret;
+  GValue val = { 0 };
+
+  ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TOC]);
+
+  if (tags != NULL) {
+    g_value_init (&val, GST_TYPE_STRUCTURE);
+    gst_value_set_structure (&val, GST_STRUCTURE (tags));
+    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
+    g_value_unset (&val);
+  }
+
+  if (info != NULL) {
+    g_value_init (&val, GST_TYPE_STRUCTURE);
+    gst_value_set_structure (&val, info);
+    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
+    g_value_unset (&val);
+  }
+
+  return ret;
+}
+
+static GstStructure *
+gst_toc_entry_structure_new (GstTocEntryType type, const gchar * uid,
+    GstTagList * tags, GstStructure * info)
+{
+  GValue val = { 0 };
+  GstStructure *ret;
+
+  ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_ENTRY]);
+
+  gst_structure_id_set (ret, gst_toc_fields[GST_TOC_TYPE],
+      GST_TYPE_TOC_ENTRY_TYPE, type, NULL);
+
+  g_value_init (&val, G_TYPE_STRING);
+  g_value_set_string (&val, uid);
+  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_UID], &val);
+  g_value_unset (&val);
+
+  if (tags != NULL) {
+    g_value_init (&val, GST_TYPE_STRUCTURE);
+    gst_value_set_structure (&val, GST_STRUCTURE (tags));
+    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
+    g_value_unset (&val);
+  }
+
+  if (info != NULL) {
+    g_value_init (&val, GST_TYPE_STRUCTURE);
+    gst_value_set_structure (&val, info);
+    gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
+    g_value_unset (&val);
+  }
+
+  return ret;
+}
+
+static guint
+gst_toc_entry_structure_n_subentries (const GstStructure * entry)
+{
+  if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
+              gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+    return 0;
+  else
+    return gst_value_array_get_size ((gst_structure_id_get_value (entry,
+                gst_toc_fields[GST_TOC_SUBENTRIES])));
+}
+
+static const GstStructure *
+gst_toc_entry_structure_nth_subentry (const GstStructure * entry, guint nth)
+{
+  guint count;
+  const GValue *array;
+
+  count = gst_toc_entry_structure_n_subentries (entry);
+
+  if (count < nth)
+    return NULL;
+
+  if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
+              gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+    return NULL;
+  else {
+    array =
+        gst_value_array_get_value (gst_structure_id_get_value (entry,
+            gst_toc_fields[GST_TOC_SUBENTRIES]), nth);
+    return gst_value_get_structure (array);
+  }
+}
+
+static GstTocEntry *
+gst_toc_entry_from_structure (const GstStructure * entry, guint level)
+{
+  GstTocEntry *ret, *subentry;
+  const GValue *val;
+  const GstStructure *subentry_struct;
+  GstTagList *list;
+  GstStructure *st;
+  gint count, i;
+  const gchar *uid;
+  guint chapters_count = 0, editions_count = 0;
+
+  g_return_val_if_fail (entry != NULL, NULL);
+  g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
+          gst_toc_fields[GST_TOC_UID], G_TYPE_STRING), NULL);
+  g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
+          gst_toc_fields[GST_TOC_TYPE], GST_TYPE_TOC_ENTRY_TYPE), NULL);
+
+  val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_UID]);
+  uid = g_value_get_string (val);
+
+  ret = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid);
+
+  gst_structure_get_enum (entry, GST_TOC_ENTRY_TYPE_FIELD,
+      GST_TYPE_TOC_ENTRY_TYPE, (gint *) & (ret->type));
+
+  if (gst_structure_id_has_field_typed (entry,
+          gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+    count = gst_toc_entry_structure_n_subentries (entry);
+
+    for (i = 0; i < count; ++i) {
+      subentry_struct = gst_toc_entry_structure_nth_subentry (entry, i);
+      subentry = gst_toc_entry_from_structure (subentry_struct, level + 1);
+
+      /* skip empty editions */
+      if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
+              && subentry->subentries == NULL)) {
+        g_warning
+            ("Empty edition found while deserializing TOC from GstStructure, skipping");
+        continue;
+      }
+
+      if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
+        ++editions_count;
+      else
+        ++chapters_count;
+
+      /* check for mixed content */
+      if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
+        g_critical
+            ("Mixed editions and chapters in the TOC contents, the TOC is broken");
+        gst_toc_entry_free (subentry);
+        gst_toc_entry_free (ret);
+        return NULL;
+      }
+
+      if (G_UNLIKELY (subentry == NULL)) {
+        gst_toc_entry_free (ret);
+        return NULL;
+      }
+
+      ret->subentries = g_list_prepend (ret->subentries, subentry);
+    }
+
+    ret->subentries = g_list_reverse (ret->subentries);
+  }
+
+  if (gst_structure_id_has_field_typed (entry,
+          gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_TAGS]);
+
+    if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
+      list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
+      gst_tag_list_free (ret->tags);
+      ret->tags = list;
+    }
+  }
+
+  if (gst_structure_id_has_field_typed (entry,
+          gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_INFO]);
+
+    if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
+      st = gst_structure_copy (gst_value_get_structure (val));
+      gst_structure_free (ret->info);
+      ret->info = st;
+    }
+  }
+
+  return ret;
+}
+
+GstToc *
+__gst_toc_from_structure (const GstStructure * toc)
+{
+  GstToc *ret;
+  GstTocEntry *subentry;
+  const GstStructure *subentry_struct;
+  const GValue *val;
+  GstTagList *list;
+  GstStructure *st;
+  guint count, i;
+  guint editions_count = 0, chapters_count = 0;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  ret = gst_toc_new ();
+
+  if (gst_structure_id_has_field_typed (toc,
+          gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+    count = gst_toc_entry_structure_n_subentries (toc);
+
+    for (i = 0; i < count; ++i) {
+      subentry_struct = gst_toc_entry_structure_nth_subentry (toc, i);
+      subentry = gst_toc_entry_from_structure (subentry_struct, 0);
+
+      /* skip empty editions */
+      if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
+              && subentry->subentries == NULL)) {
+        g_warning
+            ("Empty edition found while deserializing TOC from GstStructure, skipping");
+        continue;
+      }
+
+      /* check for success */
+      if (G_UNLIKELY (subentry == NULL)) {
+        g_critical ("Couldn't serialize deserializing TOC from GstStructure");
+        gst_toc_free (ret);
+        return NULL;
+      }
+
+      if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
+        ++editions_count;
+      else
+        ++chapters_count;
+
+      /* check for mixed content */
+      if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
+        g_critical
+            ("Mixed editions and chapters in the TOC contents, the TOC is broken");
+        gst_toc_entry_free (subentry);
+        gst_toc_free (ret);
+        return NULL;
+      }
+
+      ret->entries = g_list_prepend (ret->entries, subentry);
+    }
+
+    ret->entries = g_list_reverse (ret->entries);
+  }
+
+  if (gst_structure_id_has_field_typed (toc,
+          gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_TAGS]);
+
+    if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
+      list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
+      gst_tag_list_free (ret->tags);
+      ret->tags = list;
+    }
+  }
+
+  if (gst_structure_id_has_field_typed (toc,
+          gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
+    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_INFO]);
+
+    if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
+      st = gst_structure_copy (gst_value_get_structure (val));
+      gst_structure_free (ret->info);
+      ret->info = st;
+    }
+  }
+
+  if (G_UNLIKELY (ret->entries == NULL)) {
+    gst_toc_free (ret);
+    return NULL;
+  }
+
+  return ret;
+}
+
+static GstStructure *
+gst_toc_entry_to_structure (const GstTocEntry * entry, guint level)
+{
+  GstStructure *ret, *subentry_struct;
+  GstTocEntry *subentry;
+  GList *cur;
+  GValue subentries_val = { 0 };
+  GValue entry_val = { 0 };
+  guint chapters_count = 0, editions_count = 0;
+
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  ret =
+      gst_toc_entry_structure_new (entry->type, entry->uid, entry->tags,
+      entry->info);
+
+  g_value_init (&subentries_val, GST_TYPE_ARRAY);
+  g_value_init (&entry_val, GST_TYPE_STRUCTURE);
+
+  cur = entry->subentries;
+  while (cur != NULL) {
+    subentry = cur->data;
+
+    if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
+      ++editions_count;
+    else
+      ++chapters_count;
+
+    /* check for mixed content */
+    if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
+      g_critical
+          ("Mixed editions and chapters in the TOC contents, the TOC is broken");
+      gst_structure_free (ret);
+      g_value_unset (&entry_val);
+      g_value_unset (&subentries_val);
+      return NULL;
+    }
+
+    /* skip empty editions */
+    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
+            && subentry->subentries == NULL)) {
+      g_warning
+          ("Empty edition found while serializing TOC to GstStructure, skipping");
+      cur = cur->next;
+      continue;
+    }
+
+    subentry_struct = gst_toc_entry_to_structure (subentry, level + 1);
+
+    /* check for success */
+    if (G_UNLIKELY (subentry_struct == NULL)) {
+      gst_structure_free (ret);
+      g_value_unset (&subentries_val);
+      g_value_unset (&entry_val);
+      return NULL;
+    }
+
+    /* skip empty editions */
+    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
+            && subentry->subentries == NULL)) {
+      g_warning
+          ("Empty edition found while serializing TOC to GstStructure, skipping");
+      cur = cur->next;
+      continue;
+    }
+
+    gst_value_set_structure (&entry_val, subentry_struct);
+    gst_value_array_append_value (&subentries_val, &entry_val);
+    gst_structure_free (subentry_struct);
+
+    cur = cur->next;
+  }
+
+  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
+      &subentries_val);
+
+  g_value_unset (&subentries_val);
+  g_value_unset (&entry_val);
+  return ret;
+}
+
+GstStructure *
+__gst_toc_to_structure (const GstToc * toc)
+{
+  GValue val = { 0 };
+  GValue subentries_val = { 0 };
+  GstStructure *ret, *subentry_struct;
+  GstTocEntry *subentry;
+  GList *cur;
+  guint editions_count = 0, chapters_count = 0;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+  g_return_val_if_fail (toc->entries != NULL, NULL);
+
+  ret = gst_toc_structure_new (toc->tags, toc->info);
+
+  g_value_init (&val, GST_TYPE_STRUCTURE);
+  g_value_init (&subentries_val, GST_TYPE_ARRAY);
+  cur = toc->entries;
+
+  while (cur != NULL) {
+    subentry = cur->data;
+
+    if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
+      ++editions_count;
+    else
+      ++chapters_count;
+
+    /* check for mixed content */
+    if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
+      g_critical
+          ("Mixed editions and chapters in the TOC contents, the TOC is broken");
+      gst_structure_free (ret);
+      g_value_unset (&val);
+      g_value_unset (&subentries_val);
+      return NULL;
+    }
+
+    /* skip empty editions */
+    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
+            && subentry->subentries == NULL)) {
+      g_warning
+          ("Empty edition found while serializing TOC to GstStructure, skipping");
+      cur = cur->next;
+      continue;
+    }
+
+    subentry_struct = gst_toc_entry_to_structure (subentry, 0);
+
+    /* check for success */
+    if (G_UNLIKELY (subentry_struct == NULL)) {
+      g_critical ("Couldn't serialize TOC to GstStructure");
+      gst_structure_free (ret);
+      g_value_unset (&val);
+      g_value_unset (&subentries_val);
+      return NULL;
+    }
+
+    gst_value_set_structure (&val, subentry_struct);
+    gst_value_array_append_value (&subentries_val, &val);
+    gst_structure_free (subentry_struct);
+
+    cur = cur->next;
+  }
+
+  gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
+      &subentries_val);
+
+  g_value_unset (&val);
+  g_value_unset (&subentries_val);
+  return ret;
+}
+
+static gboolean
+gst_toc_check_entry_for_uid (const GstTocEntry * entry, const gchar * uid)
+{
+  GList *cur;
+
+  g_return_val_if_fail (entry != NULL, FALSE);
+  g_return_val_if_fail (uid != NULL, FALSE);
+
+  if (g_strcmp0 (entry->uid, uid) == 0)
+    return TRUE;
+
+  cur = entry->subentries;
+  while (cur != NULL) {
+    if (gst_toc_check_entry_for_uid (cur->data, uid))
+      return TRUE;
+    cur = cur->next;
+  }
+
+  return FALSE;
+}
+
+/**
+ * gst_toc_find_entry:
+ * @toc: #GstToc to search in.
+ * @uid: UID to find #GstTocEntry with.
+ *
+ * Find #GstTocEntry with given @uid in the @toc.
+ *
+ * Returns: #GstTocEntry with specified @uid from the @toc, or NULL if not found.
+ *
+ * Since: 0.10.37
+ */
+GstTocEntry *
+gst_toc_find_entry (const GstToc * toc, const gchar * uid)
+{
+  GList *cur;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  cur = toc->entries;
+  while (cur != NULL) {
+    if (gst_toc_check_entry_for_uid (cur->data, uid))
+      return cur->data;
+    cur = cur->next;
+  }
+
+  return NULL;
+}
+
+/**
+ * gst_toc_entry_copy:
+ * @entry: #GstTocEntry to copy.
+ *
+ * Copy #GstTocEntry with all subentries (deep copy).
+ *
+ * Returns: newly allocated #GstTocEntry in case of success, NULL otherwise;
+ * free it when done with gst_toc_entry_free().
+ *
+ * Since: 0.10.37
+ */
+GstTocEntry *
+gst_toc_entry_copy (const GstTocEntry * entry)
+{
+  GstTocEntry *ret, *sub;
+  GList *cur;
+  GstTagList *list;
+  GstStructure *st;
+
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  ret = gst_toc_entry_new (entry->type, entry->uid);
+
+  if (GST_IS_STRUCTURE (entry->info)) {
+    st = gst_structure_copy (entry->info);
+    gst_structure_free (ret->info);
+    ret->info = st;
+  }
+
+  if (GST_IS_TAG_LIST (entry->tags)) {
+    list = gst_tag_list_copy (entry->tags);
+    gst_tag_list_free (ret->tags);
+    ret->tags = list;
+  }
+
+  cur = entry->pads;
+  while (cur != NULL) {
+    if (GST_IS_PAD (cur->data))
+      ret->pads = g_list_prepend (ret->pads, gst_object_ref (cur->data));
+    cur = cur->next;
+  }
+  ret->pads = g_list_reverse (ret->pads);
+
+  cur = entry->subentries;
+  while (cur != NULL) {
+    sub = gst_toc_entry_copy (cur->data);
+
+    if (sub != NULL)
+      ret->subentries = g_list_prepend (ret->subentries, sub);
+
+    cur = cur->next;
+  }
+  ret->subentries = g_list_reverse (ret->subentries);
+
+  return ret;
+}
+
+/**
+ * gst_toc_copy:
+ * @toc: #GstToc to copy.
+ *
+ * Copy #GstToc with all subentries (deep copy).
+ *
+ * Returns: newly allocated #GstToc in case of success, NULL otherwise;
+ * free it when done with gst_toc_free().
+ *
+ * Since: 0.10.37
+ */
+GstToc *
+gst_toc_copy (const GstToc * toc)
+{
+  GstToc *ret;
+  GstTocEntry *entry;
+  GList *cur;
+  GstTagList *list;
+  GstStructure *st;
+
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  ret = gst_toc_new ();
+
+  if (GST_IS_STRUCTURE (toc->info)) {
+    st = gst_structure_copy (toc->info);
+    gst_structure_free (ret->info);
+    ret->info = st;
+  }
+
+  if (GST_IS_TAG_LIST (toc->tags)) {
+    list = gst_tag_list_copy (toc->tags);
+    gst_tag_list_free (ret->tags);
+    ret->tags = list;
+  }
+
+  cur = toc->entries;
+  while (cur != NULL) {
+    entry = gst_toc_entry_copy (cur->data);
+
+    if (entry != NULL)
+      ret->entries = g_list_prepend (ret->entries, entry);
+
+    cur = cur->next;
+  }
+  ret->entries = g_list_reverse (ret->entries);
+
+  return ret;
+}
+
+/**
+ * gst_toc_entry_set_start_stop:
+ * @entry: #GstTocEntry to set values.
+ * @start: start value to set.
+ * @stop: stop value to set.
+ *
+ * Set @start and @stop values for the @entry.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_toc_entry_set_start_stop (GstTocEntry * entry, gint64 start, gint64 stop)
+{
+  const GValue *val;
+  GstStructure *structure = NULL;
+
+  g_return_if_fail (entry != NULL);
+  g_return_if_fail (GST_IS_STRUCTURE (entry->info));
+
+  if (gst_structure_id_has_field_typed (entry->info,
+          gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE)) {
+    val =
+        gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+    structure = gst_structure_copy (gst_value_get_structure (val));
+  }
+
+  if (structure == NULL)
+    structure = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TIMENAME]);
+
+  gst_structure_id_set (structure, gst_toc_fields[GST_TOC_TIME_START],
+      G_TYPE_INT64, start, gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64,
+      stop, NULL);
+
+  gst_structure_id_set (entry->info, gst_toc_fields[GST_TOC_TIME],
+      GST_TYPE_STRUCTURE, structure, NULL);
+
+  gst_structure_free (structure);
+}
+
+/**
+ * gst_toc_entry_get_start_stop:
+ * @entry: #GstTocEntry to get values from.
+ * @start: (out): the storage for the start value, leave #NULL if not need.
+ * @stop: (out): the storage for the stop value, leave #NULL if not need.
+ *
+ * Get start and stop values from the @entry and write them into appropriate storages.
+ *
+ * Returns: TRUE if all non-NULL storage pointers were filled with appropriate values,
+ * FALSE otherwise.
+ *
+ * Since: 0.10.37
+ */
+gboolean
+gst_toc_entry_get_start_stop (const GstTocEntry * entry, gint64 * start,
+    gint64 * stop)
+{
+  gboolean ret = TRUE;
+  const GValue *val;
+  const GstStructure *structure;
+
+  g_return_val_if_fail (entry != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_STRUCTURE (entry->info), FALSE);
+
+  if (!gst_structure_id_has_field_typed (entry->info,
+          gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE))
+    return FALSE;
+
+  val = gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+  structure = gst_value_get_structure (val);
+
+  if (start != NULL) {
+    if (gst_structure_id_has_field_typed (structure,
+            gst_toc_fields[GST_TOC_TIME_START], G_TYPE_INT64))
+      *start =
+          g_value_get_int64 (gst_structure_id_get_value (structure,
+              gst_toc_fields[GST_TOC_TIME_START]));
+    else
+      ret = FALSE;
+  }
+
+  if (stop != NULL) {
+    if (gst_structure_id_has_field_typed (structure,
+            gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64))
+      *stop =
+          g_value_get_int64 (gst_structure_id_get_value (structure,
+              gst_toc_fields[GST_TOC_TIME_STOP]));
+    else
+      ret = FALSE;
+  }
+
+  return ret;
+}
+
+gboolean
+__gst_toc_structure_get_updated (const GstStructure * toc)
+{
+  const GValue *val;
+
+  g_return_val_if_fail (GST_IS_STRUCTURE (toc), FALSE);
+
+  if (G_LIKELY (gst_structure_id_has_field_typed (toc,
+              gst_toc_fields[GST_TOC_UPDATED], G_TYPE_BOOLEAN))) {
+    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_UPDATED]);
+    return g_value_get_boolean (val);
+  }
+
+  return FALSE;
+}
+
+void
+__gst_toc_structure_set_updated (GstStructure * toc, gboolean updated)
+{
+  GValue val = { 0 };
+
+  g_return_if_fail (toc != NULL);
+
+  g_value_init (&val, G_TYPE_BOOLEAN);
+  g_value_set_boolean (&val, updated);
+  gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_UPDATED], &val);
+  g_value_unset (&val);
+}
+
+gchar *
+__gst_toc_structure_get_extend_uid (const GstStructure * toc)
+{
+  const GValue *val;
+
+  g_return_val_if_fail (GST_IS_STRUCTURE (toc), NULL);
+
+  if (G_LIKELY (gst_structure_id_has_field_typed (toc,
+              gst_toc_fields[GST_TOC_EXTENDUID], G_TYPE_STRING))) {
+    val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_EXTENDUID]);
+    return g_strdup (g_value_get_string (val));
+  }
+
+  return NULL;
+}
+
+void
+__gst_toc_structure_set_extend_uid (GstStructure * toc,
+    const gchar * extend_uid)
+{
+  GValue val = { 0 };
+
+  g_return_if_fail (toc != NULL);
+  g_return_if_fail (extend_uid != NULL);
+
+  g_value_init (&val, G_TYPE_STRING);
+  g_value_set_string (&val, extend_uid);
+  gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_EXTENDUID], &val);
+  g_value_unset (&val);
+}
diff --git a/gst/gsttoc.h b/gst/gsttoc.h
new file mode 100644
index 0000000..a1a7b8c
--- /dev/null
+++ b/gst/gsttoc.h
@@ -0,0 +1,112 @@
+/* GStreamer
+ * (c) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * gsttoc.h: generic TOC API declaration
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_TOC_H__
+#define __GST_TOC_H__
+
+#include <gst/gstconfig.h>
+#include <gst/gststructure.h>
+#include <gst/gsttaglist.h>
+#include <gst/gstformat.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstTocEntry GstTocEntry;
+typedef struct _GstToc GstToc;
+
+/**
+ * GstTocEntryType:
+ * @GST_TOC_ENTRY_TYPE_CHAPTER: a chapter type entry.
+ * @GST_TOC_ENTRY_TYPE_EDITION: an edition entry (angle or alternative in other terms).
+ *
+ * The different types of TOC entry.
+ */
+typedef enum {
+  GST_TOC_ENTRY_TYPE_CHAPTER     = 0,
+  GST_TOC_ENTRY_TYPE_EDITION     = 1
+} GstTocEntryType;
+
+/**
+ * GstTocEntry:
+ * @uid: unique (for a whole TOC) id of the entry. This value should be persistent and
+ * should not be changed while updating TOC. @uid should be handled as "opaque" value
+ * without meaning (e.g. applications should not assume the /editionX/chapterY/chapter/Z structure,
+ * other demuxers could do something else), it should help to track updates of certain entries.
+ * @type: #GstTocEntryType of this entry.
+ * @subentries: list of #GstTocEntry children.
+ * @pads: list of #GstPad objects, related to this #GstTocEntry.
+ * @tags: tags related to this entry.
+ * @info: extra information related to this entry.
+ *
+ * Definition of TOC entry structure.
+ */
+struct _GstTocEntry {
+  gchar *uid;
+  GstTocEntryType type;
+  GList *subentries;
+  GList *pads;
+  GstTagList *tags;
+  GstStructure *info;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/* FIXME: pad member should be GstPad type, but that's
+ * impossible due to recursive includes */
+
+/**
+ * GstToc:
+ * @entries: list of #GstTocEntry entries of the TOC.
+ * @tags: tags related to the whole TOC.
+ * @info: extra information related to the TOC.
+ *
+ * Definition of TOC structure.
+ */
+struct _GstToc {
+  GList *entries;
+  GstTagList *tags;
+  GstStructure *info;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/* functions to create new structures */
+GstToc *        gst_toc_new                     (void);
+GstTocEntry *   gst_toc_entry_new               (GstTocEntryType type, const gchar *uid);
+GstTocEntry *   gst_toc_entry_new_with_pad      (GstTocEntryType type, const gchar *uid, gpointer pad);
+
+/* functions to free structures */
+void            gst_toc_entry_free              (GstTocEntry *entry);
+void            gst_toc_free                    (GstToc *toc);
+
+GstTocEntry *   gst_toc_find_entry              (const GstToc *toc, const gchar *uid);
+GstTocEntry *   gst_toc_entry_copy              (const GstTocEntry *entry);
+GstToc      *   gst_toc_copy                    (const GstToc *toc);
+
+void            gst_toc_entry_set_start_stop    (GstTocEntry *entry, gint64 start, gint64 stop);
+gboolean        gst_toc_entry_get_start_stop    (const GstTocEntry *entry, gint64 *start, gint64 *stop);
+
+G_END_DECLS
+
+#endif /* __GST_TOC_H__ */
+
diff --git a/gst/gsttocsetter.c b/gst/gsttocsetter.c
new file mode 100644
index 0000000..85bbaa2
--- /dev/null
+++ b/gst/gsttocsetter.c
@@ -0,0 +1,362 @@
+/* GStreamer
+ * Copyright (C) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * gsttocsetter.c: interface for TOC setting on elements
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gsttocsetter
+ * @short_description: Element interface that allows setting and retrieval
+ *                     of the TOC
+ *
+ * Element interface that allows setting of the TOC.
+ *
+ * Elements that support some kind of chapters or editions (or tracks like in
+ * the FLAC cue sheet) will implement this interface.
+ * 
+ * If you just want to retrieve the TOC in your application then all you
+ * need to do is watch for TOC messages on your pipeline's bus (or you can
+ * perform TOC query). This interface is only for setting TOC data, not for
+ * extracting it. To set TOC from the application, find proper tocsetter element
+ * and set TOC using gst_toc_setter_set_toc().
+ * 
+ * Elements implementing the #GstTocSetter interface can extend existing TOC
+ * by getting extend UID for that (you can use gst_toc_find_entry() to retrieve it)
+ * with any TOC entries received from downstream.
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "gst_private.h"
+#include "gsttocsetter.h"
+#include <gobject/gvaluecollector.h>
+#include <string.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_toc_interface_debug);
+#define GST_CAT_DEFAULT tag_toc_interface_debug
+
+static GQuark gst_toc_key;
+
+typedef struct
+{
+  GstToc *toc;
+  GMutex lock;
+} GstTocData;
+
+GType
+gst_toc_setter_get_type (void)
+{
+  static volatile gsize toc_setter_type = 0;
+
+  if (g_once_init_enter (&toc_setter_type)) {
+    GType _type;
+    static const GTypeInfo toc_setter_info = {
+      sizeof (GstTocSetterIFace),       /* class_size */
+      NULL,                     /* base_init */
+      NULL,                     /* base_finalize */
+      NULL,
+      NULL,                     /* class_finalize */
+      NULL,                     /* class_data */
+      0,
+      0,
+      NULL
+    };
+
+    GST_DEBUG_CATEGORY_INIT (gst_toc_interface_debug, "GstTocInterface", 0,
+        "interfaces for the TOC");
+
+    _type = g_type_register_static (G_TYPE_INTERFACE, "GstTocSetter",
+        &toc_setter_info, 0);
+
+    g_type_interface_add_prerequisite (_type, GST_TYPE_ELEMENT);
+
+    gst_toc_key = g_quark_from_static_string ("GST_TOC_SETTER");
+    g_once_init_leave (&toc_setter_type, _type);
+  }
+
+  return toc_setter_type;
+}
+
+static void
+gst_toc_data_free (gpointer p)
+{
+  GstTocData *data = (GstTocData *) p;
+
+  if (data->toc)
+    gst_toc_free (data->toc);
+
+  g_mutex_clear (&data->lock);
+
+  g_slice_free (GstTocData, data);
+}
+
+static GstTocData *
+gst_toc_setter_get_data (GstTocSetter * setter)
+{
+  GstTocData *data;
+
+  data = g_object_get_qdata (G_OBJECT (setter), gst_toc_key);
+  if (!data) {
+    static GMutex create_mutex;
+
+    /* make sure no other thread is creating a GstTocData at the same time */
+    g_mutex_lock (&create_mutex);
+    data = g_object_get_qdata (G_OBJECT (setter), gst_toc_key);
+    if (!data) {
+      data = g_slice_new (GstTocData);
+      g_mutex_init (&data->lock);
+      data->toc = NULL;
+      g_object_set_qdata_full (G_OBJECT (setter), gst_toc_key, data,
+          gst_toc_data_free);
+    }
+    g_mutex_unlock (&create_mutex);
+  }
+
+  return data;
+}
+
+/**
+ * gst_toc_setter_reset_toc:
+ * @setter: a #GstTocSetter.
+ *
+ * Reset the internal TOC. Elements should call this from within the
+ * state-change handler.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_toc_setter_reset_toc (GstTocSetter * setter)
+{
+  GstTocData *data;
+
+  g_return_if_fail (GST_IS_TOC_SETTER (setter));
+
+  data = gst_toc_setter_get_data (setter);
+
+  g_mutex_lock (&data->lock);
+  if (data->toc) {
+    gst_toc_free (data->toc);
+    data->toc = NULL;
+  }
+  g_mutex_unlock (&data->lock);
+}
+
+/**
+ * gst_toc_setter_get_toc:
+ * @setter: a #GstTocSetter.
+ *
+ * Return current TOC the setter uses. The TOC should not be
+ * modified or freed.
+ *
+ * This function is not thread-safe. Use gst_toc_setter_get_toc_copy() instead.
+ *
+ * Returns: a current snapshot of the TOC used in the setter
+ *          or NULL if none is used.
+ *
+ * Since: 0.10.37
+ */
+const GstToc *
+gst_toc_setter_get_toc (GstTocSetter * setter)
+{
+  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
+
+  return gst_toc_setter_get_data (setter)->toc;
+}
+
+/**
+ * gst_toc_setter_get_toc_copy:
+ * @setter: a #GstTocSetter.
+ *
+ * Return current TOC the setter uses. The difference between this
+ * function and gst_toc_setter_get_toc() is that this function returns deep
+ * copy of the TOC, so you can modify it in any way. This function is thread-safe.
+ * Free it when done with gst_toc_free().
+ *
+ * Returns: a copy of the current snapshot of the TOC used in the setter
+ *          or NULL if none is used.
+ *
+ * Since: 0.10.37
+ */
+GstToc *
+gst_toc_setter_get_toc_copy (GstTocSetter * setter)
+{
+  GstTocData *data;
+  GstToc *ret = NULL;
+
+  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
+
+  data = gst_toc_setter_get_data (setter);
+  g_mutex_lock (&data->lock);
+
+  if (data->toc != NULL)
+    ret = gst_toc_copy (data->toc);
+
+  g_mutex_unlock (&data->lock);
+
+  return ret;
+}
+
+/**
+ * gst_toc_setter_set_toc:
+ * @setter: a #GstTocSetter.
+ * @toc: a #GstToc to set.
+ *
+ * Set the given TOC on the setter. Previously setted TOC will be
+ * freed before setting a new one.
+ *
+ * Since: 0.10.37
+ */
+void
+gst_toc_setter_set_toc (GstTocSetter * setter, const GstToc * toc)
+{
+  GstTocData *data;
+
+  g_return_if_fail (GST_IS_TOC_SETTER (setter));
+
+  data = gst_toc_setter_get_data (setter);
+
+  g_mutex_lock (&data->lock);
+  if (data->toc)
+    gst_toc_free (data->toc);
+
+  data->toc = gst_toc_copy (toc);
+
+  g_mutex_unlock (&data->lock);
+}
+
+/**
+ * gst_toc_setter_get_toc_entry:
+ * @setter: a #GstTocSetter.
+ * @uid: UID to find entry with.
+ *
+ * Return #GstTocEntry (if any) with given @uid. Returned entry should
+ * not be modified or freed.
+ *
+ * This function is not thread-safe. Use gst_toc_setter_get_toc_entry_copy() instead.
+ *
+ * Returns: a TOC entry with given @uid from the TOC in the setter
+ *          or NULL if none entry with such @uid was found.
+ *
+ * Since: 0.10.37
+ */
+const GstTocEntry *
+gst_toc_setter_get_toc_entry (GstTocSetter * setter, const gchar * uid)
+{
+  GstTocData *data;
+  const GstTocEntry *ret;
+
+  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  data = gst_toc_setter_get_data (setter);
+
+  g_mutex_lock (&data->lock);
+
+  ret = gst_toc_find_entry (data->toc, uid);
+
+  g_mutex_unlock (&data->lock);
+
+  return ret;
+}
+
+/**
+ * gst_toc_setter_get_toc_entry_copy:
+ * @setter: a #GstTocSetter.
+ * @uid: UID to find entry with.
+ *
+ * Return #GstTocEntry (if any) with given @uid. It perform a deep copying,
+ * so you can modify returned value. Free it when done with gst_toc_entry_free().
+ * This function is thread-safe.
+ *
+ * Returns: a TOC entry with given @uid from the TOC in the setter
+ *          or NULL if none entry with such @uid was found.
+ *
+ * Since: 0.10.37
+ */
+GstTocEntry *
+gst_toc_setter_get_toc_entry_copy (GstTocSetter * setter, const gchar * uid)
+{
+  GstTocData *data;
+  GstTocEntry *ret = NULL;
+  const GstTocEntry *search;
+
+  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
+  g_return_val_if_fail (uid != NULL, NULL);
+
+  data = gst_toc_setter_get_data (setter);
+
+  g_mutex_lock (&data->lock);
+
+  search = gst_toc_find_entry (data->toc, uid);
+  if (search != NULL)
+    ret = gst_toc_entry_copy (search);
+
+  g_mutex_unlock (&data->lock);
+
+  return ret;
+}
+
+/**
+ * gst_toc_setter_add_toc_entry:
+ * @setter: a #GstTocSetter.
+ * @parent_uid: UID of the parent entry to append given @entry. Use 0 for the TOC root level.
+ * @entry: #GstTocEntry to append.
+ *
+ * Try to find entry with given @parent_uid and append an @entry to that #GstTocEntry.
+ *
+ * Returns: TRUE if entry with @parent_uid was found, FALSE otherwise.
+ *
+ * Since: 0.10.37
+ */
+gboolean
+gst_toc_setter_add_toc_entry (GstTocSetter * setter, const gchar * parent_uid,
+    const GstTocEntry * entry)
+{
+  GstTocData *data;
+  GstTocEntry *parent;
+  GstTocEntry *copy_entry;
+  gboolean ret = FALSE;
+
+  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), FALSE);
+  g_return_val_if_fail (parent_uid != NULL, FALSE);
+  g_return_val_if_fail (entry != NULL, FALSE);
+
+  data = gst_toc_setter_get_data (setter);
+
+  g_mutex_lock (&data->lock);
+
+  copy_entry = gst_toc_entry_copy (entry);
+
+  if (g_strcmp0 (parent_uid, "0") == 0)
+    data->toc->entries = g_list_append (data->toc->entries, copy_entry);
+  else {
+    parent = gst_toc_find_entry (data->toc, parent_uid);
+
+    if (parent != NULL) {
+      parent->subentries = g_list_append (parent->subentries, copy_entry);
+      ret = TRUE;
+    }
+  }
+
+  g_mutex_unlock (&data->lock);
+
+  return ret;
+}
diff --git a/gst/gsttocsetter.h b/gst/gsttocsetter.h
new file mode 100644
index 0000000..2174e0d
--- /dev/null
+++ b/gst/gsttocsetter.h
@@ -0,0 +1,67 @@
+/* GStreamer
+ * Copyright (C) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * gsttocsetter.h: Interfaces for TOC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_TOC_SETTER_H__
+#define __GST_TOC_SETTER_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_TOC_SETTER		        (gst_toc_setter_get_type ())
+#define GST_TOC_SETTER(obj)		        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TOC_SETTER, GstTocSetter))
+#define GST_IS_TOC_SETTER(obj)		    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TOC_SETTER))
+#define GST_TOC_SETTER_GET_IFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TOC_SETTER, GstTocSetterIFace))
+/**
+ * GstTocSetter:
+ *
+ * Opaque #GstTocSetter data structure.
+ */
+typedef struct _GstTocSetter GstTocSetter;
+typedef struct _GstTocSetterIFace GstTocSetterIFace;
+
+/**
+ * GstTocSetterIFace:
+ * @g_iface: parent interface type.
+ *
+ * #GstTocSetterIFace interface.
+ */
+
+struct _GstTocSetterIFace
+{
+  GTypeInterface g_iface;
+
+  /* signals */
+
+  /* virtual table */
+};
+
+GType               gst_toc_setter_get_type (void);
+void                gst_toc_setter_reset_toc (GstTocSetter *setter);
+const GstToc *      gst_toc_setter_get_toc (GstTocSetter *setter);
+GstToc *            gst_toc_setter_get_toc_copy (GstTocSetter *setter);
+void                gst_toc_setter_set_toc (GstTocSetter *setter, const GstToc *toc);
+const GstTocEntry * gst_toc_setter_get_toc_entry (GstTocSetter *setter, const gchar *uid);
+GstTocEntry *       gst_toc_setter_get_toc_entry_copy (GstTocSetter *setter, const gchar *uid);
+gboolean            gst_toc_setter_add_toc_entry (GstTocSetter *setter, const gchar *parent_uid, const GstTocEntry *entry);
+
+G_END_DECLS
+#endif /* __GST_TOC_SETTER_H__ */
+
diff --git a/gst/gsttrace.c b/gst/gsttrace.c
index b857458..a6e4d95 100644
--- a/gst/gsttrace.c
+++ b/gst/gsttrace.c
@@ -20,31 +20,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-/**
- * SECTION:gsttrace
- * @short_description: Tracing functionality
- *
- * Traces allows to track object allocation. They provide a instance counter per
- * #GType. The counter is incremented for each object allocated and decremented
- * it when it's freed.
- *
- * <example>
- * <title>Tracing object instances</title>
- *   <programlisting>
- *     // trace un-freed object instances
- *     gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE);
- *     if (!gst_alloc_trace_available ()) {
- *       g_warning ("Trace not available (recompile with trace enabled).");
- *     }
- *     gst_alloc_trace_print_live ();
- *     // do something here
- *     gst_alloc_trace_print_live ();
- *   </programlisting>
- * </example>
- *
- * Last reviewed on 2005-11-21 (0.9.5)
- */
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -66,200 +41,7 @@
 
 #include "gsttrace.h"
 
-GStaticMutex _gst_trace_mutex = G_STATIC_MUTEX_INIT;
-
-static
-#ifdef __inline__
-  __inline__
-#endif
-    void
-read_tsc (gint64 * dst)
-{
-#if defined(HAVE_RDTSC) && defined(__GNUC__)
-  guint64 tsc;
-  __asm__ __volatile__ ("rdtsc":"=A" (tsc));
-
-  *dst = tsc;
-#else
-  *dst = 0;
-#endif
-}
-
-/**
- * gst_trace_read_tsc:
- * @dst: (out) pointer to hold the result.
- *
- * Read a platform independent timer value that can be used in
- * benchmarks.
- */
-void
-gst_trace_read_tsc (gint64 * dst)
-{
-  read_tsc (dst);
-}
-
-static GstTrace *_gst_trace_default = NULL;
-gint _gst_trace_on = 1;
-
-/**
- * gst_trace_new:
- * @filename: a filename
- * @size: the max size of the file
- *
- * Create a ringbuffer of @size in the file with @filename to
- * store trace results in.
- *
- * Free-function: gst_trace_destroy
- *
- * Returns: (transfer full): a new #GstTrace.
- */
-GstTrace *
-gst_trace_new (const gchar * filename, gint size)
-{
-  GstTrace *trace = g_slice_new (GstTrace);
-
-  g_return_val_if_fail (trace != NULL, NULL);
-  trace->filename = g_strdup (filename);
-  GST_DEBUG ("opening '%s'", trace->filename);
-#ifndef S_IWUSR
-#define S_IWUSR S_IWRITE
-#endif
-#ifndef S_IRUSR
-#define S_IRUSR S_IREAD
-#endif
-  trace->fd =
-      open (trace->filename, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
-  perror ("opening trace file");
-  g_return_val_if_fail (trace->fd > 0, NULL);
-  trace->buf = g_malloc (size * sizeof (GstTraceEntry));
-  g_return_val_if_fail (trace->buf != NULL, NULL);
-  trace->bufsize = size;
-  trace->bufoffset = 0;
-
-  return trace;
-}
-
-/**
- * gst_trace_destroy:
- * @trace: (in) (transfer full): the #GstTrace to destroy
- *
- * Flush an close the previously allocated @trace.
- */
-void
-gst_trace_destroy (GstTrace * trace)
-{
-  g_return_if_fail (trace != NULL);
-  g_return_if_fail (trace->buf != NULL);
-
-  if (gst_trace_get_remaining (trace) > 0)
-    gst_trace_flush (trace);
-  close (trace->fd);
-  g_free (trace->buf);
-  g_slice_free (GstTrace, trace);
-}
-
-/**
- * gst_trace_flush:
- * @trace: the #GstTrace to flush.
- *
- * Flush any pending trace entries in @trace to the trace file.
- * @trace can be NULL in which case the default #GstTrace will be
- * flushed.
- */
-void
-gst_trace_flush (GstTrace * trace)
-{
-  int res, buf_len;
-
-  if (!trace) {
-    trace = _gst_trace_default;
-    if (!trace)
-      return;
-  }
-
-  buf_len = trace->bufoffset * sizeof (GstTraceEntry);
-  res = write (trace->fd, trace->buf, buf_len);
-  if (res < 0) {
-    g_warning ("Failed to write trace: %s", g_strerror (errno));
-    return;
-  } else if (res < buf_len) {
-    g_warning ("Failed to write trace: only wrote %d/%d bytes", res, buf_len);
-    return;
-  }
-  trace->bufoffset = 0;
-}
-
-/**
- * gst_trace_text_flush:
- * @trace: the #GstTrace to flush.
- *
- * Flush any pending trace entries in @trace to the trace file,
- * formatted as a text line with timestamp and sequence numbers.
- * @trace can be NULL in which case the default #GstTrace will be
- * flushed.
- */
-void
-gst_trace_text_flush (GstTrace * trace)
-{
-  int i;
-
-#define STRSIZE (20 + 1 + 10 + 1 + 10 + 1 + 112 + 1 + 1)
-  char str[STRSIZE];
-
-  if (!trace) {
-    trace = _gst_trace_default;
-    if (!trace)
-      return;
-  }
-
-  for (i = 0; i < trace->bufoffset; i++) {
-    g_snprintf (str, STRSIZE, "%20" G_GINT64_FORMAT " %10d %10d %s\n",
-        trace->buf[i].timestamp,
-        trace->buf[i].sequence, trace->buf[i].data, trace->buf[i].message);
-    if (write (trace->fd, str, strlen (str)) < 0) {
-      g_warning ("Failed to write trace %d: %s", i, g_strerror (errno));
-      return;
-    }
-  }
-  trace->bufoffset = 0;
-#undef STRSIZE
-}
-
-/**
- * gst_trace_set_default:
- * @trace: the #GstTrace to set as the default.
- *
- * Set the default #GstTrace to @trace.
- */
-void
-gst_trace_set_default (GstTrace * trace)
-{
-  g_return_if_fail (trace != NULL);
-  _gst_trace_default = trace;
-}
-
-void
-_gst_trace_add_entry (GstTrace * trace, guint32 seq, guint32 data, gchar * msg)
-{
-  GstTraceEntry *entry;
-
-  if (!trace) {
-    trace = _gst_trace_default;
-    if (!trace)
-      return;
-  }
-
-  entry = trace->buf + trace->bufoffset;
-  read_tsc (&(entry->timestamp));
-  entry->sequence = seq;
-  entry->data = data;
-  strncpy (entry->message, msg, 112);
-  entry->message[111] = '\0';
-  trace->bufoffset++;
-
-  gst_trace_flush (trace);
-}
-
+GMutex _gst_trace_mutex;
 
 /* global flags */
 static GstAllocTraceFlags _gst_trace_flags = GST_ALLOC_TRACE_NONE;
@@ -267,27 +49,38 @@
 /* list of registered tracers */
 static GList *_gst_alloc_tracers = NULL;
 
-/**
- * gst_alloc_trace_available:
- *
- * Check if alloc tracing was compiled into the core
- *
- * Returns: TRUE if the core was compiled with alloc
- * tracing enabled.
- */
-gboolean
-gst_alloc_trace_available (void)
+static void
+_at_exit (void)
 {
-#ifdef GST_DISABLE_ALLOC_TRACE
-  return FALSE;
-#else
-  return TRUE;
-#endif
+  if (_gst_trace_flags)
+    _priv_gst_alloc_trace_dump ();
+}
+
+void
+_priv_gst_alloc_trace_initialize (void)
+{
+  const gchar *trace;
+
+  trace = g_getenv ("GST_TRACE");
+  if (trace != NULL) {
+    _gst_trace_flags = atoi (trace);
+    atexit (_at_exit);
+  }
+
+  g_mutex_init (&_gst_trace_mutex);
+}
+
+void
+_priv_gst_alloc_trace_deinit (void)
+{
+  g_mutex_clear (&_gst_trace_mutex);
 }
 
 /**
- * _gst_alloc_trace_register:
+ * _priv_gst_alloc_trace_register:
  * @name: the name of the new alloc trace object.
+ * @offset: the offset in the object where a GType an be found. -1 when the
+ * object has no gtype.
  *
  * Register an get a handle to a GstAllocTrace object that
  * can be used to trace memory allocations.
@@ -295,7 +88,7 @@
  * Returns: A handle to a GstAllocTrace.
  */
 GstAllocTrace *
-_gst_alloc_trace_register (const gchar * name)
+_priv_gst_alloc_trace_register (const gchar * name, goffset offset)
 {
   GstAllocTrace *trace;
 
@@ -306,49 +99,13 @@
   trace->live = 0;
   trace->mem_live = NULL;
   trace->flags = _gst_trace_flags;
+  trace->offset = offset;
 
   _gst_alloc_tracers = g_list_prepend (_gst_alloc_tracers, trace);
 
   return trace;
 }
 
-/**
- * gst_alloc_trace_list:
- *
- * Get a list of all registered alloc trace objects.
- *
- * Returns: a GList of GstAllocTrace objects.
- */
-const GList *
-gst_alloc_trace_list (void)
-{
-  return _gst_alloc_tracers;
-}
-
-/**
- * gst_alloc_trace_live_all:
- *
- * Get the total number of live registered alloc trace objects.
- *
- * Returns: the total number of live registered alloc trace objects.
- */
-int
-gst_alloc_trace_live_all (void)
-{
-  GList *walk = _gst_alloc_tracers;
-  int num = 0;
-
-  while (walk) {
-    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
-
-    num += trace->live;
-
-    walk = g_list_next (walk);
-  }
-
-  return num;
-}
-
 static gint
 compare_func (GstAllocTrace * a, GstAllocTrace * b)
 {
@@ -366,111 +123,7 @@
   return ret;
 }
 
-/**
- * gst_alloc_trace_print_all:
- *
- * Print the status of all registered alloc trace objects.
- */
-void
-gst_alloc_trace_print_all (void)
-{
-  GList *orig, *walk;
-
-  orig = walk = gst_alloc_trace_list_sorted ();
-
-  while (walk) {
-    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
-
-    gst_alloc_trace_print (trace);
-
-    walk = g_list_next (walk);
-  }
-
-  g_list_free (orig);
-}
-
-/**
- * gst_alloc_trace_print_live:
- *
- * Print the status of all registered alloc trace objects, ignoring those
- * without live objects.
- */
-void
-gst_alloc_trace_print_live (void)
-{
-  GList *orig, *walk;
-
-  orig = walk = gst_alloc_trace_list_sorted ();
-
-  while (walk) {
-    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
-
-    if (trace->live)
-      gst_alloc_trace_print (trace);
-
-    walk = g_list_next (walk);
-  }
-
-  g_list_free (orig);
-}
-
-/**
- * gst_alloc_trace_set_flags_all:
- * @flags: the options to enable
- *
- * Enable the specified options on all registered alloc trace
- * objects.
- */
-void
-gst_alloc_trace_set_flags_all (GstAllocTraceFlags flags)
-{
-  GList *walk = _gst_alloc_tracers;
-
-  while (walk) {
-    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
-
-    GST_DEBUG ("setting flags %d on %p", (gint) flags, trace);
-    gst_alloc_trace_set_flags (trace, flags);
-
-    walk = g_list_next (walk);
-  }
-  _gst_trace_flags = flags;
-}
-
-/**
- * gst_alloc_trace_get:
- * @name: the name of the alloc trace object
- *
- * Get the named alloc trace object.
- *
- * Returns: a GstAllocTrace with the given name or NULL when
- * no alloc tracer was registered with that name.
- */
-GstAllocTrace *
-gst_alloc_trace_get (const gchar * name)
-{
-  GList *walk = _gst_alloc_tracers;
-
-  g_return_val_if_fail (name, NULL);
-
-  while (walk) {
-    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
-
-    if (!strcmp (trace->name, name))
-      return trace;
-
-    walk = g_list_next (walk);
-  }
-  return NULL;
-}
-
-/**
- * gst_alloc_trace_print:
- * @trace: the GstAllocTrace to print
- *
- * Print the status of the given GstAllocTrace.
- */
-void
+static void
 gst_alloc_trace_print (const GstAllocTrace * trace)
 {
   GSList *mem_live;
@@ -488,28 +141,61 @@
 
     while (mem_live) {
       gpointer data = mem_live->data;
+      const gchar *type_name;
+      gchar *extra = NULL;
+      gint refcount = -1;
 
-      if (G_IS_OBJECT (data)) {
-        g_print ("%-22.22s : %p\n", g_type_name (G_OBJECT_TYPE (data)), data);
+      if (trace->offset == -2) {
+        if (G_IS_OBJECT (data)) {
+          type_name = G_OBJECT_TYPE_NAME (data);
+          refcount = G_OBJECT (data)->ref_count;
+        } else
+          type_name = "<invalid>";
+      } else if (trace->offset == -1) {
+        type_name = "<unknown>";
       } else {
-        g_print ("%-22.22s : %p\n", "", data);
+        GType type;
+
+        type = G_STRUCT_MEMBER (GType, data, trace->offset);
+        type_name = g_type_name (type);
+
+        if (type == GST_TYPE_CAPS) {
+          extra = gst_caps_to_string (data);
+          refcount = GST_MINI_OBJECT_REFCOUNT_VALUE (data);
+        }
       }
+
+      if (extra) {
+        g_print ("  %-20.20s : (%d) %p (\"%s\")\n", type_name, refcount, data,
+            extra);
+        g_free (extra);
+      } else
+        g_print ("  %-20.20s : (%d) %p\n", type_name, refcount, data);
+
       mem_live = mem_live->next;
     }
   }
 }
 
 /**
- * gst_alloc_trace_set_flags:
- * @trace: the GstAllocTrace
- * @flags: flags to set
+ * _priv_gst_alloc_trace_dump:
  *
- * Enable the given features on the given GstAllocTrace object.
+ * Print the status of all registered alloc trace objects.
  */
 void
-gst_alloc_trace_set_flags (GstAllocTrace * trace, GstAllocTraceFlags flags)
+_priv_gst_alloc_trace_dump (void)
 {
-  g_return_if_fail (trace != NULL);
+  GList *orig, *walk;
 
-  trace->flags = flags;
+  orig = walk = gst_alloc_trace_list_sorted ();
+
+  while (walk) {
+    GstAllocTrace *trace = (GstAllocTrace *) walk->data;
+
+    gst_alloc_trace_print (trace);
+
+    walk = g_list_next (walk);
+  }
+
+  g_list_free (orig);
 }
diff --git a/gst/gsttrace.h b/gst/gsttrace.h
index 817ae1f..ca70a83 100644
--- a/gst/gsttrace.h
+++ b/gst/gsttrace.h
@@ -39,106 +39,39 @@
 typedef enum {
   GST_ALLOC_TRACE_NONE      = 0,
   GST_ALLOC_TRACE_LIVE      = (1 << 0),
-  GST_ALLOC_TRACE_MEM_LIVE	= (1 << 1)
+  GST_ALLOC_TRACE_MEM_LIVE  = (1 << 1)
 } GstAllocTraceFlags;
 
-typedef struct _GstAllocTrace 	GstAllocTrace;
+typedef struct _GstAllocTrace   GstAllocTrace;
 
 /**
  * GstAllocTrace:
  * @name: The name of the tracing object
  * @flags: Flags for this object
+ * @offset: offset of the GType
  * @live: counter for live memory
  * @mem_live: list with pointers to unfreed memory
  *
  * The main tracing object
  */
 struct _GstAllocTrace {
-  gchar		*name;
-  gint		 flags;
+  gchar         *name;
+  gint           flags;
 
-  gint		 live;
-  GSList	*mem_live;
+  goffset        offset;
+  gint           live;
+  GSList        *mem_live;
 };
 
 #ifndef GST_DISABLE_TRACE
 
-typedef struct _GstTrace 	GstTrace;
-typedef struct _GstTraceEntry 	GstTraceEntry;
+GST_EXPORT GMutex       _gst_trace_mutex;
 
-/**
- * GstTrace:
- *
- * Opaque #GstTrace structure.
- */
-struct _GstTrace {
-  /*< private >*/
-  /* where this trace is going */
-  gchar *filename;
-  int fd;
+void                    _priv_gst_alloc_trace_initialize (void);
+void                    _priv_gst_alloc_trace_deinit     (void);
+GstAllocTrace*          _priv_gst_alloc_trace_register   (const gchar *name, goffset offset);
 
-  /* current buffer, size, head offset */
-  GstTraceEntry *buf;
-  gint bufsize;
-  gint bufoffset;
-};
-
-struct _GstTraceEntry {
-  gint64 timestamp;
-  guint32 sequence;
-  guint32 data;
-  gchar message[112];
-};
-
-GstTrace*	gst_trace_new			(const gchar *filename, gint size);
-
-void 		gst_trace_destroy		(GstTrace *trace);
-void 		gst_trace_flush			(GstTrace *trace);
-void 		gst_trace_text_flush		(GstTrace *trace);
-/**
- * gst_trace_get_size:
- * @trace: a #GstTrace
- *
- * Retrieve the buffer size of @trace.
- */
-#define 	gst_trace_get_size(trace) 	((trace)->bufsize)
-/**
- * gst_trace_get_offset:
- * @trace: a #GstTrace
- *
- * Retrieve the current buffer offset of @trace.
- */
-#define 	gst_trace_get_offset(trace) 	((trace)->bufoffset)
-/**
- * gst_trace_get_remaining:
- * @trace: a #GstTrace
- *
- * Retrieve the remaining size in the @trace buffer.
- */
-#define 	gst_trace_get_remaining(trace) 	((trace)->bufsize - (trace)->bufoffset)
-void 		gst_trace_set_default		(GstTrace *trace);
-
-void 		_gst_trace_add_entry		(GstTrace *trace, guint32 seq,
-						 guint32 data, gchar *msg);
-
-void 		gst_trace_read_tsc		(gint64 *dst);
-
-
-extern GStaticMutex     _gst_trace_mutex;
-
-gboolean		gst_alloc_trace_available	(void);
-const GList*		gst_alloc_trace_list		(void);
-GstAllocTrace*		_gst_alloc_trace_register	(const gchar *name);
-
-int			gst_alloc_trace_live_all	(void);
-void			gst_alloc_trace_print_all	(void);
-void			gst_alloc_trace_print_live	(void);
-void			gst_alloc_trace_set_flags_all	(GstAllocTraceFlags flags);
-
-GstAllocTrace*		gst_alloc_trace_get		(const gchar *name);
-void			gst_alloc_trace_print		(const GstAllocTrace *trace);
-void			gst_alloc_trace_set_flags	(GstAllocTrace *trace, GstAllocTraceFlags flags);
-
+void                    _priv_gst_alloc_trace_dump       (void);
 
 #ifndef GST_DISABLE_ALLOC_TRACE
 /**
@@ -147,7 +80,9 @@
  *
  * Register a new alloc tracer with the given name
  */
-#define	gst_alloc_trace_register(name) _gst_alloc_trace_register (name);
+#define _gst_alloc_trace_register(name,offset) _priv_gst_alloc_trace_register (name,offset)
+
+#define _gst_alloc_trace_dump                  _priv_gst_alloc_trace_dump
 
 /**
  * gst_alloc_trace_new:
@@ -156,16 +91,16 @@
  *
  * Use the tracer to trace a new memory allocation
  */
-#define	gst_alloc_trace_new(trace, mem) 		\
-G_STMT_START {						\
+#define _gst_alloc_trace_new(trace, mem)           \
+G_STMT_START {                                          \
   if (G_UNLIKELY ((trace)->flags)) {                    \
-    g_static_mutex_lock (&_gst_trace_mutex);            \
-    if ((trace)->flags & GST_ALLOC_TRACE_LIVE) 		\
-      (trace)->live++;					\
-    if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE) 	\
-      (trace)->mem_live = 				\
-        g_slist_prepend ((trace)->mem_live, mem);	\
-    g_static_mutex_unlock (&_gst_trace_mutex);          \
+    g_mutex_lock (&_gst_trace_mutex);            \
+    if ((trace)->flags & GST_ALLOC_TRACE_LIVE)          \
+      (trace)->live++;                                  \
+    if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE)      \
+      (trace)->mem_live =                               \
+        g_slist_prepend ((trace)->mem_live, mem);       \
+    g_mutex_unlock (&_gst_trace_mutex);          \
   }                                                     \
 } G_STMT_END
 
@@ -176,75 +111,32 @@
  *
  * Trace a memory free operation
  */
-#define	gst_alloc_trace_free(trace, mem) 		\
-G_STMT_START {						\
+#define _gst_alloc_trace_free(trace, mem)                \
+G_STMT_START {                                          \
   if (G_UNLIKELY ((trace)->flags)) {                    \
-    g_static_mutex_lock (&_gst_trace_mutex);            \
-    if ((trace)->flags & GST_ALLOC_TRACE_LIVE) 		\
-      (trace)->live--;					\
-    if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE) 	\
-      (trace)->mem_live = 				\
-        g_slist_remove ((trace)->mem_live, mem); 	\
-    g_static_mutex_unlock (&_gst_trace_mutex);          \
+    g_mutex_lock (&_gst_trace_mutex);            \
+    if ((trace)->flags & GST_ALLOC_TRACE_LIVE)          \
+      (trace)->live--;                                  \
+    if ((trace)->flags & GST_ALLOC_TRACE_MEM_LIVE)      \
+      (trace)->mem_live =                               \
+        g_slist_remove ((trace)->mem_live, mem);        \
+    g_mutex_unlock (&_gst_trace_mutex);          \
   }                                                     \
 } G_STMT_END
 
 #else
-#define	gst_alloc_trace_register(name) (NULL)
-#define	gst_alloc_trace_new(trace, mem)
-#define	gst_alloc_trace_free(trace, mem)
+#define _gst_alloc_trace_register(name) (NULL)
+#define _gst_alloc_trace_new(trace, mem)
+#define _gst_alloc_trace_free(trace, mem)
+#define _gst_alloc_trace_dump()
 #endif
 
-
-extern gint _gst_trace_on;
-/**
- * gst_trace_add_entry:
- * @trace: a #GstTrace
- * @seq: a sequence number
- * @data: the data to trace
- * @msg: the trace message
- *
- * Add an entry to @trace with sequence number @seq, @data and @msg.
- * If @trace is NULL, the entry will be added to the default #GstTrace.
- */
-#define gst_trace_add_entry(trace,seq,data,msg) \
-  if (_gst_trace_on) { \
-    _gst_trace_add_entry(trace,(guint32)seq,(guint32)data,msg); \
-  }
-
 #else /* GST_DISABLE_TRACE */
 
-#if defined __GNUC__ && __GNUC__ >= 3
-#pragma GCC poison 	gst_trace_new
-#pragma GCC poison	gst_trace_destroy
-#pragma GCC poison 	gst_trace_flush
-#pragma GCC poison	gst_trace_text_flush
-#pragma GCC poison 	gst_trace_get_size
-#pragma GCC poison 	gst_trace_get_offset
-#pragma GCC poison 	gst_trace_get_remaining
-#pragma GCC poison 	gst_trace_set_default
-#pragma GCC poison 	_gst_trace_add_entry
-#pragma GCC poison 	gst_trace_read_tsc
-#endif
-
-#define		gst_alloc_trace_register(name)	(NULL)
-#define		gst_alloc_trace_new(trace, mem)
-#define		gst_alloc_trace_free(trace, mem)
-
-#define		gst_alloc_trace_available()	(FALSE)
-#define		gst_alloc_trace_list()		(NULL)
-#define		_gst_alloc_trace_register(name)	(NULL)
-
-#define		gst_alloc_trace_live_all()	(0)
-#define		gst_alloc_trace_print_all()
-#define		gst_alloc_trace_print_live()
-#define		gst_alloc_trace_set_flags_all(flags)
-
-#define		gst_alloc_trace_get(name)	(NULL)
-#define		gst_alloc_trace_print(trace)
-#define		gst_alloc_trace_set_flags(trace,flags)
-
-#define         gst_trace_add_entry(trace,seq,data,msg)
+#define _gst_alloc_trace_register(name, offset)  (NULL)
+#define _gst_alloc_trace_new(trace, mem)
+#define _gst_alloc_trace_free(trace, mem)
+#define _gst_alloc_trace_dump()
 
 #endif /* GST_DISABLE_TRACE */
 
diff --git a/gst/gsttypefind.c b/gst/gsttypefind.c
index 1f0b16d..24c4730 100644
--- a/gst/gsttypefind.c
+++ b/gst/gsttypefind.c
@@ -38,16 +38,7 @@
 GST_DEBUG_CATEGORY_EXTERN (type_find_debug);
 #define GST_CAT_DEFAULT type_find_debug
 
-GType
-gst_type_find_get_type (void)
-{
-  static GType typefind_type = 0;
-
-  if (G_UNLIKELY (typefind_type == 0)) {
-    typefind_type = g_pointer_type_register_static ("GstTypeFind");
-  }
-  return typefind_type;
-}
+G_DEFINE_POINTER_TYPE (GstTypeFind, gst_type_find);
 
 /**
  * gst_type_find_register:
@@ -56,8 +47,8 @@
  * @name: The name for registering
  * @rank: The rank (or importance) of this typefind function
  * @func: The #GstTypeFindFunction to use
- * @extensions: (transfer none) (array zero-terminated=1) (element-type utf8):
- *     Optional extensions that could belong to this type
+ * @extensions: (allow-none): Optional comma-separated list of extensions
+ *     that could belong to this type
  * @possible_caps: Optionally the caps that could be returned when typefinding
  *                 succeeds
  * @data: Optional user data. This user data must be available until the plugin
@@ -73,8 +64,8 @@
  */
 gboolean
 gst_type_find_register (GstPlugin * plugin, const gchar * name, guint rank,
-    GstTypeFindFunction func, gchar ** extensions,
-    const GstCaps * possible_caps, gpointer data, GDestroyNotify data_notify)
+    GstTypeFindFunction func, const gchar * extensions,
+    GstCaps * possible_caps, gpointer data, GDestroyNotify data_notify)
 {
   GstTypeFindFactory *factory;
 
@@ -89,11 +80,14 @@
   gst_plugin_feature_set_name (GST_PLUGIN_FEATURE_CAST (factory), name);
   gst_plugin_feature_set_rank (GST_PLUGIN_FEATURE_CAST (factory), rank);
 
-  if (factory->extensions)
+  if (factory->extensions) {
     g_strfreev (factory->extensions);
-  factory->extensions = g_strdupv (extensions);
+    factory->extensions = NULL;
+  }
+  if (extensions)
+    factory->extensions = g_strsplit (extensions, ",", -1);
 
-  gst_caps_replace (&factory->caps, (GstCaps *) possible_caps);
+  gst_caps_replace (&factory->caps, possible_caps);
   factory->function = func;
   factory->user_data = data;
   factory->user_data_notify = data_notify;
@@ -108,7 +102,7 @@
   }
   GST_PLUGIN_FEATURE_CAST (factory)->loaded = TRUE;
 
-  gst_registry_add_feature (gst_registry_get_default (),
+  gst_registry_add_feature (gst_registry_get (),
       GST_PLUGIN_FEATURE_CAST (factory));
 
   return TRUE;
@@ -151,8 +145,7 @@
  * It is up to the caller of the #GstTypeFindFunction to interpret these values.
  */
 void
-gst_type_find_suggest (GstTypeFind * find, guint probability,
-    const GstCaps * caps)
+gst_type_find_suggest (GstTypeFind * find, guint probability, GstCaps * caps)
 {
   g_return_if_fail (find->suggest != NULL);
   g_return_if_fail (probability <= 100);
diff --git a/gst/gsttypefind.h b/gst/gsttypefind.h
index 27c7e32..9e66b6d 100644
--- a/gst/gsttypefind.h
+++ b/gst/gsttypefind.h
@@ -80,7 +80,7 @@
 
   void            (* suggest)    (gpointer         data,
                                   guint            probability,
-                                  const GstCaps *  caps);
+                                  GstCaps         *caps);
 
   gpointer         data;
 
@@ -100,7 +100,7 @@
 
 void            gst_type_find_suggest    (GstTypeFind   * find,
                                           guint           probability,
-                                          const GstCaps * caps);
+                                          GstCaps       * caps);
 
 void            gst_type_find_suggest_simple (GstTypeFind * find,
                                               guint         probability,
@@ -114,8 +114,8 @@
                                     const gchar          * name,
                                     guint                  rank,
                                     GstTypeFindFunction    func,
-                                    gchar               ** extensions,
-                                    const GstCaps        * possible_caps,
+                                    const gchar          * extensions,
+                                    GstCaps              * possible_caps,
                                     gpointer               data,
                                     GDestroyNotify         data_notify);
 
diff --git a/gst/gsttypefindfactory.c b/gst/gsttypefindfactory.c
index 26cbfb5..aca0698 100644
--- a/gst/gsttypefindfactory.c
+++ b/gst/gsttypefindfactory.c
@@ -91,14 +91,13 @@
 
 static void gst_type_find_factory_dispose (GObject * object);
 
-static GstPluginFeatureClass *parent_class = NULL;
-
 #define _do_init \
 { \
   GST_DEBUG_CATEGORY_INIT (type_find_debug, "GST_TYPEFIND", \
       GST_DEBUG_FG_GREEN, "typefinding subsystem"); \
 }
 
+#define gst_type_find_factory_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstTypeFindFactory, gst_type_find_factory,
     GST_TYPE_PLUGIN_FEATURE, _do_init);
 
@@ -107,8 +106,6 @@
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
-
   object_class->dispose = gst_type_find_factory_dispose;
 }
 
@@ -157,7 +154,7 @@
 GList *
 gst_type_find_factory_get_list (void)
 {
-  return gst_registry_get_feature_list (gst_registry_get_default (),
+  return gst_registry_get_feature_list (gst_registry_get (),
       GST_TYPE_TYPE_FIND_FACTORY);
 }
 
diff --git a/gst/gsttypefindfactory.h b/gst/gsttypefindfactory.h
index 19792ee..3d8ff31 100644
--- a/gst/gsttypefindfactory.h
+++ b/gst/gsttypefindfactory.h
@@ -45,21 +45,21 @@
  * Object that stores information about a typefind function.
  */
 struct _GstTypeFindFactory {
-  GstPluginFeature		feature;
+  GstPluginFeature              feature;
   /* <private> */
 
-  GstTypeFindFunction		function;
-  gchar **			extensions;
-  GstCaps *			caps; /* FIXME: not yet saved in registry */
+  GstTypeFindFunction           function;
+  gchar **                      extensions;
+  GstCaps *                     caps; /* FIXME: not yet saved in registry */
 
-  gpointer			user_data;
-  GDestroyNotify		user_data_notify;
+  gpointer                      user_data;
+  GDestroyNotify                user_data_notify;
 
   gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstTypeFindFactoryClass {
-  GstPluginFeatureClass		parent;
+  GstPluginFeatureClass         parent;
   /* <private> */
 
   gpointer _gst_reserved[GST_PADDING];
@@ -67,14 +67,14 @@
 
 /* typefinding interface */
 
-GType           gst_type_find_factory_get_type		(void);
+GType           gst_type_find_factory_get_type          (void);
 
-GList *		gst_type_find_factory_get_list		(void);
+GList *         gst_type_find_factory_get_list          (void);
 
-gchar **	gst_type_find_factory_get_extensions	(GstTypeFindFactory *factory);
-GstCaps *	gst_type_find_factory_get_caps	  	(GstTypeFindFactory *factory);
-void		gst_type_find_factory_call_function	(GstTypeFindFactory *factory,
-							 GstTypeFind *find);
+gchar **        gst_type_find_factory_get_extensions    (GstTypeFindFactory *factory);
+GstCaps *       gst_type_find_factory_get_caps          (GstTypeFindFactory *factory);
+void            gst_type_find_factory_call_function     (GstTypeFindFactory *factory,
+                                                         GstTypeFind *find);
 
 G_END_DECLS
 
diff --git a/gst/gsturi.c b/gst/gsturi.c
index 66ab40c..75c3440 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -25,7 +25,7 @@
  * SECTION:gsturihandler
  * @short_description: Interface to ease URI handling in plugins.
  *
- * The URIHandler is an interface that is implemented by Source and Sink 
+ * The URIHandler is an interface that is implemented by Source and Sink
  * #GstElement to simplify then handling of URI.
  *
  * An application can use the following functions to quickly get an element
@@ -44,24 +44,15 @@
 #include "gst_private.h"
 #include "gsturi.h"
 #include "gstinfo.h"
-#include "gstmarshal.h"
 #include "gstregistry.h"
 
+#include "gst-i18n-lib.h"
+
 #include <string.h>
 
 GST_DEBUG_CATEGORY_STATIC (gst_uri_handler_debug);
 #define GST_CAT_DEFAULT gst_uri_handler_debug
 
-enum
-{
-  NEW_URI,
-  LAST_SIGNAL
-};
-
-static guint gst_uri_handler_signals[LAST_SIGNAL] = { 0 };
-
-static void gst_uri_handler_base_init (gpointer g_class);
-
 GType
 gst_uri_handler_get_type (void)
 {
@@ -71,7 +62,7 @@
     GType _type;
     static const GTypeInfo urihandler_info = {
       sizeof (GstURIHandlerInterface),
-      gst_uri_handler_base_init,
+      NULL,
       NULL,
       NULL,
       NULL,
@@ -92,27 +83,10 @@
   return urihandler_type;
 }
 
-static void
-gst_uri_handler_base_init (gpointer g_class)
+GQuark
+gst_uri_error_quark (void)
 {
-  static gboolean initialized = FALSE;
-
-  if (G_UNLIKELY (!initialized)) {
-
-    /**
-     * GstURIHandler::new-uri:
-     * @handler: The #GstURIHandler which emitted the signal
-     * @uri: (transfer none): The new URI, or NULL if the URI was removed
-     *
-     * The URI of the given @handler has changed.
-     */
-
-    gst_uri_handler_signals[NEW_URI] =
-        g_signal_new ("new-uri", GST_TYPE_URI_HANDLER, G_SIGNAL_RUN_LAST,
-        G_STRUCT_OFFSET (GstURIHandlerInterface, new_uri), NULL, NULL,
-        gst_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
-    initialized = TRUE;
-  }
+  return g_quark_from_static_string ("gst-uri-error-quark");
 }
 
 static const guchar acceptable[96] = {  /* X0   X1   X2   X3   X4   X5   X6   X7   X8   X9   XA   XB   XC   XD   XE   XF */
@@ -503,7 +477,7 @@
 static gboolean
 search_by_entry (GstPluginFeature * feature, gpointer search_entry)
 {
-  gchar **protocols;
+  const gchar *const *protocols;
   GstElementFactory *factory;
   SearchEntry *entry = (SearchEntry *) search_entry;
 
@@ -548,7 +522,7 @@
 
   entry.type = type;
   entry.protocol = protocol;
-  possibilities = gst_registry_feature_filter (gst_registry_get_default (),
+  possibilities = gst_registry_feature_filter (gst_registry_get (),
       search_by_entry, FALSE, &entry);
 
   return possibilities;
@@ -622,7 +596,7 @@
                 elementname)) != NULL) {
       GstURIHandler *handler = GST_URI_HANDLER (ret);
 
-      if (gst_uri_handler_set_uri (handler, uri))
+      if (gst_uri_handler_set_uri (handler, uri, NULL))
         break;
       gst_object_unref (ret);
       ret = NULL;
@@ -674,11 +648,11 @@
  *     supported protocols. Returns NULL if the @handler isn't implemented
  *     properly, or the @handler doesn't support any protocols.
  */
-gchar **
+const gchar *const *
 gst_uri_handler_get_protocols (GstURIHandler * handler)
 {
   GstURIHandlerInterface *iface;
-  gchar **ret;
+  const gchar *const *ret;
 
   g_return_val_if_fail (GST_IS_URI_HANDLER (handler), NULL);
 
@@ -698,15 +672,15 @@
  *
  * Gets the currently handled URI.
  *
- * Returns: (transfer none): the URI currently handled by the @handler.
+ * Returns: (transfer full): the URI currently handled by the @handler.
  *   Returns NULL if there are no URI currently handled. The
- *   returned string must not be modified or freed.
+ *   returned string must be freed with g_free() when no longer needed.
  */
-const gchar *
+gchar *
 gst_uri_handler_get_uri (GstURIHandler * handler)
 {
   GstURIHandlerInterface *iface;
-  const gchar *ret;
+  gchar *ret;
 
   g_return_val_if_fail (GST_IS_URI_HANDLER (handler), NULL);
 
@@ -724,13 +698,16 @@
  * gst_uri_handler_set_uri:
  * @handler: A #GstURIHandler
  * @uri: URI to set
+ * @error: (allow-none): address where to store a #GError in case of
+ *    an error, or NULL
  *
  * Tries to set the URI of the given handler.
  *
  * Returns: TRUE if the URI was set successfully, else FALSE.
  */
 gboolean
-gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** error)
 {
   GstURIHandlerInterface *iface;
   gboolean ret;
@@ -738,6 +715,7 @@
 
   g_return_val_if_fail (GST_IS_URI_HANDLER (handler), FALSE);
   g_return_val_if_fail (gst_uri_is_valid (uri), FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
   iface = GST_URI_HANDLER_GET_INTERFACE (handler);
   g_return_val_if_fail (iface != NULL, FALSE);
@@ -745,12 +723,35 @@
 
   protocol = gst_uri_get_protocol (uri);
 
+  if (iface->get_protocols) {
+    const gchar *const *protocols;
+    const gchar *const *p;
+    gboolean found_protocol = FALSE;
+
+    protocols = iface->get_protocols (G_OBJECT_TYPE (handler));
+    if (protocols != NULL) {
+      for (p = protocols; *p != NULL; ++p) {
+        if (g_ascii_strcasecmp (protocol, *p) == 0) {
+          found_protocol = TRUE;
+          break;
+        }
+      }
+
+      if (!found_protocol) {
+        g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_PROTOCOL,
+            _("URI scheme '%s' not supported"), protocol);
+        g_free (protocol);
+        return FALSE;
+      }
+    }
+  }
+
   colon = strstr (uri, ":");
   location = g_strdup (colon);
 
   new_uri = g_strdup_printf ("%s%s", protocol, location);
 
-  ret = iface->set_uri (handler, uri);
+  ret = iface->set_uri (handler, uri, error);
 
   g_free (new_uri);
   g_free (location);
@@ -759,22 +760,6 @@
   return ret;
 }
 
-/**
- * gst_uri_handler_new_uri:
- * @handler: A #GstURIHandler
- * @uri: new URI or NULL if it was unset
- *
- * Emits the new-uri signal for a given handler, when that handler has a new URI.
- * This function should only be called by URI handlers themselves.
- */
-void
-gst_uri_handler_new_uri (GstURIHandler * handler, const gchar * uri)
-{
-  g_return_if_fail (GST_IS_URI_HANDLER (handler));
-
-  g_signal_emit (handler, gst_uri_handler_signals[NEW_URI], 0, uri);
-}
-
 static gchar *
 gst_file_utils_canonicalise_path (const gchar * path)
 {
diff --git a/gst/gsturi.h b/gst/gsturi.h
index 176d70e..539bbcb 100644
--- a/gst/gsturi.h
+++ b/gst/gsturi.h
@@ -26,15 +26,42 @@
 
 #include <glib.h>
 #include <gst/gstelement.h>
-#include <gst/gstpluginfeature.h>
 
 G_BEGIN_DECLS
 
+GQuark gst_uri_error_quark (void);
+
+/**
+ * GST_URI_ERROR:
+ *
+ * Get access to the error quark of the uri subsystem.
+ */
+#define GST_URI_ERROR gst_uri_error_quark ()
+
+/**
+ * GstURIError:
+ * @GST_URI_ERROR_BAD_PROTOCOL: The protocol is not supported
+ * @GST_URI_ERROR_BAD_URI: There was a problem with the URI
+ * @GST_URI_ERROR_BAD_STATE: Could not set or change the URI because the
+ *     URI handler was in a state where that is not possible or not permitted
+ * @GST_URI_ERROR_BAD_REFERENCE: There was a problem with the entity that
+ *     the URI references
+ *
+ * Different URI-related errors that can occur.
+ */
+typedef enum
+{
+  GST_URI_ERROR_BAD_PROTOCOL,
+  GST_URI_ERROR_BAD_URI,
+  GST_URI_ERROR_BAD_STATE,
+  GST_URI_ERROR_BAD_REFERENCE
+} GstURIError;
+
 /**
  * GstURIType:
- * @GST_URI_UNKNOWN	: The URI direction is unknown
- * @GST_URI_SINK	: The URI is a consumer.
- * @GST_URI_SRC		: The URI is a producer.
+ * @GST_URI_UNKNOWN: The URI direction is unknown
+ * @GST_URI_SINK: The URI is a consumer.
+ * @GST_URI_SRC: The URI is a producer.
  *
  * The different types of URI direction.
  */
@@ -54,10 +81,10 @@
 #define GST_URI_TYPE_IS_VALID(type) ((type) == GST_URI_SRC || (type) == GST_URI_SINK)
 
 /* uri handler functions */
-#define GST_TYPE_URI_HANDLER		(gst_uri_handler_get_type ())
-#define GST_URI_HANDLER(obj)		(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_URI_HANDLER, GstURIHandler))
-#define GST_IS_URI_HANDLER(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_URI_HANDLER))
-#define GST_URI_HANDLER_GET_INTERFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_URI_HANDLER, GstURIHandlerInterface))
+#define GST_TYPE_URI_HANDLER               (gst_uri_handler_get_type ())
+#define GST_URI_HANDLER(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_URI_HANDLER, GstURIHandler))
+#define GST_IS_URI_HANDLER(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_URI_HANDLER))
+#define GST_URI_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_URI_HANDLER, GstURIHandlerInterface))
 
 /**
  * GstURIHandler:
@@ -78,67 +105,50 @@
  * Any #GstElement using this interface should implement these methods.
  */
 struct _GstURIHandlerInterface {
-  GTypeInterface	parent;
-
-  /*< private >*/
-  /* signals */
-  void		(* new_uri)			(GstURIHandler * handler,
-						 const gchar *   uri);
-  /* idea for the future ?
-  gboolean	(* require_password)		(GstURIHandler * handler,
-						 gchar **	 username,
-						 gchar **	 password);
-   */
+  GTypeInterface parent;
 
   /* vtable */
-
   /*< public >*/
   /* querying capabilities */
-  GstURIType		(* get_type)		(GType type);
-  gchar **		(* get_protocols)	(GType type);
+  GstURIType             (* get_type)           (GType type);
+  const gchar * const *  (* get_protocols)      (GType type);
 
   /* using the interface */
-  const gchar *		(* get_uri)		(GstURIHandler * handler);
-  gboolean		(* set_uri)		(GstURIHandler * handler,
-						 const gchar *	 uri);
-
-  /*< private >*/
-  /* we might want to add functions here to query features,
-   * someone with gnome-vfs knowledge go ahead */
-
-  gpointer _gst_reserved[GST_PADDING];
+  gchar *                (* get_uri)            (GstURIHandler * handler);
+  gboolean               (* set_uri)            (GstURIHandler * handler,
+                                                 const gchar   * uri,
+                                                 GError       ** error);
 };
 
 /* general URI functions */
 
-gboolean	gst_uri_protocol_is_valid	(const gchar * protocol);
-gboolean	gst_uri_protocol_is_supported	(const GstURIType type,
-						 const gchar *protocol);
-gboolean	gst_uri_is_valid		(const gchar * uri);
-gchar *		gst_uri_get_protocol		(const gchar * uri);
+gboolean        gst_uri_protocol_is_valid       (const gchar * protocol);
+gboolean        gst_uri_protocol_is_supported   (const GstURIType type,
+                                                 const gchar *protocol);
+gboolean        gst_uri_is_valid                (const gchar * uri);
+gchar *         gst_uri_get_protocol            (const gchar * uri) G_GNUC_MALLOC;
 gboolean        gst_uri_has_protocol            (const gchar * uri,
                                                  const gchar * protocol);
-gchar *		gst_uri_get_location		(const gchar * uri);
-gchar *		gst_uri_construct		(const gchar * protocol,
-						 const gchar * location);
+gchar *         gst_uri_get_location            (const gchar * uri) G_GNUC_MALLOC;
+gchar *         gst_uri_construct               (const gchar * protocol,
+                                                 const gchar * location) G_GNUC_MALLOC;
 
 gchar *         gst_filename_to_uri             (const gchar * filename,
-                                                 GError     ** error);
+                                                 GError     ** error) G_GNUC_MALLOC;
 
-GstElement *	gst_element_make_from_uri	(const GstURIType type,
-						 const gchar *    uri,
-						 const gchar *    elementname);
+GstElement *    gst_element_make_from_uri       (const GstURIType type,
+                                                 const gchar *    uri,
+                                                 const gchar *    elementname) G_GNUC_MALLOC;
 
 /* accessing the interface */
-GType		gst_uri_handler_get_type	(void);
+GType                 gst_uri_handler_get_type (void);
 
-guint		gst_uri_handler_get_uri_type	(GstURIHandler * handler);
-gchar **	gst_uri_handler_get_protocols	(GstURIHandler * handler);
-const gchar *	gst_uri_handler_get_uri		(GstURIHandler * handler);
-gboolean	gst_uri_handler_set_uri		(GstURIHandler * handler,
-						 const gchar *	 uri);
-void		gst_uri_handler_new_uri		(GstURIHandler * handler,
-						 const gchar *	 uri);
+GstURIType            gst_uri_handler_get_uri_type  (GstURIHandler * handler);
+const gchar * const * gst_uri_handler_get_protocols (GstURIHandler * handler);
+gchar *               gst_uri_handler_get_uri       (GstURIHandler * handler) G_GNUC_MALLOC;
+gboolean              gst_uri_handler_set_uri       (GstURIHandler * handler,
+                                                     const gchar   * uri,
+                                                     GError       ** error);
 
 G_END_DECLS
 
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 07eac6b..7771862 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -704,7 +704,7 @@
 gst_util_seqnum_next (void)
 {
   static gint counter = 0;
-  return G_ATOMIC_INT_ADD (&counter, 1);
+  return g_atomic_int_add (&counter, 1);
 }
 
 /**
@@ -1083,7 +1083,7 @@
  */
 GstPad *
 gst_element_get_compatible_pad (GstElement * element, GstPad * pad,
-    const GstCaps * caps)
+    GstCaps * caps)
 {
   GstIterator *pads;
   GstPadTemplate *templ;
@@ -1140,7 +1140,7 @@
           gboolean compatible;
 
           /* Now check if the two pads' caps are compatible */
-          temp = gst_pad_get_caps (pad, NULL);
+          temp = gst_pad_query_caps (pad, NULL);
           if (caps) {
             intersection = gst_caps_intersect (temp, caps);
             gst_caps_unref (temp);
@@ -1148,7 +1148,7 @@
             intersection = temp;
           }
 
-          temp = gst_pad_get_caps (current, NULL);
+          temp = gst_pad_query_caps (current, NULL);
           compatible = gst_caps_can_intersect (temp, intersection);
           gst_caps_unref (temp);
           gst_caps_unref (intersection);
@@ -1198,7 +1198,7 @@
   /* try to create a new one */
   /* requesting is a little crazy, we need a template. Let's create one */
   /* FIXME: why not gst_pad_get_pad_template (pad); */
-  templcaps = gst_pad_get_caps (pad, NULL);
+  templcaps = gst_pad_query_caps (pad, NULL);
   templ = gst_pad_template_new ((gchar *) GST_PAD_NAME (pad),
       GST_PAD_DIRECTION (pad), GST_PAD_ALWAYS, templcaps);
   gst_caps_unref (templcaps);
@@ -2394,7 +2394,7 @@
 void
 gst_pad_use_fixed_caps (GstPad * pad)
 {
-  GST_OBJECT_FLAG_SET (pad, GST_PAD_FIXED_CAPS);
+  GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_FIXED_CAPS);
 }
 
 /**
@@ -2506,321 +2506,130 @@
   va_end (args);
 }
 
-static void
-gst_element_populate_std_props (GObjectClass * klass, const gchar * prop_name,
-    guint arg_id, GParamFlags flags)
+typedef struct
 {
-  GQuark prop_id = g_quark_from_string (prop_name);
-  GParamSpec *pspec;
-
-  static GQuark fd_id = 0;
-  static GQuark blocksize_id;
-  static GQuark bytesperread_id;
-  static GQuark dump_id;
-  static GQuark filesize_id;
-  static GQuark mmapsize_id;
-  static GQuark location_id;
-  static GQuark offset_id;
-  static GQuark silent_id;
-  static GQuark touch_id;
-
-  flags |= G_PARAM_STATIC_STRINGS;
-
-  if (!fd_id) {
-    fd_id = g_quark_from_static_string ("fd");
-    blocksize_id = g_quark_from_static_string ("blocksize");
-    bytesperread_id = g_quark_from_static_string ("bytesperread");
-    dump_id = g_quark_from_static_string ("dump");
-    filesize_id = g_quark_from_static_string ("filesize");
-    mmapsize_id = g_quark_from_static_string ("mmapsize");
-    location_id = g_quark_from_static_string ("location");
-    offset_id = g_quark_from_static_string ("offset");
-    silent_id = g_quark_from_static_string ("silent");
-    touch_id = g_quark_from_static_string ("touch");
-  }
-
-  if (prop_id == fd_id) {
-    pspec = g_param_spec_int ("fd", "File-descriptor",
-        "File-descriptor for the file being read", 0, G_MAXINT, 0, flags);
-  } else if (prop_id == blocksize_id) {
-    pspec = g_param_spec_ulong ("blocksize", "Block Size",
-        "Block size to read per buffer", 0, G_MAXULONG, 4096, flags);
-
-  } else if (prop_id == bytesperread_id) {
-    pspec = g_param_spec_int ("bytesperread", "Bytes per read",
-        "Number of bytes to read per buffer", G_MININT, G_MAXINT, 0, flags);
-
-  } else if (prop_id == dump_id) {
-    pspec = g_param_spec_boolean ("dump", "Dump",
-        "Dump bytes to stdout", FALSE, flags);
-
-  } else if (prop_id == filesize_id) {
-    pspec = g_param_spec_int64 ("filesize", "File Size",
-        "Size of the file being read", 0, G_MAXINT64, 0, flags);
-
-  } else if (prop_id == mmapsize_id) {
-    pspec = g_param_spec_ulong ("mmapsize", "mmap() Block Size",
-        "Size in bytes of mmap()d regions", 0, G_MAXULONG, 4 * 1048576, flags);
-
-  } else if (prop_id == location_id) {
-    pspec = g_param_spec_string ("location", "File Location",
-        "Location of the file to read", NULL, flags);
-
-  } else if (prop_id == offset_id) {
-    pspec = g_param_spec_int64 ("offset", "File Offset",
-        "Byte offset of current read pointer", 0, G_MAXINT64, 0, flags);
-
-  } else if (prop_id == silent_id) {
-    pspec = g_param_spec_boolean ("silent", "Silent", "Don't produce events",
-        FALSE, flags);
-
-  } else if (prop_id == touch_id) {
-    pspec = g_param_spec_boolean ("touch", "Touch read data",
-        "Touch data to force disk read before " "push ()", TRUE, flags);
-  } else {
-    g_warning ("Unknown - 'standard' property '%s' id %d from klass %s",
-        prop_name, arg_id, g_type_name (G_OBJECT_CLASS_TYPE (klass)));
-    pspec = NULL;
-  }
-
-  if (pspec) {
-    g_object_class_install_property (klass, arg_id, pspec);
-  }
-}
-
-/**
- * gst_element_class_install_std_props:
- * @klass: the #GstElementClass to add the properties to.
- * @first_name: the name of the first property.
- * in a NULL terminated
- * @...: the id and flags of the first property, followed by
- * further 'name', 'id', 'flags' triplets and terminated by NULL.
- *
- * Adds a list of standardized properties with types to the @klass.
- * the id is for the property switch in your get_prop method, and
- * the flags determine readability / writeability.
- **/
-void
-gst_element_class_install_std_props (GstElementClass * klass,
-    const gchar * first_name, ...)
-{
-  const char *name;
-
-  va_list args;
-
-  g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
-
-  va_start (args, first_name);
-
-  name = first_name;
-
-  while (name) {
-    int arg_id = va_arg (args, int);
-    GParamFlags flags = (GParamFlags) va_arg (args, int);
-
-    gst_element_populate_std_props ((GObjectClass *) klass, name, arg_id,
-        flags);
-
-    name = va_arg (args, char *);
-  }
-
-  va_end (args);
-}
-
-
-/**
- * gst_buffer_merge:
- * @buf1: (transfer none): the first source #GstBuffer to merge.
- * @buf2: (transfer none): the second source #GstBuffer to merge.
- *
- * Create a new buffer that is the concatenation of the two source
- * buffers.  The original source buffers will not be modified or
- * unref'd.  Make sure you unref the source buffers if they are not used
- * anymore afterwards.
- *
- * If the buffers point to contiguous areas of memory, the buffer
- * is created without copying the data.
- *
- * Free-function: gst_buffer_unref
- *
- * Returns: (transfer full): the new #GstBuffer which is the concatenation
- *     of the source buffers.
- */
-GstBuffer *
-gst_buffer_merge (GstBuffer * buf1, GstBuffer * buf2)
-{
-  GstBuffer *result;
-  gsize size1, size2;
-
-  size1 = gst_buffer_get_size (buf1);
-  size2 = gst_buffer_get_size (buf2);
-
-  /* we're just a specific case of the more general gst_buffer_span() */
-  result = gst_buffer_span (buf1, 0, buf2, size1 + size2);
-
-  return result;
-}
-
-/**
- * gst_buffer_join:
- * @buf1: the first source #GstBuffer.
- * @buf2: the second source #GstBuffer.
- *
- * Create a new buffer that is the concatenation of the two source
- * buffers, and unrefs the original source buffers.
- *
- * If the buffers point to contiguous areas of memory, the buffer
- * is created without copying the data.
- *
- * This is a convenience function for C programmers. See also
- * gst_buffer_merge(), which does the same thing without
- * unreffing the input parameters. Language bindings without
- * explicit reference counting should not wrap this function.
- *
- * Returns: (transfer full): the new #GstBuffer which is the concatenation of
- * the source buffers.
- */
-GstBuffer *
-gst_buffer_join (GstBuffer * buf1, GstBuffer * buf2)
-{
-  GstBuffer *result;
-  gsize size1, size2;
-
-  size1 = gst_buffer_get_size (buf1);
-  size2 = gst_buffer_get_size (buf2);
-
-  result = gst_buffer_span (buf1, 0, buf2, size1 + size2);
-  gst_buffer_unref (buf1);
-  gst_buffer_unref (buf2);
-
-  return result;
-}
+  GstQuery *query;
+  gboolean ret;
+} QueryAcceptCapsData;
 
 static gboolean
-getcaps_fold_func (const GValue * vpad, GValue * ret, GstCaps * filter)
+query_accept_caps_func (GstPad * pad, QueryAcceptCapsData * data)
 {
-  GstPad *pad = g_value_get_object (vpad);
-  gboolean empty = FALSE;
-  GstCaps *peercaps, *existing;
+  if (G_LIKELY (gst_pad_peer_query (pad, data->query))) {
+    gboolean result;
 
-  existing = g_value_get_pointer (ret);
-  peercaps = gst_pad_peer_get_caps (pad, filter);
-  if (G_LIKELY (peercaps)) {
-    GstCaps *intersection = gst_caps_intersect (existing, peercaps);
-
-    empty = gst_caps_is_empty (intersection);
-
-    g_value_set_pointer (ret, intersection);
-    gst_caps_unref (existing);
-    gst_caps_unref (peercaps);
+    gst_query_parse_accept_caps_result (data->query, &result);
+    data->ret &= result;
   }
-  return !empty;
+  return FALSE;
 }
 
 /**
- * gst_pad_proxy_getcaps:
+ * gst_pad_proxy_query_accept_caps:
  * @pad: a #GstPad to proxy.
- * @filter: a #GstCaps filter.
+ * @query: an ACCEPT_CAPS #GstQuery.
  *
- * Calls gst_pad_get_allowed_caps() for every other pad belonging to the
- * same element as @pad, and returns the intersection of the results.
+ * Calls gst_pad_accept_caps() for all internally linked pads of @pad and
+ * returns the intersection of the results.
  *
- * This function is useful as a default getcaps function for an element
+ * This function is useful as a default accept caps query function for an element
+ * that can handle any stream format, but requires caps that are acceptable for
+ * all oposite pads.
+ *
+ * Returns: TRUE if @query could be executed
+ */
+gboolean
+gst_pad_proxy_query_accept_caps (GstPad * pad, GstQuery * query)
+{
+  QueryAcceptCapsData data;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ACCEPT_CAPS, FALSE);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad,
+      "proxying accept caps query for %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+  data.query = query;
+  /* value to hold the return, by default it holds TRUE */
+  data.ret = TRUE;
+
+  gst_pad_forward (pad, (GstPadForwardFunction) query_accept_caps_func, &data);
+  gst_query_set_accept_caps_result (query, data.ret);
+
+  return TRUE;
+}
+
+typedef struct
+{
+  GstQuery *query;
+  GstCaps *ret;
+} QueryCapsData;
+
+static gboolean
+query_caps_func (GstPad * pad, QueryCapsData * data)
+{
+  gboolean empty = FALSE;
+
+  if (G_LIKELY (gst_pad_peer_query (pad, data->query))) {
+    GstCaps *peercaps, *intersection;
+
+    gst_query_parse_caps_result (data->query, &peercaps);
+    GST_DEBUG_OBJECT (pad, "intersect with result %" GST_PTR_FORMAT, peercaps);
+    intersection = gst_caps_intersect (data->ret, peercaps);
+    GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, intersection);
+
+    gst_caps_unref (data->ret);
+    data->ret = intersection;
+
+    /* stop when empty */
+    empty = gst_caps_is_empty (intersection);
+  }
+  return empty;
+}
+
+/**
+ * gst_pad_proxy_query_caps:
+ * @pad: a #GstPad to proxy.
+ * @query: a CAPS #GstQuery.
+ *
+ * Calls gst_pad_query_caps() for all internally linked pads fof @pad and returns
+ * the intersection of the results.
+ *
+ * This function is useful as a default caps query function for an element
  * that can handle any stream format, but requires all its pads to have
  * the same caps.  Two such elements are tee and adder.
  *
- * Free-function: gst_caps_unref
- *
- * Returns: (transfer full): the intersection of the other pads' allowed caps.
+ * Returns: TRUE if @query could be executed
  */
-GstCaps *
-gst_pad_proxy_getcaps (GstPad * pad, GstCaps * filter)
+gboolean
+gst_pad_proxy_query_caps (GstPad * pad, GstQuery * query)
 {
-  GstElement *element;
-  GstCaps *caps, *intersected;
-  GstIterator *iter;
-  GstIteratorResult res;
-  GValue ret = { 0, };
+  GstCaps *templ, *intersected;
+  QueryCapsData data;
 
-  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+  g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_CAPS, FALSE);
 
-  GST_CAT_DEBUG (GST_CAT_PADS, "proxying getcaps for %s:%s",
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "proxying caps query for %s:%s",
       GST_DEBUG_PAD_NAME (pad));
 
-  element = gst_pad_get_parent_element (pad);
-  if (element == NULL)
-    goto no_parent;
+  data.query = query;
+  /* value to hold the return, by default it holds ANY */
+  data.ret = gst_caps_new_any ();
 
-  /* value to hold the return, by default it holds ANY, the ref is taken by
-   * the GValue. */
-  g_value_init (&ret, G_TYPE_POINTER);
-  g_value_set_pointer (&ret, gst_caps_new_any ());
+  gst_pad_forward (pad, (GstPadForwardFunction) query_caps_func, &data);
 
-  /* only iterate the pads in the oposite direction */
-  if (GST_PAD_IS_SRC (pad))
-    iter = gst_element_iterate_sink_pads (element);
-  else
-    iter = gst_element_iterate_src_pads (element);
+  templ = gst_pad_get_pad_template_caps (pad);
+  intersected = gst_caps_intersect (data.ret, templ);
+  gst_caps_unref (data.ret);
+  gst_caps_unref (templ);
 
-  while (1) {
-    res =
-        gst_iterator_fold (iter, (GstIteratorFoldFunction) getcaps_fold_func,
-        &ret, filter);
-    switch (res) {
-      case GST_ITERATOR_RESYNC:
-        /* unref any value stored */
-        if ((caps = g_value_get_pointer (&ret)))
-          gst_caps_unref (caps);
-        /* need to reset the result again to ANY */
-        g_value_set_pointer (&ret, gst_caps_new_any ());
-        gst_iterator_resync (iter);
-        break;
-      case GST_ITERATOR_DONE:
-        /* all pads iterated, return collected value */
-        goto done;
-      case GST_ITERATOR_OK:
-        /* premature exit (happens if caps intersection is empty) */
-        goto done;
-      default:
-        /* iterator returned _ERROR, mark an error and exit */
-        if ((caps = g_value_get_pointer (&ret)))
-          gst_caps_unref (caps);
-        g_value_set_pointer (&ret, NULL);
-        goto error;
-    }
-  }
-done:
-  gst_iterator_free (iter);
+  gst_query_set_caps_result (query, intersected);
+  gst_caps_unref (intersected);
 
-  gst_object_unref (element);
-
-  caps = g_value_get_pointer (&ret);
-  g_value_unset (&ret);
-
-  if (caps) {
-    intersected =
-        gst_caps_intersect (caps, gst_pad_get_pad_template_caps (pad));
-    gst_caps_unref (caps);
-  } else {
-    intersected = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
-  }
-
-  return intersected;
-
-  /* ERRORS */
-no_parent:
-  {
-    GST_DEBUG_OBJECT (pad, "no parent");
-    return gst_caps_copy (gst_pad_get_pad_template_caps (pad));
-  }
-error:
-  {
-    g_warning ("Pad list returned error on element %s",
-        GST_ELEMENT_NAME (element));
-    gst_iterator_free (iter);
-    gst_object_unref (element);
-    return gst_caps_copy (gst_pad_get_pad_template_caps (pad));
-  }
+  return TRUE;
 }
 
 /**
@@ -2843,18 +2652,15 @@
   g_return_val_if_fail (format != GST_FORMAT_UNDEFINED, FALSE);
 
   query = gst_query_new_position (format);
-  ret = gst_pad_query (pad, query);
-
-  if (ret)
+  if ((ret = gst_pad_query (pad, query)))
     gst_query_parse_position (query, NULL, cur);
-
   gst_query_unref (query);
 
   return ret;
 }
 
 /**
- * gst_pad_query_peer_position:
+ * gst_pad_peer_query_position:
  * @pad: a #GstPad on whose peer to invoke the position query on.
  *       Must be a sink pad.
  * @format: the #GstFormat requested
@@ -2866,20 +2672,19 @@
  * Returns: TRUE if the query could be performed.
  */
 gboolean
-gst_pad_query_peer_position (GstPad * pad, GstFormat format, gint64 * cur)
+gst_pad_peer_query_position (GstPad * pad, GstFormat format, gint64 * cur)
 {
+  GstQuery *query;
   gboolean ret = FALSE;
-  GstPad *peer;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), FALSE);
   g_return_val_if_fail (format != GST_FORMAT_UNDEFINED, FALSE);
 
-  peer = gst_pad_get_peer (pad);
-  if (peer) {
-    ret = gst_pad_query_position (peer, format, cur);
-    gst_object_unref (peer);
-  }
+  query = gst_query_new_position (format);
+  if ((ret = gst_pad_peer_query (pad, query)))
+    gst_query_parse_position (query, NULL, cur);
+  gst_query_unref (query);
 
   return ret;
 }
@@ -2905,18 +2710,15 @@
   g_return_val_if_fail (format != GST_FORMAT_UNDEFINED, FALSE);
 
   query = gst_query_new_duration (format);
-  ret = gst_pad_query (pad, query);
-
-  if (ret)
+  if ((ret = gst_pad_query (pad, query)))
     gst_query_parse_duration (query, NULL, duration);
-
   gst_query_unref (query);
 
   return ret;
 }
 
 /**
- * gst_pad_query_peer_duration:
+ * gst_pad_peer_query_duration:
  * @pad: a #GstPad on whose peer pad to invoke the duration query on.
  *       Must be a sink pad.
  * @format: the #GstFormat requested
@@ -2928,20 +2730,19 @@
  * Returns: TRUE if the query could be performed.
  */
 gboolean
-gst_pad_query_peer_duration (GstPad * pad, GstFormat format, gint64 * duration)
+gst_pad_peer_query_duration (GstPad * pad, GstFormat format, gint64 * duration)
 {
+  GstQuery *query;
   gboolean ret = FALSE;
-  GstPad *peer;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), FALSE);
   g_return_val_if_fail (format != GST_FORMAT_UNDEFINED, FALSE);
 
-  peer = gst_pad_get_peer (pad);
-  if (peer) {
-    ret = gst_pad_query_duration (peer, format, duration);
-    gst_object_unref (peer);
-  }
+  query = gst_query_new_duration (format);
+  if ((ret = gst_pad_peer_query (pad, query)))
+    gst_query_parse_duration (query, NULL, duration);
+  gst_query_unref (query);
 
   return ret;
 }
@@ -2975,18 +2776,15 @@
   }
 
   query = gst_query_new_convert (src_format, src_val, dest_format);
-  ret = gst_pad_query (pad, query);
-
-  if (ret)
+  if ((ret = gst_pad_query (pad, query)))
     gst_query_parse_convert (query, NULL, NULL, NULL, dest_val);
-
   gst_query_unref (query);
 
   return ret;
 }
 
 /**
- * gst_pad_query_peer_convert:
+ * gst_pad_peer_query_convert:
  * @pad: a #GstPad, on whose peer pad to invoke the convert query on.
  *       Must be a sink pad.
  * @src_format: a #GstFormat to convert from.
@@ -3000,83 +2798,178 @@
  * Returns: TRUE if the query could be performed.
  */
 gboolean
-gst_pad_query_peer_convert (GstPad * pad, GstFormat src_format, gint64 src_val,
+gst_pad_peer_query_convert (GstPad * pad, GstFormat src_format, gint64 src_val,
     GstFormat dest_format, gint64 * dest_val)
 {
+  GstQuery *query;
   gboolean ret = FALSE;
-  GstPad *peer;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
   g_return_val_if_fail (GST_PAD_IS_SINK (pad), FALSE);
   g_return_val_if_fail (dest_format != GST_FORMAT_UNDEFINED, FALSE);
   g_return_val_if_fail (dest_val != NULL, FALSE);
 
-  peer = gst_pad_get_peer (pad);
-  if (peer) {
-    ret = gst_pad_query_convert (peer, src_format, src_val, dest_format,
-        dest_val);
-    gst_object_unref (peer);
-  }
+  query = gst_query_new_convert (src_format, src_val, dest_format);
+  if ((ret = gst_pad_peer_query (pad, query)))
+    gst_query_parse_convert (query, NULL, NULL, NULL, dest_val);
+  gst_query_unref (query);
 
   return ret;
 }
 
 /**
- * gst_element_found_tags_for_pad:
- * @element: element for which to post taglist to bus.
- * @pad: (transfer none): pad on which to push tag-event
- * @list: (transfer full): the taglist to post on the bus and create event from
+ * gst_pad_query_caps:
+ * @pad: a  #GstPad to get the capabilities of.
+ * @filter: (allow-none): suggested #GstCaps, or NULL
  *
- * Posts a message to the bus that new tags were found and pushes the
- * tags as event. Takes ownership of the @list.
+ * Gets the capabilities this pad can produce or consume.
+ * Note that this method doesn't necessarily return the caps set by
+ * gst_pad_set_caps() - use gst_pad_get_current_caps() for that instead.
+ * gst_pad_query_caps returns all possible caps a pad can operate with, using
+ * the pad's CAPS query function, If the query fails, this function will return
+ * @filter, if not #NULL, otherwise ANY.
  *
- * This is a utility method for elements. Applications should use the
- * #GstTagSetter interface.
+ * When called on sinkpads @filter contains the caps that
+ * upstream could produce in the order preferred by upstream. When
+ * called on srcpads @filter contains the caps accepted by
+ * downstream in the preffered order. @filter might be %NULL but
+ * if it is not %NULL the returned caps will be a subset of @filter.
+ *
+ * Note that this function does not return writable #GstCaps, use
+ * gst_caps_make_writable() before modifying the caps.
+ *
+ * Returns: (transfer full): the caps of the pad with incremented ref-count.
  */
-void
-gst_element_found_tags_for_pad (GstElement * element,
-    GstPad * pad, GstTagList * list)
+GstCaps *
+gst_pad_query_caps (GstPad * pad, GstCaps * filter)
 {
-  g_return_if_fail (element != NULL);
-  g_return_if_fail (pad != NULL);
-  g_return_if_fail (list != NULL);
+  GstCaps *result = NULL;
+  GstQuery *query;
 
-  gst_pad_push_event (pad, gst_event_new_tag (gst_tag_list_copy (list)));
-}
+  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+  g_return_val_if_fail (filter == NULL || GST_IS_CAPS (filter), NULL);
 
-static void
-push_and_ref (const GValue * vpad, GstEvent * event)
-{
-  GstPad *pad = g_value_get_object (vpad);
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+      "get pad caps with filter %" GST_PTR_FORMAT, filter);
 
-  gst_pad_push_event (pad, gst_event_ref (event));
+  query = gst_query_new_caps (filter);
+  if (gst_pad_query (pad, query)) {
+    gst_query_parse_caps_result (query, &result);
+    gst_caps_ref (result);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "query returned %" GST_PTR_FORMAT, result);
+  } else if (filter) {
+    result = gst_caps_ref (filter);
+  } else {
+    result = gst_caps_new_any ();
+  }
+  gst_query_unref (query);
+
+  return result;
 }
 
 /**
- * gst_element_found_tags:
- * @element: element for which we found the tags.
- * @list: (transfer full): list of tags.
+ * gst_pad_peer_query_caps:
+ * @pad: a  #GstPad to get the capabilities of.
+ * @filter: (allow-none): a #GstCaps filter, or NULL.
  *
- * Posts a message to the bus that new tags were found, and pushes an event
- * to all sourcepads. Takes ownership of the @list.
+ * Gets the capabilities of the peer connected to this pad. Similar to
+ * gst_pad_query_caps().
  *
- * This is a utility method for elements. Applications should use the
- * #GstTagSetter interface.
+ * When called on srcpads @filter contains the caps that
+ * upstream could produce in the order preferred by upstream. When
+ * called on sinkpads @filter contains the caps accepted by
+ * downstream in the preffered order. @filter might be %NULL but
+ * if it is not %NULL the returned caps will be a subset of @filter.
+ *
+ * Returns: the caps of the peer pad with incremented ref-count. This function
+ * returns %NULL when there is no peer pad.
  */
-void
-gst_element_found_tags (GstElement * element, GstTagList * list)
+GstCaps *
+gst_pad_peer_query_caps (GstPad * pad, GstCaps * filter)
 {
-  GstIterator *iter;
-  GstEvent *event;
+  GstCaps *result = NULL;
+  GstQuery *query;
 
-  g_return_if_fail (element != NULL);
-  g_return_if_fail (list != NULL);
+  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+  g_return_val_if_fail (filter == NULL || GST_IS_CAPS (filter), NULL);
 
-  iter = gst_element_iterate_src_pads (element);
-  event = gst_event_new_tag (gst_tag_list_copy (list));
-  gst_iterator_foreach (iter, (GstIteratorForeachFunction) push_and_ref, event);
-  gst_iterator_free (iter);
-  gst_event_unref (event);
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+      "get pad peer caps with filter %" GST_PTR_FORMAT, filter);
+
+  query = gst_query_new_caps (filter);
+  if (gst_pad_peer_query (pad, query)) {
+    gst_query_parse_caps_result (query, &result);
+    gst_caps_ref (result);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
+        "peer query returned %" GST_PTR_FORMAT, result);
+  } else if (filter) {
+    result = gst_caps_ref (filter);
+  } else {
+    result = gst_caps_new_any ();
+  }
+  gst_query_unref (query);
+
+  return result;
+}
+
+/**
+ * gst_pad_query_accept_caps:
+ * @pad: a #GstPad to check
+ * @caps: a #GstCaps to check on the pad
+ *
+ * Check if the given pad accepts the caps.
+ *
+ * Returns: TRUE if the pad can accept the caps.
+ */
+gboolean
+gst_pad_query_accept_caps (GstPad * pad, GstCaps * caps)
+{
+  gboolean res = TRUE;
+  GstQuery *query;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %p", caps);
+
+  query = gst_query_new_accept_caps (caps);
+  if (gst_pad_query (pad, query)) {
+    gst_query_parse_accept_caps_result (query, &res);
+    GST_DEBUG_OBJECT (pad, "query returned %d", res);
+  }
+  gst_query_unref (query);
+
+  return res;
+}
+
+/**
+ * gst_pad_peer_query_accept_caps:
+ * @pad: a  #GstPad to check the peer of
+ * @caps: a #GstCaps to check on the pad
+ *
+ * Check if the peer of @pad accepts @caps. If @pad has no peer, this function
+ * returns TRUE.
+ *
+ * Returns: TRUE if the peer of @pad can accept the caps or @pad has no peer.
+ */
+gboolean
+gst_pad_peer_query_accept_caps (GstPad * pad, GstCaps * caps)
+{
+  gboolean res = TRUE;
+  GstQuery *query;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
+
+  query = gst_query_new_accept_caps (caps);
+  if (gst_pad_peer_query (pad, query)) {
+    gst_query_parse_accept_caps_result (query, &res);
+    GST_DEBUG_OBJECT (pad, "query returned %d", res);
+  }
+  gst_query_unref (query);
+
+  return res;
 }
 
 static GstPad *
@@ -3211,7 +3104,7 @@
  * and want them all ghosted, you will have to create the ghost pads
  * yourself).
  *
- * Returns: (transfer full): a newly-created bin, or NULL if an error occurred.
+ * Returns: (transfer floating): a newly-created bin, or NULL if an error occurred.
  *
  * Since: 0.10.3
  */
@@ -3300,76 +3193,6 @@
 }
 
 /**
- * gst_type_register_static_full:
- * @parent_type: The GType of the parent type the newly registered type will
- *   derive from
- * @type_name: NULL-terminated string used as the name of the new type
- * @class_size: Size of the class structure.
- * @base_init: Location of the base initialization function (optional).
- * @base_finalize: Location of the base finalization function (optional).
- * @class_init: Location of the class initialization function for class types
- *   Location of the default vtable initialization function for interface
- *   types. (optional)
- * @class_finalize: Location of the class finalization function for class types.
- *   Location of the default vtable finalization function for interface types.
- *   (optional)
- * @class_data: User-supplied data passed to the class init/finalize functions.
- * @instance_size: Size of the instance (object) structure (required for
- *   instantiatable types only).
- * @n_preallocs: The number of pre-allocated (cached) instances to reserve
- *   memory for (0 indicates no caching). Ignored on recent GLib's.
- * @instance_init: Location of the instance initialization function (optional,
- *   for instantiatable types only).
- * @value_table: A GTypeValueTable function table for generic handling of
- *   GValues of this type (usually only useful for fundamental types).
- * @flags: #GTypeFlags for this GType. E.g: G_TYPE_FLAG_ABSTRACT
- *
- * Helper function which constructs a #GTypeInfo structure and registers a
- * GType, but which generates less linker overhead than a static const
- * #GTypeInfo structure. For further details of the parameters, please see
- * #GTypeInfo in the GLib documentation.
- *
- * Registers type_name as the name of a new static type derived from
- * parent_type. The value of flags determines the nature (e.g. abstract or
- * not) of the type. It works by filling a GTypeInfo struct and calling
- * g_type_register_static().
- *
- * Returns: A #GType for the newly-registered type.
- *
- * Since: 0.10.14
- */
-GType
-gst_type_register_static_full (GType parent_type,
-    const gchar * type_name,
-    guint class_size,
-    GBaseInitFunc base_init,
-    GBaseFinalizeFunc base_finalize,
-    GClassInitFunc class_init,
-    GClassFinalizeFunc class_finalize,
-    gconstpointer class_data,
-    guint instance_size,
-    guint16 n_preallocs,
-    GInstanceInitFunc instance_init,
-    const GTypeValueTable * value_table, GTypeFlags flags)
-{
-  GTypeInfo info;
-
-  info.class_size = class_size;
-  info.base_init = base_init;
-  info.base_finalize = base_finalize;
-  info.class_init = class_init;
-  info.class_finalize = class_finalize;
-  info.class_data = class_data;
-  info.instance_size = instance_size;
-  info.n_preallocs = n_preallocs;
-  info.instance_init = instance_init;
-  info.value_table = value_table;
-
-  return g_type_register_static (parent_type, type_name, &info, flags);
-}
-
-
-/**
  * gst_util_get_timestamp:
  *
  * Get a timestamp as GstClockTime to be used for interval measurements.
@@ -3513,6 +3336,32 @@
 }
 
 /**
+ * gst_util_greatest_common_divisor_int64:
+ * @a: First value as #gint64
+ * @b: Second value as #gint64
+ *
+ * Calculates the greatest common divisor of @a
+ * and @b.
+ *
+ * Returns: Greatest common divisor of @a and @b
+ *
+ * Since: 0.11.0
+ */
+gint64
+gst_util_greatest_common_divisor_int64 (gint64 a, gint64 b)
+{
+  while (b != 0) {
+    gint64 temp = a;
+
+    a = b;
+    b = temp % b;
+  }
+
+  return ABS (a);
+}
+
+
+/**
  * gst_util_fraction_to_double:
  * @src_n: Fraction numerator as #gint
  * @src_d: Fraction denominator #gint
diff --git a/gst/gstutils.h b/gst/gstutils.h
index 8f1445a..e562457 100644
--- a/gst/gstutils.h
+++ b/gst/gstutils.h
@@ -31,9 +31,9 @@
 
 G_BEGIN_DECLS
 
-void		gst_util_set_value_from_string	(GValue *value, const gchar *value_str);
-void		gst_util_set_object_arg		(GObject *object, const gchar *name, const gchar *value);
-void		gst_util_dump_mem		(const guchar *mem, guint size);
+void            gst_util_set_value_from_string  (GValue *value, const gchar *value_str);
+void            gst_util_set_object_arg         (GObject *object, const gchar *name, const gchar *value);
+void            gst_util_dump_mem               (const guchar *mem, guint size);
 
 guint64         gst_util_gdouble_to_guint64     (gdouble value)  G_GNUC_CONST;
 gdouble         gst_util_guint64_to_gdouble     (guint64 value)  G_GNUC_CONST;
@@ -63,9 +63,9 @@
 #define         gst_guint64_to_gdouble(value)   ((gdouble) (value))
 #endif
 
-guint64		gst_util_uint64_scale		(guint64 val, guint64 num, guint64 denom);
-guint64		gst_util_uint64_scale_round	(guint64 val, guint64 num, guint64 denom);
-guint64		gst_util_uint64_scale_ceil	(guint64 val, guint64 num, guint64 denom);
+guint64         gst_util_uint64_scale           (guint64 val, guint64 num, guint64 denom);
+guint64         gst_util_uint64_scale_round     (guint64 val, guint64 num, guint64 denom);
+guint64         gst_util_uint64_scale_ceil      (guint64 val, guint64 num, guint64 denom);
 
 guint64         gst_util_uint64_scale_int       (guint64 val, gint num, gint denom);
 guint64         gst_util_uint64_scale_int_round (guint64 val, gint num, gint denom);
@@ -74,24 +74,10 @@
 guint32         gst_util_seqnum_next            (void);
 gint32          gst_util_seqnum_compare         (guint32 s1, guint32 s2);
 
-void		gst_print_pad_caps		(GString *buf, gint indent, GstPad *pad);
-void		gst_print_element_args		(GString *buf, gint indent, GstElement *element);
+void            gst_print_pad_caps              (GString *buf, gint indent, GstPad *pad);
+void            gst_print_element_args          (GString *buf, gint indent, GstElement *element);
 
 
-GType gst_type_register_static_full (GType parent_type,
-			                   const gchar       *type_name,
-                               guint              class_size,
-                               GBaseInitFunc      base_init,
-                               GBaseFinalizeFunc  base_finalize,
-                               GClassInitFunc     class_init,
-                               GClassFinalizeFunc class_finalize,
-                               gconstpointer      class_data,
-                               guint              instance_size,
-                               guint16            n_preallocs,
-                               GInstanceInitFunc  instance_init,
-                               const GTypeValueTable *value_table,
-                               GTypeFlags	 flags);
-
 /**
  * GST_CALL_PARENT:
  * @parent_class_cast: the name of the class cast macro for the parent type
@@ -103,9 +89,9 @@
  * this macro is not to be used with things that return something, use
  * the _WITH_DEFAULT version for that
  */
-#define GST_CALL_PARENT(parent_class_cast, name, args)			\
-	((parent_class_cast(parent_class)->name != NULL) ?		\
-	 parent_class_cast(parent_class)->name args : (void) 0)
+#define GST_CALL_PARENT(parent_class_cast, name, args)                  \
+        ((parent_class_cast(parent_class)->name != NULL) ?              \
+         parent_class_cast(parent_class)->name args : (void) 0)
 
 /**
  * GST_CALL_PARENT_WITH_DEFAULT:
@@ -118,8 +104,8 @@
  * evaluates to @def_return.
  */
 #define GST_CALL_PARENT_WITH_DEFAULT(parent_class_cast, name, args, def_return)\
-	((parent_class_cast(parent_class)->name != NULL) ?		\
-	 parent_class_cast(parent_class)->name args : def_return)
+        ((parent_class_cast(parent_class)->name != NULL) ?              \
+         parent_class_cast(parent_class)->name args : def_return)
 
 /* Define PUT and GET functions for unaligned memory */
 #define _GST_GET(__data, __idx, __size, __shift) \
@@ -134,14 +120,14 @@
  *
  * Read a 64 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT64_BE(data)	(_GST_GET (data, 0, 64, 56) | \
-					 _GST_GET (data, 1, 64, 48) | \
-					 _GST_GET (data, 2, 64, 40) | \
-					 _GST_GET (data, 3, 64, 32) | \
-					 _GST_GET (data, 4, 64, 24) | \
-					 _GST_GET (data, 5, 64, 16) | \
-					 _GST_GET (data, 6, 64,  8) | \
-					 _GST_GET (data, 7, 64,  0))
+#define GST_READ_UINT64_BE(data)        (_GST_GET (data, 0, 64, 56) | \
+                                         _GST_GET (data, 1, 64, 48) | \
+                                         _GST_GET (data, 2, 64, 40) | \
+                                         _GST_GET (data, 3, 64, 32) | \
+                                         _GST_GET (data, 4, 64, 24) | \
+                                         _GST_GET (data, 5, 64, 16) | \
+                                         _GST_GET (data, 6, 64,  8) | \
+                                         _GST_GET (data, 7, 64,  0))
 
 /**
  * GST_READ_UINT64_LE:
@@ -149,14 +135,14 @@
  *
  * Read a 64 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT64_LE(data)	(_GST_GET (data, 7, 64, 56) | \
-					 _GST_GET (data, 6, 64, 48) | \
-					 _GST_GET (data, 5, 64, 40) | \
-					 _GST_GET (data, 4, 64, 32) | \
-					 _GST_GET (data, 3, 64, 24) | \
-					 _GST_GET (data, 2, 64, 16) | \
-					 _GST_GET (data, 1, 64,  8) | \
-					 _GST_GET (data, 0, 64,  0))
+#define GST_READ_UINT64_LE(data)        (_GST_GET (data, 7, 64, 56) | \
+                                         _GST_GET (data, 6, 64, 48) | \
+                                         _GST_GET (data, 5, 64, 40) | \
+                                         _GST_GET (data, 4, 64, 32) | \
+                                         _GST_GET (data, 3, 64, 24) | \
+                                         _GST_GET (data, 2, 64, 16) | \
+                                         _GST_GET (data, 1, 64,  8) | \
+                                         _GST_GET (data, 0, 64,  0))
 
 /**
  * GST_READ_UINT32_BE:
@@ -164,10 +150,10 @@
  *
  * Read a 32 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT32_BE(data)	(_GST_GET (data, 0, 32, 24) | \
-					 _GST_GET (data, 1, 32, 16) | \
-					 _GST_GET (data, 2, 32,  8) | \
-					 _GST_GET (data, 3, 32,  0))
+#define GST_READ_UINT32_BE(data)        (_GST_GET (data, 0, 32, 24) | \
+                                         _GST_GET (data, 1, 32, 16) | \
+                                         _GST_GET (data, 2, 32,  8) | \
+                                         _GST_GET (data, 3, 32,  0))
 
 /**
  * GST_READ_UINT32_LE:
@@ -175,10 +161,10 @@
  *
  * Read a 32 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT32_LE(data)	(_GST_GET (data, 3, 32, 24) | \
-					 _GST_GET (data, 2, 32, 16) | \
-					 _GST_GET (data, 1, 32,  8) | \
-					 _GST_GET (data, 0, 32,  0))
+#define GST_READ_UINT32_LE(data)        (_GST_GET (data, 3, 32, 24) | \
+                                         _GST_GET (data, 2, 32, 16) | \
+                                         _GST_GET (data, 1, 32,  8) | \
+                                         _GST_GET (data, 0, 32,  0))
 
 /**
  * GST_READ_UINT24_BE:
@@ -188,9 +174,9 @@
  *
  * Since: 0.10.22
  */
-#define GST_READ_UINT24_BE(data)	(_GST_GET (data, 0, 32, 16) | \
-					 _GST_GET (data, 1, 32,  8) | \
-					 _GST_GET (data, 2, 32,  0))
+#define GST_READ_UINT24_BE(data)        (_GST_GET (data, 0, 32, 16) | \
+                                         _GST_GET (data, 1, 32,  8) | \
+                                         _GST_GET (data, 2, 32,  0))
 
 /**
  * GST_READ_UINT24_LE:
@@ -200,9 +186,9 @@
  *
  * Since: 0.10.22
  */
-#define GST_READ_UINT24_LE(data)	(_GST_GET (data, 2, 32, 16) | \
-					 _GST_GET (data, 1, 32,  8) | \
-					 _GST_GET (data, 0, 32,  0))
+#define GST_READ_UINT24_LE(data)        (_GST_GET (data, 2, 32, 16) | \
+                                         _GST_GET (data, 1, 32,  8) | \
+                                         _GST_GET (data, 0, 32,  0))
 
 /**
  * GST_READ_UINT16_BE:
@@ -210,8 +196,8 @@
  *
  * Read a 16 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT16_BE(data)	(_GST_GET (data, 0, 16,  8) | \
-					 _GST_GET (data, 1, 16,  0))
+#define GST_READ_UINT16_BE(data)        (_GST_GET (data, 0, 16,  8) | \
+                                         _GST_GET (data, 1, 16,  0))
 
 /**
  * GST_READ_UINT16_LE:
@@ -219,8 +205,8 @@
  *
  * Read a 16 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT16_LE(data)	(_GST_GET (data, 1, 16,  8) | \
-					 _GST_GET (data, 0, 16,  0))
+#define GST_READ_UINT16_LE(data)        (_GST_GET (data, 1, 16,  8) | \
+                                         _GST_GET (data, 0, 16,  0))
 
 /**
  * GST_READ_UINT8:
@@ -228,7 +214,7 @@
  *
  * Read an 8 bit unsigned integer value from the memory buffer.
  */
-#define GST_READ_UINT8(data)		(_GST_GET (data, 0,  8,  0))
+#define GST_READ_UINT8(data)            (_GST_GET (data, 0,  8,  0))
 
 /**
  * GST_WRITE_UINT64_BE:
@@ -237,16 +223,16 @@
  *
  * Store a 64 bit unsigned integer value in big endian format into the memory buffer.
  */
-#define GST_WRITE_UINT64_BE(data, num)	do { \
-					  _GST_PUT (data, 0, 64, 56, num); \
-					  _GST_PUT (data, 1, 64, 48, num); \
-					  _GST_PUT (data, 2, 64, 40, num); \
-					  _GST_PUT (data, 3, 64, 32, num); \
-					  _GST_PUT (data, 4, 64, 24, num); \
-					  _GST_PUT (data, 5, 64, 16, num); \
-					  _GST_PUT (data, 6, 64,  8, num); \
-					  _GST_PUT (data, 7, 64,  0, num); \
-					} while (0)
+#define GST_WRITE_UINT64_BE(data, num)  do { \
+                                          _GST_PUT (data, 0, 64, 56, num); \
+                                          _GST_PUT (data, 1, 64, 48, num); \
+                                          _GST_PUT (data, 2, 64, 40, num); \
+                                          _GST_PUT (data, 3, 64, 32, num); \
+                                          _GST_PUT (data, 4, 64, 24, num); \
+                                          _GST_PUT (data, 5, 64, 16, num); \
+                                          _GST_PUT (data, 6, 64,  8, num); \
+                                          _GST_PUT (data, 7, 64,  0, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT64_LE:
@@ -255,16 +241,16 @@
  *
  * Store a 64 bit unsigned integer value in little endian format into the memory buffer.
  */
-#define GST_WRITE_UINT64_LE(data, num)	do { \
-					  _GST_PUT (data, 0, 64,  0, num); \
-					  _GST_PUT (data, 1, 64,  8, num); \
-					  _GST_PUT (data, 2, 64, 16, num); \
-					  _GST_PUT (data, 3, 64, 24, num); \
-					  _GST_PUT (data, 4, 64, 32, num); \
-					  _GST_PUT (data, 5, 64, 40, num); \
-					  _GST_PUT (data, 6, 64, 48, num); \
-					  _GST_PUT (data, 7, 64, 56, num); \
-					} while (0)
+#define GST_WRITE_UINT64_LE(data, num)  do { \
+                                          _GST_PUT (data, 0, 64,  0, num); \
+                                          _GST_PUT (data, 1, 64,  8, num); \
+                                          _GST_PUT (data, 2, 64, 16, num); \
+                                          _GST_PUT (data, 3, 64, 24, num); \
+                                          _GST_PUT (data, 4, 64, 32, num); \
+                                          _GST_PUT (data, 5, 64, 40, num); \
+                                          _GST_PUT (data, 6, 64, 48, num); \
+                                          _GST_PUT (data, 7, 64, 56, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT32_BE:
@@ -273,12 +259,12 @@
  *
  * Store a 32 bit unsigned integer value in big endian format into the memory buffer.
  */
-#define GST_WRITE_UINT32_BE(data, num)	do { \
-					  _GST_PUT (data, 0, 32, 24, num); \
-					  _GST_PUT (data, 1, 32, 16, num); \
-					  _GST_PUT (data, 2, 32,  8, num); \
-					  _GST_PUT (data, 3, 32,  0, num); \
-					} while (0)
+#define GST_WRITE_UINT32_BE(data, num)  do { \
+                                          _GST_PUT (data, 0, 32, 24, num); \
+                                          _GST_PUT (data, 1, 32, 16, num); \
+                                          _GST_PUT (data, 2, 32,  8, num); \
+                                          _GST_PUT (data, 3, 32,  0, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT32_LE:
@@ -287,12 +273,12 @@
  *
  * Store a 32 bit unsigned integer value in little endian format into the memory buffer.
  */
-#define GST_WRITE_UINT32_LE(data, num)	do { \
-					  _GST_PUT (data, 0, 32,  0, num); \
-					  _GST_PUT (data, 1, 32,  8, num); \
-					  _GST_PUT (data, 2, 32, 16, num); \
-					  _GST_PUT (data, 3, 32, 24, num); \
-					} while (0)
+#define GST_WRITE_UINT32_LE(data, num)  do { \
+                                          _GST_PUT (data, 0, 32,  0, num); \
+                                          _GST_PUT (data, 1, 32,  8, num); \
+                                          _GST_PUT (data, 2, 32, 16, num); \
+                                          _GST_PUT (data, 3, 32, 24, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT24_BE:
@@ -303,11 +289,11 @@
  *
  * Since: 0.10.22
  */
-#define GST_WRITE_UINT24_BE(data, num)	do { \
-					  _GST_PUT (data, 0, 32,  16, num); \
-					  _GST_PUT (data, 1, 32,  8, num); \
-					  _GST_PUT (data, 2, 32,  0, num); \
-					} while (0)
+#define GST_WRITE_UINT24_BE(data, num)  do { \
+                                          _GST_PUT (data, 0, 32,  16, num); \
+                                          _GST_PUT (data, 1, 32,  8, num); \
+                                          _GST_PUT (data, 2, 32,  0, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT24_LE:
@@ -318,11 +304,11 @@
  *
  * Since: 0.10.22
  */
-#define GST_WRITE_UINT24_LE(data, num)	do { \
-					  _GST_PUT (data, 0, 32,  0, num); \
-					  _GST_PUT (data, 1, 32,  8, num); \
-					  _GST_PUT (data, 2, 32,  16, num); \
-					} while (0)
+#define GST_WRITE_UINT24_LE(data, num)  do { \
+                                          _GST_PUT (data, 0, 32,  0, num); \
+                                          _GST_PUT (data, 1, 32,  8, num); \
+                                          _GST_PUT (data, 2, 32,  16, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT16_BE:
@@ -331,10 +317,10 @@
  *
  * Store a 16 bit unsigned integer value in big endian format into the memory buffer.
  */
-#define GST_WRITE_UINT16_BE(data, num)	do { \
-					  _GST_PUT (data, 0, 16,  8, num); \
-					  _GST_PUT (data, 1, 16,  0, num); \
-					} while (0)
+#define GST_WRITE_UINT16_BE(data, num)  do { \
+                                          _GST_PUT (data, 0, 16,  8, num); \
+                                          _GST_PUT (data, 1, 16,  0, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT16_LE:
@@ -343,10 +329,10 @@
  *
  * Store a 16 bit unsigned integer value in little endian format into the memory buffer.
  */
-#define GST_WRITE_UINT16_LE(data, num)	do { \
-					  _GST_PUT (data, 0, 16,  0, num); \
-					  _GST_PUT (data, 1, 16,  8, num); \
-					} while (0)
+#define GST_WRITE_UINT16_LE(data, num)  do { \
+                                          _GST_PUT (data, 0, 16,  0, num); \
+                                          _GST_PUT (data, 1, 16,  8, num); \
+                                        } while (0)
 
 /**
  * GST_WRITE_UINT8:
@@ -355,9 +341,9 @@
  *
  * Store an 8 bit unsigned integer value into the memory buffer.
  */
-#define GST_WRITE_UINT8(data, num)	do { \
-					  _GST_PUT (data, 0,  8,  0, num); \
-					} while (0)
+#define GST_WRITE_UINT8(data, num)      do { \
+                                          _GST_PUT (data, 0,  8,  0, num); \
+                                        } while (0)
 
 /* Float endianness conversion macros */
 
@@ -846,39 +832,39 @@
  */
 #define GST_ROUND_DOWN_64(num) ((num)&(~63))
 
-void			gst_object_default_error	(GstObject    * source,
-							 const GError * error,
-							 const gchar  * debug);
+void                    gst_object_default_error        (GstObject    * source,
+                                                         const GError * error,
+                                                         const gchar  * debug);
 
 /* element functions */
 void                    gst_element_create_all_pads     (GstElement *element);
 GstPad*                 gst_element_get_compatible_pad  (GstElement *element, GstPad *pad,
-		                                         const GstCaps *caps);
+                                                         GstCaps *caps);
 
 GstPadTemplate*         gst_element_get_compatible_pad_template (GstElement *element, GstPadTemplate *compattempl);
 
 const gchar*            gst_element_state_get_name      (GstState state);
 const gchar *           gst_element_state_change_return_get_name (GstStateChangeReturn state_ret);
 
-gboolean		gst_element_link                (GstElement *src, GstElement *dest);
-gboolean		gst_element_link_many           (GstElement *element_1,
-		                                         GstElement *element_2, ...) G_GNUC_NULL_TERMINATED;
-gboolean		gst_element_link_filtered	(GstElement * src,
+gboolean                gst_element_link                (GstElement *src, GstElement *dest);
+gboolean                gst_element_link_many           (GstElement *element_1,
+                                                         GstElement *element_2, ...) G_GNUC_NULL_TERMINATED;
+gboolean                gst_element_link_filtered       (GstElement * src,
                                                          GstElement * dest,
                                                          GstCaps *filter);
 void                    gst_element_unlink              (GstElement *src, GstElement *dest);
 void                    gst_element_unlink_many         (GstElement *element_1,
-		                                         GstElement *element_2, ...) G_GNUC_NULL_TERMINATED;
+                                                         GstElement *element_2, ...) G_GNUC_NULL_TERMINATED;
 
-gboolean		gst_element_link_pads           (GstElement *src, const gchar *srcpadname,
-		                                         GstElement *dest, const gchar *destpadname);
-gboolean		gst_element_link_pads_full      (GstElement *src, const gchar *srcpadname,
-		                                         GstElement *dest, const gchar *destpadname,
-							 GstPadLinkCheck flags);
+gboolean                gst_element_link_pads           (GstElement *src, const gchar *srcpadname,
+                                                         GstElement *dest, const gchar *destpadname);
+gboolean                gst_element_link_pads_full      (GstElement *src, const gchar *srcpadname,
+                                                         GstElement *dest, const gchar *destpadname,
+                                                         GstPadLinkCheck flags);
 void                    gst_element_unlink_pads         (GstElement *src, const gchar *srcpadname,
-		                                         GstElement *dest, const gchar *destpadname);
+                                                         GstElement *dest, const gchar *destpadname);
 
-gboolean		gst_element_link_pads_filtered	(GstElement * src, const gchar * srcpadname,
+gboolean                gst_element_link_pads_filtered  (GstElement * src, const gchar * srcpadname,
                                                          GstElement * dest, const gchar * destpadname,
                                                          GstCaps *filter);
 
@@ -897,45 +883,36 @@
 gboolean                gst_element_query_position      (GstElement *element, GstFormat format, gint64 *cur);
 gboolean                gst_element_query_duration      (GstElement *element, GstFormat format, gint64 *duration);
 gboolean                gst_element_query_convert       (GstElement *element, GstFormat src_format, gint64 src_val,
-		                                         GstFormat dest_format, gint64 *dest_val);
-
-/* element class functions */
-void			gst_element_class_install_std_props (GstElementClass * klass,
-							 const gchar * first_name, ...) G_GNUC_NULL_TERMINATED;
+                                                         GstFormat dest_format, gint64 *dest_val);
 
 /* pad functions */
-void			gst_pad_use_fixed_caps		(GstPad *pad);
-GstCaps*		gst_pad_proxy_getcaps		(GstPad * pad, GstCaps * filter);
-
-GstElement*		gst_pad_get_parent_element	(GstPad *pad);
+void                    gst_pad_use_fixed_caps          (GstPad *pad);
+GstElement*             gst_pad_get_parent_element      (GstPad *pad);
 
 /* util query functions */
+gboolean                gst_pad_proxy_query_accept_caps (GstPad *pad, GstQuery *query);
+gboolean                gst_pad_proxy_query_caps        (GstPad *pad, GstQuery *query);
+
 gboolean                gst_pad_query_position          (GstPad *pad, GstFormat format, gint64 *cur);
 gboolean                gst_pad_query_duration          (GstPad *pad, GstFormat format, gint64 *duration);
 gboolean                gst_pad_query_convert           (GstPad *pad, GstFormat src_format, gint64 src_val,
-		                                         GstFormat dest_format, gint64 *dest_val);
+                                                         GstFormat dest_format, gint64 *dest_val);
+GstCaps *               gst_pad_query_caps              (GstPad *pad, GstCaps *filter);
+gboolean                gst_pad_query_accept_caps       (GstPad *pad, GstCaps *caps);
 
-gboolean                gst_pad_query_peer_position     (GstPad *pad, GstFormat format, gint64 *cur);
-gboolean                gst_pad_query_peer_duration     (GstPad *pad, GstFormat format, gint64 *duration);
-gboolean                gst_pad_query_peer_convert      (GstPad *pad, GstFormat src_format, gint64 src_val,
-		                                         GstFormat dest_format, gint64 *dest_val);
+
+gboolean                gst_pad_peer_query_position     (GstPad *pad, GstFormat format, gint64 *cur);
+gboolean                gst_pad_peer_query_duration     (GstPad *pad, GstFormat format, gint64 *duration);
+gboolean                gst_pad_peer_query_convert      (GstPad *pad, GstFormat src_format, gint64 src_val,
+                                                         GstFormat dest_format, gint64 *dest_val);
+GstCaps *               gst_pad_peer_query_caps         (GstPad * pad, GstCaps *filter);
+gboolean                gst_pad_peer_query_accept_caps  (GstPad * pad, GstCaps *caps);
 
 /* bin functions */
 void                    gst_bin_add_many                (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED;
 void                    gst_bin_remove_many             (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED;
 GstPad *                gst_bin_find_unlinked_pad       (GstBin *bin, GstPadDirection direction);
 
-/* buffer functions */
-GstBuffer *		gst_buffer_merge		(GstBuffer * buf1, GstBuffer * buf2);
-GstBuffer *		gst_buffer_join			(GstBuffer * buf1, GstBuffer * buf2);
-
-/* tag emission utility functions */
-void			gst_element_found_tags_for_pad	(GstElement * element,
-							 GstPad * pad,
-							 GstTagList * list);
-void			gst_element_found_tags		(GstElement * element,
-							 GstTagList * list);
-
 /* parse utility functions */
 GstElement *            gst_parse_bin_from_description      (const gchar     * bin_description,
                                                              gboolean          ghost_unlinked_pads,
@@ -965,17 +942,23 @@
   GST_SEARCH_MODE_AFTER
 } GstSearchMode;
 
-gpointer                gst_util_array_binary_search      (gpointer array, guint num_elements,
-                                                           gsize element_size, GCompareDataFunc search_func,
-							   GstSearchMode mode, gconstpointer search_data,
-							   gpointer user_data);
+gpointer      gst_util_array_binary_search      (gpointer array, guint num_elements,
+                                                 gsize element_size, GCompareDataFunc search_func,
+                                                 GstSearchMode mode, gconstpointer search_data,
+                                                 gpointer user_data);
 
-gint gst_util_greatest_common_divisor (gint a, gint b);
-void gst_util_fraction_to_double (gint src_n, gint src_d, gdouble *dest);
-void gst_util_double_to_fraction (gdouble src, gint *dest_n, gint *dest_d);
-gboolean gst_util_fraction_multiply (gint a_n, gint a_d, gint b_n, gint b_d, gint *res_n, gint *res_d);
-gboolean gst_util_fraction_add (gint a_n, gint a_d, gint b_n, gint b_d, gint *res_n, gint *res_d);
-gint gst_util_fraction_compare (gint a_n, gint a_d, gint b_n, gint b_d);
+/* fraction operations */
+gint          gst_util_greatest_common_divisor  (gint a, gint b);
+gint64        gst_util_greatest_common_divisor_int64 (gint64 a, gint64 b);
+
+void          gst_util_fraction_to_double       (gint src_n, gint src_d, gdouble *dest);
+void          gst_util_double_to_fraction       (gdouble src, gint *dest_n, gint *dest_d);
+
+gboolean      gst_util_fraction_multiply        (gint a_n, gint a_d, gint b_n, gint b_d,
+                                                 gint *res_n, gint *res_d);
+gboolean      gst_util_fraction_add             (gint a_n, gint a_d, gint b_n, gint b_d,
+                                                 gint *res_n, gint *res_d);
+gint          gst_util_fraction_compare         (gint a_n, gint a_d, gint b_n, gint b_d);
 
 
 G_END_DECLS
diff --git a/gst/gstvalue.c b/gst/gstvalue.c
index 6cbed59..9910265 100644
--- a/gst/gstvalue.c
+++ b/gst/gstvalue.c
@@ -45,6 +45,55 @@
 #include <gobject/gvaluecollector.h>
 #include "gstutils.h"
 
+/* GstValueUnionFunc:
+ * @dest: a #GValue for the result
+ * @value1: a #GValue operand
+ * @value2: a #GValue operand
+ *
+ * Used by gst_value_union() to perform unification for a specific #GValue
+ * type. Register a new implementation with gst_value_register_union_func().
+ *
+ * Returns: %TRUE if a union was successful
+ */
+typedef gboolean (*GstValueUnionFunc) (GValue * dest,
+    const GValue * value1, const GValue * value2);
+
+/* GstValueIntersectFunc:
+ * @dest: (out caller-allocates): a #GValue for the result
+ * @value1: a #GValue operand
+ * @value2: a #GValue operand
+ *
+ * Used by gst_value_intersect() to perform intersection for a specific #GValue
+ * type. If the intersection is non-empty, the result is
+ * placed in @dest and TRUE is returned.  If the intersection is
+ * empty, @dest is unmodified and FALSE is returned.
+ * Register a new implementation with gst_value_register_intersect_func().
+ *
+ * Returns: %TRUE if the values can intersect
+ */
+typedef gboolean (*GstValueIntersectFunc) (GValue * dest,
+    const GValue * value1, const GValue * value2);
+
+/* GstValueSubtractFunc:
+ * @dest: (out caller-allocates): a #GValue for the result
+ * @minuend: a #GValue operand
+ * @subtrahend: a #GValue operand
+ *
+ * Used by gst_value_subtract() to perform subtraction for a specific #GValue
+ * type. Register a new implementation with gst_value_register_subtract_func().
+ *
+ * Returns: %TRUE if the subtraction is not empty
+ */
+typedef gboolean (*GstValueSubtractFunc) (GValue * dest,
+    const GValue * minuend, const GValue * subtrahend);
+
+static void gst_value_register_union_func (GType type1,
+    GType type2, GstValueUnionFunc func);
+static void gst_value_register_intersect_func (GType type1,
+    GType type2, GstValueIntersectFunc func);
+static void gst_value_register_subtract_func (GType minuend_type,
+    GType subtrahend_type, GstValueSubtractFunc func);
+
 typedef struct _GstValueUnionInfo GstValueUnionInfo;
 struct _GstValueUnionInfo
 {
@@ -296,6 +345,63 @@
   return NULL;
 }
 
+static gboolean
+gst_value_list_or_array_get_basic_type (const GValue * value, GType * type)
+{
+  if (G_UNLIKELY (value == NULL))
+    return FALSE;
+
+  if (GST_VALUE_HOLDS_LIST (value)) {
+    if (VALUE_LIST_SIZE (value) == 0)
+      return FALSE;
+    return gst_value_list_or_array_get_basic_type (VALUE_LIST_GET_VALUE (value,
+            0), type);
+  }
+  if (GST_VALUE_HOLDS_ARRAY (value)) {
+    const GArray *array = (const GArray *) value->data[0].v_pointer;
+    if (array->len == 0)
+      return FALSE;
+    return gst_value_list_or_array_get_basic_type (&g_array_index (array,
+            GValue, 0), type);
+  }
+
+  *type = G_VALUE_TYPE (value);
+
+  return TRUE;
+}
+
+#define IS_RANGE_COMPAT(type1,type2,t1,t2) \
+  (((t1) == (type1) && (t2) == (type2)) || ((t2) == (type1) && (t1) == (type2)))
+
+static gboolean
+gst_value_list_or_array_are_compatible (const GValue * value1,
+    const GValue * value2)
+{
+  GType basic_type1, basic_type2;
+
+  /* empty or same type is OK */
+  if (!gst_value_list_or_array_get_basic_type (value1, &basic_type1) ||
+      !gst_value_list_or_array_get_basic_type (value2, &basic_type2) ||
+      basic_type1 == basic_type2)
+    return TRUE;
+
+  /* ranges are distinct types for each bound type... */
+  if (IS_RANGE_COMPAT (G_TYPE_INT, GST_TYPE_INT_RANGE, basic_type1,
+          basic_type2))
+    return TRUE;
+  if (IS_RANGE_COMPAT (G_TYPE_INT64, GST_TYPE_INT64_RANGE, basic_type1,
+          basic_type2))
+    return TRUE;
+  if (IS_RANGE_COMPAT (G_TYPE_DOUBLE, GST_TYPE_DOUBLE_RANGE, basic_type1,
+          basic_type2))
+    return TRUE;
+  if (IS_RANGE_COMPAT (GST_TYPE_FRACTION, GST_TYPE_FRACTION_RANGE, basic_type1,
+          basic_type2))
+    return TRUE;
+
+  return FALSE;
+}
+
 /**
  * gst_value_list_append_value:
  * @value: a #GValue of type #GST_TYPE_LIST
@@ -310,6 +416,8 @@
 
   g_return_if_fail (GST_VALUE_HOLDS_LIST (value));
   g_return_if_fail (G_IS_VALUE (append_value));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value,
+          append_value));
 
   gst_value_init_and_copy (&val, append_value);
   g_array_append_vals ((GArray *) value->data[0].v_pointer, &val, 1);
@@ -329,6 +437,8 @@
 
   g_return_if_fail (GST_VALUE_HOLDS_LIST (value));
   g_return_if_fail (G_IS_VALUE (prepend_value));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value,
+          prepend_value));
 
   gst_value_init_and_copy (&val, prepend_value);
   g_array_prepend_vals ((GArray *) value->data[0].v_pointer, &val, 1);
@@ -355,6 +465,7 @@
   g_return_if_fail (G_VALUE_TYPE (dest) == 0);
   g_return_if_fail (G_IS_VALUE (value1));
   g_return_if_fail (G_IS_VALUE (value2));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value1, value2));
 
   value1_length =
       (GST_VALUE_HOLDS_LIST (value1) ? VALUE_LIST_SIZE (value1) : 1);
@@ -412,6 +523,7 @@
   g_return_if_fail (G_VALUE_TYPE (dest) == 0);
   g_return_if_fail (G_IS_VALUE (value1));
   g_return_if_fail (G_IS_VALUE (value2));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value1, value2));
 
   value1_length =
       (GST_VALUE_HOLDS_LIST (value1) ? VALUE_LIST_SIZE (value1) : 1);
@@ -537,6 +649,8 @@
 
   g_return_if_fail (GST_VALUE_HOLDS_ARRAY (value));
   g_return_if_fail (G_IS_VALUE (append_value));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value,
+          append_value));
 
   gst_value_init_and_copy (&val, append_value);
   g_array_append_vals ((GArray *) value->data[0].v_pointer, &val, 1);
@@ -556,6 +670,8 @@
 
   g_return_if_fail (GST_VALUE_HOLDS_ARRAY (value));
   g_return_if_fail (G_IS_VALUE (prepend_value));
+  g_return_if_fail (gst_value_list_or_array_are_compatible (value,
+          prepend_value));
 
   gst_value_init_and_copy (&val, prepend_value);
   g_array_prepend_vals ((GArray *) value->data[0].v_pointer, &val, 1);
@@ -716,26 +832,56 @@
 
 /*************
  * int range *
+ *
+ * Values in the range are defined as any value greater or equal
+ * to min*step, AND lesser or equal to max*step.
+ * For step == 1, this falls back to the traditional range semantics.
  *************/
 
+#define INT_RANGE_MIN(v) (((gint *)((v)->data[0].v_pointer))[0])
+#define INT_RANGE_MAX(v) (((gint *)((v)->data[0].v_pointer))[1])
+#define INT_RANGE_STEP(v) (((gint *)((v)->data[0].v_pointer))[2])
+
 static void
 gst_value_init_int_range (GValue * value)
 {
-  value->data[0].v_int = 0;
-  value->data[1].v_int = 0;
+  gint *vals = g_slice_alloc0 (3 * sizeof (gint));
+  value->data[0].v_pointer = vals;
+  INT_RANGE_MIN (value) = 0;
+  INT_RANGE_MAX (value) = 0;
+  INT_RANGE_STEP (value) = 1;
+}
+
+static void
+gst_value_free_int_range (GValue * value)
+{
+  g_return_if_fail (GST_VALUE_HOLDS_INT_RANGE (value));
+  g_slice_free1 (3 * sizeof (gint), value->data[0].v_pointer);
+  value->data[0].v_pointer = NULL;
 }
 
 static void
 gst_value_copy_int_range (const GValue * src_value, GValue * dest_value)
 {
-  dest_value->data[0].v_int = src_value->data[0].v_int;
-  dest_value->data[1].v_int = src_value->data[1].v_int;
+  gint *vals = (gint *) dest_value->data[0].v_pointer;
+  gint *src_vals = (gint *) src_value->data[0].v_pointer;
+
+  if (vals == NULL) {
+    gst_value_init_int_range (dest_value);
+  }
+  if (src_vals != NULL) {
+    INT_RANGE_MIN (dest_value) = INT_RANGE_MIN (src_value);
+    INT_RANGE_MAX (dest_value) = INT_RANGE_MAX (src_value);
+    INT_RANGE_STEP (dest_value) = INT_RANGE_STEP (src_value);
+  }
 }
 
 static gchar *
 gst_value_collect_int_range (GValue * value, guint n_collect_values,
     GTypeCValue * collect_values, guint collect_flags)
 {
+  gint *vals = value->data[0].v_pointer;
+
   if (n_collect_values != 2)
     return g_strdup_printf ("not enough value locations for `%s' passed",
         G_VALUE_TYPE_NAME (value));
@@ -743,8 +889,12 @@
     return g_strdup_printf ("range start is not smaller than end for `%s'",
         G_VALUE_TYPE_NAME (value));
 
-  value->data[0].v_int = collect_values[0].v_int;
-  value->data[1].v_int = collect_values[1].v_int;
+  if (vals == NULL) {
+    gst_value_init_int_range (value);
+  }
+
+  gst_value_set_int_range_step (value, collect_values[0].v_int,
+      collect_values[1].v_int, 1);
 
   return NULL;
 }
@@ -755,6 +905,8 @@
 {
   guint32 *int_range_start = collect_values[0].v_pointer;
   guint32 *int_range_end = collect_values[1].v_pointer;
+  guint32 *int_range_step = collect_values[2].v_pointer;
+  gint *vals = (gint *) value->data[0].v_pointer;
 
   if (!int_range_start)
     return g_strdup_printf ("start value location for `%s' passed as NULL",
@@ -762,14 +914,46 @@
   if (!int_range_end)
     return g_strdup_printf ("end value location for `%s' passed as NULL",
         G_VALUE_TYPE_NAME (value));
+  if (!int_range_step)
+    return g_strdup_printf ("step value location for `%s' passed as NULL",
+        G_VALUE_TYPE_NAME (value));
 
-  *int_range_start = value->data[0].v_int;
-  *int_range_end = value->data[1].v_int;
+  if (G_UNLIKELY (vals == NULL)) {
+    return g_strdup_printf ("Uninitialised `%s' passed",
+        G_VALUE_TYPE_NAME (value));
+  }
+
+  *int_range_start = INT_RANGE_MIN (value);
+  *int_range_end = INT_RANGE_MAX (value);
+  *int_range_step = INT_RANGE_STEP (value);
 
   return NULL;
 }
 
 /**
+ * gst_value_set_int_range_step:
+ * @value: a GValue initialized to GST_TYPE_INT_RANGE
+ * @start: the start of the range
+ * @end: the end of the range
+ * @step: the step of the range
+ *
+ * Sets @value to the range specified by @start, @end and @step.
+ */
+void
+gst_value_set_int_range_step (GValue * value, gint start, gint end, gint step)
+{
+  g_return_if_fail (GST_VALUE_HOLDS_INT_RANGE (value));
+  g_return_if_fail (start < end);
+  g_return_if_fail (step > 0);
+  g_return_if_fail (start % step == 0);
+  g_return_if_fail (end % step == 0);
+
+  INT_RANGE_MIN (value) = start / step;
+  INT_RANGE_MAX (value) = end / step;
+  INT_RANGE_STEP (value) = step;
+}
+
+/**
  * gst_value_set_int_range:
  * @value: a GValue initialized to GST_TYPE_INT_RANGE
  * @start: the start of the range
@@ -780,11 +964,7 @@
 void
 gst_value_set_int_range (GValue * value, gint start, gint end)
 {
-  g_return_if_fail (GST_VALUE_HOLDS_INT_RANGE (value));
-  g_return_if_fail (start < end);
-
-  value->data[0].v_int = start;
-  value->data[1].v_int = end;
+  gst_value_set_int_range_step (value, start, end, 1);
 }
 
 /**
@@ -800,7 +980,7 @@
 {
   g_return_val_if_fail (GST_VALUE_HOLDS_INT_RANGE (value), 0);
 
-  return value->data[0].v_int;
+  return INT_RANGE_MIN (value) * INT_RANGE_STEP (value);
 }
 
 /**
@@ -816,31 +996,81 @@
 {
   g_return_val_if_fail (GST_VALUE_HOLDS_INT_RANGE (value), 0);
 
-  return value->data[1].v_int;
+  return INT_RANGE_MAX (value) * INT_RANGE_STEP (value);
+}
+
+/**
+ * gst_value_get_int_range_step:
+ * @value: a GValue initialized to GST_TYPE_INT_RANGE
+ *
+ * Gets the step of the range specified by @value.
+ *
+ * Returns: the step of the range
+ */
+gint
+gst_value_get_int_range_step (const GValue * value)
+{
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT_RANGE (value), 0);
+
+  return INT_RANGE_STEP (value);
 }
 
 static void
 gst_value_transform_int_range_string (const GValue * src_value,
     GValue * dest_value)
 {
-  dest_value->data[0].v_pointer = g_strdup_printf ("[%d,%d]",
-      (int) src_value->data[0].v_int, (int) src_value->data[1].v_int);
+  if (INT_RANGE_STEP (src_value) == 1)
+    dest_value->data[0].v_pointer = g_strdup_printf ("[%d,%d]",
+        INT_RANGE_MIN (src_value), INT_RANGE_MAX (src_value));
+  else
+    dest_value->data[0].v_pointer = g_strdup_printf ("[%d,%d,%d]",
+        INT_RANGE_MIN (src_value) * INT_RANGE_STEP (src_value),
+        INT_RANGE_MAX (src_value) * INT_RANGE_STEP (src_value),
+        INT_RANGE_STEP (src_value));
 }
 
 static gint
 gst_value_compare_int_range (const GValue * value1, const GValue * value2)
 {
-  if (value2->data[0].v_int == value1->data[0].v_int &&
-      value2->data[1].v_int == value1->data[1].v_int)
+  /* calculate the number of values in each range */
+  gint n1 = INT_RANGE_MAX (value1) - INT_RANGE_MIN (value1) + 1;
+  gint n2 = INT_RANGE_MAX (value2) - INT_RANGE_MIN (value2) + 1;
+
+  /* they must be equal */
+  if (n1 != n2)
+    return GST_VALUE_UNORDERED;
+
+  /* if empty, equal */
+  if (n1 == 0)
     return GST_VALUE_EQUAL;
-  return GST_VALUE_UNORDERED;
+
+  /* if more than one value, then it is only equal if the step is equal
+     and bounds lie on the same value */
+  if (n1 > 1) {
+    if (INT_RANGE_STEP (value1) == INT_RANGE_STEP (value2) &&
+        INT_RANGE_STEP (value1) == INT_RANGE_STEP (value2) &&
+        INT_RANGE_STEP (value1) == INT_RANGE_STEP (value2)) {
+      return GST_VALUE_EQUAL;
+    }
+    return GST_VALUE_UNORDERED;
+  } else {
+    /* if just one, only if the value is equal */
+    if (INT_RANGE_MIN (value1) == INT_RANGE_MIN (value2))
+      return GST_VALUE_EQUAL;
+    return GST_VALUE_UNORDERED;
+  }
 }
 
 static gchar *
 gst_value_serialize_int_range (const GValue * value)
 {
-  return g_strdup_printf ("[ %d, %d ]", value->data[0].v_int,
-      value->data[1].v_int);
+  if (INT_RANGE_STEP (value) == 1)
+    return g_strdup_printf ("[ %d, %d ]", INT_RANGE_MIN (value),
+        INT_RANGE_MAX (value));
+  else
+    return g_strdup_printf ("[ %d, %d, %d ]",
+        INT_RANGE_MIN (value) * INT_RANGE_STEP (value),
+        INT_RANGE_MAX (value) * INT_RANGE_STEP (value), INT_RANGE_STEP (value));
 }
 
 static gboolean
@@ -852,26 +1082,57 @@
 
 /***************
  * int64 range *
+ *
+ * Values in the range are defined as any value greater or equal
+ * to min*step, AND lesser or equal to max*step.
+ * For step == 1, this falls back to the traditional range semantics.
  ***************/
 
+#define INT64_RANGE_MIN(v) (((gint64 *)((v)->data[0].v_pointer))[0])
+#define INT64_RANGE_MAX(v) (((gint64 *)((v)->data[0].v_pointer))[1])
+#define INT64_RANGE_STEP(v) (((gint64 *)((v)->data[0].v_pointer))[2])
+
 static void
 gst_value_init_int64_range (GValue * value)
 {
-  value->data[0].v_int64 = 0;
-  value->data[1].v_int64 = 0;
+  gint64 *vals = g_slice_alloc0 (3 * sizeof (gint64));
+  value->data[0].v_pointer = vals;
+  INT64_RANGE_MIN (value) = 0;
+  INT64_RANGE_MAX (value) = 0;
+  INT64_RANGE_STEP (value) = 1;
+}
+
+static void
+gst_value_free_int64_range (GValue * value)
+{
+  g_return_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value));
+  g_slice_free1 (3 * sizeof (gint64), value->data[0].v_pointer);
+  value->data[0].v_pointer = NULL;
 }
 
 static void
 gst_value_copy_int64_range (const GValue * src_value, GValue * dest_value)
 {
-  dest_value->data[0].v_int64 = src_value->data[0].v_int64;
-  dest_value->data[1].v_int64 = src_value->data[1].v_int64;
+  gint64 *vals = (gint64 *) dest_value->data[0].v_pointer;
+  gint64 *src_vals = (gint64 *) src_value->data[0].v_pointer;
+
+  if (vals == NULL) {
+    gst_value_init_int64_range (dest_value);
+  }
+
+  if (src_vals != NULL) {
+    INT64_RANGE_MIN (dest_value) = INT64_RANGE_MIN (src_value);
+    INT64_RANGE_MAX (dest_value) = INT64_RANGE_MAX (src_value);
+    INT64_RANGE_STEP (dest_value) = INT64_RANGE_STEP (src_value);
+  }
 }
 
 static gchar *
 gst_value_collect_int64_range (GValue * value, guint n_collect_values,
     GTypeCValue * collect_values, guint collect_flags)
 {
+  gint64 *vals = value->data[0].v_pointer;
+
   if (n_collect_values != 2)
     return g_strdup_printf ("not enough value locations for `%s' passed",
         G_VALUE_TYPE_NAME (value));
@@ -879,8 +1140,12 @@
     return g_strdup_printf ("range start is not smaller than end for `%s'",
         G_VALUE_TYPE_NAME (value));
 
-  value->data[0].v_int64 = collect_values[0].v_int64;
-  value->data[1].v_int64 = collect_values[1].v_int64;
+  if (vals == NULL) {
+    gst_value_init_int64_range (value);
+  }
+
+  gst_value_set_int64_range_step (value, collect_values[0].v_int64,
+      collect_values[1].v_int64, 1);
 
   return NULL;
 }
@@ -891,6 +1156,8 @@
 {
   guint64 *int_range_start = collect_values[0].v_pointer;
   guint64 *int_range_end = collect_values[1].v_pointer;
+  guint64 *int_range_step = collect_values[2].v_pointer;
+  gint64 *vals = (gint64 *) value->data[0].v_pointer;
 
   if (!int_range_start)
     return g_strdup_printf ("start value location for `%s' passed as NULL",
@@ -898,14 +1165,49 @@
   if (!int_range_end)
     return g_strdup_printf ("end value location for `%s' passed as NULL",
         G_VALUE_TYPE_NAME (value));
+  if (!int_range_step)
+    return g_strdup_printf ("step value location for `%s' passed as NULL",
+        G_VALUE_TYPE_NAME (value));
 
-  *int_range_start = value->data[0].v_int64;
-  *int_range_end = value->data[1].v_int64;
+  if (G_UNLIKELY (vals == NULL)) {
+    return g_strdup_printf ("Uninitialised `%s' passed",
+        G_VALUE_TYPE_NAME (value));
+  }
+
+  *int_range_start = INT64_RANGE_MIN (value);
+  *int_range_end = INT64_RANGE_MAX (value);
+  *int_range_step = INT64_RANGE_STEP (value);
 
   return NULL;
 }
 
 /**
+ * gst_value_set_int64_range_step:
+ * @value: a GValue initialized to GST_TYPE_INT64_RANGE
+ * @start: the start of the range
+ * @end: the end of the range
+ * @step: the step of the range
+ *
+ * Sets @value to the range specified by @start, @end and @step.
+ *
+ * Since: 0.11.0
+ */
+void
+gst_value_set_int64_range_step (GValue * value, gint64 start, gint64 end,
+    gint64 step)
+{
+  g_return_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value));
+  g_return_if_fail (start < end);
+  g_return_if_fail (step > 0);
+  g_return_if_fail (start % step == 0);
+  g_return_if_fail (end % step == 0);
+
+  INT64_RANGE_MIN (value) = start / step;
+  INT64_RANGE_MAX (value) = end / step;
+  INT64_RANGE_STEP (value) = step;
+}
+
+/**
  * gst_value_set_int64_range:
  * @value: a GValue initialized to GST_TYPE_INT64_RANGE
  * @start: the start of the range
@@ -918,11 +1220,7 @@
 void
 gst_value_set_int64_range (GValue * value, gint64 start, gint64 end)
 {
-  g_return_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value));
-  g_return_if_fail (start < end);
-
-  value->data[0].v_int64 = start;
-  value->data[1].v_int64 = end;
+  gst_value_set_int64_range_step (value, start, end, 1);
 }
 
 /**
@@ -940,7 +1238,7 @@
 {
   g_return_val_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value), 0);
 
-  return value->data[0].v_int64;
+  return INT64_RANGE_MIN (value) * INT64_RANGE_STEP (value);
 }
 
 /**
@@ -958,32 +1256,88 @@
 {
   g_return_val_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value), 0);
 
-  return value->data[1].v_int64;
+  return INT64_RANGE_MAX (value) * INT64_RANGE_STEP (value);
+}
+
+/**
+ * gst_value_get_int64_range_step:
+ * @value: a GValue initialized to GST_TYPE_INT64_RANGE
+ *
+ * Gets the step of the range specified by @value.
+ *
+ * Returns: the step of the range
+ *
+ * Since: 0.11.0
+ */
+gint64
+gst_value_get_int64_range_step (const GValue * value)
+{
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value), 0);
+
+  return INT64_RANGE_STEP (value);
 }
 
 static void
 gst_value_transform_int64_range_string (const GValue * src_value,
     GValue * dest_value)
 {
-  dest_value->data[0].v_pointer =
-      g_strdup_printf ("(gint64)[%" G_GINT64_FORMAT ",%" G_GINT64_FORMAT "]",
-      src_value->data[0].v_int64, src_value->data[1].v_int64);
+  if (INT64_RANGE_STEP (src_value) == 1)
+    dest_value->data[0].v_pointer =
+        g_strdup_printf ("(gint64)[%" G_GINT64_FORMAT ",%" G_GINT64_FORMAT "]",
+        INT64_RANGE_MIN (src_value), INT64_RANGE_MAX (src_value));
+  else
+    dest_value->data[0].v_pointer =
+        g_strdup_printf ("(gint64)[%" G_GINT64_FORMAT ",%" G_GINT64_FORMAT
+        ",%" G_GINT64_FORMAT "]",
+        INT64_RANGE_MIN (src_value) * INT64_RANGE_STEP (src_value),
+        INT64_RANGE_MAX (src_value) * INT64_RANGE_STEP (src_value),
+        INT64_RANGE_STEP (src_value));
 }
 
 static gint
 gst_value_compare_int64_range (const GValue * value1, const GValue * value2)
 {
-  if (value2->data[0].v_int64 == value1->data[0].v_int64 &&
-      value2->data[1].v_int64 == value1->data[1].v_int64)
+  /* calculate the number of values in each range */
+  gint64 n1 = INT64_RANGE_MAX (value1) - INT64_RANGE_MIN (value1) + 1;
+  gint64 n2 = INT64_RANGE_MAX (value2) - INT64_RANGE_MIN (value2) + 1;
+
+  /* they must be equal */
+  if (n1 != n2)
+    return GST_VALUE_UNORDERED;
+
+  /* if empty, equal */
+  if (n1 == 0)
     return GST_VALUE_EQUAL;
-  return GST_VALUE_UNORDERED;
+
+  /* if more than one value, then it is only equal if the step is equal
+     and bounds lie on the same value */
+  if (n1 > 1) {
+    if (INT64_RANGE_STEP (value1) == INT64_RANGE_STEP (value2) &&
+        INT64_RANGE_STEP (value1) == INT64_RANGE_STEP (value2) &&
+        INT64_RANGE_STEP (value1) == INT64_RANGE_STEP (value2)) {
+      return GST_VALUE_EQUAL;
+    }
+    return GST_VALUE_UNORDERED;
+  } else {
+    /* if just one, only if the value is equal */
+    if (INT64_RANGE_MIN (value1) == INT64_RANGE_MIN (value2))
+      return GST_VALUE_EQUAL;
+    return GST_VALUE_UNORDERED;
+  }
 }
 
 static gchar *
 gst_value_serialize_int64_range (const GValue * value)
 {
-  return g_strdup_printf ("[ %" G_GINT64_FORMAT ", %" G_GINT64_FORMAT " ]",
-      value->data[0].v_int64, value->data[1].v_int64);
+  if (INT64_RANGE_STEP (value) == 1)
+    return g_strdup_printf ("[ %" G_GINT64_FORMAT ", %" G_GINT64_FORMAT " ]",
+        INT64_RANGE_MIN (value), INT64_RANGE_MAX (value));
+  else
+    return g_strdup_printf ("[ %" G_GINT64_FORMAT ", %" G_GINT64_FORMAT ", %"
+        G_GINT64_FORMAT " ]",
+        INT64_RANGE_MIN (value) * INT64_RANGE_STEP (value),
+        INT64_RANGE_MAX (value) * INT64_RANGE_STEP (value),
+        INT64_RANGE_STEP (value));
 }
 
 static gboolean
@@ -1161,8 +1515,9 @@
   GValue *vals = (GValue *) value->data[0].v_pointer;
 
   if (vals != NULL) {
-    g_value_unset (&vals[0]);
-    g_value_unset (&vals[1]);
+    /* we know the two values contain fractions without internal allocs */
+    /* g_value_unset (&vals[0]); */
+    /* g_value_unset (&vals[1]); */
     g_slice_free1 (2 * sizeof (GValue), vals);
     value->data[0].v_pointer = NULL;
   }
@@ -1311,8 +1666,9 @@
   gst_value_set_fraction (&end, numerator_end, denominator_end);
   gst_value_set_fraction_range (value, &start, &end);
 
-  g_value_unset (&start);
-  g_value_unset (&end);
+  /* we know the two values contain fractions without internal allocs */
+  /* g_value_unset (&start); */
+  /* g_value_unset (&end);   */
 }
 
 /**
@@ -1569,7 +1925,7 @@
   GstBuffer *buf1 = gst_value_get_buffer (value1);
   GstBuffer *buf2 = gst_value_get_buffer (value2);
   gsize size1, size2;
-  gpointer data1, data2;
+  GstMapInfo info1, info2;
   gint result = GST_VALUE_UNORDERED;
 
   size1 = gst_buffer_get_size (buf1);
@@ -1581,16 +1937,19 @@
   if (size1 == 0)
     return GST_VALUE_EQUAL;
 
-  data1 = gst_buffer_map (buf1, &size1, NULL, GST_MAP_READ);
-  data2 = gst_buffer_map (buf2, &size2, NULL, GST_MAP_READ);
-  g_assert (data1);
-  g_assert (data2);
+  if (!gst_buffer_map (buf1, &info1, GST_MAP_READ))
+    return GST_VALUE_UNORDERED;
 
-  if (memcmp (data1, data2, size1) == 0)
+  if (!gst_buffer_map (buf2, &info2, GST_MAP_READ)) {
+    gst_buffer_unmap (buf1, &info2);
+    return GST_VALUE_UNORDERED;
+  }
+
+  if (memcmp (info1.data, info2.data, info1.size) == 0)
     result = GST_VALUE_EQUAL;
 
-  gst_buffer_unmap (buf2, data2, size2);
-  gst_buffer_unmap (buf1, data1, size1);
+  gst_buffer_unmap (buf2, &info1);
+  gst_buffer_unmap (buf1, &info2);
 
   return result;
 }
@@ -1598,9 +1957,9 @@
 static gchar *
 gst_value_serialize_buffer (const GValue * value)
 {
+  GstMapInfo info;
   guint8 *data;
   gint i;
-  gsize size;
   gchar *string;
   GstBuffer *buffer;
 
@@ -1608,15 +1967,18 @@
   if (buffer == NULL)
     return NULL;
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+  if (!gst_buffer_map (buffer, &info, GST_MAP_READ))
+    return NULL;
 
-  string = g_malloc (size * 2 + 1);
-  for (i = 0; i < size; i++) {
+  data = info.data;
+
+  string = g_malloc (info.size * 2 + 1);
+  for (i = 0; i < info.size; i++) {
     sprintf (string + i * 2, "%02x", data[i]);
   }
-  string[size * 2] = 0;
+  string[info.size * 2] = 0;
 
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &info);
 
   return string;
 }
@@ -1627,16 +1989,18 @@
   GstBuffer *buffer;
   gint len;
   gchar ts[3];
+  GstMapInfo info;
   guint8 *data;
   gint i;
-  gsize size;
 
   len = strlen (s);
   if (len & 1)
     goto wrong_length;
 
-  buffer = gst_buffer_new_allocate (NULL, len / 2, 0);
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_WRITE);
+  buffer = gst_buffer_new_allocate (NULL, len / 2, NULL);
+  if (!gst_buffer_map (buffer, &info, GST_MAP_WRITE))
+    goto map_failed;
+  data = info.data;
 
   for (i = 0; i < len / 2; i++) {
     if (!isxdigit ((int) s[i * 2]) || !isxdigit ((int) s[i * 2 + 1]))
@@ -1648,7 +2012,7 @@
 
     data[i] = (guint8) strtoul (ts, NULL, 16);
   }
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &info);
 
   gst_value_take_buffer (dest, buffer);
 
@@ -1659,10 +2023,14 @@
   {
     return FALSE;
   }
+map_failed:
+  {
+    return FALSE;
+  }
 wrong_char:
   {
     gst_buffer_unref (buffer);
-    gst_buffer_unmap (buffer, data, size);
+    gst_buffer_unmap (buffer, &info);
     return FALSE;
   }
 }
@@ -2427,6 +2795,123 @@
   return TRUE;
 }
 
+/****************
+ * subset *
+ ****************/
+
+static gboolean
+gst_value_is_subset_int_range_int_range (const GValue * value1,
+    const GValue * value2)
+{
+  gint gcd;
+
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT_RANGE (value1), FALSE);
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT_RANGE (value2), FALSE);
+
+  if (INT_RANGE_MIN (value1) * INT_RANGE_STEP (value1) <
+      INT_RANGE_MIN (value2) * INT_RANGE_STEP (value2))
+    return FALSE;
+  if (INT_RANGE_MAX (value1) * INT_RANGE_STEP (value1) >
+      INT_RANGE_MAX (value2) * INT_RANGE_STEP (value2))
+    return FALSE;
+
+  if (INT_RANGE_MIN (value2) == INT_RANGE_MAX (value2)) {
+    if ((INT_RANGE_MIN (value2) * INT_RANGE_STEP (value2)) %
+        INT_RANGE_STEP (value1))
+      return FALSE;
+    return TRUE;
+  }
+
+  gcd =
+      gst_util_greatest_common_divisor (INT_RANGE_STEP (value1),
+      INT_RANGE_STEP (value2));
+  if (gcd != MIN (INT_RANGE_STEP (value1), INT_RANGE_STEP (value2)))
+    return FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_value_is_subset_int64_range_int64_range (const GValue * value1,
+    const GValue * value2)
+{
+  gint64 gcd;
+
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value1), FALSE);
+  g_return_val_if_fail (GST_VALUE_HOLDS_INT64_RANGE (value2), FALSE);
+
+  if (INT64_RANGE_MIN (value1) < INT64_RANGE_MIN (value2))
+    return FALSE;
+  if (INT64_RANGE_MAX (value1) > INT64_RANGE_MAX (value2))
+    return FALSE;
+
+  if (INT64_RANGE_MIN (value2) == INT64_RANGE_MAX (value2)) {
+    if ((INT64_RANGE_MIN (value2) * INT64_RANGE_STEP (value2)) %
+        INT64_RANGE_STEP (value1))
+      return FALSE;
+    return TRUE;
+  }
+
+  gcd =
+      gst_util_greatest_common_divisor_int64 (INT64_RANGE_STEP (value1),
+      INT64_RANGE_STEP (value2));
+  if (gcd != MIN (INT64_RANGE_STEP (value1), INT64_RANGE_STEP (value2)))
+    return FALSE;
+
+  return TRUE;
+}
+
+/**
+ * gst_value_is_subset:
+ * @value1: a #GValue
+ * @value2: a #GValue
+ *
+ * Check that @value1 is a subset of @value2.
+ *
+ * Return: %TRUE is @value1 is a subset of @value2
+ */
+gboolean
+gst_value_is_subset (const GValue * value1, const GValue * value2)
+{
+  /* special case for int/int64 ranges, since we cannot compute
+     the difference for those when they have different steps,
+     and it's actually a lot simpler to compute whether a range
+     is a subset of another. */
+  if (GST_VALUE_HOLDS_INT_RANGE (value1) && GST_VALUE_HOLDS_INT_RANGE (value2)) {
+    return gst_value_is_subset_int_range_int_range (value1, value2);
+  } else if (GST_VALUE_HOLDS_INT64_RANGE (value1)
+      && GST_VALUE_HOLDS_INT64_RANGE (value2)) {
+    return gst_value_is_subset_int64_range_int64_range (value1, value2);
+  }
+
+  /*
+   * 1 - [1,2] = empty
+   * -> !subset
+   *
+   * [1,2] - 1 = 2
+   *  -> 1 - [1,2] = empty
+   *  -> subset
+   *
+   * [1,3] - [1,2] = 3
+   * -> [1,2] - [1,3] = empty
+   * -> subset
+   *
+   * {1,2} - {1,3} = 2
+   * -> {1,3} - {1,2} = 3
+   * -> !subset
+   *
+   *  First caps subtraction needs to return a non-empty set, second
+   *  subtractions needs to give en empty set.
+   *  Both substractions are switched below, as it's faster that way.
+   */
+  if (!gst_value_subtract (NULL, value1, value2)) {
+    if (gst_value_subtract (NULL, value2, value1)) {
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
 /*********
  * union *
  *********/
@@ -2435,11 +2920,33 @@
 gst_value_union_int_int_range (GValue * dest, const GValue * src1,
     const GValue * src2)
 {
-  if (src2->data[0].v_int <= src1->data[0].v_int &&
-      src2->data[1].v_int >= src1->data[0].v_int) {
-    gst_value_init_and_copy (dest, src2);
+  gint v = src1->data[0].v_int;
+
+  /* check if it's already in the range */
+  if (INT_RANGE_MIN (src2) * INT_RANGE_STEP (src2) <= v &&
+      INT_RANGE_MAX (src2) * INT_RANGE_STEP (src2) >= v &&
+      v % INT_RANGE_STEP (src2) == 0) {
+    if (dest)
+      gst_value_init_and_copy (dest, src2);
     return TRUE;
   }
+
+  /* check if it extends the range */
+  if (v == (INT_RANGE_MIN (src2) - 1) * INT_RANGE_STEP (src2)) {
+    if (dest) {
+      gst_value_init_and_copy (dest, src2);
+      --INT_RANGE_MIN (src2);
+    }
+    return TRUE;
+  }
+  if (v == (INT_RANGE_MAX (src2) + 1) * INT_RANGE_STEP (src2)) {
+    if (dest) {
+      gst_value_init_and_copy (dest, src2);
+      ++INT_RANGE_MAX (src2);
+    }
+    return TRUE;
+  }
+
   return FALSE;
 }
 
@@ -2447,20 +2954,77 @@
 gst_value_union_int_range_int_range (GValue * dest, const GValue * src1,
     const GValue * src2)
 {
-  gint min;
-  gint max;
+  /* We can union in several special cases:
+     1 - one is a subset of another
+     2 - same step and not disjoint
+     3 - different step, at least one with one value which matches a 'next' or 'previous'
+     - anything else ?
+   */
 
-  min = MAX (src1->data[0].v_int, src2->data[0].v_int);
-  max = MIN (src1->data[1].v_int, src2->data[1].v_int);
-
-  if (min <= max) {
-    g_value_init (dest, GST_TYPE_INT_RANGE);
-    gst_value_set_int_range (dest,
-        MIN (src1->data[0].v_int, src2->data[0].v_int),
-        MAX (src1->data[1].v_int, src2->data[1].v_int));
+  /* 1 - subset */
+  if (gst_value_is_subset_int_range_int_range (src1, src2)) {
+    if (dest)
+      gst_value_init_and_copy (dest, src2);
+    return TRUE;
+  }
+  if (gst_value_is_subset_int_range_int_range (src2, src1)) {
+    if (dest)
+      gst_value_init_and_copy (dest, src1);
     return TRUE;
   }
 
+  /* 2 - same step and not disjoint */
+  if (INT_RANGE_STEP (src1) == INT_RANGE_STEP (src2)) {
+    if ((INT_RANGE_MIN (src1) <= INT_RANGE_MAX (src2) + 1 &&
+            INT_RANGE_MAX (src1) >= INT_RANGE_MIN (src2) - 1) ||
+        (INT_RANGE_MIN (src2) <= INT_RANGE_MAX (src1) + 1 &&
+            INT_RANGE_MAX (src2) >= INT_RANGE_MIN (src1) - 1)) {
+      if (dest) {
+        gint step = INT_RANGE_STEP (src1);
+        gint min = step * MIN (INT_RANGE_MIN (src1), INT_RANGE_MIN (src2));
+        gint max = step * MAX (INT_RANGE_MAX (src1), INT_RANGE_MAX (src2));
+        g_value_init (dest, GST_TYPE_INT_RANGE);
+        gst_value_set_int_range_step (dest, min, max, step);
+      }
+      return TRUE;
+    }
+  }
+
+  /* 3 - single value matches next or previous */
+  if (INT_RANGE_STEP (src1) != INT_RANGE_STEP (src2)) {
+    gint n1 = INT_RANGE_MAX (src1) - INT_RANGE_MIN (src1) + 1;
+    gint n2 = INT_RANGE_MAX (src2) - INT_RANGE_MIN (src2) + 1;
+    if (n1 == 1 || n2 == 1) {
+      const GValue *range_value = NULL;
+      gint scalar = 0;
+      if (n1 == 1) {
+        range_value = src2;
+        scalar = INT_RANGE_MIN (src1) * INT_RANGE_STEP (src1);
+      } else if (n2 == 1) {
+        range_value = src1;
+        scalar = INT_RANGE_MIN (src2) * INT_RANGE_STEP (src2);
+      }
+
+      if (scalar ==
+          (INT_RANGE_MIN (range_value) - 1) * INT_RANGE_STEP (range_value)) {
+        if (dest) {
+          gst_value_init_and_copy (dest, range_value);
+          --INT_RANGE_MIN (range_value);
+        }
+        return TRUE;
+      } else if (scalar ==
+          (INT_RANGE_MAX (range_value) + 1) * INT_RANGE_STEP (range_value)) {
+        if (dest) {
+          gst_value_init_and_copy (dest, range_value);
+          ++INT_RANGE_MIN (range_value);
+        }
+        return TRUE;
+      }
+    }
+  }
+
+  /* If we get there, we did not find a way to make a union that can be
+     represented with our simplistic model. */
   return FALSE;
 }
 
@@ -2472,9 +3036,11 @@
 gst_value_intersect_int_int_range (GValue * dest, const GValue * src1,
     const GValue * src2)
 {
-  if (src2->data[0].v_int <= src1->data[0].v_int &&
-      src2->data[1].v_int >= src1->data[0].v_int) {
-    gst_value_init_and_copy (dest, src1);
+  if (INT_RANGE_MIN (src2) * INT_RANGE_STEP (src2) <= src1->data[0].v_int &&
+      INT_RANGE_MAX (src2) * INT_RANGE_STEP (src2) >= src1->data[0].v_int &&
+      src1->data[0].v_int % INT_RANGE_STEP (src2) == 0) {
+    if (dest)
+      gst_value_init_and_copy (dest, src1);
     return TRUE;
   }
 
@@ -2487,18 +3053,37 @@
 {
   gint min;
   gint max;
+  gint step;
 
-  min = MAX (src1->data[0].v_int, src2->data[0].v_int);
-  max = MIN (src1->data[1].v_int, src2->data[1].v_int);
+  step =
+      INT_RANGE_STEP (src1) /
+      gst_util_greatest_common_divisor (INT_RANGE_STEP (src1),
+      INT_RANGE_STEP (src2));
+  if (G_MAXINT32 / INT_RANGE_STEP (src2) < step)
+    return FALSE;
+  step *= INT_RANGE_STEP (src2);
+
+  min =
+      MAX (INT_RANGE_MIN (src1) * INT_RANGE_STEP (src1),
+      INT_RANGE_MIN (src2) * INT_RANGE_STEP (src2));
+  min = (min + step - 1) / step * step;
+  max =
+      MIN (INT_RANGE_MAX (src1) * INT_RANGE_STEP (src1),
+      INT_RANGE_MAX (src2) * INT_RANGE_STEP (src2));
+  max = max / step * step;
 
   if (min < max) {
-    g_value_init (dest, GST_TYPE_INT_RANGE);
-    gst_value_set_int_range (dest, min, max);
+    if (dest) {
+      g_value_init (dest, GST_TYPE_INT_RANGE);
+      gst_value_set_int_range_step (dest, min, max, step);
+    }
     return TRUE;
   }
   if (min == max) {
-    g_value_init (dest, G_TYPE_INT);
-    g_value_set_int (dest, min);
+    if (dest) {
+      g_value_init (dest, G_TYPE_INT);
+      g_value_set_int (dest, min);
+    }
     return TRUE;
   }
 
@@ -2509,9 +3094,11 @@
 gst_value_intersect_int64_int64_range (GValue * dest, const GValue * src1,
     const GValue * src2)
 {
-  if (src2->data[0].v_int64 <= src1->data[0].v_int64 &&
-      src2->data[1].v_int64 >= src1->data[0].v_int64) {
-    gst_value_init_and_copy (dest, src1);
+  if (INT64_RANGE_MIN (src2) * INT64_RANGE_STEP (src2) <= src1->data[0].v_int &&
+      INT64_RANGE_MAX (src2) * INT64_RANGE_STEP (src2) >= src1->data[0].v_int &&
+      src1->data[0].v_int % INT64_RANGE_STEP (src2) == 0) {
+    if (dest)
+      gst_value_init_and_copy (dest, src1);
     return TRUE;
   }
 
@@ -2524,18 +3111,37 @@
 {
   gint64 min;
   gint64 max;
+  gint64 step;
 
-  min = MAX (src1->data[0].v_int64, src2->data[0].v_int64);
-  max = MIN (src1->data[1].v_int64, src2->data[1].v_int64);
+  step =
+      INT64_RANGE_STEP (src1) /
+      gst_util_greatest_common_divisor_int64 (INT64_RANGE_STEP (src1),
+      INT64_RANGE_STEP (src2));
+  if (G_MAXINT64 / INT64_RANGE_STEP (src2) < step)
+    return FALSE;
+  step *= INT64_RANGE_STEP (src2);
+
+  min =
+      MAX (INT64_RANGE_MIN (src1) * INT64_RANGE_STEP (src1),
+      INT64_RANGE_MIN (src2) * INT64_RANGE_STEP (src2));
+  min = (min + step - 1) / step * step;
+  max =
+      MIN (INT64_RANGE_MAX (src1) * INT64_RANGE_STEP (src1),
+      INT64_RANGE_MAX (src2) * INT64_RANGE_STEP (src2));
+  max = max / step * step;
 
   if (min < max) {
-    g_value_init (dest, GST_TYPE_INT64_RANGE);
-    gst_value_set_int64_range (dest, min, max);
+    if (dest) {
+      g_value_init (dest, GST_TYPE_INT64_RANGE);
+      gst_value_set_int64_range_step (dest, min, max, step);
+    }
     return TRUE;
   }
   if (min == max) {
-    g_value_init (dest, G_TYPE_INT64);
-    g_value_set_int64 (dest, min);
+    if (dest) {
+      g_value_init (dest, G_TYPE_INT64);
+      g_value_set_int64 (dest, min);
+    }
     return TRUE;
   }
 
@@ -2548,7 +3154,8 @@
 {
   if (src2->data[0].v_double <= src1->data[0].v_double &&
       src2->data[1].v_double >= src1->data[0].v_double) {
-    gst_value_init_and_copy (dest, src1);
+    if (dest)
+      gst_value_init_and_copy (dest, src1);
     return TRUE;
   }
 
@@ -2566,13 +3173,17 @@
   max = MIN (src1->data[1].v_double, src2->data[1].v_double);
 
   if (min < max) {
-    g_value_init (dest, GST_TYPE_DOUBLE_RANGE);
-    gst_value_set_double_range (dest, min, max);
+    if (dest) {
+      g_value_init (dest, GST_TYPE_DOUBLE_RANGE);
+      gst_value_set_double_range (dest, min, max);
+    }
     return TRUE;
   }
   if (min == max) {
-    g_value_init (dest, G_TYPE_DOUBLE);
-    g_value_set_int (dest, (int) min);
+    if (dest) {
+      g_value_init (dest, G_TYPE_DOUBLE);
+      g_value_set_int (dest, (int) min);
+    }
     return TRUE;
   }
 
@@ -2591,6 +3202,15 @@
   for (i = 0; i < size; i++) {
     const GValue *cur = VALUE_LIST_GET_VALUE (value1, i);
 
+    /* quicker version when we don't need the resulting set */
+    if (!dest) {
+      if (gst_value_intersect (NULL, cur, value2)) {
+        ret = TRUE;
+        break;
+      }
+      continue;
+    }
+
     if (gst_value_intersect (&intersection, cur, value2)) {
       /* append value */
       if (!ret) {
@@ -2625,6 +3245,18 @@
   size = gst_value_array_get_size (src1);
   if (size != gst_value_array_get_size (src2))
     return FALSE;
+
+  /* quicker value when we don't need the resulting set */
+  if (!dest) {
+    for (n = 0; n < size; n++) {
+      if (!gst_value_intersect (NULL, gst_value_array_get_value (src1, n),
+              gst_value_array_get_value (src2, n))) {
+        return FALSE;
+      }
+    }
+    return TRUE;
+  }
+
   g_value_init (dest, GST_TYPE_ARRAY);
 
   for (n = 0; n < size; n++) {
@@ -2659,7 +3291,8 @@
 
     if ((res1 == GST_VALUE_EQUAL || res1 == GST_VALUE_LESS_THAN) &&
         (res2 == GST_VALUE_EQUAL || res2 == GST_VALUE_GREATER_THAN)) {
-      gst_value_init_and_copy (dest, src1);
+      if (dest)
+        gst_value_init_and_copy (dest, src1);
       return TRUE;
     }
   }
@@ -2701,14 +3334,17 @@
     res = gst_value_compare_with_func (min, max, compare);
     g_return_val_if_fail (res != GST_VALUE_UNORDERED, FALSE);
     if (res == GST_VALUE_LESS_THAN) {
-      g_value_init (dest, GST_TYPE_FRACTION_RANGE);
-      vals1 = dest->data[0].v_pointer;
-      g_value_copy (min, &vals1[0]);
-      g_value_copy (max, &vals1[1]);
+      if (dest) {
+        g_value_init (dest, GST_TYPE_FRACTION_RANGE);
+        vals1 = dest->data[0].v_pointer;
+        g_value_copy (min, &vals1[0]);
+        g_value_copy (max, &vals1[1]);
+      }
       return TRUE;
     }
     if (res == GST_VALUE_EQUAL) {
-      gst_value_init_and_copy (dest, min);
+      if (dest)
+        gst_value_init_and_copy (dest, min);
       return TRUE;
     }
   }
@@ -2726,13 +3362,15 @@
 {
   gint min = gst_value_get_int_range_min (subtrahend);
   gint max = gst_value_get_int_range_max (subtrahend);
+  gint step = gst_value_get_int_range_step (subtrahend);
   gint val = g_value_get_int (minuend);
 
   /* subtracting a range from an int only works if the int is not in the
    * range */
-  if (val < min || val > max) {
+  if (val < min || val > max || val % step) {
     /* and the result is the int */
-    gst_value_init_and_copy (dest, minuend);
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   }
   return FALSE;
@@ -2742,12 +3380,18 @@
  */
 static gboolean
 gst_value_create_new_range (GValue * dest, gint min1, gint max1, gint min2,
-    gint max2)
+    gint max2, gint step)
 {
   GValue v1 = { 0, };
   GValue v2 = { 0, };
   GValue *pv1, *pv2;            /* yeah, hungarian! */
 
+  g_return_val_if_fail (step > 0, FALSE);
+  g_return_val_if_fail (min1 % step == 0, FALSE);
+  g_return_val_if_fail (max1 % step == 0, FALSE);
+  g_return_val_if_fail (min2 % step == 0, FALSE);
+  g_return_val_if_fail (max2 % step == 0, FALSE);
+
   if (min1 <= max1 && min2 <= max2) {
     pv1 = &v1;
     pv2 = &v2;
@@ -2761,16 +3405,19 @@
     return FALSE;
   }
 
+  if (!dest)
+    return TRUE;
+
   if (min1 < max1) {
     g_value_init (pv1, GST_TYPE_INT_RANGE);
-    gst_value_set_int_range (pv1, min1, max1);
+    gst_value_set_int_range_step (pv1, min1, max1, step);
   } else if (min1 == max1) {
     g_value_init (pv1, G_TYPE_INT);
     g_value_set_int (pv1, min1);
   }
   if (min2 < max2) {
     g_value_init (pv2, GST_TYPE_INT_RANGE);
-    gst_value_set_int_range (pv2, min2, max2);
+    gst_value_set_int_range_step (pv2, min2, max2, step);
   } else if (min2 == max2) {
     g_value_init (pv2, G_TYPE_INT);
     g_value_set_int (pv2, min2);
@@ -2790,26 +3437,29 @@
 {
   gint min = gst_value_get_int_range_min (minuend);
   gint max = gst_value_get_int_range_max (minuend);
+  gint step = gst_value_get_int_range_step (minuend);
   gint val = g_value_get_int (subtrahend);
 
   g_return_val_if_fail (min < max, FALSE);
 
   /* value is outside of the range, return range unchanged */
-  if (val < min || val > max) {
-    gst_value_init_and_copy (dest, minuend);
+  if (val < min || val > max || val % step) {
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   } else {
     /* max must be MAXINT too as val <= max */
-    if (val == G_MAXINT) {
-      max--;
-      val--;
+    if (val >= G_MAXINT - step + 1) {
+      max -= step;
+      val -= step;
     }
     /* min must be MININT too as val >= max */
-    if (val == G_MININT) {
-      min++;
-      val++;
+    if (val <= G_MININT + step - 1) {
+      min += step;
+      val += step;
     }
-    gst_value_create_new_range (dest, min, val - 1, val + 1, max);
+    if (dest)
+      gst_value_create_new_range (dest, min, val - step, val + step, max, step);
   }
   return TRUE;
 }
@@ -2820,18 +3470,30 @@
 {
   gint min1 = gst_value_get_int_range_min (minuend);
   gint max1 = gst_value_get_int_range_max (minuend);
+  gint step1 = gst_value_get_int_range_step (minuend);
   gint min2 = gst_value_get_int_range_min (subtrahend);
   gint max2 = gst_value_get_int_range_max (subtrahend);
+  gint step2 = gst_value_get_int_range_step (subtrahend);
+  gint step;
 
-  if (max2 == G_MAXINT && min2 == G_MININT) {
+  if (step1 != step2) {
+    /* ENOIMPL */
+    g_assert (FALSE);
     return FALSE;
-  } else if (max2 == G_MAXINT) {
-    return gst_value_create_new_range (dest, min1, MIN (min2 - 1, max1), 1, 0);
-  } else if (min2 == G_MININT) {
-    return gst_value_create_new_range (dest, MAX (max2 + 1, min1), max1, 1, 0);
+  }
+  step = step1;
+
+  if (max2 >= max1 && min2 <= min1) {
+    return FALSE;
+  } else if (max2 >= max1) {
+    return gst_value_create_new_range (dest, min1, MIN (min2 - step, max1),
+        step, 0, step);
+  } else if (min2 <= min1) {
+    return gst_value_create_new_range (dest, MAX (max2 + step, min1), max1,
+        step, 0, step);
   } else {
-    return gst_value_create_new_range (dest, min1, MIN (min2 - 1, max1),
-        MAX (max2 + 1, min1), max1);
+    return gst_value_create_new_range (dest, min1, MIN (min2 - step, max1),
+        MAX (max2 + step, min1), max1, step);
   }
 }
 
@@ -2841,13 +3503,15 @@
 {
   gint64 min = gst_value_get_int64_range_min (subtrahend);
   gint64 max = gst_value_get_int64_range_max (subtrahend);
+  gint64 step = gst_value_get_int64_range_step (subtrahend);
   gint64 val = g_value_get_int64 (minuend);
 
   /* subtracting a range from an int64 only works if the int64 is not in the
    * range */
-  if (val < min || val > max) {
+  if (val < min || val > max || val % step) {
     /* and the result is the int64 */
-    gst_value_init_and_copy (dest, minuend);
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   }
   return FALSE;
@@ -2857,12 +3521,18 @@
  */
 static gboolean
 gst_value_create_new_int64_range (GValue * dest, gint64 min1, gint64 max1,
-    gint64 min2, gint64 max2)
+    gint64 min2, gint64 max2, gint64 step)
 {
   GValue v1 = { 0, };
   GValue v2 = { 0, };
   GValue *pv1, *pv2;            /* yeah, hungarian! */
 
+  g_return_val_if_fail (step > 0, FALSE);
+  g_return_val_if_fail (min1 % step == 0, FALSE);
+  g_return_val_if_fail (max1 % step == 0, FALSE);
+  g_return_val_if_fail (min2 % step == 0, FALSE);
+  g_return_val_if_fail (max2 % step == 0, FALSE);
+
   if (min1 <= max1 && min2 <= max2) {
     pv1 = &v1;
     pv2 = &v2;
@@ -2876,16 +3546,19 @@
     return FALSE;
   }
 
+  if (!dest)
+    return TRUE;
+
   if (min1 < max1) {
     g_value_init (pv1, GST_TYPE_INT64_RANGE);
-    gst_value_set_int64_range (pv1, min1, max1);
+    gst_value_set_int64_range_step (pv1, min1, max1, step);
   } else if (min1 == max1) {
     g_value_init (pv1, G_TYPE_INT64);
     g_value_set_int64 (pv1, min1);
   }
   if (min2 < max2) {
     g_value_init (pv2, GST_TYPE_INT64_RANGE);
-    gst_value_set_int64_range (pv2, min2, max2);
+    gst_value_set_int64_range_step (pv2, min2, max2, step);
   } else if (min2 == max2) {
     g_value_init (pv2, G_TYPE_INT64);
     g_value_set_int64 (pv2, min2);
@@ -2905,26 +3578,30 @@
 {
   gint64 min = gst_value_get_int64_range_min (minuend);
   gint64 max = gst_value_get_int64_range_max (minuend);
+  gint64 step = gst_value_get_int64_range_step (minuend);
   gint64 val = g_value_get_int64 (subtrahend);
 
   g_return_val_if_fail (min < max, FALSE);
 
   /* value is outside of the range, return range unchanged */
-  if (val < min || val > max) {
-    gst_value_init_and_copy (dest, minuend);
+  if (val < min || val > max || val % step) {
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   } else {
     /* max must be MAXINT64 too as val <= max */
-    if (val == G_MAXINT64) {
-      max--;
-      val--;
+    if (val >= G_MAXINT64 - step + 1) {
+      max -= step;
+      val -= step;
     }
     /* min must be MININT64 too as val >= max */
-    if (val == G_MININT64) {
-      min++;
-      val++;
+    if (val <= G_MININT64 + step - 1) {
+      min += step;
+      val += step;
     }
-    gst_value_create_new_int64_range (dest, min, val - 1, val + 1, max);
+    if (dest)
+      gst_value_create_new_int64_range (dest, min, val - step, val + step, max,
+          step);
   }
   return TRUE;
 }
@@ -2935,20 +3612,30 @@
 {
   gint64 min1 = gst_value_get_int64_range_min (minuend);
   gint64 max1 = gst_value_get_int64_range_max (minuend);
+  gint64 step1 = gst_value_get_int64_range_step (minuend);
   gint64 min2 = gst_value_get_int64_range_min (subtrahend);
   gint64 max2 = gst_value_get_int64_range_max (subtrahend);
+  gint64 step2 = gst_value_get_int64_range_step (subtrahend);
+  gint64 step;
 
-  if (max2 == G_MAXINT64 && min2 == G_MININT64) {
+  if (step1 != step2) {
+    /* ENOIMPL */
+    g_assert (FALSE);
     return FALSE;
-  } else if (max2 == G_MAXINT64) {
-    return gst_value_create_new_int64_range (dest, min1, MIN (min2 - 1, max1),
-        1, 0);
-  } else if (min2 == G_MININT64) {
-    return gst_value_create_new_int64_range (dest, MAX (max2 + 1, min1), max1,
-        1, 0);
+  }
+  step = step1;
+
+  if (max2 >= max1 && min2 <= min1) {
+    return FALSE;
+  } else if (max2 >= max1) {
+    return gst_value_create_new_int64_range (dest, min1, MIN (min2 - step,
+            max1), step, 0, step);
+  } else if (min2 <= min1) {
+    return gst_value_create_new_int64_range (dest, MAX (max2 + step, min1),
+        max1, step, 0, step);
   } else {
-    return gst_value_create_new_int64_range (dest, min1, MIN (min2 - 1, max1),
-        MAX (max2 + 1, min1), max1);
+    return gst_value_create_new_int64_range (dest, min1, MIN (min2 - step,
+            max1), MAX (max2 + step, min1), max1, step);
   }
 }
 
@@ -2961,7 +3648,8 @@
   gdouble val = g_value_get_double (minuend);
 
   if (val < min || val > max) {
-    gst_value_init_and_copy (dest, minuend);
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   }
   return FALSE;
@@ -2973,7 +3661,8 @@
 {
   /* since we don't have open ranges, we cannot create a hole in
    * a double range. We return the original range */
-  gst_value_init_and_copy (dest, minuend);
+  if (dest)
+    gst_value_init_and_copy (dest, minuend);
   return TRUE;
 }
 
@@ -3004,6 +3693,9 @@
     return FALSE;
   }
 
+  if (!dest)
+    return TRUE;
+
   if (min1 < max1) {
     g_value_init (pv1, GST_TYPE_DOUBLE_RANGE);
     gst_value_set_double_range (pv1, min1, max1);
@@ -3036,6 +3728,15 @@
   for (i = 0; i < size; i++) {
     const GValue *cur = VALUE_LIST_GET_VALUE (minuend, i);
 
+    /* quicker version when we can discard the result */
+    if (!dest) {
+      if (gst_value_subtract (NULL, cur, subtrahend)) {
+        ret = TRUE;
+        break;
+      }
+      continue;
+    }
+
     if (gst_value_subtract (&subtraction, cur, subtrahend)) {
       if (!ret) {
         gst_value_init_and_copy (dest, &subtraction);
@@ -3081,7 +3782,8 @@
       return FALSE;
     }
   }
-  gst_value_init_and_copy (dest, result);
+  if (dest)
+    gst_value_init_and_copy (dest, result);
   g_value_unset (result);
   return TRUE;
 }
@@ -3102,7 +3804,8 @@
         gst_value_compare_with_func (minuend, max, compare) ==
         GST_VALUE_GREATER_THAN) {
       /* and the result is the value */
-      gst_value_init_and_copy (dest, minuend);
+      if (dest)
+        gst_value_init_and_copy (dest, minuend);
       return TRUE;
     }
   }
@@ -3115,7 +3818,8 @@
 {
   /* since we don't have open ranges, we cannot create a hole in
    * a range. We return the original range */
-  gst_value_init_and_copy (dest, minuend);
+  if (dest)
+    gst_value_init_and_copy (dest, minuend);
   return TRUE;
 }
 
@@ -3166,6 +3870,9 @@
     return FALSE;
   }
 
+  if (!dest)
+    return TRUE;
+
   if (cmp1 == GST_VALUE_LESS_THAN) {
     g_value_init (pv1, GST_TYPE_FRACTION_RANGE);
     gst_value_set_fraction_range (pv1, min1, max1);
@@ -3249,6 +3956,61 @@
   return gst_value_get_compare_func (value1) != NULL;
 }
 
+static gboolean
+gst_value_list_equals_range (const GValue * list, const GValue * value)
+{
+  const GValue *first;
+  guint list_size, n;
+
+  g_return_val_if_fail (G_IS_VALUE (list), FALSE);
+  g_return_val_if_fail (G_IS_VALUE (value), FALSE);
+  g_return_val_if_fail (GST_VALUE_HOLDS_LIST (list), FALSE);
+
+  /* TODO: compare against an empty list ? No type though... */
+  list_size = VALUE_LIST_SIZE (list);
+  if (list_size == 0)
+    return FALSE;
+
+  /* compare the basic types - they have to match */
+  first = VALUE_LIST_GET_VALUE (list, 0);
+#define CHECK_TYPES(type,prefix) \
+  (prefix##_VALUE_HOLDS_##type(first) && GST_VALUE_HOLDS_##type##_RANGE (value))
+  if (CHECK_TYPES (INT, G)) {
+    const gint rmin = gst_value_get_int_range_min (value);
+    const gint rmax = gst_value_get_int_range_max (value);
+    const gint rstep = gst_value_get_int_range_step (value);
+    /* note: this will overflow for min 0 and max INT_MAX, but this
+       would only be equal to a list of INT_MAX elements, which seems
+       very unlikely */
+    if (list_size != rmax / rstep - rmin / rstep + 1)
+      return FALSE;
+    for (n = 0; n < list_size; ++n) {
+      gint v = g_value_get_int (VALUE_LIST_GET_VALUE (list, n));
+      if (v < rmin || v > rmax || v % rstep) {
+        return FALSE;
+      }
+    }
+    return TRUE;
+  } else if (CHECK_TYPES (INT64, G)) {
+    const gint64 rmin = gst_value_get_int64_range_min (value);
+    const gint64 rmax = gst_value_get_int64_range_max (value);
+    const gint64 rstep = gst_value_get_int64_range_step (value);
+    GST_DEBUG ("List/range of int64s");
+    if (list_size != rmax / rstep - rmin / rstep + 1)
+      return FALSE;
+    for (n = 0; n < list_size; ++n) {
+      gint64 v = g_value_get_int64 (VALUE_LIST_GET_VALUE (list, n));
+      if (v < rmin || v > rmax || v % rstep)
+        return FALSE;
+    }
+    return TRUE;
+  }
+#undef CHECK_TYPES
+
+  /* other combinations don't make sense for equality */
+  return FALSE;
+}
+
 /**
  * gst_value_compare:
  * @value1: a value to compare
@@ -3271,21 +4033,28 @@
   g_return_val_if_fail (G_IS_VALUE (value1), GST_VALUE_LESS_THAN);
   g_return_val_if_fail (G_IS_VALUE (value2), GST_VALUE_GREATER_THAN);
 
-  /* Special case: lists and scalar values 
-   * "{ 1 }" and "1" are equal */
+  /* Special cases: lists and scalar values ("{ 1 }" and "1" are equal),
+     as well as lists and ranges ("{ 1, 2 }" and "[ 1, 2 ]" are equal) */
   ltype = gst_value_list_get_type ();
-  if (G_VALUE_HOLDS (value1, ltype) && !G_VALUE_HOLDS (value2, ltype)
-      && gst_value_list_get_size (value1) == 1) {
-    const GValue *elt;
+  if (G_VALUE_HOLDS (value1, ltype) && !G_VALUE_HOLDS (value2, ltype)) {
 
-    elt = gst_value_list_get_value (value1, 0);
-    return gst_value_compare (elt, value2);
-  } else if (G_VALUE_HOLDS (value2, ltype) && !G_VALUE_HOLDS (value1, ltype)
-      && gst_value_list_get_size (value2) == 1) {
-    const GValue *elt;
+    if (gst_value_list_equals_range (value1, value2)) {
+      return GST_VALUE_EQUAL;
+    } else if (gst_value_list_get_size (value1) == 1) {
+      const GValue *elt;
 
-    elt = gst_value_list_get_value (value2, 0);
-    return gst_value_compare (elt, value1);
+      elt = gst_value_list_get_value (value1, 0);
+      return gst_value_compare (elt, value2);
+    }
+  } else if (G_VALUE_HOLDS (value2, ltype) && !G_VALUE_HOLDS (value1, ltype)) {
+    if (gst_value_list_equals_range (value2, value1)) {
+      return GST_VALUE_EQUAL;
+    } else if (gst_value_list_get_size (value2) == 1) {
+      const GValue *elt;
+
+      elt = gst_value_list_get_value (value2, 0);
+      return gst_value_compare (elt, value1);
+    }
   }
 
   if (G_VALUE_TYPE (value1) != G_VALUE_TYPE (value2))
@@ -3375,34 +4144,32 @@
  *
  * Creates a GValue corresponding to the union of @value1 and @value2.
  *
- * Returns: always returns %TRUE
+ * Returns: TRUE if the union suceeded.
  */
-/* FIXME: change return type to 'void'? */
 gboolean
 gst_value_union (GValue * dest, const GValue * value1, const GValue * value2)
 {
-  GstValueUnionInfo *union_info;
+  const GstValueUnionInfo *union_info;
   guint i, len;
+  GType type1, type2;
 
   g_return_val_if_fail (dest != NULL, FALSE);
   g_return_val_if_fail (G_IS_VALUE (value1), FALSE);
   g_return_val_if_fail (G_IS_VALUE (value2), FALSE);
+  g_return_val_if_fail (gst_value_list_or_array_are_compatible (value1, value2),
+      FALSE);
 
   len = gst_value_union_funcs->len;
+  type1 = G_VALUE_TYPE (value1);
+  type2 = G_VALUE_TYPE (value2);
 
   for (i = 0; i < len; i++) {
     union_info = &g_array_index (gst_value_union_funcs, GstValueUnionInfo, i);
-    if (union_info->type1 == G_VALUE_TYPE (value1) &&
-        union_info->type2 == G_VALUE_TYPE (value2)) {
-      if (union_info->func (dest, value1, value2)) {
-        return TRUE;
-      }
+    if (union_info->type1 == type1 && union_info->type2 == type2) {
+      return union_info->func (dest, value1, value2);
     }
-    if (union_info->type1 == G_VALUE_TYPE (value2) &&
-        union_info->type2 == G_VALUE_TYPE (value1)) {
-      if (union_info->func (dest, value2, value1)) {
-        return TRUE;
-      }
+    if (union_info->type1 == type2 && union_info->type2 == type1) {
+      return union_info->func (dest, value2, value1);
     }
   }
 
@@ -3410,8 +4177,7 @@
   return TRUE;
 }
 
-/**
- * gst_value_register_union_func:
+/* gst_value_register_union_func: (skip)
  * @type1: a type to union
  * @type2: another type to union
  * @func: a function that implements creating a union between the two types
@@ -3423,7 +4189,7 @@
  * started, as gst_value_register_union_func() is not thread-safe and cannot
  * be used at the same time as gst_value_union() or gst_value_can_union().
  */
-void
+static void
 gst_value_register_union_func (GType type1, GType type2, GstValueUnionFunc func)
 {
   GstValueUnionInfo union_info;
@@ -3488,15 +4254,15 @@
 
 /**
  * gst_value_intersect:
- * @dest: (out caller-allocates): a uninitialized #GValue that will hold the calculated
- * intersection value
+ * @dest: (out caller-allocates) (transfer full): a uninitialized #GValue that will hold the calculated
+ * intersection value. May be NULL if the resulting set if not needed.
  * @value1: a value to intersect
  * @value2: another value to intersect
  *
  * Calculates the intersection of two values.  If the values have
  * a non-empty intersection, the value representing the intersection
- * is placed in @dest.  If the intersection is non-empty, @dest is
- * not modified.
+ * is placed in @dest, unless NULL.  If the intersection is non-empty,
+ * @dest is not modified.
  *
  * Returns: TRUE if the intersection is non-empty
  */
@@ -3508,7 +4274,6 @@
   guint i, len;
   GType ltype, type1, type2;
 
-  g_return_val_if_fail (dest != NULL, FALSE);
   g_return_val_if_fail (G_IS_VALUE (value1), FALSE);
   g_return_val_if_fail (G_IS_VALUE (value2), FALSE);
 
@@ -3521,7 +4286,8 @@
     return gst_value_intersect_list (dest, value2, value1);
 
   if (gst_value_compare (value1, value2) == GST_VALUE_EQUAL) {
-    gst_value_init_and_copy (dest, value1);
+    if (dest)
+      gst_value_init_and_copy (dest, value1);
     return TRUE;
   }
 
@@ -3542,8 +4308,9 @@
   return FALSE;
 }
 
-/**
- * gst_value_register_intersect_func:
+
+
+/* gst_value_register_intersect_func: (skip)
  * @type1: the first type to intersect
  * @type2: the second type to intersect
  * @func: the intersection function
@@ -3556,7 +4323,7 @@
  * cannot be used at the same time as gst_value_intersect() or
  * gst_value_can_intersect().
  */
-void
+static void
 gst_value_register_intersect_func (GType type1, GType type2,
     GstValueIntersectFunc func)
 {
@@ -3575,7 +4342,8 @@
 /**
  * gst_value_subtract:
  * @dest: (out caller-allocates): the destination value for the result if the
- *     subtraction is not empty
+ *     subtraction is not empty. May be NULL, in which case the resulting set
+ *     will not be computed, which can give a fair speedup.
  * @minuend: the value to subtract from
  * @subtrahend: the value to subtract
  *
@@ -3592,7 +4360,6 @@
   guint i, len;
   GType ltype, mtype, stype;
 
-  g_return_val_if_fail (dest != NULL, FALSE);
   g_return_val_if_fail (G_IS_VALUE (minuend), FALSE);
   g_return_val_if_fail (G_IS_VALUE (subtrahend), FALSE);
 
@@ -3616,7 +4383,8 @@
   }
 
   if (gst_value_compare (minuend, subtrahend) != GST_VALUE_EQUAL) {
-    gst_value_init_and_copy (dest, minuend);
+    if (dest)
+      gst_value_init_and_copy (dest, minuend);
     return TRUE;
   }
 
@@ -3675,8 +4443,7 @@
   return gst_value_can_compare (minuend, subtrahend);
 }
 
-/**
- * gst_value_register_subtract_func:
+/* gst_value_register_subtract_func: (skip)
  * @minuend_type: type of the minuend
  * @subtrahend_type: type of the subtrahend
  * @func: function to use
@@ -3688,15 +4455,17 @@
  * started, as gst_value_register_subtract_func() is not thread-safe and
  * cannot be used at the same time as gst_value_subtract().
  */
-void
+static void
 gst_value_register_subtract_func (GType minuend_type, GType subtrahend_type,
     GstValueSubtractFunc func)
 {
   GstValueSubtractInfo info;
 
-  /* one type must be unfixed, other subtractions can be done as comparisons */
-  g_return_if_fail (!gst_type_is_fixed (minuend_type)
-      || !gst_type_is_fixed (subtrahend_type));
+  /* one type must be unfixed, other subtractions can be done as comparisons,
+   * special case: bitmasks */
+  if (minuend_type != GST_TYPE_BITMASK)
+    g_return_if_fail (!gst_type_is_fixed (minuend_type)
+        || !gst_type_is_fixed (subtrahend_type));
 
   info.minuend = minuend_type;
   info.subtrahend = subtrahend_type;
@@ -4308,52 +5077,6 @@
  * GDate *
  *********/
 
-/**
- * gst_value_set_date:
- * @value: a GValue initialized to GST_TYPE_DATE
- * @date: the date to set the value to
- *
- * Sets the contents of @value to correspond to @date.  The actual
- * #GDate structure is copied before it is used.
- */
-void
-gst_value_set_date (GValue * value, const GDate * date)
-{
-  g_return_if_fail (G_VALUE_TYPE (value) == GST_TYPE_DATE);
-  g_return_if_fail (g_date_valid (date));
-
-  g_value_set_boxed (value, date);
-}
-
-/**
- * gst_value_get_date:
- * @value: a GValue initialized to GST_TYPE_DATE
- *
- * Gets the contents of @value.
- *
- * Returns: (transfer none): the contents of @value
- */
-const GDate *
-gst_value_get_date (const GValue * value)
-{
-  g_return_val_if_fail (G_VALUE_TYPE (value) == GST_TYPE_DATE, NULL);
-
-  return (const GDate *) g_value_get_boxed (value);
-}
-
-static gpointer
-gst_date_copy (gpointer boxed)
-{
-  const GDate *date = (const GDate *) boxed;
-
-  if (!g_date_valid (date)) {
-    GST_WARNING ("invalid GDate");
-    return NULL;
-  }
-
-  return g_date_new_julian (g_date_get_julian (date));
-}
-
 static gint
 gst_value_compare_date (const GValue * value1, const GValue * value2)
 {
@@ -4510,6 +5233,209 @@
   gst_value_deserialize_date (dest_value, src_value->data[0].v_pointer);
 }
 
+
+/************
+ * bitmask *
+ ************/
+
+/* helper functions */
+static void
+gst_value_init_bitmask (GValue * value)
+{
+  value->data[0].v_uint64 = 0;
+}
+
+static void
+gst_value_copy_bitmask (const GValue * src_value, GValue * dest_value)
+{
+  dest_value->data[0].v_uint64 = src_value->data[0].v_uint64;
+}
+
+static gchar *
+gst_value_collect_bitmask (GValue * value, guint n_collect_values,
+    GTypeCValue * collect_values, guint collect_flags)
+{
+  if (n_collect_values != 1)
+    return g_strdup_printf ("not enough value locations for `%s' passed",
+        G_VALUE_TYPE_NAME (value));
+
+  gst_value_set_bitmask (value, (guint64) collect_values[0].v_int64);
+
+  return NULL;
+}
+
+static gchar *
+gst_value_lcopy_bitmask (const GValue * value, guint n_collect_values,
+    GTypeCValue * collect_values, guint collect_flags)
+{
+  guint64 *bitmask = collect_values[0].v_pointer;
+
+  if (!bitmask)
+    return g_strdup_printf ("value for `%s' passed as NULL",
+        G_VALUE_TYPE_NAME (value));
+
+  *bitmask = value->data[0].v_uint64;
+
+  return NULL;
+}
+
+/**
+ * gst_value_set_bitmask:
+ * @value: a GValue initialized to #GST_TYPE_FRACTION
+ * @bitmask: the bitmask
+ *
+ * Sets @value to the bitmask specified by @bitmask.
+ */
+void
+gst_value_set_bitmask (GValue * value, guint64 bitmask)
+{
+  g_return_if_fail (GST_VALUE_HOLDS_BITMASK (value));
+
+  value->data[0].v_uint64 = bitmask;
+}
+
+/**
+ * gst_value_get_bitmask:
+ * @value: a GValue initialized to #GST_TYPE_FRACTION
+ *
+ * Gets the bitmask specified by @value.
+ *
+ * Returns: the bitmask.
+ */
+guint64
+gst_value_get_bitmask (const GValue * value)
+{
+  g_return_val_if_fail (GST_VALUE_HOLDS_BITMASK (value), 0);
+
+  return value->data[0].v_uint64;
+}
+
+static gchar *
+gst_value_serialize_bitmask (const GValue * value)
+{
+  guint64 bitmask = value->data[0].v_uint64;
+
+  return g_strdup_printf ("0x%016" G_GINT64_MODIFIER "x", bitmask);
+}
+
+static gboolean
+gst_value_deserialize_bitmask (GValue * dest, const gchar * s)
+{
+  gchar *endptr = NULL;
+  guint64 val;
+
+  if (G_UNLIKELY (s == NULL))
+    return FALSE;
+
+  if (G_UNLIKELY (dest == NULL || !GST_VALUE_HOLDS_BITMASK (dest)))
+    return FALSE;
+
+  val = g_ascii_strtoull (s, &endptr, 16);
+  if (val == G_MAXUINT64 && (errno == ERANGE || errno == EINVAL))
+    return FALSE;
+  if (val == 0 && endptr == s)
+    return FALSE;
+
+  gst_value_set_bitmask (dest, val);
+
+  return TRUE;
+}
+
+static void
+gst_value_transform_bitmask_string (const GValue * src_value,
+    GValue * dest_value)
+{
+  dest_value->data[0].v_pointer = gst_value_serialize_bitmask (src_value);
+}
+
+static void
+gst_value_transform_string_bitmask (const GValue * src_value,
+    GValue * dest_value)
+{
+  if (!gst_value_deserialize_bitmask (dest_value, src_value->data[0].v_pointer))
+    gst_value_set_bitmask (dest_value, 0);
+}
+
+static void
+gst_value_transform_uint64_bitmask (const GValue * src_value,
+    GValue * dest_value)
+{
+  dest_value->data[0].v_uint64 = src_value->data[0].v_uint64;
+}
+
+static void
+gst_value_transform_bitmask_uint64 (const GValue * src_value,
+    GValue * dest_value)
+{
+  dest_value->data[0].v_uint64 = src_value->data[0].v_uint64;
+}
+
+static gboolean
+gst_value_intersect_bitmask_bitmask (GValue * dest, const GValue * src1,
+    const GValue * src2)
+{
+  guint64 s1, s2;
+
+  s1 = gst_value_get_bitmask (src1);
+  s2 = gst_value_get_bitmask (src2);
+
+  if (dest) {
+    g_value_init (dest, GST_TYPE_BITMASK);
+    gst_value_set_bitmask (dest, s1 & s2);
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_value_union_bitmask_bitmask (GValue * dest, const GValue * src1,
+    const GValue * src2)
+{
+  guint64 s1, s2;
+
+  s1 = gst_value_get_bitmask (src1);
+  s2 = gst_value_get_bitmask (src2);
+
+  g_value_init (dest, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (dest, s1 | s2);
+
+  return TRUE;
+}
+
+static gboolean
+gst_value_subtract_bitmask_bitmask (GValue * dest,
+    const GValue * minuend, const GValue * subtrahend)
+{
+  guint64 m, s, r;
+
+  g_return_val_if_fail (GST_VALUE_HOLDS_BITMASK (minuend), FALSE);
+  g_return_val_if_fail (GST_VALUE_HOLDS_BITMASK (subtrahend), FALSE);
+
+  m = minuend->data[0].v_uint64;
+  s = subtrahend->data[0].v_uint64;
+  r = m & (~s);
+
+  if (dest) {
+    g_value_init (dest, GST_TYPE_BITMASK);
+    gst_value_set_bitmask (dest, r);
+  }
+  return (r != 0);
+}
+
+static gint
+gst_value_compare_bitmask (const GValue * value1, const GValue * value2)
+{
+  guint64 v1, v2;
+
+  v1 = value1->data[0].v_uint64;
+  v2 = value2->data[0].v_uint64;
+
+  if (v1 == v2)
+    return GST_VALUE_EQUAL;
+
+  return GST_VALUE_UNORDERED;
+}
+
 static void
 gst_value_transform_object_string (const GValue * src_value,
     GValue * dest_value)
@@ -4565,7 +5491,7 @@
 
 static const GTypeValueTable _gst_int_range_value_table = {
   gst_value_init_int_range,
-  NULL,
+  gst_value_free_int_range,
   gst_value_copy_int_range,
   NULL,
   (char *) "ii",
@@ -4578,7 +5504,7 @@
 
 static const GTypeValueTable _gst_int64_range_value_table = {
   gst_value_init_int64_range,
-  NULL,
+  gst_value_free_int64_range,
   gst_value_copy_int64_range,
   NULL,
   (char *) "qq",
@@ -4654,38 +5580,21 @@
 
 FUNC_VALUE_GET_TYPE (fraction, "GstFraction");
 
+G_DEFINE_BOXED_TYPE (GstDateTime, gst_date_time,
+    (GBoxedCopyFunc) gst_date_time_ref, (GBoxedFreeFunc) gst_date_time_unref);
 
-GType
-gst_date_get_type (void)
-{
-  static GType gst_date_type = 0;
+static const GTypeValueTable _gst_bitmask_value_table = {
+  gst_value_init_bitmask,
+  NULL,
+  gst_value_copy_bitmask,
+  NULL,
+  (char *) "q",
+  gst_value_collect_bitmask,
+  (char *) "p",
+  gst_value_lcopy_bitmask
+};
 
-  if (G_UNLIKELY (gst_date_type == 0)) {
-    /* FIXME 0.11: we require GLib 2.8 already
-     * Not using G_TYPE_DATE here on purpose, even if we could
-     * if GLIB_CHECK_VERSION(2,8,0) was true: we don't want the
-     * serialised strings to have different type strings depending
-     * on what version is used, so FIXME when we require GLib-2.8 */
-    gst_date_type = g_boxed_type_register_static ("GstDate",
-        (GBoxedCopyFunc) gst_date_copy, (GBoxedFreeFunc) g_date_free);
-  }
-
-  return gst_date_type;
-}
-
-GType
-gst_date_time_get_type (void)
-{
-  static GType gst_date_time_type = 0;
-
-  if (G_UNLIKELY (gst_date_time_type == 0)) {
-    gst_date_time_type = g_boxed_type_register_static ("GstDateTime",
-        (GBoxedCopyFunc) gst_date_time_ref,
-        (GBoxedFreeFunc) gst_date_time_unref);
-  }
-
-  return gst_date_time_type;
-}
+FUNC_VALUE_GET_TYPE (bitmask, "GstBitmask");
 
 
 void
@@ -4836,7 +5745,7 @@
       gst_value_deserialize_date,
     };
 
-    gst_value.type = gst_date_get_type ();
+    gst_value.type = G_TYPE_DATE;
     gst_value_register (&gst_value);
   }
   {
@@ -4851,6 +5760,18 @@
     gst_value_register (&gst_value);
   }
 
+  {
+    static GstValueTable gst_value = {
+      0,
+      gst_value_compare_bitmask,
+      gst_value_serialize_bitmask,
+      gst_value_deserialize_bitmask,
+    };
+
+    gst_value.type = gst_bitmask_get_type ();
+    gst_value_register (&gst_value);
+  }
+
   REGISTER_SERIALIZATION (G_TYPE_DOUBLE, double);
   REGISTER_SERIALIZATION (G_TYPE_FLOAT, float);
 
@@ -4895,12 +5816,20 @@
       gst_value_transform_double_fraction);
   g_value_register_transform_func (G_TYPE_FLOAT, GST_TYPE_FRACTION,
       gst_value_transform_float_fraction);
-  g_value_register_transform_func (GST_TYPE_DATE, G_TYPE_STRING,
+  g_value_register_transform_func (G_TYPE_DATE, G_TYPE_STRING,
       gst_value_transform_date_string);
-  g_value_register_transform_func (G_TYPE_STRING, GST_TYPE_DATE,
+  g_value_register_transform_func (G_TYPE_STRING, G_TYPE_DATE,
       gst_value_transform_string_date);
   g_value_register_transform_func (GST_TYPE_OBJECT, G_TYPE_STRING,
       gst_value_transform_object_string);
+  g_value_register_transform_func (GST_TYPE_BITMASK, G_TYPE_UINT64,
+      gst_value_transform_bitmask_uint64);
+  g_value_register_transform_func (GST_TYPE_BITMASK, G_TYPE_STRING,
+      gst_value_transform_bitmask_string);
+  g_value_register_transform_func (G_TYPE_UINT64, GST_TYPE_BITMASK,
+      gst_value_transform_uint64_bitmask);
+  g_value_register_transform_func (G_TYPE_STRING, GST_TYPE_BITMASK,
+      gst_value_transform_string_bitmask);
 
   gst_value_register_intersect_func (G_TYPE_INT, GST_TYPE_INT_RANGE,
       gst_value_intersect_int_int_range);
@@ -4921,6 +5850,8 @@
   gst_value_register_intersect_func (GST_TYPE_FRACTION_RANGE,
       GST_TYPE_FRACTION_RANGE,
       gst_value_intersect_fraction_range_fraction_range);
+  gst_value_register_intersect_func (GST_TYPE_BITMASK,
+      GST_TYPE_BITMASK, gst_value_intersect_bitmask_bitmask);
 
   gst_value_register_subtract_func (G_TYPE_INT, GST_TYPE_INT_RANGE,
       gst_value_subtract_int_int_range);
@@ -4940,7 +5871,6 @@
       gst_value_subtract_double_range_double);
   gst_value_register_subtract_func (GST_TYPE_DOUBLE_RANGE,
       GST_TYPE_DOUBLE_RANGE, gst_value_subtract_double_range_double_range);
-
   gst_value_register_subtract_func (GST_TYPE_FRACTION, GST_TYPE_FRACTION_RANGE,
       gst_value_subtract_fraction_fraction_range);
   gst_value_register_subtract_func (GST_TYPE_FRACTION_RANGE, GST_TYPE_FRACTION,
@@ -4948,6 +5878,8 @@
   gst_value_register_subtract_func (GST_TYPE_FRACTION_RANGE,
       GST_TYPE_FRACTION_RANGE,
       gst_value_subtract_fraction_range_fraction_range);
+  gst_value_register_subtract_func (GST_TYPE_BITMASK,
+      GST_TYPE_BITMASK, gst_value_subtract_bitmask_bitmask);
 
   /* see bug #317246, #64994, #65041 */
   {
@@ -4960,6 +5892,8 @@
       gst_value_union_int_int_range);
   gst_value_register_union_func (GST_TYPE_INT_RANGE, GST_TYPE_INT_RANGE,
       gst_value_union_int_range_int_range);
+  gst_value_register_union_func (GST_TYPE_BITMASK,
+      GST_TYPE_BITMASK, gst_value_union_bitmask_bitmask);
 
 #if 0
   /* Implement these if needed */
diff --git a/gst/gstvalue.h b/gst/gstvalue.h
index 3bf9222..38413b9 100644
--- a/gst/gstvalue.h
+++ b/gst/gstvalue.h
@@ -125,7 +125,7 @@
  *
  * Checks if the given #GValue contains a #GST_TYPE_LIST value.
  */
-#define GST_VALUE_HOLDS_LIST(x)		(G_VALUE_HOLDS((x), gst_value_list_get_type ()))
+#define GST_VALUE_HOLDS_LIST(x)         (G_VALUE_HOLDS((x), gst_value_list_get_type ()))
 
 /**
  * GST_VALUE_HOLDS_ARRAY:
@@ -133,7 +133,7 @@
  *
  * Checks if the given #GValue contains a #GST_TYPE_ARRAY value.
  */
-#define GST_VALUE_HOLDS_ARRAY(x)	(G_VALUE_HOLDS((x), gst_value_array_get_type ()))
+#define GST_VALUE_HOLDS_ARRAY(x)        (G_VALUE_HOLDS((x), gst_value_array_get_type ()))
 
 /**
  * GST_VALUE_HOLDS_CAPS:
@@ -141,7 +141,7 @@
  *
  * Checks if the given #GValue contains a #GST_TYPE_CAPS value.
  */
-#define GST_VALUE_HOLDS_CAPS(x)		(G_VALUE_HOLDS((x), GST_TYPE_CAPS))
+#define GST_VALUE_HOLDS_CAPS(x)         (G_VALUE_HOLDS((x), GST_TYPE_CAPS))
 
 /**
  * GST_VALUE_HOLDS_STRUCTURE:
@@ -151,7 +151,7 @@
  *
  * Since: 0.10.15
  */
-#define GST_VALUE_HOLDS_STRUCTURE(x)		(G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
+#define GST_VALUE_HOLDS_STRUCTURE(x)            (G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
 
 /**
  * GST_VALUE_HOLDS_BUFFER:
@@ -162,20 +162,20 @@
 #define GST_VALUE_HOLDS_BUFFER(x)       (G_VALUE_HOLDS((x), GST_TYPE_BUFFER))
 
 /**
+ * GST_VALUE_HOLDS_SAMPLE:
+ * @x: the #GValue to check
+ *
+ * Checks if the given #GValue contains a #GST_TYPE_SAMPLE value.
+ */
+#define GST_VALUE_HOLDS_SAMPLE(x)       (G_VALUE_HOLDS((x), GST_TYPE_SAMPLE))
+
+/**
  * GST_VALUE_HOLDS_FRACTION:
  * @x: the #GValue to check
  *
  * Checks if the given #GValue contains a #GST_TYPE_FRACTION value.
  */
-#define GST_VALUE_HOLDS_FRACTION(x)	(G_VALUE_HOLDS((x), gst_fraction_get_type ()))
-
-/**
- * GST_VALUE_HOLDS_DATE:
- * @x: the #GValue to check
- *
- * Checks if the given #GValue contains a #GST_TYPE_DATE value.
- */
-#define GST_VALUE_HOLDS_DATE(x)         (G_VALUE_HOLDS((x), gst_date_get_type ()))
+#define GST_VALUE_HOLDS_FRACTION(x)     (G_VALUE_HOLDS((x), gst_fraction_get_type ()))
 
 /**
  * GST_VALUE_HOLDS_DATE_TIME:
@@ -188,6 +188,14 @@
 #define GST_VALUE_HOLDS_DATE_TIME(x)    (G_VALUE_HOLDS((x), gst_date_time_get_type ()))
 
 /**
+ * GST_VALUE_HOLDS_BITMASK:
+ * @x: the #GValue to check
+ *
+ * Checks if the given #GValue contains a #GST_TYPE_BITMASK value.
+ */
+#define GST_VALUE_HOLDS_BITMASK(x)      (G_VALUE_HOLDS((x), gst_bitmask_get_type ()))
+
+/**
  * GST_TYPE_INT_RANGE:
  *
  * a #GValue type that represents an integer range
@@ -250,7 +258,7 @@
  *
  * Returns: the #GType of GstArrayList (which is not explicitly typed)
  */
-#define GST_TYPE_ARRAY			 gst_value_array_get_type ()
+#define GST_TYPE_ARRAY                   gst_value_array_get_type ()
 
 /**
  * GST_TYPE_FRACTION:
@@ -264,16 +272,6 @@
 #define GST_TYPE_FRACTION                gst_fraction_get_type ()
 
 /**
- * GST_TYPE_DATE:
- *
- * a boxed #GValue type for #GDate that represents a date.
- *
- * Returns: the #GType of GstDate
- */
-
-#define GST_TYPE_DATE                    gst_date_get_type ()
-
-/**
  * GST_TYPE_DATE_TIME:
  *
  * a boxed #GValue type for #GstDateTime that represents a date and time.
@@ -285,6 +283,16 @@
 #define GST_TYPE_DATE_TIME               gst_date_time_get_type ()
 
 /**
+ * GST_TYPE_BITMASK:
+ *
+ * a #GValue type that represents a 64-bit bitmask.
+ *
+ * Returns: the #GType of GstBitmask (which is not explicitly typed)
+ */
+
+#define GST_TYPE_BITMASK                 gst_bitmask_get_type ()
+
+/**
  * GST_VALUE_LESS_THAN:
  *
  * Indicates that the first value provided to a comparison function
@@ -327,7 +335,7 @@
  * or GST_VALUE_UNORDERED
  */
 typedef gint     (* GstValueCompareFunc)     (const GValue *value1,
-					      const GValue *value2);
+                                              const GValue *value2);
 
 /**
  * GstValueSerializeFunc:
@@ -351,55 +359,7 @@
  * Returns: %TRUE for success
  */
 typedef gboolean (* GstValueDeserializeFunc) (GValue       *dest,
-					      const gchar  *s);
-
-/**
- * GstValueUnionFunc:
- * @dest: a #GValue for the result
- * @value1: a #GValue operand
- * @value2: a #GValue operand
- *
- * Used by gst_value_union() to perform unification for a specific #GValue
- * type. Register a new implementation with gst_value_register_union_func().
- *
- * Returns: %TRUE if a union was successful
- */
-typedef gboolean (* GstValueUnionFunc)       (GValue       *dest,
-					      const GValue *value1,
-					      const GValue *value2);
-
-/**
- * GstValueIntersectFunc:
- * @dest: (out caller-allocates): a #GValue for the result
- * @value1: a #GValue operand
- * @value2: a #GValue operand
- *
- * Used by gst_value_intersect() to perform intersection for a specific #GValue
- * type. If the intersection is non-empty, the result is
- * placed in @dest and TRUE is returned.  If the intersection is
- * empty, @dest is unmodified and FALSE is returned.
- * Register a new implementation with gst_value_register_intersect_func().
- *
- * Returns: %TRUE if the values can intersect
- */
-typedef gboolean (* GstValueIntersectFunc)   (GValue       *dest,
-					      const GValue *value1,
-					      const GValue *value2);
-
-/**
- * GstValueSubtractFunc:
- * @dest: (out caller-allocates): a #GValue for the result
- * @minuend: a #GValue operand
- * @subtrahend: a #GValue operand
- *
- * Used by gst_value_subtract() to perform subtraction for a specific #GValue
- * type. Register a new implementation with gst_value_register_subtract_func().
- *
- * Returns: %TRUE if the subtraction is not empty
- */
-typedef gboolean (* GstValueSubtractFunc)    (GValue       *dest,
-					      const GValue *minuend,
-					      const GValue *subtrahend);
+                                              const gchar  *s);
 
 typedef struct _GstValueTable GstValueTable;
 /**
@@ -418,7 +378,7 @@
   GstValueDeserializeFunc deserialize;
 
   /*< private >*/
-  void *_gst_reserved [GST_PADDING];
+  gpointer _gst_reserved [GST_PADDING];
 };
 
 GType gst_int_range_get_type (void);
@@ -428,141 +388,145 @@
 GType gst_fraction_get_type (void);
 GType gst_value_list_get_type (void);
 GType gst_value_array_get_type (void);
+GType gst_bitmask_get_type (void);
 
-GType gst_date_get_type (void);
 GType gst_date_time_get_type (void);
 
-void		gst_value_register		(const GstValueTable   *table);
-void		gst_value_init_and_copy		(GValue                *dest,
-						 const GValue          *src);
+void            gst_value_register              (const GstValueTable   *table);
+void            gst_value_init_and_copy         (GValue                *dest,
+                                                 const GValue          *src);
 
-gchar *		gst_value_serialize		(const GValue          *value);
-gboolean	gst_value_deserialize		(GValue                *dest,
-						 const gchar           *src);
+gchar *         gst_value_serialize             (const GValue          *value) G_GNUC_MALLOC;
+gboolean        gst_value_deserialize           (GValue                *dest,
+                                                 const gchar           *src);
 
 /* list */
-void		gst_value_list_append_value	(GValue		*value,
-						 const GValue	*append_value);
-void		gst_value_list_prepend_value	(GValue		*value,
-						 const GValue	*prepend_value);
-void		gst_value_list_concat		(GValue		*dest,
-						 const GValue   *value1,
-						 const GValue	*value2);
-void		gst_value_list_merge		(GValue		*dest,
-						 const GValue   *value1,
-						 const GValue	*value2);
-guint		gst_value_list_get_size		(const GValue	*value);
-const GValue *	gst_value_list_get_value	(const GValue	*value,
-						 guint		index);
+void            gst_value_list_append_value     (GValue         *value,
+                                                 const GValue   *append_value);
+void            gst_value_list_prepend_value    (GValue         *value,
+                                                 const GValue   *prepend_value);
+void            gst_value_list_concat           (GValue         *dest,
+                                                 const GValue   *value1,
+                                                 const GValue   *value2);
+void            gst_value_list_merge            (GValue         *dest,
+                                                 const GValue   *value1,
+                                                 const GValue   *value2);
+guint           gst_value_list_get_size         (const GValue   *value);
+const GValue *  gst_value_list_get_value        (const GValue   *value,
+                                                 guint          index);
 
 /* array */
-void		gst_value_array_append_value	(GValue		*value,
-						 const GValue	*append_value);
-void		gst_value_array_prepend_value	(GValue		*value,
-						 const GValue	*prepend_value);
-guint		gst_value_array_get_size	(const GValue	*value);
-const GValue *	gst_value_array_get_value	(const GValue	*value,
-						 guint		index);
+void            gst_value_array_append_value    (GValue         *value,
+                                                 const GValue   *append_value);
+void            gst_value_array_prepend_value   (GValue         *value,
+                                                 const GValue   *prepend_value);
+guint           gst_value_array_get_size        (const GValue   *value);
+const GValue *  gst_value_array_get_value       (const GValue   *value,
+                                                 guint          index);
 
 /* int range */
-void		gst_value_set_int_range		(GValue		*value,
-						 gint		start,
-						 gint		end);
-gint		gst_value_get_int_range_min	(const GValue	*value);
-gint		gst_value_get_int_range_max	(const GValue	*value);
+void            gst_value_set_int_range         (GValue         *value,
+                                                 gint           start,
+                                                 gint           end);
+void            gst_value_set_int_range_step    (GValue         *value,
+                                                 gint           start,
+                                                 gint           end,
+                                                 gint           step);
+gint            gst_value_get_int_range_min     (const GValue   *value);
+gint            gst_value_get_int_range_max     (const GValue   *value);
+gint            gst_value_get_int_range_step    (const GValue   *value);
 
 /* int64 range */
-void		gst_value_set_int64_range      	(GValue		*value,
-						 gint64		start,
-						 gint64		end);
-gint64		gst_value_get_int64_range_min	(const GValue	*value);
-gint64		gst_value_get_int64_range_max	(const GValue	*value);
+void            gst_value_set_int64_range       (GValue         *value,
+                                                 gint64         start,
+                                                 gint64         end);
+void            gst_value_set_int64_range_step  (GValue         *value,
+                                                 gint64         start,
+                                                 gint64         end,
+                                                 gint64         step);
+gint64          gst_value_get_int64_range_min   (const GValue   *value);
+gint64          gst_value_get_int64_range_max   (const GValue   *value);
+gint64          gst_value_get_int64_range_step  (const GValue   *value);
 
 /* double range */
-void		gst_value_set_double_range	(GValue		*value,
-						 gdouble	start,
-						 gdouble	end);
-gdouble		gst_value_get_double_range_min	(const GValue	*value);
-gdouble		gst_value_get_double_range_max	(const GValue	*value);
+void            gst_value_set_double_range      (GValue         *value,
+                                                 gdouble        start,
+                                                 gdouble        end);
+gdouble         gst_value_get_double_range_min  (const GValue   *value);
+gdouble         gst_value_get_double_range_max  (const GValue   *value);
 
 /* caps */
-const GstCaps *	gst_value_get_caps		(const GValue	*value);
-void		gst_value_set_caps		(GValue		*value,
-						 const GstCaps  *caps);
+const GstCaps * gst_value_get_caps              (const GValue   *value);
+void            gst_value_set_caps              (GValue         *value,
+                                                 const GstCaps  *caps);
 
 /* structure */
 const GstStructure *
-		gst_value_get_structure		(const GValue	*value);
-void		gst_value_set_structure		(GValue		*value,
-						 const GstStructure  *structure);
+                gst_value_get_structure         (const GValue   *value);
+void            gst_value_set_structure         (GValue         *value,
+                                                 const GstStructure  *structure);
 
 /* fraction */
-void		gst_value_set_fraction		(GValue		*value,
-						 gint		numerator,
-						 gint		denominator);
-gint		gst_value_get_fraction_numerator (const GValue	*value);
-gint		gst_value_get_fraction_denominator(const GValue	*value);
-gboolean	gst_value_fraction_multiply	(GValue		*product,
-						 const GValue	*factor1,
-						 const GValue	*factor2);
-gboolean 	gst_value_fraction_subtract (GValue * dest,
-					     const GValue * minuend, 
-					     const GValue * subtrahend);
+void            gst_value_set_fraction          (GValue         *value,
+                                                 gint           numerator,
+                                                 gint           denominator);
+gint            gst_value_get_fraction_numerator   (const GValue  *value);
+gint            gst_value_get_fraction_denominator (const GValue *value);
+gboolean        gst_value_fraction_multiply        (GValue         *product,
+                                                    const GValue   *factor1,
+                                                    const GValue   *factor2);
+gboolean        gst_value_fraction_subtract     (GValue * dest,
+                                                 const GValue * minuend,
+                                                 const GValue * subtrahend);
 
 /* fraction range */
-void		gst_value_set_fraction_range	(GValue		*value,
-						 const GValue 	*start,
-						 const GValue	*end);
-void		gst_value_set_fraction_range_full (GValue	*value,
-						 gint numerator_start, 
-						 gint denominator_start,
-						 gint numerator_end, 
-						 gint denominator_end);
-const GValue 	*gst_value_get_fraction_range_min (const GValue	*value);
-const GValue 	*gst_value_get_fraction_range_max (const GValue	*value);
+void            gst_value_set_fraction_range    (GValue         *value,
+                                                 const GValue   *start,
+                                                 const GValue   *end);
+void            gst_value_set_fraction_range_full (GValue       *value,
+                                                 gint numerator_start,
+                                                 gint denominator_start,
+                                                 gint numerator_end,
+                                                 gint denominator_end);
+const GValue    *gst_value_get_fraction_range_min (const GValue *value);
+const GValue    *gst_value_get_fraction_range_max (const GValue *value);
 
-/* date */
-const GDate *	gst_value_get_date		(const GValue	*value);
-void		gst_value_set_date		(GValue		*value,
-						 const GDate    *date);
+/* bitmask */
+guint64         gst_value_get_bitmask           (const GValue   *value);
+void            gst_value_set_bitmask           (GValue         *value,
+                                                 guint64         bitmask);
 
 /* compare */
-gint		gst_value_compare		(const GValue	*value1,
-						 const GValue	*value2);
-gboolean	gst_value_can_compare		(const GValue	*value1,
-						 const GValue	*value2);
+gint            gst_value_compare               (const GValue   *value1,
+                                                 const GValue   *value2);
+gboolean        gst_value_can_compare           (const GValue   *value1,
+                                                 const GValue   *value2);
+gboolean        gst_value_is_subset             (const GValue   *value1,
+                                                 const GValue   *value2);
+
 /* union */
-gboolean	gst_value_union			(GValue		*dest,
-						 const GValue	*value1,
-						 const GValue	*value2);
-gboolean	gst_value_can_union		(const GValue	*value1,
-						 const GValue   *value2);
-void		gst_value_register_union_func	(GType		type1,
-						 GType		type2,
-						 GstValueUnionFunc func);
+gboolean        gst_value_union                 (GValue         *dest,
+                                                 const GValue   *value1,
+                                                 const GValue   *value2);
+gboolean        gst_value_can_union             (const GValue   *value1,
+                                                 const GValue   *value2);
 
 /* intersection */
-gboolean	gst_value_intersect		(GValue		*dest,
-						 const GValue	*value1,
-						 const GValue	*value2);
-gboolean	gst_value_can_intersect		(const GValue	*value1,
-						 const GValue	*value2);
-void		gst_value_register_intersect_func (GType	type1,
-						GType		type2,
-						GstValueIntersectFunc func);
+gboolean        gst_value_intersect             (GValue         *dest,
+                                                 const GValue   *value1,
+                                                 const GValue   *value2);
+gboolean        gst_value_can_intersect         (const GValue   *value1,
+                                                 const GValue   *value2);
 
 /* subtraction */
-gboolean	gst_value_subtract		(GValue		*dest,
-						 const GValue	*minuend,
-						 const GValue	*subtrahend);
-gboolean	gst_value_can_subtract		(const GValue	*minuend,
-						 const GValue	*subtrahend);
-void		gst_value_register_subtract_func (GType		minuend_type,
-						GType		subtrahend_type,
-						GstValueSubtractFunc func);
+gboolean        gst_value_subtract              (GValue         *dest,
+                                                 const GValue   *minuend,
+                                                 const GValue   *subtrahend);
+gboolean        gst_value_can_subtract          (const GValue   *minuend,
+                                                 const GValue   *subtrahend);
 
 /* fixation */
-gboolean	gst_value_is_fixed		(const GValue   *value);
+gboolean        gst_value_is_fixed              (const GValue   *value);
 gboolean        gst_value_fixate                (GValue         *dest,
                                                  const GValue   *src);
 
diff --git a/gst/gstversion.h.in b/gst/gstversion.h.in
index 86a6609..eb3f75d 100644
--- a/gst/gstversion.h.in
+++ b/gst/gstversion.h.in
@@ -45,26 +45,26 @@
  *
  * The major version of GStreamer at compile time:
  */
-#define GST_VERSION_MAJOR (@PACKAGE_VERSION_MAJOR@)
+#define GST_VERSION_MAJOR (@GST_VERSION_MAJOR@)
 /**
  * GST_VERSION_MINOR:
  *
  * The minor version of GStreamer at compile time:
  */
-#define GST_VERSION_MINOR (@PACKAGE_VERSION_MINOR@)
+#define GST_VERSION_MINOR (@GST_VERSION_MINOR@)
 /**
  * GST_VERSION_MICRO:
  *
  * The micro version of GStreamer at compile time:
  */
-#define GST_VERSION_MICRO (@PACKAGE_VERSION_MICRO@)
+#define GST_VERSION_MICRO (@GST_VERSION_MICRO@)
 /**
  * GST_VERSION_NANO:
  *
  * The nano version of GStreamer at compile time:
  * Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
  */
-#define GST_VERSION_NANO (@PACKAGE_VERSION_NANO@)
+#define GST_VERSION_NANO (@GST_VERSION_NANO@)
 
 /**
  * GST_CHECK_VERSION:
diff --git a/gst/math-compat.h b/gst/math-compat.h
index d9b368c..aa123db 100644
--- a/gst/math-compat.h
+++ b/gst/math-compat.h
@@ -79,6 +79,21 @@
 #define rintf(x) __gst_math_compat_rintf(x)
 #endif
 
+#ifndef NAN
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define __GST_NAN_BYTES        { 0x7f, 0xc0, 0, 0 }
+#elif G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define __GST_NAN_BYTES        { 0, 0, 0xc0, 0x7f }
+#endif
+static union {
+  unsigned char __c[4];
+  float __d;
+} __gst_nan_union G_GNUC_UNUSED = {
+  __GST_NAN_BYTES
+};
+#define NAN    (__gst_nan_union.__d)
+#endif
+
 G_END_DECLS
 
 #endif /* __GST_MATH_COMPAT_H__ */
diff --git a/gst/parse/Makefile.am b/gst/parse/Makefile.am
index b837ec2..edff324 100644
--- a/gst/parse/Makefile.am
+++ b/gst/parse/Makefile.am
@@ -7,12 +7,12 @@
 	parse.l
 
 # uncomment these lines to dist the generated sources
-#BUILT_SOURCES = grammar.tab.h grammar.tab.c lex._gst_parse_yy.c
-#libgstparse_la_SOURCES = lex._gst_parse_yy.c grammar.tab.c
+#BUILT_SOURCES = grammar.tab.h grammar.tab.c lex.priv_gst_parse_yy.c
+#libgstparse_la_SOURCES = lex.priv_gst_parse_yy.c grammar.tab.c
 
 # uncomment these lines to _NOT_ dist the generated sources
-nodist_libgstparse_la_SOURCES = lex._gst_parse_yy.c grammar.tab.c
-CLEANFILES += grammar.tab.c lex._gst_parse_yy.c
+nodist_libgstparse_la_SOURCES = lex.priv_gst_parse_yy.c grammar.tab.c
+CLEANFILES += grammar.tab.c lex.priv_gst_parse_yy.c
 
 # can't use GST_ALL_CFLAGS here because that'd pull in -Werror
 libgstparse_la_CFLAGS = -I$(top_srcdir) -I$(top_builddir) \
@@ -30,7 +30,7 @@
 	> $@
 
 grammar.tab.c grammar.tab.h: grammar.y
-	$(AM_V_GEN)$(BISON_PATH) -d -v -p_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
+	$(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
 	mv grammar.tab.c grammar.tab_tmp.c && \
 	echo '#ifdef HAVE_CONFIG_H' > grammar.tab_tmp2.c && \
 	echo '#include <config.h>' >> grammar.tab_tmp2.c && \
@@ -39,17 +39,17 @@
 	rm grammar.tab_tmp.c && \
 	mv grammar.tab_tmp2.c grammar.tab.c
 
-lex._gst_parse_yy.c: parse.l grammar.tab.h
-	$(AM_V_GEN)$(FLEX_PATH) -P_gst_parse_yy $^ && \
-	mv lex._gst_parse_yy.c lex._gst_parse_yy_tmp.c && \
-	echo '#ifdef HAVE_CONFIG_H' > lex._gst_parse_yy_tmp2.c && \
-	echo '#include <config.h>' >> lex._gst_parse_yy_tmp2.c && \
-	echo '#endif' >> lex._gst_parse_yy_tmp2.c && \
-	echo 'static inline int _gst_parse_yyget_column  (void * yyscanner);' >> lex._gst_parse_yy_tmp2.c && \
-	echo 'static inline void _gst_parse_yyset_column (int  column_no , void * yyscanner);' >> lex._gst_parse_yy_tmp2.c && \
-	cat lex._gst_parse_yy_tmp.c >> lex._gst_parse_yy_tmp2.c && \
-	rm lex._gst_parse_yy_tmp.c && \
-	mv lex._gst_parse_yy_tmp2.c lex._gst_parse_yy.c
+lex.priv_gst_parse_yy.c: parse.l grammar.tab.h
+	$(AM_V_GEN)$(FLEX_PATH) -Ppriv_gst_parse_yy $^ && \
+	mv lex.priv_gst_parse_yy.c lex.priv_gst_parse_yy_tmp.c && \
+	echo '#ifdef HAVE_CONFIG_H' > lex.priv_gst_parse_yy_tmp2.c && \
+	echo '#include <config.h>' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo '#endif' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo 'static inline int priv_gst_parse_yyget_column  (void * yyscanner);' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo 'static inline void priv_gst_parse_yyset_column (int  column_no , void * yyscanner);' >> lex.priv_gst_parse_yy_tmp2.c && \
+	cat lex.priv_gst_parse_yy_tmp.c >> lex.priv_gst_parse_yy_tmp2.c && \
+	rm lex.priv_gst_parse_yy_tmp.c && \
+	mv lex.priv_gst_parse_yy_tmp2.c lex.priv_gst_parse_yy.c
 
 .NOTPARALLEL:
 
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index 4e34b8b..6b0e37d 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +17,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -83,11 +100,12 @@
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstparse_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-nodist_libgstparse_la_OBJECTS = libgstparse_la-lex._gst_parse_yy.lo \
+nodist_libgstparse_la_OBJECTS =  \
+	libgstparse_la-lex.priv_gst_parse_yy.lo \
 	libgstparse_la-grammar.tab.lo
 libgstparse_la_OBJECTS = $(nodist_libgstparse_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -103,24 +121,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(nodist_libgstparse_la_SOURCES)
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -178,10 +201,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -194,10 +219,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -211,7 +236,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -228,6 +252,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -243,7 +271,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -276,6 +303,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -331,6 +359,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -364,7 +393,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -389,18 +417,18 @@
 # libgstparse.la is an optionally built helper library linked into core
 noinst_LTLIBRARIES = libgstparse.la
 CLEANFILES = grammar.tab.h grammar.output grammar.tab.c \
-	lex._gst_parse_yy.c
+	lex.priv_gst_parse_yy.c
 EXTRA_DIST = \
 	grammar.y \
 	parse.l
 
 
 # uncomment these lines to dist the generated sources
-#BUILT_SOURCES = grammar.tab.h grammar.tab.c lex._gst_parse_yy.c
-#libgstparse_la_SOURCES = lex._gst_parse_yy.c grammar.tab.c
+#BUILT_SOURCES = grammar.tab.h grammar.tab.c lex.priv_gst_parse_yy.c
+#libgstparse_la_SOURCES = lex.priv_gst_parse_yy.c grammar.tab.c
 
 # uncomment these lines to _NOT_ dist the generated sources
-nodist_libgstparse_la_SOURCES = lex._gst_parse_yy.c grammar.tab.c
+nodist_libgstparse_la_SOURCES = lex.priv_gst_parse_yy.c grammar.tab.c
 
 # can't use GST_ALL_CFLAGS here because that'd pull in -Werror
 libgstparse_la_CFLAGS = -I$(top_srcdir) -I$(top_builddir) \
@@ -451,7 +479,7 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstparse.la: $(libgstparse_la_OBJECTS) $(libgstparse_la_DEPENDENCIES) 
+libgstparse.la: $(libgstparse_la_OBJECTS) $(libgstparse_la_DEPENDENCIES) $(EXTRA_libgstparse_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstparse_la_LINK)  $(libgstparse_la_OBJECTS) $(libgstparse_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -461,47 +489,42 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstparse_la-grammar.tab.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstparse_la-lex._gst_parse_yy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstparse_la-lex.priv_gst_parse_yy.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstparse_la-lex._gst_parse_yy.lo: lex._gst_parse_yy.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -MT libgstparse_la-lex._gst_parse_yy.lo -MD -MP -MF $(DEPDIR)/libgstparse_la-lex._gst_parse_yy.Tpo -c -o libgstparse_la-lex._gst_parse_yy.lo `test -f 'lex._gst_parse_yy.c' || echo '$(srcdir)/'`lex._gst_parse_yy.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstparse_la-lex._gst_parse_yy.Tpo $(DEPDIR)/libgstparse_la-lex._gst_parse_yy.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lex._gst_parse_yy.c' object='libgstparse_la-lex._gst_parse_yy.lo' libtool=yes @AMDEPBACKSLASH@
+libgstparse_la-lex.priv_gst_parse_yy.lo: lex.priv_gst_parse_yy.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -MT libgstparse_la-lex.priv_gst_parse_yy.lo -MD -MP -MF $(DEPDIR)/libgstparse_la-lex.priv_gst_parse_yy.Tpo -c -o libgstparse_la-lex.priv_gst_parse_yy.lo `test -f 'lex.priv_gst_parse_yy.c' || echo '$(srcdir)/'`lex.priv_gst_parse_yy.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstparse_la-lex.priv_gst_parse_yy.Tpo $(DEPDIR)/libgstparse_la-lex.priv_gst_parse_yy.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='lex.priv_gst_parse_yy.c' object='libgstparse_la-lex.priv_gst_parse_yy.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -c -o libgstparse_la-lex._gst_parse_yy.lo `test -f 'lex._gst_parse_yy.c' || echo '$(srcdir)/'`lex._gst_parse_yy.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -c -o libgstparse_la-lex.priv_gst_parse_yy.lo `test -f 'lex.priv_gst_parse_yy.c' || echo '$(srcdir)/'`lex.priv_gst_parse_yy.c
 
 libgstparse_la-grammar.tab.lo: grammar.tab.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -MT libgstparse_la-grammar.tab.lo -MD -MP -MF $(DEPDIR)/libgstparse_la-grammar.tab.Tpo -c -o libgstparse_la-grammar.tab.lo `test -f 'grammar.tab.c' || echo '$(srcdir)/'`grammar.tab.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstparse_la-grammar.tab.Tpo $(DEPDIR)/libgstparse_la-grammar.tab.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='grammar.tab.c' object='libgstparse_la-grammar.tab.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='grammar.tab.c' object='libgstparse_la-grammar.tab.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -c -o libgstparse_la-grammar.tab.lo `test -f 'grammar.tab.c' || echo '$(srcdir)/'`grammar.tab.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstparse_la_CFLAGS) $(CFLAGS) -c -o libgstparse_la-grammar.tab.lo `test -f 'grammar.tab.c' || echo '$(srcdir)/'`grammar.tab.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -605,10 +628,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -717,7 +745,7 @@
 	> $@
 
 grammar.tab.c grammar.tab.h: grammar.y
-	$(AM_V_GEN)$(BISON_PATH) -d -v -p_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
+	$(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
 	mv grammar.tab.c grammar.tab_tmp.c && \
 	echo '#ifdef HAVE_CONFIG_H' > grammar.tab_tmp2.c && \
 	echo '#include <config.h>' >> grammar.tab_tmp2.c && \
@@ -726,17 +754,17 @@
 	rm grammar.tab_tmp.c && \
 	mv grammar.tab_tmp2.c grammar.tab.c
 
-lex._gst_parse_yy.c: parse.l grammar.tab.h
-	$(AM_V_GEN)$(FLEX_PATH) -P_gst_parse_yy $^ && \
-	mv lex._gst_parse_yy.c lex._gst_parse_yy_tmp.c && \
-	echo '#ifdef HAVE_CONFIG_H' > lex._gst_parse_yy_tmp2.c && \
-	echo '#include <config.h>' >> lex._gst_parse_yy_tmp2.c && \
-	echo '#endif' >> lex._gst_parse_yy_tmp2.c && \
-	echo 'static inline int _gst_parse_yyget_column  (void * yyscanner);' >> lex._gst_parse_yy_tmp2.c && \
-	echo 'static inline void _gst_parse_yyset_column (int  column_no , void * yyscanner);' >> lex._gst_parse_yy_tmp2.c && \
-	cat lex._gst_parse_yy_tmp.c >> lex._gst_parse_yy_tmp2.c && \
-	rm lex._gst_parse_yy_tmp.c && \
-	mv lex._gst_parse_yy_tmp2.c lex._gst_parse_yy.c
+lex.priv_gst_parse_yy.c: parse.l grammar.tab.h
+	$(AM_V_GEN)$(FLEX_PATH) -Ppriv_gst_parse_yy $^ && \
+	mv lex.priv_gst_parse_yy.c lex.priv_gst_parse_yy_tmp.c && \
+	echo '#ifdef HAVE_CONFIG_H' > lex.priv_gst_parse_yy_tmp2.c && \
+	echo '#include <config.h>' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo '#endif' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo 'static inline int priv_gst_parse_yyget_column  (void * yyscanner);' >> lex.priv_gst_parse_yy_tmp2.c && \
+	echo 'static inline void priv_gst_parse_yyset_column (int  column_no , void * yyscanner);' >> lex.priv_gst_parse_yy_tmp2.c && \
+	cat lex.priv_gst_parse_yy_tmp.c >> lex.priv_gst_parse_yy_tmp2.c && \
+	rm lex.priv_gst_parse_yy_tmp.c && \
+	mv lex.priv_gst_parse_yy_tmp2.c lex.priv_gst_parse_yy.c
 
 .NOTPARALLEL:
 
diff --git a/gst/parse/grammar.tab.h b/gst/parse/grammar.tab.h
index 95fa2b6..764695b 100644
--- a/gst/parse/grammar.tab.h
+++ b/gst/parse/grammar.tab.h
@@ -1,10 +1,8 @@
+/* A Bison parser, made by GNU Bison 2.5.  */
 
-/* A Bison parser, made by GNU Bison 2.4.1.  */
-
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -55,7 +53,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 1676 of yacc.c  */
+/* Line 2068 of yacc.c  */
 #line 623 "./grammar.y"
 
     gchar *s;
@@ -67,8 +65,8 @@
 
 
 
-/* Line 1676 of yacc.c  */
-#line 72 "grammar.tab.h"
+/* Line 2068 of yacc.c  */
+#line 70 "grammar.tab.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
index 51755cf..70d8c7b 100644
--- a/gst/parse/grammar.y
+++ b/gst/parse/grammar.y
@@ -36,10 +36,10 @@
 
 typedef void* yyscan_t;
 
-int _gst_parse_yylex (void * yylval_param , yyscan_t yyscanner);
-int _gst_parse_yylex_init (yyscan_t scanner);
-int _gst_parse_yylex_destroy (yyscan_t scanner);
-struct yy_buffer_state * _gst_parse_yy_scan_string (char* , yyscan_t);
+int priv_gst_parse_yylex (void * yylval_param , yyscan_t yyscanner);
+int priv_gst_parse_yylex_init (yyscan_t scanner);
+int priv_gst_parse_yylex_destroy (yyscan_t scanner);
+struct yy_buffer_state * priv_gst_parse_yy_scan_string (char* , yyscan_t);
 void _gst_parse_yypush_buffer_state (void * new_buffer ,yyscan_t yyscanner );
 void _gst_parse_yypop_buffer_state (yyscan_t yyscanner );
 
@@ -332,13 +332,13 @@
   DelayedSet *set = (DelayedSet *) data;
   GParamSpec *pspec;
   GValue v = { 0, };
-  GstObject *target = NULL;
+  GObject *target = NULL;
   GType value_type;
 
   GST_CAT_LOG_OBJECT (GST_CAT_PIPELINE, child_proxy, "new child %s, checking property %s",
       GST_OBJECT_NAME(object), set->name);
 
-  if (gst_child_proxy_lookup (GST_OBJECT (child_proxy), set->name, &target, &pspec)) {
+  if (gst_child_proxy_lookup (G_OBJECT (child_proxy), set->name, &target, &pspec)) {
     gboolean got_value = FALSE;
 
     value_type = pspec->value_type;
@@ -360,7 +360,7 @@
     g_signal_handler_disconnect (child_proxy, set->signal_id);
     if (!got_value)
       goto error;
-    g_object_set_property (G_OBJECT (target), pspec->name, &v);
+    g_object_set_property (target, pspec->name, &v);
   } else {
     const gchar *obj_name = GST_OBJECT_NAME(object);
     gint len = strlen (obj_name);
@@ -375,12 +375,12 @@
   if (G_IS_VALUE (&v))
     g_value_unset (&v);
   if (target)
-    gst_object_unref (target);
+    g_object_unref (target);
   return;
 
 error:
-  GST_CAT_ERROR (GST_CAT_PIPELINE, "could not set property \"%s\" in element \"%s\"",
-	 pspec->name, GST_ELEMENT_NAME (target));
+  GST_CAT_ERROR (GST_CAT_PIPELINE, "could not set property \"%s\" in "
+      GST_PTR_FORMAT, pspec->name, target);
   goto out;
 }
 
@@ -390,7 +390,7 @@
   GParamSpec *pspec;
   gchar *pos = value;
   GValue v = { 0, };
-  GstObject *target = NULL;
+  GObject *target = NULL;
   GType value_type;
 
   /* do nothing if assignment is for missing element */
@@ -415,7 +415,7 @@
   }
   gst_parse_unescape (pos);
 
-  if (gst_child_proxy_lookup (GST_OBJECT (element), value, &target, &pspec)) {
+  if (gst_child_proxy_lookup (G_OBJECT (element), value, &target, &pspec)) {
     gboolean got_value = FALSE;
 
     value_type = pspec->value_type;
@@ -436,7 +436,7 @@
     }
     if (!got_value)
       goto error;
-    g_object_set_property (G_OBJECT (target), pspec->name, &v);
+    g_object_set_property (target, pspec->name, &v);
   } else {
     /* do a delayed set */
     if (GST_IS_CHILD_PROXY (element)) {
@@ -454,7 +454,7 @@
   if (G_IS_VALUE (&v))
     g_value_unset (&v);
   if (target)
-    gst_object_unref (target);
+    g_object_unref (target);
   return;
 
 error:
@@ -892,7 +892,7 @@
 
 
 GstElement *
-_gst_parse_launch (const gchar *str, GError **error, GstParseContext *ctx,
+priv_gst_parse_launch (const gchar *str, GError **error, GstParseContext *ctx,
     GstParseFlags flags)
 {
   graph_t g;
@@ -917,8 +917,8 @@
 #endif /* __GST_PARSE_TRACE */
 
   dstr = g_strdup (str);
-  _gst_parse_yylex_init (&scanner);
-  _gst_parse_yy_scan_string (dstr, scanner);
+  priv_gst_parse_yylex_init (&scanner);
+  priv_gst_parse_yy_scan_string (dstr, scanner);
 
 #ifndef YYDEBUG
   yydebug = 1;
@@ -928,12 +928,12 @@
     SET_ERROR (error, GST_PARSE_ERROR_SYNTAX,
         "Unrecoverable syntax error while parsing pipeline %s", str);
 
-    _gst_parse_yylex_destroy (scanner);
+    priv_gst_parse_yylex_destroy (scanner);
     g_free (dstr);
 
     goto error1;
   }
-  _gst_parse_yylex_destroy (scanner);
+  priv_gst_parse_yylex_destroy (scanner);
   g_free (dstr);
 
   GST_CAT_DEBUG (GST_CAT_PIPELINE, "got %u elements and %u links",
diff --git a/gst/parse/types.h b/gst/parse/types.h
index db1f585..3b2e4fd 100644
--- a/gst/parse/types.h
+++ b/gst/parse/types.h
@@ -95,7 +95,7 @@
   *str = '\0';
 }
 
-GstElement *_gst_parse_launch (const gchar *, GError **,
+GstElement *priv_gst_parse_launch (const gchar *, GError **,
     GstParseContext *, GstParseFlags);
 
 #endif /* __GST_PARSE_TYPES_H__ */
diff --git a/gstreamer.doap b/gstreamer.doap
index 613c409..6ab32cc 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,39 @@
 
  <release>
   <Version>
+   <revision>0.11.90</revision>
+   <branch>0.11</branch>
+   <name>And all with pearl and ruby glowing was the fair palace door</name>
+   <created>2012-04-12</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.90.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.90.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>0.11.3</revision>
+   <branch>0.11</branch>
+   <name>Thrill of the Hunt</name>
+   <created>2012-03-22</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.3.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.3.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>0.11.2</revision>
+   <branch>0.11</branch>
+   <name>A Shiny white Tooth</name>
+   <created>2012-02-16</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.2.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.2.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.11.1</revision>
    <branch>0.11</branch>
    <name>Sweet New Blossom</name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 3df4c21..aba690b 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -1,10 +1,10 @@
 %define		gstreamer	gstreamer011
-%define		majorminor	0.11
+%define		majorminor	1.0
 
-%define 	_glib2		2.26
+%define 	_glib2		2.31.14
 
 Name: 		%{gstreamer}
-Version: 	0.11.1
+Version: 	0.11.90
 Release: 	1
 Summary: 	GStreamer streaming media framework runtime
 
@@ -114,12 +114,10 @@
 %{_libdir}/libgstreamer-%{majorminor}.so.*
 %{_libdir}/libgstbase-%{majorminor}.so.*
 %{_libdir}/libgstcontroller-%{majorminor}.so.*
-%{_libdir}/libgstdataprotocol-%{majorminor}.so.*
 %{_libdir}/libgstnet-%{majorminor}.so.*
 
 %dir %{_libdir}/gstreamer-%{majorminor}
 %{_libdir}/gstreamer-%{majorminor}/libgstcoreelements.so
-%{_libdir}/gstreamer-%{majorminor}/libgstcoreindexers.so
 
 %{_bindir}/gst-inspect-%{majorminor}
 %{_bindir}/gst-launch-%{majorminor}
@@ -151,11 +149,9 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/base
 %{_includedir}/gstreamer-%{majorminor}/gst/check
 %{_includedir}/gstreamer-%{majorminor}/gst/controller
-%{_includedir}/gstreamer-%{majorminor}/gst/dataprotocol
 %{_includedir}/gstreamer-%{majorminor}/gst/net
 
 %{_libdir}/libgstreamer-%{majorminor}.so
-%{_libdir}/libgstdataprotocol-%{majorminor}.so
 %{_libdir}/libgstbase-%{majorminor}.so
 %{_libdir}/libgstcheck-%{majorminor}.so*
 %{_libdir}/libgstcontroller-%{majorminor}.so
@@ -166,7 +162,6 @@
 %{_libdir}/pkgconfig/gstreamer-base-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-controller-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-check-%{majorminor}.pc
-%{_libdir}/pkgconfig/gstreamer-dataprotocol-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-net-%{majorminor}.pc
 
 %doc %{_datadir}/gtk-doc/html/gstreamer-%{majorminor}/*
diff --git a/gstreamer.spec.in b/gstreamer.spec.in
index 70c4d3b..66d2e80 100644
--- a/gstreamer.spec.in
+++ b/gstreamer.spec.in
@@ -1,5 +1,5 @@
 %define		gstreamer	gstreamer011
-%define		majorminor	@GST_MAJORMINOR@
+%define		majorminor	@GST_API_VERSION@
 
 %define 	_glib2		@GLIB_REQ@
 
@@ -114,12 +114,10 @@
 %{_libdir}/libgstreamer-%{majorminor}.so.*
 %{_libdir}/libgstbase-%{majorminor}.so.*
 %{_libdir}/libgstcontroller-%{majorminor}.so.*
-%{_libdir}/libgstdataprotocol-%{majorminor}.so.*
 %{_libdir}/libgstnet-%{majorminor}.so.*
 
 %dir %{_libdir}/gstreamer-%{majorminor}
 %{_libdir}/gstreamer-%{majorminor}/libgstcoreelements.so
-%{_libdir}/gstreamer-%{majorminor}/libgstcoreindexers.so
 
 %{_bindir}/gst-inspect-%{majorminor}
 %{_bindir}/gst-launch-%{majorminor}
@@ -151,11 +149,9 @@
 %{_includedir}/gstreamer-%{majorminor}/gst/base
 %{_includedir}/gstreamer-%{majorminor}/gst/check
 %{_includedir}/gstreamer-%{majorminor}/gst/controller
-%{_includedir}/gstreamer-%{majorminor}/gst/dataprotocol
 %{_includedir}/gstreamer-%{majorminor}/gst/net
 
 %{_libdir}/libgstreamer-%{majorminor}.so
-%{_libdir}/libgstdataprotocol-%{majorminor}.so
 %{_libdir}/libgstbase-%{majorminor}.so
 %{_libdir}/libgstcheck-%{majorminor}.so*
 %{_libdir}/libgstcontroller-%{majorminor}.so
@@ -166,7 +162,6 @@
 %{_libdir}/pkgconfig/gstreamer-base-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-controller-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-check-%{majorminor}.pc
-%{_libdir}/pkgconfig/gstreamer-dataprotocol-%{majorminor}.pc
 %{_libdir}/pkgconfig/gstreamer-net-%{majorminor}.pc
 
 %doc %{_datadir}/gtk-doc/html/gstreamer-%{majorminor}/*
diff --git a/install-sh b/install-sh
index 6781b98..a9244eb 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-01-19.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
+	# Protect names problematic for `test' and other utilities.
+	case $dst_arg in
+	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
+	esac
 	shift;;
 
     -T) no_target_directory=true;;
@@ -186,6 +190,10 @@
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for `test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -200,7 +208,11 @@
 fi
 
 if test -z "$dir_arg"; then
-  trap '(exit $?); exit' 1 2 13 15
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
 
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
@@ -228,9 +240,9 @@
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for `test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -252,12 +264,7 @@
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -385,7 +392,7 @@
 
       case $dstdir in
 	/*) prefix='/';;
-	-*) prefix='./';;
+	[-=\(\)!]*) prefix='./';;
 	*)  prefix='';;
       esac
 
@@ -403,7 +410,7 @@
 
       for d
       do
-	test -z "$d" && continue
+	test X"$d" = X && continue
 
 	prefix=$prefix$d
 	if test -d "$prefix"; then
diff --git a/libs/Makefile.in b/libs/Makefile.in
index 160e052..044e42c 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,11 +94,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -92,6 +109,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -179,10 +201,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -195,10 +219,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -212,7 +236,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -229,6 +252,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -244,7 +271,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -277,6 +303,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -332,6 +359,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -365,7 +393,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -594,13 +621,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -635,10 +659,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/libs/gst/Makefile.am b/libs/gst/Makefile.am
index 65a4499..f1ae69c 100644
--- a/libs/gst/Makefile.am
+++ b/libs/gst/Makefile.am
@@ -4,30 +4,16 @@
 SUBDIRS_CHECK =
 endif
 
-if GST_DISABLE_NET
-SUBDIRS_NET =
-else
-if HAVE_SYS_SOCKET_H
-SUBDIRS_NET = net
-else
-if HAVE_WINSOCK2_H
-SUBDIRS_NET = net
-else
-SUBDIRS_NET =
-endif
-endif
-endif
-
 if GST_DISABLE_REGISTRY
 SUBDIRS_HELPERS =
 else
 SUBDIRS_HELPERS = helpers
 endif
 
-SUBDIRS_ALWAYS = base controller dataprotocol
+SUBDIRS_ALWAYS = base controller net
 
-SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_NET) $(SUBDIRS_HELPERS)
-DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check net helpers
+SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_HELPERS)
+DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check helpers
 
 Android.mk: Makefile.am
 	echo $(PWD)
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index 34d7e40..82e7a95 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,11 +94,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -92,6 +109,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -178,10 +200,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -194,10 +218,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -211,7 +235,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -228,6 +251,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -243,7 +270,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -276,6 +302,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -331,6 +358,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -364,7 +392,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -387,15 +414,11 @@
 top_srcdir = @top_srcdir@
 @HAVE_CHECK_FALSE@SUBDIRS_CHECK = 
 @HAVE_CHECK_TRUE@SUBDIRS_CHECK = check
-@GST_DISABLE_NET_FALSE@@HAVE_SYS_SOCKET_H_FALSE@@HAVE_WINSOCK2_H_FALSE@SUBDIRS_NET = 
-@GST_DISABLE_NET_FALSE@@HAVE_SYS_SOCKET_H_FALSE@@HAVE_WINSOCK2_H_TRUE@SUBDIRS_NET = net
-@GST_DISABLE_NET_FALSE@@HAVE_SYS_SOCKET_H_TRUE@SUBDIRS_NET = net
-@GST_DISABLE_NET_TRUE@SUBDIRS_NET = 
 @GST_DISABLE_REGISTRY_FALSE@SUBDIRS_HELPERS = helpers
 @GST_DISABLE_REGISTRY_TRUE@SUBDIRS_HELPERS = 
-SUBDIRS_ALWAYS = base controller dataprotocol
-SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_NET) $(SUBDIRS_HELPERS)
-DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check net helpers
+SUBDIRS_ALWAYS = base controller net
+SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_HELPERS)
+DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check helpers
 all: all-recursive
 
 .SUFFIXES:
@@ -603,13 +626,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -644,10 +664,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/libs/gst/base/Makefile.am b/libs/gst/base/Makefile.am
index 9a5f50e..18b8e48 100644
--- a/libs/gst/base/Makefile.am
+++ b/libs/gst/base/Makefile.am
@@ -1,8 +1,8 @@
-lib_LTLIBRARIES = libgstbase-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstbase-@GST_API_VERSION@.la
 
-libgstbase_@GST_MAJORMINOR@_la_DEPENDENCIES = \
-	$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
-libgstbase_@GST_MAJORMINOR@_la_SOURCES = \
+libgstbase_@GST_API_VERSION@_la_DEPENDENCIES = \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la
+libgstbase_@GST_API_VERSION@_la_SOURCES = \
 	gstadapter.c		\
 	gstbaseparse.c		\
 	gstbasesink.c		\
@@ -11,19 +11,18 @@
 	gstbitreader.c		\
 	gstbytereader.c		\
 	gstbytewriter.c         \
-	gstcollectpads.c	\
+	gstcollectpads2.c	\
 	gstpushsrc.c		\
-	gsttypefindhelper.c	\
-	gstdataqueue.c
+	gsttypefindhelper.c
 
-libgstbase_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstbase_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
-libgstbase_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstbase_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
+libgstbase_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS)
+libgstbase_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-libgstbase_@GST_MAJORMINOR@includedir =		\
-	$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/base
+libgstbase_@GST_API_VERSION@includedir =		\
+	$(includedir)/gstreamer-@GST_API_VERSION@/gst/base
 
-libgstbase_@GST_MAJORMINOR@include_HEADERS =	\
+libgstbase_@GST_API_VERSION@include_HEADERS =	\
 	gstadapter.h		\
 	gstbaseparse.h		\
 	gstbasesink.h		\
@@ -32,47 +31,50 @@
 	gstbitreader.h		\
 	gstbytereader.h		\
 	gstbytewriter.h         \
-	gstcollectpads.h	\
+	gstcollectpads2.h	\
 	gstpushsrc.h		\
-	gsttypefindhelper.h	\
-	gstdataqueue.h
+	gsttypefindhelper.h
 
 noinst_HEADERS = \
 	gstbytereader-docs.h \
 	gstbytewriter-docs.h \
-	gstbitreader-docs.h
+	gstbitreader-docs.h \
+	gstindex.h
+
+EXTRA_DIST = gstindex.c gstmemindex.c
 
 CLEANFILES = *.gcno *.gcda *.gcov
 
-%.c.gcov: .libs/libgstbase_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstbase_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstbase_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstbase_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstbase_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstbase_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/base \
-	 -:HEADERS $(libgstbase_@GST_MAJORMINOR@include_HEADERS) \
+	 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
+	 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
 if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstBase-@GST_MAJORMINOR@.gir
+BUILT_GIRSOURCES = GstBase-@GST_API_VERSION@.gir
 
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_MAJORMINOR@include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_MAJORMINOR@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/base/%',$(libgstbase_@GST_MAJORMINOR@include_HEADERS))
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@_la_SOURCES))
+gir_cincludes=$(patsubst %,--c-include='gst/base/%',$(libgstbase_@GST_API_VERSION@include_HEADERS))
 
-GstBase-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_MAJORMINOR@.la
+GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
-		--nsversion=@GST_MAJORMINOR@ \
+		--nsversion=@GST_API_VERSION@ \
+		--warn-all \
 		--strip-prefix=Gst \
 		-DGST_USE_UNSTABLE_API \
 		-I$(top_srcdir) \
@@ -82,12 +84,12 @@
 		$(gir_cincludes) \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-		--library=libgstbase-0.11.la \
-		--include=Gst-0.11 \
+		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+		--library=libgstbase-@GST_API_VERSION@.la \
+		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
-		--pkg gstreamer-@GST_MAJORMINOR@ \
-		--pkg-export gstreamer-base-@GST_MAJORMINOR@ \
+		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg-export gstreamer-base-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL,NULL);" \
 		--output $@ \
 		$(gir_headers) \
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index ff99733..3e7bc71 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,7 +55,7 @@
 host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/base
-DIST_COMMON = README $(libgstbase_@GST_MAJORMINOR@include_HEADERS) \
+DIST_COMMON = README $(libgstbase_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -103,33 +120,38 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 	"$(DESTDIR)$(typelibsdir)" \
-	"$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)"
+	"$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-am_libgstbase_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo \
-	libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo
-libgstbase_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstbase_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am_libgstbase_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstbase_@GST_API_VERSION@_la-gstadapter.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbasesink.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbitreader.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbytereader.lo \
+	libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo \
+	libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo \
+	libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo \
+	libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo
+libgstbase_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstbase_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libgstbase_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+libgstbase_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
-	$(libgstbase_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
+	$(libgstbase_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -140,26 +162,31 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstbase_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(libgstbase_@GST_MAJORMINOR@_la_SOURCES)
+SOURCES = $(libgstbase_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libgstbase_@GST_API_VERSION@_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstbase_@GST_MAJORMINOR@include_HEADERS) \
+HEADERS = $(libgstbase_@GST_API_VERSION@include_HEADERS) \
 	$(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -217,10 +244,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -233,10 +262,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -250,7 +279,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -267,6 +295,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -282,7 +314,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -315,6 +346,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -370,6 +402,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -403,7 +436,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -424,11 +456,11 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstbase-@GST_MAJORMINOR@.la
-libgstbase_@GST_MAJORMINOR@_la_DEPENDENCIES = \
-	$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstbase-@GST_API_VERSION@.la
+libgstbase_@GST_API_VERSION@_la_DEPENDENCIES = \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la
 
-libgstbase_@GST_MAJORMINOR@_la_SOURCES = \
+libgstbase_@GST_API_VERSION@_la_SOURCES = \
 	gstadapter.c		\
 	gstbaseparse.c		\
 	gstbasesink.c		\
@@ -437,18 +469,17 @@
 	gstbitreader.c		\
 	gstbytereader.c		\
 	gstbytewriter.c         \
-	gstcollectpads.c	\
+	gstcollectpads2.c	\
 	gstpushsrc.c		\
-	gsttypefindhelper.c	\
-	gstdataqueue.c
+	gsttypefindhelper.c
 
-libgstbase_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstbase_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
-libgstbase_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-libgstbase_@GST_MAJORMINOR@includedir = \
-	$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/base
+libgstbase_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
+libgstbase_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS)
+libgstbase_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstbase_@GST_API_VERSION@includedir = \
+	$(includedir)/gstreamer-@GST_API_VERSION@/gst/base
 
-libgstbase_@GST_MAJORMINOR@include_HEADERS = \
+libgstbase_@GST_API_VERSION@include_HEADERS = \
 	gstadapter.h		\
 	gstbaseparse.h		\
 	gstbasesink.h		\
@@ -457,21 +488,22 @@
 	gstbitreader.h		\
 	gstbytereader.h		\
 	gstbytewriter.h         \
-	gstcollectpads.h	\
+	gstcollectpads2.h	\
 	gstpushsrc.h		\
-	gsttypefindhelper.h	\
-	gstdataqueue.h
+	gsttypefindhelper.h
 
 noinst_HEADERS = \
 	gstbytereader-docs.h \
 	gstbytewriter-docs.h \
-	gstbitreader-docs.h
+	gstbitreader-docs.h \
+	gstindex.h
 
+EXTRA_DIST = gstindex.c gstmemindex.c
 CLEANFILES = *.gcno *.gcda *.gcov $(am__append_1)
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstBase-@GST_MAJORMINOR@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstbase_@GST_MAJORMINOR@include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstbase_@GST_MAJORMINOR@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/base/%',$(libgstbase_@GST_MAJORMINOR@include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstBase-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/base/%',$(libgstbase_@GST_API_VERSION@include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -515,7 +547,6 @@
 $(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -523,6 +554,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -544,8 +577,8 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstbase-@GST_MAJORMINOR@.la: $(libgstbase_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbase_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstbase_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstbase_@GST_MAJORMINOR@_la_OBJECTS) $(libgstbase_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
+libgstbase-@GST_API_VERSION@.la: $(libgstbase_@GST_API_VERSION@_la_OBJECTS) $(libgstbase_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstbase_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstbase_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstbase_@GST_API_VERSION@_la_OBJECTS) $(libgstbase_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -553,138 +586,115 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstadapter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbitreader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytereader.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstadapter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbaseparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasetransform.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbitreader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytereader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytewriter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstcollectpads2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstpushsrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo: gstadapter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstadapter.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo `test -f 'gstadapter.c' || echo '$(srcdir)/'`gstadapter.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstadapter.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstadapter.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstadapter.c' object='libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstadapter.lo: gstadapter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstadapter.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstadapter.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstadapter.lo `test -f 'gstadapter.c' || echo '$(srcdir)/'`gstadapter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstadapter.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstadapter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstadapter.c' object='libgstbase_@GST_API_VERSION@_la-gstadapter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstadapter.lo `test -f 'gstadapter.c' || echo '$(srcdir)/'`gstadapter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstadapter.lo `test -f 'gstadapter.c' || echo '$(srcdir)/'`gstadapter.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo: gstbaseparse.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo `test -f 'gstbaseparse.c' || echo '$(srcdir)/'`gstbaseparse.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbaseparse.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo: gstbaseparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbaseparse.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo `test -f 'gstbaseparse.c' || echo '$(srcdir)/'`gstbaseparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbaseparse.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbaseparse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbaseparse.c' object='libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbaseparse.lo `test -f 'gstbaseparse.c' || echo '$(srcdir)/'`gstbaseparse.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbaseparse.lo `test -f 'gstbaseparse.c' || echo '$(srcdir)/'`gstbaseparse.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo: gstbasesink.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesink.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo `test -f 'gstbasesink.c' || echo '$(srcdir)/'`gstbasesink.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesink.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesink.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbasesink.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbasesink.lo: gstbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbasesink.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesink.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbasesink.lo `test -f 'gstbasesink.c' || echo '$(srcdir)/'`gstbasesink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesink.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbasesink.c' object='libgstbase_@GST_API_VERSION@_la-gstbasesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasesink.lo `test -f 'gstbasesink.c' || echo '$(srcdir)/'`gstbasesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbasesink.lo `test -f 'gstbasesink.c' || echo '$(srcdir)/'`gstbasesink.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo: gstbasesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo `test -f 'gstbasesrc.c' || echo '$(srcdir)/'`gstbasesrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbasesrc.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo: gstbasesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesrc.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo `test -f 'gstbasesrc.c' || echo '$(srcdir)/'`gstbasesrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesrc.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasesrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbasesrc.c' object='libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasesrc.lo `test -f 'gstbasesrc.c' || echo '$(srcdir)/'`gstbasesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbasesrc.lo `test -f 'gstbasesrc.c' || echo '$(srcdir)/'`gstbasesrc.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo: gstbasetransform.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo `test -f 'gstbasetransform.c' || echo '$(srcdir)/'`gstbasetransform.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbasetransform.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo: gstbasetransform.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasetransform.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo `test -f 'gstbasetransform.c' || echo '$(srcdir)/'`gstbasetransform.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasetransform.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbasetransform.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbasetransform.c' object='libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbasetransform.lo `test -f 'gstbasetransform.c' || echo '$(srcdir)/'`gstbasetransform.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbasetransform.lo `test -f 'gstbasetransform.c' || echo '$(srcdir)/'`gstbasetransform.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo: gstbitreader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbitreader.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo `test -f 'gstbitreader.c' || echo '$(srcdir)/'`gstbitreader.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbitreader.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbitreader.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbitreader.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbitreader.lo: gstbitreader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbitreader.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbitreader.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbitreader.lo `test -f 'gstbitreader.c' || echo '$(srcdir)/'`gstbitreader.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbitreader.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbitreader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbitreader.c' object='libgstbase_@GST_API_VERSION@_la-gstbitreader.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbitreader.lo `test -f 'gstbitreader.c' || echo '$(srcdir)/'`gstbitreader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbitreader.lo `test -f 'gstbitreader.c' || echo '$(srcdir)/'`gstbitreader.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo: gstbytereader.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytereader.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo `test -f 'gstbytereader.c' || echo '$(srcdir)/'`gstbytereader.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytereader.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytereader.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbytereader.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbytereader.lo: gstbytereader.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbytereader.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytereader.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbytereader.lo `test -f 'gstbytereader.c' || echo '$(srcdir)/'`gstbytereader.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytereader.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytereader.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbytereader.c' object='libgstbase_@GST_API_VERSION@_la-gstbytereader.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbytereader.lo `test -f 'gstbytereader.c' || echo '$(srcdir)/'`gstbytereader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbytereader.lo `test -f 'gstbytereader.c' || echo '$(srcdir)/'`gstbytereader.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo: gstbytewriter.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo `test -f 'gstbytewriter.c' || echo '$(srcdir)/'`gstbytewriter.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbytewriter.c' object='libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo: gstbytewriter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytewriter.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo `test -f 'gstbytewriter.c' || echo '$(srcdir)/'`gstbytewriter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytewriter.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstbytewriter.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbytewriter.c' object='libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstbytewriter.lo `test -f 'gstbytewriter.c' || echo '$(srcdir)/'`gstbytewriter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstbytewriter.lo `test -f 'gstbytewriter.c' || echo '$(srcdir)/'`gstbytewriter.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo: gstcollectpads.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo `test -f 'gstcollectpads.c' || echo '$(srcdir)/'`gstcollectpads.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcollectpads.c' object='libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo: gstcollectpads2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstcollectpads2.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo `test -f 'gstcollectpads2.c' || echo '$(srcdir)/'`gstcollectpads2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstcollectpads2.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstcollectpads2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcollectpads2.c' object='libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstcollectpads.lo `test -f 'gstcollectpads.c' || echo '$(srcdir)/'`gstcollectpads.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstcollectpads2.lo `test -f 'gstcollectpads2.c' || echo '$(srcdir)/'`gstcollectpads2.c
 
-libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo: gstpushsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo `test -f 'gstpushsrc.c' || echo '$(srcdir)/'`gstpushsrc.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstpushsrc.c' object='libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo: gstpushsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstpushsrc.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo `test -f 'gstpushsrc.c' || echo '$(srcdir)/'`gstpushsrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstpushsrc.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gstpushsrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstpushsrc.c' object='libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstpushsrc.lo `test -f 'gstpushsrc.c' || echo '$(srcdir)/'`gstpushsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gstpushsrc.lo `test -f 'gstpushsrc.c' || echo '$(srcdir)/'`gstpushsrc.c
 
-libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo: gsttypefindhelper.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo `test -f 'gsttypefindhelper.c' || echo '$(srcdir)/'`gsttypefindhelper.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttypefindhelper.c' object='libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo' libtool=yes @AMDEPBACKSLASH@
+libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo: gsttypefindhelper.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.Tpo -c -o libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo `test -f 'gsttypefindhelper.c' || echo '$(srcdir)/'`gsttypefindhelper.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.Tpo $(DEPDIR)/libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttypefindhelper.c' object='libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gsttypefindhelper.lo `test -f 'gsttypefindhelper.c' || echo '$(srcdir)/'`gsttypefindhelper.c
-
-libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo: gstdataqueue.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo -MD -MP -MF $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.Tpo -c -o libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.Tpo $(DEPDIR)/libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstdataqueue.c' object='libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_MAJORMINOR@_la-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstbase_@GST_API_VERSION@_la-gsttypefindhelper.lo `test -f 'gsttypefindhelper.c' || echo '$(srcdir)/'`gsttypefindhelper.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -693,8 +703,11 @@
 	-rm -rf .libs _libs
 install-girDATA: $(gir_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -708,13 +721,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(girdir)" && rm -f $$files
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -728,29 +742,28 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
-install-libgstbase_@GST_MAJORMINOR@includeHEADERS: $(libgstbase_@GST_MAJORMINOR@include_HEADERS)
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstbase_@GST_API_VERSION@includeHEADERS: $(libgstbase_@GST_API_VERSION@include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstbase_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)"
-	@list='$(libgstbase_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstbase_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstbase_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstbase_@GST_API_VERSION@includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)" || exit $$?; \
 	done
 
-uninstall-libgstbase_@GST_MAJORMINOR@includeHEADERS:
+uninstall-libgstbase_@GST_API_VERSION@includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libgstbase_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstbase_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstbase_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstbase_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -838,7 +851,7 @@
 check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstbase_@GST_MAJORMINOR@includedir)"; do \
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstbase_@GST_API_VERSION@includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -851,10 +864,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -891,7 +909,7 @@
 info-am:
 
 install-data-am: install-girDATA \
-	install-libgstbase_@GST_MAJORMINOR@includeHEADERS \
+	install-libgstbase_@GST_API_VERSION@includeHEADERS \
 	install-typelibsDATA
 
 install-dvi: install-dvi-am
@@ -939,7 +957,7 @@
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgstbase_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstbase_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 .MAKE: install-am install-strip
@@ -952,7 +970,7 @@
 	install-dvi-am install-exec install-exec-am install-girDATA \
 	install-html install-html-am install-info install-info-am \
 	install-libLTLIBRARIES \
-	install-libgstbase_@GST_MAJORMINOR@includeHEADERS install-man \
+	install-libgstbase_@GST_API_VERSION@includeHEADERS install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs maintainer-clean \
@@ -960,32 +978,33 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
-	uninstall-libgstbase_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstbase_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 
-%.c.gcov: .libs/libgstbase_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstbase_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstbase_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstbase_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstbase_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstbase_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstbase_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/base \
-	 -:HEADERS $(libgstbase_@GST_MAJORMINOR@include_HEADERS) \
+	 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
+	 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
-@HAVE_INTROSPECTION_TRUE@GstBase-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_MAJORMINOR@.la
+@HAVE_INTROSPECTION_TRUE@GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
-@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		-DGST_USE_UNSTABLE_API \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir) \
@@ -995,12 +1014,12 @@
 @HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(top_builddir)/gst \
 @HAVE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/gst \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--library=libgstbase-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--include=Gst-0.11 \
+@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstbase-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
-@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-base-@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-base-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
 @HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index 797eaaa..3342536 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -62,7 +62,8 @@
  *     const guint8 *data = gst_adapter_map (adapter, 512);
  *     // use flowreturn as an error value
  *     ret = my_library_foo (data);
- *     gst_adapter_unmap (adapter, 512);
+ *     gst_adapter_unmap (adapter);
+ *     gst_adapter_flush (adapter, 512);
  *   }
  *
  *   gst_object_unref (this);
@@ -128,14 +129,15 @@
 
 struct _GstAdapterPrivate
 {
-  GstClockTime timestamp;
-  guint64 distance;
+  GstClockTime pts;
+  guint64 pts_distance;
+  GstClockTime dts;
+  guint64 dts_distance;
 
   gsize scan_offset;
   GSList *scan_entry;
 
-  gpointer cdata;
-  gsize csize;
+  GstMapInfo info;
 };
 
 #define _do_init \
@@ -163,8 +165,10 @@
   adapter->priv = GST_ADAPTER_GET_PRIVATE (adapter);
   adapter->assembled_data = g_malloc (DEFAULT_SIZE);
   adapter->assembled_size = DEFAULT_SIZE;
-  adapter->priv->timestamp = GST_CLOCK_TIME_NONE;
-  adapter->priv->distance = 0;
+  adapter->priv->pts = GST_CLOCK_TIME_NONE;
+  adapter->priv->pts_distance = 0;
+  adapter->priv->dts = GST_CLOCK_TIME_NONE;
+  adapter->priv->dts_distance = 0;
 }
 
 static void
@@ -209,8 +213,15 @@
 void
 gst_adapter_clear (GstAdapter * adapter)
 {
+  GstAdapterPrivate *priv;
+
   g_return_if_fail (GST_IS_ADAPTER (adapter));
 
+  priv = adapter->priv;
+
+  if (priv->info.memory)
+    gst_adapter_unmap (adapter);
+
   g_slist_foreach (adapter->buflist, (GFunc) gst_mini_object_unref, NULL);
   g_slist_free (adapter->buflist);
   adapter->buflist = NULL;
@@ -218,23 +229,30 @@
   adapter->size = 0;
   adapter->skip = 0;
   adapter->assembled_len = 0;
-  adapter->priv->timestamp = GST_CLOCK_TIME_NONE;
-  adapter->priv->distance = 0;
-  adapter->priv->scan_offset = 0;
-  adapter->priv->scan_entry = NULL;
+  priv->pts = GST_CLOCK_TIME_NONE;
+  priv->pts_distance = 0;
+  priv->dts = GST_CLOCK_TIME_NONE;
+  priv->dts_distance = 0;
+  priv->scan_offset = 0;
+  priv->scan_entry = NULL;
 }
 
 static inline void
-update_timestamp (GstAdapter * adapter, GstBuffer * buf)
+update_timestamps (GstAdapter * adapter, GstBuffer * buf)
 {
-  GstClockTime timestamp;
+  GstClockTime pts, dts;
 
-  timestamp = GST_BUFFER_TIMESTAMP (buf);
-  if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
-    GST_LOG_OBJECT (adapter, "new timestamp %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (timestamp));
-    adapter->priv->timestamp = timestamp;
-    adapter->priv->distance = 0;
+  pts = GST_BUFFER_PTS (buf);
+  if (GST_CLOCK_TIME_IS_VALID (pts)) {
+    GST_LOG_OBJECT (adapter, "new pts %" GST_TIME_FORMAT, GST_TIME_ARGS (pts));
+    adapter->priv->pts = pts;
+    adapter->priv->pts_distance = 0;
+  }
+  dts = GST_BUFFER_DTS (buf);
+  if (GST_CLOCK_TIME_IS_VALID (dts)) {
+    GST_LOG_OBJECT (adapter, "new dts %" GST_TIME_FORMAT, GST_TIME_ARGS (dts));
+    adapter->priv->dts = dts;
+    adapter->priv->dts_distance = 0;
   }
 }
 
@@ -267,6 +285,8 @@
   csize = MIN (bsize - skip, size);
   GST_DEBUG ("bsize %" G_GSIZE_FORMAT ", skip %" G_GSIZE_FORMAT ", csize %"
       G_GSIZE_FORMAT, bsize, skip, csize);
+  GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, adapter, "extract %" G_GSIZE_FORMAT
+      " bytes", csize);
   gst_buffer_extract (buf, skip, dest, csize);
   size -= csize;
   dest += csize;
@@ -278,6 +298,8 @@
     bsize = gst_buffer_get_size (buf);
     if (G_LIKELY (bsize > 0)) {
       csize = MIN (bsize, size);
+      GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, adapter,
+          "extract %" G_GSIZE_FORMAT " bytes", csize);
       gst_buffer_extract (buf, 0, dest, csize);
       size -= csize;
       dest += csize;
@@ -306,21 +328,21 @@
 
   /* Note: merging buffers at this point is premature. */
   if (G_UNLIKELY (adapter->buflist == NULL)) {
-    GST_LOG_OBJECT (adapter, "pushing first %" G_GSIZE_FORMAT " bytes", size);
+    GST_LOG_OBJECT (adapter, "pushing %p first %" G_GSIZE_FORMAT " bytes",
+        buf, size);
     adapter->buflist = adapter->buflist_end = g_slist_append (NULL, buf);
-    update_timestamp (adapter, buf);
+    update_timestamps (adapter, buf);
   } else {
     /* Otherwise append to the end, and advance our end pointer */
-    GST_LOG_OBJECT (adapter, "pushing %" G_GSIZE_FORMAT " bytes at end, "
-        "size now %" G_GSIZE_FORMAT, size, adapter->size);
+    GST_LOG_OBJECT (adapter, "pushing %p %" G_GSIZE_FORMAT " bytes at end, "
+        "size now %" G_GSIZE_FORMAT, buf, size, adapter->size);
     adapter->buflist_end = g_slist_append (adapter->buflist_end, buf);
     adapter->buflist_end = g_slist_next (adapter->buflist_end);
   }
 }
 
 /* Internal method only. Tries to merge buffers at the head of the queue
- * to form a single larger buffer of size 'size'. Only merges buffers that
- * where 'gst_buffer_is_span_fast' returns TRUE.
+ * to form a single larger buffer of size 'size'.
  *
  * Returns TRUE if it managed to merge anything.
  */
@@ -346,15 +368,12 @@
 
   while (g != NULL && hsize < size) {
     cur = g->data;
-    if (!gst_buffer_is_span_fast (head, cur))
-      return ret;
-
     /* Merge the head buffer and the next in line */
     GST_LOG_OBJECT (adapter, "Merging buffers of size %" G_GSIZE_FORMAT " & %"
         G_GSIZE_FORMAT " in search of target %" G_GSIZE_FORMAT,
         hsize, gst_buffer_get_size (cur), size);
 
-    head = gst_buffer_join (head, cur);
+    head = gst_buffer_append (head, cur);
     hsize = gst_buffer_get_size (head);
     ret = TRUE;
 
@@ -395,9 +414,10 @@
  * Returns: (transfer none) (array length=size): a pointer to the first
  *     @size bytes of data, or NULL
  */
-const guint8 *
+gconstpointer
 gst_adapter_map (GstAdapter * adapter, gsize size)
 {
+  GstAdapterPrivate *priv;
   GstBuffer *cur;
   gsize skip, csize;
   gsize toreuse, tocopy;
@@ -406,6 +426,11 @@
   g_return_val_if_fail (GST_IS_ADAPTER (adapter), NULL);
   g_return_val_if_fail (size > 0, NULL);
 
+  priv = adapter->priv;
+
+  if (priv->info.memory)
+    gst_adapter_unmap (adapter);
+
   /* we don't have enough data, return NULL. This is unlikely
    * as one usually does an _available() first instead of peeking a
    * random size. */
@@ -422,10 +447,10 @@
 
     csize = gst_buffer_get_size (cur);
     if (csize >= size + skip) {
-      data = gst_buffer_map (cur, &csize, NULL, GST_MAP_READ);
-      adapter->priv->cdata = data;
-      adapter->priv->csize = csize;
-      return data + skip;
+      if (!gst_buffer_map (cur, &priv->info, GST_MAP_READ))
+        return FALSE;
+
+      return (guint8 *) priv->info.data + skip;
     }
     /* We may be able to efficiently merge buffers in our pool to
      * gather a big enough chunk to return it from the head buffer directly */
@@ -467,24 +492,24 @@
 /**
  * gst_adapter_unmap:
  * @adapter: a #GstAdapter
- * @flush: the amount of bytes to flush
  *
- * Releases the memory obtained with the last gst_adapter_map() and flushes
- * @size bytes from the adapter.
+ * Releases the memory obtained with the last gst_adapter_map().
  */
 void
-gst_adapter_unmap (GstAdapter * adapter, gsize flush)
+gst_adapter_unmap (GstAdapter * adapter)
 {
+  GstAdapterPrivate *priv;
+
   g_return_if_fail (GST_IS_ADAPTER (adapter));
 
-  if (adapter->priv->cdata) {
-    GstBuffer *cur = adapter->buflist->data;
-    gst_buffer_unmap (cur, adapter->priv->cdata, adapter->priv->csize);
-    adapter->priv->cdata = NULL;
-  }
+  priv = adapter->priv;
 
-  if (flush)
-    gst_adapter_flush_unchecked (adapter, flush);
+  if (priv->info.memory) {
+    GstBuffer *cur = adapter->buflist->data;
+    GST_LOG_OBJECT (adapter, "unmap memory buffer %p", cur);
+    gst_buffer_unmap (cur, &priv->info);
+    priv->info.memory = NULL;
+  }
 }
 
 /**
@@ -504,7 +529,7 @@
  * Since: 0.10.12
  */
 void
-gst_adapter_copy (GstAdapter * adapter, guint8 * dest, gsize offset, gsize size)
+gst_adapter_copy (GstAdapter * adapter, gpointer dest, gsize offset, gsize size)
 {
   g_return_if_fail (GST_IS_ADAPTER (adapter));
   g_return_if_fail (size > 0);
@@ -535,6 +560,9 @@
 
   priv = adapter->priv;
 
+  if (priv->info.memory)
+    gst_adapter_unmap (adapter);
+
   /* clear state */
   adapter->size -= flush;
   adapter->assembled_len = 0;
@@ -542,7 +570,8 @@
   /* take skip into account */
   flush += adapter->skip;
   /* distance is always at least the amount of skipped bytes */
-  priv->distance -= adapter->skip;
+  priv->pts_distance -= adapter->skip;
+  priv->dts_distance -= adapter->skip;
 
   g = adapter->buflist;
   cur = g->data;
@@ -550,7 +579,8 @@
   while (flush >= size) {
     /* can skip whole buffer */
     GST_LOG_OBJECT (adapter, "flushing out head buffer");
-    priv->distance += size;
+    priv->pts_distance += size;
+    priv->dts_distance += size;
     flush -= size;
 
     gst_buffer_unref (cur);
@@ -561,15 +591,16 @@
       adapter->buflist_end = NULL;
       break;
     }
-    /* there is a new head buffer, update the timestamp */
+    /* there is a new head buffer, update the timestamps */
     cur = g->data;
-    update_timestamp (adapter, cur);
+    update_timestamps (adapter, cur);
     size = gst_buffer_get_size (cur);
   }
   adapter->buflist = g;
   /* account for the remaining bytes */
   adapter->skip = flush;
-  adapter->priv->distance += flush;
+  adapter->priv->pts_distance += flush;
+  adapter->priv->dts_distance += flush;
   /* invalidate scan position */
   priv->scan_offset = 0;
   priv->scan_entry = NULL;
@@ -618,6 +649,8 @@
     /* reuse what we can from the already assembled data */
     if (toreuse) {
       GST_LOG_OBJECT (adapter, "reusing %" G_GSIZE_FORMAT " bytes", toreuse);
+      GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, adapter,
+          "memcpy %" G_GSIZE_FORMAT " bytes", toreuse);
       memcpy (data, adapter->assembled_data, toreuse);
     }
   }
@@ -644,10 +677,10 @@
  * Returns: (transfer full) (array length=nbytes): oven-fresh hot data, or
  *     #NULL if @nbytes bytes are not available
  */
-guint8 *
+gpointer
 gst_adapter_take (GstAdapter * adapter, gsize nbytes)
 {
-  guint8 *data;
+  gpointer data;
 
   g_return_val_if_fail (GST_IS_ADAPTER (adapter), NULL);
   g_return_val_if_fail (nbytes > 0, NULL);
@@ -735,9 +768,7 @@
 
   data = gst_adapter_take_internal (adapter, nbytes);
 
-  buffer = gst_buffer_new ();
-  gst_buffer_take_memory (buffer, -1,
-      gst_memory_new_wrapped (0, data, g_free, nbytes, 0, nbytes));
+  buffer = gst_buffer_new_wrapped (data, nbytes);
 
 done:
   gst_adapter_flush_unchecked (adapter, nbytes);
@@ -767,7 +798,7 @@
 GList *
 gst_adapter_take_list (GstAdapter * adapter, gsize nbytes)
 {
-  GList *result = NULL, *tail = NULL;
+  GQueue queue = G_QUEUE_INIT;
   GstBuffer *cur;
   gsize hsize, skip;
 
@@ -783,15 +814,11 @@
 
     cur = gst_adapter_take_buffer (adapter, hsize);
 
-    if (result == NULL) {
-      result = tail = g_list_append (result, cur);
-    } else {
-      tail = g_list_append (tail, cur);
-      tail = g_list_next (tail);
-    }
+    g_queue_push_tail (&queue, cur);
+
     nbytes -= hsize;
   }
-  return result;
+  return queue.head;
 }
 
 /**
@@ -855,32 +882,57 @@
 }
 
 /**
- * gst_adapter_prev_timestamp:
+ * gst_adapter_prev_pts:
  * @adapter: a #GstAdapter
  * @distance: (out) (allow-none): pointer to location for distance, or NULL
  *
- * Get the timestamp that was before the current byte in the adapter. When
- * @distance is given, the amount of bytes between the timestamp and the current
+ * Get the pts that was before the current byte in the adapter. When
+ * @distance is given, the amount of bytes between the pts and the current
  * position is returned.
  *
- * The timestamp is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
+ * The pts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
  * the adapter is first created or when it is cleared. This also means that before
- * the first byte with a timestamp is removed from the adapter, the timestamp
+ * the first byte with a pts is removed from the adapter, the pts
  * and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.
  *
- * Returns: The previously seen timestamp.
- *
- * Since: 0.10.24
+ * Returns: The previously seen pts.
  */
 GstClockTime
-gst_adapter_prev_timestamp (GstAdapter * adapter, guint64 * distance)
+gst_adapter_prev_pts (GstAdapter * adapter, guint64 * distance)
 {
   g_return_val_if_fail (GST_IS_ADAPTER (adapter), GST_CLOCK_TIME_NONE);
 
   if (distance)
-    *distance = adapter->priv->distance;
+    *distance = adapter->priv->pts_distance;
 
-  return adapter->priv->timestamp;
+  return adapter->priv->pts;
+}
+
+/**
+ * gst_adapter_prev_dts:
+ * @adapter: a #GstAdapter
+ * @distance: (out) (allow-none): pointer to location for distance, or NULL
+ *
+ * Get the dts that was before the current byte in the adapter. When
+ * @distance is given, the amount of bytes between the dts and the current
+ * position is returned.
+ *
+ * The dts is reset to GST_CLOCK_TIME_NONE and the distance is set to 0 when
+ * the adapter is first created or when it is cleared. This also means that before
+ * the first byte with a dts is removed from the adapter, the dts
+ * and distance returned are GST_CLOCK_TIME_NONE and 0 respectively.
+ *
+ * Returns: The previously seen dts.
+ */
+GstClockTime
+gst_adapter_prev_dts (GstAdapter * adapter, guint64 * distance)
+{
+  g_return_val_if_fail (GST_IS_ADAPTER (adapter), GST_CLOCK_TIME_NONE);
+
+  if (distance)
+    *distance = adapter->priv->dts_distance;
+
+  return adapter->priv->dts;
 }
 
 /**
@@ -913,9 +965,10 @@
     guint32 pattern, gsize offset, gsize size, guint32 * value)
 {
   GSList *g;
-  gsize skip, bsize, osize, i;
+  gsize skip, bsize, i;
   guint32 state;
-  guint8 *bdata, *odata;
+  GstMapInfo info;
+  guint8 *bdata;
   GstBuffer *buf;
 
   g_return_val_if_fail (size > 0, -1);
@@ -949,10 +1002,11 @@
     bsize = gst_buffer_get_size (buf);
   }
   /* get the data now */
-  odata = gst_buffer_map (buf, &osize, NULL, GST_MAP_READ);
+  if (!gst_buffer_map (buf, &info, GST_MAP_READ))
+    return -1;
 
-  bdata = odata + skip;
-  bsize = osize - skip;
+  bdata = (guint8 *) info.data + skip;
+  bsize = info.size - skip;
   skip = 0;
 
   /* set the state to something that does not match */
@@ -969,7 +1023,7 @@
         if (G_LIKELY (skip + i >= 3)) {
           if (G_LIKELY (value))
             *value = state;
-          gst_buffer_unmap (buf, odata, osize);
+          gst_buffer_unmap (buf, &info);
           return offset + skip + i - 3;
         }
       }
@@ -981,17 +1035,17 @@
     /* nothing found yet, go to next buffer */
     skip += bsize;
     g = g_slist_next (g);
-    adapter->priv->scan_offset += osize;
+    adapter->priv->scan_offset += info.size;
     adapter->priv->scan_entry = g;
-    gst_buffer_unmap (buf, odata, osize);
+    gst_buffer_unmap (buf, &info);
     buf = g->data;
 
-    odata = gst_buffer_map (buf, &osize, NULL, GST_MAP_READ);
-    bsize = osize;
-    bdata = odata;
+    gst_buffer_map (buf, &info, GST_MAP_READ);
+    bsize = info.size;
+    bdata = info.data;
   } while (TRUE);
 
-  gst_buffer_unmap (buf, odata, osize);
+  gst_buffer_unmap (buf, &info);
 
   /* nothing found */
   return -1;
diff --git a/libs/gst/base/gstadapter.h b/libs/gst/base/gstadapter.h
index aa6730b..17bf323 100644
--- a/libs/gst/base/gstadapter.h
+++ b/libs/gst/base/gstadapter.h
@@ -57,7 +57,7 @@
   gsize         skip;
 
   /* we keep state of assembled pieces */
-  guint8 *      assembled_data;
+  gpointer      assembled_data;
   gsize         assembled_size;
   gsize         assembled_len;
 
@@ -75,22 +75,23 @@
 
 GType                   gst_adapter_get_type            (void);
 
-GstAdapter *            gst_adapter_new                 (void);
+GstAdapter *            gst_adapter_new                 (void) G_GNUC_MALLOC;
 
 void                    gst_adapter_clear               (GstAdapter *adapter);
 void                    gst_adapter_push                (GstAdapter *adapter, GstBuffer* buf);
-const guint8 *          gst_adapter_map                 (GstAdapter *adapter, gsize size);
-void                    gst_adapter_unmap               (GstAdapter *adapter, gsize flush);
-void                    gst_adapter_copy                (GstAdapter *adapter, guint8 *dest,
+gconstpointer           gst_adapter_map                 (GstAdapter *adapter, gsize size);
+void                    gst_adapter_unmap               (GstAdapter *adapter);
+void                    gst_adapter_copy                (GstAdapter *adapter, gpointer dest,
                                                          gsize offset, gsize size);
 void                    gst_adapter_flush               (GstAdapter *adapter, gsize flush);
-guint8*                 gst_adapter_take                (GstAdapter *adapter, gsize nbytes);
+gpointer                gst_adapter_take                (GstAdapter *adapter, gsize nbytes);
 GstBuffer*              gst_adapter_take_buffer         (GstAdapter *adapter, gsize nbytes);
 GList*                  gst_adapter_take_list           (GstAdapter *adapter, gsize nbytes);
 gsize                   gst_adapter_available           (GstAdapter *adapter);
 gsize                   gst_adapter_available_fast      (GstAdapter *adapter);
 
-GstClockTime            gst_adapter_prev_timestamp      (GstAdapter *adapter, guint64 *distance);
+GstClockTime            gst_adapter_prev_pts            (GstAdapter *adapter, guint64 *distance);
+GstClockTime            gst_adapter_prev_dts            (GstAdapter *adapter, guint64 *distance);
 
 gsize                   gst_adapter_masked_scan_uint32  (GstAdapter * adapter, guint32 mask,
                                                          guint32 pattern, gsize offset, gsize size);
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index ed4c890..8067e53 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -2,6 +2,8 @@
  * Copyright (C) 2008 Nokia Corporation. All rights reserved.
  *   Contact: Stefan Kost <stefan.kost@nokia.com>
  * Copyright (C) 2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>.
+ * Copyright (C) 2011, Hewlett-Packard Development Company, L.P.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -48,14 +50,16 @@
  * <listitem>
  *   <itemizedlist><title>Set-up phase</title>
  *   <listitem><para>
- *     GstBaseParse class calls @set_sink_caps to inform the subclass about
- *     incoming sinkpad caps. Subclass should set the srcpad caps accordingly.
- *   </para></listitem>
- *   <listitem><para>
  *     GstBaseParse calls @start to inform subclass that data processing is
  *     about to start now.
  *   </para></listitem>
  *   <listitem><para>
+ *     GstBaseParse class calls @set_sink_caps to inform the subclass about
+ *     incoming sinkpad caps. Subclass could already set the srcpad caps
+ *     accordingly, but this might be delayed until calling
+ *     gst_base_parse_finish_frame() with a non-queued frame.
+ *   </para></listitem>
+ *   <listitem><para>
  *      At least at this point subclass needs to tell the GstBaseParse class
  *      how big data chunks it wants to receive (min_frame_size). It can do
  *      this with gst_base_parse_set_min_frame_size().
@@ -76,35 +80,40 @@
  *     </para></listitem>
  *     <listitem><para>
  *       A buffer of (at least) min_frame_size bytes is passed to subclass with
- *       @check_valid_frame. Subclass checks the contents and returns TRUE
- *       if the buffer contains a valid frame. It also needs to set the
- *       @framesize according to the detected frame size. If buffer didn't
- *       contain a valid frame, this call must return FALSE and optionally
- *       set the @skipsize value to inform base class that how many bytes
- *       it needs to skip in order to find a valid frame. @framesize can always
- *       indicate a new minimum for current frame parsing.  Indicating G_MAXUINT
- *       for requested amount means subclass simply needs best available
- *       subsequent data.  In push mode this amounts to an additional input buffer
- *       (thus minimal additional latency), in pull mode this amounts to some
- *       arbitrary reasonable buffer size increase.  The passed buffer
- *       is read-only.  Note that @check_valid_frame might receive any small
- *       amount of input data when leftover data is being drained (e.g. at EOS).
- *     </para></listitem>
- *     <listitem><para>
- *       After valid frame is found, it will be passed again to subclass with
- *       @parse_frame call. Now subclass is responsible for parsing the
- *       frame contents and setting the caps, and buffer metadata (e.g.
- *       buffer timestamp and duration, or keyframe if applicable).
+ *       @handle_frame. Subclass checks the contents and can optionally
+ *       return GST_FLOW_OK along with an amount of data to be skipped to find
+ *       a valid frame (which will result in a subsequent DISCONT).
+ *       If, otherwise, the buffer does not hold a complete frame,
+ *       @handle_frame can merely return and will be called again when additional
+ *       data is available.  In push mode this amounts to an
+ *       additional input buffer (thus minimal additional latency), in pull mode
+ *       this amounts to some arbitrary reasonable buffer size increase.
+ *       Of course, gst_base_parse_set_min_size() could also be used if a very
+ *       specific known amount of additional data is required.
+ *       If, however, the buffer holds a complete valid frame, it can pass
+ *       the size of this frame to gst_base_parse_finish_frame().
+ *       If acting as a converter, it can also merely indicate consumed input data
+ *       while simultaneously providing custom output data.
+ *       Note that baseclass performs some processing (such as tracking
+ *       overall consumed data rate versus duration) for each finished frame,
+ *       but other state is only updated upon each call to @handle_frame
+ *       (such as tracking upstream input timestamp).
+ *       </para><para>
+ *       Subclass is also responsible for setting the buffer metadata
+ *       (e.g. buffer timestamp and duration, or keyframe if applicable).
  *       (although the latter can also be done by GstBaseParse if it is
  *       appropriately configured, see below).  Frame is provided with
  *       timestamp derived from upstream (as much as generally possible),
  *       duration obtained from configuration (see below), and offset
  *       if meaningful (in pull mode).
+ *       </para><para>
+ *       Note that @check_valid_frame might receive any small
+ *       amount of input data when leftover data is being drained (e.g. at EOS).
  *     </para></listitem>
  *     <listitem><para>
- *       Finally the buffer can be pushed downstream and the parsing loop starts
- *       over again.  Just prior to actually pushing the buffer in question,
- *       it is passed to @pre_push_buffer which gives subclass yet one
+ *       As part of finish frame processing,
+ *       just prior to actually pushing the buffer in question,
+ *       it is passed to @pre_push_frame which gives subclass yet one
  *       last chance to examine buffer metadata, or to send some custom (tag)
  *       events, or to perform custom (segment) filtering.
  *     </para></listitem>
@@ -152,12 +161,9 @@
  *      done with gst_base_parse_set_min_frame_size() function.
  *   </para></listitem>
  *   <listitem><para>
- *      Examine data chunks passed to subclass with @check_valid_frame
- *      and tell if they contain a valid frame
- *   </para></listitem>
- *   <listitem><para>
- *      Set the caps and timestamp to frame that is passed to subclass with
- *      @parse_frame function.
+ *      Examine data chunks passed to subclass with @handle_frame and pass
+ *      proper frame(s) to gst_base_parse_finish_frame(), and setting src pad
+ *      caps and timestamps on frame.
  *   </para></listitem>
  *   <listitem><para>Provide conversion functions</para></listitem>
  *   <listitem><para>
@@ -203,6 +209,11 @@
 
 #include "gstbaseparse.h"
 
+/* FIXME: get rid of old GstIndex code */
+#include "gstindex.h"
+#include "gstindex.c"
+#include "gstmemindex.c"
+
 #define GST_BASE_PARSE_FRAME_PRIVATE_FLAG_NOALLOC  (1 << 0)
 
 #define MIN_FRAMES_TO_POST_BITRATE 10
@@ -224,13 +235,14 @@
 
 struct _GstBaseParsePrivate
 {
-  GstActivateMode pad_mode;
+  GstPadMode pad_mode;
 
   GstAdapter *adapter;
 
   gint64 duration;
   GstFormat duration_fmt;
   gint64 estimated_duration;
+  gint64 estimated_drift;
 
   guint min_frame_size;
   gboolean passthrough;
@@ -254,6 +266,7 @@
   GstClockTime frame_duration;
   gboolean seen_keyframe;
   gboolean is_video;
+  gint flushed;
 
   guint64 framecount;
   guint64 bytecount;
@@ -270,8 +283,6 @@
   guint max_bitrate;
   guint posted_avg_bitrate;
 
-  GList *pending_events;
-
   /* frames/buffers that are queued and ready to go on OK */
   GQueue queued_frames;
 
@@ -281,7 +292,7 @@
   GstIndex *index;
   gint index_id;
   gboolean own_index;
-  GStaticMutex index_lock;
+  GMutex index_lock;
 
   /* seek table entries only maintained if upstream is BYTE seekable */
   gboolean upstream_seekable;
@@ -301,19 +312,31 @@
 
   /* reverse playback */
   GSList *buffers_pending;
+  GSList *buffers_head;
   GSList *buffers_queued;
   GSList *buffers_send;
   GstClockTime last_ts;
   gint64 last_offset;
 
+  /* Pending serialized events */
+  GList *pending_events;
   /* Newsegment event to be sent after SEEK */
-  GstEvent *pending_segment;
+  gboolean pending_segment;
 
-  /* Segment event that closes the running segment prior to SEEK */
-  GstEvent *close_segment;
+  /* offset of last parsed frame/data */
+  gint64 prev_offset;
+  /* force a new frame, regardless of offset */
+  gboolean new_frame;
+  /* whether we are merely scanning for a frame */
+  gboolean scanning;
+  /* ... and resulting frame, if any */
+  GstBaseParseFrame *scanned_frame;
 
-  /* push mode helper frame */
-  GstBaseParseFrame frame;
+  /* TRUE if we're still detecting the format, i.e.
+   * if ::detect() is still called for future buffers */
+  gboolean detecting;
+  GList *detect_buffers;
+  guint detect_buffers_size;
 };
 
 typedef struct _GstBaseParseSeek
@@ -324,6 +347,11 @@
   GstClockTime start_ts;
 } GstBaseParseSeek;
 
+#define GST_BASE_PARSE_INDEX_LOCK(parse) \
+  g_mutex_lock (&parse->priv->index_lock);
+#define GST_BASE_PARSE_INDEX_UNLOCK(parse) \
+  g_mutex_unlock (&parse->priv->index_lock);
+
 static GstElementClass *parent_class = NULL;
 
 static void gst_base_parse_class_init (GstBaseParseClass * klass);
@@ -362,28 +390,33 @@
     GstStateChange transition);
 static void gst_base_parse_reset (GstBaseParse * parse);
 
+#if 0
 static void gst_base_parse_set_index (GstElement * element, GstIndex * index);
 static GstIndex *gst_base_parse_get_index (GstElement * element);
+#endif
 
-static gboolean gst_base_parse_sink_activate (GstPad * sinkpad);
-static gboolean gst_base_parse_sink_activate_push (GstPad * pad,
-    gboolean active);
-static gboolean gst_base_parse_sink_activate_pull (GstPad * pad,
-    gboolean active);
+static gboolean gst_base_parse_sink_activate (GstPad * sinkpad,
+    GstObject * parent);
+static gboolean gst_base_parse_sink_activate_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
 static gboolean gst_base_parse_handle_seek (GstBaseParse * parse,
     GstEvent * event);
 static void gst_base_parse_handle_tag (GstBaseParse * parse, GstEvent * event);
 
-static gboolean gst_base_parse_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_base_parse_sink_event (GstPad * pad, GstEvent * event);
-static gboolean gst_base_parse_query (GstPad * pad, GstQuery * query);
-static const GstQueryType *gst_base_parse_get_querytypes (GstPad * pad);
+static gboolean gst_base_parse_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_base_parse_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
-static GstFlowReturn gst_base_parse_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_base_parse_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_base_parse_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+
+static GstFlowReturn gst_base_parse_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
 static void gst_base_parse_loop (GstPad * pad);
 
-static gboolean gst_base_parse_check_frame (GstBaseParse * parse,
-    GstBaseParseFrame * frame, guint * framesize, gint * skipsize);
 static GstFlowReturn gst_base_parse_parse_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame);
 
@@ -403,8 +436,11 @@
 static GstFlowReturn gst_base_parse_locate_time (GstBaseParse * parse,
     GstClockTime * _time, gint64 * _offset);
 
-static GstFlowReturn gst_base_parse_process_fragment (GstBaseParse * parse,
-    gboolean push_only);
+static GstFlowReturn gst_base_parse_start_fragment (GstBaseParse * parse);
+static GstFlowReturn gst_base_parse_finish_fragment (GstBaseParse * parse,
+    gboolean prev_head);
+
+static inline GstFlowReturn gst_base_parse_check_sync (GstBaseParse * parse);
 
 static gboolean gst_base_parse_is_seekable (GstBaseParse * parse);
 
@@ -418,28 +454,37 @@
       NULL);
   g_slist_free (parse->priv->buffers_pending);
   parse->priv->buffers_pending = NULL;
+  g_slist_foreach (parse->priv->buffers_head, (GFunc) gst_buffer_unref, NULL);
+  g_slist_free (parse->priv->buffers_head);
+  parse->priv->buffers_head = NULL;
   g_slist_foreach (parse->priv->buffers_send, (GFunc) gst_buffer_unref, NULL);
   g_slist_free (parse->priv->buffers_send);
   parse->priv->buffers_send = NULL;
+
+  g_list_foreach (parse->priv->detect_buffers, (GFunc) gst_buffer_unref, NULL);
+  g_list_free (parse->priv->detect_buffers);
+  parse->priv->detect_buffers = NULL;
+  parse->priv->detect_buffers_size = 0;
+
+  g_queue_foreach (&parse->priv->queued_frames,
+      (GFunc) gst_base_parse_frame_free, NULL);
+  g_queue_clear (&parse->priv->queued_frames);
+
+  gst_buffer_replace (&parse->priv->cache, NULL);
+
+  g_list_foreach (parse->priv->pending_events, (GFunc) gst_event_unref, NULL);
+  g_list_free (parse->priv->pending_events);
+  parse->priv->pending_events = NULL;
+  parse->priv->pending_segment = FALSE;
 }
 
 static void
 gst_base_parse_finalize (GObject * object)
 {
   GstBaseParse *parse = GST_BASE_PARSE (object);
-  GstEvent **p_ev;
 
   g_object_unref (parse->priv->adapter);
 
-  if (parse->priv->pending_segment) {
-    p_ev = &parse->priv->pending_segment;
-    gst_event_replace (p_ev, NULL);
-  }
-  if (parse->priv->close_segment) {
-    p_ev = &parse->priv->close_segment;
-    gst_event_replace (p_ev, NULL);
-  }
-
   if (parse->priv->cache) {
     gst_buffer_unref (parse->priv->cache);
     parse->priv->cache = NULL;
@@ -449,17 +494,13 @@
       NULL);
   g_list_free (parse->priv->pending_events);
   parse->priv->pending_events = NULL;
-
-  g_queue_foreach (&parse->priv->queued_frames,
-      (GFunc) gst_base_parse_frame_free, NULL);
-  g_queue_clear (&parse->priv->queued_frames);
+  parse->priv->pending_segment = FALSE;
 
   if (parse->priv->index) {
     gst_object_unref (parse->priv->index);
     parse->priv->index = NULL;
   }
-
-  g_static_mutex_free (&parse->priv->index_lock);
+  g_mutex_clear (&parse->priv->index_lock);
 
   gst_base_parse_clear_queues (parse);
 
@@ -480,12 +521,14 @@
   gstelement_class = (GstElementClass *) klass;
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_parse_change_state);
+
+#if 0
   gstelement_class->set_index = GST_DEBUG_FUNCPTR (gst_base_parse_set_index);
   gstelement_class->get_index = GST_DEBUG_FUNCPTR (gst_base_parse_get_index);
+#endif
 
   /* Default handlers */
-  klass->check_valid_frame = gst_base_parse_check_frame;
-  klass->parse_frame = gst_base_parse_parse_frame;
+  klass->sink_event = gst_base_parse_sink_eventfunc;
   klass->src_event = gst_base_parse_src_eventfunc;
   klass->convert = gst_base_parse_convert_default;
 
@@ -508,14 +551,15 @@
   parse->sinkpad = gst_pad_new_from_template (pad_template, "sink");
   gst_pad_set_event_function (parse->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_parse_sink_event));
+  gst_pad_set_query_function (parse->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_base_parse_sink_query));
   gst_pad_set_chain_function (parse->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_parse_chain));
   gst_pad_set_activate_function (parse->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_parse_sink_activate));
-  gst_pad_set_activatepush_function (parse->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_parse_sink_activate_push));
-  gst_pad_set_activatepull_function (parse->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_parse_sink_activate_pull));
+  gst_pad_set_activatemode_function (parse->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_base_parse_sink_activate_mode));
+  GST_PAD_SET_PROXY_ALLOCATION (parse->sinkpad);
   gst_element_add_pad (GST_ELEMENT (parse), parse->sinkpad);
 
   GST_DEBUG_OBJECT (parse, "sinkpad created");
@@ -526,10 +570,8 @@
   parse->srcpad = gst_pad_new_from_template (pad_template, "src");
   gst_pad_set_event_function (parse->srcpad,
       GST_DEBUG_FUNCPTR (gst_base_parse_src_event));
-  gst_pad_set_query_type_function (parse->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_parse_get_querytypes));
   gst_pad_set_query_function (parse->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_parse_query));
+      GST_DEBUG_FUNCPTR (gst_base_parse_src_query));
   gst_pad_use_fixed_caps (parse->srcpad);
   gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad);
   GST_DEBUG_OBJECT (parse, "src created");
@@ -538,13 +580,15 @@
 
   parse->priv->adapter = gst_adapter_new ();
 
-  parse->priv->pad_mode = GST_ACTIVATE_NONE;
+  parse->priv->pad_mode = GST_PAD_MODE_NONE;
 
-  g_static_mutex_init (&parse->priv->index_lock);
+  g_mutex_init (&parse->priv->index_lock);
 
   /* init state */
   gst_base_parse_reset (parse);
   GST_DEBUG_OBJECT (parse, "init ok");
+
+  GST_OBJECT_FLAG_SET (parse, GST_ELEMENT_FLAG_INDEXABLE);
 }
 
 static GstBaseParseFrame *
@@ -578,21 +622,9 @@
   }
 }
 
-GType
-gst_base_parse_frame_get_type (void)
-{
-  static volatile gsize frame_type = 0;
-
-  if (g_once_init_enter (&frame_type)) {
-    GType _type;
-
-    _type = g_boxed_type_register_static ("GstBaseParseFrame",
-        (GBoxedCopyFunc) gst_base_parse_frame_copy,
-        (GBoxedFreeFunc) gst_base_parse_frame_free);
-    g_once_init_leave (&frame_type, _type);
-  }
-  return (GType) frame_type;
-}
+G_DEFINE_BOXED_TYPE (GstBaseParseFrame, gst_base_parse_frame,
+    (GBoxedCopyFunc) gst_base_parse_frame_copy,
+    (GBoxedFreeFunc) gst_base_parse_frame_free);
 
 /**
  * gst_base_parse_frame_init:
@@ -627,8 +659,7 @@
  * then use gst_base_parse_frame_init() to initialise it.
  *
  * Returns: a newly-allocated #GstBaseParseFrame. Free with
- *     gst_base_parse_frame_free() when no longer needed, unless you gave
- *     away ownership to gst_base_parse_push_frame().
+ *     gst_base_parse_frame_free() when no longer needed.
  *
  * Since: 0.10.33
  */
@@ -685,6 +716,7 @@
   parse->priv->first_frame_ts = GST_CLOCK_TIME_NONE;
   parse->priv->first_frame_offset = -1;
   parse->priv->estimated_duration = -1;
+  parse->priv->estimated_drift = 0;
   parse->priv->next_ts = 0;
   parse->priv->syncable = TRUE;
   parse->priv->passthrough = FALSE;
@@ -710,15 +742,11 @@
   parse->priv->last_ts = GST_CLOCK_TIME_NONE;
   parse->priv->last_offset = 0;
 
-  if (parse->priv->pending_segment) {
-    gst_event_unref (parse->priv->pending_segment);
-    parse->priv->pending_segment = NULL;
-  }
-
   g_list_foreach (parse->priv->pending_events, (GFunc) gst_mini_object_unref,
       NULL);
   g_list_free (parse->priv->pending_events);
   parse->priv->pending_events = NULL;
+  parse->priv->pending_segment = FALSE;
 
   if (parse->priv->cache) {
     gst_buffer_unref (parse->priv->cache);
@@ -729,34 +757,18 @@
   g_slist_free (parse->priv->pending_seeks);
   parse->priv->pending_seeks = NULL;
 
-  /* we know it is not alloc'ed, but maybe other stuff to free, some day ... */
-  parse->priv->frame._private_flags |=
-      GST_BASE_PARSE_FRAME_PRIVATE_FLAG_NOALLOC;
-  gst_base_parse_frame_free (&parse->priv->frame);
+  if (parse->priv->adapter)
+    gst_adapter_clear (parse->priv->adapter);
+
+  parse->priv->new_frame = TRUE;
+
+  g_list_foreach (parse->priv->detect_buffers, (GFunc) gst_buffer_unref, NULL);
+  g_list_free (parse->priv->detect_buffers);
+  parse->priv->detect_buffers = NULL;
+  parse->priv->detect_buffers_size = 0;
   GST_OBJECT_UNLOCK (parse);
 }
 
-/* gst_base_parse_check_frame:
- * @parse: #GstBaseParse.
- * @buffer: GstBuffer.
- * @framesize: This will be set to tell the found frame size in bytes.
- * @skipsize: Output parameter that tells how much data needs to be skipped
- *            in order to find the following frame header.
- *
- * Default callback for check_valid_frame.
- *
- * Returns: Always TRUE.
- */
-static gboolean
-gst_base_parse_check_frame (GstBaseParse * parse,
-    GstBaseParseFrame * frame, guint * framesize, gint * skipsize)
-{
-  *framesize = gst_buffer_get_size (frame->buffer);
-  *skipsize = 0;
-  return TRUE;
-}
-
-
 /* gst_base_parse_parse_frame:
  * @parse: #GstBaseParse.
  * @buffer: #GstBuffer.
@@ -842,25 +854,26 @@
  * Returns: TRUE if the event was handled.
  */
 static gboolean
-gst_base_parse_sink_event (GstPad * pad, GstEvent * event)
+gst_base_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstBaseParse *parse;
   GstBaseParseClass *bclass;
-  gboolean handled = FALSE;
-  gboolean ret = TRUE;
+  gboolean ret;
 
-  parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
+  parse = GST_BASE_PARSE (parent);
   bclass = GST_BASE_PARSE_GET_CLASS (parse);
 
   GST_DEBUG_OBJECT (parse, "handling event %d, %s", GST_EVENT_TYPE (event),
       GST_EVENT_TYPE_NAME (event));
 
-  /* Cache all events except EOS, SEGMENT and FLUSH_STOP if we have a
+  /* Cache all serialized events except EOS, SEGMENT and FLUSH_STOP if we have a
    * pending segment */
-  if (parse->priv->pending_segment && GST_EVENT_TYPE (event) != GST_EVENT_EOS
+  if (parse->priv->pending_segment && GST_EVENT_IS_SERIALIZED (event)
+      && GST_EVENT_TYPE (event) != GST_EVENT_EOS
       && GST_EVENT_TYPE (event) != GST_EVENT_SEGMENT
       && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_START
-      && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP) {
+      && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP
+      && GST_EVENT_TYPE (event) != GST_EVENT_CAPS) {
 
     if (GST_EVENT_TYPE (event) == GST_EVENT_TAG)
       /* See if any bitrate tags were posted */
@@ -870,24 +883,21 @@
         g_list_append (parse->priv->pending_events, event);
     ret = TRUE;
   } else {
-
     if (GST_EVENT_TYPE (event) == GST_EVENT_EOS &&
         parse->priv->framecount < MIN_FRAMES_TO_POST_BITRATE)
       /* We've not posted bitrate tags yet - do so now */
       gst_base_parse_post_bitrates (parse, TRUE, TRUE, TRUE);
 
-    if (bclass->event)
-      handled = bclass->event (parse, event);
-
-    if (!handled)
-      handled = gst_base_parse_sink_eventfunc (parse, event);
-
-    if (!handled)
-      ret = gst_pad_event_default (pad, event);
+    if (bclass->sink_event)
+      ret = bclass->sink_event (parse, event);
+    else {
+      gst_event_unref (event);
+      ret = FALSE;
+    }
   }
 
-  gst_object_unref (parse);
   GST_DEBUG_OBJECT (parse, "event handled");
+
   return ret;
 }
 
@@ -906,8 +916,7 @@
 static gboolean
 gst_base_parse_sink_eventfunc (GstBaseParse * parse, GstEvent * event)
 {
-  gboolean handled = FALSE;
-  GstEvent **eventp;
+  gboolean ret;
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_CAPS:
@@ -921,11 +930,12 @@
       GST_DEBUG_OBJECT (parse, "caps: %" GST_PTR_FORMAT, caps);
 
       if (klass->set_sink_caps)
-        klass->set_sink_caps (parse, caps);
+        ret = klass->set_sink_caps (parse, caps);
+      else
+        ret = TRUE;
 
       /* will send our own caps downstream */
       gst_event_unref (event);
-      handled = TRUE;
       break;
     }
     case GST_EVENT_SEGMENT:
@@ -1005,8 +1015,8 @@
         gst_event_unref (event);
 
         out_segment.start = 0;
-        out_segment.stop = GST_CLOCK_TIME_NONE;;
-        out_segment.time = 0;;
+        out_segment.stop = GST_CLOCK_TIME_NONE;
+        out_segment.time = 0;
 
         event = gst_event_new_segment (&out_segment);
 
@@ -1028,17 +1038,17 @@
       /* save the segment for later, right before we push a new buffer so that
        * the caps are fixed and the next linked element can receive
        * the segment. */
-      eventp = &parse->priv->pending_segment;
-      gst_event_replace (eventp, event);
-      gst_event_unref (event);
-      handled = TRUE;
+      parse->priv->pending_events =
+          g_list_append (parse->priv->pending_events, event);
+      parse->priv->pending_segment = TRUE;
+      ret = TRUE;
 
       /* but finish the current segment */
       GST_DEBUG_OBJECT (parse, "draining current segment");
       if (in_segment->rate > 0.0)
         gst_base_parse_drain (parse);
       else
-        gst_base_parse_process_fragment (parse, FALSE);
+        gst_base_parse_finish_fragment (parse, FALSE);
       gst_adapter_clear (parse->priv->adapter);
 
       parse->priv->offset = offset;
@@ -1052,49 +1062,108 @@
 
     case GST_EVENT_FLUSH_START:
       parse->priv->flushing = TRUE;
-      handled = gst_pad_push_event (parse->srcpad, gst_event_ref (event));
-      if (handled)
-        gst_event_unref (event);
+      ret = gst_pad_push_event (parse->srcpad, event);
       /* Wait for _chain() to exit by taking the srcpad STREAM_LOCK */
       GST_PAD_STREAM_LOCK (parse->srcpad);
       GST_PAD_STREAM_UNLOCK (parse->srcpad);
-
       break;
 
     case GST_EVENT_FLUSH_STOP:
+      ret = gst_pad_push_event (parse->srcpad, event);
       gst_adapter_clear (parse->priv->adapter);
       gst_base_parse_clear_queues (parse);
       parse->priv->flushing = FALSE;
       parse->priv->discont = TRUE;
       parse->priv->last_ts = GST_CLOCK_TIME_NONE;
-      parse->priv->frame._private_flags |=
-          GST_BASE_PARSE_FRAME_PRIVATE_FLAG_NOALLOC;
-      gst_base_parse_frame_free (&parse->priv->frame);
+      parse->priv->new_frame = TRUE;
       break;
 
     case GST_EVENT_EOS:
       if (parse->segment.rate > 0.0)
         gst_base_parse_drain (parse);
       else
-        gst_base_parse_process_fragment (parse, FALSE);
+        gst_base_parse_finish_fragment (parse, TRUE);
 
       /* If we STILL have zero frames processed, fire an error */
       if (parse->priv->framecount == 0) {
         GST_ELEMENT_ERROR (parse, STREAM, WRONG_TYPE,
             ("No valid frames found before end of stream"), (NULL));
       }
-      /* newsegment before eos */
-      if (parse->priv->pending_segment) {
-        gst_pad_push_event (parse->srcpad, parse->priv->pending_segment);
-        parse->priv->pending_segment = NULL;
+      /* newsegment and other serialized events before eos */
+      if (G_UNLIKELY (parse->priv->pending_events)) {
+        GList *l;
+
+        for (l = parse->priv->pending_events; l != NULL; l = l->next) {
+          gst_pad_push_event (parse->srcpad, GST_EVENT (l->data));
+        }
+        g_list_free (parse->priv->pending_events);
+        parse->priv->pending_events = NULL;
+        parse->priv->pending_segment = FALSE;
       }
+      ret = gst_pad_push_event (parse->srcpad, event);
       break;
 
     default:
+      ret =
+          gst_pad_event_default (parse->sinkpad, GST_OBJECT_CAST (parse),
+          event);
       break;
   }
+  return ret;
+}
 
-  return handled;
+static gboolean
+gst_base_parse_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstBaseParse *parse;
+  GstBaseParseClass *bclass;
+  gboolean res;
+
+  parse = GST_BASE_PARSE (parent);
+  bclass = GST_BASE_PARSE_GET_CLASS (parse);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      if (bclass->get_sink_caps) {
+        GstCaps *caps, *filter;
+
+        gst_query_parse_caps (query, &filter);
+        caps = bclass->get_sink_caps (parse, filter);
+        GST_LOG_OBJECT (parse, "sink getcaps returning caps %" GST_PTR_FORMAT,
+            caps);
+        gst_query_set_caps_result (query, caps);
+        gst_caps_unref (caps);
+
+        res = TRUE;
+      } else {
+        GstCaps *caps, *template_caps, *filter;
+
+        gst_query_parse_caps (query, &filter);
+        template_caps = gst_pad_get_pad_template_caps (pad);
+        if (filter != NULL) {
+          caps =
+              gst_caps_intersect_full (filter, template_caps,
+              GST_CAPS_INTERSECT_FIRST);
+          gst_caps_unref (template_caps);
+        } else {
+          caps = template_caps;
+        }
+        gst_query_set_caps_result (query, caps);
+        gst_caps_unref (caps);
+
+        res = TRUE;
+      }
+      break;
+    }
+    default:
+    {
+      res = gst_pad_query_default (pad, parent, query);
+      break;
+    }
+  }
+
+  return res;
 }
 
 
@@ -1107,26 +1176,23 @@
  * Returns: TRUE if the event was handled.
  */
 static gboolean
-gst_base_parse_src_event (GstPad * pad, GstEvent * event)
+gst_base_parse_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstBaseParse *parse;
   GstBaseParseClass *bclass;
-  gboolean handled = FALSE;
   gboolean ret = TRUE;
 
-  parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
+  parse = GST_BASE_PARSE (parent);
   bclass = GST_BASE_PARSE_GET_CLASS (parse);
 
   GST_DEBUG_OBJECT (parse, "event %d, %s", GST_EVENT_TYPE (event),
       GST_EVENT_TYPE_NAME (event));
 
   if (bclass->src_event)
-    handled = bclass->src_event (parse, event);
+    ret = bclass->src_event (parse, event);
+  else
+    gst_event_unref (event);
 
-  if (!handled)
-    ret = gst_pad_event_default (pad, event);
-
-  gst_object_unref (parse);
   return ret;
 }
 
@@ -1149,20 +1215,19 @@
 static gboolean
 gst_base_parse_src_eventfunc (GstBaseParse * parse, GstEvent * event)
 {
-  gboolean handled = FALSE;
+  gboolean res = FALSE;
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEEK:
-    {
-      if (gst_base_parse_is_seekable (parse)) {
-        handled = gst_base_parse_handle_seek (parse, event);
-      }
+      if (gst_base_parse_is_seekable (parse))
+        res = gst_base_parse_handle_seek (parse, event);
       break;
-    }
     default:
+      res = gst_pad_event_default (parse->srcpad, GST_OBJECT_CAST (parse),
+          event);
       break;
   }
-  return handled;
+  return res;
 }
 
 
@@ -1205,13 +1270,13 @@
 
   /* need at least some frames */
   if (!parse->priv->framecount)
-    return FALSE;
+    goto no_framecount;
 
   duration = parse->priv->acc_duration / GST_MSECOND;
   bytes = parse->priv->bytecount;
 
   if (G_UNLIKELY (!duration || !bytes))
-    return FALSE;
+    goto no_duration_bytes;
 
   if (src_format == GST_FORMAT_BYTES) {
     if (dest_format == GST_FORMAT_TIME) {
@@ -1222,6 +1287,8 @@
       GST_DEBUG_OBJECT (parse, "conversion result: %" G_GINT64_FORMAT " ms",
           *dest_value / GST_MSECOND);
       ret = TRUE;
+    } else {
+      GST_DEBUG_OBJECT (parse, "converting bytes -> other not implemented");
     }
   } else if (src_format == GST_FORMAT_TIME) {
     if (dest_format == GST_FORMAT_BYTES) {
@@ -1232,20 +1299,39 @@
           "time %" G_GINT64_FORMAT " ms in bytes = %" G_GINT64_FORMAT,
           src_value / GST_MSECOND, *dest_value);
       ret = TRUE;
+    } else {
+      GST_DEBUG_OBJECT (parse, "converting time -> other not implemented");
     }
   } else if (src_format == GST_FORMAT_DEFAULT) {
     /* DEFAULT == frame-based */
     if (dest_format == GST_FORMAT_TIME) {
+      GST_DEBUG_OBJECT (parse, "converting default -> time");
       if (parse->priv->fps_den) {
         *dest_value = gst_util_uint64_scale (src_value,
             GST_SECOND * parse->priv->fps_den, parse->priv->fps_num);
         ret = TRUE;
       }
-    } else if (dest_format == GST_FORMAT_BYTES) {
+    } else {
+      GST_DEBUG_OBJECT (parse, "converting default -> other not implemented");
     }
+  } else {
+    GST_DEBUG_OBJECT (parse, "conversion not implemented");
+  }
+  return ret;
+
+  /* ERRORS */
+no_framecount:
+  {
+    GST_DEBUG_OBJECT (parse, "no framecount");
+    return FALSE;
+  }
+no_duration_bytes:
+  {
+    GST_DEBUG_OBJECT (parse, "no duration %" G_GUINT64_FORMAT ", bytes %"
+        G_GUINT64_FORMAT, duration, bytes);
+    return FALSE;
   }
 
-  return ret;
 }
 
 static void
@@ -1266,6 +1352,17 @@
     if (qres) {
       if (gst_base_parse_convert (parse, GST_FORMAT_BYTES, ptot,
               GST_FORMAT_TIME, &dest_value)) {
+
+        /* inform if duration changed, but try to avoid spamming */
+        parse->priv->estimated_drift +=
+            dest_value - parse->priv->estimated_duration;
+        if (parse->priv->estimated_drift > GST_SECOND ||
+            parse->priv->estimated_drift < -GST_SECOND) {
+          gst_element_post_message (GST_ELEMENT (parse),
+              gst_message_new_duration (GST_OBJECT (parse),
+                  GST_FORMAT_TIME, dest_value));
+          parse->priv->estimated_drift = 0;
+        }
         parse->priv->estimated_duration = dest_value;
         GST_LOG_OBJECT (parse,
             "updated estimated duration to %" GST_TIME_FORMAT,
@@ -1282,7 +1379,7 @@
   GstTagList *taglist = NULL;
 
   if (post_min && parse->priv->post_min_bitrate) {
-    taglist = gst_tag_list_new ();
+    taglist = gst_tag_list_new_empty ();
 
     gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
         GST_TAG_MINIMUM_BITRATE, parse->priv->min_bitrate, NULL);
@@ -1290,7 +1387,7 @@
 
   if (post_avg && parse->priv->post_avg_bitrate) {
     if (taglist == NULL)
-      taglist = gst_tag_list_new ();
+      taglist = gst_tag_list_new_empty ();
 
     parse->priv->posted_avg_bitrate = parse->priv->avg_bitrate;
     gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_BITRATE,
@@ -1299,7 +1396,7 @@
 
   if (post_max && parse->priv->post_max_bitrate) {
     if (taglist == NULL)
-      taglist = gst_tag_list_new ();
+      taglist = gst_tag_list_new_empty ();
 
     gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
         GST_TAG_MAXIMUM_BITRATE, parse->priv->max_bitrate, NULL);
@@ -1310,8 +1407,7 @@
       parse->priv->max_bitrate);
 
   if (taglist != NULL) {
-    gst_element_found_tags_for_pad (GST_ELEMENT_CAST (parse), parse->srcpad,
-        taglist);
+    gst_pad_push_event (parse->srcpad, gst_event_new_tag (taglist));
   }
 }
 
@@ -1397,14 +1493,6 @@
   if ((update_min || update_avg || update_max))
     gst_base_parse_post_bitrates (parse, update_min, update_avg, update_max);
 
-  /* If average bitrate changes that much and no valid (time) duration provided,
-   * then post a new duration message so applications can update their cached
-   * values */
-  if (update_avg && !(parse->priv->duration_fmt == GST_FORMAT_TIME &&
-          GST_CLOCK_TIME_IS_VALID (parse->priv->duration)))
-    gst_element_post_message (GST_ELEMENT (parse),
-        gst_message_new_duration (GST_OBJECT (parse), GST_FORMAT_TIME, -1));
-
 exit:
   return;
 }
@@ -1481,11 +1569,12 @@
   associations[1].value = offset;
 
   /* index might change on-the-fly, although that would be nutty app ... */
-  g_static_mutex_lock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_LOCK (parse);
   gst_index_add_associationv (parse->priv->index, parse->priv->index_id,
-      (key) ? GST_ASSOCIATION_FLAG_KEY_UNIT : GST_ASSOCIATION_FLAG_DELTA_UNIT,
-      2, (const GstIndexAssociation *) &associations);
-  g_static_mutex_unlock (&parse->priv->index_lock);
+      (key) ? GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT :
+      GST_INDEX_ASSOCIATION_FLAG_DELTA_UNIT, 2,
+      (const GstIndexAssociation *) &associations);
+  GST_BASE_PARSE_INDEX_UNLOCK (parse);
 
   if (key) {
     parse->priv->index_last_offset = offset;
@@ -1518,7 +1607,7 @@
   /* try harder to query upstream size if we didn't get it the first time */
   if (seekable && stop == -1) {
     GST_DEBUG_OBJECT (parse, "doing duration query to fix up unset stop");
-    gst_pad_query_peer_duration (parse->sinkpad, GST_FORMAT_BYTES, &stop);
+    gst_pad_peer_query_duration (parse->sinkpad, GST_FORMAT_BYTES, &stop);
   }
 
   /* if upstream doesn't know the size, it's likely that it's not seekable in
@@ -1556,7 +1645,7 @@
 {
   gint64 stop;
 
-  if (gst_pad_query_peer_duration (parse->sinkpad, GST_FORMAT_TIME, &stop))
+  if (gst_pad_peer_query_duration (parse->sinkpad, GST_FORMAT_TIME, &stop))
     if (GST_CLOCK_TIME_IS_VALID (stop) && stop) {
       /* upstream has one, accept it also, and no further updates */
       gst_base_parse_set_duration (parse, GST_FORMAT_TIME, stop, 0);
@@ -1608,6 +1697,136 @@
   }
 }
 
+/* makes sure that @buf is properly prepared and decorated for passing
+ * to baseclass, and an equally setup frame is returned setup with @buf.
+ * Takes ownership of @buf. */
+static GstBaseParseFrame *
+gst_base_parse_prepare_frame (GstBaseParse * parse, GstBuffer * buffer)
+{
+  GstBaseParseFrame *frame = NULL;
+
+  buffer = gst_buffer_make_writable (buffer);
+
+  GST_LOG_OBJECT (parse,
+      "preparing frame at offset %" G_GUINT64_FORMAT
+      " (%#" G_GINT64_MODIFIER "x) of size %" G_GSIZE_FORMAT,
+      GST_BUFFER_OFFSET (buffer), GST_BUFFER_OFFSET (buffer),
+      gst_buffer_get_size (buffer));
+
+  if (parse->priv->discont) {
+    GST_DEBUG_OBJECT (parse, "marking DISCONT");
+    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
+    parse->priv->discont = FALSE;
+  }
+
+  GST_BUFFER_OFFSET (buffer) = parse->priv->offset;
+
+  frame = gst_base_parse_frame_new (buffer, 0, 0);
+
+  /* also ensure to update state flags */
+  gst_base_parse_frame_update (parse, frame, buffer);
+  gst_buffer_unref (buffer);
+
+  if (parse->priv->prev_offset != parse->priv->offset || parse->priv->new_frame) {
+    GST_LOG_OBJECT (parse, "marking as new frame");
+    parse->priv->new_frame = FALSE;
+    frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME;
+  }
+
+  frame->offset = parse->priv->prev_offset = parse->priv->offset;
+
+  /* use default handler to provide initial (upstream) metadata */
+  gst_base_parse_parse_frame (parse, frame);
+
+  return frame;
+}
+
+/* Wraps buffer in a frame and dispatches to subclass.
+ * Also manages data skipping and offset handling (including adapter flushing).
+ * Takes ownership of @buffer */
+static GstFlowReturn
+gst_base_parse_handle_buffer (GstBaseParse * parse, GstBuffer * buffer,
+    gint * skip, gint * flushed)
+{
+  GstBaseParseClass *klass = GST_BASE_PARSE_GET_CLASS (parse);
+  GstBaseParseFrame *frame;
+  GstFlowReturn ret;
+
+  g_return_val_if_fail (skip != NULL || flushed != NULL, GST_FLOW_ERROR);
+
+  GST_LOG_OBJECT (parse,
+      "handling buffer of size %" G_GSIZE_FORMAT " with ts %" GST_TIME_FORMAT
+      ", duration %" GST_TIME_FORMAT, gst_buffer_get_size (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+  /* track what is being flushed during this single round of frame processing */
+  parse->priv->flushed = 0;
+  *skip = 0;
+
+  /* make it easy for _finish_frame to pick up input data */
+  if (parse->priv->pad_mode == GST_PAD_MODE_PULL) {
+    gst_buffer_ref (buffer);
+    gst_adapter_push (parse->priv->adapter, buffer);
+  }
+
+  frame = gst_base_parse_prepare_frame (parse, buffer);
+  ret = klass->handle_frame (parse, frame, skip);
+
+  *flushed = parse->priv->flushed;
+
+  GST_LOG_OBJECT (parse, "handle_frame skipped %d, flushed %d",
+      *skip, *flushed);
+
+  if (ret != GST_FLOW_OK) {
+    GST_DEBUG_OBJECT (parse, "handle_frame returned %d", ret);
+    goto exit;
+  }
+
+  /* subclass can only do one of these, or semantics are too unclear */
+  g_assert (*skip == 0 || *flushed == 0);
+
+  /* track skipping */
+  if (*skip > 0) {
+    GstClockTime timestamp;
+    GstBuffer *outbuf;
+
+    GST_LOG_OBJECT (parse, "finding sync, skipping %d bytes", *skip);
+    if (parse->segment.rate < 0.0 && !parse->priv->buffers_queued) {
+      /* reverse playback, and no frames found yet, so we are skipping
+       * the leading part of a fragment, which may form the tail of
+       * fragment coming later, hopefully subclass skips efficiently ... */
+      timestamp = gst_adapter_prev_timestamp (parse->priv->adapter, NULL);
+      outbuf = gst_adapter_take_buffer (parse->priv->adapter, *skip);
+      outbuf = gst_buffer_make_writable (outbuf);
+      GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
+      parse->priv->buffers_head =
+          g_slist_prepend (parse->priv->buffers_head, outbuf);
+      outbuf = NULL;
+    } else {
+      gst_adapter_flush (parse->priv->adapter, *skip);
+    }
+    if (!parse->priv->discont)
+      parse->priv->sync_offset = parse->priv->offset;
+    parse->priv->offset += *skip;
+    parse->priv->discont = TRUE;
+    /* check for indefinite skipping */
+    if (ret == GST_FLOW_OK)
+      ret = gst_base_parse_check_sync (parse);
+  }
+
+  parse->priv->offset += *flushed;
+
+exit:
+  if (parse->priv->pad_mode == GST_PAD_MODE_PULL) {
+    gst_adapter_clear (parse->priv->adapter);
+  }
+
+  gst_base_parse_frame_free (frame);
+
+  return ret;
+}
+
 /* gst_base_parse_handle_and_push_buffer:
  * @parse: #GstBaseParse.
  * @klass: #GstBaseParseClass.
@@ -1622,50 +1841,27 @@
  */
 static GstFlowReturn
 gst_base_parse_handle_and_push_frame (GstBaseParse * parse,
-    GstBaseParseClass * klass, GstBaseParseFrame * frame)
+    GstBaseParseFrame * frame)
 {
-  GstFlowReturn ret;
   gint64 offset;
   GstBuffer *buffer;
 
   g_return_val_if_fail (frame != NULL, GST_FLOW_ERROR);
 
-  buffer = frame->buffer;
-
-  if (parse->priv->discont) {
-    GST_DEBUG_OBJECT (parse, "marking DISCONT");
-    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
-    parse->priv->discont = FALSE;
-  }
-
   /* some one-time start-up */
   if (G_UNLIKELY (!parse->priv->framecount)) {
     gst_base_parse_check_seekability (parse);
     gst_base_parse_check_upstream (parse);
   }
 
-  GST_LOG_OBJECT (parse,
-      "parsing frame at offset %" G_GUINT64_FORMAT
-      " (%#" G_GINT64_MODIFIER "x) of size %" G_GSIZE_FORMAT,
-      GST_BUFFER_OFFSET (buffer), GST_BUFFER_OFFSET (buffer),
-      gst_buffer_get_size (buffer));
-
-  /* use default handler to provide initial (upstream) metadata */
-  gst_base_parse_parse_frame (parse, frame);
-
-  /* store offset as it might get overwritten */
-  offset = GST_BUFFER_OFFSET (buffer);
-  ret = klass->parse_frame (parse, frame);
-  /* sync */
   buffer = frame->buffer;
-  /* subclass must play nice */
-  g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
+  offset = frame->offset;
 
   /* check if subclass/format can provide ts.
    * If so, that allows and enables extra seek and duration determining options */
-  if (G_UNLIKELY (parse->priv->first_frame_offset < 0 && ret == GST_FLOW_OK)) {
+  if (G_UNLIKELY (parse->priv->first_frame_offset < 0)) {
     if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) && parse->priv->has_timing_info
-        && parse->priv->pad_mode == GST_ACTIVATE_PULL) {
+        && parse->priv->pad_mode == GST_PAD_MODE_PULL) {
       parse->priv->first_frame_offset = offset;
       parse->priv->first_frame_ts = GST_BUFFER_TIMESTAMP (buffer);
       GST_DEBUG_OBJECT (parse, "subclass provided ts %" GST_TIME_FORMAT
@@ -1707,26 +1903,12 @@
         GST_BUFFER_TIMESTAMP (buffer),
         !GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT), FALSE);
 
-  /* First buffers are dropped, this means that the subclass needs more
-   * frames to decide on the format and queues them internally */
-  /* convert internal flow to OK and mark discont for the next buffer. */
-  if (ret == GST_BASE_PARSE_FLOW_DROPPED) {
-    gst_base_parse_frame_free (frame);
-    return GST_FLOW_OK;
-  } else if (ret == GST_BASE_PARSE_FLOW_QUEUED) {
-    gst_base_parse_queue_frame (parse, frame);
-    return GST_FLOW_OK;
-  } else if (ret != GST_FLOW_OK) {
-    return ret;
-  }
-
   /* All OK, push queued frames if there are any */
   if (G_UNLIKELY (!g_queue_is_empty (&parse->priv->queued_frames))) {
     GstBaseParseFrame *queued_frame;
 
     while ((queued_frame = g_queue_pop_head (&parse->priv->queued_frames))) {
       gst_base_parse_push_frame (parse, queued_frame);
-      gst_base_parse_frame_free (queued_frame);
     }
   }
 
@@ -1736,12 +1918,11 @@
 /**
  * gst_base_parse_push_frame:
  * @parse: #GstBaseParse.
- * @frame: (transfer full): a #GstBaseParseFrame
+ * @frame: (transfer none): a #GstBaseParseFrame
  *
- * Pushes the frame downstream, sends any pending events and
- * does some timestamp and segment handling. Takes ownership
- * of @frame and will clear it (if it was initialised with
- * gst_base_parse_frame_init()) or free it.
+ * Pushes the frame's buffer downstream, sends any pending events and
+ * does some timestamp and segment handling. Takes ownership of
+ * frame's buffer, though caller retains ownership of @frame.
  *
  * This must be called with sinkpad STREAM_LOCK held.
  *
@@ -1773,8 +1954,7 @@
       GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
 
   /* update stats */
-  size = gst_buffer_get_size (buffer);
-  parse->priv->bytecount += size;
+  parse->priv->bytecount += frame->size;
   if (G_LIKELY (!(frame->flags & GST_BASE_PARSE_FRAME_FLAG_NO_FRAME))) {
     parse->priv->framecount++;
     if (GST_BUFFER_DURATION_IS_VALID (buffer)) {
@@ -1795,29 +1975,31 @@
     last_stop = last_start + GST_BUFFER_DURATION (buffer);
 
   /* should have caps by now */
-  g_return_val_if_fail (gst_pad_has_current_caps (parse->srcpad),
-      GST_FLOW_ERROR);
+  if (!gst_pad_has_current_caps (parse->srcpad))
+    goto no_caps;
+
+  if (G_UNLIKELY (parse->priv->pending_segment)) {
+    /* have caps; check identity */
+    gst_base_parse_check_media (parse);
+  }
+
+  /* Push pending events, including NEWSEGMENT events */
+  if (G_UNLIKELY (parse->priv->pending_events)) {
+    GList *l;
+
+    for (l = parse->priv->pending_events; l != NULL; l = l->next) {
+      gst_pad_push_event (parse->srcpad, GST_EVENT (l->data));
+    }
+    g_list_free (parse->priv->pending_events);
+    parse->priv->pending_events = NULL;
+    parse->priv->pending_segment = FALSE;
+  }
 
   /* segment adjustment magic; only if we are running the whole show */
   if (!parse->priv->passthrough && parse->segment.rate > 0.0 &&
-      (parse->priv->pad_mode == GST_ACTIVATE_PULL ||
+      (parse->priv->pad_mode == GST_PAD_MODE_PULL ||
           parse->priv->upstream_seekable)) {
-    /* segment times are typically estimates,
-     * actual frame data might lead subclass to different timestamps,
-     * so override segment start from what is supplied there */
-    if (G_UNLIKELY (parse->priv->pending_segment && !parse->priv->exact_position
-            && GST_CLOCK_TIME_IS_VALID (last_start))) {
-      gst_event_unref (parse->priv->pending_segment);
-      parse->segment.start =
-          MIN ((guint64) last_start, (guint64) parse->segment.stop);
-
-      GST_DEBUG_OBJECT (parse,
-          "adjusting pending segment start to %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (parse->segment.start));
-
-      parse->priv->pending_segment = gst_event_new_segment (&parse->segment);
-    }
-    /* handle gaps, e.g. non-zero start-time, in as much not handled by above */
+    /* handle gaps */
     if (GST_CLOCK_TIME_IS_VALID (parse->segment.position) &&
         GST_CLOCK_TIME_IS_VALID (last_start)) {
       GstClockTimeDiff diff;
@@ -1838,57 +2020,19 @@
             GST_TIME_ARGS (parse->segment.position),
             GST_TIME_ARGS (last_start));
 
-        if (G_UNLIKELY (parse->priv->pending_segment)) {
-          gst_event_unref (parse->priv->pending_segment);
-          parse->segment.start = last_start;
-          parse->segment.time = last_start;
-          parse->priv->pending_segment =
-              gst_event_new_segment (&parse->segment);
-        } else {
-          /* skip gap FIXME */
-          gst_pad_push_event (parse->srcpad,
-              gst_event_new_segment (&parse->segment));
-        }
+        /* skip gap FIXME */
+        gst_pad_push_event (parse->srcpad,
+            gst_event_new_segment (&parse->segment));
+
         parse->segment.position = last_start;
       }
     }
   }
 
-  /* and should then also be linked downstream, so safe to send some events */
-  if (G_UNLIKELY (parse->priv->close_segment)) {
-    /* only set up by loop */
-    GST_DEBUG_OBJECT (parse, "loop sending close segment");
-    gst_pad_push_event (parse->srcpad, parse->priv->close_segment);
-    parse->priv->close_segment = NULL;
-  }
-  if (G_UNLIKELY (parse->priv->pending_segment)) {
-    GstEvent *pending_segment;
-
-    pending_segment = parse->priv->pending_segment;
-    parse->priv->pending_segment = NULL;
-
-    GST_DEBUG_OBJECT (parse, "%s push pending segment",
-        parse->priv->pad_mode == GST_ACTIVATE_PULL ? "loop" : "chain");
-    gst_pad_push_event (parse->srcpad, pending_segment);
-
-    /* have caps; check identity */
-    gst_base_parse_check_media (parse);
-  }
-
   /* update bitrates and optionally post corresponding tags
    * (following newsegment) */
   gst_base_parse_update_bitrates (parse, frame);
 
-  if (G_UNLIKELY (parse->priv->pending_events)) {
-    GList *l;
-
-    for (l = parse->priv->pending_events; l != NULL; l = l->next) {
-      gst_pad_push_event (parse->srcpad, GST_EVENT (l->data));
-    }
-    g_list_free (parse->priv->pending_events);
-    parse->priv->pending_events = NULL;
-  }
-
   if (klass->pre_push_frame) {
     ret = klass->pre_push_frame (parse, frame);
   } else {
@@ -1896,12 +2040,20 @@
   }
 
   /* take final ownership of frame buffer */
-  buffer = frame->buffer;
-  frame->buffer = NULL;
+  if (frame->out_buffer) {
+    buffer = frame->out_buffer;
+    frame->out_buffer = NULL;
+    gst_buffer_replace (&frame->buffer, NULL);
+  } else {
+    buffer = frame->buffer;
+    frame->buffer = NULL;
+  }
 
   /* subclass must play nice */
   g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
 
+  size = gst_buffer_get_size (buffer);
+
   parse->priv->seen_keyframe |= parse->priv->is_video &&
       !GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
 
@@ -1911,7 +2063,7 @@
         GST_BUFFER_TIMESTAMP (buffer) >
         parse->segment.stop + parse->priv->lead_out_ts) {
       GST_LOG_OBJECT (parse, "Dropped frame, after segment");
-      ret = GST_FLOW_UNEXPECTED;
+      ret = GST_FLOW_EOS;
     } else if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) &&
         GST_BUFFER_DURATION_IS_VALID (buffer) &&
         GST_CLOCK_TIME_IS_VALID (parse->segment.start) &&
@@ -1951,9 +2103,9 @@
         size, gst_flow_get_name (ret));
     gst_buffer_unref (buffer);
     /* if we are not sufficiently in control, let upstream decide on EOS */
-    if (ret == GST_FLOW_UNEXPECTED &&
+    if (ret == GST_FLOW_EOS &&
         (parse->priv->passthrough ||
-            (parse->priv->pad_mode == GST_ACTIVATE_PUSH &&
+            (parse->priv->pad_mode == GST_PAD_MODE_PUSH &&
                 !parse->priv->upstream_seekable)))
       ret = GST_FLOW_OK;
   }
@@ -1963,11 +2115,107 @@
       parse->segment.position < last_stop)
     parse->segment.position = last_stop;
 
-  gst_base_parse_frame_free (frame);
-
   return ret;
+
+  /* ERRORS */
+no_caps:
+  {
+    GST_ELEMENT_ERROR (parse, STREAM, DECODE, ("No caps set"), (NULL));
+    return GST_FLOW_ERROR;
+  }
 }
 
+/**
+ * gst_base_parse_finish_frame:
+ * @parse: a #GstBaseParse
+ * @frame: a #GstBaseParseFrame
+ * @size: consumed input data represented by frame
+ *
+ * Collects parsed data and pushes this downstream.
+ * Source pad caps must be set when this is called.
+ *
+ * If @frame's out_buffer is set, that will be used as subsequent frame data.
+ * Otherwise, @size samples will be taken from the input and used for output,
+ * and the output's metadata (timestamps etc) will be taken as (optionally)
+ * set by the subclass on @frame's (input) buffer (which is otherwise
+ * ignored for any but the above purpose/information).
+ *
+ * Note that the latter buffer is invalidated by this call, whereas the
+ * caller retains ownership of @frame.
+ *
+ * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
+ *
+ * Since: 0.11.1
+ */
+GstFlowReturn
+gst_base_parse_finish_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
+    gint size)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  g_return_val_if_fail (frame != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (frame->buffer != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (size > 0 || frame->out_buffer, GST_FLOW_ERROR);
+  g_return_val_if_fail (gst_adapter_available (parse->priv->adapter) >= size,
+      GST_FLOW_ERROR);
+
+  GST_LOG_OBJECT (parse, "finished frame at offset %" G_GUINT64_FORMAT ", "
+      "flushing size %d", frame->offset, size);
+
+  if (parse->priv->scanning && frame->buffer) {
+    if (!parse->priv->scanned_frame) {
+      parse->priv->scanned_frame = gst_base_parse_frame_copy (frame);
+    }
+    goto exit;
+  }
+
+  parse->priv->flushed += size;
+
+  /* either PUSH or PULL mode arranges for adapter data */
+  /* ensure output buffer */
+  if (!frame->out_buffer) {
+    GstBuffer *src, *dest;
+
+    frame->out_buffer = gst_adapter_take_buffer (parse->priv->adapter, size);
+    dest = frame->out_buffer;
+    src = frame->buffer;
+    GST_BUFFER_PTS (dest) = GST_BUFFER_PTS (src);
+    GST_BUFFER_DTS (dest) = GST_BUFFER_DTS (src);
+    GST_BUFFER_OFFSET (dest) = GST_BUFFER_OFFSET (src);
+    GST_BUFFER_DURATION (dest) = GST_BUFFER_DURATION (src);
+    GST_BUFFER_OFFSET_END (dest) = GST_BUFFER_OFFSET_END (src);
+    GST_MINI_OBJECT_FLAGS (dest) = GST_MINI_OBJECT_FLAGS (src);
+  } else {
+    gst_adapter_flush (parse->priv->adapter, size);
+  }
+
+  /* use as input for subsequent processing */
+  gst_buffer_replace (&frame->buffer, frame->out_buffer);
+  gst_buffer_unref (frame->out_buffer);
+  frame->out_buffer = NULL;
+
+  /* mark input size consumed */
+  frame->size = size;
+
+  /* subclass might queue frames/data internally if it needs more
+   * frames to decide on the format, or might request us to queue here. */
+  if (frame->flags & GST_BASE_PARSE_FRAME_FLAG_DROP) {
+    gst_buffer_replace (&frame->buffer, NULL);
+    goto exit;
+  } else if (frame->flags & GST_BASE_PARSE_FRAME_FLAG_QUEUE) {
+    GstBaseParseFrame *copy;
+
+    copy = gst_base_parse_frame_copy (frame);
+    copy->flags &= ~GST_BASE_PARSE_FRAME_FLAG_QUEUE;
+    gst_base_parse_queue_frame (parse, copy);
+    goto exit;
+  }
+
+  ret = gst_base_parse_handle_and_push_frame (parse, frame);
+
+exit:
+  return ret;
+}
 
 /* gst_base_parse_drain:
  *
@@ -1988,7 +2236,8 @@
     if (!avail)
       break;
 
-    if (gst_base_parse_chain (parse->sinkpad, NULL) != GST_FLOW_OK) {
+    if (gst_base_parse_chain (parse->sinkpad, GST_OBJECT_CAST (parse),
+            NULL) != GST_FLOW_OK) {
       break;
     }
 
@@ -2044,7 +2293,34 @@
   return ret;
 }
 
-/* gst_base_parse_process_fragment:
+/* gst_base_parse_start_fragment:
+ *
+ * Prepares for processing a reverse playback (forward) fragment
+ * by (re)setting proper state variables.
+ */
+static GstFlowReturn
+gst_base_parse_start_fragment (GstBaseParse * parse)
+{
+  GST_LOG_OBJECT (parse, "starting fragment");
+
+  /* invalidate so no fall-back timestamping is performed;
+   * ok if taken from subclass or upstream */
+  parse->priv->next_ts = GST_CLOCK_TIME_NONE;
+  parse->priv->prev_ts = GST_CLOCK_TIME_NONE;
+  /* prevent it hanging around stop all the time */
+  parse->segment.position = GST_CLOCK_TIME_NONE;
+  /* mark next run */
+  parse->priv->discont = TRUE;
+
+  /* head of previous fragment is now pending tail of current fragment */
+  parse->priv->buffers_pending = parse->priv->buffers_head;
+  parse->priv->buffers_head = NULL;
+
+  return GST_FLOW_OK;
+}
+
+
+/* gst_base_parse_finish_fragment:
  *
  * Processes a reverse playback (forward) fragment:
  * - append head of last fragment that was skipped to current fragment data
@@ -2053,40 +2329,35 @@
  * - push queued data
  */
 static GstFlowReturn
-gst_base_parse_process_fragment (GstBaseParse * parse, gboolean push_only)
+gst_base_parse_finish_fragment (GstBaseParse * parse, gboolean prev_head)
 {
   GstBuffer *buf;
   GstFlowReturn ret = GST_FLOW_OK;
   gboolean seen_key = FALSE, seen_delta = FALSE;
 
-  if (push_only)
-    goto push;
+  GST_LOG_OBJECT (parse, "finishing fragment");
 
   /* restore order */
   parse->priv->buffers_pending = g_slist_reverse (parse->priv->buffers_pending);
   while (parse->priv->buffers_pending) {
     buf = GST_BUFFER_CAST (parse->priv->buffers_pending->data);
-    GST_LOG_OBJECT (parse, "adding pending buffer (size %" G_GSIZE_FORMAT ")",
-        gst_buffer_get_size (buf));
-    gst_adapter_push (parse->priv->adapter, buf);
+    if (prev_head) {
+      GST_LOG_OBJECT (parse, "adding pending buffer (size %" G_GSIZE_FORMAT ")",
+          gst_buffer_get_size (buf));
+      gst_adapter_push (parse->priv->adapter, buf);
+    } else {
+      GST_LOG_OBJECT (parse, "discarding head buffer");
+      gst_buffer_unref (buf);
+    }
     parse->priv->buffers_pending =
         g_slist_delete_link (parse->priv->buffers_pending,
         parse->priv->buffers_pending);
   }
 
-  /* invalidate so no fall-back timestamping is performed;
-   * ok if taken from subclass or upstream */
-  parse->priv->next_ts = GST_CLOCK_TIME_NONE;
-  /* prevent it hanging around stop all the time */
-  parse->segment.position = GST_CLOCK_TIME_NONE;
-  /* mark next run */
-  parse->priv->discont = TRUE;
-
   /* chain looks for frames and queues resulting ones (in stead of pushing) */
   /* initial skipped data is added to buffers_pending */
   gst_base_parse_drain (parse);
 
-push:
   if (parse->priv->buffers_send) {
     buf = GST_BUFFER_CAST (parse->priv->buffers_send->data);
     seen_key |= !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
@@ -2133,12 +2404,11 @@
         }
         seen_key = FALSE;
       }
-    } else {
       seen_delta = TRUE;
+    } else {
+      seen_key = TRUE;
     }
 
-    seen_key |= !GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
-
     parse->priv->buffers_send =
         g_slist_prepend (parse->priv->buffers_send, buf);
     parse->priv->buffers_queued =
@@ -2175,174 +2445,143 @@
 }
 
 static GstFlowReturn
-gst_base_parse_chain (GstPad * pad, GstBuffer * buffer)
+gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstBaseParseClass *bclass;
   GstBaseParse *parse;
   GstFlowReturn ret = GST_FLOW_OK;
-  GstBuffer *outbuf = NULL;
   GstBuffer *tmpbuf = NULL;
   guint fsize = 1;
   gint skip = -1;
   const guint8 *data;
-  guint old_min_size = 0, min_size, av;
+  guint min_size, av;
   GstClockTime timestamp;
-  GstBaseParseFrame *frame;
 
-  parse = GST_BASE_PARSE (GST_OBJECT_PARENT (pad));
+  parse = GST_BASE_PARSE (parent);
   bclass = GST_BASE_PARSE_GET_CLASS (parse);
-  frame = &parse->priv->frame;
+
+  if (parse->priv->detecting) {
+    GstBuffer *detect_buf;
+
+    if (parse->priv->detect_buffers_size == 0) {
+      detect_buf = gst_buffer_ref (buffer);
+    } else {
+      GList *l;
+      guint offset = 0;
+
+      detect_buf = gst_buffer_new ();
+
+      for (l = parse->priv->detect_buffers; l; l = l->next) {
+        gsize tmpsize = gst_buffer_get_size (l->data);
+
+        gst_buffer_copy_into (detect_buf, GST_BUFFER_CAST (l->data),
+            GST_BUFFER_COPY_MEMORY, offset, tmpsize);
+        offset += tmpsize;
+      }
+      if (buffer)
+        gst_buffer_copy_into (detect_buf, buffer, GST_BUFFER_COPY_MEMORY,
+            offset, gst_buffer_get_size (buffer));
+    }
+
+    ret = bclass->detect (parse, detect_buf);
+    gst_buffer_unref (detect_buf);
+
+    if (ret == GST_FLOW_OK) {
+      GList *l;
+
+      /* Detected something */
+      parse->priv->detecting = FALSE;
+
+      for (l = parse->priv->detect_buffers; l; l = l->next) {
+        if (ret == GST_FLOW_OK && !parse->priv->flushing)
+          ret =
+              gst_base_parse_chain (GST_BASE_PARSE_SINK_PAD (parse),
+              parent, GST_BUFFER_CAST (l->data));
+        else
+          gst_buffer_unref (GST_BUFFER_CAST (l->data));
+      }
+      g_list_free (parse->priv->detect_buffers);
+      parse->priv->detect_buffers = NULL;
+      parse->priv->detect_buffers_size = 0;
+
+      if (ret != GST_FLOW_OK) {
+        return ret;
+      }
+
+      /* Handle the current buffer */
+    } else if (ret == GST_FLOW_NOT_NEGOTIATED) {
+      /* Still detecting, append buffer or error out if draining */
+
+      if (parse->priv->drain) {
+        GST_DEBUG_OBJECT (parse, "Draining but did not detect format yet");
+        return GST_FLOW_ERROR;
+      } else if (parse->priv->flushing) {
+        g_list_foreach (parse->priv->detect_buffers, (GFunc) gst_buffer_unref,
+            NULL);
+        g_list_free (parse->priv->detect_buffers);
+        parse->priv->detect_buffers = NULL;
+        parse->priv->detect_buffers_size = 0;
+      } else {
+        parse->priv->detect_buffers =
+            g_list_append (parse->priv->detect_buffers, buffer);
+        parse->priv->detect_buffers_size += gst_buffer_get_size (buffer);
+        return GST_FLOW_OK;
+      }
+    } else {
+      /* Something went wrong, subclass responsible for error reporting */
+      return ret;
+    }
+
+    /* And now handle the current buffer if detection worked */
+  }
 
   if (G_LIKELY (buffer)) {
     GST_LOG_OBJECT (parse,
         "buffer size: %" G_GSIZE_FORMAT ", offset = %" G_GINT64_FORMAT,
         gst_buffer_get_size (buffer), GST_BUFFER_OFFSET (buffer));
     if (G_UNLIKELY (parse->priv->passthrough)) {
-      gst_base_parse_frame_init (frame);
-      frame->buffer = gst_buffer_make_writable (buffer);
-      return gst_base_parse_push_frame (parse, frame);
+      GstBaseParseFrame frame;
+
+      gst_base_parse_frame_init (&frame);
+      frame.buffer = gst_buffer_make_writable (buffer);
+      ret = gst_base_parse_push_frame (parse, &frame);
+      gst_base_parse_frame_free (&frame);
+      return ret;
     }
     /* upstream feeding us in reverse playback;
-     * gather each fragment, then process it in single run */
+     * finish previous fragment and start new upon DISCONT */
     if (parse->segment.rate < 0.0) {
       if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
         GST_DEBUG_OBJECT (parse, "buffer starts new reverse playback fragment");
-        ret = gst_base_parse_process_fragment (parse, FALSE);
+        ret = gst_base_parse_finish_fragment (parse, TRUE);
+        gst_base_parse_start_fragment (parse);
       }
-      gst_adapter_push (parse->priv->adapter, buffer);
-      return ret;
     }
     gst_adapter_push (parse->priv->adapter, buffer);
   }
 
-  if (G_UNLIKELY (buffer &&
-          GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
-    frame->_private_flags |= GST_BASE_PARSE_FRAME_PRIVATE_FLAG_NOALLOC;
-    gst_base_parse_frame_free (frame);
-  }
-
   /* Parse and push as many frames as possible */
   /* Stop either when adapter is empty or we are flushing */
   while (!parse->priv->flushing) {
-    gboolean res;
+    gint flush = 0;
 
-    /* maintain frame state for a single frame parsing round across _chain calls,
-     * so only init when needed */
-    if (!frame->_private_flags)
-      gst_base_parse_frame_init (frame);
+    /* note: if subclass indicates MAX fsize,
+     * this will not likely be available anyway ... */
+    min_size = MAX (parse->priv->min_frame_size, fsize);
+    av = gst_adapter_available (parse->priv->adapter);
 
-    tmpbuf = gst_buffer_new ();
-
-    old_min_size = 0;
-    /* Synchronization loop */
-    for (;;) {
-      /* note: if subclass indicates MAX fsize,
-       * this will not likely be available anyway ... */
-      min_size = MAX (parse->priv->min_frame_size, fsize);
-      av = gst_adapter_available (parse->priv->adapter);
-
-      /* loop safety check */
-      if (G_UNLIKELY (old_min_size >= min_size))
-        goto invalid_min;
-      old_min_size = min_size;
-
-      if (G_UNLIKELY (parse->priv->drain)) {
-        min_size = av;
-        GST_DEBUG_OBJECT (parse, "draining, data left: %d", min_size);
-        if (G_UNLIKELY (!min_size)) {
-          gst_buffer_unref (tmpbuf);
-          goto done;
-        }
-      }
-
-      /* Collect at least min_frame_size bytes */
-      if (av < min_size) {
-        GST_DEBUG_OBJECT (parse, "not enough data available (only %d bytes)",
-            av);
-        gst_buffer_unref (tmpbuf);
-        goto done;
-      }
-
-      /* always pass all available data */
-      data = gst_adapter_map (parse->priv->adapter, av);
-      gst_buffer_take_memory (tmpbuf, -1,
-          gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
-              (gpointer) data, NULL, av, 0, av));
-      GST_BUFFER_OFFSET (tmpbuf) = parse->priv->offset;
-
-      if (parse->priv->discont) {
-        GST_DEBUG_OBJECT (parse, "marking DISCONT");
-        GST_BUFFER_FLAG_SET (tmpbuf, GST_BUFFER_FLAG_DISCONT);
-      }
-
-      skip = -1;
-      gst_base_parse_frame_update (parse, frame, tmpbuf);
-      res = bclass->check_valid_frame (parse, frame, &fsize, &skip);
-      gst_adapter_unmap (parse->priv->adapter, 0);
-      gst_buffer_replace (&frame->buffer, NULL);
-      if (res) {
-        if (gst_adapter_available (parse->priv->adapter) < fsize) {
-          GST_DEBUG_OBJECT (parse, "found valid frame but not enough data"
-              " available (only %" G_GSIZE_FORMAT " bytes)",
-              gst_adapter_available (parse->priv->adapter));
-          gst_buffer_unref (tmpbuf);
-          goto done;
-        }
-        GST_LOG_OBJECT (parse, "valid frame of size %d at pos %d", fsize, skip);
-        break;
-      }
-      if (skip == -1) {
-        /* subclass didn't touch this value. By default we skip 1 byte */
-        skip = 1;
-      }
-      if (skip > 0) {
-        GST_LOG_OBJECT (parse, "finding sync, skipping %d bytes", skip);
-        if (parse->segment.rate < 0.0 && !parse->priv->buffers_queued) {
-          /* reverse playback, and no frames found yet, so we are skipping
-           * the leading part of a fragment, which may form the tail of
-           * fragment coming later, hopefully subclass skips efficiently ... */
-          timestamp = gst_adapter_prev_timestamp (parse->priv->adapter, NULL);
-          outbuf = gst_adapter_take_buffer (parse->priv->adapter, skip);
-          outbuf = gst_buffer_make_writable (outbuf);
-          GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
-          parse->priv->buffers_pending =
-              g_slist_prepend (parse->priv->buffers_pending, outbuf);
-          outbuf = NULL;
-        } else {
-          gst_adapter_flush (parse->priv->adapter, skip);
-        }
-        parse->priv->offset += skip;
-        if (!parse->priv->discont)
-          parse->priv->sync_offset = parse->priv->offset;
-        parse->priv->discont = TRUE;
-        /* something changed least; nullify loop check */
-        old_min_size = 0;
-      }
-      /* skip == 0 should imply subclass set min_size to need more data;
-       * we check this shortly */
-      if ((ret = gst_base_parse_check_sync (parse)) != GST_FLOW_OK) {
-        gst_buffer_unref (tmpbuf);
+    if (G_UNLIKELY (parse->priv->drain)) {
+      min_size = av;
+      GST_DEBUG_OBJECT (parse, "draining, data left: %d", min_size);
+      if (G_UNLIKELY (!min_size)) {
         goto done;
       }
     }
-    gst_buffer_unref (tmpbuf);
-    tmpbuf = NULL;
 
-    if (skip > 0) {
-      /* Subclass found the sync, but still wants to skip some data */
-      GST_LOG_OBJECT (parse, "skipping %d bytes", skip);
-      gst_adapter_flush (parse->priv->adapter, skip);
-      parse->priv->offset += skip;
-    }
-
-    /* Grab lock to prevent a race with FLUSH_START handler */
-    GST_PAD_STREAM_LOCK (parse->srcpad);
-
-    /* FLUSH_START event causes the "flushing" flag to be set. In this
-     * case we can leave the frame pushing loop */
-    if (parse->priv->flushing) {
-      GST_PAD_STREAM_UNLOCK (parse->srcpad);
-      break;
+    /* Collect at least min_frame_size bytes */
+    if (av < min_size) {
+      GST_DEBUG_OBJECT (parse, "not enough data available (only %d bytes)", av);
+      goto done;
     }
 
     /* move along with upstream timestamp (if any),
@@ -2353,38 +2592,33 @@
       parse->priv->prev_ts = parse->priv->next_ts = timestamp;
     }
 
-    /* FIXME: Would it be more efficient to make a subbuffer instead? */
-    outbuf = gst_adapter_take_buffer (parse->priv->adapter, fsize);
-    outbuf = gst_buffer_make_writable (outbuf);
+    /* always pass all available data */
+    data = gst_adapter_map (parse->priv->adapter, av);
+    /* arrange for actual data to be copied if subclass tries to,
+     * since what is passed is tied to the adapter */
+    tmpbuf = gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY |
+        GST_MEMORY_FLAG_NO_SHARE, (gpointer) data, av, 0, av, NULL, NULL);
 
-    /* Subclass may want to know the data offset */
-    GST_BUFFER_OFFSET (outbuf) = parse->priv->offset;
-    parse->priv->offset += fsize;
-    GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
-    GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
+    /* keep the adapter mapped, so keep track of what has to be flushed */
+    ret = gst_base_parse_handle_buffer (parse, tmpbuf, &skip, &flush);
+    tmpbuf = NULL;
 
-    frame->buffer = outbuf;
-    ret = gst_base_parse_handle_and_push_frame (parse, bclass, frame);
-    GST_PAD_STREAM_UNLOCK (parse->srcpad);
-
-    if (ret != GST_FLOW_OK) {
-      GST_LOG_OBJECT (parse, "push returned %d", ret);
-      break;
+    /* probably already implicitly unmapped due to adapter operation,
+     * but for good measure ... */
+    gst_adapter_unmap (parse->priv->adapter);
+    if (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED) {
+      goto done;
+    }
+    if (skip == 0 && flush == 0) {
+      GST_LOG_OBJECT (parse, "nothing skipped and no frames finished, "
+          "breaking to get more data");
+      goto done;
     }
   }
 
 done:
   GST_LOG_OBJECT (parse, "chain leaving");
   return ret;
-
-  /* ERRORS */
-invalid_min:
-  {
-    GST_ELEMENT_ERROR (parse, STREAM, FAILED, (NULL),
-        ("min_size evolution %d -> %d; breaking to avoid looping",
-            old_min_size, min_size));
-    return GST_FLOW_ERROR;
-  }
 }
 
 /* pull @size bytes at current offset,
@@ -2479,7 +2713,7 @@
   if (!parse->priv->last_offset || parse->priv->last_ts <= parse->segment.start) {
     GST_DEBUG_OBJECT (parse, "past start of segment %" GST_TIME_FORMAT,
         GST_TIME_ARGS (parse->segment.start));
-    ret = GST_FLOW_UNEXPECTED;
+    ret = GST_FLOW_EOS;
     goto exit;
   }
 
@@ -2491,7 +2725,7 @@
   if (parse->priv->exact_position) {
     offset = gst_base_parse_find_offset (parse, ts, TRUE, NULL);
   } else {
-    if (!gst_pad_query_convert (parse->srcpad, GST_FORMAT_TIME, ts,
+    if (!gst_base_parse_convert (parse, GST_FORMAT_TIME, ts,
             GST_FORMAT_BYTES, &offset)) {
       GST_DEBUG_OBJECT (parse, "conversion failed, only BYTE based");
     }
@@ -2512,8 +2746,9 @@
   /* offset will increase again as fragment is processed/parsed */
   parse->priv->last_offset = offset;
 
+  gst_base_parse_start_fragment (parse);
   gst_adapter_push (parse->priv->adapter, buffer);
-  ret = gst_base_parse_process_fragment (parse, FALSE);
+  ret = gst_base_parse_finish_fragment (parse, TRUE);
   if (ret != GST_FLOW_OK)
     goto exit;
 
@@ -2529,15 +2764,14 @@
  * ajusts sync, drain and offset going along */
 static GstFlowReturn
 gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass,
-    GstBaseParseFrame * frame, gboolean full)
+    gboolean full)
 {
-  GstBuffer *buffer, *outbuf;
+  GstBuffer *buffer;
   GstFlowReturn ret = GST_FLOW_OK;
-  guint fsize = 1, min_size, old_min_size = 0;
+  guint fsize, min_size;
+  gint flushed = 0;
   gint skip = 0;
 
-  g_return_val_if_fail (frame != NULL, GST_FLOW_ERROR);
-
   GST_LOG_OBJECT (parse, "scanning for frame at offset %" G_GUINT64_FORMAT
       " (%#" G_GINT64_MODIFIER "x)", parse->priv->offset, parse->priv->offset);
 
@@ -2548,106 +2782,74 @@
   fsize = 64 * 1024;
 
   while (TRUE) {
-    gboolean res;
-
     min_size = MAX (parse->priv->min_frame_size, fsize);
-    /* loop safety check */
-    if (G_UNLIKELY (old_min_size >= min_size))
-      goto invalid_min;
-    old_min_size = min_size;
+
+    GST_LOG_OBJECT (parse, "reading buffer size %u", min_size);
 
     ret = gst_base_parse_pull_range (parse, min_size, &buffer);
     if (ret != GST_FLOW_OK)
       goto done;
 
-    if (parse->priv->discont) {
-      GST_DEBUG_OBJECT (parse, "marking DISCONT");
-      GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
-    }
-
     /* if we got a short read, inform subclass we are draining leftover
      * and no more is to be expected */
-    if (gst_buffer_get_size (buffer) < min_size)
+    if (gst_buffer_get_size (buffer) < min_size) {
+      GST_LOG_OBJECT (parse, "... but did not get that; marked draining");
       parse->priv->drain = TRUE;
+    }
 
-    skip = -1;
-    gst_base_parse_frame_update (parse, frame, buffer);
-    res = klass->check_valid_frame (parse, frame, &fsize, &skip);
-    gst_buffer_replace (&frame->buffer, NULL);
-    if (res) {
-      parse->priv->drain = FALSE;
-      GST_LOG_OBJECT (parse, "valid frame of size %d at pos %d", fsize, skip);
+    if (parse->priv->detecting) {
+      ret = klass->detect (parse, buffer);
+      if (ret == GST_FLOW_NOT_NEGOTIATED) {
+        /* If draining we error out, otherwise request a buffer
+         * with 64kb more */
+        if (parse->priv->drain) {
+          gst_buffer_unref (buffer);
+          GST_ERROR_OBJECT (parse, "Failed to detect format but draining");
+          return GST_FLOW_ERROR;
+        } else {
+          fsize += 64 * 1024;
+          gst_buffer_unref (buffer);
+          continue;
+        }
+      } else if (ret != GST_FLOW_OK) {
+        gst_buffer_unref (buffer);
+        GST_ERROR_OBJECT (parse, "detect() returned %s",
+            gst_flow_get_name (ret));
+        return ret;
+      }
+
+      /* Else handle this buffer normally */
+    }
+
+    ret = gst_base_parse_handle_buffer (parse, buffer, &skip, &flushed);
+    if (ret != GST_FLOW_OK)
+      break;
+
+    /* something flushed means something happened,
+     * and we should bail out of this loop so as not to occupy
+     * the task thread indefinitely */
+    if (flushed) {
+      GST_LOG_OBJECT (parse, "frame finished, breaking loop");
       break;
     }
+    /* nothing flushed, no skip and draining, so nothing left to do */
+    if (!skip && parse->priv->drain) {
+      GST_LOG_OBJECT (parse, "no activity or result when draining; "
+          "breaking loop and marking EOS");
+      ret = GST_FLOW_EOS;
+      break;
+    }
+    /* otherwise, get some more data
+     * note that is checked this does not happen indefinitely */
+    if (!skip) {
+      GST_LOG_OBJECT (parse, "getting some more data");
+      fsize += 64 * 1024;
+    }
     parse->priv->drain = FALSE;
-    if (skip == -1)
-      skip = 1;
-    if (skip > 0) {
-      GST_LOG_OBJECT (parse, "finding sync, skipping %d bytes", skip);
-      if (full && parse->segment.rate < 0.0 && !parse->priv->buffers_queued) {
-        /* reverse playback, and no frames found yet, so we are skipping
-         * the leading part of a fragment, which may form the tail of
-         * fragment coming later, hopefully subclass skips efficiently ... */
-        outbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, skip);
-        parse->priv->buffers_pending =
-            g_slist_prepend (parse->priv->buffers_pending, outbuf);
-        outbuf = NULL;
-      }
-      parse->priv->offset += skip;
-      if (!parse->priv->discont)
-        parse->priv->sync_offset = parse->priv->offset;
-      parse->priv->discont = TRUE;
-      /* something changed at least; nullify loop check */
-      if (fsize == G_MAXUINT)
-        fsize = old_min_size + 64 * 1024;
-      old_min_size = 0;
-    }
-    /* skip == 0 should imply subclass set min_size to need more data;
-     * we check this shortly */
-    GST_DEBUG_OBJECT (parse, "finding sync...");
-    gst_buffer_unref (buffer);
-    if ((ret = gst_base_parse_check_sync (parse)) != GST_FLOW_OK) {
-      goto done;
-    }
   }
 
-  /* Does the subclass want to skip too? */
-  if (skip > 0)
-    parse->priv->offset += skip;
-  else if (skip < 0)
-    skip = 0;
-
-  if (fsize + skip <= gst_buffer_get_size (buffer)) {
-    outbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, skip, fsize);
-    GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buffer) + skip;
-    GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
-    gst_buffer_unref (buffer);
-  } else {
-    gst_buffer_unref (buffer);
-    ret = gst_base_parse_pull_range (parse, fsize, &outbuf);
-    if (ret != GST_FLOW_OK)
-      goto done;
-    if (gst_buffer_get_size (outbuf) < fsize) {
-      gst_buffer_unref (outbuf);
-      ret = GST_FLOW_UNEXPECTED;
-    }
-  }
-
-  parse->priv->offset += fsize;
-
-  frame->buffer = outbuf;
-
 done:
   return ret;
-
-  /* ERRORS */
-invalid_min:
-  {
-    GST_ELEMENT_ERROR (parse, STREAM, FAILED, (NULL),
-        ("min_size evolution %d -> %d; breaking to avoid looping",
-            old_min_size, min_size));
-    return GST_FLOW_ERROR;
-  }
 }
 
 /* Loop that is used in pull mode to retrieve data from upstream */
@@ -2657,7 +2859,6 @@
   GstBaseParse *parse;
   GstBaseParseClass *klass;
   GstFlowReturn ret = GST_FLOW_OK;
-  GstBaseParseFrame frame;
 
   parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
   klass = GST_BASE_PARSE_GET_CLASS (parse);
@@ -2674,27 +2875,23 @@
     }
   }
 
-  gst_base_parse_frame_init (&frame);
-  ret = gst_base_parse_scan_frame (parse, klass, &frame, TRUE);
+  ret = gst_base_parse_scan_frame (parse, klass, TRUE);
   if (ret != GST_FLOW_OK)
     goto done;
 
-  /* This always cleans up frame, even if error occurs */
-  ret = gst_base_parse_handle_and_push_frame (parse, klass, &frame);
-
   /* eat expected eos signalling past segment in reverse playback */
-  if (parse->segment.rate < 0.0 && ret == GST_FLOW_UNEXPECTED &&
+  if (parse->segment.rate < 0.0 && ret == GST_FLOW_EOS &&
       parse->segment.position >= parse->segment.stop) {
     GST_DEBUG_OBJECT (parse, "downstream has reached end of segment");
     /* push what was accumulated during loop run */
-    gst_base_parse_process_fragment (parse, TRUE);
+    gst_base_parse_finish_fragment (parse, FALSE);
     /* force previous fragment */
     parse->priv->offset = -1;
     ret = GST_FLOW_OK;
   }
 
 done:
-  if (ret == GST_FLOW_UNEXPECTED)
+  if (ret == GST_FLOW_EOS)
     goto eos;
   else if (ret != GST_FLOW_OK)
     goto pause;
@@ -2705,7 +2902,7 @@
   /* ERRORS */
 eos:
   {
-    ret = GST_FLOW_UNEXPECTED;
+    ret = GST_FLOW_EOS;
     GST_DEBUG_OBJECT (parse, "eos");
     /* fall-through */
   }
@@ -2717,7 +2914,7 @@
         gst_flow_get_name (ret));
     gst_pad_pause_task (parse->sinkpad);
 
-    if (ret == GST_FLOW_UNEXPECTED) {
+    if (ret == GST_FLOW_EOS) {
       /* handle end-of-stream/segment */
       if (parse->segment.flags & GST_SEEK_FLAG_SEGMENT) {
         gint64 stop;
@@ -2739,7 +2936,7 @@
         }
         push_eos = TRUE;
       }
-    } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED) {
+    } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       /* for fatal errors we post an error message, wrong-state is
        * not fatal because it happens due to flushes and only means
        * that we should stop now. */
@@ -2748,11 +2945,18 @@
       push_eos = TRUE;
     }
     if (push_eos) {
-      /* newsegment before eos */
-      if (parse->priv->pending_segment) {
-        gst_pad_push_event (parse->srcpad, parse->priv->pending_segment);
-        parse->priv->pending_segment = NULL;
+      /* Push pending events, including NEWSEGMENT events */
+      if (G_UNLIKELY (parse->priv->pending_events)) {
+        GList *l;
+
+        for (l = parse->priv->pending_events; l != NULL; l = l->next) {
+          gst_pad_push_event (parse->srcpad, GST_EVENT (l->data));
+        }
+        g_list_free (parse->priv->pending_events);
+        parse->priv->pending_events = NULL;
+        parse->priv->pending_segment = FALSE;
       }
+
       gst_pad_push_event (parse->srcpad, gst_event_new_eos ());
     }
     gst_object_unref (parse);
@@ -2760,121 +2964,118 @@
 }
 
 static gboolean
-gst_base_parse_sink_activate (GstPad * sinkpad)
+gst_base_parse_sink_activate (GstPad * sinkpad, GstObject * parent)
 {
   GstBaseParse *parse;
-  gboolean result = TRUE;
   GstQuery *query;
   gboolean pull_mode;
 
-  parse = GST_BASE_PARSE (gst_pad_get_parent (sinkpad));
+  parse = GST_BASE_PARSE (parent);
 
   GST_DEBUG_OBJECT (parse, "sink activate");
 
   query = gst_query_new_scheduling ();
-  result = gst_pad_peer_query (sinkpad, query);
-  if (result) {
-    gst_query_parse_scheduling (query, &pull_mode, NULL, NULL, NULL, NULL,
-        NULL);
-  } else {
-    pull_mode = FALSE;
+  if (!gst_pad_peer_query (sinkpad, query)) {
+    gst_query_unref (query);
+    goto baseparse_push;
   }
+
+  pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL);
   gst_query_unref (query);
 
-  if (pull_mode) {
-    GST_DEBUG_OBJECT (parse, "trying to activate in pull mode");
-    result = gst_pad_activate_pull (sinkpad, TRUE);
-  } else {
-    GST_DEBUG_OBJECT (parse, "trying to activate in push mode");
-    result = gst_pad_activate_push (sinkpad, TRUE);
-  }
+  if (!pull_mode)
+    goto baseparse_push;
 
-  GST_DEBUG_OBJECT (parse, "sink activate return %d", result);
-  gst_object_unref (parse);
-  return result;
+  GST_DEBUG_OBJECT (parse, "trying to activate in pull mode");
+  if (!gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, TRUE))
+    goto baseparse_push;
+
+  return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_base_parse_loop,
+      sinkpad);
+  /* fallback */
+baseparse_push:
+  {
+    GST_DEBUG_OBJECT (parse, "trying to activate in push mode");
+    return gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PUSH, TRUE);
+  }
 }
 
 static gboolean
 gst_base_parse_activate (GstBaseParse * parse, gboolean active)
 {
   GstBaseParseClass *klass;
-  gboolean result = FALSE;
+  gboolean result = TRUE;
 
   GST_DEBUG_OBJECT (parse, "activate %d", active);
 
   klass = GST_BASE_PARSE_GET_CLASS (parse);
 
   if (active) {
-    if (parse->priv->pad_mode == GST_ACTIVATE_NONE && klass->start)
+    if (parse->priv->pad_mode == GST_PAD_MODE_NONE && klass->start)
       result = klass->start (parse);
+
+    /* If the subclass implements ::detect we want to
+     * call it for the first buffers now */
+    parse->priv->detecting = (klass->detect != NULL);
   } else {
     /* We must make sure streaming has finished before resetting things
      * and calling the ::stop vfunc */
     GST_PAD_STREAM_LOCK (parse->sinkpad);
     GST_PAD_STREAM_UNLOCK (parse->sinkpad);
 
-    if (parse->priv->pad_mode != GST_ACTIVATE_NONE && klass->stop)
+    if (parse->priv->pad_mode != GST_PAD_MODE_NONE && klass->stop)
       result = klass->stop (parse);
 
-    parse->priv->pad_mode = GST_ACTIVATE_NONE;
+    parse->priv->pad_mode = GST_PAD_MODE_NONE;
   }
   GST_DEBUG_OBJECT (parse, "activate return: %d", result);
   return result;
 }
 
 static gboolean
-gst_base_parse_sink_activate_push (GstPad * pad, gboolean active)
+gst_base_parse_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
-  gboolean result = TRUE;
+  gboolean result;
   GstBaseParse *parse;
 
-  parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
+  parse = GST_BASE_PARSE (parent);
 
-  GST_DEBUG_OBJECT (parse, "sink activate push %d", active);
+  GST_DEBUG_OBJECT (parse, "sink activate mode %d, %d", mode, active);
 
-  result = gst_base_parse_activate (parse, active);
+  if (!gst_base_parse_activate (parse, active))
+    goto activate_failed;
 
-  if (result)
-    parse->priv->pad_mode = active ? GST_ACTIVATE_PUSH : GST_ACTIVATE_NONE;
-
-  GST_DEBUG_OBJECT (parse, "sink activate push return: %d", result);
-
-  gst_object_unref (parse);
-  return result;
-}
-
-static gboolean
-gst_base_parse_sink_activate_pull (GstPad * sinkpad, gboolean active)
-{
-  gboolean result = FALSE;
-  GstBaseParse *parse;
-
-  parse = GST_BASE_PARSE (gst_pad_get_parent (sinkpad));
-
-  GST_DEBUG_OBJECT (parse, "activate pull %d", active);
-
-  result = gst_base_parse_activate (parse, active);
-
-  if (result) {
-    if (active) {
-      parse->priv->pending_segment = gst_event_new_segment (&parse->segment);
-      result &=
-          gst_pad_start_task (sinkpad, (GstTaskFunction) gst_base_parse_loop,
-          sinkpad);
-    } else {
-      result &= gst_pad_stop_task (sinkpad);
-    }
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      if (active) {
+        parse->priv->pending_events =
+            g_list_append (parse->priv->pending_events,
+            gst_event_new_segment (&parse->segment));
+        parse->priv->pending_segment = TRUE;
+        result = TRUE;
+      } else {
+        result = gst_pad_stop_task (pad);
+      }
+      break;
+    default:
+      result = TRUE;
+      break;
   }
-
   if (result)
-    parse->priv->pad_mode = active ? GST_ACTIVATE_PULL : GST_ACTIVATE_NONE;
+    parse->priv->pad_mode = active ? mode : GST_PAD_MODE_NONE;
 
-  GST_DEBUG_OBJECT (parse, "sink activate pull return: %d", result);
+  GST_DEBUG_OBJECT (parse, "sink activate return: %d", result);
 
-  gst_object_unref (parse);
   return result;
-}
 
+  /* ERRORS */
+activate_failed:
+  {
+    GST_DEBUG_OBJECT (parse, "activate failed");
+    return FALSE;
+  }
+}
 
 /**
  * gst_base_parse_set_duration:
@@ -3067,9 +3268,9 @@
  * parsing, and the parser should operate in passthrough mode (which only
  * applies when operating in push mode). That is, incoming buffers are
  * pushed through unmodified, i.e. no @check_valid_frame or @parse_frame
- * callbacks will be invoked, but @pre_push_buffer will still be invoked,
+ * callbacks will be invoked, but @pre_push_frame will still be invoked,
  * so subclass can perform as much or as little is appropriate for
- * passthrough semantics in @pre_push_buffer.
+ * passthrough semantics in @pre_push_frame.
  *
  * Since: 0.10.33
  */
@@ -3090,7 +3291,7 @@
  * by the parsing process.  If there is such a latency, which depends on the
  * particular parsing of the format, it typically corresponds to 1 frame duration.
  *
- * Since: 0.10.34
+ * Since: 0.10.36
  */
 void
 gst_base_parse_set_latency (GstBaseParse * parse, GstClockTime min_latency,
@@ -3126,6 +3327,8 @@
     GST_LOG_OBJECT (parse, "using estimated duration");
     *duration = parse->priv->estimated_duration;
     res = TRUE;
+  } else {
+    GST_LOG_OBJECT (parse, "cannot estimate duration");
   }
 
   GST_LOG_OBJECT (parse, "res: %d, duration %" GST_TIME_FORMAT, res,
@@ -3133,28 +3336,13 @@
   return res;
 }
 
-static const GstQueryType *
-gst_base_parse_get_querytypes (GstPad * pad)
-{
-  static const GstQueryType list[] = {
-    GST_QUERY_POSITION,
-    GST_QUERY_DURATION,
-    GST_QUERY_FORMATS,
-    GST_QUERY_SEEKING,
-    GST_QUERY_CONVERT,
-    GST_QUERY_NONE
-  };
-
-  return list;
-}
-
 static gboolean
-gst_base_parse_query (GstPad * pad, GstQuery * query)
+gst_base_parse_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstBaseParse *parse;
   gboolean res = FALSE;
 
-  parse = GST_BASE_PARSE (GST_PAD_PARENT (pad));
+  parse = GST_BASE_PARSE (parent);
 
   GST_LOG_OBJECT (parse, "handling query: %" GST_PTR_FORMAT, query);
 
@@ -3167,27 +3355,29 @@
       GST_DEBUG_OBJECT (parse, "position query");
       gst_query_parse_position (query, &format, NULL);
 
-      GST_OBJECT_LOCK (parse);
-      if (format == GST_FORMAT_BYTES) {
-        dest_value = parse->priv->offset;
-        res = TRUE;
-      } else if (format == parse->segment.format &&
-          GST_CLOCK_TIME_IS_VALID (parse->segment.position)) {
-        dest_value = parse->segment.position;
-        res = TRUE;
-      }
-      GST_OBJECT_UNLOCK (parse);
-
-      if (res)
-        gst_query_set_position (query, format, dest_value);
-      else {
-        res = gst_pad_query_default (pad, query);
+      /* try upstream first */
+      res = gst_pad_query_default (pad, parent, query);
+      if (!res) {
+        /* Fall back on interpreting segment */
+        GST_OBJECT_LOCK (parse);
+        if (format == GST_FORMAT_BYTES) {
+          dest_value = parse->priv->offset;
+          res = TRUE;
+        } else if (format == parse->segment.format &&
+            GST_CLOCK_TIME_IS_VALID (parse->segment.position)) {
+          dest_value = gst_segment_to_stream_time (&parse->segment,
+              parse->segment.format, parse->segment.position);
+          res = TRUE;
+        }
+        GST_OBJECT_UNLOCK (parse);
         if (!res) {
           /* no precise result, upstream no idea either, then best estimate */
           /* priv->offset is updated in both PUSH/PULL modes */
           res = gst_base_parse_convert (parse,
               GST_FORMAT_BYTES, parse->priv->offset, format, &dest_value);
         }
+        if (res)
+          gst_query_set_position (query, format, dest_value);
       }
       break;
     }
@@ -3200,7 +3390,7 @@
       gst_query_parse_duration (query, &format, NULL);
 
       /* consult upstream */
-      res = gst_pad_query_default (pad, query);
+      res = gst_pad_query_default (pad, parent, query);
 
       /* otherwise best estimate from us */
       if (!res) {
@@ -3220,7 +3410,7 @@
       gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
 
       /* consult upstream */
-      res = gst_pad_query_default (pad, query);
+      res = gst_pad_query_default (pad, parent, query);
 
       /* we may be able to help if in TIME */
       if (fmt == GST_FORMAT_TIME && gst_base_parse_is_seekable (parse)) {
@@ -3289,7 +3479,7 @@
       break;
     }
     default:
-      res = gst_pad_query_default (pad, query);
+      res = gst_pad_query_default (pad, parent, query);
       break;
   }
   return res;
@@ -3306,7 +3496,7 @@
   gboolean orig_drain, orig_discont;
   GstFlowReturn ret = GST_FLOW_OK;
   GstBuffer *buf = NULL;
-  GstBaseParseFrame frame;
+  GstBaseParseFrame *sframe = NULL;
 
   g_return_val_if_fail (pos != NULL, GST_FLOW_ERROR);
   g_return_val_if_fail (time != NULL, GST_FLOW_ERROR);
@@ -3325,37 +3515,36 @@
   GST_DEBUG_OBJECT (parse, "scanning for frame starting at %" G_GINT64_FORMAT
       " (%#" G_GINT64_MODIFIER "x)", *pos, *pos);
 
-  gst_base_parse_frame_init (&frame);
-
   /* jump elsewhere and locate next frame */
   parse->priv->offset = *pos;
-  ret = gst_base_parse_scan_frame (parse, klass, &frame, FALSE);
-  if (ret != GST_FLOW_OK)
+  /* mark as scanning so frames don't get processed all the way */
+  parse->priv->scanning = TRUE;
+  ret = gst_base_parse_scan_frame (parse, klass, FALSE);
+  parse->priv->scanning = FALSE;
+  /* retrieve frame found during scan */
+  sframe = parse->priv->scanned_frame;
+  parse->priv->scanned_frame = NULL;
+
+  if (ret != GST_FLOW_OK || !sframe)
     goto done;
 
-  buf = frame.buffer;
-  GST_LOG_OBJECT (parse,
-      "peek parsing frame at offset %" G_GUINT64_FORMAT
-      " (%#" G_GINT64_MODIFIER "x) of size %" G_GSIZE_FORMAT,
-      GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET (buf),
-      gst_buffer_get_size (buf));
-
   /* get offset first, subclass parsing might dump other stuff in there */
-  *pos = GST_BUFFER_OFFSET (buf);
-  ret = klass->parse_frame (parse, &frame);
-  buf = frame.buffer;
+  *pos = sframe->offset;
+  buf = sframe->buffer;
+  g_assert (buf);
 
   /* but it should provide proper time */
   *time = GST_BUFFER_TIMESTAMP (buf);
   *duration = GST_BUFFER_DURATION (buf);
 
-  gst_base_parse_frame_free (&frame);
-
   GST_LOG_OBJECT (parse,
       "frame with time %" GST_TIME_FORMAT " at offset %" G_GINT64_FORMAT,
       GST_TIME_ARGS (*time), *pos);
 
 done:
+  if (sframe)
+    gst_base_parse_frame_free (sframe);
+
   /* restore state */
   parse->priv->offset = orig_offset;
   parse->priv->discont = orig_discont;
@@ -3381,6 +3570,9 @@
   g_return_val_if_fail (_time != NULL, GST_FLOW_ERROR);
   g_return_val_if_fail (_offset != NULL, GST_FLOW_ERROR);
 
+  GST_DEBUG_OBJECT (parse, "Bisecting for time %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (*_time));
+
   /* TODO also make keyframe aware if useful some day */
 
   time = *_time;
@@ -3403,13 +3595,21 @@
   /* need initial positions; start and end */
   lpos = parse->priv->first_frame_offset;
   ltime = parse->priv->first_frame_ts;
-  htime = parse->priv->duration;
+  if (!gst_base_parse_get_duration (parse, GST_FORMAT_TIME, &htime)) {
+    GST_DEBUG_OBJECT (parse, "Unknown time duration, cannot bisect");
+    return GST_FLOW_ERROR;
+  }
   hpos = parse->priv->upstream_size;
 
+  GST_DEBUG_OBJECT (parse,
+      "Bisection initial bounds: bytes %" G_GINT64_FORMAT " %" G_GINT64_FORMAT
+      ", times %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, lpos, htime,
+      GST_TIME_ARGS (ltime), GST_TIME_ARGS (htime));
+
   /* check preconditions are satisfied;
    * start and end are needed, except for special case where we scan for
    * last frame to determine duration */
-  if (parse->priv->pad_mode != GST_ACTIVATE_PULL || !hpos ||
+  if (parse->priv->pad_mode != GST_PAD_MODE_PULL || !hpos ||
       !GST_CLOCK_TIME_IS_VALID (ltime) ||
       (!GST_CLOCK_TIME_IS_VALID (htime) && time != G_MAXINT64)) {
     return GST_FLOW_OK;
@@ -3455,7 +3655,7 @@
         GST_TIME_ARGS (time), newpos);
 
     ret = gst_base_parse_find_frame (parse, &newpos, &newtime, &dur);
-    if (ret == GST_FLOW_UNEXPECTED) {
+    if (ret == GST_FLOW_EOS) {
       /* heuristic HACK */
       hpos = MAX (lpos, hpos - chunk);
       continue;
@@ -3514,13 +3714,13 @@
     goto exit;
   }
 
-  g_static_mutex_lock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_LOCK (parse);
   if (parse->priv->index) {
     /* Let's check if we have an index entry for that time */
     entry = gst_index_get_assoc_entry (parse->priv->index,
         parse->priv->index_id,
         before ? GST_INDEX_LOOKUP_BEFORE : GST_INDEX_LOOKUP_AFTER,
-        GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, time);
+        GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, time);
   }
 
   if (entry) {
@@ -3538,7 +3738,7 @@
       ts = GST_CLOCK_TIME_NONE;
     }
   }
-  g_static_mutex_unlock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_UNLOCK (parse);
 
 exit:
   if (_ts)
@@ -3569,7 +3769,7 @@
       cur_type, GST_TIME_ARGS (cur), stop_type, GST_TIME_ARGS (stop));
 
   /* no negative rates in push mode */
-  if (rate < 0.0 && parse->priv->pad_mode == GST_ACTIVATE_PUSH)
+  if (rate < 0.0 && parse->priv->pad_mode == GST_PAD_MODE_PUSH)
     goto negative_rate;
 
   if (cur_type != GST_SEEK_TYPE_SET ||
@@ -3579,16 +3779,9 @@
   /* For any format other than TIME, see if upstream handles
    * it directly or fail. For TIME, try upstream, but do it ourselves if
    * it fails upstream */
-  if (format != GST_FORMAT_TIME) {
-    /* default action delegates to upstream */
-    res = FALSE;
+  res = gst_pad_push_event (parse->sinkpad, event);
+  if (format != GST_FORMAT_TIME || res)
     goto done;
-  } else {
-    gst_event_ref (event);
-    if ((res = gst_pad_push_event (parse->sinkpad, event))) {
-      goto done;
-    }
-  }
 
   /* get flush flag */
   flush = flags & GST_SEEK_FLAG_FLUSH;
@@ -3624,10 +3817,10 @@
         NULL);
   } else {
     start_ts = seeksegment.position;
-    if (!gst_pad_query_convert (parse->srcpad, format, seeksegment.position,
+    if (!gst_base_parse_convert (parse, format, seeksegment.position,
             GST_FORMAT_BYTES, &seekpos))
       goto convert_failed;
-    if (!gst_pad_query_convert (parse->srcpad, format, seeksegment.stop,
+    if (!gst_base_parse_convert (parse, format, seeksegment.stop,
             GST_FORMAT_BYTES, &seekstop))
       goto convert_failed;
   }
@@ -3639,7 +3832,7 @@
       "seek stop %" G_GINT64_FORMAT " in bytes: %" G_GINT64_FORMAT,
       seeksegment.stop, seekstop);
 
-  if (parse->priv->pad_mode == GST_ACTIVATE_PULL) {
+  if (parse->priv->pad_mode == GST_PAD_MODE_PULL) {
     gint64 last_stop;
 
     GST_DEBUG_OBJECT (parse, "seek in PULL mode");
@@ -3681,11 +3874,11 @@
     memcpy (&parse->segment, &seeksegment, sizeof (GstSegment));
 
     /* store the newsegment event so it can be sent from the streaming thread. */
-    if (parse->priv->pending_segment)
-      gst_event_unref (parse->priv->pending_segment);
-
     /* This will be sent later in _loop() */
-    parse->priv->pending_segment = gst_event_new_segment (&parse->segment);
+    parse->priv->pending_segment = TRUE;
+    parse->priv->pending_events =
+        g_list_append (parse->priv->pending_events,
+        gst_event_new_segment (&parse->segment));
 
     GST_DEBUG_OBJECT (parse, "Created newseg format %d, "
         "start = %" GST_TIME_FORMAT ", stop = %" GST_TIME_FORMAT
@@ -3775,9 +3968,6 @@
   }
 
 done:
-  /* handled event is ours to free */
-  if (res)
-    gst_event_unref (event);
   return res;
 
   /* ERRORS */
@@ -3826,12 +4016,13 @@
   }
 }
 
+#if 0
 static void
 gst_base_parse_set_index (GstElement * element, GstIndex * index)
 {
   GstBaseParse *parse = GST_BASE_PARSE (element);
 
-  g_static_mutex_lock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_LOCK (parse);
   if (parse->priv->index)
     gst_object_unref (parse->priv->index);
   if (index) {
@@ -3842,7 +4033,7 @@
   } else {
     parse->priv->index = NULL;
   }
-  g_static_mutex_unlock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_UNLOCK (parse);
 }
 
 static GstIndex *
@@ -3851,13 +4042,14 @@
   GstBaseParse *parse = GST_BASE_PARSE (element);
   GstIndex *result = NULL;
 
-  g_static_mutex_lock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_LOCK (parse);
   if (parse->priv->index)
     result = gst_object_ref (parse->priv->index);
-  g_static_mutex_unlock (&parse->priv->index_lock);
+  GST_BASE_PARSE_INDEX_UNLOCK (parse);
 
   return result;
 }
+#endif
 
 static GstStateChangeReturn
 gst_base_parse_change_state (GstElement * element, GstStateChange transition)
@@ -3871,7 +4063,7 @@
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       /* If this is our own index destroy it as the
        * old entries might be wrong for the new stream */
-      g_static_mutex_lock (&parse->priv->index_lock);
+      GST_BASE_PARSE_INDEX_LOCK (parse);
       if (parse->priv->own_index) {
         gst_object_unref (parse->priv->index);
         parse->priv->index = NULL;
@@ -3882,12 +4074,12 @@
       if (G_UNLIKELY (!parse->priv->index)) {
         GST_DEBUG_OBJECT (parse, "no index provided creating our own");
 
-        parse->priv->index = gst_index_factory_make ("memindex");
+        parse->priv->index = g_object_new (gst_mem_index_get_type (), NULL);
         gst_index_get_writer_id (parse->priv->index, GST_OBJECT (parse),
             &parse->priv->index_id);
         parse->priv->own_index = TRUE;
       }
-      g_static_mutex_unlock (&parse->priv->index_lock);
+      GST_BASE_PARSE_INDEX_UNLOCK (parse);
       break;
     default:
       break;
diff --git a/libs/gst/base/gstbaseparse.h b/libs/gst/base/gstbaseparse.h
index 655ad0e..d1793ac 100644
--- a/libs/gst/base/gstbaseparse.h
+++ b/libs/gst/base/gstbaseparse.h
@@ -58,23 +58,13 @@
  * GST_BASE_PARSE_FLOW_DROPPED:
  *
  * A #GstFlowReturn that can be returned from parse_frame to
- * indicate that no output buffer was generated, or from pre_push_buffer to
+ * indicate that no output buffer was generated, or from pre_push_frame to
  * to forego pushing buffer.
  *
  * Since: 0.10.33
  */
 #define GST_BASE_PARSE_FLOW_DROPPED     GST_FLOW_CUSTOM_SUCCESS
 
-/**
- * GST_BASE_PARSE_FLOW_QUEUED:
- *
- * A #GstFlowReturn that can be returned from parse frame to indicate that
- * the buffer will be queued to be pushed when the next OK
- *
- * Since: 0.10.33
- */
-#define GST_BASE_PARSE_FLOW_QUEUED      GST_FLOW_CUSTOM_SUCCESS_1
-
 /* not public API, use accessor macros below */
 #define GST_BASE_PARSE_FLAG_LOST_SYNC (1 << 0)
 #define GST_BASE_PARSE_FLAG_DRAINING  (1 << 1)
@@ -103,13 +93,21 @@
 /**
  * GstBaseParseFrameFlags:
  * @GST_BASE_PARSE_FRAME_FLAG_NONE: no flag
+ * @GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME: set by baseclass if current frame
+ *   is passed for processing to the subclass for the first time
+ *   (and not set on subsequent calls with same data).
  * @GST_BASE_PARSE_FRAME_FLAG_NO_FRAME: set to indicate this buffer should not be
  *   counted as frame, e.g. if this frame is dependent on a previous one.
  *   As it is not counted as a frame, bitrate increases but frame to time
  *   conversions are maintained.
- * @GST_BASE_PARSE_FRAME_FLAG_CLIP: @pre_push_buffer can set this to indicate
+ * @GST_BASE_PARSE_FRAME_FLAG_CLIP: @pre_push_frame can set this to indicate
  *    that regular segment clipping can still be performed (as opposed to
  *    any custom one having been done).
+ * @GST_BASE_PARSE_FRAME_FLAG_DROP: indicates to @finish_frame that the
+ *    the frame should be dropped (and might be handled internall by subclass)
+ * @GST_BASE_PARSE_FRAME_FLAG_QUEUE: indicates to @finish_frame that the
+ *    the frame should be queued for now and processed fully later
+ *    when the first non-queued frame is finished
  *
  * Flags to be used in a #GstBaseParseFrame.
  *
@@ -117,14 +115,19 @@
  */
 typedef enum {
   GST_BASE_PARSE_FRAME_FLAG_NONE         = 0,
-  GST_BASE_PARSE_FRAME_FLAG_NO_FRAME     = (1 << 0),
-  GST_BASE_PARSE_FRAME_FLAG_CLIP         = (1 << 1)
+  GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME    = (1 << 0),
+  GST_BASE_PARSE_FRAME_FLAG_NO_FRAME     = (1 << 1),
+  GST_BASE_PARSE_FRAME_FLAG_CLIP         = (1 << 2),
+  GST_BASE_PARSE_FRAME_FLAG_DROP         = (1 << 3),
+  GST_BASE_PARSE_FRAME_FLAG_QUEUE        = (1 << 4)
 } GstBaseParseFrameFlags;
 
 /**
  * GstBaseParseFrame:
- * @buffer: data to check for valid frame or parsed frame.
- *   Subclass is allowed to replace this buffer.
+ * @buffer: input data to be parsed for frames.
+ * @out_buffer: (optional) (replacement) output data.
+ * @offset: media specific offset of input frame
+ *   Note that a converter may have a different one on the frame's buffer.
  * @overhead: subclass can set this to indicates the metadata overhead
  *   for the given frame, which is then used to enable more accurate bitrate
  *   computations. If this is -1, it is assumed that this frame should be
@@ -145,9 +148,12 @@
  */
 typedef struct {
   GstBuffer * buffer;
+  GstBuffer * out_buffer;
   guint       flags;
+  guint64     offset;
   gint        overhead;
   /*< private >*/
+  gint        size;
   guint       _gst_reserved_i[2];
   gpointer    _gst_reserved_p[2];
   guint       _private_flags;
@@ -191,26 +197,36 @@
  *                  Called when the element stops processing.
  *                  Allows closing external resources.
  * @set_sink_caps:  allows the subclass to be notified of the actual caps set.
- * @check_valid_frame:  Check if the given piece of data contains a valid
- *                      frame.
- * @parse_frame:    Parse the already checked frame. Subclass need to
- *                  set the buffer timestamp, duration, caps and possibly
- *                  other necessary metadata. This is called with srcpad's
- *                  STREAM_LOCK held.
+ * @get_sink_caps:  allows the subclass to do its own sink get caps if needed.
+ * @handle_frame:   Parses the input data into valid frames as defined by subclass
+ *                  which should be passed to gst_base_parse_finish_frame().
+ *                  The frame's input buffer is guaranteed writable,
+ *                  whereas the input frame ownership is held by caller
+ *                  (so subclass should make a copy if it needs to hang on).
+ *                  Input buffer (data) is provided by baseclass with as much
+ *                  metadata set as possible by baseclass according to upstream
+ *                  information and/or subclass settings,
+ *                  though subclass may still set buffer timestamp and duration
+ *                  if desired.
  * @convert:        Optional.
  *                  Convert between formats.
- * @event:          Optional.
- *                  Event handler on the sink pad. This function should return
- *                  TRUE if the event was handled and can be dropped.
+ * @sink_event:     Optional.
+ *                  Event handler on the sink pad. This function should chain
+ *                  up to the parent implementation to let the default handler
+ *                  run.
  * @src_event:      Optional.
- *                  Event handler on the source pad. Should return TRUE
- *                  if the event was handled and can be dropped.
+ *                  Event handler on the source pad. Should chain up to the
+ *                  parent to let the default handler run.
  * @pre_push_frame: Optional.
  *                   Called just prior to pushing a frame (after any pending
  *                   events have been sent) to give subclass a chance to perform
  *                   additional actions at this time (e.g. tag sending) or to
  *                   decide whether this buffer should be dropped or not
  *                   (e.g. custom segment clipping).
+ * @detect:         Optional.
+ *                   Called until it doesn't return GST_FLOW_OK anymore for
+ *                   the first buffers. Can be used by the subclass to detect
+ *                   the stream format. Since: 0.10.36
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @check_valid_frame and @parse_frame needs to be
@@ -229,14 +245,10 @@
   gboolean      (*set_sink_caps)      (GstBaseParse * parse,
                                        GstCaps      * caps);
 
-  gboolean      (*check_valid_frame)  (GstBaseParse      * parse,
+  GstFlowReturn (*handle_frame)       (GstBaseParse      * parse,
                                        GstBaseParseFrame * frame,
-                                       guint             * framesize,
                                        gint              * skipsize);
 
-  GstFlowReturn (*parse_frame)        (GstBaseParse      * parse,
-                                       GstBaseParseFrame * frame);
-
   GstFlowReturn (*pre_push_frame)     (GstBaseParse      * parse,
                                        GstBaseParseFrame * frame);
 
@@ -246,12 +258,18 @@
                                        GstFormat      dest_format,
                                        gint64       * dest_value);
 
-  gboolean      (*event)              (GstBaseParse * parse,
+  gboolean      (*sink_event)         (GstBaseParse * parse,
                                        GstEvent     * event);
 
   gboolean      (*src_event)          (GstBaseParse * parse,
                                        GstEvent     * event);
 
+  GstCaps *     (*get_sink_caps)      (GstBaseParse * parse,
+                                       GstCaps      * filter);
+
+  GstFlowReturn (*detect)             (GstBaseParse * parse,
+                                       GstBuffer    * buffer);
+
   /*< private >*/
   gpointer       _gst_reserved[GST_PADDING_LARGE];
 };
@@ -271,6 +289,10 @@
 GstFlowReturn   gst_base_parse_push_frame      (GstBaseParse      * parse,
                                                 GstBaseParseFrame * frame);
 
+GstFlowReturn   gst_base_parse_finish_frame    (GstBaseParse * parse,
+                                                GstBaseParseFrame * frame,
+                                                gint size);
+
 void            gst_base_parse_set_duration    (GstBaseParse      * parse,
                                                 GstFormat           fmt,
                                                 gint64              duration,
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index bcaa20a..151015d 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -145,7 +145,6 @@
 #include <gst/gst_private.h>
 
 #include "gstbasesink.h"
-#include <gst/gstmarshal.h>
 #include <gst/gst-i18n-lib.h>
 
 GST_DEBUG_CATEGORY_STATIC (gst_base_sink_debug);
@@ -174,14 +173,8 @@
   gboolean need_preroll;        /* if we need preroll after this step */
 } GstStepInfo;
 
-/* FIXME, some stuff in ABI.data and other in Private...
- * Make up your mind please.
- */
 struct _GstBaseSinkPrivate
 {
-  GQueue *preroll_queue;
-  gint preroll_queued;
-
   gint qos_enabled;             /* ATOMIC */
   gboolean async_enabled;
   GstClockTimeDiff ts_offset;
@@ -240,11 +233,12 @@
   gboolean have_latency;
 
   /* the last buffer we prerolled or rendered. Useful for making snapshots */
-  gint enable_last_buffer;      /* atomic */
+  gint enable_last_sample;      /* atomic */
   GstBuffer *last_buffer;
+  GstCaps *last_caps;
 
-  /* caps for pull based scheduling */
-  GstCaps *pull_caps;
+  /* negotiated caps */
+  GstCaps *caps;
 
   /* blocksize for pulling */
   guint blocksize;
@@ -282,25 +276,11 @@
 #define UPDATE_RUNNING_AVG_P(avg,val) DO_RUNNING_AVG(avg,val,16)
 #define UPDATE_RUNNING_AVG_N(avg,val) DO_RUNNING_AVG(avg,val,4)
 
-enum
-{
-  _PR_IS_NOTHING = 1 << 0,
-  _PR_IS_BUFFER = 1 << 1,
-  _PR_IS_BUFFERLIST = 1 << 2,
-  _PR_IS_EVENT = 1 << 3
-} PrivateObjectType;
-
-#define OBJ_IS_BUFFER(a) ((a) & _PR_IS_BUFFER)
-#define OBJ_IS_BUFFERLIST(a) ((a) & _PR_IS_BUFFERLIST)
-#define OBJ_IS_EVENT(a) ((a) & _PR_IS_EVENT)
-#define OBJ_IS_BUFFERFULL(a) ((a) & (_PR_IS_BUFFER | _PR_IS_BUFFERLIST))
-
 /* BaseSink properties */
 
 #define DEFAULT_CAN_ACTIVATE_PULL FALSE /* fixme: enable me */
 #define DEFAULT_CAN_ACTIVATE_PUSH TRUE
 
-#define DEFAULT_PREROLL_QUEUE_LEN   0
 #define DEFAULT_SYNC                TRUE
 #define DEFAULT_MAX_LATENESS        -1
 #define DEFAULT_QOS                 FALSE
@@ -308,20 +288,19 @@
 #define DEFAULT_TS_OFFSET           0
 #define DEFAULT_BLOCKSIZE           4096
 #define DEFAULT_RENDER_DELAY        0
-#define DEFAULT_ENABLE_LAST_BUFFER  TRUE
+#define DEFAULT_ENABLE_LAST_SAMPLE  TRUE
 #define DEFAULT_THROTTLE_TIME       0
 
 enum
 {
   PROP_0,
-  PROP_PREROLL_QUEUE_LEN,
   PROP_SYNC,
   PROP_MAX_LATENESS,
   PROP_QOS,
   PROP_ASYNC,
   PROP_TS_OFFSET,
-  PROP_ENABLE_LAST_BUFFER,
-  PROP_LAST_BUFFER,
+  PROP_ENABLE_LAST_SAMPLE,
+  PROP_LAST_SAMPLE,
   PROP_BLOCKSIZE,
   PROP_RENDER_DELAY,
   PROP_THROTTLE_TIME,
@@ -368,12 +347,13 @@
 static gboolean gst_base_sink_send_event (GstElement * element,
     GstEvent * event);
 static gboolean default_element_query (GstElement * element, GstQuery * query);
-static const GstQueryType *gst_base_sink_get_query_types (GstElement * element);
 
-static GstCaps *gst_base_sink_get_caps (GstBaseSink * sink, GstCaps * caps);
-static gboolean gst_base_sink_set_caps (GstBaseSink * sink, GstCaps * caps);
-static void gst_base_sink_get_times (GstBaseSink * basesink, GstBuffer * buffer,
-    GstClockTime * start, GstClockTime * end);
+static GstCaps *gst_base_sink_default_get_caps (GstBaseSink * sink,
+    GstCaps * caps);
+static gboolean gst_base_sink_default_set_caps (GstBaseSink * sink,
+    GstCaps * caps);
+static void gst_base_sink_default_get_times (GstBaseSink * basesink,
+    GstBuffer * buffer, GstClockTime * start, GstClockTime * end);
 static gboolean gst_base_sink_set_flushing (GstBaseSink * basesink,
     GstPad * pad, gboolean flushing);
 static gboolean gst_base_sink_default_activate_pull (GstBaseSink * basesink,
@@ -386,29 +366,36 @@
 static GstStateChangeReturn gst_base_sink_change_state (GstElement * element,
     GstStateChange transition);
 
-static gboolean gst_base_sink_sink_query (GstPad * pad, GstQuery * query);
-static GstFlowReturn gst_base_sink_chain (GstPad * pad, GstBuffer * buffer);
-static GstFlowReturn gst_base_sink_chain_list (GstPad * pad,
+static gboolean gst_base_sink_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+static GstFlowReturn gst_base_sink_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static GstFlowReturn gst_base_sink_chain_list (GstPad * pad, GstObject * parent,
     GstBufferList * list);
 
 static void gst_base_sink_loop (GstPad * pad);
-static gboolean gst_base_sink_pad_activate (GstPad * pad);
-static gboolean gst_base_sink_pad_activate_push (GstPad * pad, gboolean active);
-static gboolean gst_base_sink_pad_activate_pull (GstPad * pad, gboolean active);
-static gboolean gst_base_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_base_sink_pad_activate (GstPad * pad, GstObject * parent);
+static gboolean gst_base_sink_pad_activate_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
+static gboolean gst_base_sink_default_event (GstBaseSink * basesink,
+    GstEvent * event);
+static GstFlowReturn gst_base_sink_default_wait_eos (GstBaseSink * basesink,
+    GstEvent * event);
+static gboolean gst_base_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
 
-static gboolean default_sink_query (GstBaseSink * sink, GstQuery * query);
+static gboolean gst_base_sink_default_query (GstBaseSink * sink,
+    GstQuery * query);
 
 static gboolean gst_base_sink_negotiate_pull (GstBaseSink * basesink);
-static GstCaps *gst_base_sink_pad_getcaps (GstPad * pad, GstCaps * filter);
-static void gst_base_sink_pad_fixate (GstPad * pad, GstCaps * caps);
+static GstCaps *gst_base_sink_default_fixate (GstBaseSink * bsink,
+    GstCaps * caps);
+static GstCaps *gst_base_sink_fixate (GstBaseSink * bsink, GstCaps * caps);
 
 /* check if an object was too late */
 static gboolean gst_base_sink_is_too_late (GstBaseSink * basesink,
     GstMiniObject * obj, GstClockTime rstart, GstClockTime rstop,
     GstClockReturn status, GstClockTimeDiff jitter);
-static GstFlowReturn gst_base_sink_preroll_object (GstBaseSink * basesink,
-    guint8 obj_type, GstMiniObject * obj);
 
 static void
 gst_base_sink_class_init (GstBaseSinkClass * klass)
@@ -473,22 +460,22 @@
           DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstBaseSink:enable-last-buffer
+   * GstBaseSink:enable-last-sample
    *
-   * Enable the last-buffer property. If FALSE, basesink doesn't keep a
-   * reference to the last buffer arrived and the last-buffer property is always
+   * Enable the last-sample property. If FALSE, basesink doesn't keep a
+   * reference to the last buffer arrived and the last-sample property is always
    * set to NULL. This can be useful if you need buffers to be released as soon
    * as possible, eg. if you're using a buffer pool.
    *
    * Since: 0.10.30
    */
-  g_object_class_install_property (gobject_class, PROP_ENABLE_LAST_BUFFER,
-      g_param_spec_boolean ("enable-last-buffer", "Enable Last Buffer",
-          "Enable the last-buffer property", DEFAULT_ENABLE_LAST_BUFFER,
+  g_object_class_install_property (gobject_class, PROP_ENABLE_LAST_SAMPLE,
+      g_param_spec_boolean ("enable-last-sample", "Enable Last Buffer",
+          "Enable the last-sample property", DEFAULT_ENABLE_LAST_SAMPLE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstBaseSink:last-buffer
+   * GstBaseSink:last-sample
    *
    * The last buffer that arrived in the sink and was used for preroll or for
    * rendering. This property can be used to generate thumbnails. This property
@@ -496,9 +483,9 @@
    *
    * Since: 0.10.15
    */
-  g_object_class_install_property (gobject_class, PROP_LAST_BUFFER,
-      g_param_spec_boxed ("last-buffer", "Last Buffer",
-          "The last buffer received in the sink", GST_TYPE_BUFFER,
+  g_object_class_install_property (gobject_class, PROP_LAST_SAMPLE,
+      g_param_spec_boxed ("last-sample", "Last Sample",
+          "The last sample received in the sink", GST_TYPE_SAMPLE,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   /**
    * GstBaseSink:blocksize
@@ -543,39 +530,40 @@
       GST_DEBUG_FUNCPTR (gst_base_sink_change_state);
   gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_base_sink_send_event);
   gstelement_class->query = GST_DEBUG_FUNCPTR (default_element_query);
-  gstelement_class->get_query_types =
-      GST_DEBUG_FUNCPTR (gst_base_sink_get_query_types);
 
-  klass->get_caps = GST_DEBUG_FUNCPTR (gst_base_sink_get_caps);
-  klass->set_caps = GST_DEBUG_FUNCPTR (gst_base_sink_set_caps);
-  klass->get_times = GST_DEBUG_FUNCPTR (gst_base_sink_get_times);
+  klass->get_caps = GST_DEBUG_FUNCPTR (gst_base_sink_default_get_caps);
+  klass->set_caps = GST_DEBUG_FUNCPTR (gst_base_sink_default_set_caps);
+  klass->fixate = GST_DEBUG_FUNCPTR (gst_base_sink_default_fixate);
   klass->activate_pull =
       GST_DEBUG_FUNCPTR (gst_base_sink_default_activate_pull);
-  klass->query = GST_DEBUG_FUNCPTR (default_sink_query);
+  klass->get_times = GST_DEBUG_FUNCPTR (gst_base_sink_default_get_times);
+  klass->query = GST_DEBUG_FUNCPTR (gst_base_sink_default_query);
+  klass->event = GST_DEBUG_FUNCPTR (gst_base_sink_default_event);
+  klass->wait_eos = GST_DEBUG_FUNCPTR (gst_base_sink_default_wait_eos);
 
   /* Registering debug symbols for function pointers */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_getcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_fixate);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_fixate);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_activate);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_activate_push);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_activate_pull);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_pad_activate_mode);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_event);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_chain);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_chain_list);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_sink_sink_query);
 }
 
 static GstCaps *
-gst_base_sink_pad_getcaps (GstPad * pad, GstCaps * filter)
+gst_base_sink_query_caps (GstBaseSink * bsink, GstPad * pad, GstCaps * filter)
 {
   GstBaseSinkClass *bclass;
-  GstBaseSink *bsink;
   GstCaps *caps = NULL;
+  gboolean fixed;
 
-  bsink = GST_BASE_SINK (gst_pad_get_parent (pad));
   bclass = GST_BASE_SINK_GET_CLASS (bsink);
+  fixed = GST_PAD_IS_FIXED_CAPS (pad);
 
-  if (bsink->pad_mode == GST_ACTIVATE_PULL) {
-    /* if we are operating in pull mode we only accept the negotiated caps */
+  if (fixed || bsink->pad_mode == GST_PAD_MODE_PULL) {
+    /* if we are operating in pull mode or fixed caps, we only accept the
+     * currently negotiated caps */
     caps = gst_pad_get_current_caps (pad);
   }
   if (caps == NULL) {
@@ -602,24 +590,28 @@
       }
     }
   }
-  gst_object_unref (bsink);
 
   return caps;
 }
 
-static void
-gst_base_sink_pad_fixate (GstPad * pad, GstCaps * caps)
+static GstCaps *
+gst_base_sink_default_fixate (GstBaseSink * bsink, GstCaps * caps)
+{
+  GST_DEBUG_OBJECT (bsink, "using default caps fixate function");
+  return gst_caps_fixate (caps);
+}
+
+static GstCaps *
+gst_base_sink_fixate (GstBaseSink * bsink, GstCaps * caps)
 {
   GstBaseSinkClass *bclass;
-  GstBaseSink *bsink;
 
-  bsink = GST_BASE_SINK (gst_pad_get_parent (pad));
   bclass = GST_BASE_SINK_GET_CLASS (bsink);
 
   if (bclass->fixate)
-    bclass->fixate (bsink, caps);
+    caps = bclass->fixate (bsink, caps);
 
-  gst_object_unref (bsink);
+  return caps;
 }
 
 static void
@@ -636,23 +628,18 @@
 
   basesink->sinkpad = gst_pad_new_from_template (pad_template, "sink");
 
-  gst_pad_set_getcaps_function (basesink->sinkpad, gst_base_sink_pad_getcaps);
-  gst_pad_set_fixatecaps_function (basesink->sinkpad, gst_base_sink_pad_fixate);
   gst_pad_set_activate_function (basesink->sinkpad, gst_base_sink_pad_activate);
-  gst_pad_set_activatepush_function (basesink->sinkpad,
-      gst_base_sink_pad_activate_push);
-  gst_pad_set_activatepull_function (basesink->sinkpad,
-      gst_base_sink_pad_activate_pull);
+  gst_pad_set_activatemode_function (basesink->sinkpad,
+      gst_base_sink_pad_activate_mode);
   gst_pad_set_query_function (basesink->sinkpad, gst_base_sink_sink_query);
   gst_pad_set_event_function (basesink->sinkpad, gst_base_sink_event);
   gst_pad_set_chain_function (basesink->sinkpad, gst_base_sink_chain);
   gst_pad_set_chain_list_function (basesink->sinkpad, gst_base_sink_chain_list);
   gst_element_add_pad (GST_ELEMENT_CAST (basesink), basesink->sinkpad);
 
-  basesink->pad_mode = GST_ACTIVATE_NONE;
-  basesink->preroll_lock = g_mutex_new ();
-  basesink->preroll_cond = g_cond_new ();
-  priv->preroll_queue = g_queue_new ();
+  basesink->pad_mode = GST_PAD_MODE_NONE;
+  g_mutex_init (&basesink->preroll_lock);
+  g_cond_init (&basesink->preroll_cond);
   priv->have_latency = FALSE;
 
   basesink->can_activate_push = DEFAULT_CAN_ACTIVATE_PUSH;
@@ -666,10 +653,10 @@
   priv->render_delay = DEFAULT_RENDER_DELAY;
   priv->blocksize = DEFAULT_BLOCKSIZE;
   priv->cached_clock_id = NULL;
-  g_atomic_int_set (&priv->enable_last_buffer, DEFAULT_ENABLE_LAST_BUFFER);
+  g_atomic_int_set (&priv->enable_last_sample, DEFAULT_ENABLE_LAST_SAMPLE);
   priv->throttle_time = DEFAULT_THROTTLE_TIME;
 
-  GST_OBJECT_FLAG_SET (basesink, GST_ELEMENT_IS_SINK);
+  GST_OBJECT_FLAG_SET (basesink, GST_ELEMENT_FLAG_SINK);
 }
 
 static void
@@ -679,9 +666,8 @@
 
   basesink = GST_BASE_SINK (object);
 
-  g_mutex_free (basesink->preroll_lock);
-  g_cond_free (basesink->preroll_cond);
-  g_queue_free (basesink->priv->preroll_queue);
+  g_mutex_clear (&basesink->preroll_lock);
+  g_cond_clear (&basesink->preroll_cond);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -918,32 +904,34 @@
 }
 
 /**
- * gst_base_sink_get_last_buffer:
+ * gst_base_sink_get_last_sample:
  * @sink: the sink
  *
- * Get the last buffer that arrived in the sink and was used for preroll or for
+ * Get the last sample that arrived in the sink and was used for preroll or for
  * rendering. This property can be used to generate thumbnails.
  *
- * The #GstCaps on the buffer can be used to determine the type of the buffer.
+ * The #GstCaps on the sample can be used to determine the type of the buffer.
  *
- * Free-function: gst_buffer_unref
+ * Free-function: gst_sample_unref
  *
- * Returns: (transfer full): a #GstBuffer. gst_buffer_unref() after usage.
+ * Returns: (transfer full): a #GstSample. gst_sample_unref() after usage.
  *     This function returns NULL when no buffer has arrived in the sink yet
  *     or when the sink is not in PAUSED or PLAYING.
  *
  * Since: 0.10.15
  */
-GstBuffer *
-gst_base_sink_get_last_buffer (GstBaseSink * sink)
+GstSample *
+gst_base_sink_get_last_sample (GstBaseSink * sink)
 {
-  GstBuffer *res;
+  GstSample *res = NULL;
 
   g_return_val_if_fail (GST_IS_BASE_SINK (sink), NULL);
 
   GST_OBJECT_LOCK (sink);
-  if ((res = sink->priv->last_buffer))
-    gst_buffer_ref (res);
+  if (sink->priv->last_buffer) {
+    res = gst_sample_new (sink->priv->last_buffer,
+        sink->priv->last_caps, &sink->segment, NULL);
+  }
   GST_OBJECT_UNLOCK (sink);
 
   return res;
@@ -961,6 +949,11 @@
     if (G_LIKELY (buffer))
       gst_buffer_ref (buffer);
     sink->priv->last_buffer = buffer;
+    if (buffer)
+      /* copy over the caps */
+      gst_caps_replace (&sink->priv->last_caps, sink->priv->caps);
+    else
+      gst_caps_replace (&sink->priv->last_caps, NULL);
   } else {
     old = NULL;
   }
@@ -976,7 +969,7 @@
 static void
 gst_base_sink_set_last_buffer (GstBaseSink * sink, GstBuffer * buffer)
 {
-  if (!g_atomic_int_get (&sink->priv->enable_last_buffer))
+  if (!g_atomic_int_get (&sink->priv->enable_last_sample))
     return;
 
   GST_OBJECT_LOCK (sink);
@@ -985,22 +978,22 @@
 }
 
 /**
- * gst_base_sink_set_last_buffer_enabled:
+ * gst_base_sink_set_last_sample_enabled:
  * @sink: the sink
- * @enabled: the new enable-last-buffer value.
+ * @enabled: the new enable-last-sample value.
  *
- * Configures @sink to store the last received buffer in the last-buffer
+ * Configures @sink to store the last received sample in the last-sample
  * property.
  *
  * Since: 0.10.30
  */
 void
-gst_base_sink_set_last_buffer_enabled (GstBaseSink * sink, gboolean enabled)
+gst_base_sink_set_last_sample_enabled (GstBaseSink * sink, gboolean enabled)
 {
   g_return_if_fail (GST_IS_BASE_SINK (sink));
 
   /* Only take lock if we change the value */
-  if (g_atomic_int_compare_and_exchange (&sink->priv->enable_last_buffer,
+  if (g_atomic_int_compare_and_exchange (&sink->priv->enable_last_sample,
           !enabled, enabled) && !enabled) {
     GST_OBJECT_LOCK (sink);
     gst_base_sink_set_last_buffer_unlocked (sink, NULL);
@@ -1009,22 +1002,22 @@
 }
 
 /**
- * gst_base_sink_is_last_buffer_enabled:
+ * gst_base_sink_is_last_sample_enabled:
  * @sink: the sink
  *
- * Checks if @sink is currently configured to store the last received buffer in
- * the last-buffer property.
+ * Checks if @sink is currently configured to store the last received sample in
+ * the last-sample property.
  *
- * Returns: TRUE if the sink is configured to store the last received buffer.
+ * Returns: TRUE if the sink is configured to store the last received sample.
  *
  * Since: 0.10.30
  */
 gboolean
-gst_base_sink_is_last_buffer_enabled (GstBaseSink * sink)
+gst_base_sink_is_last_sample_enabled (GstBaseSink * sink)
 {
   g_return_val_if_fail (GST_IS_BASE_SINK (sink), FALSE);
 
-  return g_atomic_int_get (&sink->priv->enable_last_buffer);
+  return g_atomic_int_get (&sink->priv->enable_last_sample);
 }
 
 /**
@@ -1338,8 +1331,8 @@
     case PROP_RENDER_DELAY:
       gst_base_sink_set_render_delay (sink, g_value_get_uint64 (value));
       break;
-    case PROP_ENABLE_LAST_BUFFER:
-      gst_base_sink_set_last_buffer_enabled (sink, g_value_get_boolean (value));
+    case PROP_ENABLE_LAST_SAMPLE:
+      gst_base_sink_set_last_sample_enabled (sink, g_value_get_boolean (value));
       break;
     case PROP_THROTTLE_TIME:
       gst_base_sink_set_throttle_time (sink, g_value_get_uint64 (value));
@@ -1372,11 +1365,11 @@
     case PROP_TS_OFFSET:
       g_value_set_int64 (value, gst_base_sink_get_ts_offset (sink));
       break;
-    case PROP_LAST_BUFFER:
-      gst_value_take_buffer (value, gst_base_sink_get_last_buffer (sink));
+    case PROP_LAST_SAMPLE:
+      gst_value_take_buffer (value, gst_base_sink_get_last_sample (sink));
       break;
-    case PROP_ENABLE_LAST_BUFFER:
-      g_value_set_boolean (value, gst_base_sink_is_last_buffer_enabled (sink));
+    case PROP_ENABLE_LAST_SAMPLE:
+      g_value_set_boolean (value, gst_base_sink_is_last_sample_enabled (sink));
       break;
     case PROP_BLOCKSIZE:
       g_value_set_uint (value, gst_base_sink_get_blocksize (sink));
@@ -1395,63 +1388,18 @@
 
 
 static GstCaps *
-gst_base_sink_get_caps (GstBaseSink * sink, GstCaps * filter)
+gst_base_sink_default_get_caps (GstBaseSink * sink, GstCaps * filter)
 {
   return NULL;
 }
 
 static gboolean
-gst_base_sink_set_caps (GstBaseSink * sink, GstCaps * caps)
+gst_base_sink_default_set_caps (GstBaseSink * sink, GstCaps * caps)
 {
   return TRUE;
 }
 
 /* with PREROLL_LOCK, STREAM_LOCK */
-static void
-gst_base_sink_preroll_queue_flush (GstBaseSink * basesink, GstPad * pad)
-{
-  GstMiniObject *obj;
-
-  GST_DEBUG_OBJECT (basesink, "flushing queue %p", basesink);
-  while ((obj = g_queue_pop_head (basesink->priv->preroll_queue))) {
-    GST_DEBUG_OBJECT (basesink, "popped %p", obj);
-    gst_mini_object_unref (obj);
-  }
-  /* we can't have EOS anymore now */
-  basesink->eos = FALSE;
-  basesink->priv->received_eos = FALSE;
-  basesink->have_preroll = FALSE;
-  basesink->priv->step_unlock = FALSE;
-  basesink->eos_queued = FALSE;
-  basesink->priv->preroll_queued = 0;
-  /* can't report latency anymore until we preroll again */
-  if (basesink->priv->async_enabled) {
-    GST_OBJECT_LOCK (basesink);
-    basesink->priv->have_latency = FALSE;
-    GST_OBJECT_UNLOCK (basesink);
-  }
-  /* and signal any waiters now */
-  GST_BASE_SINK_PREROLL_SIGNAL (basesink);
-}
-
-/* with STREAM_LOCK, configures given segment with the event information. */
-static void
-gst_base_sink_configure_segment (GstBaseSink * basesink, GstPad * pad,
-    GstEvent * event, GstSegment * segment)
-{
-  /* The segment is protected with both the STREAM_LOCK and the OBJECT_LOCK.
-   * We protect with the OBJECT_LOCK so that we can use the values to
-   * safely answer a POSITION query. */
-  GST_OBJECT_LOCK (basesink);
-  /* the newsegment event is needed to bring the buffer timestamps to the
-   * stream time and to drop samples outside of the playback segment. */
-  gst_event_copy_segment (event, segment);
-  GST_DEBUG_OBJECT (basesink, "configured SEGMENT %" GST_SEGMENT_FORMAT,
-      segment);
-  GST_OBJECT_UNLOCK (basesink);
-}
-
-/* with PREROLL_LOCK, STREAM_LOCK */
 static gboolean
 gst_base_sink_commit_state (GstBaseSink * basesink)
 {
@@ -1685,9 +1633,6 @@
   else
     segment->start = current->start_start;
 
-  /* the clip segment is used for position report in paused... */
-  gst_segment_copy_into (segment, &sink->clip_segment);
-
   /* post the step done when we know the stepped duration in TIME */
   message =
       gst_message_new_step_done (GST_OBJECT_CAST (sink), current->format,
@@ -1801,8 +1746,7 @@
 gst_base_sink_get_sync_times (GstBaseSink * basesink, GstMiniObject * obj,
     GstClockTime * rsstart, GstClockTime * rsstop,
     GstClockTime * rrstart, GstClockTime * rrstop, gboolean * do_sync,
-    gboolean * stepped, GstSegment * segment, GstStepInfo * step,
-    gboolean * step_end, guint8 obj_type)
+    gboolean * stepped, GstStepInfo * step, gboolean * step_end)
 {
   GstBaseSinkClass *bclass;
   GstBuffer *buffer;
@@ -1812,33 +1756,35 @@
   GstClockTime sstart, sstop;   /* clipped timestamps converted to stream time */
   GstFormat format;
   GstBaseSinkPrivate *priv;
+  GstSegment *segment;
   gboolean eos;
 
   priv = basesink->priv;
+  segment = &basesink->segment;
 
   /* start with nothing */
   start = stop = GST_CLOCK_TIME_NONE;
 
-  if (G_UNLIKELY (OBJ_IS_EVENT (obj_type))) {
+  if (G_UNLIKELY (GST_IS_EVENT (obj))) {
     GstEvent *event = GST_EVENT_CAST (obj);
 
     switch (GST_EVENT_TYPE (event)) {
         /* EOS event needs syncing */
       case GST_EVENT_EOS:
       {
-        if (basesink->segment.rate >= 0.0) {
+        if (segment->rate >= 0.0) {
           sstart = sstop = priv->current_sstop;
           if (!GST_CLOCK_TIME_IS_VALID (sstart)) {
             /* we have not seen a buffer yet, use the segment values */
-            sstart = sstop = gst_segment_to_stream_time (&basesink->segment,
-                basesink->segment.format, basesink->segment.stop);
+            sstart = sstop = gst_segment_to_stream_time (segment,
+                segment->format, segment->stop);
           }
         } else {
           sstart = sstop = priv->current_sstart;
           if (!GST_CLOCK_TIME_IS_VALID (sstart)) {
             /* we have not seen a buffer yet, use the segment values */
-            sstart = sstop = gst_segment_to_stream_time (&basesink->segment,
-                basesink->segment.format, basesink->segment.start);
+            sstart = sstop = gst_segment_to_stream_time (segment,
+                segment->format, segment->start);
           }
         }
 
@@ -1873,7 +1819,7 @@
   if (!GST_CLOCK_TIME_IS_VALID (start)) {
     /* we don't need to sync but we still want to get the timestamps for
      * tracking the position */
-    gst_base_sink_get_times (basesink, buffer, &start, &stop);
+    gst_base_sink_default_get_times (basesink, buffer, &start, &stop);
     *do_sync = FALSE;
   } else {
     *do_sync = TRUE;
@@ -2117,7 +2063,7 @@
  * This function will block until a state change to PLAYING happens (in which
  * case this function returns #GST_FLOW_OK) or the processing must be stopped due
  * to a state change to READY or a FLUSH event (in which case this function
- * returns #GST_FLOW_WRONG_STATE).
+ * returns #GST_FLOW_FLUSHING).
  *
  * This function should only be called with the PREROLL_LOCK held, like in the
  * render function.
@@ -2147,7 +2093,7 @@
 stopping:
   {
     GST_DEBUG_OBJECT (sink, "preroll interrupted because of flush");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 step_unlocked:
   {
@@ -2157,23 +2103,6 @@
   }
 }
 
-static inline guint8
-get_object_type (GstMiniObject * obj)
-{
-  guint8 obj_type;
-
-  if (G_LIKELY (GST_IS_BUFFER (obj)))
-    obj_type = _PR_IS_BUFFER;
-  else if (GST_IS_EVENT (obj))
-    obj_type = _PR_IS_EVENT;
-  else if (GST_IS_BUFFER_LIST (obj))
-    obj_type = _PR_IS_BUFFERLIST;
-  else
-    obj_type = _PR_IS_NOTHING;
-
-  return obj_type;
-}
-
 /**
  * gst_base_sink_do_preroll:
  * @sink: the sink
@@ -2197,14 +2126,41 @@
   GstFlowReturn ret;
 
   while (G_UNLIKELY (sink->need_preroll)) {
-    guint8 obj_type;
     GST_DEBUG_OBJECT (sink, "prerolling object %p", obj);
 
-    obj_type = get_object_type (obj);
+    /* if it's a buffer, we need to call the preroll method */
+    if (sink->priv->call_preroll) {
+      GstBaseSinkClass *bclass;
+      GstBuffer *buf;
 
-    ret = gst_base_sink_preroll_object (sink, obj_type, obj);
-    if (ret != GST_FLOW_OK)
-      goto preroll_failed;
+      if (GST_IS_BUFFER_LIST (obj)) {
+        buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
+        g_assert (NULL != buf);
+      } else if (GST_IS_BUFFER (obj)) {
+        buf = GST_BUFFER_CAST (obj);
+        /* For buffer lists do not set last buffer for now */
+        gst_base_sink_set_last_buffer (sink, buf);
+      } else
+        buf = NULL;
+
+      if (buf) {
+        GST_DEBUG_OBJECT (sink, "preroll buffer %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+        bclass = GST_BASE_SINK_GET_CLASS (sink);
+        if (bclass->preroll)
+          if ((ret = bclass->preroll (sink, buf)) != GST_FLOW_OK)
+            goto preroll_canceled;
+
+        sink->priv->call_preroll = FALSE;
+      }
+    }
+
+    /* commit state */
+    if (G_LIKELY (sink->playing_async)) {
+      if (G_UNLIKELY (!gst_base_sink_commit_state (sink)))
+        goto stopping;
+    }
 
     /* need to recheck here because the commit state could have
      * made us not need the preroll anymore */
@@ -2218,6 +2174,17 @@
   return GST_FLOW_OK;
 
   /* ERRORS */
+preroll_canceled:
+  {
+    GST_DEBUG_OBJECT (sink, "preroll failed, abort state");
+    gst_element_abort_state (GST_ELEMENT_CAST (sink));
+    return ret;
+  }
+stopping:
+  {
+    GST_DEBUG_OBJECT (sink, "stopping while commiting state");
+    return GST_FLOW_FLUSHING;
+  }
 preroll_failed:
   {
     GST_DEBUG_OBJECT (sink, "preroll failed: %s", gst_flow_get_name (ret));
@@ -2268,8 +2235,7 @@
     GST_DEBUG_OBJECT (sink, "possibly waiting for clock to reach %"
         GST_TIME_FORMAT, GST_TIME_ARGS (time));
 
-    /* compensate for latency and ts_offset. We don't adjust for render delay
-     * because we don't interact with the device on EOS normally. */
+    /* compensate for latency, ts_offset and render delay */
     stime = gst_base_sink_adjust_time (sink, time);
 
     /* wait for the clock, this can be interrupted because we got shut down or
@@ -2298,7 +2264,7 @@
 flushing:
   {
     GST_DEBUG_OBJECT (sink, "we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 }
 
@@ -2325,8 +2291,8 @@
  * does not take ownership of obj.
  */
 static GstFlowReturn
-gst_base_sink_do_sync (GstBaseSink * basesink, GstPad * pad,
-    GstMiniObject * obj, gboolean * late, gboolean * step_end, guint8 obj_type)
+gst_base_sink_do_sync (GstBaseSink * basesink,
+    GstMiniObject * obj, gboolean * late, gboolean * step_end)
 {
   GstClockTimeDiff jitter = 0;
   gboolean syncable;
@@ -2353,8 +2319,7 @@
 
   /* get timing information for this object against the render segment */
   syncable = gst_base_sink_get_sync_times (basesink, obj,
-      &sstart, &sstop, &rstart, &rstop, &do_sync, &stepped, &basesink->segment,
-      current, step_end, obj_type);
+      &sstart, &sstop, &rstart, &rstop, &do_sync, &stepped, current, step_end);
 
   if (G_UNLIKELY (stepped))
     goto step_skipped;
@@ -2420,14 +2385,6 @@
   /* adjust for latency */
   stime = gst_base_sink_adjust_time (basesink, rstart);
 
-  /* adjust for render-delay, avoid underflows */
-  if (GST_CLOCK_TIME_IS_VALID (stime)) {
-    if (stime > priv->render_delay)
-      stime -= priv->render_delay;
-    else
-      stime = 0;
-  }
-
   /* preroll done, we can sync since we are in PLAYING now. */
   GST_DEBUG_OBJECT (basesink, "possibly waiting for clock to reach %"
       GST_TIME_FORMAT ", adjusted %" GST_TIME_FORMAT,
@@ -2487,7 +2444,7 @@
 flushing:
   {
     GST_DEBUG_OBJECT (basesink, "we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 preroll_failed:
   {
@@ -2806,446 +2763,6 @@
   }
 }
 
-/* with STREAM_LOCK, PREROLL_LOCK,
- *
- * Synchronize the object on the clock and then render it.
- *
- * takes ownership of obj.
- */
-static GstFlowReturn
-gst_base_sink_render_object (GstBaseSink * basesink, GstPad * pad,
-    guint8 obj_type, gpointer obj)
-{
-  GstFlowReturn ret;
-  GstBaseSinkClass *bclass;
-  gboolean late, step_end;
-  gpointer sync_obj;
-  GstBaseSinkPrivate *priv;
-
-  priv = basesink->priv;
-
-  if (OBJ_IS_BUFFERLIST (obj_type)) {
-    /*
-     * If buffer list, use the first group buffer within the list
-     * for syncing
-     */
-    sync_obj = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
-    g_assert (NULL != sync_obj);
-  } else {
-    sync_obj = obj;
-  }
-
-again:
-  late = FALSE;
-  step_end = FALSE;
-
-  /* synchronize this object, non syncable objects return OK
-   * immediately. */
-  ret =
-      gst_base_sink_do_sync (basesink, pad, sync_obj, &late, &step_end,
-      obj_type);
-  if (G_UNLIKELY (ret != GST_FLOW_OK))
-    goto sync_failed;
-
-  /* and now render, event or buffer/buffer list. */
-  if (G_LIKELY (OBJ_IS_BUFFERFULL (obj_type))) {
-    /* drop late buffers unconditionally, let's hope it's unlikely */
-    if (G_UNLIKELY (late))
-      goto dropped;
-
-    bclass = GST_BASE_SINK_GET_CLASS (basesink);
-
-    if (G_LIKELY ((OBJ_IS_BUFFERLIST (obj_type) && bclass->render_list) ||
-            (!OBJ_IS_BUFFERLIST (obj_type) && bclass->render))) {
-      gint do_qos;
-
-      /* read once, to get same value before and after */
-      do_qos = g_atomic_int_get (&priv->qos_enabled);
-
-      GST_DEBUG_OBJECT (basesink, "rendering object %p", obj);
-
-      /* record rendering time for QoS and stats */
-      if (do_qos)
-        gst_base_sink_do_render_stats (basesink, TRUE);
-
-      if (!OBJ_IS_BUFFERLIST (obj_type)) {
-        GstBuffer *buf;
-
-        /* For buffer lists do not set last buffer. Creating buffer
-         * with meaningful data can be done only with memcpy which will
-         * significantly affect performance */
-        buf = GST_BUFFER_CAST (obj);
-        gst_base_sink_set_last_buffer (basesink, buf);
-
-        ret = bclass->render (basesink, buf);
-      } else {
-        GstBufferList *buflist;
-
-        buflist = GST_BUFFER_LIST_CAST (obj);
-
-        ret = bclass->render_list (basesink, buflist);
-      }
-
-      if (do_qos)
-        gst_base_sink_do_render_stats (basesink, FALSE);
-
-      if (ret == GST_FLOW_STEP)
-        goto again;
-
-      if (G_UNLIKELY (basesink->flushing))
-        goto flushing;
-
-      priv->rendered++;
-    }
-  } else if (G_LIKELY (OBJ_IS_EVENT (obj_type))) {
-    GstEvent *event = GST_EVENT_CAST (obj);
-    gboolean event_res = TRUE;
-    GstEventType type;
-
-    bclass = GST_BASE_SINK_GET_CLASS (basesink);
-
-    type = GST_EVENT_TYPE (event);
-
-    GST_DEBUG_OBJECT (basesink, "rendering event %p, type %s", obj,
-        gst_event_type_get_name (type));
-
-    if (bclass->event)
-      event_res = bclass->event (basesink, event);
-
-    /* when we get here we could be flushing again when the event handler calls
-     * _wait_eos(). We have to ignore this object in that case. */
-    if (G_UNLIKELY (basesink->flushing))
-      goto flushing;
-
-    if (G_LIKELY (event_res)) {
-      guint32 seqnum;
-
-      seqnum = basesink->priv->seqnum = gst_event_get_seqnum (event);
-      GST_DEBUG_OBJECT (basesink, "Got seqnum #%" G_GUINT32_FORMAT, seqnum);
-
-      switch (type) {
-        case GST_EVENT_EOS:
-        {
-          GstMessage *message;
-
-          /* the EOS event is completely handled so we mark
-           * ourselves as being in the EOS state. eos is also
-           * protected by the object lock so we can read it when
-           * answering the POSITION query. */
-          GST_OBJECT_LOCK (basesink);
-          basesink->eos = TRUE;
-          GST_OBJECT_UNLOCK (basesink);
-
-          /* ok, now we can post the message */
-          GST_DEBUG_OBJECT (basesink, "Now posting EOS");
-
-          message = gst_message_new_eos (GST_OBJECT_CAST (basesink));
-          gst_message_set_seqnum (message, seqnum);
-          gst_element_post_message (GST_ELEMENT_CAST (basesink), message);
-          break;
-        }
-        case GST_EVENT_SEGMENT:
-          /* configure the segment */
-          gst_base_sink_configure_segment (basesink, pad, event,
-              &basesink->segment);
-          break;
-        case GST_EVENT_TAG:
-        {
-          GstTagList *taglist;
-
-          gst_event_parse_tag (event, &taglist);
-
-          gst_element_post_message (GST_ELEMENT_CAST (basesink),
-              gst_message_new_tag (GST_OBJECT_CAST (basesink),
-                  gst_tag_list_copy (taglist)));
-          break;
-        }
-        case GST_EVENT_SINK_MESSAGE:
-        {
-          GstMessage *msg = NULL;
-
-          gst_event_parse_sink_message (event, &msg);
-
-          if (msg)
-            gst_element_post_message (GST_ELEMENT_CAST (basesink), msg);
-        }
-        default:
-          break;
-      }
-    }
-  } else {
-    g_return_val_if_reached (GST_FLOW_ERROR);
-  }
-
-done:
-  if (step_end) {
-    /* the step ended, check if we need to activate a new step */
-    GST_DEBUG_OBJECT (basesink, "step ended");
-    stop_stepping (basesink, &basesink->segment, &priv->current_step,
-        priv->current_rstart, priv->current_rstop, basesink->eos);
-    goto again;
-  }
-
-  gst_base_sink_perform_qos (basesink, late);
-
-  GST_DEBUG_OBJECT (basesink, "object unref after render %p", obj);
-  gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
-  return ret;
-
-  /* ERRORS */
-sync_failed:
-  {
-    GST_DEBUG_OBJECT (basesink, "do_sync returned %s", gst_flow_get_name (ret));
-    goto done;
-  }
-dropped:
-  {
-    priv->dropped++;
-    GST_DEBUG_OBJECT (basesink, "buffer late, dropping");
-
-    if (g_atomic_int_get (&priv->qos_enabled)) {
-      GstMessage *qos_msg;
-      GstClockTime timestamp, duration;
-
-      timestamp = GST_BUFFER_TIMESTAMP (GST_BUFFER_CAST (sync_obj));
-      duration = GST_BUFFER_DURATION (GST_BUFFER_CAST (sync_obj));
-
-      GST_CAT_DEBUG_OBJECT (GST_CAT_QOS, basesink,
-          "qos: dropped buffer rt %" GST_TIME_FORMAT ", st %" GST_TIME_FORMAT
-          ", ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (priv->current_rstart),
-          GST_TIME_ARGS (priv->current_sstart), GST_TIME_ARGS (timestamp),
-          GST_TIME_ARGS (duration));
-      GST_CAT_DEBUG_OBJECT (GST_CAT_QOS, basesink,
-          "qos: rendered %" G_GUINT64_FORMAT ", dropped %" G_GUINT64_FORMAT,
-          priv->rendered, priv->dropped);
-
-      qos_msg =
-          gst_message_new_qos (GST_OBJECT_CAST (basesink), basesink->sync,
-          priv->current_rstart, priv->current_sstart, timestamp, duration);
-      gst_message_set_qos_values (qos_msg, priv->current_jitter, priv->avg_rate,
-          1000000);
-      gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS, priv->rendered,
-          priv->dropped);
-      gst_element_post_message (GST_ELEMENT_CAST (basesink), qos_msg);
-    }
-    goto done;
-  }
-flushing:
-  {
-    GST_DEBUG_OBJECT (basesink, "we are flushing, ignore object");
-    gst_mini_object_unref (obj);
-    return GST_FLOW_WRONG_STATE;
-  }
-}
-
-/* with STREAM_LOCK, PREROLL_LOCK
- *
- * Perform preroll on the given object. For buffers this means
- * calling the preroll subclass method.
- * If that succeeds, the state will be commited.
- *
- * function does not take ownership of obj.
- */
-static GstFlowReturn
-gst_base_sink_preroll_object (GstBaseSink * basesink, guint8 obj_type,
-    GstMiniObject * obj)
-{
-  GstFlowReturn ret;
-
-  GST_DEBUG_OBJECT (basesink, "prerolling object %p", obj);
-
-  /* if it's a buffer, we need to call the preroll method */
-  if (G_LIKELY (OBJ_IS_BUFFERFULL (obj_type) && basesink->priv->call_preroll)) {
-    GstBaseSinkClass *bclass;
-    GstBuffer *buf;
-    GstClockTime timestamp;
-
-    if (OBJ_IS_BUFFERLIST (obj_type)) {
-      buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
-      g_assert (NULL != buf);
-    } else {
-      buf = GST_BUFFER_CAST (obj);
-    }
-
-    timestamp = GST_BUFFER_TIMESTAMP (buf);
-
-    GST_DEBUG_OBJECT (basesink, "preroll buffer %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (timestamp));
-
-    /*
-     * For buffer lists do not set last buffer. Creating buffer
-     * with meaningful data can be done only with memcpy which will
-     * significantly affect performance
-     */
-    if (!OBJ_IS_BUFFERLIST (obj_type)) {
-      gst_base_sink_set_last_buffer (basesink, buf);
-    }
-
-    bclass = GST_BASE_SINK_GET_CLASS (basesink);
-    if (bclass->preroll)
-      if ((ret = bclass->preroll (basesink, buf)) != GST_FLOW_OK)
-        goto preroll_failed;
-
-    basesink->priv->call_preroll = FALSE;
-  }
-
-  /* commit state */
-  if (G_LIKELY (basesink->playing_async)) {
-    if (G_UNLIKELY (!gst_base_sink_commit_state (basesink)))
-      goto stopping;
-  }
-
-  return GST_FLOW_OK;
-
-  /* ERRORS */
-preroll_failed:
-  {
-    GST_DEBUG_OBJECT (basesink, "preroll failed, abort state");
-    gst_element_abort_state (GST_ELEMENT_CAST (basesink));
-    return ret;
-  }
-stopping:
-  {
-    GST_DEBUG_OBJECT (basesink, "stopping while commiting state");
-    return GST_FLOW_WRONG_STATE;
-  }
-}
-
-/* with STREAM_LOCK, PREROLL_LOCK
- *
- * Queue an object for rendering.
- * The first prerollable object queued will complete the preroll. If the
- * preroll queue is filled, we render all the objects in the queue.
- *
- * This function takes ownership of the object.
- */
-static GstFlowReturn
-gst_base_sink_queue_object_unlocked (GstBaseSink * basesink, GstPad * pad,
-    guint8 obj_type, gpointer obj, gboolean prerollable)
-{
-  GstFlowReturn ret = GST_FLOW_OK;
-  gint length;
-  GQueue *q;
-
-  if (G_UNLIKELY (basesink->need_preroll)) {
-    if (G_LIKELY (prerollable))
-      basesink->priv->preroll_queued++;
-
-    length = basesink->priv->preroll_queued;
-
-    GST_DEBUG_OBJECT (basesink, "now %d prerolled items", length);
-
-    /* first prerollable item needs to finish the preroll */
-    if (length == 1) {
-      ret = gst_base_sink_preroll_object (basesink, obj_type, obj);
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        goto preroll_failed;
-    }
-    /* need to recheck if we need preroll, commit state during preroll
-     * could have made us not need more preroll. */
-    if (G_UNLIKELY (basesink->need_preroll)) {
-      /* see if we can render now, if we can't add the object to the preroll
-       * queue. */
-      if (G_UNLIKELY (length <= 0))
-        goto more_preroll;
-    }
-  }
-  /* we can start rendering (or blocking) the queued object
-   * if any. */
-  q = basesink->priv->preroll_queue;
-  while (G_UNLIKELY (!g_queue_is_empty (q))) {
-    GstMiniObject *o;
-    guint8 ot;
-
-    o = g_queue_pop_head (q);
-    GST_DEBUG_OBJECT (basesink, "rendering queued object %p", o);
-
-    ot = get_object_type (o);
-
-    /* do something with the return value */
-    ret = gst_base_sink_render_object (basesink, pad, ot, o);
-    if (ret != GST_FLOW_OK)
-      goto dequeue_failed;
-  }
-
-  /* now render the object */
-  ret = gst_base_sink_render_object (basesink, pad, obj_type, obj);
-  basesink->priv->preroll_queued = 0;
-
-  return ret;
-
-  /* special cases */
-preroll_failed:
-  {
-    GST_DEBUG_OBJECT (basesink, "preroll failed, reason %s",
-        gst_flow_get_name (ret));
-    gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
-    return ret;
-  }
-more_preroll:
-  {
-    /* add object to the queue and return */
-    GST_DEBUG_OBJECT (basesink, "need more preroll data");
-    g_queue_push_tail (basesink->priv->preroll_queue, obj);
-    return GST_FLOW_OK;
-  }
-dequeue_failed:
-  {
-    GST_DEBUG_OBJECT (basesink, "rendering queued objects failed, reason %s",
-        gst_flow_get_name (ret));
-    gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
-    return ret;
-  }
-}
-
-/* with STREAM_LOCK
- *
- * This function grabs the PREROLL_LOCK and adds the object to
- * the queue.
- *
- * This function takes ownership of obj.
- *
- * Note: Only GstEvent seem to be passed to this private method
- */
-static GstFlowReturn
-gst_base_sink_queue_object (GstBaseSink * basesink, GstPad * pad,
-    GstMiniObject * obj, gboolean prerollable)
-{
-  GstFlowReturn ret;
-
-  GST_BASE_SINK_PREROLL_LOCK (basesink);
-  if (G_UNLIKELY (basesink->flushing))
-    goto flushing;
-
-  if (G_UNLIKELY (basesink->priv->received_eos))
-    goto was_eos;
-
-  ret =
-      gst_base_sink_queue_object_unlocked (basesink, pad, _PR_IS_EVENT, obj,
-      prerollable);
-  GST_BASE_SINK_PREROLL_UNLOCK (basesink);
-
-  return ret;
-
-  /* ERRORS */
-flushing:
-  {
-    GST_DEBUG_OBJECT (basesink, "sink is flushing");
-    GST_BASE_SINK_PREROLL_UNLOCK (basesink);
-    gst_mini_object_unref (obj);
-    return GST_FLOW_WRONG_STATE;
-  }
-was_eos:
-  {
-    GST_DEBUG_OBJECT (basesink,
-        "we are EOS, dropping object, return UNEXPECTED");
-    GST_BASE_SINK_PREROLL_UNLOCK (basesink);
-    gst_mini_object_unref (obj);
-    return GST_FLOW_UNEXPECTED;
-  }
-}
-
 static void
 gst_base_sink_flush_start (GstBaseSink * basesink, GstPad * pad)
 {
@@ -3289,60 +2806,91 @@
   basesink->priv->call_preroll = TRUE;
   basesink->priv->current_step.valid = FALSE;
   basesink->priv->pending_step.valid = FALSE;
-  if (basesink->pad_mode == GST_ACTIVATE_PUSH) {
+  if (basesink->pad_mode == GST_PAD_MODE_PUSH) {
     /* we need new segment info after the flush. */
     basesink->have_newsegment = FALSE;
     if (reset_time) {
       gst_segment_init (&basesink->segment, GST_FORMAT_UNDEFINED);
-      gst_segment_init (&basesink->clip_segment, GST_FORMAT_UNDEFINED);
     }
   }
   basesink->priv->reset_time = reset_time;
   GST_OBJECT_UNLOCK (basesink);
 }
 
-static gboolean
-gst_base_sink_event (GstPad * pad, GstEvent * event)
+static GstFlowReturn
+gst_base_sink_default_wait_eos (GstBaseSink * basesink, GstEvent * event)
 {
-  GstBaseSink *basesink;
+  GstFlowReturn ret;
+  gboolean late, step_end;
+
+  ret = gst_base_sink_do_sync (basesink, GST_MINI_OBJECT_CAST (event),
+      &late, &step_end);
+
+  return ret;
+}
+
+static gboolean
+gst_base_sink_default_event (GstBaseSink * basesink, GstEvent * event)
+{
   gboolean result = TRUE;
   GstBaseSinkClass *bclass;
 
-  basesink = GST_BASE_SINK (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (basesink == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
-
   bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
-  GST_DEBUG_OBJECT (basesink, "received event %p %" GST_PTR_FORMAT, event,
-      event);
-
   switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_START:
+    {
+      GST_DEBUG_OBJECT (basesink, "flush-start %p", event);
+      gst_base_sink_flush_start (basesink, basesink->sinkpad);
+      break;
+    }
+    case GST_EVENT_FLUSH_STOP:
+    {
+      gboolean reset_time;
+
+      gst_event_parse_flush_stop (event, &reset_time);
+      GST_DEBUG_OBJECT (basesink, "flush-stop %p, reset_time: %d", event,
+          reset_time);
+      gst_base_sink_flush_stop (basesink, basesink->sinkpad, reset_time);
+      break;
+    }
     case GST_EVENT_EOS:
     {
-      GstFlowReturn ret;
-
-      GST_BASE_SINK_PREROLL_LOCK (basesink);
-      if (G_UNLIKELY (basesink->flushing))
-        goto flushing;
-
-      if (G_UNLIKELY (basesink->priv->received_eos))
-        goto after_eos;
+      GstMessage *message;
+      guint32 seqnum;
 
       /* we set the received EOS flag here so that we can use it when testing if
        * we are prerolled and to refuse more buffers. */
       basesink->priv->received_eos = TRUE;
 
-      /* EOS is a prerollable object, we call the unlocked version because it
-       * does not check the received_eos flag. */
-      ret = gst_base_sink_queue_object_unlocked (basesink, pad,
-          _PR_IS_EVENT, GST_MINI_OBJECT_CAST (event), TRUE);
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        result = FALSE;
+      /* wait for EOS */
+      if (G_LIKELY (bclass->wait_eos)) {
+        GstFlowReturn ret;
 
-      GST_BASE_SINK_PREROLL_UNLOCK (basesink);
+        ret = bclass->wait_eos (basesink, event);
+        if (G_UNLIKELY (ret != GST_FLOW_OK)) {
+          result = FALSE;
+          goto done;
+        }
+      }
+
+      /* the EOS event is completely handled so we mark
+       * ourselves as being in the EOS state. eos is also
+       * protected by the object lock so we can read it when
+       * answering the POSITION query. */
+      GST_OBJECT_LOCK (basesink);
+      basesink->eos = TRUE;
+      GST_OBJECT_UNLOCK (basesink);
+
+      /* ok, now we can post the message */
+      GST_DEBUG_OBJECT (basesink, "Now posting EOS");
+
+      seqnum = basesink->priv->seqnum = gst_event_get_seqnum (event);
+      GST_DEBUG_OBJECT (basesink, "Got seqnum #%" G_GUINT32_FORMAT, seqnum);
+
+      message = gst_message_new_eos (GST_OBJECT_CAST (basesink));
+      gst_message_set_seqnum (message, seqnum);
+      gst_element_post_message (GST_ELEMENT_CAST (basesink), message);
       break;
     }
     case GST_EVENT_CAPS:
@@ -3355,83 +2903,96 @@
       if (bclass->set_caps)
         result = bclass->set_caps (basesink, caps);
 
-      gst_event_unref (event);
+      if (result) {
+        GST_OBJECT_LOCK (basesink);
+        gst_caps_replace (&basesink->priv->caps, caps);
+        GST_OBJECT_UNLOCK (basesink);
+      }
       break;
     }
     case GST_EVENT_SEGMENT:
+      /* configure the segment */
+      /* The segment is protected with both the STREAM_LOCK and the OBJECT_LOCK.
+       * We protect with the OBJECT_LOCK so that we can use the values to
+       * safely answer a POSITION query. */
+      GST_OBJECT_LOCK (basesink);
+      /* the newsegment event is needed to bring the buffer timestamps to the
+       * stream time and to drop samples outside of the playback segment. */
+      gst_event_copy_segment (event, &basesink->segment);
+      GST_DEBUG_OBJECT (basesink, "configured SEGMENT %" GST_SEGMENT_FORMAT,
+          &basesink->segment);
+      basesink->have_newsegment = TRUE;
+      GST_OBJECT_UNLOCK (basesink);
+      break;
+    case GST_EVENT_TAG:
     {
-      GstFlowReturn ret;
+      GstTagList *taglist;
 
-      GST_DEBUG_OBJECT (basesink, "segment %p", event);
+      gst_event_parse_tag (event, &taglist);
 
-      GST_BASE_SINK_PREROLL_LOCK (basesink);
-      if (G_UNLIKELY (basesink->flushing))
-        goto flushing;
-
-      if (G_UNLIKELY (basesink->priv->received_eos))
-        goto after_eos;
-
-      /* the new segment is a non prerollable item and does not block anything,
-       * we need to configure the current clipping segment and insert the event
-       * in the queue to serialize it with the buffers for rendering. */
-      gst_base_sink_configure_segment (basesink, pad, event,
-          &basesink->clip_segment);
-
-      ret =
-          gst_base_sink_queue_object_unlocked (basesink, pad,
-          _PR_IS_EVENT, GST_MINI_OBJECT_CAST (event), FALSE);
-      if (G_UNLIKELY (ret != GST_FLOW_OK))
-        result = FALSE;
-      else {
-        GST_OBJECT_LOCK (basesink);
-        basesink->have_newsegment = TRUE;
-        GST_OBJECT_UNLOCK (basesink);
-      }
-      GST_BASE_SINK_PREROLL_UNLOCK (basesink);
+      gst_element_post_message (GST_ELEMENT_CAST (basesink),
+          gst_message_new_tag (GST_OBJECT_CAST (basesink),
+              gst_tag_list_copy (taglist)));
       break;
     }
-    case GST_EVENT_FLUSH_START:
-      if (bclass->event)
-        bclass->event (basesink, event);
-
-      GST_DEBUG_OBJECT (basesink, "flush-start %p", event);
-
-      gst_base_sink_flush_start (basesink, pad);
-
-      gst_event_unref (event);
-      break;
-    case GST_EVENT_FLUSH_STOP:
+    case GST_EVENT_SINK_MESSAGE:
     {
-      gboolean reset_time;
+      GstMessage *msg = NULL;
 
-      if (bclass->event)
-        bclass->event (basesink, event);
-
-      gst_event_parse_flush_stop (event, &reset_time);
-      GST_DEBUG_OBJECT (basesink, "flush-stop %p, reset_time: %d", event,
-          reset_time);
-
-      gst_base_sink_flush_stop (basesink, pad, reset_time);
-
-      gst_event_unref (event);
+      gst_event_parse_sink_message (event, &msg);
+      if (msg)
+        gst_element_post_message (GST_ELEMENT_CAST (basesink), msg);
       break;
     }
     default:
-      /* other events are sent to queue or subclass depending on if they
-       * are serialized. */
+      break;
+  }
+done:
+  gst_event_unref (event);
+
+  return result;
+}
+
+static gboolean
+gst_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  GstBaseSink *basesink;
+  gboolean result = TRUE;
+  GstBaseSinkClass *bclass;
+
+  basesink = GST_BASE_SINK_CAST (parent);
+  bclass = GST_BASE_SINK_GET_CLASS (basesink);
+
+  GST_DEBUG_OBJECT (basesink, "received event %p %" GST_PTR_FORMAT, event,
+      event);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_STOP:
+      /* special case for this serialized event because we don't want to grab
+       * the PREROLL lock or check if we were flushing */
+      if (bclass->event)
+        result = bclass->event (basesink, event);
+      break;
+    default:
       if (GST_EVENT_IS_SERIALIZED (event)) {
-        gst_base_sink_queue_object (basesink, pad,
-            GST_MINI_OBJECT_CAST (event), FALSE);
+        GST_BASE_SINK_PREROLL_LOCK (basesink);
+        if (G_UNLIKELY (basesink->flushing))
+          goto flushing;
+
+        if (G_UNLIKELY (basesink->priv->received_eos))
+          goto after_eos;
+
+        if (bclass->event)
+          result = bclass->event (basesink, event);
+
+        GST_BASE_SINK_PREROLL_UNLOCK (basesink);
       } else {
         if (bclass->event)
-          bclass->event (basesink, event);
-        gst_event_unref (event);
+          result = bclass->event (basesink, event);
       }
       break;
   }
 done:
-  gst_object_unref (basesink);
-
   return result;
 
   /* ERRORS */
@@ -3439,8 +3000,8 @@
   {
     GST_DEBUG_OBJECT (basesink, "we are flushing");
     GST_BASE_SINK_PREROLL_UNLOCK (basesink);
-    result = FALSE;
     gst_event_unref (event);
+    result = FALSE;
     goto done;
   }
 
@@ -3448,8 +3009,8 @@
   {
     GST_DEBUG_OBJECT (basesink, "Event received after EOS, dropping");
     GST_BASE_SINK_PREROLL_UNLOCK (basesink);
-    result = FALSE;
     gst_event_unref (event);
+    result = FALSE;
     goto done;
   }
 }
@@ -3458,14 +3019,17 @@
  * timestamps on a buffer, subclasses can override
  */
 static void
-gst_base_sink_get_times (GstBaseSink * basesink, GstBuffer * buffer,
+gst_base_sink_default_get_times (GstBaseSink * basesink, GstBuffer * buffer,
     GstClockTime * start, GstClockTime * end)
 {
   GstClockTime timestamp, duration;
 
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-  if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
+  /* first sync on DTS, else use PTS */
+  timestamp = GST_BUFFER_DTS (buffer);
+  if (!GST_CLOCK_TIME_IS_VALID (timestamp))
+    timestamp = GST_BUFFER_PTS (buffer);
 
+  if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
     /* get duration to calculate end time */
     duration = GST_BUFFER_DURATION (buffer);
     if (GST_CLOCK_TIME_IS_VALID (duration)) {
@@ -3498,35 +3062,38 @@
  *
  * Takes a buffer and compare the timestamps with the last segment.
  * If the buffer falls outside of the segment boundaries, drop it.
- * Else queue the buffer for preroll and rendering.
+ * Else send the buffer for preroll and rendering.
  *
  * This function takes ownership of the buffer.
  */
 static GstFlowReturn
 gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
-    guint8 obj_type, gpointer obj)
+    gpointer obj)
 {
   GstBaseSinkClass *bclass;
-  GstFlowReturn result;
+  GstBaseSinkPrivate *priv = basesink->priv;
+  GstFlowReturn ret;
   GstClockTime start = GST_CLOCK_TIME_NONE, end = GST_CLOCK_TIME_NONE;
-  GstSegment *clip_segment;
-  GstBuffer *time_buf;
+  GstSegment *segment;
+  GstBuffer *sync_buf;
+  gint do_qos;
+  gboolean late, step_end;
 
   if (G_UNLIKELY (basesink->flushing))
     goto flushing;
 
-  if (G_UNLIKELY (basesink->priv->received_eos))
+  if (G_UNLIKELY (priv->received_eos))
     goto was_eos;
 
-  if (OBJ_IS_BUFFERLIST (obj_type)) {
-    time_buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
-    g_assert (NULL != time_buf);
+  if (GST_IS_BUFFER_LIST (obj)) {
+    sync_buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
+    g_assert (NULL != sync_buf);
   } else {
-    time_buf = GST_BUFFER_CAST (obj);
+    sync_buf = GST_BUFFER_CAST (obj);
   }
 
   /* for code clarity */
-  clip_segment = &basesink->clip_segment;
+  segment = &basesink->segment;
 
   if (G_UNLIKELY (!basesink->have_newsegment)) {
     gboolean sync;
@@ -3540,8 +3107,8 @@
 
     /* this means this sink will assume timestamps start from 0 */
     GST_OBJECT_LOCK (basesink);
-    clip_segment->start = 0;
-    clip_segment->stop = -1;
+    segment->start = 0;
+    segment->stop = -1;
     basesink->segment.start = 0;
     basesink->segment.stop = -1;
     basesink->have_newsegment = TRUE;
@@ -3553,44 +3120,98 @@
   /* check if the buffer needs to be dropped, we first ask the subclass for the
    * start and end */
   if (bclass->get_times)
-    bclass->get_times (basesink, time_buf, &start, &end);
+    bclass->get_times (basesink, sync_buf, &start, &end);
 
   if (!GST_CLOCK_TIME_IS_VALID (start)) {
     /* if the subclass does not want sync, we use our own values so that we at
      * least clip the buffer to the segment */
-    gst_base_sink_get_times (basesink, time_buf, &start, &end);
+    gst_base_sink_default_get_times (basesink, sync_buf, &start, &end);
   }
 
   GST_DEBUG_OBJECT (basesink, "got times start: %" GST_TIME_FORMAT
       ", end: %" GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (end));
 
   /* a dropped buffer does not participate in anything */
-  if (GST_CLOCK_TIME_IS_VALID (start) &&
-      (clip_segment->format == GST_FORMAT_TIME)) {
-    if (G_UNLIKELY (!gst_segment_clip (clip_segment,
+  if (GST_CLOCK_TIME_IS_VALID (start) && (segment->format == GST_FORMAT_TIME)) {
+    if (G_UNLIKELY (!gst_segment_clip (segment,
                 GST_FORMAT_TIME, start, end, NULL, NULL)))
       goto out_of_segment;
   }
 
-  /* now we can process the buffer in the queue, this function takes ownership
-   * of the buffer */
-  result = gst_base_sink_queue_object_unlocked (basesink, pad,
-      obj_type, obj, TRUE);
-  return result;
+again:
+  late = FALSE;
+  step_end = FALSE;
+
+  /* synchronize this object, non syncable objects return OK
+   * immediately. */
+  ret = gst_base_sink_do_sync (basesink, GST_MINI_OBJECT_CAST (sync_buf),
+      &late, &step_end);
+  if (G_UNLIKELY (ret != GST_FLOW_OK))
+    goto sync_failed;
+
+  /* drop late buffers unconditionally, let's hope it's unlikely */
+  if (G_UNLIKELY (late))
+    goto dropped;
+
+  /* read once, to get same value before and after */
+  do_qos = g_atomic_int_get (&priv->qos_enabled);
+
+  GST_DEBUG_OBJECT (basesink, "rendering object %p", obj);
+
+  /* record rendering time for QoS and stats */
+  if (do_qos)
+    gst_base_sink_do_render_stats (basesink, TRUE);
+
+  if (!GST_IS_BUFFER_LIST (obj)) {
+    /* For buffer lists do not set last buffer for now. */
+    gst_base_sink_set_last_buffer (basesink, GST_BUFFER_CAST (obj));
+
+    if (bclass->render)
+      ret = bclass->render (basesink, GST_BUFFER_CAST (obj));
+  } else {
+    if (bclass->render_list)
+      ret = bclass->render_list (basesink, GST_BUFFER_LIST_CAST (obj));
+  }
+
+  if (do_qos)
+    gst_base_sink_do_render_stats (basesink, FALSE);
+
+  if (ret == GST_FLOW_STEP)
+    goto again;
+
+  if (G_UNLIKELY (basesink->flushing))
+    goto flushing;
+
+  priv->rendered++;
+
+done:
+  if (step_end) {
+    /* the step ended, check if we need to activate a new step */
+    GST_DEBUG_OBJECT (basesink, "step ended");
+    stop_stepping (basesink, &basesink->segment, &priv->current_step,
+        priv->current_rstart, priv->current_rstop, basesink->eos);
+    goto again;
+  }
+
+  gst_base_sink_perform_qos (basesink, late);
+
+  GST_DEBUG_OBJECT (basesink, "object unref after render %p", obj);
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
+
+  return ret;
 
   /* ERRORS */
 flushing:
   {
     GST_DEBUG_OBJECT (basesink, "sink is flushing");
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 was_eos:
   {
-    GST_DEBUG_OBJECT (basesink,
-        "we are EOS, dropping object, return UNEXPECTED");
+    GST_DEBUG_OBJECT (basesink, "we are EOS, dropping object, return EOS");
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 out_of_segment:
   {
@@ -3598,21 +3219,58 @@
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
     return GST_FLOW_OK;
   }
+sync_failed:
+  {
+    GST_DEBUG_OBJECT (basesink, "do_sync returned %s", gst_flow_get_name (ret));
+    goto done;
+  }
+dropped:
+  {
+    priv->dropped++;
+    GST_DEBUG_OBJECT (basesink, "buffer late, dropping");
+
+    if (g_atomic_int_get (&priv->qos_enabled)) {
+      GstMessage *qos_msg;
+      GstClockTime timestamp, duration;
+
+      timestamp = GST_BUFFER_TIMESTAMP (GST_BUFFER_CAST (sync_buf));
+      duration = GST_BUFFER_DURATION (GST_BUFFER_CAST (sync_buf));
+
+      GST_CAT_DEBUG_OBJECT (GST_CAT_QOS, basesink,
+          "qos: dropped buffer rt %" GST_TIME_FORMAT ", st %" GST_TIME_FORMAT
+          ", ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (priv->current_rstart),
+          GST_TIME_ARGS (priv->current_sstart), GST_TIME_ARGS (timestamp),
+          GST_TIME_ARGS (duration));
+      GST_CAT_DEBUG_OBJECT (GST_CAT_QOS, basesink,
+          "qos: rendered %" G_GUINT64_FORMAT ", dropped %" G_GUINT64_FORMAT,
+          priv->rendered, priv->dropped);
+
+      qos_msg =
+          gst_message_new_qos (GST_OBJECT_CAST (basesink), basesink->sync,
+          priv->current_rstart, priv->current_sstart, timestamp, duration);
+      gst_message_set_qos_values (qos_msg, priv->current_jitter, priv->avg_rate,
+          1000000);
+      gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS, priv->rendered,
+          priv->dropped);
+      gst_element_post_message (GST_ELEMENT_CAST (basesink), qos_msg);
+    }
+    goto done;
+  }
 }
 
 /* with STREAM_LOCK
  */
 static GstFlowReturn
-gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad,
-    guint8 obj_type, gpointer obj)
+gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj)
 {
   GstFlowReturn result;
 
-  if (G_UNLIKELY (basesink->pad_mode != GST_ACTIVATE_PUSH))
+  if (G_UNLIKELY (basesink->pad_mode != GST_PAD_MODE_PUSH))
     goto wrong_mode;
 
   GST_BASE_SINK_PREROLL_LOCK (basesink);
-  result = gst_base_sink_chain_unlocked (basesink, pad, obj_type, obj);
+  result = gst_base_sink_chain_unlocked (basesink, pad, obj);
   GST_BASE_SINK_PREROLL_UNLOCK (basesink);
 
 done:
@@ -3629,45 +3287,46 @@
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
     /* we don't post an error message this will signal to the peer
      * pushing that EOS is reached. */
-    result = GST_FLOW_UNEXPECTED;
+    result = GST_FLOW_EOS;
     goto done;
   }
 }
 
 static GstFlowReturn
-gst_base_sink_chain (GstPad * pad, GstBuffer * buf)
+gst_base_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
   GstBaseSink *basesink;
 
-  basesink = GST_BASE_SINK (GST_OBJECT_PARENT (pad));
+  basesink = GST_BASE_SINK (parent);
 
-  return gst_base_sink_chain_main (basesink, pad, _PR_IS_BUFFER, buf);
+  return gst_base_sink_chain_main (basesink, pad, buf);
 }
 
 static GstFlowReturn
-gst_base_sink_chain_list (GstPad * pad, GstBufferList * list)
+gst_base_sink_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * list)
 {
   GstBaseSink *basesink;
   GstBaseSinkClass *bclass;
   GstFlowReturn result;
 
-  basesink = GST_BASE_SINK (GST_OBJECT_PARENT (pad));
+  basesink = GST_BASE_SINK (parent);
   bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
   if (G_LIKELY (bclass->render_list)) {
-    result = gst_base_sink_chain_main (basesink, pad, _PR_IS_BUFFERLIST, list);
+    result = gst_base_sink_chain_main (basesink, pad, list);
   } else {
     guint i, len;
     GstBuffer *buffer;
 
     GST_INFO_OBJECT (pad, "chaining each group in list as a merged buffer");
 
-    len = gst_buffer_list_len (list);
+    len = gst_buffer_list_length (list);
 
     result = GST_FLOW_OK;
     for (i = 0; i < len; i++) {
-      buffer = gst_buffer_list_get (list, 0);
-      result = gst_base_sink_chain_main (basesink, pad, _PR_IS_BUFFER,
+      buffer = gst_buffer_list_get (list, i);
+      result = gst_base_sink_chain_main (basesink, pad,
           gst_buffer_ref (buffer));
       if (result != GST_FLOW_OK)
         break;
@@ -3981,15 +3640,17 @@
 static void
 gst_base_sink_loop (GstPad * pad)
 {
+  GstObject *parent;
   GstBaseSink *basesink;
   GstBuffer *buf = NULL;
   GstFlowReturn result;
   guint blocksize;
   guint64 offset;
 
-  basesink = GST_BASE_SINK (GST_OBJECT_PARENT (pad));
+  parent = GST_OBJECT_PARENT (pad);
+  basesink = GST_BASE_SINK (parent);
 
-  g_assert (basesink->pad_mode == GST_ACTIVATE_PULL);
+  g_assert (basesink->pad_mode == GST_PAD_MODE_PULL);
 
   if ((blocksize = basesink->priv->blocksize) == 0)
     blocksize = -1;
@@ -4011,7 +3672,7 @@
   basesink->segment.position = offset;
 
   GST_BASE_SINK_PREROLL_LOCK (basesink);
-  result = gst_base_sink_chain_unlocked (basesink, pad, _PR_IS_BUFFER, buf);
+  result = gst_base_sink_chain_unlocked (basesink, pad, buf);
   GST_BASE_SINK_PREROLL_UNLOCK (basesink);
   if (G_UNLIKELY (result != GST_FLOW_OK))
     goto paused;
@@ -4024,16 +3685,16 @@
     GST_LOG_OBJECT (basesink, "pausing task, reason %s",
         gst_flow_get_name (result));
     gst_pad_pause_task (pad);
-    if (result == GST_FLOW_UNEXPECTED) {
+    if (result == GST_FLOW_EOS) {
       /* perform EOS logic */
       if (basesink->segment.flags & GST_SEEK_FLAG_SEGMENT) {
         gst_element_post_message (GST_ELEMENT_CAST (basesink),
             gst_message_new_segment_done (GST_OBJECT_CAST (basesink),
                 basesink->segment.format, basesink->segment.position));
       } else {
-        gst_base_sink_event (pad, gst_event_new_eos ());
+        gst_base_sink_event (pad, parent, gst_event_new_eos ());
       }
-    } else if (result == GST_FLOW_NOT_LINKED || result <= GST_FLOW_UNEXPECTED) {
+    } else if (result == GST_FLOW_NOT_LINKED || result <= GST_FLOW_EOS) {
       /* for fatal errors we post an error message, post the error
        * first so the app knows about the error first. 
        * wrong-state is not a fatal error because it happens due to
@@ -4043,7 +3704,7 @@
       GST_ELEMENT_ERROR (basesink, STREAM, FAILED,
           (_("Internal data stream error.")),
           ("stream stopped, reason %s", gst_flow_get_name (result)));
-      gst_base_sink_event (pad, gst_event_new_eos ());
+      gst_base_sink_event (pad, parent, gst_event_new_eos ());
     }
     return;
   }
@@ -4092,7 +3753,20 @@
      * also flush out the EOS state */
     GST_DEBUG_OBJECT (basesink,
         "flushing out data thread, need preroll to TRUE");
-    gst_base_sink_preroll_queue_flush (basesink, pad);
+
+    /* we can't have EOS anymore now */
+    basesink->eos = FALSE;
+    basesink->priv->received_eos = FALSE;
+    basesink->have_preroll = FALSE;
+    basesink->priv->step_unlock = FALSE;
+    /* can't report latency anymore until we preroll again */
+    if (basesink->priv->async_enabled) {
+      GST_OBJECT_LOCK (basesink);
+      basesink->priv->have_latency = FALSE;
+      GST_OBJECT_UNLOCK (basesink);
+    }
+    /* and signal any waiters now */
+    GST_BASE_SINK_PREROLL_SIGNAL (basesink);
   }
   GST_BASE_SINK_PREROLL_UNLOCK (basesink);
 
@@ -4117,14 +3791,14 @@
 }
 
 static gboolean
-gst_base_sink_pad_activate (GstPad * pad)
+gst_base_sink_pad_activate (GstPad * pad, GstObject * parent)
 {
   gboolean result = FALSE;
   GstBaseSink *basesink;
   GstQuery *query;
   gboolean pull_mode;
 
-  basesink = GST_BASE_SINK (gst_pad_get_parent (pad));
+  basesink = GST_BASE_SINK (parent);
 
   GST_DEBUG_OBJECT (basesink, "Trying pull mode first");
 
@@ -4146,7 +3820,7 @@
   }
 
   /* parse result of the query */
-  gst_query_parse_scheduling (query, &pull_mode, NULL, NULL, NULL, NULL, NULL);
+  pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL);
   gst_query_unref (query);
 
   if (!pull_mode) {
@@ -4157,7 +3831,7 @@
   /* set the pad mode before starting the task so that it's in the
    * correct state for the new thread. also the sink set_caps and get_caps
    * function checks this */
-  basesink->pad_mode = GST_ACTIVATE_PULL;
+  basesink->pad_mode = GST_PAD_MODE_PULL;
 
   /* we first try to negotiate a format so that when we try to activate
    * downstream, it knows about our format */
@@ -4167,10 +3841,10 @@
   }
 
   /* ok activate now */
-  if (!gst_pad_activate_pull (pad, TRUE)) {
+  if (!gst_pad_activate_mode (pad, GST_PAD_MODE_PULL, TRUE)) {
     /* clear any pending caps */
     GST_OBJECT_LOCK (basesink);
-    gst_caps_replace (&basesink->priv->pull_caps, NULL);
+    gst_caps_replace (&basesink->priv->caps, NULL);
     GST_OBJECT_UNLOCK (basesink);
     GST_DEBUG_OBJECT (basesink, "failed to activate in pull mode");
     goto fallback;
@@ -4183,7 +3857,7 @@
   /* push mode fallback */
 fallback:
   GST_DEBUG_OBJECT (basesink, "Falling back to push mode");
-  if ((result = gst_pad_activate_push (pad, TRUE))) {
+  if ((result = gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE))) {
     GST_DEBUG_OBJECT (basesink, "Success activating push mode");
   }
 
@@ -4193,40 +3867,37 @@
     gst_base_sink_set_flushing (basesink, pad, TRUE);
   }
 
-  gst_object_unref (basesink);
-
   return result;
 }
 
 static gboolean
-gst_base_sink_pad_activate_push (GstPad * pad, gboolean active)
+gst_base_sink_pad_activate_push (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean result;
   GstBaseSink *basesink;
 
-  basesink = GST_BASE_SINK (gst_pad_get_parent (pad));
+  basesink = GST_BASE_SINK (parent);
 
   if (active) {
     if (!basesink->can_activate_push) {
       result = FALSE;
-      basesink->pad_mode = GST_ACTIVATE_NONE;
+      basesink->pad_mode = GST_PAD_MODE_NONE;
     } else {
       result = TRUE;
-      basesink->pad_mode = GST_ACTIVATE_PUSH;
+      basesink->pad_mode = GST_PAD_MODE_PUSH;
     }
   } else {
-    if (G_UNLIKELY (basesink->pad_mode != GST_ACTIVATE_PUSH)) {
+    if (G_UNLIKELY (basesink->pad_mode != GST_PAD_MODE_PUSH)) {
       g_warning ("Internal GStreamer activation error!!!");
       result = FALSE;
     } else {
       gst_base_sink_set_flushing (basesink, pad, TRUE);
       result = TRUE;
-      basesink->pad_mode = GST_ACTIVATE_NONE;
+      basesink->pad_mode = GST_PAD_MODE_NONE;
     }
   }
 
-  gst_object_unref (basesink);
-
   return result;
 }
 
@@ -4247,12 +3918,6 @@
 
   GST_DEBUG_OBJECT (basesink, "allowed caps: %" GST_PTR_FORMAT, caps);
 
-  caps = gst_caps_make_writable (caps);
-  /* get the first (preferred) format */
-  gst_caps_truncate (caps);
-
-  GST_DEBUG_OBJECT (basesink, "have caps: %" GST_PTR_FORMAT, caps);
-
   if (gst_caps_is_any (caps)) {
     GST_DEBUG_OBJECT (basesink, "caps were ANY after fixating, "
         "allowing pull()");
@@ -4261,7 +3926,7 @@
     result = TRUE;
   } else {
     /* try to fixate */
-    gst_pad_fixate_caps (GST_BASE_SINK_PAD (basesink), caps);
+    caps = gst_base_sink_fixate (basesink, caps);
     GST_DEBUG_OBJECT (basesink, "fixated to: %" GST_PTR_FORMAT, caps);
 
     if (gst_caps_is_fixed (caps)) {
@@ -4269,10 +3934,6 @@
               gst_event_new_caps (caps)))
         goto could_not_set_caps;
 
-      GST_OBJECT_LOCK (basesink);
-      gst_caps_replace (&basesink->priv->pull_caps, caps);
-      GST_OBJECT_UNLOCK (basesink);
-
       result = TRUE;
     }
   }
@@ -4299,13 +3960,14 @@
 
 /* this won't get called until we implement an activate function */
 static gboolean
-gst_base_sink_pad_activate_pull (GstPad * pad, gboolean active)
+gst_base_sink_pad_activate_pull (GstPad * pad, GstObject * parent,
+    gboolean active)
 {
   gboolean result = FALSE;
   GstBaseSink *basesink;
   GstBaseSinkClass *bclass;
 
-  basesink = GST_BASE_SINK (gst_pad_get_parent (pad));
+  basesink = GST_BASE_SINK (parent);
   bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
   if (active) {
@@ -4315,17 +3977,15 @@
      * mode works just fine without having a newsegment before the
      * first buffer */
     gst_segment_init (&basesink->segment, GST_FORMAT_BYTES);
-    gst_segment_init (&basesink->clip_segment, GST_FORMAT_BYTES);
     GST_OBJECT_LOCK (basesink);
     basesink->have_newsegment = TRUE;
     GST_OBJECT_UNLOCK (basesink);
 
     /* get the peer duration in bytes */
-    result = gst_pad_query_peer_duration (pad, GST_FORMAT_BYTES, &duration);
+    result = gst_pad_peer_query_duration (pad, GST_FORMAT_BYTES, &duration);
     if (result) {
       GST_DEBUG_OBJECT (basesink,
           "setting duration in bytes to %" G_GINT64_FORMAT, duration);
-      basesink->clip_segment.duration = duration;
       basesink->segment.duration = duration;
     } else {
       GST_DEBUG_OBJECT (basesink, "unknown duration");
@@ -4340,21 +4000,16 @@
       goto activate_failed;
 
   } else {
-    if (G_UNLIKELY (basesink->pad_mode != GST_ACTIVATE_PULL)) {
+    if (G_UNLIKELY (basesink->pad_mode != GST_PAD_MODE_PULL)) {
       g_warning ("Internal GStreamer activation error!!!");
       result = FALSE;
     } else {
       result = gst_base_sink_set_flushing (basesink, pad, TRUE);
       if (bclass->activate_pull)
         result &= bclass->activate_pull (basesink, FALSE);
-      basesink->pad_mode = GST_ACTIVATE_NONE;
-      /* clear any pending caps */
-      GST_OBJECT_LOCK (basesink);
-      gst_caps_replace (&basesink->priv->pull_caps, NULL);
-      GST_OBJECT_UNLOCK (basesink);
+      basesink->pad_mode = GST_PAD_MODE_NONE;
     }
   }
-  gst_object_unref (basesink);
 
   return result;
 
@@ -4362,13 +4017,34 @@
 activate_failed:
   {
     /* reset, as starting the thread failed */
-    basesink->pad_mode = GST_ACTIVATE_NONE;
+    basesink->pad_mode = GST_PAD_MODE_NONE;
 
     GST_ERROR_OBJECT (basesink, "subclass failed to activate in pull mode");
     return FALSE;
   }
 }
 
+static gboolean
+gst_base_sink_pad_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean res;
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      res = gst_base_sink_pad_activate_pull (pad, parent, active);
+      break;
+    case GST_PAD_MODE_PUSH:
+      res = gst_base_sink_pad_activate_push (pad, parent, active);
+      break;
+    default:
+      GST_LOG_OBJECT (pad, "unknown activation mode %d", mode);
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
 /* send an event to our sinkpad peer. */
 static gboolean
 gst_base_sink_send_event (GstElement * element, GstEvent * event)
@@ -4376,7 +4052,7 @@
   GstPad *pad;
   GstBaseSink *basesink = GST_BASE_SINK (element);
   gboolean forward, result = TRUE;
-  GstActivateMode mode;
+  GstPadMode mode;
 
   GST_OBJECT_LOCK (element);
   /* get the pad and the scheduling mode */
@@ -4414,7 +4090,7 @@
     }
     case GST_EVENT_SEEK:
       /* in pull mode we will execute the seek */
-      if (mode == GST_ACTIVATE_PULL)
+      if (mode == GST_PAD_MODE_PULL)
         result = gst_base_sink_perform_seek (basesink, pad, event);
       break;
     case GST_EVENT_STEP:
@@ -4433,6 +4109,10 @@
   }
 
   gst_object_unref (pad);
+
+  GST_DEBUG_OBJECT (basesink, "handled event %p %" GST_PTR_FORMAT ": %d", event,
+      event, result);
+
   return result;
 }
 
@@ -4465,13 +4145,7 @@
     in_paused = TRUE;
   }
 
-  /* we don't use the clip segment in pull mode, when seeking we update the
-   * main segment directly with the new segment values without it having to be
-   * activated by the rendering after preroll */
-  if (basesink->pad_mode == GST_ACTIVATE_PUSH)
-    segment = &basesink->clip_segment;
-  else
-    segment = &basesink->segment;
+  segment = &basesink->segment;
 
   /* get the format in the segment */
   oformat = segment->format;
@@ -4678,7 +4352,7 @@
 {
   gboolean res = FALSE;
 
-  if (basesink->pad_mode == GST_ACTIVATE_PULL) {
+  if (basesink->pad_mode == GST_PAD_MODE_PULL) {
     gint64 uduration;
 
     /* get the duration in bytes, in pull mode that's all we are sure to
@@ -4686,7 +4360,7 @@
      * using our cached value because it might change. Duration caching
      * should be done at a higher level. */
     res =
-        gst_pad_query_peer_duration (basesink->sinkpad, GST_FORMAT_BYTES,
+        gst_pad_peer_query_duration (basesink->sinkpad, GST_FORMAT_BYTES,
         &uduration);
     if (res) {
       basesink->segment.duration = uduration;
@@ -4707,20 +4381,6 @@
   return res;
 }
 
-static const GstQueryType *
-gst_base_sink_get_query_types (GstElement * element)
-{
-  static const GstQueryType query_types[] = {
-    GST_QUERY_DURATION,
-    GST_QUERY_POSITION,
-    GST_QUERY_SEGMENT,
-    GST_QUERY_LATENCY,
-    0
-  };
-
-  return query_types;
-}
-
 static gboolean
 default_element_query (GstElement * element, GstQuery * query)
 {
@@ -4757,7 +4417,7 @@
               &upstream);
           if (!res && upstream) {
             res =
-                gst_pad_query_peer_position (basesink->sinkpad, GST_FORMAT_TIME,
+                gst_pad_peer_query_position (basesink->sinkpad, GST_FORMAT_TIME,
                 &cur);
           }
           if (res) {
@@ -4765,7 +4425,7 @@
                 &upstream);
             if (!res && upstream) {
               res =
-                  gst_pad_query_peer_duration (basesink->sinkpad,
+                  gst_pad_peer_query_duration (basesink->sinkpad,
                   GST_FORMAT_TIME, &dur);
             }
           }
@@ -4827,7 +4487,7 @@
       break;
     case GST_QUERY_SEGMENT:
     {
-      if (basesink->pad_mode == GST_ACTIVATE_PULL) {
+      if (basesink->pad_mode == GST_PAD_MODE_PULL) {
         gst_query_set_segment (query, basesink->segment.rate,
             GST_FORMAT_TIME, basesink->segment.start, basesink->segment.stop);
         res = TRUE;
@@ -4850,7 +4510,7 @@
 
 
 static gboolean
-default_sink_query (GstBaseSink * basesink, GstQuery * query)
+gst_base_sink_default_query (GstBaseSink * basesink, GstQuery * query)
 {
   gboolean res;
   GstBaseSinkClass *bclass;
@@ -4866,26 +4526,50 @@
         res = FALSE;
       break;
     }
+    case GST_QUERY_CAPS:
+    {
+      GstCaps *caps, *filter;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_base_sink_query_caps (basesink, basesink->sinkpad, filter);
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_ACCEPT_CAPS:
+    {
+      GstCaps *caps, *allowed;
+      gboolean subset;
+
+      /* slightly faster than the default implementation */
+      gst_query_parse_accept_caps (query, &caps);
+      allowed = gst_base_sink_query_caps (basesink, basesink->sinkpad, NULL);
+      subset = gst_caps_is_subset (caps, allowed);
+      gst_query_set_accept_caps_result (query, subset);
+      res = TRUE;
+      break;
+    }
+    case GST_QUERY_DRAIN:
+      res = TRUE;
+      break;
     default:
-      res = gst_pad_query_default (basesink->sinkpad, query);
+      res =
+          gst_pad_query_default (basesink->sinkpad, GST_OBJECT_CAST (basesink),
+          query);
       break;
   }
   return res;
 }
 
 static gboolean
-gst_base_sink_sink_query (GstPad * pad, GstQuery * query)
+gst_base_sink_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstBaseSink *basesink;
   GstBaseSinkClass *bclass;
   gboolean res;
 
-  basesink = GST_BASE_SINK_CAST (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (basesink == NULL)) {
-    gst_query_unref (query);
-    return FALSE;
-  }
-
+  basesink = GST_BASE_SINK_CAST (parent);
   bclass = GST_BASE_SINK_GET_CLASS (basesink);
 
   if (bclass->query)
@@ -4893,8 +4577,6 @@
   else
     res = FALSE;
 
-  gst_object_unref (basesink);
-
   return res;
 }
 
@@ -4923,7 +4605,6 @@
       GST_DEBUG_OBJECT (basesink, "READY to PAUSED");
       basesink->have_newsegment = FALSE;
       gst_segment_init (&basesink->segment, GST_FORMAT_UNDEFINED);
-      gst_segment_init (&basesink->clip_segment, GST_FORMAT_UNDEFINED);
       basesink->offset = 0;
       basesink->have_preroll = FALSE;
       priv->step_unlock = FALSE;
@@ -5076,6 +4757,7 @@
         gst_clock_id_unref (priv->cached_clock_id);
         priv->cached_clock_id = NULL;
       }
+      gst_caps_replace (&basesink->priv->caps, NULL);
       GST_OBJECT_UNLOCK (basesink);
 
       gst_base_sink_set_last_buffer (basesink, NULL);
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index 6c8dfab..f4ab7e6 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -44,16 +44,16 @@
  */
 #define GST_BASE_SINK_PAD(obj)          (GST_BASE_SINK_CAST (obj)->sinkpad)
 
-#define GST_BASE_SINK_GET_PREROLL_LOCK(pad)   (GST_BASE_SINK_CAST(pad)->preroll_lock)
+#define GST_BASE_SINK_GET_PREROLL_LOCK(pad)   (&GST_BASE_SINK_CAST(pad)->preroll_lock)
 #define GST_BASE_SINK_PREROLL_LOCK(pad)       (g_mutex_lock(GST_BASE_SINK_GET_PREROLL_LOCK(pad)))
 #define GST_BASE_SINK_PREROLL_TRYLOCK(pad)    (g_mutex_trylock(GST_BASE_SINK_GET_PREROLL_LOCK(pad)))
 #define GST_BASE_SINK_PREROLL_UNLOCK(pad)     (g_mutex_unlock(GST_BASE_SINK_GET_PREROLL_LOCK(pad)))
 
-#define GST_BASE_SINK_GET_PREROLL_COND(pad)   (GST_BASE_SINK_CAST(pad)->preroll_cond)
+#define GST_BASE_SINK_GET_PREROLL_COND(pad)   (&GST_BASE_SINK_CAST(pad)->preroll_cond)
 #define GST_BASE_SINK_PREROLL_WAIT(pad)       \
       g_cond_wait (GST_BASE_SINK_GET_PREROLL_COND (pad), GST_BASE_SINK_GET_PREROLL_LOCK (pad))
-#define GST_BASE_SINK_PREROLL_TIMED_WAIT(pad, timeval) \
-      g_cond_timed_wait (GST_BASE_SINK_GET_PREROLL_COND (pad), GST_BASE_SINK_GET_PREROLL_LOCK (pad), timeval)
+#define GST_BASE_SINK_PREROLL_WAIT_UNTIL(pad, end_time) \
+      g_cond_wait_until (GST_BASE_SINK_GET_PREROLL_COND (pad), GST_BASE_SINK_GET_PREROLL_LOCK (pad), end_time)
 #define GST_BASE_SINK_PREROLL_SIGNAL(pad)     g_cond_signal (GST_BASE_SINK_GET_PREROLL_COND (pad));
 #define GST_BASE_SINK_PREROLL_BROADCAST(pad)  g_cond_broadcast (GST_BASE_SINK_GET_PREROLL_COND (pad));
 
@@ -71,7 +71,7 @@
 
   /*< protected >*/
   GstPad        *sinkpad;
-  GstActivateMode       pad_mode;
+  GstPadMode     pad_mode;
 
   /*< protected >*/ /* with LOCK */
   guint64        offset;
@@ -79,10 +79,9 @@
   gboolean       can_activate_push;
 
   /*< protected >*/ /* with PREROLL_LOCK */
-  GMutex        *preroll_lock;
-  GCond         *preroll_cond;
+  GMutex         preroll_lock;
+  GCond          preroll_cond;
   gboolean       eos;
-  gboolean       eos_queued;
   gboolean       need_preroll;
   gboolean       have_preroll;
   gboolean       playing_async;
@@ -90,11 +89,9 @@
   /*< protected >*/ /* with STREAM_LOCK */
   gboolean       have_newsegment;
   GstSegment     segment;
-  GstSegment     clip_segment;
 
   /*< private >*/ /* with LOCK */
   GstClockID     clock_id;
-  GstClockTime   end_time;
   gboolean       sync;
   gboolean       flushing;
   gboolean       running;
@@ -112,8 +109,7 @@
  * @parent_class: Element parent class
  * @get_caps: Called to get sink pad caps from the subclass
  * @set_caps: Notify subclass of changed caps
- * @fixate: Only useful in pull mode, this vmethod will be called in response to
- *     gst_pad_fixate_caps() being called on the sink pad. Implement if you have
+ * @fixate: Only useful in pull mode. Implement if you have
  *     ideas about what should be the default values for the caps you support.
  * @activate_pull: Subclasses should override this when they can provide an
  *     alternate method of spawning a thread to drive the pipeline in pull mode.
@@ -130,6 +126,8 @@
  * @unlock_stop: Clear the previous unlock request. Subclasses should clear
  *     any state they set during unlock(), such as clearing command queues.
  * @event: Override this to handle events arriving on the sink pad
+ * @wait_eos: Override this to implement custom logic to wait for the EOS time.
+ *     subclasses should always first chain up to the default implementation.
  * @preroll: Called to present the preroll buffer if desired
  * @render: Called when a buffer should be presented or output, at the
  *     correct moment if the #GstBaseSink has been set to sync to the clock.
@@ -150,7 +148,7 @@
   gboolean      (*set_caps)     (GstBaseSink *sink, GstCaps *caps);
 
   /* fixate sink caps during pull-mode negotiation */
-  void          (*fixate)       (GstBaseSink *sink, GstCaps *caps);
+  GstCaps *     (*fixate)       (GstBaseSink *sink, GstCaps *caps);
   /* start or stop a pulling thread */
   gboolean      (*activate_pull)(GstBaseSink *sink, gboolean active);
 
@@ -176,9 +174,12 @@
   /* notify subclass of query */
   gboolean      (*query)        (GstBaseSink *sink, GstQuery *query);
 
-  /* notify subclass of event, preroll buffer or real buffer */
+  /* notify subclass of event */
   gboolean      (*event)        (GstBaseSink *sink, GstEvent *event);
+  /* wait for eos, subclasses should chain up to parent first */
+  GstFlowReturn (*wait_eos)     (GstBaseSink *sink, GstEvent *event);
 
+  /* notify subclass of preroll buffer or real buffer */
   GstFlowReturn (*preroll)      (GstBaseSink *sink, GstBuffer *buffer);
   GstFlowReturn (*render)       (GstBaseSink *sink, GstBuffer *buffer);
   /* Render a BufferList */
@@ -213,10 +214,10 @@
 void            gst_base_sink_set_ts_offset     (GstBaseSink *sink, GstClockTimeDiff offset);
 GstClockTimeDiff gst_base_sink_get_ts_offset    (GstBaseSink *sink);
 
-/* last buffer */
-GstBuffer *     gst_base_sink_get_last_buffer   (GstBaseSink *sink);
-void            gst_base_sink_set_last_buffer_enabled (GstBaseSink *sink, gboolean enabled);
-gboolean        gst_base_sink_is_last_buffer_enabled (GstBaseSink *sink);
+/* last sample */
+GstSample *     gst_base_sink_get_last_sample   (GstBaseSink *sink);
+void            gst_base_sink_set_last_sample_enabled (GstBaseSink *sink, gboolean enabled);
+gboolean        gst_base_sink_is_last_sample_enabled (GstBaseSink *sink);
 
 /* latency */
 gboolean        gst_base_sink_query_latency     (GstBaseSink *sink, gboolean *live, gboolean *upstream_live,
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 84fe263..fdd3a4d 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -160,23 +160,22 @@
 #include <string.h>
 
 #include <gst/gst_private.h>
+#include <gst/glib-compat-private.h>
 
 #include "gstbasesrc.h"
 #include "gsttypefindhelper.h"
-#include <gst/gstmarshal.h>
 #include <gst/gst-i18n-lib.h>
 
 GST_DEBUG_CATEGORY_STATIC (gst_base_src_debug);
 #define GST_CAT_DEFAULT gst_base_src_debug
 
-#define GST_LIVE_GET_LOCK(elem)               (GST_BASE_SRC_CAST(elem)->live_lock)
+#define GST_LIVE_GET_LOCK(elem)               (&GST_BASE_SRC_CAST(elem)->live_lock)
 #define GST_LIVE_LOCK(elem)                   g_mutex_lock(GST_LIVE_GET_LOCK(elem))
 #define GST_LIVE_TRYLOCK(elem)                g_mutex_trylock(GST_LIVE_GET_LOCK(elem))
 #define GST_LIVE_UNLOCK(elem)                 g_mutex_unlock(GST_LIVE_GET_LOCK(elem))
-#define GST_LIVE_GET_COND(elem)               (GST_BASE_SRC_CAST(elem)->live_cond)
+#define GST_LIVE_GET_COND(elem)               (&GST_BASE_SRC_CAST(elem)->live_cond)
 #define GST_LIVE_WAIT(elem)                   g_cond_wait (GST_LIVE_GET_COND (elem), GST_LIVE_GET_LOCK (elem))
-#define GST_LIVE_TIMED_WAIT(elem, timeval)    g_cond_timed_wait (GST_LIVE_GET_COND (elem), GST_LIVE_GET_LOCK (elem),\
-                                                                                timeval)
+#define GST_LIVE_WAIT_UNTIL(elem, end_time)   g_cond_timed_wait (GST_LIVE_GET_COND (elem), GST_LIVE_GET_LOCK (elem), end_time)
 #define GST_LIVE_SIGNAL(elem)                 g_cond_signal (GST_LIVE_GET_COND (elem));
 #define GST_LIVE_BROADCAST(elem)              g_cond_broadcast (GST_LIVE_GET_COND (elem));
 
@@ -209,6 +208,12 @@
   gboolean discont;
   gboolean flushing;
 
+  GstFlowReturn start_result;
+  gboolean async;
+
+  /* if a stream-start event should be sent */
+  gboolean stream_start_pending;
+
   /* if segment should be sent */
   gboolean segment_pending;
 
@@ -240,9 +245,8 @@
   GstClockTime earliest_time;
 
   GstBufferPool *pool;
-  const GstAllocator *allocator;
-  guint prefix;
-  guint alignment;
+  GstAllocator *allocator;
+  GstAllocationParams params;
 };
 
 static GstElementClass *parent_class = NULL;
@@ -278,23 +282,25 @@
   return base_src_type;
 }
 
-static GstCaps *gst_base_src_getcaps (GstPad * pad, GstCaps * filter);
-static void gst_base_src_default_fixate (GstBaseSrc * src, GstCaps * caps);
-static void gst_base_src_fixate (GstPad * pad, GstCaps * caps);
+static GstCaps *gst_base_src_default_get_caps (GstBaseSrc * bsrc,
+    GstCaps * filter);
+static GstCaps *gst_base_src_default_fixate (GstBaseSrc * src, GstCaps * caps);
+static GstCaps *gst_base_src_fixate (GstBaseSrc * src, GstCaps * caps);
 
 static gboolean gst_base_src_is_random_access (GstBaseSrc * src);
-static gboolean gst_base_src_activate_push (GstPad * pad, gboolean active);
-static gboolean gst_base_src_activate_pull (GstPad * pad, gboolean active);
+static gboolean gst_base_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
 static void gst_base_src_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_base_src_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
-static gboolean gst_base_src_event_handler (GstPad * pad, GstEvent * event);
+static gboolean gst_base_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
 static gboolean gst_base_src_send_event (GstElement * elem, GstEvent * event);
 static gboolean gst_base_src_default_event (GstBaseSrc * src, GstEvent * event);
-static const GstQueryType *gst_base_src_get_query_types (GstElement * element);
 
-static gboolean gst_base_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_base_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
 static gboolean gst_base_src_activate_pool (GstBaseSrc * basesrc,
     gboolean active);
@@ -311,6 +317,7 @@
 
 static gboolean gst_base_src_set_flushing (GstBaseSrc * basesrc,
     gboolean flushing, gboolean live_play, gboolean unlock, gboolean * playing);
+
 static gboolean gst_base_src_start (GstBaseSrc * basesrc);
 static gboolean gst_base_src_stop (GstBaseSrc * basesrc);
 
@@ -318,8 +325,8 @@
     GstStateChange transition);
 
 static void gst_base_src_loop (GstPad * pad);
-static GstFlowReturn gst_base_src_pad_get_range (GstPad * pad, guint64 offset,
-    guint length, GstBuffer ** buf);
+static GstFlowReturn gst_base_src_getrange (GstPad * pad, GstObject * parent,
+    guint64 offset, guint length, GstBuffer ** buf);
 static GstFlowReturn gst_base_src_get_range (GstBaseSrc * src, guint64 offset,
     guint length, GstBuffer ** buf);
 static gboolean gst_base_src_seekable (GstBaseSrc * src);
@@ -367,26 +374,23 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_src_change_state);
   gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_base_src_send_event);
-  gstelement_class->get_query_types =
-      GST_DEBUG_FUNCPTR (gst_base_src_get_query_types);
 
+  klass->get_caps = GST_DEBUG_FUNCPTR (gst_base_src_default_get_caps);
   klass->negotiate = GST_DEBUG_FUNCPTR (gst_base_src_default_negotiate);
-  klass->event = GST_DEBUG_FUNCPTR (gst_base_src_default_event);
-  klass->do_seek = GST_DEBUG_FUNCPTR (gst_base_src_default_do_seek);
-  klass->query = GST_DEBUG_FUNCPTR (gst_base_src_default_query);
+  klass->fixate = GST_DEBUG_FUNCPTR (gst_base_src_default_fixate);
   klass->prepare_seek_segment =
       GST_DEBUG_FUNCPTR (gst_base_src_default_prepare_seek_segment);
-  klass->fixate = GST_DEBUG_FUNCPTR (gst_base_src_default_fixate);
+  klass->do_seek = GST_DEBUG_FUNCPTR (gst_base_src_default_do_seek);
+  klass->query = GST_DEBUG_FUNCPTR (gst_base_src_default_query);
+  klass->event = GST_DEBUG_FUNCPTR (gst_base_src_default_event);
   klass->create = GST_DEBUG_FUNCPTR (gst_base_src_default_create);
   klass->alloc = GST_DEBUG_FUNCPTR (gst_base_src_default_alloc);
 
   /* Registering debug symbols for function pointers */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_activate_push);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_activate_pull);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_event_handler);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_activate_mode);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_event);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_query);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_pad_get_range);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_getcaps);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_getrange);
   GST_DEBUG_REGISTER_FUNCPTR (gst_base_src_fixate);
 }
 
@@ -399,8 +403,8 @@
   basesrc->priv = GST_BASE_SRC_GET_PRIVATE (basesrc);
 
   basesrc->is_live = FALSE;
-  basesrc->live_lock = g_mutex_new ();
-  basesrc->live_cond = g_cond_new ();
+  g_mutex_init (&basesrc->live_lock);
+  g_cond_init (&basesrc->live_cond);
   basesrc->num_buffers = DEFAULT_NUM_BUFFERS;
   basesrc->num_buffers_left = -1;
 
@@ -414,13 +418,10 @@
   pad = gst_pad_new_from_template (pad_template, "src");
 
   GST_DEBUG_OBJECT (basesrc, "setting functions on src pad");
-  gst_pad_set_activatepush_function (pad, gst_base_src_activate_push);
-  gst_pad_set_activatepull_function (pad, gst_base_src_activate_pull);
-  gst_pad_set_event_function (pad, gst_base_src_event_handler);
+  gst_pad_set_activatemode_function (pad, gst_base_src_activate_mode);
+  gst_pad_set_event_function (pad, gst_base_src_event);
   gst_pad_set_query_function (pad, gst_base_src_query);
-  gst_pad_set_getrange_function (pad, gst_base_src_pad_get_range);
-  gst_pad_set_getcaps_function (pad, gst_base_src_getcaps);
-  gst_pad_set_fixatecaps_function (pad, gst_base_src_fixate);
+  gst_pad_set_getrange_function (pad, gst_base_src_getrange);
 
   /* hold pointer to pad */
   basesrc->srcpad = pad;
@@ -435,8 +436,10 @@
   basesrc->priv->do_timestamp = DEFAULT_DO_TIMESTAMP;
   g_atomic_int_set (&basesrc->priv->have_events, FALSE);
 
-  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_STARTED);
-  GST_OBJECT_FLAG_SET (basesrc, GST_ELEMENT_IS_SOURCE);
+  basesrc->priv->start_result = GST_FLOW_FLUSHING;
+  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTED);
+  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTING);
+  GST_OBJECT_FLAG_SET (basesrc, GST_ELEMENT_FLAG_SOURCE);
 
   GST_DEBUG_OBJECT (basesrc, "init done");
 }
@@ -449,8 +452,8 @@
 
   basesrc = GST_BASE_SRC (object);
 
-  g_mutex_free (basesrc->live_lock);
-  g_cond_free (basesrc->live_cond);
+  g_mutex_clear (&basesrc->live_lock);
+  g_cond_clear (&basesrc->live_cond);
 
   event_p = &basesrc->pending_seek;
   gst_event_replace (event_p, NULL);
@@ -475,7 +478,7 @@
  * This function will block until a state change to PLAYING happens (in which
  * case this function returns #GST_FLOW_OK) or the processing must be stopped due
  * to a state change to READY or a FLUSH event (in which case this function
- * returns #GST_FLOW_WRONG_STATE).
+ * returns #GST_FLOW_FLUSHING).
  *
  * Since: 0.10.12
  *
@@ -502,7 +505,7 @@
 flushing:
   {
     GST_DEBUG_OBJECT (src, "we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 }
 
@@ -587,7 +590,7 @@
  * read past current tracked size.  Otherwise, size is checked for upon each
  * read.
  *
- * Since: 0.10.35
+ * Since: 0.10.36
  */
 void
 gst_base_src_set_dynamic_size (GstBaseSrc * src, gboolean dynamic)
@@ -598,6 +601,49 @@
 }
 
 /**
+ * gst_base_src_set_async:
+ * @src: base source instance
+ * @async: new async mode
+ *
+ * Configure async behaviour in @src, no state change will block. The open,
+ * close, start, stop, play and pause virtual methods will be executed in a
+ * different thread and are thus allowed to perform blocking operations. Any
+ * blocking operation should be unblocked with the unlock vmethod.
+ */
+void
+gst_base_src_set_async (GstBaseSrc * src, gboolean async)
+{
+  g_return_if_fail (GST_IS_BASE_SRC (src));
+
+  GST_OBJECT_LOCK (src);
+  src->priv->async = async;
+  GST_OBJECT_UNLOCK (src);
+}
+
+/**
+ * gst_base_src_is_async:
+ * @src: base source instance
+ *
+ * Get the current async behaviour of @src. See also gst_base_src_set_async().
+ *
+ * Returns: %TRUE if @src is operating in async mode.
+ */
+gboolean
+gst_base_src_is_async (GstBaseSrc * src)
+{
+  gboolean res;
+
+  g_return_val_if_fail (GST_IS_BASE_SRC (src), FALSE);
+
+  GST_OBJECT_LOCK (src);
+  res = src->priv->async;
+  GST_OBJECT_UNLOCK (src);
+
+  return res;
+}
+
+
+/**
  * gst_base_src_query_latency:
  * @src: the source
  * @live: (out) (allow-none): if the source is live
@@ -785,6 +831,19 @@
   return res;
 }
 
+static gboolean
+gst_base_src_send_stream_start (GstBaseSrc * src)
+{
+  gboolean ret = TRUE;
+
+  if (src->priv->stream_start_pending) {
+    ret = gst_pad_push_event (src->srcpad, gst_event_new_stream_start ());
+    src->priv->stream_start_pending = FALSE;
+  }
+
+  return ret;
+}
+
 /**
  * gst_base_src_set_caps:
  * @src: a #GstBaseSrc
@@ -802,6 +861,7 @@
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
+  gst_base_src_send_stream_start (src);
   gst_pad_push_event (src->srcpad, gst_event_new_caps (caps));
 
   if (bclass->set_caps)
@@ -811,58 +871,50 @@
 }
 
 static GstCaps *
-gst_base_src_getcaps (GstPad * pad, GstCaps * filter)
+gst_base_src_default_get_caps (GstBaseSrc * bsrc, GstCaps * filter)
 {
-  GstBaseSrcClass *bclass;
-  GstBaseSrc *bsrc;
   GstCaps *caps = NULL;
+  GstPadTemplate *pad_template;
+  GstBaseSrcClass *bclass;
 
-  bsrc = GST_BASE_SRC (GST_PAD_PARENT (pad));
   bclass = GST_BASE_SRC_GET_CLASS (bsrc);
-  if (bclass->get_caps)
-    caps = bclass->get_caps (bsrc, filter);
 
-  if (caps == NULL) {
-    GstPadTemplate *pad_template;
+  pad_template =
+      gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
 
-    pad_template =
-        gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
-    if (pad_template != NULL) {
-      caps = gst_pad_template_get_caps (pad_template);
+  if (pad_template != NULL) {
+    caps = gst_pad_template_get_caps (pad_template);
 
-      if (filter) {
-        GstCaps *intersection;
+    if (filter) {
+      GstCaps *intersection;
 
-        intersection =
-            gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
-        gst_caps_unref (caps);
-        caps = intersection;
-      }
+      intersection =
+          gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+      gst_caps_unref (caps);
+      caps = intersection;
     }
   }
   return caps;
 }
 
-static void
-gst_base_src_default_fixate (GstBaseSrc * src, GstCaps * caps)
+static GstCaps *
+gst_base_src_default_fixate (GstBaseSrc * bsrc, GstCaps * caps)
 {
-  GST_DEBUG_OBJECT (src, "using default caps fixate function");
-  gst_caps_fixate (caps);
+  GST_DEBUG_OBJECT (bsrc, "using default caps fixate function");
+  return gst_caps_fixate (caps);
 }
 
-static void
-gst_base_src_fixate (GstPad * pad, GstCaps * caps)
+static GstCaps *
+gst_base_src_fixate (GstBaseSrc * bsrc, GstCaps * caps)
 {
   GstBaseSrcClass *bclass;
-  GstBaseSrc *bsrc;
 
-  bsrc = GST_BASE_SRC (gst_pad_get_parent (pad));
   bclass = GST_BASE_SRC_GET_CLASS (bsrc);
 
   if (bclass->fixate)
-    bclass->fixate (bsrc, caps);
+    caps = bclass->fixate (bsrc, caps);
 
-  gst_object_unref (bsrc);
+  return caps;
 }
 
 static gboolean
@@ -1127,39 +1179,55 @@
       /* we can operate in getrange mode if the native format is bytes
        * and we are seekable, this condition is set in the random_access
        * flag and is set in the _start() method. */
-      gst_query_set_scheduling (query, random_access, TRUE, FALSE, 1, -1, 1);
+      gst_query_set_scheduling (query, GST_SCHEDULING_FLAG_SEEKABLE, 1, -1, 0);
+      if (random_access)
+        gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
 
       res = TRUE;
       break;
     }
+    case GST_QUERY_CAPS:
+    {
+      GstBaseSrcClass *bclass;
+      GstCaps *caps, *filter;
+
+      bclass = GST_BASE_SRC_GET_CLASS (src);
+      if (bclass->get_caps) {
+        gst_query_parse_caps (query, &filter);
+        if ((caps = bclass->get_caps (src, filter))) {
+          gst_query_set_caps_result (query, caps);
+          gst_caps_unref (caps);
+          res = TRUE;
+        } else {
+          res = FALSE;
+        }
+      } else
+        res = FALSE;
+      break;
+    }
     default:
       res = FALSE;
       break;
   }
   GST_DEBUG_OBJECT (src, "query %s returns %d", GST_QUERY_TYPE_NAME (query),
       res);
+
   return res;
 }
 
 static gboolean
-gst_base_src_query (GstPad * pad, GstQuery * query)
+gst_base_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstBaseSrc *src;
   GstBaseSrcClass *bclass;
   gboolean result = FALSE;
 
-  src = GST_BASE_SRC (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (src == NULL))
-    return FALSE;
-
+  src = GST_BASE_SRC (parent);
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
   if (bclass->query)
     result = bclass->query (src, query);
-  else
-    result = gst_pad_query_default (pad, query);
-
-  gst_object_unref (src);
 
   return result;
 }
@@ -1284,12 +1352,16 @@
 
   if (priv->pool) {
     ret = gst_buffer_pool_acquire_buffer (priv->pool, buffer, NULL);
-  } else {
-    *buffer = gst_buffer_new_allocate (priv->allocator, size, priv->alignment);
+  } else if (size != -1) {
+    *buffer = gst_buffer_new_allocate (priv->allocator, size, &priv->params);
     if (G_UNLIKELY (*buffer == NULL))
       goto alloc_failed;
 
     ret = GST_FLOW_OK;
+  } else {
+    GST_WARNING_OBJECT (src, "Not trying to alloc %u bytes. Blocksize not set?",
+        size);
+    goto alloc_failed;
   }
   return ret;
 
@@ -1307,6 +1379,7 @@
 {
   GstBaseSrcClass *bclass;
   GstFlowReturn ret;
+  GstBuffer *res_buf;
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
@@ -1315,17 +1388,25 @@
   if (G_UNLIKELY (!bclass->fill))
     goto no_function;
 
-  ret = bclass->alloc (src, offset, size, buffer);
-  if (G_UNLIKELY (ret != GST_FLOW_OK))
-    goto alloc_failed;
+  if (*buffer == NULL) {
+    /* downstream did not provide us with a buffer to fill, allocate one
+     * ourselves */
+    ret = bclass->alloc (src, offset, size, &res_buf);
+    if (G_UNLIKELY (ret != GST_FLOW_OK))
+      goto alloc_failed;
+  } else {
+    res_buf = *buffer;
+  }
 
   if (G_LIKELY (size > 0)) {
     /* only call fill when there is a size */
-    ret = bclass->fill (src, offset, size, *buffer);
+    ret = bclass->fill (src, offset, size, res_buf);
     if (G_UNLIKELY (ret != GST_FLOW_OK))
       goto not_ok;
   }
 
+  *buffer = res_buf;
+
   return GST_FLOW_OK;
 
   /* ERRORS */
@@ -1343,7 +1424,8 @@
   {
     GST_DEBUG_OBJECT (src, "fill returned %d (%s)", ret,
         gst_flow_get_name (ret));
-    gst_buffer_unref (*buffer);
+    if (*buffer == NULL)
+      gst_buffer_unref (res_buf);
     return ret;
   }
 }
@@ -1579,25 +1661,6 @@
   return FALSE;
 }
 
-static const GstQueryType *
-gst_base_src_get_query_types (GstElement * element)
-{
-  static const GstQueryType query_types[] = {
-    GST_QUERY_DURATION,
-    GST_QUERY_POSITION,
-    GST_QUERY_SEEKING,
-    GST_QUERY_SEGMENT,
-    GST_QUERY_FORMATS,
-    GST_QUERY_LATENCY,
-    GST_QUERY_JITTER,
-    GST_QUERY_RATE,
-    GST_QUERY_CONVERT,
-    0
-  };
-
-  return query_types;
-}
-
 /* all events send to this element directly. This is mainly done from the
  * application.
  */
@@ -1692,9 +1755,9 @@
       gboolean started;
 
       GST_OBJECT_LOCK (src->srcpad);
-      if (GST_PAD_ACTIVATE_MODE (src->srcpad) == GST_ACTIVATE_PULL)
+      if (GST_PAD_MODE (src->srcpad) == GST_PAD_MODE_PULL)
         goto wrong_mode;
-      started = GST_PAD_ACTIVATE_MODE (src->srcpad) == GST_ACTIVATE_PUSH;
+      started = GST_PAD_MODE (src->srcpad) == GST_PAD_MODE_PUSH;
       GST_OBJECT_UNLOCK (src->srcpad);
 
       if (started) {
@@ -1817,6 +1880,12 @@
       result = TRUE;
       break;
     }
+    case GST_EVENT_RECONFIGURE:
+      result = TRUE;
+      break;
+    case GST_EVENT_LATENCY:
+      result = TRUE;
+      break;
     default:
       result = FALSE;
       break;
@@ -1832,18 +1901,13 @@
 }
 
 static gboolean
-gst_base_src_event_handler (GstPad * pad, GstEvent * event)
+gst_base_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstBaseSrc *src;
   GstBaseSrcClass *bclass;
   gboolean result = FALSE;
 
-  src = GST_BASE_SRC (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (src == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
-
+  src = GST_BASE_SRC (parent);
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
   if (bclass->event) {
@@ -1853,7 +1917,6 @@
 
 done:
   gst_event_unref (event);
-  gst_object_unref (src);
 
   return result;
 
@@ -2185,6 +2248,7 @@
   GstFlowReturn ret;
   GstBaseSrcClass *bclass;
   GstClockReturn status;
+  GstBuffer *res_buf;
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
@@ -2197,7 +2261,8 @@
     }
   }
 
-  if (G_UNLIKELY (!GST_OBJECT_FLAG_IS_SET (src, GST_BASE_SRC_STARTED)))
+  if (G_UNLIKELY (!GST_BASE_SRC_IS_STARTED (src)
+          && !GST_BASE_SRC_IS_STARTING (src)))
     goto not_started;
 
   if (G_UNLIKELY (!bclass->create))
@@ -2229,15 +2294,17 @@
       "calling create offset %" G_GUINT64_FORMAT " length %u, time %"
       G_GINT64_FORMAT, offset, length, src->segment.time);
 
-  ret = bclass->create (src, offset, length, buf);
+  res_buf = *buf;
+
+  ret = bclass->create (src, offset, length, &res_buf);
 
   /* The create function could be unlocked because we have a pending EOS. It's
    * possible that we have a valid buffer from create that we need to
    * discard when the create function returned _OK. */
   if (G_UNLIKELY (g_atomic_int_get (&src->priv->pending_eos))) {
     if (ret == GST_FLOW_OK) {
-      gst_buffer_unref (*buf);
-      *buf = NULL;
+      if (*buf == NULL)
+        gst_buffer_unref (res_buf);
     }
     goto eos;
   }
@@ -2247,13 +2314,14 @@
 
   /* no timestamp set and we are at offset 0, we can timestamp with 0 */
   if (offset == 0 && src->segment.time == 0
-      && GST_BUFFER_TIMESTAMP (*buf) == -1 && !src->is_live) {
-    *buf = gst_buffer_make_writable (*buf);
-    GST_BUFFER_TIMESTAMP (*buf) = 0;
+      && GST_BUFFER_TIMESTAMP (res_buf) == -1 && !src->is_live) {
+    GST_DEBUG_OBJECT (src, "setting first timestamp to 0");
+    res_buf = gst_buffer_make_writable (res_buf);
+    GST_BUFFER_TIMESTAMP (res_buf) = 0;
   }
 
   /* now sync before pushing the buffer */
-  status = gst_base_src_do_sync (src, *buf);
+  status = gst_base_src_do_sync (src, res_buf);
 
   /* waiting for the clock could have made us flushing */
   if (G_UNLIKELY (src->priv->flushing))
@@ -2272,14 +2340,15 @@
       /* this case is triggered when we were waiting for the clock and
        * it got unlocked because we did a state change. In any case, get rid of
        * the buffer. */
-      gst_buffer_unref (*buf);
-      *buf = NULL;
+      if (*buf == NULL)
+        gst_buffer_unref (res_buf);
+
       if (!src->live_running) {
         /* We return WRONG_STATE when we are not running to stop the dataflow also
          * get rid of the produced buffer. */
         GST_DEBUG_OBJECT (src,
             "clock was unscheduled (%d), returning WRONG_STATE", status);
-        ret = GST_FLOW_WRONG_STATE;
+        ret = GST_FLOW_FLUSHING;
       } else {
         /* If we are running when this happens, we quickly switched between
          * pause and playing. We try to produce a new buffer */
@@ -2293,11 +2362,14 @@
       GST_ELEMENT_ERROR (src, CORE, CLOCK,
           (_("Internal clock error.")),
           ("clock returned unexpected return value %d", status));
-      gst_buffer_unref (*buf);
-      *buf = NULL;
+      if (*buf == NULL)
+        gst_buffer_unref (res_buf);
       ret = GST_FLOW_ERROR;
       break;
   }
+  if (G_LIKELY (ret == GST_FLOW_OK))
+    *buf = res_buf;
+
   return ret;
 
   /* ERROR */
@@ -2316,7 +2388,7 @@
 not_started:
   {
     GST_DEBUG_OBJECT (src, "getrange but not started");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 no_function:
   {
@@ -2327,35 +2399,35 @@
   {
     GST_DEBUG_OBJECT (src, "unexpected length %u (offset=%" G_GUINT64_FORMAT
         ", size=%" G_GINT64_FORMAT ")", length, offset, src->segment.duration);
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 reached_num_buffers:
   {
     GST_DEBUG_OBJECT (src, "sent all buffers");
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 flushing:
   {
     GST_DEBUG_OBJECT (src, "we are flushing");
-    gst_buffer_unref (*buf);
-    *buf = NULL;
-    return GST_FLOW_WRONG_STATE;
+    if (*buf == NULL)
+      gst_buffer_unref (res_buf);
+    return GST_FLOW_FLUSHING;
   }
 eos:
   {
     GST_DEBUG_OBJECT (src, "we are EOS");
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
 static GstFlowReturn
-gst_base_src_pad_get_range (GstPad * pad, guint64 offset, guint length,
-    GstBuffer ** buf)
+gst_base_src_getrange (GstPad * pad, GstObject * parent, guint64 offset,
+    guint length, GstBuffer ** buf)
 {
   GstBaseSrc *src;
   GstFlowReturn res;
 
-  src = GST_BASE_SRC_CAST (gst_object_ref (GST_OBJECT_PARENT (pad)));
+  src = GST_BASE_SRC_CAST (parent);
 
   GST_LIVE_LOCK (src);
   if (G_UNLIKELY (src->priv->flushing))
@@ -2366,15 +2438,13 @@
 done:
   GST_LIVE_UNLOCK (src);
 
-  gst_object_unref (src);
-
   return res;
 
   /* ERRORS */
 flushing:
   {
     GST_DEBUG_OBJECT (src, "we are flushing");
-    res = GST_FLOW_WRONG_STATE;
+    res = GST_FLOW_FLUSHING;
     goto done;
   }
 }
@@ -2383,13 +2453,23 @@
 gst_base_src_is_random_access (GstBaseSrc * src)
 {
   /* we need to start the basesrc to check random access */
-  if (!GST_OBJECT_FLAG_IS_SET (src, GST_BASE_SRC_STARTED)) {
+  if (!GST_BASE_SRC_IS_STARTED (src)) {
     GST_LOG_OBJECT (src, "doing start/stop to check get_range support");
-    if (G_LIKELY (gst_base_src_start (src)))
+    if (G_LIKELY (gst_base_src_start (src))) {
+      if (gst_base_src_start_wait (src) != GST_FLOW_OK)
+        goto start_failed;
       gst_base_src_stop (src);
+    }
   }
 
   return src->random_access;
+
+  /* ERRORS */
+start_failed:
+  {
+    GST_DEBUG_OBJECT (src, "failed to start");
+    return FALSE;
+  }
 }
 
 static void
@@ -2407,10 +2487,12 @@
 
   src = GST_BASE_SRC (GST_OBJECT_PARENT (pad));
 
+  gst_base_src_send_stream_start (src);
+
   /* check if we need to renegotiate */
   if (gst_pad_check_reconfigure (pad)) {
     if (!gst_base_src_negotiate (src))
-      GST_DEBUG_OBJECT (src, "Failed to renegotiate");
+      goto not_negotiated;
   }
 
   GST_LIVE_LOCK (src);
@@ -2543,6 +2625,7 @@
   }
 
   if (G_UNLIKELY (src->priv->discont)) {
+    GST_INFO_OBJECT (src, "marking pending DISCONT");
     buf = gst_buffer_make_writable (buf);
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
     src->priv->discont = FALSE;
@@ -2558,7 +2641,7 @@
 
   if (G_UNLIKELY (eos)) {
     GST_INFO_OBJECT (src, "pausing after end of segment");
-    ret = GST_FLOW_UNEXPECTED;
+    ret = GST_FLOW_EOS;
     goto pause;
   }
 
@@ -2566,11 +2649,17 @@
   return;
 
   /* special cases */
+not_negotiated:
+  {
+    GST_DEBUG_OBJECT (src, "Failed to renegotiate");
+    ret = GST_FLOW_NOT_NEGOTIATED;
+    goto pause;
+  }
 flushing:
   {
     GST_DEBUG_OBJECT (src, "we are flushing");
     GST_LIVE_UNLOCK (src);
-    ret = GST_FLOW_WRONG_STATE;
+    ret = GST_FLOW_FLUSHING;
     goto pause;
   }
 pause:
@@ -2581,7 +2670,7 @@
     GST_DEBUG_OBJECT (src, "pausing task, reason %s", reason);
     src->running = FALSE;
     gst_pad_pause_task (pad);
-    if (ret == GST_FLOW_UNEXPECTED) {
+    if (ret == GST_FLOW_EOS) {
       gboolean flag_segment;
       GstFormat format;
       gint64 position;
@@ -2603,7 +2692,7 @@
         gst_event_set_seqnum (event, src->priv->seqnum);
         gst_pad_push_event (pad, event);
       }
-    } else if (ret == GST_FLOW_NOT_LINKED || ret <= GST_FLOW_UNEXPECTED) {
+    } else if (ret == GST_FLOW_NOT_LINKED || ret <= GST_FLOW_EOS) {
       event = gst_event_new_eos ();
       gst_event_set_seqnum (event, src->priv->seqnum);
       /* for fatal errors we post an error message, post the error
@@ -2630,8 +2719,9 @@
 
 static gboolean
 gst_base_src_set_allocation (GstBaseSrc * basesrc, GstBufferPool * pool,
-    const GstAllocator * allocator, guint prefix, guint alignment)
+    GstAllocator * allocator, GstAllocationParams * params)
 {
+  GstAllocator *oldalloc;
   GstBufferPool *oldpool;
   GstBaseSrcPrivate *priv = basesrc->priv;
 
@@ -2645,10 +2735,13 @@
   oldpool = priv->pool;
   priv->pool = pool;
 
+  oldalloc = priv->allocator;
   priv->allocator = allocator;
 
-  priv->prefix = prefix;
-  priv->alignment = alignment;
+  if (params)
+    priv->params = *params;
+  else
+    gst_allocation_params_init (&priv->params);
   GST_OBJECT_UNLOCK (basesrc);
 
   if (oldpool) {
@@ -2659,6 +2752,9 @@
     }
     gst_object_unref (oldpool);
   }
+  if (oldalloc) {
+    gst_allocator_unref (oldalloc);
+  }
   return TRUE;
 
   /* ERRORS */
@@ -2695,8 +2791,9 @@
   gboolean result = TRUE;
   GstQuery *query;
   GstBufferPool *pool = NULL;
-  const GstAllocator *allocator = NULL;
-  guint size, min, max, prefix, alignment;
+  GstAllocator *allocator = NULL;
+  guint size, min, max;
+  GstAllocationParams params;
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
 
@@ -2714,37 +2811,41 @@
 
   GST_DEBUG_OBJECT (basesrc, "ALLOCATION (%d) params: %" GST_PTR_FORMAT, result,
       query);
-  gst_query_parse_allocation_params (query, &size, &min, &max, &prefix,
-      &alignment, &pool);
 
-  if (size == 0) {
-    const gchar *mem = NULL;
+  if (gst_query_get_n_allocation_params (query) > 0) {
+    /* try the allocator */
+    gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+  } else {
+    allocator = NULL;
+    gst_allocation_params_init (&params);
+  }
 
-    /* no size, we have variable size buffers */
-    if (gst_query_get_n_allocation_memories (query) > 0) {
-      mem = gst_query_parse_nth_allocation_memory (query, 0);
+  if (gst_query_get_n_allocation_pools (query) > 0) {
+    gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+
+    if (pool == NULL) {
+      /* no pool, just parameters, we can make our own */
+      GST_DEBUG_OBJECT (basesrc, "no pool, making new pool");
+      pool = gst_buffer_pool_new ();
     }
-    GST_DEBUG_OBJECT (basesrc, "0 size, getting allocator %s",
-        GST_STR_NULL (mem));
-    allocator = gst_allocator_find (mem);
-  } else if (pool == NULL) {
-    /* fixed size, we can use a bufferpool */
+  } else {
+    pool = NULL;
+    size = min = max = 0;
+  }
+
+  /* now configure */
+  if (pool) {
     GstStructure *config;
 
-    /* we did not get a pool, make one ourselves then */
-    pool = gst_buffer_pool_new ();
-    GST_DEBUG_OBJECT (basesrc, "no pool, making new pool");
-
     config = gst_buffer_pool_get_config (pool);
-    gst_buffer_pool_config_set (config, caps, size, min, max, prefix,
-        alignment);
+    gst_buffer_pool_config_set_params (config, caps, size, min, max);
+    gst_buffer_pool_config_set_allocator (config, allocator, &params);
     gst_buffer_pool_set_config (pool, config);
   }
 
-  gst_query_unref (query);
+  result = gst_base_src_set_allocation (basesrc, pool, allocator, &params);
 
-  result =
-      gst_base_src_set_allocation (basesrc, pool, allocator, prefix, alignment);
+  gst_query_unref (query);
 
   return result;
 
@@ -2764,7 +2865,7 @@
   gboolean result = FALSE;
 
   /* first see what is possible on our source pad */
-  thiscaps = gst_pad_get_caps (GST_BASE_SRC_PAD (basesrc), NULL);
+  thiscaps = gst_pad_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
   GST_DEBUG_OBJECT (basesrc, "caps of src: %" GST_PTR_FORMAT, thiscaps);
   /* nothing or anything is allowed, we're done */
   if (thiscaps == NULL || gst_caps_is_any (thiscaps))
@@ -2774,7 +2875,7 @@
     goto no_caps;
 
   /* get the peer caps */
-  peercaps = gst_pad_peer_get_caps (GST_BASE_SRC_PAD (basesrc), thiscaps);
+  peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), thiscaps);
   GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps);
   if (peercaps) {
     /* The result is already a subset of our caps */
@@ -2785,11 +2886,6 @@
     caps = thiscaps;
   }
   if (caps && !gst_caps_is_empty (caps)) {
-    caps = gst_caps_make_writable (caps);
-
-    /* take first (and best, since they are sorted) possibility */
-    gst_caps_truncate (caps);
-
     /* now fixate */
     GST_DEBUG_OBJECT (basesrc, "have caps: %" GST_PTR_FORMAT, caps);
     if (gst_caps_is_any (caps)) {
@@ -2798,7 +2894,7 @@
        * nego is not needed */
       result = TRUE;
     } else {
-      gst_pad_fixate_caps (GST_BASE_SRC_PAD (basesrc), caps);
+      caps = gst_base_src_fixate (basesrc, caps);
       GST_DEBUG_OBJECT (basesrc, "fixated to: %" GST_PTR_FORMAT, caps);
       if (gst_caps_is_fixed (caps)) {
         /* yay, fixed caps, use those then, it's possible that the subclass does
@@ -2808,6 +2904,8 @@
     }
     gst_caps_unref (caps);
   } else {
+    if (caps)
+      gst_caps_unref (caps);
     GST_DEBUG_OBJECT (basesrc, "no common caps");
   }
   return result;
@@ -2851,6 +2949,9 @@
     caps = gst_pad_get_current_caps (basesrc->srcpad);
 
     result = gst_base_src_prepare_allocation (basesrc, caps);
+
+    if (caps)
+      gst_caps_unref (caps);
   }
   return result;
 }
@@ -2859,24 +2960,23 @@
 gst_base_src_start (GstBaseSrc * basesrc)
 {
   GstBaseSrcClass *bclass;
-  gboolean result, have_size;
-  guint64 size;
-  gboolean seekable;
-  GstFormat format;
+  gboolean result;
 
-  if (GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_STARTED))
-    return TRUE;
+  GST_LIVE_LOCK (basesrc);
+  if (GST_BASE_SRC_IS_STARTING (basesrc))
+    goto was_starting;
+  if (GST_BASE_SRC_IS_STARTED (basesrc))
+    goto was_started;
 
-  GST_DEBUG_OBJECT (basesrc, "starting source");
-
+  basesrc->priv->start_result = GST_FLOW_FLUSHING;
+  GST_OBJECT_FLAG_SET (basesrc, GST_BASE_SRC_FLAG_STARTING);
   basesrc->num_buffers_left = basesrc->num_buffers;
-
+  basesrc->running = FALSE;
+  basesrc->priv->segment_pending = FALSE;
   GST_OBJECT_LOCK (basesrc);
   gst_segment_init (&basesrc->segment, basesrc->segment.format);
   GST_OBJECT_UNLOCK (basesrc);
-
-  basesrc->running = FALSE;
-  basesrc->priv->segment_pending = FALSE;
+  GST_LIVE_UNLOCK (basesrc);
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
   if (bclass->start)
@@ -2887,14 +2987,65 @@
   if (!result)
     goto could_not_start;
 
-  GST_OBJECT_FLAG_SET (basesrc, GST_BASE_SRC_STARTED);
+  if (!gst_base_src_is_async (basesrc))
+    gst_base_src_start_complete (basesrc, GST_FLOW_OK);
 
+  return result;
+
+  /* ERROR */
+was_starting:
+  {
+    GST_DEBUG_OBJECT (basesrc, "was starting");
+    GST_LIVE_UNLOCK (basesrc);
+    return TRUE;
+  }
+was_started:
+  {
+    GST_DEBUG_OBJECT (basesrc, "was started");
+    GST_LIVE_UNLOCK (basesrc);
+    return TRUE;
+  }
+could_not_start:
+  {
+    GST_DEBUG_OBJECT (basesrc, "could not start");
+    /* subclass is supposed to post a message. We don't have to call _stop. */
+    gst_base_src_start_complete (basesrc, GST_FLOW_ERROR);
+    return FALSE;
+  }
+}
+
+/**
+ * gst_base_src_start_complete:
+ * @src: base source instance
+ * @ret: a #GstFlowReturn
+ *
+ * Complete an asynchronous start operation. When the subclass overrides the
+ * start method, it should call gst_base_src_start_complete() when the start
+ * operation completes either from the same thread or from an asynchronous
+ * helper thread.
+ */
+void
+gst_base_src_start_complete (GstBaseSrc * basesrc, GstFlowReturn ret)
+{
+  gboolean have_size;
+  guint64 size;
+  gboolean seekable;
+  GstFormat format;
+  GstPadMode mode;
+  GstEvent *event;
+
+  if (ret != GST_FLOW_OK)
+    goto error;
+
+  GST_DEBUG_OBJECT (basesrc, "starting source");
   format = basesrc->segment.format;
 
   /* figure out the size */
   have_size = FALSE;
   size = -1;
   if (format == GST_FORMAT_BYTES) {
+    GstBaseSrcClass *bclass = GST_BASE_SRC_GET_CLASS (basesrc);
+
     if (bclass->get_size) {
       if (!(have_size = bclass->get_size (basesrc, &size)))
         size = -1;
@@ -2920,16 +3071,107 @@
 
   GST_DEBUG_OBJECT (basesrc, "is random_access: %d", basesrc->random_access);
 
+  /* stop flushing now but for live sources, still block in the LIVE lock when
+   * we are not yet PLAYING */
+  gst_base_src_set_flushing (basesrc, FALSE, FALSE, FALSE, NULL);
+
   gst_pad_mark_reconfigure (GST_BASE_SRC_PAD (basesrc));
 
-  return TRUE;
+  GST_OBJECT_LOCK (basesrc->srcpad);
+  mode = GST_PAD_MODE (basesrc->srcpad);
+  GST_OBJECT_UNLOCK (basesrc->srcpad);
 
-  /* ERROR */
-could_not_start:
+  if (mode == GST_PAD_MODE_PUSH) {
+    /* do initial seek, which will start the task */
+    GST_OBJECT_LOCK (basesrc);
+    event = basesrc->pending_seek;
+    basesrc->pending_seek = NULL;
+    GST_OBJECT_UNLOCK (basesrc);
+
+    /* no need to unlock anything, the task is certainly
+     * not running here. The perform seek code will start the task when
+     * finished. */
+    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event, FALSE)))
+      goto seek_failed;
+
+    if (event)
+      gst_event_unref (event);
+  } else {
+    /* if not random_access, we cannot operate in pull mode for now */
+    if (G_UNLIKELY (!basesrc->random_access))
+      goto no_get_range;
+  }
+
+  GST_LIVE_LOCK (basesrc);
+  GST_OBJECT_FLAG_SET (basesrc, GST_BASE_SRC_FLAG_STARTED);
+  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTING);
+  basesrc->priv->start_result = ret;
+  GST_LIVE_SIGNAL (basesrc);
+  GST_LIVE_UNLOCK (basesrc);
+
+  return;
+
+seek_failed:
   {
-    GST_DEBUG_OBJECT (basesrc, "could not start");
-    /* subclass is supposed to post a message. We don't have to call _stop. */
-    return FALSE;
+    GST_ERROR_OBJECT (basesrc, "Failed to perform initial seek");
+    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+    if (event)
+      gst_event_unref (event);
+    ret = GST_FLOW_ERROR;
+    goto error;
+  }
+no_get_range:
+  {
+    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+    GST_ERROR_OBJECT (basesrc, "Cannot operate in pull mode, stopping");
+    ret = GST_FLOW_ERROR;
+    goto error;
+  }
+error:
+  {
+    GST_LIVE_LOCK (basesrc);
+    basesrc->priv->start_result = ret;
+    GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTING);
+    GST_LIVE_SIGNAL (basesrc);
+    GST_LIVE_UNLOCK (basesrc);
+    return;
+  }
+}
+
+/**
+ * gst_base_src_start_wait:
+ * @src: base source instance
+ * @ret: a #GstFlowReturn
+ *
+ * Wait until the start operation completes.
+ *
+ * Returns: a #GstFlowReturn.
+ */
+GstFlowReturn
+gst_base_src_start_wait (GstBaseSrc * basesrc)
+{
+  GstFlowReturn result;
+
+  GST_LIVE_LOCK (basesrc);
+  if (G_UNLIKELY (basesrc->priv->flushing))
+    goto flushing;
+
+  while (GST_BASE_SRC_IS_STARTING (basesrc)) {
+    GST_LIVE_WAIT (basesrc);
+    if (G_UNLIKELY (basesrc->priv->flushing))
+      goto flushing;
+  }
+  result = basesrc->priv->start_result;
+  GST_LIVE_UNLOCK (basesrc);
+
+  return result;
+
+  /* ERRORS */
+flushing:
+  {
+    GST_DEBUG_OBJECT (basesrc, "we are flushing");
+    GST_LIVE_UNLOCK (basesrc);
+    return GST_FLOW_FLUSHING;
   }
 }
 
@@ -2939,21 +3181,37 @@
   GstBaseSrcClass *bclass;
   gboolean result = TRUE;
 
-  if (!GST_OBJECT_FLAG_IS_SET (basesrc, GST_BASE_SRC_STARTED))
-    return TRUE;
-
   GST_DEBUG_OBJECT (basesrc, "stopping source");
 
+  /* flush all */
+  gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+  /* stop the task */
+  gst_pad_stop_task (basesrc->srcpad);
+
+  GST_LIVE_LOCK (basesrc);
+  if (!GST_BASE_SRC_IS_STARTED (basesrc) && !GST_BASE_SRC_IS_STARTING (basesrc))
+    goto was_stopped;
+
+  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTING);
+  GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_FLAG_STARTED);
+  basesrc->priv->start_result = GST_FLOW_FLUSHING;
+  GST_LIVE_SIGNAL (basesrc);
+  GST_LIVE_UNLOCK (basesrc);
+
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
   if (bclass->stop)
     result = bclass->stop (basesrc);
 
-  gst_base_src_set_allocation (basesrc, NULL, NULL, 0, 0);
-
-  if (result)
-    GST_OBJECT_FLAG_UNSET (basesrc, GST_BASE_SRC_STARTED);
+  gst_base_src_set_allocation (basesrc, NULL, NULL, NULL);
 
   return result;
+
+was_stopped:
+  {
+    GST_DEBUG_OBJECT (basesrc, "was started");
+    GST_LIVE_UNLOCK (basesrc);
+    return TRUE;
+  }
 }
 
 /* start or stop flushing dataprocessing
@@ -3063,7 +3321,7 @@
     /* have to restart the task in case it stopped because of the unlock when
      * we went to PAUSED. Only do this if we operating in push mode. */
     GST_OBJECT_LOCK (basesrc->srcpad);
-    start = (GST_PAD_ACTIVATE_MODE (basesrc->srcpad) == GST_ACTIVATE_PUSH);
+    start = (GST_PAD_MODE (basesrc->srcpad) == GST_PAD_MODE_PUSH);
     GST_OBJECT_UNLOCK (basesrc->srcpad);
     if (start)
       gst_pad_start_task (basesrc->srcpad, (GstTaskFunction) gst_base_src_loop,
@@ -3077,12 +3335,11 @@
 }
 
 static gboolean
-gst_base_src_activate_push (GstPad * pad, gboolean active)
+gst_base_src_activate_push (GstPad * pad, GstObject * parent, gboolean active)
 {
   GstBaseSrc *basesrc;
-  GstEvent *event;
 
-  basesrc = GST_BASE_SRC (GST_OBJECT_PARENT (pad));
+  basesrc = GST_BASE_SRC (parent);
 
   /* prepare subclass first */
   if (active) {
@@ -3093,30 +3350,8 @@
 
     if (G_UNLIKELY (!gst_base_src_start (basesrc)))
       goto error_start;
-
-    basesrc->priv->discont = TRUE;
-    gst_base_src_set_flushing (basesrc, FALSE, FALSE, FALSE, NULL);
-
-    /* do initial seek, which will start the task */
-    GST_OBJECT_LOCK (basesrc);
-    event = basesrc->pending_seek;
-    basesrc->pending_seek = NULL;
-    GST_OBJECT_UNLOCK (basesrc);
-
-    /* no need to unlock anything, the task is certainly
-     * not running here. The perform seek code will start the task when
-     * finished. */
-    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event, FALSE)))
-      goto seek_failed;
-
-    if (event)
-      gst_event_unref (event);
   } else {
     GST_DEBUG_OBJECT (basesrc, "Deactivating in push mode");
-    /* flush all */
-    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
-    /* stop the task */
-    gst_pad_stop_task (pad);
     /* now we can stop the source */
     if (G_UNLIKELY (!gst_base_src_stop (basesrc)))
       goto error_stop;
@@ -3134,19 +3369,6 @@
     GST_WARNING_OBJECT (basesrc, "Failed to start in push mode");
     return FALSE;
   }
-seek_failed:
-  {
-    GST_ERROR_OBJECT (basesrc, "Failed to perform initial seek");
-    /* flush all */
-    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
-    /* stop the task */
-    gst_pad_stop_task (pad);
-    /* Stop the basesrc */
-    gst_base_src_stop (basesrc);
-    if (event)
-      gst_event_unref (event);
-    return FALSE;
-  }
 error_stop:
   {
     GST_DEBUG_OBJECT (basesrc, "Failed to stop in push mode");
@@ -3155,30 +3377,19 @@
 }
 
 static gboolean
-gst_base_src_activate_pull (GstPad * pad, gboolean active)
+gst_base_src_activate_pull (GstPad * pad, GstObject * parent, gboolean active)
 {
   GstBaseSrc *basesrc;
 
-  basesrc = GST_BASE_SRC (GST_OBJECT_PARENT (pad));
+  basesrc = GST_BASE_SRC (parent);
 
   /* prepare subclass first */
   if (active) {
     GST_DEBUG_OBJECT (basesrc, "Activating in pull mode");
     if (G_UNLIKELY (!gst_base_src_start (basesrc)))
       goto error_start;
-
-    /* if not random_access, we cannot operate in pull mode for now */
-    if (G_UNLIKELY (!gst_base_src_is_random_access (basesrc)))
-      goto no_get_range;
-
-    /* stop flushing now but for live sources, still block in the LIVE lock when
-     * we are not yet PLAYING */
-    gst_base_src_set_flushing (basesrc, FALSE, FALSE, FALSE, NULL);
   } else {
     GST_DEBUG_OBJECT (basesrc, "Deactivating in pull mode");
-    /* flush all, there is no task to stop */
-    gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
-
     if (G_UNLIKELY (!gst_base_src_stop (basesrc)))
       goto error_stop;
   }
@@ -3190,12 +3401,6 @@
     GST_ERROR_OBJECT (basesrc, "Failed to start in pull mode");
     return FALSE;
   }
-no_get_range:
-  {
-    GST_ERROR_OBJECT (basesrc, "Cannot operate in pull mode, stopping");
-    gst_base_src_stop (basesrc);
-    return FALSE;
-  }
 error_stop:
   {
     GST_ERROR_OBJECT (basesrc, "Failed to stop in pull mode");
@@ -3203,6 +3408,28 @@
   }
 }
 
+static gboolean
+gst_base_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean res;
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      res = gst_base_src_activate_pull (pad, parent, active);
+      break;
+    case GST_PAD_MODE_PUSH:
+      res = gst_base_src_activate_push (pad, parent, active);
+      break;
+    default:
+      GST_LOG_OBJECT (pad, "unknown activation mode %d", mode);
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
+
 static GstStateChangeReturn
 gst_base_src_change_state (GstElement * element, GstStateChange transition)
 {
@@ -3216,6 +3443,7 @@
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
+      basesrc->priv->stream_start_pending = TRUE;
       no_preroll = gst_base_src_is_live (basesrc);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -3245,13 +3473,11 @@
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
     {
-      GstEvent **event_p;
-
       /* we don't need to unblock anything here, the pad deactivation code
        * already did this */
       g_atomic_int_set (&basesrc->priv->pending_eos, FALSE);
-      event_p = &basesrc->pending_seek;
-      gst_event_replace (event_p, NULL);
+      gst_event_replace (&basesrc->pending_seek, NULL);
+      basesrc->priv->stream_start_pending = FALSE;
       break;
     }
     case GST_STATE_CHANGE_READY_TO_NULL:
diff --git a/libs/gst/base/gstbasesrc.h b/libs/gst/base/gstbasesrc.h
index 0624096..dd15432 100644
--- a/libs/gst/base/gstbasesrc.h
+++ b/libs/gst/base/gstbasesrc.h
@@ -38,17 +38,22 @@
 
 /**
  * GstBaseSrcFlags:
- * @GST_BASE_SRC_STARTED: has source been started
+ * @GST_BASE_SRC_FLAG_STARTING: has source is starting
+ * @GST_BASE_SRC_FLAG_STARTED: has source been started
  * @GST_BASE_SRC_FLAG_LAST: offset to define more flags
  *
  * The #GstElement flags that a basesrc element may have.
  */
 typedef enum {
-  GST_BASE_SRC_STARTED           = (GST_ELEMENT_FLAG_LAST << 0),
+  GST_BASE_SRC_FLAG_STARTING     = (GST_ELEMENT_FLAG_LAST << 0),
+  GST_BASE_SRC_FLAG_STARTED      = (GST_ELEMENT_FLAG_LAST << 1),
   /* padding */
-  GST_BASE_SRC_FLAG_LAST         = (GST_ELEMENT_FLAG_LAST << 2)
+  GST_BASE_SRC_FLAG_LAST         = (GST_ELEMENT_FLAG_LAST << 6)
 } GstBaseSrcFlags;
 
+#define GST_BASE_SRC_IS_STARTING(obj) GST_OBJECT_FLAG_IS_SET ((obj), GST_BASE_SRC_FLAG_STARTING)
+#define GST_BASE_SRC_IS_STARTED(obj)  GST_OBJECT_FLAG_IS_SET ((obj), GST_BASE_SRC_FLAG_STARTED)
+
 typedef struct _GstBaseSrc GstBaseSrc;
 typedef struct _GstBaseSrcClass GstBaseSrcClass;
 typedef struct _GstBaseSrcPrivate GstBaseSrcPrivate;
@@ -75,8 +80,8 @@
 
   /* available to subclass implementations */
   /* MT-protected (with LIVE_LOCK) */
-  GMutex        *live_lock;
-  GCond         *live_cond;
+  GMutex         live_lock;
+  GCond          live_cond;
   gboolean       is_live;
   gboolean       live_running;
 
@@ -115,7 +120,9 @@
  * @set_caps: Notify subclass of changed output caps
  * @decide_allocation: configure the allocation query
  * @start: Start processing. Subclasses should open resources and prepare
- *    to produce data.
+ *    to produce data. Implementation should call gst_base_src_start_complete()
+ *    when the operation completes, either from the current thread or any other
+ *    thread that finishes the start operation asynchronously.
  * @stop: Stop processing. Subclasses should use this to close resources.
  * @get_times: Given a buffer, return the start and stop time when it
  *    should be pushed out. The base class will sync on the clock using
@@ -131,8 +138,8 @@
  * @do_seek: Perform seeking on the resource to the indicated segment.
  * @unlock: Unlock any pending access to the resource. Subclasses should
  *    unblock any blocked function ASAP. In particular, any create() function in
- *    progress should be unblocked and should return GST_FLOW_WRONG_STATE. Any
- *    future @create<!-- -->() function call should also return GST_FLOW_WRONG_STATE
+ *    progress should be unblocked and should return GST_FLOW_FLUSHING. Any
+ *    future @create<!-- -->() function call should also return GST_FLOW_FLUSHING
  *    until the @unlock_stop<!-- -->() function has been called.
  * @unlock_stop: Clear the previous unlock request. Subclasses should clear
  *    any state they set during unlock(), such as clearing command queues.
@@ -142,7 +149,7 @@
  *   When the subclass returns GST_FLOW_OK, it MUST return a buffer of the
  *   requested size unless fewer bytes are available because an EOS condition
  *   is near. No buffer should be returned when the return value is different
- *   from GST_FLOW_OK. A return value of GST_FLOW_UNEXPECTED signifies that the
+ *   from GST_FLOW_OK. A return value of GST_FLOW_EOS signifies that the
  *   end of stream is reached. The default implementation will call @alloc and
  *   then call @fill.
  * @alloc: Ask the subclass to allocate a buffer with for offset and size. The
@@ -165,7 +172,7 @@
   /* decide on caps */
   gboolean      (*negotiate)    (GstBaseSrc *src);
   /* called if, in negotiation, caps need fixating */
-  void          (*fixate)       (GstBaseSrc *src, GstCaps *caps);
+  GstCaps *     (*fixate)       (GstBaseSrc *src, GstCaps *caps);
   /* notify the subclass of new caps */
   gboolean      (*set_caps)     (GstBaseSrc *src, GstCaps *caps);
 
@@ -233,6 +240,12 @@
 
 void            gst_base_src_set_dynamic_size (GstBaseSrc * src, gboolean dynamic);
 
+void            gst_base_src_set_async        (GstBaseSrc *src, gboolean async);
+gboolean        gst_base_src_is_async         (GstBaseSrc *src);
+
+void            gst_base_src_start_complete   (GstBaseSrc * basesrc, GstFlowReturn ret);
+GstFlowReturn   gst_base_src_start_wait       (GstBaseSrc * basesrc);
+
 gboolean        gst_base_src_query_latency    (GstBaseSrc *src, gboolean * live,
                                                GstClockTime * min_latency,
                                                GstClockTime * max_latency);
diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
index 287b39f..b5e30e1 100644
--- a/libs/gst/base/gstbasetransform.c
+++ b/libs/gst/base/gstbasetransform.c
@@ -207,8 +207,8 @@
 
 #include "../../../gst/gst_private.h"
 #include "../../../gst/gst-i18n-lib.h"
+#include "../../../gst/glib-compat-private.h"
 #include "gstbasetransform.h"
-#include <gst/gstmarshal.h>
 
 GST_DEBUG_CATEGORY_STATIC (gst_base_transform_debug);
 #define GST_CAT_DEFAULT gst_base_transform_debug
@@ -233,6 +233,18 @@
 
 struct _GstBaseTransformPrivate
 {
+  /* Set by sub-class */
+  gboolean passthrough;
+  gboolean always_in_place;
+
+  GstCaps *cache_caps1;
+  gsize cache_caps1_size;
+  GstCaps *cache_caps2;
+  gsize cache_caps2_size;
+  gboolean have_same_caps;
+
+  gboolean negotiated;
+
   /* QoS *//* with LOCK */
   gboolean qos_enabled;
   gdouble proportion;
@@ -240,7 +252,7 @@
   /* previous buffer had a discont */
   gboolean discont;
 
-  GstActivateMode pad_mode;
+  GstPadMode pad_mode;
 
   gboolean gap_aware;
 
@@ -253,9 +265,10 @@
   GstClockTime position_out;
 
   GstBufferPool *pool;
-  const GstAllocator *allocator;
-  guint prefix;
-  guint alignment;
+  gboolean pool_active;
+  GstAllocator *allocator;
+  GstAllocationParams params;
+  GstQuery *query;
 };
 
 
@@ -298,35 +311,48 @@
     const GValue * value, GParamSpec * pspec);
 static void gst_base_transform_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
-static gboolean gst_base_transform_src_activate_pull (GstPad * pad,
-    gboolean active);
-static gboolean gst_base_transform_sink_activate_push (GstPad * pad,
-    gboolean active);
+static gboolean gst_base_transform_src_activate_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
+static gboolean gst_base_transform_sink_activate_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
 static gboolean gst_base_transform_activate (GstBaseTransform * trans,
     gboolean active);
 static gboolean gst_base_transform_get_unit_size (GstBaseTransform * trans,
     GstCaps * caps, gsize * size);
 
-static gboolean gst_base_transform_src_event (GstPad * pad, GstEvent * event);
+static gboolean gst_base_transform_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
 static gboolean gst_base_transform_src_eventfunc (GstBaseTransform * trans,
     GstEvent * event);
-static gboolean gst_base_transform_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_base_transform_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
 static gboolean gst_base_transform_sink_eventfunc (GstBaseTransform * trans,
     GstEvent * event);
-static GstFlowReturn gst_base_transform_getrange (GstPad * pad, guint64 offset,
-    guint length, GstBuffer ** buffer);
-static GstFlowReturn gst_base_transform_chain (GstPad * pad,
+static GstFlowReturn gst_base_transform_getrange (GstPad * pad,
+    GstObject * parent, guint64 offset, guint length, GstBuffer ** buffer);
+static GstFlowReturn gst_base_transform_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer);
-static GstCaps *gst_base_transform_getcaps (GstPad * pad, GstCaps * filter);
-static gboolean gst_base_transform_acceptcaps (GstPad * pad, GstCaps * caps);
+static GstCaps *gst_base_transform_default_transform_caps (GstBaseTransform *
+    trans, GstPadDirection direction, GstCaps * caps, GstCaps * filter);
+static GstCaps *gst_base_transform_default_fixate_caps (GstBaseTransform *
+    trans, GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
+static GstCaps *gst_base_transform_query_caps (GstBaseTransform * trans,
+    GstPad * pad, GstCaps * filter);
 static gboolean gst_base_transform_acceptcaps_default (GstBaseTransform * trans,
     GstPadDirection direction, GstCaps * caps);
 static gboolean gst_base_transform_setcaps (GstBaseTransform * trans,
     GstPad * pad, GstCaps * caps);
-static gboolean gst_base_transform_query (GstPad * pad, GstQuery * query);
+static gboolean gst_base_transform_default_decide_allocation (GstBaseTransform
+    * trans, GstQuery * query);
+static gboolean gst_base_transform_default_propose_allocation (GstBaseTransform
+    * trans, GstQuery * decide_query, GstQuery * query);
+static gboolean gst_base_transform_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 static gboolean gst_base_transform_default_query (GstBaseTransform * trans,
     GstPadDirection direction, GstQuery * query);
-static const GstQueryType *gst_base_transform_query_type (GstPad * pad);
+static gboolean gst_base_transform_default_transform_size (GstBaseTransform *
+    trans, GstPadDirection direction, GstCaps * caps, gsize size,
+    GstCaps * othercaps, gsize * othersize);
 
 static GstFlowReturn default_prepare_output_buffer (GstBaseTransform * trans,
     GstBuffer * inbuf, GstBuffer ** outbuf);
@@ -339,12 +365,6 @@
 static void
 gst_base_transform_finalize (GObject * object)
 {
-  GstBaseTransform *trans;
-
-  trans = GST_BASE_TRANSFORM (object);
-
-  g_mutex_free (trans->transform_lock);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -374,14 +394,27 @@
   gobject_class->finalize = gst_base_transform_finalize;
 
   klass->passthrough_on_same_caps = FALSE;
-  klass->sink_event = GST_DEBUG_FUNCPTR (gst_base_transform_sink_eventfunc);
-  klass->src_event = GST_DEBUG_FUNCPTR (gst_base_transform_src_eventfunc);
+  klass->transform_ip_on_passthrough = TRUE;
+
+  klass->transform_caps =
+      GST_DEBUG_FUNCPTR (gst_base_transform_default_transform_caps);
+  klass->fixate_caps =
+      GST_DEBUG_FUNCPTR (gst_base_transform_default_fixate_caps);
   klass->accept_caps =
       GST_DEBUG_FUNCPTR (gst_base_transform_acceptcaps_default);
+  klass->query = GST_DEBUG_FUNCPTR (gst_base_transform_default_query);
+  klass->decide_allocation =
+      GST_DEBUG_FUNCPTR (gst_base_transform_default_decide_allocation);
+  klass->propose_allocation =
+      GST_DEBUG_FUNCPTR (gst_base_transform_default_propose_allocation);
+  klass->transform_size =
+      GST_DEBUG_FUNCPTR (gst_base_transform_default_transform_size);
+
+  klass->sink_event = GST_DEBUG_FUNCPTR (gst_base_transform_sink_eventfunc);
+  klass->src_event = GST_DEBUG_FUNCPTR (gst_base_transform_src_eventfunc);
   klass->prepare_output_buffer =
       GST_DEBUG_FUNCPTR (default_prepare_output_buffer);
   klass->copy_metadata = GST_DEBUG_FUNCPTR (default_copy_metadata);
-  klass->query = GST_DEBUG_FUNCPTR (gst_base_transform_default_query);
 }
 
 static void
@@ -389,72 +422,76 @@
     GstBaseTransformClass * bclass)
 {
   GstPadTemplate *pad_template;
+  GstBaseTransformPrivate *priv;
 
   GST_DEBUG ("gst_base_transform_init");
 
-  trans->priv = GST_BASE_TRANSFORM_GET_PRIVATE (trans);
+  priv = trans->priv = GST_BASE_TRANSFORM_GET_PRIVATE (trans);
 
   pad_template =
       gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "sink");
   g_return_if_fail (pad_template != NULL);
   trans->sinkpad = gst_pad_new_from_template (pad_template, "sink");
-  gst_pad_set_getcaps_function (trans->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_getcaps));
-  gst_pad_set_acceptcaps_function (trans->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_acceptcaps));
   gst_pad_set_event_function (trans->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_sink_event));
   gst_pad_set_chain_function (trans->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_chain));
-  gst_pad_set_activatepush_function (trans->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_sink_activate_push));
+  gst_pad_set_activatemode_function (trans->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_base_transform_sink_activate_mode));
   gst_pad_set_query_function (trans->sinkpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_query));
-  gst_pad_set_query_type_function (trans->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_query_type));
   gst_element_add_pad (GST_ELEMENT (trans), trans->sinkpad);
 
   pad_template =
       gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
   g_return_if_fail (pad_template != NULL);
   trans->srcpad = gst_pad_new_from_template (pad_template, "src");
-  gst_pad_set_getcaps_function (trans->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_getcaps));
-  gst_pad_set_acceptcaps_function (trans->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_acceptcaps));
   gst_pad_set_event_function (trans->srcpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_src_event));
   gst_pad_set_getrange_function (trans->srcpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_getrange));
-  gst_pad_set_activatepull_function (trans->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_src_activate_pull));
+  gst_pad_set_activatemode_function (trans->srcpad,
+      GST_DEBUG_FUNCPTR (gst_base_transform_src_activate_mode));
   gst_pad_set_query_function (trans->srcpad,
       GST_DEBUG_FUNCPTR (gst_base_transform_query));
-  gst_pad_set_query_type_function (trans->srcpad,
-      GST_DEBUG_FUNCPTR (gst_base_transform_query_type));
   gst_element_add_pad (GST_ELEMENT (trans), trans->srcpad);
 
-  trans->transform_lock = g_mutex_new ();
-  trans->priv->qos_enabled = DEFAULT_PROP_QOS;
-  trans->cache_caps1 = NULL;
-  trans->cache_caps2 = NULL;
-  trans->priv->pad_mode = GST_ACTIVATE_NONE;
-  trans->priv->gap_aware = FALSE;
+  priv->qos_enabled = DEFAULT_PROP_QOS;
+  priv->cache_caps1 = NULL;
+  priv->cache_caps2 = NULL;
+  priv->pad_mode = GST_PAD_MODE_NONE;
+  priv->gap_aware = FALSE;
 
-  trans->passthrough = FALSE;
+  priv->passthrough = FALSE;
   if (bclass->transform == NULL) {
     /* If no transform function, always_in_place is TRUE */
     GST_DEBUG_OBJECT (trans, "setting in_place TRUE");
-    trans->always_in_place = TRUE;
+    priv->always_in_place = TRUE;
 
     if (bclass->transform_ip == NULL) {
       GST_DEBUG_OBJECT (trans, "setting passthrough TRUE");
-      trans->passthrough = TRUE;
+      priv->passthrough = TRUE;
     }
   }
 
-  trans->priv->processed = 0;
-  trans->priv->dropped = 0;
+  priv->processed = 0;
+  priv->dropped = 0;
+}
+
+static GstCaps *
+gst_base_transform_default_transform_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps, GstCaps * filter)
+{
+  GstCaps *ret;
+
+  GST_DEBUG_OBJECT (trans, "identity from: %" GST_PTR_FORMAT, caps);
+  /* no transform function, use the identity transform */
+  if (filter) {
+    ret = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+  } else {
+    ret = gst_caps_ref (caps);
+  }
+  return ret;
 }
 
 /* given @caps on the src or sink pad (given by @direction)
@@ -466,7 +503,7 @@
 gst_base_transform_transform_caps (GstBaseTransform * trans,
     GstPadDirection direction, GstCaps * caps, GstCaps * filter)
 {
-  GstCaps *ret;
+  GstCaps *ret = NULL;
   GstBaseTransformClass *klass;
 
   if (caps == NULL)
@@ -476,7 +513,6 @@
 
   /* if there is a custom transform function, use this */
   if (klass->transform_caps) {
-
     GST_DEBUG_OBJECT (trans, "transform caps (direction = %d)", direction);
 
     GST_LOG_OBJECT (trans, "from: %" GST_PTR_FORMAT, caps);
@@ -497,61 +533,32 @@
 
         intersection =
             gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
-        gst_caps_unref (intersection);
+        gst_caps_unref (ret);
         ret = intersection;
       }
     }
 #endif
-  } else {
-    GST_DEBUG_OBJECT (trans, "identity from: %" GST_PTR_FORMAT, caps);
-    /* no transform function, use the identity transform */
-    if (filter) {
-      ret = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
-    } else {
-      ret = gst_caps_ref (caps);
-    }
   }
 
-  GST_DEBUG_OBJECT (trans, "to: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (ret),
-      ret);
+  GST_DEBUG_OBJECT (trans, "to: %" GST_PTR_FORMAT, ret);
 
   return ret;
 }
 
-/* transform a buffer of @size with @caps on the pad with @direction to
- * the size of a buffer with @othercaps and store the result in @othersize
- *
- * We have two ways of doing this:
- *  1) use a custom transform size function, this is for complicated custom
- *     cases with no fixed unit_size.
- *  2) use the unit_size functions where there is a relationship between the
- *     caps and the size of a buffer.
- */
 static gboolean
-gst_base_transform_transform_size (GstBaseTransform * trans,
-    GstPadDirection direction, GstCaps * caps,
-    gsize size, GstCaps * othercaps, gsize * othersize)
+gst_base_transform_default_transform_size (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps, gsize size,
+    GstCaps * othercaps, gsize * othersize)
 {
   gsize inunitsize, outunitsize, units;
   GstBaseTransformClass *klass;
-  gboolean ret;
 
   klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
-  GST_DEBUG_OBJECT (trans,
-      "asked to transform size %" G_GSIZE_FORMAT " for caps %"
-      GST_PTR_FORMAT " to size for caps %" GST_PTR_FORMAT " in direction %s",
-      size, caps, othercaps, direction == GST_PAD_SRC ? "SRC" : "SINK");
-
-  if (klass->transform_size) {
-    /* if there is a custom transform function, use this */
-    ret = klass->transform_size (trans, direction, caps, size, othercaps,
-        othersize);
-  } else if (klass->get_unit_size == NULL) {
+  if (klass->get_unit_size == NULL) {
     /* if there is no transform_size and no unit_size, it means the
      * element does not modify the size of a buffer */
     *othersize = size;
-    ret = TRUE;
   } else {
     /* there is no transform_size function, we have to use the unit_size
      * functions. This method assumes there is a fixed unit_size associated with
@@ -579,10 +586,8 @@
     *othersize = units * outunitsize;
     GST_DEBUG_OBJECT (trans, "transformed size to %" G_GSIZE_FORMAT,
         *othersize);
-
-    ret = TRUE;
   }
-  return ret;
+  return TRUE;
 
   /* ERRORS */
 no_in_size:
@@ -607,6 +612,38 @@
   }
 }
 
+/* transform a buffer of @size with @caps on the pad with @direction to
+ * the size of a buffer with @othercaps and store the result in @othersize
+ *
+ * We have two ways of doing this:
+ *  1) use a custom transform size function, this is for complicated custom
+ *     cases with no fixed unit_size.
+ *  2) use the unit_size functions where there is a relationship between the
+ *     caps and the size of a buffer.
+ */
+static gboolean
+gst_base_transform_transform_size (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps,
+    gsize size, GstCaps * othercaps, gsize * othersize)
+{
+  GstBaseTransformClass *klass;
+  gboolean ret = FALSE;
+
+  klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
+
+  GST_DEBUG_OBJECT (trans,
+      "asked to transform size %" G_GSIZE_FORMAT " for caps %"
+      GST_PTR_FORMAT " to size for caps %" GST_PTR_FORMAT " in direction %s",
+      size, caps, othercaps, direction == GST_PAD_SRC ? "SRC" : "SINK");
+
+  if (klass->transform_size) {
+    /* if there is a custom transform function, use this */
+    ret = klass->transform_size (trans, direction, caps, size, othercaps,
+        othersize);
+  }
+  return ret;
+}
+
 /* get the caps that can be handled by @pad. We perform:
  *
  *  - take the caps of peer of otherpad,
@@ -617,28 +654,26 @@
  * If there is no peer, we simply return the caps of the padtemplate of pad.
  */
 static GstCaps *
-gst_base_transform_getcaps (GstPad * pad, GstCaps * filter)
+gst_base_transform_query_caps (GstBaseTransform * trans, GstPad * pad,
+    GstCaps * filter)
 {
-  GstBaseTransform *trans;
   GstPad *otherpad;
   GstCaps *peercaps, *caps, *temp, *peerfilter = NULL;
-  GstCaps *templ;
-
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
+  GstCaps *templ, *otempl;
 
   otherpad = (pad == trans->srcpad) ? trans->sinkpad : trans->srcpad;
 
+  templ = gst_pad_get_pad_template_caps (pad);
+  otempl = gst_pad_get_pad_template_caps (otherpad);
+
   /* we can do what the peer can */
   if (filter) {
-
     GST_DEBUG_OBJECT (pad, "filter caps  %" GST_PTR_FORMAT, filter);
 
     /* filtered against our padtemplate on the other side */
-    templ = gst_pad_get_pad_template_caps (pad);
     GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, templ);
     temp = gst_caps_intersect_full (filter, templ, GST_CAPS_INTERSECT_FIRST);
     GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp);
-    gst_caps_unref (templ);
 
     /* then see what we can transform this to */
     peerfilter = gst_base_transform_transform_caps (trans,
@@ -647,18 +682,16 @@
     gst_caps_unref (temp);
 
     /* and filter against the template of this pad */
-    templ = gst_pad_get_pad_template_caps (otherpad);
-    GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, templ);
+    GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, otempl);
     /* We keep the caps sorted like the returned caps */
     temp =
-        gst_caps_intersect_full (peerfilter, templ, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_intersect_full (peerfilter, otempl, GST_CAPS_INTERSECT_FIRST);
     GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp);
     gst_caps_unref (peerfilter);
-    gst_caps_unref (templ);
     peerfilter = temp;
   }
 
-  peercaps = gst_pad_peer_get_caps (otherpad, peerfilter);
+  peercaps = gst_pad_peer_query_caps (otherpad, peerfilter);
 
   if (peerfilter)
     gst_caps_unref (peerfilter);
@@ -667,13 +700,11 @@
     GST_DEBUG_OBJECT (pad, "peer caps  %" GST_PTR_FORMAT, peercaps);
 
     /* filtered against our padtemplate on the other side */
-    templ = gst_pad_get_pad_template_caps (otherpad);
-    GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, templ);
-    temp = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST);
+    GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, otempl);
+    temp = gst_caps_intersect_full (peercaps, otempl, GST_CAPS_INTERSECT_FIRST);
     GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp);
-    gst_caps_unref (templ);
   } else {
-    temp = gst_caps_copy (gst_pad_get_pad_template_caps (otherpad));
+    temp = gst_caps_ref (otempl);
   }
 
   /* then see what we can transform this to */
@@ -684,35 +715,29 @@
   if (caps == NULL)
     goto done;
 
-  /* and filter against the template of this pad */
-  templ = gst_pad_get_pad_template_caps (pad);
-  GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, templ);
-  /* We keep the caps sorted like the returned caps */
-  temp = gst_caps_intersect_full (caps, templ, GST_CAPS_INTERSECT_FIRST);
-  GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp);
-  gst_caps_unref (caps);
-  gst_caps_unref (templ);
-  caps = temp;
-
   if (peercaps) {
+    /* and filter against the template of this pad */
+    GST_DEBUG_OBJECT (pad, "our template  %" GST_PTR_FORMAT, templ);
+    /* We keep the caps sorted like the returned caps */
+    temp = gst_caps_intersect_full (caps, templ, GST_CAPS_INTERSECT_FIRST);
+    GST_DEBUG_OBJECT (pad, "intersected %" GST_PTR_FORMAT, temp);
+    gst_caps_unref (caps);
+    caps = temp;
+
     /* Now try if we can put the untransformed downstream caps first */
     temp = gst_caps_intersect_full (peercaps, caps, GST_CAPS_INTERSECT_FIRST);
     if (!gst_caps_is_empty (temp)) {
-      gst_caps_merge (temp, caps);
-      caps = temp;
+      caps = gst_caps_merge (temp, caps);
     } else {
       gst_caps_unref (temp);
     }
   } else {
+    gst_caps_unref (caps);
     /* no peer or the peer can do anything, our padtemplate is enough then */
-    caps = gst_pad_get_pad_template_caps (pad);
-
     if (filter) {
-      GstCaps *temp;
-
-      temp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (caps);
-      caps = temp;
+      caps = gst_caps_intersect_full (filter, templ, GST_CAPS_INTERSECT_FIRST);
+    } else {
+      caps = gst_caps_ref (templ);
     }
   }
 
@@ -722,32 +747,38 @@
   if (peercaps)
     gst_caps_unref (peercaps);
 
-  gst_object_unref (trans);
+  gst_caps_unref (templ);
+  gst_caps_unref (otempl);
 
   return caps;
 }
 
+/* takes ownership of the pool, allocator and query */
 static gboolean
 gst_base_transform_set_allocation (GstBaseTransform * trans,
-    GstBufferPool * pool, const GstAllocator * allocator, guint prefix,
-    guint alignment)
+    GstBufferPool * pool, GstAllocator * allocator,
+    GstAllocationParams * params, GstQuery * query)
 {
+  GstAllocator *oldalloc;
   GstBufferPool *oldpool;
+  GstQuery *oldquery;
   GstBaseTransformPrivate *priv = trans->priv;
 
-  /* activate */
-  if (pool) {
-    GST_DEBUG_OBJECT (trans, "setting pool %p active", pool);
-    if (!gst_buffer_pool_set_active (pool, TRUE))
-      goto activate_failed;
-  }
-
   GST_OBJECT_LOCK (trans);
   oldpool = priv->pool;
   priv->pool = pool;
+  priv->pool_active = FALSE;
+
+  oldalloc = priv->allocator;
   priv->allocator = allocator;
-  priv->prefix = prefix;
-  priv->alignment = alignment;
+
+  oldquery = priv->query;
+  priv->query = query;
+
+  if (params)
+    priv->params = *params;
+  else
+    gst_allocation_params_init (&priv->params);
   GST_OBJECT_UNLOCK (trans);
 
   if (oldpool) {
@@ -755,14 +786,57 @@
     gst_buffer_pool_set_active (oldpool, FALSE);
     gst_object_unref (oldpool);
   }
+  if (oldalloc) {
+    gst_allocator_unref (oldalloc);
+  }
+  if (oldquery) {
+    gst_query_unref (oldquery);
+  }
   return TRUE;
 
-  /* ERRORS */
-activate_failed:
-  {
-    GST_ERROR_OBJECT (trans, "failed to activate bufferpool.");
-    return FALSE;
+}
+
+static gboolean
+gst_base_transform_default_decide_allocation (GstBaseTransform * trans,
+    GstQuery * query)
+{
+  guint i, n_metas;
+  GstBaseTransformClass *klass;
+
+  klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
+
+  n_metas = gst_query_get_n_allocation_metas (query);
+  for (i = 0; i < n_metas; i++) {
+    GType api;
+    gboolean remove;
+
+    api = gst_query_parse_nth_allocation_meta (query, i);
+
+    /* by default we remove all metadata, subclasses should implement a
+     * filter_meta function */
+    if (gst_meta_api_type_has_tag (api, GST_META_TAG_MEMORY)) {
+      /* remove all memory dependent metadata because we are going to have to
+       * allocate different memory for input and output. */
+      GST_LOG_OBJECT (trans, "removing memory specific metadata %s",
+          g_type_name (api));
+      remove = TRUE;
+    } else if (G_LIKELY (klass->filter_meta)) {
+      /* remove if the subclass said so */
+      remove = !klass->filter_meta (trans, query, api);
+      GST_LOG_OBJECT (trans, "filter_meta for api %s returned: %s",
+          g_type_name (api), (remove ? "remove" : "keep"));
+    } else {
+      GST_LOG_OBJECT (trans, "removing metadata %s", g_type_name (api));
+      remove = TRUE;
+    }
+
+    if (remove) {
+      gst_query_remove_nth_allocation_meta (query, i);
+      i--;
+      n_metas--;
+    }
   }
+  return TRUE;
 }
 
 static gboolean
@@ -770,10 +844,12 @@
 {
   GstQuery *query;
   gboolean result = TRUE;
-  GstBufferPool *pool = NULL, *oldpool;
-  guint size, min, max, prefix, alignment;
+  GstBufferPool *pool;
+  guint size, min, max;
   GstBaseTransformClass *klass;
-  const GstAllocator *allocator = NULL;
+  GstBaseTransformPrivate *priv = trans->priv;
+  GstAllocator *allocator;
+  GstAllocationParams params;
 
   /* there are these possibilities:
    *
@@ -782,24 +858,15 @@
    * 2) we need to do a transform, we need to get a bufferpool from downstream
    *    and configure it. When upstream does the ALLOCATION query, the
    *    propose_allocation vmethod will be called and we will configure the
-   *    upstream allocator with our porposed values then.
+   *    upstream allocator with our proposed values then.
    */
-
-  /* clear old pool */
-  oldpool = trans->priv->pool;
-  if (oldpool) {
-    GST_DEBUG_OBJECT (trans, "unreffing old pool");
-    gst_buffer_pool_set_active (oldpool, FALSE);
-    gst_object_unref (oldpool);
-    trans->priv->pool = oldpool = NULL;
-  }
-
-  if (trans->passthrough || trans->always_in_place) {
+  if (priv->passthrough || priv->always_in_place) {
     /* we are in passthrough, the input buffer is never copied and always passed
      * along. We never allocate an output buffer on the srcpad. What we do is
      * let the upstream element decide if it wants to use a bufferpool and
      * then we will proxy the downstream pool */
     GST_DEBUG_OBJECT (trans, "we're passthough, delay bufferpool");
+    gst_base_transform_set_allocation (trans, NULL, NULL, NULL, NULL);
     return TRUE;
   }
 
@@ -816,41 +883,56 @@
 
   GST_DEBUG_OBJECT (trans, "calling decide_allocation");
   if (G_LIKELY (klass->decide_allocation))
-    result = klass->decide_allocation (trans, query);
+    if ((result = klass->decide_allocation (trans, query)) == FALSE)
+      goto no_decide_allocation;
 
-  /* we got configuration from our peer, parse them */
-  gst_query_parse_allocation_params (query, &size, &min, &max, &prefix,
-      &alignment, &pool);
-  gst_query_unref (query);
-
-  if (size == 0) {
-    const gchar *mem = NULL;
-
-    /* no size, we have variable size buffers */
-    if (gst_query_get_n_allocation_memories (query) > 0) {
-      mem = gst_query_parse_nth_allocation_memory (query, 0);
-    }
-    allocator = gst_allocator_find (mem);
-    GST_DEBUG_OBJECT (trans, "no size, using allocator %s", GST_STR_NULL (mem));
-  } else if (pool == NULL) {
-    GstStructure *config;
-
-    /* we did not get a pool, make one ourselves then */
-    pool = gst_buffer_pool_new ();
-
-    GST_DEBUG_OBJECT (trans, "no pool, making one");
-    config = gst_buffer_pool_get_config (pool);
-    gst_buffer_pool_config_set (config, outcaps, size, min, max, prefix,
-        alignment);
-    gst_buffer_pool_set_config (pool, config);
+  /* we got configuration from our peer or the decide_allocation method,
+   * parse them */
+  if (gst_query_get_n_allocation_params (query) > 0) {
+    /* try the allocator */
+    gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+  } else {
+    allocator = NULL;
+    gst_allocation_params_init (&params);
   }
 
+  if (gst_query_get_n_allocation_pools (query) > 0) {
+    gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+
+    if (pool == NULL) {
+      /* no pool, just parameters, we can make our own */
+      GST_DEBUG_OBJECT (trans, "no pool, making new pool");
+      pool = gst_buffer_pool_new ();
+    }
+  } else {
+    pool = NULL;
+    size = min = max = 0;
+  }
+
+  /* now configure */
+  if (pool) {
+    GstStructure *config;
+
+    config = gst_buffer_pool_get_config (pool);
+    gst_buffer_pool_config_set_params (config, outcaps, size, min, max);
+    gst_buffer_pool_config_set_allocator (config, allocator, &params);
+    gst_buffer_pool_set_config (pool, config);
+  }
   /* and store */
   result =
-      gst_base_transform_set_allocation (trans, pool, allocator, prefix,
-      alignment);
+      gst_base_transform_set_allocation (trans, pool, allocator, &params,
+      query);
 
   return result;
+
+  /* Errors */
+no_decide_allocation:
+  {
+    GST_WARNING_OBJECT (trans, "Subclass failed to decide allocation");
+    gst_query_unref (query);
+
+    return result;
+  }
 }
 
 /* function triggered when the in and out caps are negotiated and need
@@ -861,6 +943,7 @@
 {
   gboolean ret = TRUE;
   GstBaseTransformClass *klass;
+  GstBaseTransformPrivate *priv = trans->priv;
 
   klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
@@ -868,23 +951,17 @@
   GST_DEBUG_OBJECT (trans, "out caps: %" GST_PTR_FORMAT, out);
 
   /* clear the cache */
-  gst_caps_replace (&trans->cache_caps1, NULL);
-  gst_caps_replace (&trans->cache_caps2, NULL);
+  gst_caps_replace (&priv->cache_caps1, NULL);
+  gst_caps_replace (&priv->cache_caps2, NULL);
 
   /* figure out same caps state */
-  trans->have_same_caps = gst_caps_is_equal (in, out);
-  GST_DEBUG_OBJECT (trans, "have_same_caps: %d", trans->have_same_caps);
-
-  /* If we've a transform_ip method and same input/output caps, set in_place
-   * by default. If for some reason the sub-class prefers using a transform
-   * function, it can clear the in place flag in the set_caps */
-  gst_base_transform_set_in_place (trans,
-      klass->transform_ip && trans->have_same_caps);
+  priv->have_same_caps = gst_caps_is_equal (in, out);
+  GST_DEBUG_OBJECT (trans, "have_same_caps: %d", priv->have_same_caps);
 
   /* Set the passthrough if the class wants passthrough_on_same_caps
    * and we have the same caps on each pad */
   if (klass->passthrough_on_same_caps)
-    gst_base_transform_set_passthrough (trans, trans->have_same_caps);
+    gst_base_transform_set_passthrough (trans, priv->have_same_caps);
 
   /* now configure the element with the caps */
   if (klass->set_caps) {
@@ -892,11 +969,19 @@
     ret = klass->set_caps (trans, in, out);
   }
 
-  trans->negotiated = ret;
-
   return ret;
 }
 
+static GstCaps *
+gst_base_transform_default_fixate_caps (GstBaseTransform * trans,
+    GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
+{
+  othercaps = gst_caps_fixate (othercaps);
+  GST_DEBUG_OBJECT (trans, "fixated to %" GST_PTR_FORMAT, othercaps);
+
+  return othercaps;
+}
+
 /* given a fixed @caps on @pad, create the best possible caps for the
  * other pad.
  * @caps must be fixed when calling this function.
@@ -974,31 +1059,38 @@
       GST_DEBUG_OBJECT (trans,
           "Checking peer caps with filter %" GST_PTR_FORMAT, othercaps);
 
-      peercaps = gst_pad_get_caps (otherpeer, othercaps);
+      peercaps = gst_pad_query_caps (otherpeer, othercaps);
       GST_DEBUG_OBJECT (trans, "Resulted in %" GST_PTR_FORMAT, peercaps);
+      if (!gst_caps_is_empty (peercaps)) {
+        templ_caps = gst_pad_get_pad_template_caps (otherpad);
 
-      templ_caps = gst_pad_get_pad_template_caps (otherpad);
+        GST_DEBUG_OBJECT (trans,
+            "Intersecting with template caps %" GST_PTR_FORMAT, templ_caps);
 
-      GST_DEBUG_OBJECT (trans,
-          "Intersecting with template caps %" GST_PTR_FORMAT, templ_caps);
+        intersection =
+            gst_caps_intersect_full (peercaps, templ_caps,
+            GST_CAPS_INTERSECT_FIRST);
+        GST_DEBUG_OBJECT (trans, "Intersection: %" GST_PTR_FORMAT,
+            intersection);
+        gst_caps_unref (peercaps);
+        gst_caps_unref (templ_caps);
+        peercaps = intersection;
 
-      intersection =
-          gst_caps_intersect_full (peercaps, templ_caps,
-          GST_CAPS_INTERSECT_FIRST);
-      GST_DEBUG_OBJECT (trans, "Intersection: %" GST_PTR_FORMAT, intersection);
-      gst_caps_unref (peercaps);
-      gst_caps_unref (templ_caps);
-      peercaps = intersection;
+        GST_DEBUG_OBJECT (trans,
+            "Intersecting with transformed caps %" GST_PTR_FORMAT, othercaps);
+        intersection =
+            gst_caps_intersect_full (peercaps, othercaps,
+            GST_CAPS_INTERSECT_FIRST);
+        GST_DEBUG_OBJECT (trans, "Intersection: %" GST_PTR_FORMAT,
+            intersection);
+        gst_caps_unref (peercaps);
+        gst_caps_unref (othercaps);
+        othercaps = intersection;
+      } else {
+        gst_caps_unref (othercaps);
+        othercaps = peercaps;
+      }
 
-      GST_DEBUG_OBJECT (trans,
-          "Intersecting with transformed caps %" GST_PTR_FORMAT, othercaps);
-      intersection =
-          gst_caps_intersect_full (peercaps, othercaps,
-          GST_CAPS_INTERSECT_FIRST);
-      GST_DEBUG_OBJECT (trans, "Intersection: %" GST_PTR_FORMAT, intersection);
-      gst_caps_unref (peercaps);
-      gst_caps_unref (othercaps);
-      othercaps = intersection;
       is_fixed = gst_caps_is_fixed (othercaps);
     } else {
       GST_DEBUG_OBJECT (trans, "no peer, doing passthrough");
@@ -1010,52 +1102,21 @@
   if (gst_caps_is_empty (othercaps))
     goto no_transform_possible;
 
-  /* second attempt at fixation, call the fixate vmethod and
-   * ultimately call the pad fixate function. */
-  if (!is_fixed) {
-    GST_DEBUG_OBJECT (trans,
-        "trying to fixate %" GST_PTR_FORMAT " on pad %s:%s",
-        othercaps, GST_DEBUG_PAD_NAME (otherpad));
+  GST_DEBUG ("have %sfixed caps %" GST_PTR_FORMAT, (is_fixed ? "" : "non-"),
+      othercaps);
 
-    /* since we have no other way to fixate left, we might as well just take
-     * the first of the caps list and fixate that */
-
-    /* FIXME: when fixating using the vmethod, it might make sense to fixate
-     * each of the caps; but Wim doesn't see a use case for that yet */
-    gst_caps_truncate (othercaps);
-
-    if (klass->fixate_caps) {
-      GST_DEBUG_OBJECT (trans, "trying to fixate %" GST_PTR_FORMAT
-          " using caps %" GST_PTR_FORMAT
-          " on pad %s:%s using fixate_caps vmethod", othercaps, caps,
-          GST_DEBUG_PAD_NAME (otherpad));
-      klass->fixate_caps (trans, GST_PAD_DIRECTION (pad), caps, othercaps);
-      is_fixed = gst_caps_is_fixed (othercaps);
-    }
-    /* if still not fixed, no other option but to let the default pad fixate
-     * function do its job */
-    if (!is_fixed) {
-      GST_DEBUG_OBJECT (trans, "trying to fixate %" GST_PTR_FORMAT
-          " on pad %s:%s using gst_pad_fixate_caps", othercaps,
-          GST_DEBUG_PAD_NAME (otherpad));
-      gst_pad_fixate_caps (otherpad, othercaps);
-      is_fixed = gst_caps_is_fixed (othercaps);
-    }
+  /* second attempt at fixation, call the fixate vmethod */
+  /* caps could be fixed but the subclass may want to add fields */
+  if (klass->fixate_caps) {
+    GST_DEBUG_OBJECT (trans, "calling fixate_caps for %" GST_PTR_FORMAT
+        " using caps %" GST_PTR_FORMAT " on pad %s:%s", othercaps, caps,
+        GST_DEBUG_PAD_NAME (otherpad));
+    /* note that we pass the complete array of structures to the fixate
+     * function, it needs to truncate itself */
+    othercaps =
+        klass->fixate_caps (trans, GST_PAD_DIRECTION (pad), caps, othercaps);
+    is_fixed = gst_caps_is_fixed (othercaps);
     GST_DEBUG_OBJECT (trans, "after fixating %" GST_PTR_FORMAT, othercaps);
-  } else {
-    GST_DEBUG ("caps are fixed");
-    /* else caps are fixed but the subclass may want to add fields */
-    if (klass->fixate_caps) {
-      othercaps = gst_caps_make_writable (othercaps);
-
-      GST_DEBUG_OBJECT (trans, "doing fixate %" GST_PTR_FORMAT
-          " using caps %" GST_PTR_FORMAT
-          " on pad %s:%s using fixate_caps vmethod", othercaps, caps,
-          GST_DEBUG_PAD_NAME (otherpad));
-
-      klass->fixate_caps (trans, GST_PAD_DIRECTION (pad), caps, othercaps);
-      is_fixed = gst_caps_is_fixed (othercaps);
-    }
   }
 
   /* caps should be fixed now, if not we have to fail. */
@@ -1063,7 +1124,7 @@
     goto could_not_fixate;
 
   /* and peer should accept */
-  if (!gst_pad_accept_caps (otherpeer, othercaps))
+  if (otherpeer && !gst_pad_query_accept_caps (otherpeer, othercaps))
     goto peer_no_accept;
 
   GST_DEBUG_OBJECT (trans, "Input caps were %" GST_PTR_FORMAT
@@ -1129,16 +1190,16 @@
   {
     GstCaps *allowed;
 
-    GST_DEBUG_OBJECT (trans, "non fixed accept caps %" GST_PTR_FORMAT, caps);
+    GST_DEBUG_OBJECT (trans, "accept caps %" GST_PTR_FORMAT, caps);
 
     /* get all the formats we can handle on this pad */
     if (direction == GST_PAD_SRC)
-      allowed = gst_pad_get_caps (trans->srcpad, NULL);
+      allowed = gst_pad_query_caps (trans->srcpad, NULL);
     else
-      allowed = gst_pad_get_caps (trans->sinkpad, NULL);
+      allowed = gst_pad_query_caps (trans->sinkpad, NULL);
 
     if (!allowed) {
-      GST_DEBUG_OBJECT (trans, "gst_pad_get_caps() failed");
+      GST_DEBUG_OBJECT (trans, "gst_pad_query_caps() failed");
       goto no_transform_possible;
     }
 
@@ -1185,66 +1246,33 @@
   }
 }
 
-static gboolean
-gst_base_transform_acceptcaps (GstPad * pad, GstCaps * caps)
-{
-  gboolean ret = TRUE;
-  GstBaseTransform *trans;
-  GstBaseTransformClass *bclass;
-
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
-  bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
-
-  if (bclass->accept_caps)
-    ret = bclass->accept_caps (trans, GST_PAD_DIRECTION (pad), caps);
-
-  gst_object_unref (trans);
-
-  return ret;
-}
-
-/* called when new caps arrive on the sink or source pad,
+/* called when new caps arrive on the sink pad,
  * We try to find the best caps for the other side using our _find_transform()
  * function. If there are caps, we configure the transform for this new
  * transformation.
- *
- * FIXME, this function is currently commutative but this should not really be
- * because we never set caps starting from the srcpad.
  */
 static gboolean
 gst_base_transform_setcaps (GstBaseTransform * trans, GstPad * pad,
-    GstCaps * caps)
+    GstCaps * incaps)
 {
-  GstPad *otherpad, *otherpeer;
-  GstCaps *othercaps = NULL;
+  GstBaseTransformPrivate *priv = trans->priv;
+  GstCaps *outcaps;
   gboolean ret = TRUE;
-  GstCaps *incaps, *outcaps;
 
-  otherpad = (pad == trans->srcpad) ? trans->sinkpad : trans->srcpad;
-  otherpeer = gst_pad_get_peer (otherpad);
-
-  GST_DEBUG_OBJECT (pad, "have new caps %p %" GST_PTR_FORMAT, caps, caps);
+  GST_DEBUG_OBJECT (pad, "have new caps %p %" GST_PTR_FORMAT, incaps, incaps);
 
   /* find best possible caps for the other pad */
-  othercaps = gst_base_transform_find_transform (trans, pad, caps);
-  if (!othercaps || gst_caps_is_empty (othercaps))
+  outcaps = gst_base_transform_find_transform (trans, pad, incaps);
+  if (!outcaps || gst_caps_is_empty (outcaps))
     goto no_transform_possible;
 
   /* configure the element now */
-  /* make sure in and out caps are correct */
-  if (pad == trans->sinkpad) {
-    incaps = caps;
-    outcaps = othercaps;
-  } else {
-    incaps = othercaps;
-    outcaps = caps;
-  }
 
   /* if we have the same caps, we can optimize and reuse the input caps */
   if (gst_caps_is_equal (incaps, outcaps)) {
     GST_INFO_OBJECT (trans, "reuse caps");
-    gst_caps_unref (othercaps);
-    outcaps = othercaps = gst_caps_ref (incaps);
+    gst_caps_unref (outcaps);
+    outcaps = gst_caps_ref (incaps);
   }
 
   /* call configure now */
@@ -1252,34 +1280,25 @@
     goto failed_configure;
 
   GST_OBJECT_LOCK (trans->sinkpad);
-  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_NEED_RECONFIGURE);
+  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_FLAG_NEED_RECONFIGURE);
   trans->priv->reconfigure = FALSE;
   GST_OBJECT_UNLOCK (trans->sinkpad);
 
-  /* we know this will work, we implement the setcaps */
-  gst_pad_push_event (otherpad, gst_event_new_caps (othercaps));
-
-  if (pad == trans->srcpad && trans->priv->pad_mode == GST_ACTIVATE_PULL) {
-    /* FIXME hm? */
-    ret &= gst_pad_push_event (otherpeer, gst_event_new_caps (othercaps));
-    if (!ret) {
-      GST_INFO_OBJECT (trans, "otherpeer setcaps(%" GST_PTR_FORMAT ") failed",
-          othercaps);
-    }
-  }
+  /* let downstream know about our caps */
+  gst_pad_push_event (trans->srcpad, gst_event_new_caps (outcaps));
 
   if (ret) {
     /* try to get a pool when needed */
-    ret = gst_base_transform_do_bufferpool (trans, othercaps);
+    ret = gst_base_transform_do_bufferpool (trans, outcaps);
   }
 
 done:
-  if (otherpeer)
-    gst_object_unref (otherpeer);
-  if (othercaps)
-    gst_caps_unref (othercaps);
+  if (outcaps)
+    gst_caps_unref (outcaps);
 
-  trans->negotiated = ret;
+  GST_OBJECT_LOCK (trans);
+  priv->negotiated = ret;
+  GST_OBJECT_UNLOCK (trans);
 
   return ret;
 
@@ -1288,56 +1307,98 @@
   {
     GST_WARNING_OBJECT (trans,
         "transform could not transform %" GST_PTR_FORMAT
-        " in anything we support", caps);
+        " in anything we support", incaps);
     ret = FALSE;
     goto done;
   }
 failed_configure:
   {
-    GST_WARNING_OBJECT (trans, "FAILED to configure caps %" GST_PTR_FORMAT
-        " to accept %" GST_PTR_FORMAT, otherpad, othercaps);
+    GST_WARNING_OBJECT (trans, "FAILED to configure incaps %" GST_PTR_FORMAT
+        " and outcaps %" GST_PTR_FORMAT, incaps, outcaps);
     ret = FALSE;
     goto done;
   }
 }
 
 static gboolean
+gst_base_transform_default_propose_allocation (GstBaseTransform * trans,
+    GstQuery * decide_query, GstQuery * query)
+{
+  gboolean ret;
+
+  if (decide_query == NULL) {
+    GST_DEBUG_OBJECT (trans, "doing passthrough query");
+    ret = gst_pad_peer_query (trans->srcpad, query);
+  } else {
+    guint i, n_metas;
+    /* non-passthrough, copy all metadata, decide_query does not contain the
+     * metadata anymore that depends on the buffer memory */
+    n_metas = gst_query_get_n_allocation_metas (decide_query);
+    for (i = 0; i < n_metas; i++) {
+      GType api;
+
+      api = gst_query_parse_nth_allocation_meta (decide_query, i);
+      GST_DEBUG_OBJECT (trans, "proposing metadata %s", g_type_name (api));
+      gst_query_add_allocation_meta (query, api);
+    }
+    ret = TRUE;
+  }
+  return ret;
+}
+
+static gboolean
 gst_base_transform_default_query (GstBaseTransform * trans,
     GstPadDirection direction, GstQuery * query)
 {
   gboolean ret = FALSE;
-  GstPad *otherpad;
+  GstPad *pad, *otherpad;
+  GstBaseTransformClass *klass;
+  GstBaseTransformPrivate *priv = trans->priv;
 
-  otherpad = (direction == GST_PAD_SRC) ? trans->sinkpad : trans->srcpad;
+  if (direction == GST_PAD_SRC) {
+    pad = trans->srcpad;
+    otherpad = trans->sinkpad;
+  } else {
+    pad = trans->sinkpad;
+    otherpad = trans->srcpad;
+  }
+
+  klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_ALLOCATION:
     {
-      gboolean passthrough;
+      GstQuery *decide_query = NULL;
+      gboolean negotiated;
 
       /* can only be done on the sinkpad */
       if (direction != GST_PAD_SINK)
         goto done;
 
-      GST_BASE_TRANSFORM_LOCK (trans);
-      passthrough = trans->passthrough || trans->always_in_place;
-      GST_BASE_TRANSFORM_UNLOCK (trans);
-
-      if (passthrough) {
-        GST_DEBUG_OBJECT (trans, "doing passthrough query");
-        ret = gst_pad_peer_query (otherpad, query);
-      } else {
-        GstBaseTransformClass *klass;
-
-        GST_DEBUG_OBJECT (trans, "propose allocation values");
-
-        klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
-        /* pass the query to the propose_allocation vmethod if any */
-        if (G_LIKELY (klass->propose_allocation))
-          ret = klass->propose_allocation (trans, query);
-        else
-          ret = FALSE;
+      GST_OBJECT_LOCK (trans);
+      if (G_UNLIKELY (!(negotiated = priv->negotiated))) {
+        GST_DEBUG_OBJECT (trans,
+            "not negotiated yet, can't answer ALLOCATION query");
+        GST_OBJECT_UNLOCK (trans);
+        goto done;
       }
+      if ((decide_query = trans->priv->query))
+        gst_query_ref (decide_query);
+      GST_OBJECT_UNLOCK (trans);
+
+      GST_DEBUG_OBJECT (trans,
+          "calling propose allocation with query %" GST_PTR_FORMAT,
+          decide_query);
+
+      /* pass the query to the propose_allocation vmethod if any */
+      if (G_LIKELY (klass->propose_allocation))
+        ret = klass->propose_allocation (trans, decide_query, query);
+      else
+        ret = FALSE;
+
+      if (decide_query)
+        gst_query_unref (decide_query);
+
       GST_DEBUG_OBJECT (trans, "ALLOCATION ret %d, %" GST_PTR_FORMAT, ret,
           query);
       break;
@@ -1366,6 +1427,30 @@
       }
       break;
     }
+    case GST_QUERY_ACCEPT_CAPS:
+    {
+      GstCaps *caps;
+
+      gst_query_parse_accept_caps (query, &caps);
+      if (klass->accept_caps) {
+        ret = klass->accept_caps (trans, direction, caps);
+        gst_query_set_accept_caps_result (query, ret);
+        /* return TRUE, we answered the query */
+        ret = TRUE;
+      }
+      break;
+    }
+    case GST_QUERY_CAPS:
+    {
+      GstCaps *filter, *caps;
+
+      gst_query_parse_caps (query, &filter);
+      caps = gst_base_transform_query_caps (trans, pad, filter);
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      ret = TRUE;
+      break;
+    }
     default:
       ret = gst_pad_peer_query (otherpad, query);
       break;
@@ -1376,39 +1461,21 @@
 }
 
 static gboolean
-gst_base_transform_query (GstPad * pad, GstQuery * query)
+gst_base_transform_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstBaseTransform *trans;
   GstBaseTransformClass *bclass;
-  gboolean ret;
+  gboolean ret = FALSE;
 
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (trans == NULL))
-    return FALSE;
-
+  trans = GST_BASE_TRANSFORM (parent);
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
   if (bclass->query)
     ret = bclass->query (trans, GST_PAD_DIRECTION (pad), query);
-  else
-    ret = gst_pad_query_default (pad, query);
-
-  gst_object_unref (trans);
 
   return ret;
 }
 
-static const GstQueryType *
-gst_base_transform_query_type (GstPad * pad)
-{
-  static const GstQueryType types[] = {
-    GST_QUERY_POSITION,
-    GST_QUERY_NONE
-  };
-
-  return types;
-}
-
 /* this function either returns the input buffer without incrementing the
  * refcount or it allocates a new (writable) buffer */
 static GstFlowReturn
@@ -1418,67 +1485,88 @@
   GstBaseTransformPrivate *priv;
   GstFlowReturn ret = GST_FLOW_OK;
   GstBaseTransformClass *bclass;
+  GstCaps *incaps, *outcaps;
+  gsize insize, outsize;
+  gboolean res;
 
   priv = trans->priv;
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
   /* figure out how to allocate an output buffer */
-  if (trans->passthrough) {
+  if (priv->passthrough) {
     /* passthrough, we will not modify the incomming buffer so we can just
      * reuse it */
     GST_DEBUG_OBJECT (trans, "passthrough: reusing input buffer");
     *outbuf = inbuf;
-  } else {
-    /* we can't reuse the input buffer */
-    if (priv->pool) {
-      GST_DEBUG_OBJECT (trans, "using pool alloc");
-      ret = gst_buffer_pool_acquire_buffer (priv->pool, outbuf, NULL);
-    } else {
-      gsize insize, outsize;
-      gboolean res;
-
-      /* no pool, we need to figure out the size of the output buffer first */
-      insize = gst_buffer_get_size (inbuf);
-
-      if (trans->passthrough) {
-        GST_DEBUG_OBJECT (trans, "doing passthrough alloc");
-        /* passthrough, the output size is the same as the input size. */
-        outsize = insize;
-      } else {
-        gboolean want_in_place = (bclass->transform_ip != NULL)
-            && trans->always_in_place;
-
-        if (want_in_place) {
-          GST_DEBUG_OBJECT (trans, "doing inplace alloc");
-          /* we alloc a buffer of the same size as the input */
-          outsize = insize;
-        } else {
-          GstCaps *incaps, *outcaps;
-
-          /* else use the transform function to get the size */
-          incaps = gst_pad_get_current_caps (trans->sinkpad);
-          outcaps = gst_pad_get_current_caps (trans->srcpad);
-
-          GST_DEBUG_OBJECT (trans, "getting output size for alloc");
-          /* copy transform, figure out the output size */
-          res = gst_base_transform_transform_size (trans,
-              GST_PAD_SINK, incaps, insize, outcaps, &outsize);
-
-          gst_caps_unref (incaps);
-          gst_caps_unref (outcaps);
-
-          if (!res)
-            goto unknown_size;
-        }
-      }
-      GST_DEBUG_OBJECT (trans, "doing alloc of size %" G_GSIZE_FORMAT, outsize);
-      *outbuf =
-          gst_buffer_new_allocate (priv->allocator, outsize, priv->alignment);
-    }
+    goto done;
   }
+
+  /* we can't reuse the input buffer */
+  if (priv->pool) {
+    if (!priv->pool_active) {
+      GST_DEBUG_OBJECT (trans, "setting pool %p active", priv->pool);
+      if (!gst_buffer_pool_set_active (priv->pool, TRUE))
+        goto activate_failed;
+      priv->pool_active = TRUE;
+    }
+    GST_DEBUG_OBJECT (trans, "using pool alloc");
+    ret = gst_buffer_pool_acquire_buffer (priv->pool, outbuf, NULL);
+    goto copy_meta;
+  }
+
+  /* no pool, we need to figure out the size of the output buffer first */
+  if ((bclass->transform_ip != NULL) && priv->always_in_place) {
+    /* we want to do an in-place alloc */
+    if (gst_buffer_is_writable (inbuf)) {
+      GST_DEBUG_OBJECT (trans, "inplace reuse writable input buffer");
+      *outbuf = inbuf;
+    } else {
+      GST_DEBUG_OBJECT (trans, "making writable buffer copy");
+      /* we make a copy of the input buffer */
+      *outbuf = gst_buffer_copy (inbuf);
+    }
+    goto done;
+  }
+
+  /* else use the transform function to get the size */
+  incaps = gst_pad_get_current_caps (trans->sinkpad);
+  outcaps = gst_pad_get_current_caps (trans->srcpad);
+
+  GST_DEBUG_OBJECT (trans, "getting output size for alloc");
+  /* copy transform, figure out the output size */
+  insize = gst_buffer_get_size (inbuf);
+  res = gst_base_transform_transform_size (trans,
+      GST_PAD_SINK, incaps, insize, outcaps, &outsize);
+
+  gst_caps_unref (incaps);
+  gst_caps_unref (outcaps);
+
+  if (!res)
+    goto unknown_size;
+
+  GST_DEBUG_OBJECT (trans, "doing alloc of size %" G_GSIZE_FORMAT, outsize);
+  *outbuf = gst_buffer_new_allocate (priv->allocator, outsize, &priv->params);
+
+copy_meta:
+  /* copy the metadata */
+  if (bclass->copy_metadata)
+    if (!bclass->copy_metadata (trans, inbuf, *outbuf)) {
+      /* something failed, post a warning */
+      GST_ELEMENT_WARNING (trans, STREAM, NOT_IMPLEMENTED,
+          ("could not copy metadata"), (NULL));
+    }
+
+done:
   return ret;
 
   /* ERRORS */
+  /* ERRORS */
+activate_failed:
+  {
+    GST_ELEMENT_ERROR (trans, RESOURCE, SETTINGS,
+        ("failed to activate bufferpool"), ("failed to activate bufferpool"));
+    return GST_FLOW_ERROR;
+  }
 unknown_size:
   {
     GST_ERROR_OBJECT (trans, "unknown output size");
@@ -1486,11 +1574,62 @@
   }
 }
 
+typedef struct
+{
+  GstBaseTransform *trans;
+  GstBuffer *outbuf;
+} CopyMetaData;
+
+static gboolean
+foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  CopyMetaData *data = user_data;
+  GstBaseTransform *trans = data->trans;
+  GstBaseTransformClass *klass;
+  const GstMetaInfo *info = (*meta)->info;
+  GstBuffer *outbuf = data->outbuf;
+  gboolean do_copy;
+
+  klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
+
+  if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
+    /* never call the transform_meta with pool private metadata */
+    GST_DEBUG_OBJECT (trans, "not copying pooled metadata %s",
+        g_type_name (info->api));
+    do_copy = FALSE;
+  } else if (gst_meta_api_type_has_tag (info->api, GST_META_TAG_MEMORY)) {
+    /* never call the transform_meta with memory specific metadata */
+    GST_DEBUG_OBJECT (trans, "not copying memory specific metadata %s",
+        g_type_name (info->api));
+    do_copy = FALSE;
+  } else if (klass->transform_meta) {
+    do_copy = klass->transform_meta (trans, outbuf, *meta, inbuf);
+    GST_DEBUG_OBJECT (trans, "transformed metadata %s: copy: %d",
+        g_type_name (info->api), do_copy);
+  } else {
+    do_copy = FALSE;
+    GST_DEBUG_OBJECT (trans, "not copying metadata %s",
+        g_type_name (info->api));
+  }
+
+  /* we only copy metadata when the subclass implemented a transform_meta
+   * function and when it returns TRUE */
+  if (do_copy) {
+    GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
+    GST_DEBUG_OBJECT (trans, "copy metadata %s", g_type_name (info->api));
+    /* simply copy then */
+    info->transform_func (outbuf, *meta, inbuf,
+        _gst_meta_transform_copy, &copy_data);
+  }
+  return TRUE;
+}
+
 static gboolean
 default_copy_metadata (GstBaseTransform * trans,
     GstBuffer * inbuf, GstBuffer * outbuf)
 {
   GstBaseTransformPrivate *priv = trans->priv;
+  CopyMetaData data;
 
   /* now copy the metadata */
   GST_DEBUG_OBJECT (trans, "copying metadata");
@@ -1508,6 +1647,12 @@
   if (!priv->gap_aware)
     GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_GAP);
 
+
+  data.trans = trans;
+  data.outbuf = outbuf;
+
+  gst_buffer_foreach_meta (inbuf, foreach_metadata, &data);
+
   return TRUE;
 
   /* ERRORS */
@@ -1537,62 +1682,56 @@
 {
   gboolean res = FALSE;
   GstBaseTransformClass *bclass;
+  GstBaseTransformPrivate *priv = trans->priv;
 
   /* see if we have the result cached */
-  if (trans->cache_caps1 == caps) {
-    *size = trans->cache_caps1_size;
+  if (priv->cache_caps1 == caps) {
+    *size = priv->cache_caps1_size;
     GST_DEBUG_OBJECT (trans,
         "returned %" G_GSIZE_FORMAT " from first cache", *size);
     return TRUE;
   }
-  if (trans->cache_caps2 == caps) {
-    *size = trans->cache_caps2_size;
+  if (priv->cache_caps2 == caps) {
+    *size = priv->cache_caps2_size;
     GST_DEBUG_OBJECT (trans,
         "returned %" G_GSIZE_FORMAT " from second cached", *size);
     return TRUE;
   }
 
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
-  if (bclass->get_unit_size) {
-    res = bclass->get_unit_size (trans, caps, size);
-    GST_DEBUG_OBJECT (trans,
-        "caps %" GST_PTR_FORMAT ") has unit size %" G_GSIZE_FORMAT ", res %s",
-        caps, *size, res ? "TRUE" : "FALSE");
+  res = bclass->get_unit_size (trans, caps, size);
+  GST_DEBUG_OBJECT (trans,
+      "caps %" GST_PTR_FORMAT ") has unit size %" G_GSIZE_FORMAT ", res %s",
+      caps, *size, res ? "TRUE" : "FALSE");
 
-    if (res) {
-      /* and cache the values */
-      if (trans->cache_caps1 == NULL) {
-        gst_caps_replace (&trans->cache_caps1, caps);
-        trans->cache_caps1_size = *size;
-        GST_DEBUG_OBJECT (trans,
-            "caching %" G_GSIZE_FORMAT " in first cache", *size);
-      } else if (trans->cache_caps2 == NULL) {
-        gst_caps_replace (&trans->cache_caps2, caps);
-        trans->cache_caps2_size = *size;
-        GST_DEBUG_OBJECT (trans,
-            "caching %" G_GSIZE_FORMAT " in second cache", *size);
-      } else {
-        GST_DEBUG_OBJECT (trans, "no free spot to cache unit_size");
-      }
+  if (res) {
+    /* and cache the values */
+    if (priv->cache_caps1 == NULL) {
+      gst_caps_replace (&priv->cache_caps1, caps);
+      priv->cache_caps1_size = *size;
+      GST_DEBUG_OBJECT (trans,
+          "caching %" G_GSIZE_FORMAT " in first cache", *size);
+    } else if (priv->cache_caps2 == NULL) {
+      gst_caps_replace (&priv->cache_caps2, caps);
+      priv->cache_caps2_size = *size;
+      GST_DEBUG_OBJECT (trans,
+          "caching %" G_GSIZE_FORMAT " in second cache", *size);
+    } else {
+      GST_DEBUG_OBJECT (trans, "no free spot to cache unit_size");
     }
-  } else {
-    GST_DEBUG_OBJECT (trans, "Sub-class does not implement get_unit_size");
   }
   return res;
 }
 
 static gboolean
-gst_base_transform_sink_event (GstPad * pad, GstEvent * event)
+gst_base_transform_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
 {
   GstBaseTransform *trans;
   GstBaseTransformClass *bclass;
   gboolean ret = TRUE;
 
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (trans == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
+  trans = GST_BASE_TRANSFORM (parent);
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
   if (bclass->sink_event)
@@ -1600,8 +1739,6 @@
   else
     gst_event_unref (event);
 
-  gst_object_unref (trans);
-
   return ret;
 }
 
@@ -1609,6 +1746,7 @@
 gst_base_transform_sink_eventfunc (GstBaseTransform * trans, GstEvent * event)
 {
   gboolean ret = TRUE, forward = TRUE;
+  GstBaseTransformPrivate *priv = trans->priv;
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_START:
@@ -1616,16 +1754,16 @@
     case GST_EVENT_FLUSH_STOP:
       GST_OBJECT_LOCK (trans);
       /* reset QoS parameters */
-      trans->priv->proportion = 1.0;
-      trans->priv->earliest_time = -1;
-      trans->priv->discont = FALSE;
-      trans->priv->processed = 0;
-      trans->priv->dropped = 0;
+      priv->proportion = 1.0;
+      priv->earliest_time = -1;
+      priv->discont = FALSE;
+      priv->processed = 0;
+      priv->dropped = 0;
       GST_OBJECT_UNLOCK (trans);
       /* we need new segment info after the flush. */
       trans->have_segment = FALSE;
       gst_segment_init (&trans->segment, GST_FORMAT_UNDEFINED);
-      trans->priv->position_out = GST_CLOCK_TIME_NONE;
+      priv->position_out = GST_CLOCK_TIME_NONE;
       break;
     case GST_EVENT_EOS:
       break;
@@ -1663,18 +1801,14 @@
 }
 
 static gboolean
-gst_base_transform_src_event (GstPad * pad, GstEvent * event)
+gst_base_transform_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
 {
   GstBaseTransform *trans;
   GstBaseTransformClass *bclass;
   gboolean ret = TRUE;
 
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (trans == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
-
+  trans = GST_BASE_TRANSFORM (parent);
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
   if (bclass->src_event)
@@ -1682,8 +1816,6 @@
   else
     gst_event_unref (event);
 
-  gst_object_unref (trans);
-
   return ret;
 }
 
@@ -1728,6 +1860,7 @@
     GstBuffer ** outbuf)
 {
   GstBaseTransformClass *bclass;
+  GstBaseTransformPrivate *priv = trans->priv;
   GstFlowReturn ret = GST_FLOW_OK;
   gboolean want_in_place;
   GstClockTime running_time;
@@ -1738,9 +1871,9 @@
 
   GST_OBJECT_LOCK (trans->sinkpad);
   reconfigure = GST_PAD_NEEDS_RECONFIGURE (trans->srcpad)
-      || trans->priv->reconfigure;
-  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_NEED_RECONFIGURE);
-  trans->priv->reconfigure = FALSE;
+      || priv->reconfigure;
+  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_FLAG_NEED_RECONFIGURE);
+  priv->reconfigure = FALSE;
   GST_OBJECT_UNLOCK (trans->sinkpad);
 
   if (G_UNLIKELY (reconfigure)) {
@@ -1752,9 +1885,8 @@
     if (incaps == NULL)
       goto no_reconfigure;
 
-    /* if we need to reconfigure we pretend a buffer with new caps arrived. This
-     * will reconfigure the transform with the new output format. We can only
-     * do this if the buffer actually has caps. */
+    /* if we need to reconfigure we pretend new caps arrived. This
+     * will reconfigure the transform with the new output format. */
     if (!gst_base_transform_setcaps (trans, trans->sinkpad, incaps)) {
       gst_caps_unref (incaps);
       goto not_negotiated;
@@ -1777,13 +1909,13 @@
    * or if the class doesn't implement a set_caps function (in which case it doesn't
    * care about caps)
    */
-  if (!trans->negotiated && !trans->passthrough && (bclass->set_caps != NULL))
+  if (!priv->negotiated && !priv->passthrough && (bclass->set_caps != NULL))
     goto not_negotiated;
 
   /* Set discont flag so we can mark the outgoing buffer */
   if (GST_BUFFER_IS_DISCONT (inbuf)) {
     GST_DEBUG_OBJECT (trans, "got DISCONT buffer %p", inbuf);
-    trans->priv->discont = TRUE;
+    priv->discont = TRUE;
   }
 
   /* can only do QoS if the segment is in TIME */
@@ -1803,11 +1935,11 @@
     /* lock for getting the QoS parameters that are set (in a different thread)
      * with the QOS events */
     GST_OBJECT_LOCK (trans);
-    earliest_time = trans->priv->earliest_time;
-    proportion = trans->priv->proportion;
+    earliest_time = priv->earliest_time;
+    proportion = priv->proportion;
     /* check for QoS, don't perform conversion for buffers
      * that are known to be late. */
-    need_skip = trans->priv->qos_enabled &&
+    need_skip = priv->qos_enabled &&
         earliest_time != -1 && running_time <= earliest_time;
     GST_OBJECT_UNLOCK (trans);
 
@@ -1821,7 +1953,7 @@
           GST_TIME_FORMAT " <= %" GST_TIME_FORMAT,
           GST_TIME_ARGS (running_time), GST_TIME_ARGS (earliest_time));
 
-      trans->priv->dropped++;
+      priv->dropped++;
 
       duration = GST_BUFFER_DURATION (inbuf);
       stream_time =
@@ -1834,11 +1966,11 @@
           stream_time, timestamp, duration);
       gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
       gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
-          trans->priv->processed, trans->priv->dropped);
+          priv->processed, priv->dropped);
       gst_element_post_message (GST_ELEMENT_CAST (trans), qos_msg);
 
       /* mark discont for next buffer */
-      trans->priv->discont = TRUE;
+      priv->discont = TRUE;
       goto skip;
     }
   }
@@ -1857,63 +1989,25 @@
   if (ret != GST_FLOW_OK || *outbuf == NULL)
     goto no_buffer;
 
-  if (inbuf == *outbuf) {
-    GST_DEBUG_OBJECT (trans, "reusing input buffer");
-  } else if (trans->passthrough) {
-    /* we are asked to perform a passthrough transform but the input and
-     * output buffers are different. We have to discard the output buffer and
-     * reuse the input buffer. This is rather weird, it means that the prepare
-     * output buffer does something wrong. */
-    GST_WARNING_OBJECT (trans, "passthrough but different buffers, check the "
-        "prepare_output_buffer implementation");
-    gst_buffer_unref (*outbuf);
-    *outbuf = inbuf;
-  } else {
-    /* copy the metadata */
-    if (bclass->copy_metadata)
-      if (!bclass->copy_metadata (trans, inbuf, *outbuf)) {
-        /* something failed, post a warning */
-        GST_ELEMENT_WARNING (trans, STREAM, NOT_IMPLEMENTED,
-            ("could not copy metadata"), (NULL));
-      }
-  }
   GST_DEBUG_OBJECT (trans, "using allocated buffer in %p, out %p", inbuf,
       *outbuf);
 
   /* now perform the needed transform */
-  if (trans->passthrough) {
+  if (priv->passthrough) {
     /* In passthrough mode, give transform_ip a look at the
      * buffer, without making it writable, or just push the
      * data through */
-    if (bclass->transform_ip) {
-      GST_DEBUG_OBJECT (trans, "doing passthrough transform");
+    if (bclass->transform_ip_on_passthrough && bclass->transform_ip) {
+      GST_DEBUG_OBJECT (trans, "doing passthrough transform_ip");
       ret = bclass->transform_ip (trans, *outbuf);
     } else {
       GST_DEBUG_OBJECT (trans, "element is in passthrough");
     }
   } else {
-    want_in_place = (bclass->transform_ip != NULL) && trans->always_in_place;
+    want_in_place = (bclass->transform_ip != NULL) && priv->always_in_place;
 
     if (want_in_place) {
       GST_DEBUG_OBJECT (trans, "doing inplace transform");
-
-      if (inbuf != *outbuf) {
-        guint8 *indata, *outdata;
-        gsize insize, outsize;
-
-        /* Different buffer. The data can still be the same when we are dealing
-         * with subbuffers of the same buffer. Note that because of the FIXME in
-         * prepare_output_buffer() we have decreased the refcounts of inbuf and
-         * outbuf to keep them writable */
-        indata = gst_buffer_map (inbuf, &insize, NULL, GST_MAP_READ);
-        outdata = gst_buffer_map (*outbuf, &outsize, NULL, GST_MAP_WRITE);
-
-        if (indata != outdata)
-          memcpy (outdata, indata, insize);
-
-        gst_buffer_unmap (inbuf, indata, insize);
-        gst_buffer_unmap (*outbuf, outdata, outsize);
-      }
       ret = bclass->transform_ip (trans, *outbuf);
     } else {
       GST_DEBUG_OBJECT (trans, "doing non-inplace transform");
@@ -1939,7 +2033,7 @@
   {
     gst_buffer_unref (inbuf);
     *outbuf = NULL;
-    GST_ELEMENT_ERROR (trans, STREAM, NOT_IMPLEMENTED,
+    GST_ELEMENT_ERROR (trans, STREAM, FORMAT,
         ("not negotiated"), ("not negotiated"));
     return GST_FLOW_NOT_NEGOTIATED;
   }
@@ -1964,15 +2058,15 @@
  * end based on the transform_size result.
  */
 static GstFlowReturn
-gst_base_transform_getrange (GstPad * pad, guint64 offset,
+gst_base_transform_getrange (GstPad * pad, GstObject * parent, guint64 offset,
     guint length, GstBuffer ** buffer)
 {
   GstBaseTransform *trans;
   GstBaseTransformClass *klass;
   GstFlowReturn ret;
-  GstBuffer *inbuf;
+  GstBuffer *inbuf = NULL;
 
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
+  trans = GST_BASE_TRANSFORM (parent);
 
   ret = gst_pad_pull_range (trans->sinkpad, offset, length, &inbuf);
   if (G_UNLIKELY (ret != GST_FLOW_OK))
@@ -1982,13 +2076,9 @@
   if (klass->before_transform)
     klass->before_transform (trans, inbuf);
 
-  GST_BASE_TRANSFORM_LOCK (trans);
   ret = gst_base_transform_handle_buffer (trans, inbuf, buffer);
-  GST_BASE_TRANSFORM_UNLOCK (trans);
 
 done:
-  gst_object_unref (trans);
-
   return ret;
 
   /* ERRORS */
@@ -2001,16 +2091,18 @@
 }
 
 static GstFlowReturn
-gst_base_transform_chain (GstPad * pad, GstBuffer * buffer)
+gst_base_transform_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstBaseTransform *trans;
   GstBaseTransformClass *klass;
+  GstBaseTransformPrivate *priv;
   GstFlowReturn ret;
   GstClockTime position = GST_CLOCK_TIME_NONE;
   GstClockTime timestamp, duration;
   GstBuffer *outbuf = NULL;
 
-  trans = GST_BASE_TRANSFORM (GST_OBJECT_PARENT (pad));
+  trans = GST_BASE_TRANSFORM (parent);
+  priv = trans->priv;
 
   timestamp = GST_BUFFER_TIMESTAMP (buffer);
   duration = GST_BUFFER_DURATION (buffer);
@@ -2028,9 +2120,7 @@
     klass->before_transform (trans, buffer);
 
   /* protect transform method and concurrent buffer alloc */
-  GST_BASE_TRANSFORM_LOCK (trans);
   ret = gst_base_transform_handle_buffer (trans, buffer, &outbuf);
-  GST_BASE_TRANSFORM_UNLOCK (trans);
 
   /* outbuf can be NULL, this means a dropped buffer, if we have a buffer but
    * GST_BASE_TRANSFORM_FLOW_DROPPED we will not push either. */
@@ -2052,27 +2142,31 @@
       }
       if (position_out != GST_CLOCK_TIME_NONE
           && trans->segment.format == GST_FORMAT_TIME)
-        trans->priv->position_out = position_out;
+        priv->position_out = position_out;
 
       /* apply DISCONT flag if the buffer is not yet marked as such */
       if (trans->priv->discont) {
+        GST_DEBUG_OBJECT (trans, "we have a pending DISCONT");
         if (!GST_BUFFER_IS_DISCONT (outbuf)) {
+          GST_DEBUG_OBJECT (trans, "marking DISCONT on output buffer");
           outbuf = gst_buffer_make_writable (outbuf);
           GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
         }
-        trans->priv->discont = FALSE;
+        priv->discont = FALSE;
       }
-      trans->priv->processed++;
+      priv->processed++;
 
       ret = gst_pad_push (trans->srcpad, outbuf);
     } else {
+      GST_DEBUG_OBJECT (trans, "we got return %s", gst_flow_get_name (ret));
       gst_buffer_unref (outbuf);
     }
   }
 
   /* convert internal flow to OK and mark discont for the next buffer. */
   if (ret == GST_BASE_TRANSFORM_FLOW_DROPPED) {
-    trans->priv->discont = TRUE;
+    GST_DEBUG_OBJECT (trans, "dropped a buffer, marking DISCONT");
+    priv->discont = TRUE;
     ret = GST_FLOW_OK;
   }
 
@@ -2120,6 +2214,7 @@
 gst_base_transform_activate (GstBaseTransform * trans, gboolean active)
 {
   GstBaseTransformClass *bclass;
+  GstBaseTransformPrivate *priv = trans->priv;
   gboolean result = TRUE;
 
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
@@ -2127,7 +2222,7 @@
   if (active) {
     GstCaps *incaps, *outcaps;
 
-    if (trans->priv->pad_mode == GST_ACTIVATE_NONE && bclass->start)
+    if (priv->pad_mode == GST_PAD_MODE_NONE && bclass->start)
       result &= bclass->start (trans);
 
     incaps = gst_pad_get_current_caps (trans->sinkpad);
@@ -2135,20 +2230,20 @@
 
     GST_OBJECT_LOCK (trans);
     if (incaps && outcaps)
-      trans->have_same_caps =
-          gst_caps_is_equal (incaps, outcaps) || trans->passthrough;
+      priv->have_same_caps =
+          gst_caps_is_equal (incaps, outcaps) || priv->passthrough;
     else
-      trans->have_same_caps = trans->passthrough;
-    GST_DEBUG_OBJECT (trans, "have_same_caps %d", trans->have_same_caps);
-    trans->negotiated = FALSE;
+      priv->have_same_caps = priv->passthrough;
+    GST_DEBUG_OBJECT (trans, "have_same_caps %d", priv->have_same_caps);
+    priv->negotiated = FALSE;
     trans->have_segment = FALSE;
     gst_segment_init (&trans->segment, GST_FORMAT_UNDEFINED);
-    trans->priv->position_out = GST_CLOCK_TIME_NONE;
-    trans->priv->proportion = 1.0;
-    trans->priv->earliest_time = -1;
-    trans->priv->discont = FALSE;
-    trans->priv->processed = 0;
-    trans->priv->dropped = 0;
+    priv->position_out = GST_CLOCK_TIME_NONE;
+    priv->proportion = 1.0;
+    priv->earliest_time = -1;
+    priv->discont = FALSE;
+    priv->processed = 0;
+    priv->dropped = 0;
     GST_OBJECT_UNLOCK (trans);
 
     if (incaps)
@@ -2161,59 +2256,76 @@
     GST_PAD_STREAM_LOCK (trans->sinkpad);
     GST_PAD_STREAM_UNLOCK (trans->sinkpad);
 
-    trans->have_same_caps = FALSE;
+    priv->have_same_caps = FALSE;
     /* We can only reset the passthrough mode if the instance told us to 
        handle it in configure_caps */
     if (bclass->passthrough_on_same_caps) {
       gst_base_transform_set_passthrough (trans, FALSE);
     }
-    gst_caps_replace (&trans->cache_caps1, NULL);
-    gst_caps_replace (&trans->cache_caps2, NULL);
+    gst_caps_replace (&priv->cache_caps1, NULL);
+    gst_caps_replace (&priv->cache_caps2, NULL);
 
-    if (trans->priv->pad_mode != GST_ACTIVATE_NONE && bclass->stop)
+    if (priv->pad_mode != GST_PAD_MODE_NONE && bclass->stop)
       result &= bclass->stop (trans);
 
-    gst_base_transform_set_allocation (trans, NULL, NULL, 0, 0);
+    gst_base_transform_set_allocation (trans, NULL, NULL, NULL, NULL);
   }
 
   return result;
 }
 
 static gboolean
-gst_base_transform_sink_activate_push (GstPad * pad, gboolean active)
-{
-  gboolean result = TRUE;
-  GstBaseTransform *trans;
-
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
-
-  result = gst_base_transform_activate (trans, active);
-
-  if (result)
-    trans->priv->pad_mode = active ? GST_ACTIVATE_PUSH : GST_ACTIVATE_NONE;
-
-  gst_object_unref (trans);
-
-  return result;
-}
-
-static gboolean
-gst_base_transform_src_activate_pull (GstPad * pad, gboolean active)
+gst_base_transform_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
   gboolean result = FALSE;
   GstBaseTransform *trans;
 
-  trans = GST_BASE_TRANSFORM (gst_pad_get_parent (pad));
+  trans = GST_BASE_TRANSFORM (parent);
 
-  result = gst_pad_activate_pull (trans->sinkpad, active);
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+    {
+      result = gst_base_transform_activate (trans, active);
 
-  if (result)
-    result &= gst_base_transform_activate (trans, active);
+      if (result)
+        trans->priv->pad_mode = active ? GST_PAD_MODE_PUSH : GST_PAD_MODE_NONE;
 
-  if (result)
-    trans->priv->pad_mode = active ? GST_ACTIVATE_PULL : GST_ACTIVATE_NONE;
+      break;
+    }
+    default:
+      result = TRUE;
+      break;
+  }
+  return result;
+}
 
-  gst_object_unref (trans);
+static gboolean
+gst_base_transform_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean result = FALSE;
+  GstBaseTransform *trans;
+
+  trans = GST_BASE_TRANSFORM (parent);
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+    {
+      result =
+          gst_pad_activate_mode (trans->sinkpad, GST_PAD_MODE_PULL, active);
+
+      if (result)
+        result &= gst_base_transform_activate (trans, active);
+
+      if (result)
+        trans->priv->pad_mode = active ? mode : GST_PAD_MODE_NONE;
+      break;
+    }
+    default:
+      result = TRUE;
+      break;
+  }
 
   return result;
 }
@@ -2244,12 +2356,12 @@
   GST_OBJECT_LOCK (trans);
   if (passthrough == FALSE) {
     if (bclass->transform_ip || bclass->transform)
-      trans->passthrough = FALSE;
+      trans->priv->passthrough = FALSE;
   } else {
-    trans->passthrough = TRUE;
+    trans->priv->passthrough = TRUE;
   }
 
-  GST_DEBUG_OBJECT (trans, "set passthrough %d", trans->passthrough);
+  GST_DEBUG_OBJECT (trans, "set passthrough %d", trans->priv->passthrough);
   GST_OBJECT_UNLOCK (trans);
 }
 
@@ -2271,7 +2383,7 @@
   g_return_val_if_fail (GST_IS_BASE_TRANSFORM (trans), FALSE);
 
   GST_OBJECT_LOCK (trans);
-  result = trans->passthrough;
+  result = trans->priv->passthrough;
   GST_OBJECT_UNLOCK (trans);
 
   return result;
@@ -2306,12 +2418,12 @@
   if (in_place) {
     if (bclass->transform_ip) {
       GST_DEBUG_OBJECT (trans, "setting in_place TRUE");
-      trans->always_in_place = TRUE;
+      trans->priv->always_in_place = TRUE;
     }
   } else {
     if (bclass->transform) {
       GST_DEBUG_OBJECT (trans, "setting in_place FALSE");
-      trans->always_in_place = FALSE;
+      trans->priv->always_in_place = FALSE;
     }
   }
 
@@ -2336,7 +2448,7 @@
   g_return_val_if_fail (GST_IS_BASE_TRANSFORM (trans), FALSE);
 
   GST_OBJECT_LOCK (trans);
-  result = trans->always_in_place;
+  result = trans->priv->always_in_place;
   GST_OBJECT_UNLOCK (trans);
 
   return result;
@@ -2362,7 +2474,6 @@
 gst_base_transform_update_qos (GstBaseTransform * trans,
     gdouble proportion, GstClockTimeDiff diff, GstClockTime timestamp)
 {
-
   g_return_if_fail (GST_IS_BASE_TRANSFORM (trans));
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_QOS, trans,
@@ -2452,19 +2563,15 @@
 }
 
 /**
- * gst_base_transform_suggest:
+ * gst_base_transform_reconfigure_sink:
  * @trans: a #GstBaseTransform
- * @caps: (transfer none): caps to suggest
- * @size: buffer size to suggest
  *
- * Instructs @trans to suggest new @caps upstream. A copy of @caps will be
- * taken.
- *
- * Since: 0.10.21
+ * Instructs @trans to request renegotiation upstream. This function is
+ * typically called after properties on the transform were set that
+ * influence the input format.
  */
 void
-gst_base_transform_suggest (GstBaseTransform * trans, GstCaps * caps,
-    gsize size)
+gst_base_transform_reconfigure_sink (GstBaseTransform * trans)
 {
   g_return_if_fail (GST_IS_BASE_TRANSFORM (trans));
 
@@ -2475,7 +2582,7 @@
 }
 
 /**
- * gst_base_transform_reconfigure:
+ * gst_base_transform_reconfigure_src:
  * @trans: a #GstBaseTransform
  *
  * Instructs @trans to renegotiate a new downstream transform on the next
@@ -2485,7 +2592,7 @@
  * Since: 0.10.21
  */
 void
-gst_base_transform_reconfigure (GstBaseTransform * trans)
+gst_base_transform_reconfigure_src (GstBaseTransform * trans)
 {
   g_return_if_fail (GST_IS_BASE_TRANSFORM (trans));
 
diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h
index 16eed7a..1ebb9d9 100644
--- a/libs/gst/base/gstbasetransform.h
+++ b/libs/gst/base/gstbasetransform.h
@@ -77,26 +77,6 @@
  */
 #define GST_BASE_TRANSFORM_FLOW_DROPPED   GST_FLOW_CUSTOM_SUCCESS
 
-/**
- * GST_BASE_TRANSFORM_LOCK:
- * @obj: base transform instance
- *
- * Obtain a lock to protect the transform function from concurrent access.
- *
- * Since: 0.10.13
- */
-#define GST_BASE_TRANSFORM_LOCK(obj)   g_mutex_lock (GST_BASE_TRANSFORM_CAST (obj)->transform_lock)
-
-/**
- * GST_BASE_TRANSFORM_UNLOCK:
- * @obj: base transform instance
- *
- * Release the lock that protects the transform function from concurrent access.
- *
- * Since: 0.10.13
- */
-#define GST_BASE_TRANSFORM_UNLOCK(obj) g_mutex_unlock (GST_BASE_TRANSFORM_CAST (obj)->transform_lock)
-
 typedef struct _GstBaseTransform GstBaseTransform;
 typedef struct _GstBaseTransformClass GstBaseTransformClass;
 typedef struct _GstBaseTransformPrivate GstBaseTransformPrivate;
@@ -114,25 +94,10 @@
   GstPad	*sinkpad;
   GstPad	*srcpad;
 
-  /* Set by sub-class */
-  gboolean	 passthrough;
-  gboolean	 always_in_place;
-
-  GstCaps	*cache_caps1;
-  gsize		 cache_caps1_size;
-  GstCaps	*cache_caps2;
-  gsize		 cache_caps2_size;
-  gboolean	 have_same_caps;
-
-  gboolean	 negotiated;
-
-  gboolean       have_segment;
-
   /* MT-protected (with STREAM_LOCK) */
+  gboolean       have_segment;
   GstSegment     segment;
 
-  GMutex	*transform_lock;
-
   /*< private >*/
   GstBaseTransformPrivate *priv;
 
@@ -142,13 +107,21 @@
 /**
  * GstBaseTransformClass:
  * @parent_class:   Element parent class
- * @passthrough_on_same_caps: If set to TRUE, passthrough mode will be
+ * @passthrough_on_same_caps: If set to %TRUE, passthrough mode will be
  *                            automatically enabled if the caps are the same.
+ *                            Set to %FALSE by default.
+ * @transform_ip_on_passthrough: If set to %TRUE, @transform_ip will be called in
+ *                           passthrough mode. The passed buffer might not be
+ *                           writable. When %FALSE, neither @transform nor
+ *                           @transform_ip will be called in passthrough mode.
+ *                           Set to %TRUE by default.
  * @transform_caps: Optional.  Given the pad in this direction and the given
  *                  caps, what caps are allowed on the other pad in this
  *                  element ?
  * @fixate_caps:    Optional. Given the pad in this direction and the given
- *                  caps, fixate the caps on the other pad.
+ *                  caps, fixate the caps on the other pad. The function takes
+ *                  ownership of @othercaps and returns a fixated version of
+ *                  @othercaps. @othercaps is not guaranteed to be writable.
  * @accept_caps:    Optional. Since 0.10.30
  *                  Subclasses can override this method to check if @caps can be
  *                  handled by the element. The default implementation might not be
@@ -158,14 +131,25 @@
  *                  Handle a requested query. Subclasses that implement this
  *                  should must chain up to the parent if they didn't handle the
  *                  query
- * @propose_allocation: Propose buffer allocation parameters for upstream elements.
- *                      This function is only called when not operating in
- *                      passthrough mode. The default implementation is NULL.
  * @decide_allocation: Setup the allocation parameters for allocating output
  *                    buffers. The passed in query contains the result of the
  *                    downstream allocation query. This function is only called
  *                    when not operating in passthrough mode. The default
- *                    implementation is NULL.
+ *                    implementation will remove all memory dependent metadata.
+ *                    If there is ia @filter_meta method implementation, it will
+ *                    be called for all metadata API in the downstream query,
+ *                    otherwise the metadata API is removed.
+ * @filter_meta: Return TRUE if the metadata API should be proposed in the
+ *               upstream allocation query. The default implementation is NULL
+ *               and will cause all metadata to be removed.
+ * @propose_allocation: Propose buffer allocation parameters for upstream elements.
+ *                      This function must be implemented if the element reads or
+ *                      writes the buffer content. The query that was passed to
+ *                      the decide_allocation is passed in this method (or NULL
+ *                      when the element is in passthrough mode). The default
+ *                      implementation will pass the query downstream when in
+ *                      passthrough mode and will copy all the filtered metadata
+ *                      API in non-passthrough mode.
  * @transform_size: Optional. Given the size of a buffer in the given direction
  *                  with the given caps, calculate the size in bytes of a buffer
  *                  on the other pad with the given other caps.
@@ -198,6 +182,10 @@
  *                 Copy the metadata from the input buffer to the output buffer.
  *                 The default implementation will copy the flags, timestamps and
  *                 offsets of the buffer.
+ * @transform_meta: Optional. Transform the metadata on the input buffer to the
+ *                  output buffer. By default this method is NULL and no
+ *                  metadata is copied. subclasses can implement this method and
+ *                  return TRUE if the metadata is to be copied.
  * @before_transform: Optional. Since 0.10.22
  *                    This method is called right before the base class will
  *                    start processing. Dynamic properties or other delayed
@@ -219,12 +207,13 @@
 
   /*< public >*/
   gboolean       passthrough_on_same_caps;
+  gboolean       transform_ip_on_passthrough;
 
   /* virtual methods for subclasses */
   GstCaps*	(*transform_caps) (GstBaseTransform *trans,
                                    GstPadDirection direction,
                                    GstCaps *caps, GstCaps *filter);
-  void		(*fixate_caps)	  (GstBaseTransform *trans,
+  GstCaps*	(*fixate_caps)	  (GstBaseTransform *trans,
                                    GstPadDirection direction, GstCaps *caps,
                                    GstCaps *othercaps);
   gboolean      (*accept_caps)    (GstBaseTransform *trans, GstPadDirection direction,
@@ -234,10 +223,13 @@
   gboolean      (*query)          (GstBaseTransform *trans, GstPadDirection direction,
                                    GstQuery *query);
 
-  /* propose allocation query parameters for input buffers */
-  gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *query);
   /* decide allocation query for output buffers */
-  gboolean      (*decide_allocation) (GstBaseTransform *trans, GstQuery *query);
+  gboolean      (*decide_allocation)  (GstBaseTransform *trans, GstQuery *query);
+  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query, GType api);
+
+  /* propose allocation query parameters for input buffers */
+  gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query,
+                                       GstQuery *query);
 
   /* transform size */
   gboolean      (*transform_size) (GstBaseTransform *trans,
@@ -259,8 +251,11 @@
   GstFlowReturn (*prepare_output_buffer) (GstBaseTransform * trans,
                                           GstBuffer *input, GstBuffer **outbuf);
 
-  gboolean      (*copy_metadata)     (GstBaseTransform * trans, GstBuffer *input,
+  /* metadata */
+  gboolean      (*copy_metadata)     (GstBaseTransform *trans, GstBuffer *input,
                                       GstBuffer *outbuf);
+  gboolean      (*transform_meta)    (GstBaseTransform *trans, GstBuffer *outbuf,
+                                      GstMeta *meta, GstBuffer *inbuf);
 
   void          (*before_transform)  (GstBaseTransform *trans, GstBuffer *buffer);
 
@@ -294,9 +289,8 @@
 void            gst_base_transform_set_gap_aware    (GstBaseTransform *trans,
                                                      gboolean gap_aware);
 
-void		gst_base_transform_suggest          (GstBaseTransform *trans,
-	                                             GstCaps *caps, gsize size);
-void		gst_base_transform_reconfigure      (GstBaseTransform *trans);
+void		gst_base_transform_reconfigure_sink (GstBaseTransform *trans);
+void		gst_base_transform_reconfigure_src  (GstBaseTransform *trans);
 G_END_DECLS
 
 #endif /* __GST_BASE_TRANSFORM_H__ */
diff --git a/libs/gst/base/gstbitreader-docs.h b/libs/gst/base/gstbitreader-docs.h
index ee1a04f..8c4fc6f 100644
--- a/libs/gst/base/gstbitreader-docs.h
+++ b/libs/gst/base/gstbitreader-docs.h
@@ -42,7 +42,7 @@
  *
  * Skips until the next byte without checking if there are enough bits
  * available in the bit reader.
- * 
+ *
  * Since: 0.10.31
  */
 void gst_bit_reader_skip_to_byte_unchecked (GstBitReader * reader);
@@ -56,7 +56,7 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 8 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint8 gst_bit_reader_peek_bits_uint8_unchecked (const GstBitReader *reader, guint nbits);
@@ -70,7 +70,7 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 8 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint8 gst_bit_reader_get_bits_uint8_unchecked (GstBitReader *reader, guint nbits);
@@ -84,7 +84,7 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 16 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint16 gst_bit_reader_peek_bits_uint16_unchecked (const GstBitReader *reader, guint nbits);
@@ -98,7 +98,7 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 16 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint16 gst_bit_reader_get_bits_uint16_unchecked (GstBitReader *reader, guint nbits);
@@ -112,7 +112,7 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 32 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint32 gst_bit_reader_peek_bits_uint32_unchecked (const GstBitReader *reader, guint nbits);
@@ -126,7 +126,7 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 32 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint32 gst_bit_reader_get_bits_uint32_unchecked (GstBitReader *reader, guint nbits);
@@ -140,7 +140,7 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 64 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint64 gst_bit_reader_peek_bits_uint64_unchecked (const GstBitReader *reader, guint nbits);
@@ -154,7 +154,7 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 64 bit integer with the bits.
- * 
+ *
  * Since: 0.10.31
  */
 guint64 gst_bit_reader_get_bits_uint64_unchecked (GstBitReader *reader, guint nbits);
diff --git a/libs/gst/base/gstbitreader.h b/libs/gst/base/gstbitreader.h
index e42e3bf..5233612 100644
--- a/libs/gst/base/gstbitreader.h
+++ b/libs/gst/base/gstbitreader.h
@@ -44,32 +44,35 @@
 
   guint byte;  /* Byte position */
   guint bit;   /* Bit position in the current byte */
+
+  /* < private > */
+  gpointer _gst_reserved[GST_PADDING];
 } GstBitReader;
 
-GstBitReader * gst_bit_reader_new (const guint8 *data, guint size);
-void gst_bit_reader_free (GstBitReader *reader);
+GstBitReader *  gst_bit_reader_new              (const guint8 *data, guint size) G_GNUC_MALLOC;
+void            gst_bit_reader_free             (GstBitReader *reader);
 
-void gst_bit_reader_init (GstBitReader *reader, const guint8 *data, guint size);
+void            gst_bit_reader_init             (GstBitReader *reader, const guint8 *data, guint size);
 
-gboolean gst_bit_reader_set_pos (GstBitReader *reader, guint pos);
+gboolean        gst_bit_reader_set_pos          (GstBitReader *reader, guint pos);
+guint           gst_bit_reader_get_pos          (const GstBitReader *reader);
 
-guint gst_bit_reader_get_pos (const GstBitReader *reader);
-guint gst_bit_reader_get_remaining (const GstBitReader *reader);
+guint           gst_bit_reader_get_remaining    (const GstBitReader *reader);
 
-guint gst_bit_reader_get_size (const GstBitReader *reader);
+guint           gst_bit_reader_get_size         (const GstBitReader *reader);
 
-gboolean gst_bit_reader_skip (GstBitReader *reader, guint nbits);
-gboolean gst_bit_reader_skip_to_byte (GstBitReader *reader);
+gboolean        gst_bit_reader_skip             (GstBitReader *reader, guint nbits);
+gboolean        gst_bit_reader_skip_to_byte     (GstBitReader *reader);
 
-gboolean gst_bit_reader_get_bits_uint8 (GstBitReader *reader, guint8 *val, guint nbits);
-gboolean gst_bit_reader_get_bits_uint16 (GstBitReader *reader, guint16 *val, guint nbits);
-gboolean gst_bit_reader_get_bits_uint32 (GstBitReader *reader, guint32 *val, guint nbits);
-gboolean gst_bit_reader_get_bits_uint64 (GstBitReader *reader, guint64 *val, guint nbits);
+gboolean        gst_bit_reader_get_bits_uint8   (GstBitReader *reader, guint8 *val, guint nbits);
+gboolean        gst_bit_reader_get_bits_uint16  (GstBitReader *reader, guint16 *val, guint nbits);
+gboolean        gst_bit_reader_get_bits_uint32  (GstBitReader *reader, guint32 *val, guint nbits);
+gboolean        gst_bit_reader_get_bits_uint64  (GstBitReader *reader, guint64 *val, guint nbits);
 
-gboolean gst_bit_reader_peek_bits_uint8 (const GstBitReader *reader, guint8 *val, guint nbits);
-gboolean gst_bit_reader_peek_bits_uint16 (const GstBitReader *reader, guint16 *val, guint nbits);
-gboolean gst_bit_reader_peek_bits_uint32 (const GstBitReader *reader, guint32 *val, guint nbits);
-gboolean gst_bit_reader_peek_bits_uint64 (const GstBitReader *reader, guint64 *val, guint nbits);
+gboolean        gst_bit_reader_peek_bits_uint8  (const GstBitReader *reader, guint8 *val, guint nbits);
+gboolean        gst_bit_reader_peek_bits_uint16 (const GstBitReader *reader, guint16 *val, guint nbits);
+gboolean        gst_bit_reader_peek_bits_uint32 (const GstBitReader *reader, guint32 *val, guint nbits);
+gboolean        gst_bit_reader_peek_bits_uint64 (const GstBitReader *reader, guint64 *val, guint nbits);
 
 /**
  * GST_BIT_READER_INIT:
diff --git a/libs/gst/base/gstbytereader-docs.h b/libs/gst/base/gstbytereader-docs.h
index 01b8326..e4b6e35 100644
--- a/libs/gst/base/gstbytereader-docs.h
+++ b/libs/gst/base/gstbytereader-docs.h
@@ -80,10 +80,10 @@
  *
  * Since: 0.10.25
  */
-guint8 gst_byte_reader_get_uint8_unchecked (GstByteReader * reader);
-guint8 gst_byte_reader_peek_uint8_unchecked (GstByteReader * reader);
-gint8 gst_byte_reader_get_int8_unchecked (GstByteReader * reader);
-gint8 gst_byte_reader_peek_int8_unchecked (GstByteReader * reader);
+guint8  gst_byte_reader_get_uint8_unchecked     (GstByteReader * reader);
+guint8  gst_byte_reader_peek_uint8_unchecked    (GstByteReader * reader);
+gint8   gst_byte_reader_get_int8_unchecked      (GstByteReader * reader);
+gint8   gst_byte_reader_peek_int8_unchecked     (GstByteReader * reader);
 
 /**
  * gst_byte_reader_get_uint16_le_unchecked:
@@ -181,14 +181,14 @@
  *
  * Since: 0.10.25
  */
-guint16 gst_byte_reader_get_uint16_le_unchecked (GstByteReader * reader);
-guint16 gst_byte_reader_get_uint16_be_unchecked (GstByteReader * reader);
+guint16 gst_byte_reader_get_uint16_le_unchecked  (GstByteReader * reader);
+guint16 gst_byte_reader_get_uint16_be_unchecked  (GstByteReader * reader);
 guint16 gst_byte_reader_peek_uint16_le_unchecked (GstByteReader * reader);
 guint16 gst_byte_reader_peek_uint16_be_unchecked (GstByteReader * reader);
-gint16 gst_byte_reader_get_int16_le_unchecked (GstByteReader * reader);
-gint16 gst_byte_reader_get_int16_be_unchecked (GstByteReader * reader);
-gint16 gst_byte_reader_peek_int16_le_unchecked (GstByteReader * reader);
-gint16 gst_byte_reader_peek_int16_be_unchecked (GstByteReader * reader);
+gint16  gst_byte_reader_get_int16_le_unchecked   (GstByteReader * reader);
+gint16  gst_byte_reader_get_int16_be_unchecked   (GstByteReader * reader);
+gint16  gst_byte_reader_peek_int16_le_unchecked  (GstByteReader * reader);
+gint16  gst_byte_reader_peek_int16_be_unchecked  (GstByteReader * reader);
 
 /**
  * gst_byte_reader_get_uint24_le_unchecked:
@@ -286,14 +286,14 @@
  *
  * Since: 0.10.25
  */
-guint32 gst_byte_reader_get_uint24_le_unchecked (GstByteReader * reader);
-guint32 gst_byte_reader_get_uint24_be_unchecked (GstByteReader * reader);
+guint32 gst_byte_reader_get_uint24_le_unchecked  (GstByteReader * reader);
+guint32 gst_byte_reader_get_uint24_be_unchecked  (GstByteReader * reader);
 guint32 gst_byte_reader_peek_uint24_le_unchecked (GstByteReader * reader);
 guint32 gst_byte_reader_peek_uint24_be_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_get_int24_le_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_get_int24_be_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_peek_int24_le_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_peek_int24_be_unchecked (GstByteReader * reader);
+gint32  gst_byte_reader_get_int24_le_unchecked   (GstByteReader * reader);
+gint32  gst_byte_reader_get_int24_be_unchecked   (GstByteReader * reader);
+gint32  gst_byte_reader_peek_int24_le_unchecked  (GstByteReader * reader);
+gint32  gst_byte_reader_peek_int24_be_unchecked  (GstByteReader * reader);
 
 /**
  * gst_byte_reader_get_uint32_le_unchecked:
@@ -391,14 +391,14 @@
  *
  * Since: 0.10.25
  */
-guint32 gst_byte_reader_get_uint32_le_unchecked (GstByteReader * reader);
-guint32 gst_byte_reader_get_uint32_be_unchecked (GstByteReader * reader);
+guint32 gst_byte_reader_get_uint32_le_unchecked  (GstByteReader * reader);
+guint32 gst_byte_reader_get_uint32_be_unchecked  (GstByteReader * reader);
 guint32 gst_byte_reader_peek_uint32_le_unchecked (GstByteReader * reader);
 guint32 gst_byte_reader_peek_uint32_be_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_get_int32_le_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_get_int32_be_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_peek_int32_le_unchecked (GstByteReader * reader);
-gint32 gst_byte_reader_peek_int32_be_unchecked (GstByteReader * reader);
+gint32  gst_byte_reader_get_int32_le_unchecked   (GstByteReader * reader);
+gint32  gst_byte_reader_get_int32_be_unchecked   (GstByteReader * reader);
+gint32  gst_byte_reader_peek_int32_le_unchecked  (GstByteReader * reader);
+gint32  gst_byte_reader_peek_int32_be_unchecked  (GstByteReader * reader);
 
 /**
  * gst_byte_reader_get_uint64_le_unchecked:
@@ -496,14 +496,14 @@
  *
  * Since: 0.10.25
  */
-guint64 gst_byte_reader_get_uint64_le_unchecked (GstByteReader * reader);
-guint64 gst_byte_reader_get_uint64_be_unchecked (GstByteReader * reader);
+guint64 gst_byte_reader_get_uint64_le_unchecked  (GstByteReader * reader);
+guint64 gst_byte_reader_get_uint64_be_unchecked  (GstByteReader * reader);
 guint64 gst_byte_reader_peek_uint64_le_unchecked (GstByteReader * reader);
 guint64 gst_byte_reader_peek_uint64_be_unchecked (GstByteReader * reader);
-gint64 gst_byte_reader_get_int64_le_unchecked (GstByteReader * reader);
-gint64 gst_byte_reader_get_int64_be_unchecked (GstByteReader * reader);
-gint64 gst_byte_reader_peek_int64_le_unchecked (GstByteReader * reader);
-gint64 gst_byte_reader_peek_int64_be_unchecked (GstByteReader * reader);
+gint64  gst_byte_reader_get_int64_le_unchecked   (GstByteReader * reader);
+gint64  gst_byte_reader_get_int64_be_unchecked   (GstByteReader * reader);
+gint64  gst_byte_reader_peek_int64_le_unchecked  (GstByteReader * reader);
+gint64  gst_byte_reader_peek_int64_be_unchecked  (GstByteReader * reader);
 
 /**
  * gst_byte_reader_get_float32_le_unchecked:
@@ -594,10 +594,10 @@
  * Since: 0.10.25
  */
 
-gfloat  gst_byte_reader_get_float32_le_unchecked (GstByteReader * reader);
-gfloat  gst_byte_reader_get_float32_be_unchecked (GstByteReader * reader);
-gdouble gst_byte_reader_get_float64_le_unchecked (GstByteReader * reader);
-gdouble gst_byte_reader_get_float64_be_unchecked (GstByteReader * reader);
+gfloat  gst_byte_reader_get_float32_le_unchecked  (GstByteReader * reader);
+gfloat  gst_byte_reader_get_float32_be_unchecked  (GstByteReader * reader);
+gdouble gst_byte_reader_get_float64_le_unchecked  (GstByteReader * reader);
+gdouble gst_byte_reader_get_float64_be_unchecked  (GstByteReader * reader);
 
 gfloat  gst_byte_reader_peek_float32_le_unchecked (GstByteReader * reader);
 gfloat  gst_byte_reader_peek_float32_be_unchecked (GstByteReader * reader);
diff --git a/libs/gst/base/gstbytereader.h b/libs/gst/base/gstbytereader.h
index 9c3c4f4..2accb10 100644
--- a/libs/gst/base/gstbytereader.h
+++ b/libs/gst/base/gstbytereader.h
@@ -41,87 +41,90 @@
   guint size;
 
   guint byte;  /* Byte position */
+
+  /* < private > */
+  gpointer _gst_reserved[GST_PADDING];
 } GstByteReader;
 
-GstByteReader * gst_byte_reader_new (const guint8 *data, guint size);
-void gst_byte_reader_free (GstByteReader *reader);
+GstByteReader * gst_byte_reader_new             (const guint8 *data, guint size) G_GNUC_MALLOC;
+void            gst_byte_reader_free            (GstByteReader *reader);
 
-void gst_byte_reader_init (GstByteReader *reader, const guint8 *data, guint size);
+void            gst_byte_reader_init            (GstByteReader *reader, const guint8 *data, guint size);
 
-gboolean gst_byte_reader_set_pos (GstByteReader *reader, guint pos);
+gboolean        gst_byte_reader_set_pos         (GstByteReader *reader, guint pos);
+guint           gst_byte_reader_get_pos         (const GstByteReader *reader);
 
-guint gst_byte_reader_get_pos (const GstByteReader *reader);
-guint gst_byte_reader_get_remaining (const GstByteReader *reader);
+guint           gst_byte_reader_get_remaining   (const GstByteReader *reader);
 
-guint gst_byte_reader_get_size (const GstByteReader *reader);
+guint           gst_byte_reader_get_size        (const GstByteReader *reader);
 
-gboolean gst_byte_reader_skip (GstByteReader *reader, guint nbytes);
+gboolean        gst_byte_reader_skip            (GstByteReader *reader, guint nbytes);
 
-gboolean gst_byte_reader_get_uint8 (GstByteReader *reader, guint8 *val);
-gboolean gst_byte_reader_get_int8 (GstByteReader *reader, gint8 *val);
-gboolean gst_byte_reader_get_uint16_le (GstByteReader *reader, guint16 *val);
-gboolean gst_byte_reader_get_int16_le (GstByteReader *reader, gint16 *val);
-gboolean gst_byte_reader_get_uint16_be (GstByteReader *reader, guint16 *val);
-gboolean gst_byte_reader_get_int16_be (GstByteReader *reader, gint16 *val);
-gboolean gst_byte_reader_get_uint24_le (GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_get_int24_le (GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_get_uint24_be (GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_get_int24_be (GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_get_uint32_le (GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_get_int32_le (GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_get_uint32_be (GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_get_int32_be (GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_get_uint64_le (GstByteReader *reader, guint64 *val);
-gboolean gst_byte_reader_get_int64_le (GstByteReader *reader, gint64 *val);
-gboolean gst_byte_reader_get_uint64_be (GstByteReader *reader, guint64 *val);
-gboolean gst_byte_reader_get_int64_be (GstByteReader *reader, gint64 *val);
+gboolean        gst_byte_reader_get_uint8       (GstByteReader *reader, guint8 *val);
+gboolean        gst_byte_reader_get_int8        (GstByteReader *reader, gint8 *val);
+gboolean        gst_byte_reader_get_uint16_le   (GstByteReader *reader, guint16 *val);
+gboolean        gst_byte_reader_get_int16_le    (GstByteReader *reader, gint16 *val);
+gboolean        gst_byte_reader_get_uint16_be   (GstByteReader *reader, guint16 *val);
+gboolean        gst_byte_reader_get_int16_be    (GstByteReader *reader, gint16 *val);
+gboolean        gst_byte_reader_get_uint24_le   (GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_get_int24_le    (GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_get_uint24_be   (GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_get_int24_be    (GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_get_uint32_le   (GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_get_int32_le    (GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_get_uint32_be   (GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_get_int32_be    (GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_get_uint64_le   (GstByteReader *reader, guint64 *val);
+gboolean        gst_byte_reader_get_int64_le    (GstByteReader *reader, gint64 *val);
+gboolean        gst_byte_reader_get_uint64_be   (GstByteReader *reader, guint64 *val);
+gboolean        gst_byte_reader_get_int64_be    (GstByteReader *reader, gint64 *val);
 
-gboolean gst_byte_reader_peek_uint8 (const GstByteReader *reader, guint8 *val);
-gboolean gst_byte_reader_peek_int8 (const GstByteReader *reader, gint8 *val);
-gboolean gst_byte_reader_peek_uint16_le (const GstByteReader *reader, guint16 *val);
-gboolean gst_byte_reader_peek_int16_le (const GstByteReader *reader, gint16 *val);
-gboolean gst_byte_reader_peek_uint16_be (const GstByteReader *reader, guint16 *val);
-gboolean gst_byte_reader_peek_int16_be (const GstByteReader *reader, gint16 *val);
-gboolean gst_byte_reader_peek_uint24_le (const GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_peek_int24_le (const GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_peek_uint24_be (const GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_peek_int24_be (const GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_peek_uint32_le (const GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_peek_int32_le (const GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_peek_uint32_be (const GstByteReader *reader, guint32 *val);
-gboolean gst_byte_reader_peek_int32_be (const GstByteReader *reader, gint32 *val);
-gboolean gst_byte_reader_peek_uint64_le (const GstByteReader *reader, guint64 *val);
-gboolean gst_byte_reader_peek_int64_le (const GstByteReader *reader, gint64 *val);
-gboolean gst_byte_reader_peek_uint64_be (const GstByteReader *reader, guint64 *val);
-gboolean gst_byte_reader_peek_int64_be (const GstByteReader *reader, gint64 *val);
+gboolean        gst_byte_reader_peek_uint8      (const GstByteReader *reader, guint8 *val);
+gboolean        gst_byte_reader_peek_int8       (const GstByteReader *reader, gint8 *val);
+gboolean        gst_byte_reader_peek_uint16_le  (const GstByteReader *reader, guint16 *val);
+gboolean        gst_byte_reader_peek_int16_le   (const GstByteReader *reader, gint16 *val);
+gboolean        gst_byte_reader_peek_uint16_be  (const GstByteReader *reader, guint16 *val);
+gboolean        gst_byte_reader_peek_int16_be   (const GstByteReader *reader, gint16 *val);
+gboolean        gst_byte_reader_peek_uint24_le  (const GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_peek_int24_le   (const GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_peek_uint24_be  (const GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_peek_int24_be   (const GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_peek_uint32_le  (const GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_peek_int32_le   (const GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_peek_uint32_be  (const GstByteReader *reader, guint32 *val);
+gboolean        gst_byte_reader_peek_int32_be   (const GstByteReader *reader, gint32 *val);
+gboolean        gst_byte_reader_peek_uint64_le  (const GstByteReader *reader, guint64 *val);
+gboolean        gst_byte_reader_peek_int64_le   (const GstByteReader *reader, gint64 *val);
+gboolean        gst_byte_reader_peek_uint64_be  (const GstByteReader *reader, guint64 *val);
+gboolean        gst_byte_reader_peek_int64_be   (const GstByteReader *reader, gint64 *val);
 
-gboolean gst_byte_reader_get_float32_le (GstByteReader *reader, gfloat *val);
-gboolean gst_byte_reader_get_float32_be (GstByteReader *reader, gfloat *val);
-gboolean gst_byte_reader_get_float64_le (GstByteReader *reader, gdouble *val);
-gboolean gst_byte_reader_get_float64_be (GstByteReader *reader, gdouble *val);
+gboolean        gst_byte_reader_get_float32_le  (GstByteReader *reader, gfloat *val);
+gboolean        gst_byte_reader_get_float32_be  (GstByteReader *reader, gfloat *val);
+gboolean        gst_byte_reader_get_float64_le  (GstByteReader *reader, gdouble *val);
+gboolean        gst_byte_reader_get_float64_be  (GstByteReader *reader, gdouble *val);
 
-gboolean gst_byte_reader_peek_float32_le (const GstByteReader *reader, gfloat *val);
-gboolean gst_byte_reader_peek_float32_be (const GstByteReader *reader, gfloat *val);
-gboolean gst_byte_reader_peek_float64_le (const GstByteReader *reader, gdouble *val);
-gboolean gst_byte_reader_peek_float64_be (const GstByteReader *reader, gdouble *val);
+gboolean        gst_byte_reader_peek_float32_le (const GstByteReader *reader, gfloat *val);
+gboolean        gst_byte_reader_peek_float32_be (const GstByteReader *reader, gfloat *val);
+gboolean        gst_byte_reader_peek_float64_le (const GstByteReader *reader, gdouble *val);
+gboolean        gst_byte_reader_peek_float64_be (const GstByteReader *reader, gdouble *val);
 
-gboolean gst_byte_reader_dup_data  (GstByteReader * reader, guint size, guint8       ** val);
-gboolean gst_byte_reader_get_data  (GstByteReader * reader, guint size, const guint8 ** val);
-gboolean gst_byte_reader_peek_data (const GstByteReader * reader, guint size, const guint8 ** val);
+gboolean        gst_byte_reader_dup_data        (GstByteReader * reader, guint size, guint8       ** val);
+gboolean        gst_byte_reader_get_data        (GstByteReader * reader, guint size, const guint8 ** val);
+gboolean        gst_byte_reader_peek_data       (const GstByteReader * reader, guint size, const guint8 ** val);
 
 #define gst_byte_reader_dup_string(reader,str) \
     gst_byte_reader_dup_string_utf8(reader,str)
 
-gboolean gst_byte_reader_dup_string_utf8  (GstByteReader * reader, gchar   ** str);
-gboolean gst_byte_reader_dup_string_utf16 (GstByteReader * reader, guint16 ** str);
-gboolean gst_byte_reader_dup_string_utf32 (GstByteReader * reader, guint32 ** str);
+gboolean        gst_byte_reader_dup_string_utf8  (GstByteReader * reader, gchar   ** str);
+gboolean        gst_byte_reader_dup_string_utf16 (GstByteReader * reader, guint16 ** str);
+gboolean        gst_byte_reader_dup_string_utf32 (GstByteReader * reader, guint32 ** str);
 
 #define gst_byte_reader_skip_string(reader) \
     gst_byte_reader_skip_string_utf8(reader)
 
-gboolean gst_byte_reader_skip_string_utf8  (GstByteReader * reader);
-gboolean gst_byte_reader_skip_string_utf16 (GstByteReader * reader);
-gboolean gst_byte_reader_skip_string_utf32 (GstByteReader * reader);
+gboolean        gst_byte_reader_skip_string_utf8  (GstByteReader * reader);
+gboolean        gst_byte_reader_skip_string_utf16 (GstByteReader * reader);
+gboolean        gst_byte_reader_skip_string_utf32 (GstByteReader * reader);
 
 #define gst_byte_reader_get_string(reader,str) \
     gst_byte_reader_get_string_utf8(reader,str)
@@ -129,14 +132,14 @@
 #define gst_byte_reader_peek_string(reader,str) \
     gst_byte_reader_peek_string_utf8(reader,str)
 
-gboolean gst_byte_reader_get_string_utf8   (GstByteReader * reader, const gchar ** str);
-gboolean gst_byte_reader_peek_string_utf8  (const GstByteReader * reader, const gchar ** str);
+gboolean        gst_byte_reader_get_string_utf8    (GstByteReader * reader, const gchar ** str);
+gboolean        gst_byte_reader_peek_string_utf8   (const GstByteReader * reader, const gchar ** str);
 
-guint    gst_byte_reader_masked_scan_uint32 (const GstByteReader * reader,
-                                             guint32               mask,
-                                             guint32               pattern,
-                                             guint                 offset,
-                                             guint                 size);
+guint           gst_byte_reader_masked_scan_uint32 (const GstByteReader * reader,
+                                                    guint32               mask,
+                                                    guint32               pattern,
+                                                    guint                 offset,
+                                                    guint                 size);
 
 /**
  * GST_BYTE_READER_INIT:
diff --git a/libs/gst/base/gstbytewriter.c b/libs/gst/base/gstbytewriter.c
index 969b705..fc41bbc 100644
--- a/libs/gst/base/gstbytewriter.c
+++ b/libs/gst/base/gstbytewriter.c
@@ -260,8 +260,8 @@
 
   buffer = gst_buffer_new ();
   if (data != NULL) {
-    gst_buffer_take_memory (buffer, -1,
-        gst_memory_new_wrapped (0, data, g_free, size, 0, size));
+    gst_buffer_append_memory (buffer,
+        gst_memory_new_wrapped (0, data, size, 0, size, data, g_free));
   }
 
   return buffer;
@@ -750,3 +750,16 @@
  *
  * Since: 0.10.27
  */
+
+/**
+ * gst_byte_writer_put_buffer:
+ * @writer: #GstByteWriter instance
+ * @buffer: (transfer none): source #GstBuffer
+ * @offset: offset to copy from
+ * @size: total size to copy. If -1, all data is copied
+ *
+ * Writes @size bytes of @data to @writer.
+ *
+ * Returns: %TRUE if the data could be written
+ *
+ */
diff --git a/libs/gst/base/gstbytewriter.h b/libs/gst/base/gstbytewriter.h
index 7cc68d2..72da716 100644
--- a/libs/gst/base/gstbytewriter.h
+++ b/libs/gst/base/gstbytewriter.h
@@ -46,23 +46,27 @@
 
   gboolean fixed;
   gboolean owned;
+
+  /* < private > */
+  gpointer _gst_reserved[GST_PADDING];
 } GstByteWriter;
 
-GstByteWriter * gst_byte_writer_new (void);
-GstByteWriter * gst_byte_writer_new_with_size (guint size, gboolean fixed);
-GstByteWriter * gst_byte_writer_new_with_data (guint8 *data, guint size, gboolean initialized);
+GstByteWriter * gst_byte_writer_new             (void) G_GNUC_MALLOC;
+GstByteWriter * gst_byte_writer_new_with_size   (guint size, gboolean fixed) G_GNUC_MALLOC;
+GstByteWriter * gst_byte_writer_new_with_data   (guint8 *data, guint size, gboolean initialized) G_GNUC_MALLOC;
 
-void gst_byte_writer_init (GstByteWriter *writer);
-void gst_byte_writer_init_with_size (GstByteWriter *writer, guint size, gboolean fixed);
-void gst_byte_writer_init_with_data (GstByteWriter *writer, guint8 *data, guint size, gboolean initialized);
+void            gst_byte_writer_init            (GstByteWriter *writer);
+void            gst_byte_writer_init_with_size  (GstByteWriter *writer, guint size, gboolean fixed);
+void            gst_byte_writer_init_with_data  (GstByteWriter *writer, guint8 *data,
+                                                 guint size, gboolean initialized);
 
-void gst_byte_writer_free (GstByteWriter *writer);
-guint8 * gst_byte_writer_free_and_get_data (GstByteWriter *writer);
-GstBuffer *gst_byte_writer_free_and_get_buffer (GstByteWriter *writer);
+void            gst_byte_writer_free                    (GstByteWriter *writer);
+guint8 *        gst_byte_writer_free_and_get_data       (GstByteWriter *writer);
+GstBuffer *     gst_byte_writer_free_and_get_buffer     (GstByteWriter *writer) G_GNUC_MALLOC;
 
-void gst_byte_writer_reset (GstByteWriter *writer);
-guint8 * gst_byte_writer_reset_and_get_data (GstByteWriter *writer);
-GstBuffer *gst_byte_writer_reset_and_get_buffer (GstByteWriter *writer);
+void            gst_byte_writer_reset                   (GstByteWriter *writer);
+guint8 *        gst_byte_writer_reset_and_get_data      (GstByteWriter *writer);
+GstBuffer *     gst_byte_writer_reset_and_get_buffer    (GstByteWriter *writer) G_GNUC_MALLOC;
 
 /**
  * gst_byte_writer_get_pos:
@@ -93,9 +97,9 @@
  * Since: 0.10.26
  */
 #ifdef _FOOL_GTK_DOC_
-G_INLINE_FUNC guint gst_byte_writer_get_pos (const GstByteWriter *writer);
-G_INLINE_FUNC gboolean gst_byte_writer_set_pos (GstByteWriter *writer, guint pos);
-G_INLINE_FUNC guint gst_byte_writer_get_size (const GstByteWriter *writer);
+G_INLINE_FUNC guint     gst_byte_writer_get_pos  (const GstByteWriter *writer);
+G_INLINE_FUNC gboolean  gst_byte_writer_set_pos  (GstByteWriter *writer, guint pos);
+G_INLINE_FUNC guint     gst_byte_writer_get_size (const GstByteWriter *writer);
 #else
 static inline guint
 gst_byte_writer_get_pos (const GstByteWriter *writer)
@@ -116,38 +120,39 @@
 }
 #endif
 
-guint gst_byte_writer_get_remaining (const GstByteWriter *writer);
-gboolean gst_byte_writer_ensure_free_space (GstByteWriter *writer, guint size);
+guint           gst_byte_writer_get_remaining     (const GstByteWriter *writer);
+gboolean        gst_byte_writer_ensure_free_space (GstByteWriter *writer, guint size);
 
-gboolean gst_byte_writer_put_uint8 (GstByteWriter *writer, guint8 val);
-gboolean gst_byte_writer_put_int8 (GstByteWriter *writer, gint8 val);
-gboolean gst_byte_writer_put_uint16_be (GstByteWriter *writer, guint16 val);
-gboolean gst_byte_writer_put_uint16_le (GstByteWriter *writer, guint16 val);
-gboolean gst_byte_writer_put_int16_be (GstByteWriter *writer, gint16 val);
-gboolean gst_byte_writer_put_int16_le (GstByteWriter *writer, gint16 val);
-gboolean gst_byte_writer_put_uint24_be (GstByteWriter *writer, guint32 val);
-gboolean gst_byte_writer_put_uint24_le (GstByteWriter *writer, guint32 val);
-gboolean gst_byte_writer_put_int24_be (GstByteWriter *writer, gint32 val);
-gboolean gst_byte_writer_put_int24_le (GstByteWriter *writer, gint32 val);
-gboolean gst_byte_writer_put_uint32_be (GstByteWriter *writer, guint32 val);
-gboolean gst_byte_writer_put_uint32_le (GstByteWriter *writer, guint32 val);
-gboolean gst_byte_writer_put_int32_be (GstByteWriter *writer, gint32 val);
-gboolean gst_byte_writer_put_int32_le (GstByteWriter *writer, gint32 val);
-gboolean gst_byte_writer_put_uint64_be (GstByteWriter *writer, guint64 val);
-gboolean gst_byte_writer_put_uint64_le (GstByteWriter *writer, guint64 val);
-gboolean gst_byte_writer_put_int64_be (GstByteWriter *writer, gint64 val);
-gboolean gst_byte_writer_put_int64_le (GstByteWriter *writer, gint64 val);
+gboolean        gst_byte_writer_put_uint8         (GstByteWriter *writer, guint8 val);
+gboolean        gst_byte_writer_put_int8          (GstByteWriter *writer, gint8 val);
+gboolean        gst_byte_writer_put_uint16_be     (GstByteWriter *writer, guint16 val);
+gboolean        gst_byte_writer_put_uint16_le     (GstByteWriter *writer, guint16 val);
+gboolean        gst_byte_writer_put_int16_be      (GstByteWriter *writer, gint16 val);
+gboolean        gst_byte_writer_put_int16_le      (GstByteWriter *writer, gint16 val);
+gboolean        gst_byte_writer_put_uint24_be     (GstByteWriter *writer, guint32 val);
+gboolean        gst_byte_writer_put_uint24_le     (GstByteWriter *writer, guint32 val);
+gboolean        gst_byte_writer_put_int24_be      (GstByteWriter *writer, gint32 val);
+gboolean        gst_byte_writer_put_int24_le      (GstByteWriter *writer, gint32 val);
+gboolean        gst_byte_writer_put_uint32_be     (GstByteWriter *writer, guint32 val);
+gboolean        gst_byte_writer_put_uint32_le     (GstByteWriter *writer, guint32 val);
+gboolean        gst_byte_writer_put_int32_be      (GstByteWriter *writer, gint32 val);
+gboolean        gst_byte_writer_put_int32_le      (GstByteWriter *writer, gint32 val);
+gboolean        gst_byte_writer_put_uint64_be     (GstByteWriter *writer, guint64 val);
+gboolean        gst_byte_writer_put_uint64_le     (GstByteWriter *writer, guint64 val);
+gboolean        gst_byte_writer_put_int64_be      (GstByteWriter *writer, gint64 val);
+gboolean        gst_byte_writer_put_int64_le      (GstByteWriter *writer, gint64 val);
 
-gboolean gst_byte_writer_put_float32_be (GstByteWriter *writer, gfloat val);
-gboolean gst_byte_writer_put_float32_le (GstByteWriter *writer, gfloat val);
-gboolean gst_byte_writer_put_float64_be (GstByteWriter *writer, gdouble val);
-gboolean gst_byte_writer_put_float64_le (GstByteWriter *writer, gdouble val);
+gboolean        gst_byte_writer_put_float32_be    (GstByteWriter *writer, gfloat val);
+gboolean        gst_byte_writer_put_float32_le    (GstByteWriter *writer, gfloat val);
+gboolean        gst_byte_writer_put_float64_be    (GstByteWriter *writer, gdouble val);
+gboolean        gst_byte_writer_put_float64_le    (GstByteWriter *writer, gdouble val);
 
-gboolean gst_byte_writer_put_data (GstByteWriter *writer, const guint8 *data, guint size);
-gboolean gst_byte_writer_fill (GstByteWriter *writer, guint8 value, guint size);
-gboolean gst_byte_writer_put_string_utf8 (GstByteWriter *writer, const gchar *data);
-gboolean gst_byte_writer_put_string_utf16 (GstByteWriter *writer, const guint16 *data);
-gboolean gst_byte_writer_put_string_utf32 (GstByteWriter *writer, const guint32 *data);
+gboolean        gst_byte_writer_put_data          (GstByteWriter *writer, const guint8 *data, guint size);
+gboolean        gst_byte_writer_fill              (GstByteWriter *writer, guint8 value, guint size);
+gboolean        gst_byte_writer_put_string_utf8   (GstByteWriter *writer, const gchar *data);
+gboolean        gst_byte_writer_put_string_utf16  (GstByteWriter *writer, const guint16 *data);
+gboolean        gst_byte_writer_put_string_utf32  (GstByteWriter *writer, const guint32 *data);
+gboolean        gst_byte_writer_put_buffer        (GstByteWriter *writer, GstBuffer * buffer, gsize offset, gssize size);
 
 /**
  * gst_byte_writer_put_string:
@@ -295,6 +300,49 @@
   return TRUE;
 }
 
+static inline void
+gst_byte_writer_put_buffer_unchecked (GstByteWriter * writer, GstBuffer * buffer,
+    gsize offset, gssize size)
+{
+  if (size == -1) {
+    size = gst_buffer_get_size (buffer);
+
+    if (offset >= (gsize) size)
+      return;
+
+    size -= offset;
+  }
+
+  gst_buffer_extract (buffer, offset,
+      (guint8 *) & writer->parent.data[writer->parent.byte], size);
+  writer->parent.byte += size;
+  writer->parent.size = MAX (writer->parent.size, writer->parent.byte);
+}
+
+static inline gboolean
+_gst_byte_writer_put_buffer_inline (GstByteWriter * writer, GstBuffer * buffer,
+    gsize offset, gssize size)
+{
+  g_return_val_if_fail (writer != NULL, FALSE);
+  g_return_val_if_fail (size >= -1, FALSE);
+
+  if (size == -1) {
+    size = gst_buffer_get_size (buffer);
+
+    if (offset >= (gsize) size)
+      return TRUE;
+
+    size -= offset;
+  }
+
+  if (G_UNLIKELY (!_gst_byte_writer_ensure_free_space_inline (writer, size)))
+    return FALSE;
+
+  gst_byte_writer_put_buffer_unchecked (writer, buffer, offset, size);
+
+  return TRUE;
+}
+
 #ifndef GST_BYTE_WRITER_DISABLE_INLINES
 
 /* we use defines here so we can add the G_LIKELY() */
@@ -351,6 +399,8 @@
     G_LIKELY (_gst_byte_writer_put_data_inline (writer, data, size))
 #define gst_byte_writer_fill(writer, val, size) \
     G_LIKELY (_gst_byte_writer_fill_inline (writer, val, size))
+#define gst_byte_writer_put_buffer(writer, buffer, offset, size) \
+    G_LIKELY (_gst_byte_writer_put_buffer_inline (writer, buffer, offset, size))
 
 #endif
 
diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
deleted file mode 100644
index fccb52c..0000000
--- a/libs/gst/base/gstcollectpads.c
+++ /dev/null
@@ -1,1415 +0,0 @@
-/* GStreamer
- * Copyright (C) 2005 Wim Taymans <wim@fluendo.com>
- *
- * gstcollectpads.c:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-/**
- * SECTION:gstcollectpads
- * @short_description: manages a set of pads that operate in collect mode
- * @see_also:
- *
- * Manages a set of pads that operate in collect mode. This means that control
- * is given to the manager of this object when all pads have data.
- * <itemizedlist>
- *   <listitem><para>
- *     Collectpads are created with gst_collect_pads_new(). A callback should then
- *     be installed with gst_collect_pads_set_function ().
- *   </para></listitem>
- *   <listitem><para>
- *     Pads are added to the collection with gst_collect_pads_add_pad()/
- *     gst_collect_pads_remove_pad(). The pad
- *     has to be a sinkpad. The chain and event functions of the pad are
- *     overridden. The element_private of the pad is used to store
- *     private information for the collectpads.
- *   </para></listitem>
- *   <listitem><para>
- *     For each pad, data is queued in the _chain function or by
- *     performing a pull_range.
- *   </para></listitem>
- *   <listitem><para>
- *     When data is queued on all pads, the callback function is called.
- *   </para></listitem>
- *   <listitem><para>
- *     Data can be dequeued from the pad with the gst_collect_pads_pop() method.
- *     One can peek at the data with the gst_collect_pads_peek() function.
- *     These functions will return NULL if the pad received an EOS event. When all
- *     pads return NULL from a gst_collect_pads_peek(), the element can emit an EOS
- *     event itself.
- *   </para></listitem>
- *   <listitem><para>
- *     Data can also be dequeued in byte units using the gst_collect_pads_available(),
- *     gst_collect_pads_read() and gst_collect_pads_flush() calls.
- *   </para></listitem>
- *   <listitem><para>
- *     Elements should call gst_collect_pads_start() and gst_collect_pads_stop() in
- *     their state change functions to start and stop the processing of the collecpads.
- *     The gst_collect_pads_stop() call should be called before calling the parent
- *     element state change function in the PAUSED_TO_READY state change to ensure
- *     no pad is blocked and the element can finish streaming.
- *   </para></listitem>
- *   <listitem><para>
- *     gst_collect_pads_collect() and gst_collect_pads_collect_range() can be used by
- *     elements that start a #GstTask to drive the collect_pads. This feature is however
- *     not yet implemented.
- *   </para></listitem>
- * </itemizedlist>
- *
- * Last reviewed on 2006-05-10 (0.10.6)
- */
-
-#include "gstcollectpads.h"
-
-GST_DEBUG_CATEGORY_STATIC (collect_pads_debug);
-#define GST_CAT_DEFAULT collect_pads_debug
-
-#define GST_COLLECT_PADS_GET_PRIVATE(obj)  \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_COLLECT_PADS, GstCollectPadsPrivate))
-
-struct _GstCollectPadsPrivate
-{
-  GstCollectPadsClipFunction clipfunc;
-  gpointer clipfunc_user_data;
-};
-
-#define gst_collect_pads_parent_class parent_class
-G_DEFINE_TYPE (GstCollectPads, gst_collect_pads, GST_TYPE_OBJECT);
-
-static void gst_collect_pads_clear (GstCollectPads * pads,
-    GstCollectData * data);
-static GstFlowReturn gst_collect_pads_chain (GstPad * pad, GstBuffer * buffer);
-static gboolean gst_collect_pads_event (GstPad * pad, GstEvent * event);
-static void gst_collect_pads_finalize (GObject * object);
-static void ref_data (GstCollectData * data);
-static void unref_data (GstCollectData * data);
-static void gst_collect_pads_check_pads_unlocked (GstCollectPads * pads);
-
-static void
-gst_collect_pads_class_init (GstCollectPadsClass * klass)
-{
-  GObjectClass *gobject_class = (GObjectClass *) klass;
-
-  g_type_class_add_private (klass, sizeof (GstCollectPadsPrivate));
-
-  GST_DEBUG_CATEGORY_INIT (collect_pads_debug, "collectpads", 0,
-      "GstCollectPads");
-
-  gobject_class->finalize = gst_collect_pads_finalize;
-}
-
-static void
-gst_collect_pads_init (GstCollectPads * pads)
-{
-  pads->abidata.ABI.priv = GST_COLLECT_PADS_GET_PRIVATE (pads);
-
-  pads->cond = g_cond_new ();
-  pads->data = NULL;
-  pads->cookie = 0;
-  pads->numpads = 0;
-  pads->queuedpads = 0;
-  pads->eospads = 0;
-  pads->started = FALSE;
-
-  /* members to manage the pad list */
-  pads->abidata.ABI.pad_lock = g_mutex_new ();
-  pads->abidata.ABI.pad_cookie = 0;
-  pads->abidata.ABI.pad_list = NULL;
-}
-
-static void
-gst_collect_pads_finalize (GObject * object)
-{
-  GSList *collected;
-  GstCollectPads *pads = GST_COLLECT_PADS (object);
-
-  GST_DEBUG ("finalize");
-
-  g_cond_free (pads->cond);
-  g_mutex_free (pads->abidata.ABI.pad_lock);
-
-  /* Remove pads */
-  collected = pads->abidata.ABI.pad_list;
-  for (; collected; collected = g_slist_next (collected)) {
-    GstCollectData *pdata = (GstCollectData *) collected->data;
-
-    unref_data (pdata);
-  }
-  /* Free pads list */
-  g_slist_foreach (pads->data, (GFunc) unref_data, NULL);
-  g_slist_free (pads->data);
-  g_slist_free (pads->abidata.ABI.pad_list);
-
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-/**
- * gst_collect_pads_new:
- *
- * Create a new instance of #GstCollectPads.
- *
- * MT safe.
- *
- * Returns: (transfer full): a new #GstCollectPads, or NULL in case of an error.
- */
-GstCollectPads *
-gst_collect_pads_new (void)
-{
-  GstCollectPads *newcoll;
-
-  newcoll = g_object_newv (GST_TYPE_COLLECT_PADS, 0, NULL);
-
-  return newcoll;
-}
-
-/**
- * gst_collect_pads_set_function:
- * @pads: the collectspads to use
- * @func: the function to set
- * @user_data: (closure): user data passed to the function
- *
- * Set the callback function and user data that will be called when
- * all the pads added to the collection have buffers queued.
- *
- * MT safe.
- */
-void
-gst_collect_pads_set_function (GstCollectPads * pads,
-    GstCollectPadsFunction func, gpointer user_data)
-{
-  g_return_if_fail (pads != NULL);
-  g_return_if_fail (GST_IS_COLLECT_PADS (pads));
-
-  GST_OBJECT_LOCK (pads);
-  pads->func = func;
-  pads->user_data = user_data;
-  GST_OBJECT_UNLOCK (pads);
-}
-
-static void
-ref_data (GstCollectData * data)
-{
-  g_assert (data != NULL);
-
-  g_atomic_int_inc (&(data->abidata.ABI.refcount));
-}
-
-static void
-unref_data (GstCollectData * data)
-{
-  GstCollectDataDestroyNotify destroy_notify;
-
-  g_assert (data != NULL);
-  g_assert (data->abidata.ABI.refcount > 0);
-
-  if (!g_atomic_int_dec_and_test (&(data->abidata.ABI.refcount)))
-    return;
-
-  /* FIXME: Ugly hack as we can't add more fields to GstCollectData */
-  destroy_notify = (GstCollectDataDestroyNotify)
-      g_object_get_data (G_OBJECT (data->pad),
-      "gst-collect-data-destroy-notify");
-
-  if (destroy_notify)
-    destroy_notify (data);
-
-  g_object_unref (data->pad);
-  if (data->buffer) {
-    gst_buffer_unref (data->buffer);
-  }
-  g_free (data);
-}
-
-/**
- * gst_collect_pads_add_pad:
- * @pads: the collectspads to use
- * @pad: (transfer none): the pad to add
- * @size: the size of the returned #GstCollectData structure
- *
- * Add a pad to the collection of collect pads. The pad has to be
- * a sinkpad. The refcount of the pad is incremented. Use
- * gst_collect_pads_remove_pad() to remove the pad from the collection
- * again.
- *
- * This function will override the chain and event functions of the pad
- * along with the element_private data, which is used to store private
- * information for the collectpads.
- *
- * You specify a size for the returned #GstCollectData structure
- * so that you can use it to store additional information.
- *
- * The pad will be automatically activated in push mode when @pads is
- * started.
- *
- * This function calls gst_collect_pads_add_pad_full() passing a value of NULL
- * for destroy_notify.
- *
- * MT safe.
- *
- * Returns: a new #GstCollectData to identify the new pad. Or NULL
- *   if wrong parameters are supplied.
- */
-GstCollectData *
-gst_collect_pads_add_pad (GstCollectPads * pads, GstPad * pad, guint size)
-{
-  return gst_collect_pads_add_pad_full (pads, pad, size, NULL);
-}
-
-/**
- * gst_collect_pads_add_pad_full:
- * @pads: the collectspads to use
- * @pad: (transfer none): the pad to add
- * @size: the size of the returned #GstCollectData structure
- * @destroy_notify: function to be called before the returned #GstCollectData
- * structure is freed
- *
- * Add a pad to the collection of collect pads. The pad has to be
- * a sinkpad. The refcount of the pad is incremented. Use
- * gst_collect_pads_remove_pad() to remove the pad from the collection
- * again.
- *
- * You specify a size for the returned #GstCollectData structure
- * so that you can use it to store additional information.
- *
- * You can also specify a #GstCollectDataDestroyNotify that will be called
- * just before the #GstCollectData structure is freed. It is passed the
- * pointer to the structure and should free any custom memory and resources
- * allocated for it.
- *
- * The pad will be automatically activated in push mode when @pads is
- * started.
- *
- * MT safe.
- *
- * Since: 0.10.12
- *
- * Returns: a new #GstCollectData to identify the new pad. Or NULL
- *   if wrong parameters are supplied.
- */
-GstCollectData *
-gst_collect_pads_add_pad_full (GstCollectPads * pads, GstPad * pad, guint size,
-    GstCollectDataDestroyNotify destroy_notify)
-{
-  GstCollectData *data;
-
-  g_return_val_if_fail (pads != NULL, NULL);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), NULL);
-  g_return_val_if_fail (pad != NULL, NULL);
-  g_return_val_if_fail (GST_PAD_IS_SINK (pad), NULL);
-  g_return_val_if_fail (size >= sizeof (GstCollectData), NULL);
-
-  GST_DEBUG ("adding pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-
-  data = g_malloc0 (size);
-  data->collect = pads;
-  data->pad = gst_object_ref (pad);
-  data->buffer = NULL;
-  data->pos = 0;
-  gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
-  data->abidata.ABI.flushing = FALSE;
-  data->abidata.ABI.new_segment = FALSE;
-  data->abidata.ABI.eos = FALSE;
-  data->abidata.ABI.refcount = 1;
-
-  /* FIXME: Ugly hack as we can't add more fields to GstCollectData */
-  g_object_set_data (G_OBJECT (pad), "gst-collect-data-destroy-notify",
-      (void *) destroy_notify);
-
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-  GST_OBJECT_LOCK (pad);
-  gst_pad_set_element_private (pad, data);
-  GST_OBJECT_UNLOCK (pad);
-  pads->abidata.ABI.pad_list =
-      g_slist_append (pads->abidata.ABI.pad_list, data);
-  gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads_chain));
-  gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads_event));
-  /* activate the pad when needed */
-  if (pads->started)
-    gst_pad_set_active (pad, TRUE);
-  pads->abidata.ABI.pad_cookie++;
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-
-  return data;
-}
-
-static gint
-find_pad (GstCollectData * data, GstPad * pad)
-{
-  if (data->pad == pad)
-    return 0;
-  return 1;
-}
-
-/**
- * gst_collect_pads_set_clip_function:
- * @pads: the collectspads to use
- * @clipfunc: clip function to install
- * @user_data: (closure): user data to pass to @clip_func
- *
- * Install a clipping function that is called right after a buffer is received
- * on a pad managed by @pads. See #GstCollectPadsClipFunction for more info.
- *
- * Since: 0.10.26
- */
-void
-gst_collect_pads_set_clip_function (GstCollectPads * pads,
-    GstCollectPadsClipFunction clipfunc, gpointer user_data)
-{
-  GstCollectPadsPrivate *priv;
-
-  g_return_if_fail (pads != NULL);
-  g_return_if_fail (GST_IS_COLLECT_PADS (pads));
-
-  priv = pads->abidata.ABI.priv;
-
-  priv->clipfunc = clipfunc;
-  priv->clipfunc_user_data = user_data;
-}
-
-/**
- * gst_collect_pads_remove_pad:
- * @pads: the collectspads to use
- * @pad: (transfer none): the pad to remove
- *
- * Remove a pad from the collection of collect pads. This function will also
- * free the #GstCollectData and all the resources that were allocated with
- * gst_collect_pads_add_pad().
- *
- * The pad will be deactivated automatically when @pads is stopped.
- *
- * MT safe.
- *
- * Returns: %TRUE if the pad could be removed.
- */
-gboolean
-gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
-{
-  GstCollectData *data;
-  GSList *list;
-
-  g_return_val_if_fail (pads != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), FALSE);
-  g_return_val_if_fail (pad != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
-  GST_DEBUG ("removing pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-  list =
-      g_slist_find_custom (pads->abidata.ABI.pad_list, pad,
-      (GCompareFunc) find_pad);
-  if (!list)
-    goto unknown_pad;
-
-  data = (GstCollectData *) list->data;
-
-  GST_DEBUG ("found pad %s:%s at %p", GST_DEBUG_PAD_NAME (pad), data);
-
-  /* clear the stuff we configured */
-  gst_pad_set_chain_function (pad, NULL);
-  gst_pad_set_event_function (pad, NULL);
-  GST_OBJECT_LOCK (pad);
-  gst_pad_set_element_private (pad, NULL);
-  GST_OBJECT_UNLOCK (pad);
-
-  /* backward compat, also remove from data if stopped, note that this function
-   * can only be called when we are stopped because we don't take the LOCK to
-   * protect the pads->data list. */
-  if (!pads->started) {
-    GSList *dlist;
-
-    dlist = g_slist_find_custom (pads->data, pad, (GCompareFunc) find_pad);
-    if (dlist) {
-      GstCollectData *pdata = dlist->data;
-
-      pads->data = g_slist_delete_link (pads->data, dlist);
-      unref_data (pdata);
-    }
-  }
-  /* remove from the pad list */
-  pads->abidata.ABI.pad_list =
-      g_slist_delete_link (pads->abidata.ABI.pad_list, list);
-  pads->abidata.ABI.pad_cookie++;
-
-  /* signal waiters because something changed */
-  GST_COLLECT_PADS_BROADCAST (pads);
-
-  /* deactivate the pad when needed */
-  if (!pads->started)
-    gst_pad_set_active (pad, FALSE);
-
-  /* clean and free the collect data */
-  unref_data (data);
-
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-
-  return TRUE;
-
-unknown_pad:
-  {
-    GST_WARNING ("cannot remove unknown pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-    GST_COLLECT_PADS_PAD_UNLOCK (pads);
-    return FALSE;
-  }
-}
-
-/**
- * gst_collect_pads_is_active:
- * @pads: (transfer none): the collectspads to use
- * @pad: the pad to check
- *
- * Check if a pad is active.
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: %TRUE if the pad is active.
- */
-gboolean
-gst_collect_pads_is_active (GstCollectPads * pads, GstPad * pad)
-{
-  g_return_val_if_fail (pads != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), FALSE);
-  g_return_val_if_fail (pad != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
-  g_warning ("gst_collect_pads_is_active() is not implemented");
-
-  return FALSE;
-}
-
-/**
- * gst_collect_pads_collect:
- * @pads: the collectspads to use
- *
- * Collect data on all pads. This function is usually called
- * from a #GstTask function in an element.
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: #GstFlowReturn of the operation.
- */
-GstFlowReturn
-gst_collect_pads_collect (GstCollectPads * pads)
-{
-  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), GST_FLOW_ERROR);
-
-  g_warning ("gst_collect_pads_collect() is not implemented");
-
-  return GST_FLOW_NOT_SUPPORTED;
-}
-
-/**
- * gst_collect_pads_collect_range:
- * @pads: the collectspads to use
- * @offset: the offset to collect
- * @length: the length to collect
- *
- * Collect data with @offset and @length on all pads. This function
- * is typically called in the getrange function of an element.
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: #GstFlowReturn of the operation.
- */
-GstFlowReturn
-gst_collect_pads_collect_range (GstCollectPads * pads, guint64 offset,
-    guint length)
-{
-  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), GST_FLOW_ERROR);
-
-  g_warning ("gst_collect_pads_collect_range() is not implemented");
-
-  return GST_FLOW_NOT_SUPPORTED;
-}
-
-static gboolean
-gst_collect_pads_is_flushing (GstCollectPads * pads)
-{
-  GSList *walk = NULL;
-  gboolean res = TRUE;
-
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-
-  /* Ensure pads->data state */
-  gst_collect_pads_check_pads_unlocked (pads);
-
-  GST_DEBUG ("Getting flushing state (pads:%p, pads->data:%p)",
-      pads, pads->data);
-
-  for (walk = pads->data; walk; walk = g_slist_next (walk)) {
-    GstCollectData *cdata = walk->data;
-
-    GST_DEBUG_OBJECT (cdata->pad, "flushing:%d", cdata->abidata.ABI.flushing);
-
-    if (cdata->abidata.ABI.flushing) {
-      goto done;
-    }
-  }
-
-  res = FALSE;
-done:
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-  return res;
-}
-
-/* FIXME, I think this function is used to work around bad behaviour
- * of elements that add pads to themselves without activating them.
- *
- * Must be called with PAD_LOCK.
- */
-static void
-gst_collect_pads_set_flushing_unlocked (GstCollectPads * pads,
-    gboolean flushing)
-{
-  GSList *walk = NULL;
-
-  GST_DEBUG ("Setting flushing (%d)", flushing);
-
-  /* Update the pads flushing flag */
-  for (walk = pads->data; walk; walk = g_slist_next (walk)) {
-    GstCollectData *cdata = walk->data;
-
-    if (GST_IS_PAD (cdata->pad)) {
-      GST_OBJECT_LOCK (cdata->pad);
-      if (flushing)
-        GST_PAD_SET_FLUSHING (cdata->pad);
-      else
-        GST_PAD_UNSET_FLUSHING (cdata->pad);
-      cdata->abidata.ABI.flushing = flushing;
-      gst_collect_pads_clear (pads, cdata);
-      GST_OBJECT_UNLOCK (cdata->pad);
-    }
-  }
-  /* Setting the pads to flushing means that we changed the values which
-   * are 'protected' by the cookie. We therefore update it to force a
-   * recalculation of the current pad status. */
-  pads->abidata.ABI.pad_cookie++;
-}
-
-/**
- * gst_collect_pads_set_flushing:
- * @pads: the collectspads to use
- * @flushing: desired state of the pads
- *
- * Change the flushing state of all the pads in the collection. No pad
- * is able to accept anymore data when @flushing is %TRUE. Calling this
- * function with @flushing %FALSE makes @pads accept data again.
- *
- * MT safe.
- *
- * Since: 0.10.7.
- */
-void
-gst_collect_pads_set_flushing (GstCollectPads * pads, gboolean flushing)
-{
-  g_return_if_fail (pads != NULL);
-  g_return_if_fail (GST_IS_COLLECT_PADS (pads));
-
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-  /* Ensure pads->data state */
-  gst_collect_pads_check_pads_unlocked (pads);
-  gst_collect_pads_set_flushing_unlocked (pads, flushing);
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-}
-
-/**
- * gst_collect_pads_start:
- * @pads: the collectspads to use
- *
- * Starts the processing of data in the collect_pads.
- *
- * MT safe.
- */
-void
-gst_collect_pads_start (GstCollectPads * pads)
-{
-  GSList *collected;
-
-  g_return_if_fail (pads != NULL);
-  g_return_if_fail (GST_IS_COLLECT_PADS (pads));
-
-  GST_DEBUG_OBJECT (pads, "starting collect pads");
-
-  /* make sure stop and collect cannot be called anymore */
-  GST_OBJECT_LOCK (pads);
-
-  /* make pads streamable */
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-
-  /* loop over the master pad list and reset the segment */
-  collected = pads->abidata.ABI.pad_list;
-  for (; collected; collected = g_slist_next (collected)) {
-    GstCollectData *data;
-
-    data = collected->data;
-    gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
-  }
-
-  gst_collect_pads_set_flushing_unlocked (pads, FALSE);
-
-  /* Start collect pads */
-  pads->started = TRUE;
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-  GST_OBJECT_UNLOCK (pads);
-}
-
-/**
- * gst_collect_pads_stop:
- * @pads: the collectspads to use
- *
- * Stops the processing of data in the collect_pads. this function
- * will also unblock any blocking operations.
- *
- * MT safe.
- */
-void
-gst_collect_pads_stop (GstCollectPads * pads)
-{
-  GSList *collected;
-
-  g_return_if_fail (pads != NULL);
-  g_return_if_fail (GST_IS_COLLECT_PADS (pads));
-
-  GST_DEBUG_OBJECT (pads, "stopping collect pads");
-
-  /* make sure collect and start cannot be called anymore */
-  GST_OBJECT_LOCK (pads);
-
-  /* make pads not accept data anymore */
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-  gst_collect_pads_set_flushing_unlocked (pads, TRUE);
-
-  /* Stop collect pads */
-  pads->started = FALSE;
-  pads->eospads = 0;
-  pads->queuedpads = 0;
-
-  /* loop over the master pad list and flush buffers */
-  collected = pads->abidata.ABI.pad_list;
-  for (; collected; collected = g_slist_next (collected)) {
-    GstCollectData *data;
-    GstBuffer **buffer_p;
-
-    data = collected->data;
-    if (data->buffer) {
-      buffer_p = &data->buffer;
-      gst_buffer_replace (buffer_p, NULL);
-      data->pos = 0;
-    }
-    data->abidata.ABI.eos = FALSE;
-  }
-
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-  /* Wake them up so they can end the chain functions. */
-  GST_COLLECT_PADS_BROADCAST (pads);
-
-  GST_OBJECT_UNLOCK (pads);
-}
-
-/**
- * gst_collect_pads_peek:
- * @pads: the collectspads to peek
- * @data: the data to use
- *
- * Peek at the buffer currently queued in @data. This function
- * should be called with the @pads LOCK held, such as in the callback
- * handler.
- *
- * MT safe.
- *
- * Returns: (transfer full): The buffer in @data or NULL if no buffer is queued.
- *  should unref the buffer after usage.
- */
-GstBuffer *
-gst_collect_pads_peek (GstCollectPads * pads, GstCollectData * data)
-{
-  GstBuffer *result;
-
-  g_return_val_if_fail (pads != NULL, NULL);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), NULL);
-  g_return_val_if_fail (data != NULL, NULL);
-
-  if ((result = data->buffer))
-    gst_buffer_ref (result);
-
-  GST_DEBUG ("Peeking at pad %s:%s: buffer=%p",
-      GST_DEBUG_PAD_NAME (data->pad), result);
-
-  return result;
-}
-
-/**
- * gst_collect_pads_pop:
- * @pads: the collectspads to pop
- * @data: the data to use
- *
- * Pop the buffer currently queued in @data. This function
- * should be called with the @pads LOCK held, such as in the callback
- * handler.
- *
- * Free-function: gst_buffer_unref
- *
- * MT safe.
- *
- * Returns: (transfer full): The buffer in @data or NULL if no buffer was
- *   queued. You should unref the buffer after usage.
- */
-GstBuffer *
-gst_collect_pads_pop (GstCollectPads * pads, GstCollectData * data)
-{
-  GstBuffer *result;
-
-  g_return_val_if_fail (pads != NULL, NULL);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), NULL);
-  g_return_val_if_fail (data != NULL, NULL);
-
-  if ((result = data->buffer)) {
-    data->buffer = NULL;
-    data->pos = 0;
-    /* one less pad with queued data now */
-    pads->queuedpads--;
-  }
-
-  GST_COLLECT_PADS_BROADCAST (pads);
-
-  GST_DEBUG ("Pop buffer on pad %s:%s: buffer=%p",
-      GST_DEBUG_PAD_NAME (data->pad), result);
-
-  return result;
-}
-
-/* pop and unref the currently queued buffer, should e called with the LOCK
- * helt. */
-static void
-gst_collect_pads_clear (GstCollectPads * pads, GstCollectData * data)
-{
-  GstBuffer *buf;
-
-  if ((buf = gst_collect_pads_pop (pads, data)))
-    gst_buffer_unref (buf);
-}
-
-/**
- * gst_collect_pads_available:
- * @pads: the collectspads to query
- *
- * Query how much bytes can be read from each queued buffer. This means
- * that the result of this call is the maximum number of bytes that can
- * be read from each of the pads.
- *
- * This function should be called with @pads LOCK held, such as
- * in the callback.
- *
- * MT safe.
- *
- * Returns: The maximum number of bytes queued on all pads. This function
- * returns 0 if a pad has no queued buffer.
- */
-/* FIXME, we can do this in the _chain functions */
-guint
-gst_collect_pads_available (GstCollectPads * pads)
-{
-  GSList *collected;
-  guint result = G_MAXUINT;
-
-  g_return_val_if_fail (pads != NULL, 0);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), 0);
-
-  for (collected = pads->data; collected; collected = g_slist_next (collected)) {
-    GstCollectData *pdata;
-    GstBuffer *buffer;
-    gint size;
-
-    pdata = (GstCollectData *) collected->data;
-
-    /* ignore pad with EOS */
-    if (G_UNLIKELY (pdata->abidata.ABI.eos)) {
-      GST_DEBUG ("pad %s:%s is EOS", GST_DEBUG_PAD_NAME (pdata->pad));
-      continue;
-    }
-
-    /* an empty buffer without EOS is weird when we get here.. */
-    if (G_UNLIKELY ((buffer = pdata->buffer) == NULL)) {
-      GST_WARNING ("pad %s:%s has no buffer", GST_DEBUG_PAD_NAME (pdata->pad));
-      goto not_filled;
-    }
-
-    /* this is the size left of the buffer */
-    size = gst_buffer_get_size (buffer) - pdata->pos;
-    GST_DEBUG ("pad %s:%s has %d bytes left",
-        GST_DEBUG_PAD_NAME (pdata->pad), size);
-
-    /* need to return the min of all available data */
-    if (size < result)
-      result = size;
-  }
-  /* nothing changed, all must be EOS then, return 0 */
-  if (G_UNLIKELY (result == G_MAXUINT))
-    result = 0;
-
-  return result;
-
-not_filled:
-  {
-    return 0;
-  }
-}
-
-/**
- * gst_collect_pads_read_buffer:
- * @pads: the collectspads to query
- * @data: the data to use
- * @size: the number of bytes to read
- *
- * Get a buffer of @size bytes from the given pad @data.
- *
- * This function should be called with @pads LOCK held, such as in the callback.
- *
- * Free-function: gst_buffer_unref
- *
- * Returns: (transfer full): a #GstBuffer. The size of the buffer can be less
- *     that requested. A return of NULL signals that the pad is end-of-stream.
- *     Unref the buffer with gst_buffer_unref() after use.
- *
- * MT safe.
- *
- * Since: 0.10.18
- */
-GstBuffer *
-gst_collect_pads_read_buffer (GstCollectPads * pads, GstCollectData * data,
-    guint size)
-{
-  guint readsize, bufsize;
-  GstBuffer *buffer;
-
-  g_return_val_if_fail (pads != NULL, NULL);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), NULL);
-  g_return_val_if_fail (data != NULL, NULL);
-
-  /* no buffer, must be EOS */
-  if ((buffer = data->buffer) == NULL)
-    return NULL;
-
-  bufsize = gst_buffer_get_size (buffer);
-
-  readsize = MIN (size, bufsize - data->pos);
-
-  if (data->pos == 0 && readsize == bufsize)
-    return gst_buffer_ref (buffer);
-  else
-    return gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, data->pos,
-        readsize);
-}
-
-/**
- * gst_collect_pads_take_buffer:
- * @pads: the collectspads to query
- * @data: the data to use
- * @size: the number of bytes to read
- *
- * Get a buffer of @size bytes from the given pad @data. Flushes the amount
- * of read bytes.
- *
- * This function should be called with @pads LOCK held, such as in the callback.
- *
- * Free-function: gst_buffer_unref
- *
- * MT safe.
- *
- * Returns: (transfer full): a #GstBuffer. The size of the buffer can be less
- *     that requested. A return of NULL signals that the pad is end-of-stream.
- *     Unref the buffer after use.
- *
- * Since: 0.10.18
- */
-GstBuffer *
-gst_collect_pads_take_buffer (GstCollectPads * pads, GstCollectData * data,
-    guint size)
-{
-  GstBuffer *buffer = gst_collect_pads_read_buffer (pads, data, size);
-
-  if (buffer) {
-    gst_collect_pads_flush (pads, data, gst_buffer_get_size (buffer));
-  }
-  return buffer;
-}
-
-/**
- * gst_collect_pads_flush:
- * @pads: the collectspads to query
- * @data: the data to use
- * @size: the number of bytes to flush
- *
- * Flush @size bytes from the pad @data.
- *
- * This function should be called with @pads LOCK held, such as
- * in the callback.
- *
- * MT safe.
- *
- * Returns: The number of bytes flushed. This can be less than @size and
- * is 0 if the pad was end-of-stream.
- */
-guint
-gst_collect_pads_flush (GstCollectPads * pads, GstCollectData * data,
-    guint size)
-{
-  guint flushsize;
-  GstBuffer *buffer;
-  gsize bsize;
-
-  g_return_val_if_fail (pads != NULL, 0);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), 0);
-  g_return_val_if_fail (data != NULL, 0);
-
-  /* no buffer, must be EOS */
-  if ((buffer = data->buffer) == NULL)
-    return 0;
-
-  bsize = gst_buffer_get_size (buffer);
-
-  /* this is what we can flush at max */
-  flushsize = MIN (size, bsize - data->pos);
-
-  data->pos += size;
-
-  GST_LOG_OBJECT (pads, "Flushing %d bytes, requested %u", flushsize, size);
-
-  if (data->pos >= bsize)
-    /* _clear will also reset data->pos to 0 */
-    gst_collect_pads_clear (pads, data);
-
-  return flushsize;
-}
-
-/* see if pads were added or removed and update our stats. Any pad
- * added after releasing the PAD_LOCK will get collected in the next
- * round.
- *
- * We can do a quick check by checking the cookies, that get changed
- * whenever the pad list is updated.
- *
- * Must be called with LOCK.
- */
-static void
-gst_collect_pads_check_pads_unlocked (GstCollectPads * pads)
-{
-  GST_DEBUG ("stored cookie : %d, used_cookie:%d",
-      pads->abidata.ABI.pad_cookie, pads->cookie);
-  if (G_UNLIKELY (pads->abidata.ABI.pad_cookie != pads->cookie)) {
-    GSList *collected;
-
-    /* clear list and stats */
-    g_slist_foreach (pads->data, (GFunc) unref_data, NULL);
-    g_slist_free (pads->data);
-    pads->data = NULL;
-    pads->numpads = 0;
-    pads->queuedpads = 0;
-    pads->eospads = 0;
-
-    /* loop over the master pad list */
-    collected = pads->abidata.ABI.pad_list;
-    for (; collected; collected = g_slist_next (collected)) {
-      GstCollectData *data;
-
-      /* update the stats */
-      pads->numpads++;
-      data = collected->data;
-
-      if (G_LIKELY (!data->abidata.ABI.flushing)) {
-        if (data->buffer)
-          pads->queuedpads++;
-        if (data->abidata.ABI.eos)
-          pads->eospads++;
-      }
-
-      /* add to the list of pads to collect */
-      ref_data (data);
-      pads->data = g_slist_prepend (pads->data, data);
-    }
-    /* and update the cookie */
-    pads->cookie = pads->abidata.ABI.pad_cookie;
-  }
-}
-
-static inline void
-gst_collect_pads_check_pads (GstCollectPads * pads)
-{
-  /* the master list and cookie are protected with the PAD_LOCK */
-  GST_COLLECT_PADS_PAD_LOCK (pads);
-  gst_collect_pads_check_pads_unlocked (pads);
-  GST_COLLECT_PADS_PAD_UNLOCK (pads);
-}
-
-/* checks if all the pads are collected and call the collectfunction
- *
- * Should be called with LOCK.
- *
- * Returns: The #GstFlowReturn of collection.
- */
-static GstFlowReturn
-gst_collect_pads_check_collected (GstCollectPads * pads)
-{
-  GstFlowReturn flow_ret = GST_FLOW_OK;
-
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), GST_FLOW_ERROR);
-  g_return_val_if_fail (pads->func != NULL, GST_FLOW_NOT_SUPPORTED);
-
-  /* check for new pads, update stats etc.. */
-  gst_collect_pads_check_pads (pads);
-
-  if (G_UNLIKELY (pads->eospads == pads->numpads)) {
-    /* If all our pads are EOS just collect once to let the element
-     * do its final EOS handling. */
-    GST_DEBUG ("All active pads (%d) are EOS, calling %s",
-        pads->numpads, GST_DEBUG_FUNCPTR_NAME (pads->func));
-    flow_ret = pads->func (pads, pads->user_data);
-  } else {
-    gboolean collected = FALSE;
-
-    /* We call the collected function as long as our condition matches.
-     * FIXME: should we error out if the collect function did not pop anything ?
-     * we can get a busy loop here if the element does not pop from the collect
-     * function
-     */
-    while (((pads->queuedpads + pads->eospads) >= pads->numpads)) {
-      GST_DEBUG ("All active pads (%d + %d >= %d) have data, calling %s",
-          pads->queuedpads, pads->eospads, pads->numpads,
-          GST_DEBUG_FUNCPTR_NAME (pads->func));
-      flow_ret = pads->func (pads, pads->user_data);
-      collected = TRUE;
-
-      /* break on error */
-      if (flow_ret != GST_FLOW_OK)
-        break;
-      /* Don't keep looping after telling the element EOS or flushing */
-      if (pads->queuedpads == 0)
-        break;
-    }
-    if (!collected)
-      GST_DEBUG ("Not all active pads (%d) have data, continuing",
-          pads->numpads);
-  }
-  return flow_ret;
-}
-
-static gboolean
-gst_collect_pads_event (GstPad * pad, GstEvent * event)
-{
-  gboolean res;
-  GstCollectData *data;
-  GstCollectPads *pads;
-
-  /* some magic to get the managing collect_pads */
-  GST_OBJECT_LOCK (pad);
-  data = (GstCollectData *) gst_pad_get_element_private (pad);
-  if (G_UNLIKELY (data == NULL))
-    goto pad_removed;
-  ref_data (data);
-  GST_OBJECT_UNLOCK (pad);
-
-  res = TRUE;
-
-  pads = data->collect;
-
-  GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
-      GST_DEBUG_PAD_NAME (data->pad));
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_FLUSH_START:
-    {
-      /* forward event to unblock check_collected */
-      gst_pad_event_default (pad, event);
-
-      /* now unblock the chain function.
-       * no cond per pad, so they all unblock,
-       * non-flushing block again */
-      GST_OBJECT_LOCK (pads);
-      data->abidata.ABI.flushing = TRUE;
-      gst_collect_pads_clear (pads, data);
-      GST_OBJECT_UNLOCK (pads);
-
-      /* event already cleaned up by forwarding */
-      goto done;
-    }
-    case GST_EVENT_FLUSH_STOP:
-    {
-      /* flush the 1 buffer queue */
-      GST_OBJECT_LOCK (pads);
-      data->abidata.ABI.flushing = FALSE;
-      gst_collect_pads_clear (pads, data);
-      /* we need new segment info after the flush */
-      gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
-      data->abidata.ABI.new_segment = FALSE;
-      /* if the pad was EOS, remove the EOS flag and
-       * decrement the number of eospads */
-      if (G_UNLIKELY (data->abidata.ABI.eos == TRUE)) {
-        pads->eospads--;
-        data->abidata.ABI.eos = FALSE;
-      }
-
-      if (!gst_collect_pads_is_flushing (pads)) {
-        /* forward event if all pads are no longer flushing */
-        GST_DEBUG ("No more pads are flushing, forwarding FLUSH_STOP");
-        GST_OBJECT_UNLOCK (pads);
-        goto forward;
-      }
-      gst_event_unref (event);
-      GST_OBJECT_UNLOCK (pads);
-      goto done;
-    }
-    case GST_EVENT_EOS:
-    {
-      GST_OBJECT_LOCK (pads);
-      /* if the pad was not EOS, make it EOS and so we
-       * have one more eospad */
-      if (G_LIKELY (data->abidata.ABI.eos == FALSE)) {
-        data->abidata.ABI.eos = TRUE;
-        pads->eospads++;
-      }
-      /* check if we need collecting anything, we ignore the
-       * result. */
-      gst_collect_pads_check_collected (pads);
-      GST_OBJECT_UNLOCK (pads);
-
-      /* We eat this event, element should do something
-       * in the collected callback. */
-      gst_event_unref (event);
-      goto done;
-    }
-    case GST_EVENT_SEGMENT:
-    {
-      gst_event_copy_segment (event, &data->segment);
-
-      GST_DEBUG_OBJECT (data->pad, "got newsegment %" GST_SEGMENT_FORMAT,
-          &data->segment);
-      data->abidata.ABI.new_segment = TRUE;
-
-      /* we must not forward this event since multiple segments will be
-       * accumulated and this is certainly not what we want. */
-      gst_event_unref (event);
-      /* FIXME: collect-pads based elements need to create their own newsegment
-       * event (and only one really)
-       * (a) make the segment part of the GstCollectData structure of each pad,
-       * so you can just check that once you have a buffer queued on that pad,
-       * (b) you can override a pad's event function with your own,
-       * catch the newsegment event and then pass it on to the original
-       * gstcollectpads event function
-       * (that's what avimux does for something IIRC)
-       * see #340060
-       */
-      goto done;
-    }
-    default:
-      /* forward other events */
-      goto forward;
-  }
-
-forward:
-  GST_DEBUG_OBJECT (pads, "forward unhandled event: %s",
-      GST_EVENT_TYPE_NAME (event));
-  res = gst_pad_event_default (pad, event);
-
-done:
-  unref_data (data);
-  return res;
-
-  /* ERRORS */
-pad_removed:
-  {
-    GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
-    GST_OBJECT_UNLOCK (pad);
-    return FALSE;
-  }
-}
-
-/* For each buffer we receive we check if our collected condition is reached
- * and if so we call the collected function. When this is done we check if
- * data has been unqueued. If data is still queued we wait holding the stream
- * lock to make sure no EOS event can happen while we are ready to be
- * collected
- */
-static GstFlowReturn
-gst_collect_pads_chain (GstPad * pad, GstBuffer * buffer)
-{
-  GstCollectData *data;
-  GstCollectPads *pads;
-  GstCollectPadsPrivate *priv;
-  GstFlowReturn ret;
-
-  GST_DEBUG ("Got buffer for pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-
-  /* some magic to get the managing collect_pads */
-  GST_OBJECT_LOCK (pad);
-  data = (GstCollectData *) gst_pad_get_element_private (pad);
-  if (G_UNLIKELY (data == NULL))
-    goto no_data;
-  ref_data (data);
-  GST_OBJECT_UNLOCK (pad);
-
-  pads = data->collect;
-  priv = pads->abidata.ABI.priv;
-
-  GST_OBJECT_LOCK (pads);
-  /* if not started, bail out */
-  if (G_UNLIKELY (!pads->started))
-    goto not_started;
-  /* check if this pad is flushing */
-  if (G_UNLIKELY (data->abidata.ABI.flushing))
-    goto flushing;
-  /* pad was EOS, we can refuse this data */
-  if (G_UNLIKELY (data->abidata.ABI.eos))
-    goto unexpected;
-
-  /* see if we need to clip */
-  if (priv->clipfunc) {
-    buffer = priv->clipfunc (pads, data, buffer, priv->clipfunc_user_data);
-
-    if (G_UNLIKELY (buffer == NULL))
-      goto clipped;
-  }
-
-  GST_DEBUG ("Queuing buffer %p for pad %s:%s", buffer,
-      GST_DEBUG_PAD_NAME (pad));
-
-  /* One more pad has data queued */
-  pads->queuedpads++;
-  /* take ownership of the buffer */
-  if (data->buffer)
-    gst_buffer_unref (data->buffer);
-  data->buffer = buffer;
-  buffer = NULL;
-
-  /* update segment last position if in TIME */
-  if (G_LIKELY (data->segment.format == GST_FORMAT_TIME)) {
-    GstClockTime timestamp = GST_BUFFER_TIMESTAMP (data->buffer);
-
-    if (GST_CLOCK_TIME_IS_VALID (timestamp))
-      data->segment.position = timestamp;
-  }
-
-  /* While we have data queued on this pad try to collect stuff */
-  do {
-    GST_DEBUG ("Pad %s:%s checking", GST_DEBUG_PAD_NAME (pad));
-    /* Check if our collected condition is matched and call the collected function
-     * if it is */
-    ret = gst_collect_pads_check_collected (pads);
-    /* when an error occurs, we want to report this back to the caller ASAP
-     * without having to block if the buffer was not popped */
-    if (G_UNLIKELY (ret != GST_FLOW_OK))
-      goto error;
-
-    /* data was consumed, we can exit and accept new data */
-    if (data->buffer == NULL)
-      break;
-
-    /* Check if we got removed in the mean time, FIXME, this is racy.
-     * Between this check and the _WAIT, the pad could be removed which will
-     * makes us hang in the _WAIT. */
-    GST_OBJECT_LOCK (pad);
-    if (G_UNLIKELY (gst_pad_get_element_private (pad) == NULL))
-      goto pad_removed;
-    GST_OBJECT_UNLOCK (pad);
-
-    GST_DEBUG ("Pad %s:%s has a buffer queued, waiting",
-        GST_DEBUG_PAD_NAME (pad));
-
-    /* wait to be collected, this must happen from another thread triggered
-     * by the _chain function of another pad. We release the lock so we
-     * can get stopped or flushed as well. We can however not get EOS
-     * because we still hold the STREAM_LOCK.
-     */
-    GST_COLLECT_PADS_WAIT (pads);
-
-    GST_DEBUG ("Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
-
-    /* after a signal, we could be stopped */
-    if (G_UNLIKELY (!pads->started))
-      goto not_started;
-    /* check if this pad is flushing */
-    if (G_UNLIKELY (data->abidata.ABI.flushing))
-      goto flushing;
-  }
-  while (data->buffer != NULL);
-
-unlock_done:
-  GST_DEBUG ("Pad %s:%s done", GST_DEBUG_PAD_NAME (pad));
-  GST_OBJECT_UNLOCK (pads);
-  unref_data (data);
-  if (buffer)
-    gst_buffer_unref (buffer);
-  return ret;
-
-pad_removed:
-  {
-    GST_WARNING ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
-    GST_OBJECT_UNLOCK (pad);
-    ret = GST_FLOW_NOT_LINKED;
-    goto unlock_done;
-  }
-  /* ERRORS */
-no_data:
-  {
-    GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
-    GST_OBJECT_UNLOCK (pad);
-    gst_buffer_unref (buffer);
-    return GST_FLOW_NOT_LINKED;
-  }
-not_started:
-  {
-    GST_DEBUG ("not started");
-    gst_collect_pads_clear (pads, data);
-    ret = GST_FLOW_WRONG_STATE;
-    goto unlock_done;
-  }
-flushing:
-  {
-    GST_DEBUG ("pad %s:%s is flushing", GST_DEBUG_PAD_NAME (pad));
-    gst_collect_pads_clear (pads, data);
-    ret = GST_FLOW_WRONG_STATE;
-    goto unlock_done;
-  }
-unexpected:
-  {
-    /* we should not post an error for this, just inform upstream that
-     * we don't expect anything anymore */
-    GST_DEBUG ("pad %s:%s is eos", GST_DEBUG_PAD_NAME (pad));
-    ret = GST_FLOW_UNEXPECTED;
-    goto unlock_done;
-  }
-clipped:
-  {
-    GST_DEBUG ("clipped buffer on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
-    ret = GST_FLOW_OK;
-    goto unlock_done;
-  }
-error:
-  {
-    /* we print the error, the element should post a reasonable error
-     * message for fatal errors */
-    GST_DEBUG ("collect failed, reason %d (%s)", ret, gst_flow_get_name (ret));
-    gst_collect_pads_clear (pads, data);
-    goto unlock_done;
-  }
-}
diff --git a/libs/gst/base/gstcollectpads.h b/libs/gst/base/gstcollectpads.h
deleted file mode 100644
index ba6761e..0000000
--- a/libs/gst/base/gstcollectpads.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/* GStreamer
- * Copyright (C) 2005 Wim Taymans <wim@fluendo.com>
- *
- * gstcollect_pads.h:
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_COLLECT_PADS_H__
-#define __GST_COLLECT_PADS_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_COLLECT_PADS            (gst_collect_pads_get_type())
-#define GST_COLLECT_PADS(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COLLECT_PADS,GstCollectPads))
-#define GST_COLLECT_PADS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COLLECT_PADS,GstCollectPadsClass))
-#define GST_COLLECT_PADS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_COLLECT_PADS,GstCollectPadsClass))
-#define GST_IS_COLLECT_PADS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COLLECT_PADS))
-#define GST_IS_COLLECT_PADS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COLLECT_PADS))
-
-typedef struct _GstCollectData GstCollectData;
-typedef struct _GstCollectPads GstCollectPads;
-typedef struct _GstCollectPadsPrivate GstCollectPadsPrivate;
-typedef struct _GstCollectPadsClass GstCollectPadsClass;
-
-/**
- * GstCollectDataDestroyNotify:
- * @data: the #GstCollectData that will be freed
- *
- * A function that will be called when the #GstCollectData will be freed.
- * It is passed the pointer to the structure and should free any custom
- * memory and resources allocated for it.
- *
- * Since: 0.10.12
- */
-typedef void (*GstCollectDataDestroyNotify) (GstCollectData *data);
-
-/**
- * GstCollectPadsClipFunction:
- * @pads: a #GstCollectPads 
- * @data: a #GstCollectData 
- * @buffer: a #GstBuffer 
- * @user_data: user data 
- *
- * A function that will be called when @buffer is received on the pad managed
- * by @data in the collecpad object @pads.
- *
- * The function should use the segment of @data and the negotiated media type on
- * the pad to perform clipping of @buffer. 
- *
- * This function takes ownership of @buffer.
- *
- * Returns: a #GstBuffer that contains the clipped data of @buffer or NULL when
- * the buffer has been clipped completely.
- *
- * Since: 0.10.26
- */
-typedef GstBuffer * (*GstCollectPadsClipFunction) (GstCollectPads *pads, GstCollectData *data,
-                                                   GstBuffer *buffer, gpointer user_data);
-
-/**
- * GstCollectData:
- * @collect: owner #GstCollectPads
- * @pad: #GstPad managed by this data
- * @buffer: currently queued buffer.
- * @pos: position in the buffer
- * @segment: last segment received.
- *
- * Structure used by the collect_pads.
- */
-struct _GstCollectData
-{
-  /* with LOCK of @collect */
-  GstCollectPads        *collect;
-  GstPad                *pad;
-  GstBuffer             *buffer;
-  guint                  pos;
-  GstSegment             segment;
-
-  /*< private >*/
-  union {
-    struct {
-      gboolean           flushing;
-      gboolean           new_segment;
-      gboolean           eos;
-      gint               refcount;
-    } ABI;
-    /* adding + 0 to mark ABI change to be undone later */
-    gpointer _gst_reserved[GST_PADDING + 0];
-  } abidata;
-};
-
-/**
- * GstCollectPadsFunction:
- * @pads: the #GstCollectPads that triggered the callback
- * @user_data: user data passed to gst_collect_pads_set_function()
- *
- * A function that will be called when all pads have received data.
- *
- * Returns: #GST_FLOW_OK for success
- */
-typedef GstFlowReturn (*GstCollectPadsFunction) (GstCollectPads *pads, gpointer user_data);
-
-#define GST_COLLECT_PADS_GET_PAD_LOCK(pads) (((GstCollectPads *)pads)->abidata.ABI.pad_lock)
-#define GST_COLLECT_PADS_PAD_LOCK(pads)     (g_mutex_lock(GST_COLLECT_PADS_GET_PAD_LOCK (pads)))
-#define GST_COLLECT_PADS_PAD_UNLOCK(pads)   (g_mutex_unlock(GST_COLLECT_PADS_GET_PAD_LOCK (pads)))
-
-#define GST_COLLECT_PADS_GET_COND(pads) (((GstCollectPads *)pads)->cond)
-#define GST_COLLECT_PADS_WAIT(pads)     (g_cond_wait (GST_COLLECT_PADS_GET_COND (pads), GST_OBJECT_GET_LOCK (pads)))
-#define GST_COLLECT_PADS_SIGNAL(pads)   (g_cond_signal (GST_COLLECT_PADS_GET_COND (pads)))
-#define GST_COLLECT_PADS_BROADCAST(pads)(g_cond_broadcast (GST_COLLECT_PADS_GET_COND (pads)))
-
-/**
- * GstCollectPads:
- * @data: #GList of #GstCollectData managed by this #GstCollectPads.
- *
- * Collectpads object.
- * Note that @data is only reliable for iterating the list of #GstCollectData
- * when inside the #GstCollectPadsFunction callback.
- */
-struct _GstCollectPads {
-  GstObject      object;
-
-  /*< public >*/ /* with LOCK */
-  GSList        *data;                  /* list of CollectData items */
-
-  /*< private >*/
-  guint32        cookie;                /* @data list cookie */
-
-  /* with LOCK */
-  GCond         *cond;                  /* to signal removal of data */
-
-  GstCollectPadsFunction func;          /* function and user_data for callback */
-  gpointer       user_data;
-
-  guint          numpads;               /* number of pads in @data */
-  guint          queuedpads;            /* number of pads with a buffer */
-  guint          eospads;               /* number of pads that are EOS */
-
-  /* with LOCK and PAD_LOCK*/
-  gboolean       started;
-
-  /*< private >*/
-  union {
-    struct {
-      /* since 0.10.6 */ /* with PAD_LOCK */
-      GMutex    *pad_lock;              /* used to serialize add/remove */
-      GSList    *pad_list;              /* updated pad list */
-      guint32    pad_cookie;            /* updated cookie */
-      GstCollectPadsPrivate  *priv;
-    } ABI;
-    /* adding + 0 to mark ABI change to be undone later */
-    gpointer _gst_reserved[GST_PADDING + 0];
-  } abidata;
-};
-
-struct _GstCollectPadsClass {
-  GstObjectClass parent_class;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_collect_pads_get_type(void);
-
-/* creating the object */
-GstCollectPads* gst_collect_pads_new            (void);
-
-/* set the callbacks */
-void            gst_collect_pads_set_function      (GstCollectPads *pads, GstCollectPadsFunction func,
-                                                    gpointer user_data);
-void            gst_collect_pads_set_clip_function (GstCollectPads *pads, GstCollectPadsClipFunction clipfunc,
-                                                    gpointer user_data);
-
-/* pad management */
-GstCollectData* gst_collect_pads_add_pad        (GstCollectPads *pads, GstPad *pad, guint size);
-GstCollectData* gst_collect_pads_add_pad_full   (GstCollectPads *pads, GstPad *pad, guint size, GstCollectDataDestroyNotify destroy_notify);
-
-
-gboolean        gst_collect_pads_remove_pad     (GstCollectPads *pads, GstPad *pad);
-gboolean        gst_collect_pads_is_active      (GstCollectPads *pads, GstPad *pad);
-
-/* start/stop collection */
-GstFlowReturn   gst_collect_pads_collect        (GstCollectPads *pads);
-GstFlowReturn   gst_collect_pads_collect_range  (GstCollectPads *pads, guint64 offset, guint length);
-
-void            gst_collect_pads_start          (GstCollectPads *pads);
-void            gst_collect_pads_stop           (GstCollectPads *pads);
-void            gst_collect_pads_set_flushing   (GstCollectPads *pads, gboolean flushing);
-
-/* get collected buffers */
-GstBuffer*      gst_collect_pads_peek           (GstCollectPads *pads, GstCollectData *data);
-GstBuffer*      gst_collect_pads_pop            (GstCollectPads *pads, GstCollectData *data);
-
-/* get collected bytes */
-guint           gst_collect_pads_available      (GstCollectPads *pads);
-GstBuffer *     gst_collect_pads_read_buffer    (GstCollectPads * pads, GstCollectData * data,
-                                                 guint size);
-GstBuffer *     gst_collect_pads_take_buffer    (GstCollectPads * pads, GstCollectData * data,
-                                                 guint size);
-guint           gst_collect_pads_flush          (GstCollectPads *pads, GstCollectData *data,
-                                                 guint size);
-
-G_END_DECLS
-
-#endif /* __GST_COLLECT_PADS_H__ */
diff --git a/libs/gst/base/gstcollectpads2.c b/libs/gst/base/gstcollectpads2.c
new file mode 100644
index 0000000..600fd4f
--- /dev/null
+++ b/libs/gst/base/gstcollectpads2.c
@@ -0,0 +1,2039 @@
+/* GStreamer
+ * Copyright (C) 2005 Wim Taymans <wim@fluendo.com>
+ * Copyright (C) 2008 Mark Nauwelaerts <mnauw@users.sourceforge.net>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * gstcollectpads2.c:
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/**
+ * SECTION:gstcollectpads2
+ * @short_description: manages a set of pads that operate in collect mode
+ * @see_also:
+ *
+ * Manages a set of pads that operate in collect mode. This means that control
+ * is given to the manager of this object when all pads have data.
+ * <itemizedlist>
+ *   <listitem><para>
+ *     Collectpads are created with gst_collect_pads2_new(). A callback should then
+ *     be installed with gst_collect_pads2_set_function ().
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Pads are added to the collection with gst_collect_pads2_add_pad()/
+ *     gst_collect_pads2_remove_pad(). The pad
+ *     has to be a sinkpad. The chain and event functions of the pad are
+ *     overridden. The element_private of the pad is used to store
+ *     private information for the collectpads.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     For each pad, data is queued in the _chain function or by
+ *     performing a pull_range.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     When data is queued on all pads in waiting mode, the callback function is called.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Data can be dequeued from the pad with the gst_collect_pads2_pop() method.
+ *     One can peek at the data with the gst_collect_pads2_peek() function.
+ *     These functions will return NULL if the pad received an EOS event. When all
+ *     pads return NULL from a gst_collect_pads2_peek(), the element can emit an EOS
+ *     event itself.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Data can also be dequeued in byte units using the gst_collect_pads2_available(),
+ *     gst_collect_pads2_read() and gst_collect_pads2_flush() calls.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     Elements should call gst_collect_pads2_start() and gst_collect_pads2_stop() in
+ *     their state change functions to start and stop the processing of the collectpads.
+ *     The gst_collect_pads2_stop() call should be called before calling the parent
+ *     element state change function in the PAUSED_TO_READY state change to ensure
+ *     no pad is blocked and the element can finish streaming.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     gst_collect_pads2_collect() and gst_collect_pads2_collect_range() can be used by
+ *     elements that start a #GstTask to drive the collect_pads2. This feature is however
+ *     not yet implemented.
+ *   </para></listitem>
+ *   <listitem><para>
+ *     gst_collect_pads2_set_waiting() sets a pad to waiting or non-waiting mode.
+ *     CollectPads element is not waiting for data to be collected on non-waiting pads.
+ *     Thus these pads may but need not have data when the callback is called.
+ *     All pads are in waiting mode by default.
+ *   </para></listitem>
+ * </itemizedlist>
+ *
+ * Last reviewed on 2011-10-28 (0.10.36)
+ *
+ * Since: 0.10.36
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <gst/gst_private.h>
+
+#include "gstcollectpads2.h"
+
+#include "../../../gst/glib-compat-private.h"
+
+GST_DEBUG_CATEGORY_STATIC (collect_pads2_debug);
+#define GST_CAT_DEFAULT collect_pads2_debug
+
+#define parent_class gst_collect_pads2_parent_class
+G_DEFINE_TYPE (GstCollectPads2, gst_collect_pads2, GST_TYPE_OBJECT);
+
+struct _GstCollectData2Private
+{
+  /* refcounting for struct, and destroy callback */
+  GstCollectData2DestroyNotify destroy_notify;
+  gint refcount;
+};
+
+struct _GstCollectPads2Private
+{
+  /* with LOCK and/or STREAM_LOCK */
+  gboolean started;
+
+  /* with STREAM_LOCK */
+  guint32 cookie;               /* @data list cookie */
+  guint numpads;                /* number of pads in @data */
+  guint queuedpads;             /* number of pads with a buffer */
+  guint eospads;                /* number of pads that are EOS */
+  GstClockTime earliest_time;   /* Current earliest time */
+  GstCollectData2 *earliest_data;       /* Pad data for current earliest time */
+
+  /* with LOCK */
+  GSList *pad_list;             /* updated pad list */
+  guint32 pad_cookie;           /* updated cookie */
+
+  GstCollectPads2Function func; /* function and user_data for callback */
+  gpointer user_data;
+  GstCollectPads2BufferFunction buffer_func;    /* function and user_data for buffer callback */
+  gpointer buffer_user_data;
+  GstCollectPads2CompareFunction compare_func;
+  gpointer compare_user_data;
+  GstCollectPads2EventFunction event_func;      /* function and data for event callback */
+  gpointer event_user_data;
+  GstCollectPads2ClipFunction clip_func;
+  gpointer clip_user_data;
+
+  /* no other lock needed */
+  GMutex evt_lock;              /* these make up sort of poor man's event signaling */
+  GCond evt_cond;
+  guint32 evt_cookie;
+};
+
+static void gst_collect_pads2_clear (GstCollectPads2 * pads,
+    GstCollectData2 * data);
+static GstFlowReturn gst_collect_pads2_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static gboolean gst_collect_pads2_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static void gst_collect_pads2_finalize (GObject * object);
+static GstFlowReturn gst_collect_pads2_default_collected (GstCollectPads2 *
+    pads, gpointer user_data);
+static gint gst_collect_pads2_default_compare_func (GstCollectPads2 * pads,
+    GstCollectData2 * data1, GstClockTime timestamp1, GstCollectData2 * data2,
+    GstClockTime timestamp2, gpointer user_data);
+static gboolean gst_collect_pads2_recalculate_full (GstCollectPads2 * pads);
+static void ref_data (GstCollectData2 * data);
+static void unref_data (GstCollectData2 * data);
+
+/* Some properties are protected by LOCK, others by STREAM_LOCK
+ * However, manipulating either of these partitions may require
+ * to signal/wake a _WAIT, so use a separate (sort of) event to prevent races
+ * Alternative implementations are possible, e.g. some low-level re-implementing
+ * of the 2 above locks to drop both of them atomically when going into _WAIT.
+ */
+#define GST_COLLECT_PADS2_GET_EVT_COND(pads) (&((GstCollectPads2 *)pads)->priv->evt_cond)
+#define GST_COLLECT_PADS2_GET_EVT_LOCK(pads) (&((GstCollectPads2 *)pads)->priv->evt_lock)
+#define GST_COLLECT_PADS2_EVT_WAIT(pads, cookie) G_STMT_START {    \
+  g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));            \
+  /* should work unless a lot of event'ing and thread starvation */\
+  while (cookie == ((GstCollectPads2 *) pads)->priv->evt_cookie)         \
+    g_cond_wait (GST_COLLECT_PADS2_GET_EVT_COND (pads),            \
+        GST_COLLECT_PADS2_GET_EVT_LOCK (pads));                    \
+  cookie = ((GstCollectPads2 *) pads)->priv->evt_cookie;                 \
+  g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));          \
+} G_STMT_END
+#define GST_COLLECT_PADS2_EVT_WAIT_TIMED(pads, cookie, timeout) G_STMT_START { \
+  GTimeVal __tv; \
+  \
+  g_get_current_time (&tv); \
+  g_time_val_add (&tv, timeout); \
+  \
+  g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));            \
+  /* should work unless a lot of event'ing and thread starvation */\
+  while (cookie == ((GstCollectPads2 *) pads)->priv->evt_cookie)         \
+    g_cond_timed_wait (GST_COLLECT_PADS2_GET_EVT_COND (pads),            \
+        GST_COLLECT_PADS2_GET_EVT_LOCK (pads), &tv);                    \
+  cookie = ((GstCollectPads2 *) pads)->priv->evt_cookie;                 \
+  g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));          \
+} G_STMT_END
+#define GST_COLLECT_PADS2_EVT_BROADCAST(pads) G_STMT_START {       \
+  g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));            \
+  /* never mind wrap-around */                                     \
+  ++(((GstCollectPads2 *) pads)->priv->evt_cookie);                      \
+  g_cond_broadcast (GST_COLLECT_PADS2_GET_EVT_COND (pads));        \
+  g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));          \
+} G_STMT_END
+#define GST_COLLECT_PADS2_EVT_INIT(cookie) G_STMT_START {          \
+  g_mutex_lock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));            \
+  cookie = ((GstCollectPads2 *) pads)->priv->evt_cookie;                 \
+  g_mutex_unlock (GST_COLLECT_PADS2_GET_EVT_LOCK (pads));          \
+} G_STMT_END
+
+static void
+gst_collect_pads2_class_init (GstCollectPads2Class * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  g_type_class_add_private (klass, sizeof (GstCollectPads2Private));
+
+  GST_DEBUG_CATEGORY_INIT (collect_pads2_debug, "collectpads2", 0,
+      "GstCollectPads2");
+
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_collect_pads2_finalize);
+}
+
+static void
+gst_collect_pads2_init (GstCollectPads2 * pads)
+{
+  pads->priv =
+      G_TYPE_INSTANCE_GET_PRIVATE (pads, GST_TYPE_COLLECT_PADS2,
+      GstCollectPads2Private);
+
+  pads->data = NULL;
+  pads->priv->cookie = 0;
+  pads->priv->numpads = 0;
+  pads->priv->queuedpads = 0;
+  pads->priv->eospads = 0;
+  pads->priv->started = FALSE;
+
+  g_rec_mutex_init (&pads->stream_lock);
+
+  pads->priv->func = gst_collect_pads2_default_collected;
+  pads->priv->user_data = NULL;
+  pads->priv->event_func = NULL;
+  pads->priv->event_user_data = NULL;
+
+  /* members for default muxing */
+  pads->priv->buffer_func = NULL;
+  pads->priv->buffer_user_data = NULL;
+  pads->priv->compare_func = gst_collect_pads2_default_compare_func;
+  pads->priv->compare_user_data = NULL;
+  pads->priv->earliest_data = NULL;
+  pads->priv->earliest_time = GST_CLOCK_TIME_NONE;
+
+  /* members to manage the pad list */
+  pads->priv->pad_cookie = 0;
+  pads->priv->pad_list = NULL;
+
+  /* members for event */
+  g_mutex_init (&pads->priv->evt_lock);
+  g_cond_init (&pads->priv->evt_cond);
+  pads->priv->evt_cookie = 0;
+}
+
+static void
+gst_collect_pads2_finalize (GObject * object)
+{
+  GstCollectPads2 *pads = GST_COLLECT_PADS2 (object);
+
+  GST_DEBUG_OBJECT (object, "finalize");
+
+  g_rec_mutex_clear (&pads->stream_lock);
+
+  g_cond_clear (&pads->priv->evt_cond);
+  g_mutex_clear (&pads->priv->evt_lock);
+
+  /* Remove pads and free pads list */
+  g_slist_foreach (pads->priv->pad_list, (GFunc) unref_data, NULL);
+  g_slist_foreach (pads->data, (GFunc) unref_data, NULL);
+  g_slist_free (pads->data);
+  g_slist_free (pads->priv->pad_list);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/**
+ * gst_collect_pads2_new:
+ *
+ * Create a new instance of #GstCollectsPads.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): a new #GstCollectPads2, or NULL in case of an error.
+ *
+ * Since: 0.10.36
+ */
+GstCollectPads2 *
+gst_collect_pads2_new (void)
+{
+  GstCollectPads2 *newcoll;
+
+  newcoll = g_object_new (GST_TYPE_COLLECT_PADS2, NULL);
+
+  return newcoll;
+}
+
+/* Must be called with GstObject lock! */
+static void
+gst_collect_pads2_set_buffer_function_locked (GstCollectPads2 * pads,
+    GstCollectPads2BufferFunction func, gpointer user_data)
+{
+  pads->priv->buffer_func = func;
+  pads->priv->buffer_user_data = user_data;
+}
+
+/**
+ * gst_collect_pads2_set_buffer_function:
+ * @pads: the collectpads to use
+ * @func: the function to set
+ * @user_data: (closure): user data passed to the function
+ *
+ * Set the callback function and user data that will be called with
+ * the oldest buffer when all pads have been collected.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_buffer_function (GstCollectPads2 * pads,
+    GstCollectPads2BufferFunction func, gpointer user_data)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_OBJECT_LOCK (pads);
+  gst_collect_pads2_set_buffer_function_locked (pads, func, user_data);
+  GST_OBJECT_UNLOCK (pads);
+}
+
+/**
+ * gst_collect_pads2_set_compare_function:
+ * @pads: the pads to use
+ * @func: the function to set
+ * @user_data: (closure): user data passed to the function
+ *
+ * Set the timestamp comparison function.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+/* NOTE allowing to change comparison seems not advisable;
+no known use-case, and collaboration with default algorithm is unpredictable.
+If custom compairing/operation is needed, just use a collect function of
+your own */
+void
+gst_collect_pads2_set_compare_function (GstCollectPads2 * pads,
+    GstCollectPads2CompareFunction func, gpointer user_data)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_OBJECT_LOCK (pads);
+  pads->priv->compare_func = func;
+  pads->priv->compare_user_data = user_data;
+  GST_OBJECT_UNLOCK (pads);
+}
+
+/**
+ * gst_collect_pads2_set_function:
+ * @pads: the collectspads to use
+ * @func: the function to set
+ * @user_data: user data passed to the function
+ *
+ * CollectPads provides a default collection algorithm that will determine
+ * the oldest buffer available on all of its pads, and then delegate
+ * to a configured callback.
+ * However, if circumstances are more complicated and/or more control
+ * is desired, this sets a callback that will be invoked instead when
+ * all the pads added to the collection have buffers queued.
+ * Evidently, this callback is not compatible with
+ * gst_collect_pads2_set_buffer_function() callback.
+ * If this callback is set, the former will be unset.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_function (GstCollectPads2 * pads,
+    GstCollectPads2Function func, gpointer user_data)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_OBJECT_LOCK (pads);
+  pads->priv->func = func;
+  pads->priv->user_data = user_data;
+  gst_collect_pads2_set_buffer_function_locked (pads, NULL, NULL);
+  GST_OBJECT_UNLOCK (pads);
+}
+
+static void
+ref_data (GstCollectData2 * data)
+{
+  g_assert (data != NULL);
+
+  g_atomic_int_inc (&(data->priv->refcount));
+}
+
+static void
+unref_data (GstCollectData2 * data)
+{
+  g_assert (data != NULL);
+  g_assert (data->priv->refcount > 0);
+
+  if (!g_atomic_int_dec_and_test (&(data->priv->refcount)))
+    return;
+
+  if (data->priv->destroy_notify)
+    data->priv->destroy_notify (data);
+
+  g_object_unref (data->pad);
+  if (data->buffer) {
+    gst_buffer_unref (data->buffer);
+  }
+  g_free (data->priv);
+  g_free (data);
+}
+
+/**
+ * gst_collect_pads2_set_event_function:
+ * @pads: the collectspads to use
+ * @func: the function to set
+ * @user_data: user data passed to the function
+ *
+ * Set the event callback function and user data that will be called after
+ * collectpads has processed and event originating from one of the collected
+ * pads.  If the event being processed is a serialized one, this callback is
+ * called with @pads STREAM_LOCK held, otherwise not.  As this lock should be
+ * held when calling a number of CollectPads functions, it should be acquired
+ * if so (unusually) needed.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_event_function (GstCollectPads2 * pads,
+    GstCollectPads2EventFunction func, gpointer user_data)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_OBJECT_LOCK (pads);
+  pads->priv->event_func = func;
+  pads->priv->event_user_data = user_data;
+  GST_OBJECT_UNLOCK (pads);
+}
+
+/**
+* gst_collect_pads2_clip_running_time:
+* @pads: the collectspads to use
+* @cdata: collect data of corresponding pad
+* @buf: buffer being clipped
+* @outbuf: output buffer with running time, or NULL if clipped
+* @user_data: user data (unused)
+*
+* Convenience clipping function that converts incoming buffer's timestamp
+* to running time, or clips the buffer if outside configured segment.
+*
+* Since: 0.10.37
+*/
+GstFlowReturn
+gst_collect_pads2_clip_running_time (GstCollectPads2 * pads,
+    GstCollectData2 * cdata, GstBuffer * buf, GstBuffer ** outbuf,
+    gpointer user_data)
+{
+  GstClockTime time;
+
+  *outbuf = buf;
+  time = GST_BUFFER_TIMESTAMP (buf);
+
+  /* invalid left alone and passed */
+  if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (time))) {
+    time = gst_segment_to_running_time (&cdata->segment, GST_FORMAT_TIME, time);
+    if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (time))) {
+      GST_DEBUG_OBJECT (cdata->pad, "clipping buffer on pad outside segment");
+      gst_buffer_unref (buf);
+      *outbuf = NULL;
+    } else {
+      GST_LOG_OBJECT (cdata->pad, "buffer ts %" GST_TIME_FORMAT " -> %"
+          GST_TIME_FORMAT " running time",
+          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), GST_TIME_ARGS (time));
+      *outbuf = gst_buffer_make_writable (buf);
+      GST_BUFFER_TIMESTAMP (*outbuf) = time;
+    }
+  }
+
+  return GST_FLOW_OK;
+}
+
+ /**
+ * gst_collect_pads2_set_clip_function:
+ * @pads: the collectspads to use
+ * @clipfunc: clip function to install
+ * @user_data: user data to pass to @clip_func
+ *
+ * Install a clipping function that is called right after a buffer is received
+ * on a pad managed by @pads. See #GstCollectPad2ClipFunction for more info.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_clip_function (GstCollectPads2 * pads,
+    GstCollectPads2ClipFunction clipfunc, gpointer user_data)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  pads->priv->clip_func = clipfunc;
+  pads->priv->clip_user_data = user_data;
+}
+
+/**
+ * gst_collect_pads2_add_pad:
+ * @pads: the collectspads to use
+ * @pad: (transfer none): the pad to add
+ * @size: the size of the returned #GstCollectData2 structure
+ *
+ * Add a pad to the collection of collect pads. The pad has to be
+ * a sinkpad. The refcount of the pad is incremented. Use
+ * gst_collect_pads2_remove_pad() to remove the pad from the collection
+ * again.
+ *
+ * You specify a size for the returned #GstCollectData2 structure
+ * so that you can use it to store additional information.
+ *
+ * The pad will be automatically activated in push mode when @pads is
+ * started.
+ *
+ * This function calls gst_collect_pads2_add_pad_full() passing a value of NULL
+ * for destroy_notify and TRUE for locked.
+ *
+ * MT safe.
+ *
+ * Returns: a new #GstCollectData2 to identify the new pad. Or NULL
+ *   if wrong parameters are supplied.
+ *
+ * Since: 0.10.36
+ */
+GstCollectData2 *
+gst_collect_pads2_add_pad (GstCollectPads2 * pads, GstPad * pad, guint size)
+{
+  return gst_collect_pads2_add_pad_full (pads, pad, size, NULL, TRUE);
+}
+
+/**
+ * gst_collect_pads2_add_pad_full:
+ * @pads: the collectspads to use
+ * @pad: (transfer none): the pad to add
+ * @size: the size of the returned #GstCollectData2 structure
+ * @destroy_notify: function to be called before the returned #GstCollectData2
+ * structure is freed
+ * @lock: whether to lock this pad in usual waiting state
+ *
+ * Add a pad to the collection of collect pads. The pad has to be
+ * a sinkpad. The refcount of the pad is incremented. Use
+ * gst_collect_pads2_remove_pad() to remove the pad from the collection
+ * again.
+ *
+ * You specify a size for the returned #GstCollectData2 structure
+ * so that you can use it to store additional information.
+ *
+ * You can also specify a #GstCollectData2DestroyNotify that will be called
+ * just before the #GstCollectData2 structure is freed. It is passed the
+ * pointer to the structure and should free any custom memory and resources
+ * allocated for it.
+ *
+ * Keeping a pad locked in waiting state is only relevant when using
+ * the default collection algorithm (providing the oldest buffer).
+ * It ensures a buffer must be available on this pad for a collection
+ * to take place.  This is of typical use to a muxer element where
+ * non-subtitle streams should always be in waiting state,
+ * e.g. to assure that caps information is available on all these streams
+ * when initial headers have to be written.
+ *
+ * The pad will be automatically activated in push mode when @pads is
+ * started.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ *
+ * Returns: a new #GstCollectData2 to identify the new pad. Or NULL
+ *   if wrong parameters are supplied.
+ */
+GstCollectData2 *
+gst_collect_pads2_add_pad_full (GstCollectPads2 * pads, GstPad * pad,
+    guint size, GstCollectData2DestroyNotify destroy_notify, gboolean lock)
+{
+  GstCollectData2 *data;
+
+  g_return_val_if_fail (pads != NULL, NULL);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL);
+  g_return_val_if_fail (pad != NULL, NULL);
+  g_return_val_if_fail (GST_PAD_IS_SINK (pad), NULL);
+  g_return_val_if_fail (size >= sizeof (GstCollectData2), NULL);
+
+  GST_DEBUG_OBJECT (pads, "adding pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+  data = g_malloc0 (size);
+  data->priv = g_new0 (GstCollectData2Private, 1);
+  data->collect = pads;
+  data->pad = gst_object_ref (pad);
+  data->buffer = NULL;
+  data->pos = 0;
+  gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
+  data->state = GST_COLLECT_PADS2_STATE_WAITING;
+  data->state |= lock ? GST_COLLECT_PADS2_STATE_LOCKED : 0;
+  data->priv->refcount = 1;
+  data->priv->destroy_notify = destroy_notify;
+
+  GST_OBJECT_LOCK (pads);
+  GST_OBJECT_LOCK (pad);
+  gst_pad_set_element_private (pad, data);
+  GST_OBJECT_UNLOCK (pad);
+  pads->priv->pad_list = g_slist_append (pads->priv->pad_list, data);
+  gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads2_chain));
+  gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_collect_pads2_event));
+  /* backward compat, also add to data if stopped, so that the element already
+   * has this in the public data list before going PAUSED (typically)
+   * this can only be done when we are stopped because we don't take the
+   * STREAM_LOCK to protect the pads->data list. */
+  if (!pads->priv->started) {
+    pads->data = g_slist_append (pads->data, data);
+    ref_data (data);
+  }
+  /* activate the pad when needed */
+  if (pads->priv->started)
+    gst_pad_set_active (pad, TRUE);
+  pads->priv->pad_cookie++;
+  GST_OBJECT_UNLOCK (pads);
+
+  return data;
+}
+
+static gint
+find_pad (GstCollectData2 * data, GstPad * pad)
+{
+  if (data->pad == pad)
+    return 0;
+  return 1;
+}
+
+/**
+ * gst_collect_pads2_remove_pad:
+ * @pads: the collectspads to use
+ * @pad: (transfer none): the pad to remove
+ *
+ * Remove a pad from the collection of collect pads. This function will also
+ * free the #GstCollectData2 and all the resources that were allocated with
+ * gst_collect_pads2_add_pad().
+ *
+ * The pad will be deactivated automatically when @pads is stopped.
+ *
+ * MT safe.
+ *
+ * Returns: %TRUE if the pad could be removed.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_collect_pads2_remove_pad (GstCollectPads2 * pads, GstPad * pad)
+{
+  GstCollectData2 *data;
+  GSList *list;
+
+  g_return_val_if_fail (pads != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), FALSE);
+  g_return_val_if_fail (pad != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+
+  GST_DEBUG_OBJECT (pads, "removing pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+  GST_OBJECT_LOCK (pads);
+  list =
+      g_slist_find_custom (pads->priv->pad_list, pad, (GCompareFunc) find_pad);
+  if (!list)
+    goto unknown_pad;
+
+  data = (GstCollectData2 *) list->data;
+
+  GST_DEBUG_OBJECT (pads, "found pad %s:%s at %p", GST_DEBUG_PAD_NAME (pad),
+      data);
+
+  /* clear the stuff we configured */
+  gst_pad_set_chain_function (pad, NULL);
+  gst_pad_set_event_function (pad, NULL);
+  GST_OBJECT_LOCK (pad);
+  gst_pad_set_element_private (pad, NULL);
+  GST_OBJECT_UNLOCK (pad);
+
+  /* backward compat, also remove from data if stopped, note that this function
+   * can only be called when we are stopped because we don't take the
+   * STREAM_LOCK to protect the pads->data list. */
+  if (!pads->priv->started) {
+    GSList *dlist;
+
+    dlist = g_slist_find_custom (pads->data, pad, (GCompareFunc) find_pad);
+    if (dlist) {
+      GstCollectData2 *pdata = dlist->data;
+
+      pads->data = g_slist_delete_link (pads->data, dlist);
+      unref_data (pdata);
+    }
+  }
+  /* remove from the pad list */
+  pads->priv->pad_list = g_slist_delete_link (pads->priv->pad_list, list);
+  pads->priv->pad_cookie++;
+
+  /* signal waiters because something changed */
+  GST_COLLECT_PADS2_EVT_BROADCAST (pads);
+
+  /* deactivate the pad when needed */
+  if (!pads->priv->started)
+    gst_pad_set_active (pad, FALSE);
+
+  /* clean and free the collect data */
+  unref_data (data);
+
+  GST_OBJECT_UNLOCK (pads);
+
+  return TRUE;
+
+unknown_pad:
+  {
+    GST_WARNING_OBJECT (pads, "cannot remove unknown pad %s:%s",
+        GST_DEBUG_PAD_NAME (pad));
+    GST_OBJECT_UNLOCK (pads);
+    return FALSE;
+  }
+}
+
+/**
+ * gst_collect_pads2_is_active:
+ * @pads: the collectspads to use
+ * @pad: the pad to check
+ *
+ * Check if a pad is active.
+ *
+ * This function is currently not implemented.
+ *
+ * MT safe.
+ *
+ * Returns: %TRUE if the pad is active.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_collect_pads2_is_active (GstCollectPads2 * pads, GstPad * pad)
+{
+  g_return_val_if_fail (pads != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), FALSE);
+  g_return_val_if_fail (pad != NULL, FALSE);
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+
+  g_warning ("gst_collect_pads2_is_active() is not implemented");
+
+  return FALSE;
+}
+
+/**
+ * gst_collect_pads2_collect:
+ * @pads: the collectspads to use
+ *
+ * Collect data on all pads. This function is usually called
+ * from a #GstTask function in an element. 
+ *
+ * This function is currently not implemented.
+ *
+ * MT safe.
+ *
+ * Returns: #GstFlowReturn of the operation.
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_collect_pads2_collect (GstCollectPads2 * pads)
+{
+  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR);
+
+  g_warning ("gst_collect_pads2_collect() is not implemented");
+
+  return GST_FLOW_NOT_SUPPORTED;
+}
+
+/**
+ * gst_collect_pads2_collect_range:
+ * @pads: the collectspads to use
+ * @offset: the offset to collect
+ * @length: the length to collect
+ *
+ * Collect data with @offset and @length on all pads. This function
+ * is typically called in the getrange function of an element. 
+ *
+ * This function is currently not implemented.
+ *
+ * MT safe.
+ *
+ * Returns: #GstFlowReturn of the operation.
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_collect_pads2_collect_range (GstCollectPads2 * pads, guint64 offset,
+    guint length)
+{
+  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR);
+
+  g_warning ("gst_collect_pads2_collect_range() is not implemented");
+
+  return GST_FLOW_NOT_SUPPORTED;
+}
+
+/*
+ * Must be called with STREAM_LOCK.
+ */
+static void
+gst_collect_pads2_set_flushing_unlocked (GstCollectPads2 * pads,
+    gboolean flushing)
+{
+  GSList *walk = NULL;
+
+  /* Update the pads flushing flag */
+  for (walk = pads->data; walk; walk = g_slist_next (walk)) {
+    GstCollectData2 *cdata = walk->data;
+
+    if (GST_IS_PAD (cdata->pad)) {
+      GST_OBJECT_LOCK (cdata->pad);
+      if (flushing)
+        GST_PAD_SET_FLUSHING (cdata->pad);
+      else
+        GST_PAD_UNSET_FLUSHING (cdata->pad);
+      if (flushing)
+        GST_COLLECT_PADS2_STATE_SET (cdata, GST_COLLECT_PADS2_STATE_FLUSHING);
+      else
+        GST_COLLECT_PADS2_STATE_UNSET (cdata, GST_COLLECT_PADS2_STATE_FLUSHING);
+      gst_collect_pads2_clear (pads, cdata);
+      GST_OBJECT_UNLOCK (cdata->pad);
+    }
+  }
+
+  /* inform _chain of changes */
+  GST_COLLECT_PADS2_EVT_BROADCAST (pads);
+}
+
+/**
+ * gst_collect_pads2_set_flushing:
+ * @pads: the collectspads to use
+ * @flushing: desired state of the pads
+ *
+ * Change the flushing state of all the pads in the collection. No pad
+ * is able to accept anymore data when @flushing is %TRUE. Calling this
+ * function with @flushing %FALSE makes @pads accept data again.
+ * Caller must ensure that downstream streaming (thread) is not blocked,
+ * e.g. by sending a FLUSH_START downstream.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_flushing (GstCollectPads2 * pads, gboolean flushing)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  /* NOTE since this eventually calls _pop, some (STREAM_)LOCK is needed here */
+  GST_COLLECT_PADS2_STREAM_LOCK (pads);
+  gst_collect_pads2_set_flushing_unlocked (pads, flushing);
+  GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+}
+
+/**
+ * gst_collect_pads2_start:
+ * @pads: the collectspads to use
+ *
+ * Starts the processing of data in the collect_pads2.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_start (GstCollectPads2 * pads)
+{
+  GSList *collected;
+
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_DEBUG_OBJECT (pads, "starting collect pads");
+
+  /* make sure stop and collect cannot be called anymore */
+  GST_COLLECT_PADS2_STREAM_LOCK (pads);
+
+  /* make pads streamable */
+  GST_OBJECT_LOCK (pads);
+
+  /* loop over the master pad list and reset the segment */
+  collected = pads->priv->pad_list;
+  for (; collected; collected = g_slist_next (collected)) {
+    GstCollectData2 *data;
+
+    data = collected->data;
+    gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
+  }
+
+  gst_collect_pads2_set_flushing_unlocked (pads, FALSE);
+
+  /* Start collect pads */
+  pads->priv->started = TRUE;
+  GST_OBJECT_UNLOCK (pads);
+  GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+}
+
+/**
+ * gst_collect_pads2_stop:
+ * @pads: the collectspads to use
+ *
+ * Stops the processing of data in the collect_pads2. this function
+ * will also unblock any blocking operations.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_stop (GstCollectPads2 * pads)
+{
+  GSList *collected;
+
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+
+  GST_DEBUG_OBJECT (pads, "stopping collect pads");
+
+  /* make sure collect and start cannot be called anymore */
+  GST_COLLECT_PADS2_STREAM_LOCK (pads);
+
+  /* make pads not accept data anymore */
+  GST_OBJECT_LOCK (pads);
+  gst_collect_pads2_set_flushing_unlocked (pads, TRUE);
+
+  /* Stop collect pads */
+  pads->priv->started = FALSE;
+  pads->priv->eospads = 0;
+  pads->priv->queuedpads = 0;
+
+  /* loop over the master pad list and flush buffers */
+  collected = pads->priv->pad_list;
+  for (; collected; collected = g_slist_next (collected)) {
+    GstCollectData2 *data;
+    GstBuffer **buffer_p;
+
+    data = collected->data;
+    if (data->buffer) {
+      buffer_p = &data->buffer;
+      gst_buffer_replace (buffer_p, NULL);
+      data->pos = 0;
+    }
+    GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_EOS);
+  }
+
+  if (pads->priv->earliest_data)
+    unref_data (pads->priv->earliest_data);
+  pads->priv->earliest_data = NULL;
+  pads->priv->earliest_time = GST_CLOCK_TIME_NONE;
+
+  GST_OBJECT_UNLOCK (pads);
+  /* Wake them up so they can end the chain functions. */
+  GST_COLLECT_PADS2_EVT_BROADCAST (pads);
+
+  GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+}
+
+/**
+ * gst_collect_pads2_peek:
+ * @pads: the collectspads to peek
+ * @data: the data to use
+ *
+ * Peek at the buffer currently queued in @data. This function
+ * should be called with the @pads STREAM_LOCK held, such as in the callback
+ * handler.
+ *
+ * MT safe.
+ *
+ * Returns: The buffer in @data or NULL if no buffer is queued.
+ *  should unref the buffer after usage.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_collect_pads2_peek (GstCollectPads2 * pads, GstCollectData2 * data)
+{
+  GstBuffer *result;
+
+  g_return_val_if_fail (pads != NULL, NULL);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL);
+  g_return_val_if_fail (data != NULL, NULL);
+
+  if ((result = data->buffer))
+    gst_buffer_ref (result);
+
+  GST_DEBUG_OBJECT (pads, "Peeking at pad %s:%s: buffer=%p",
+      GST_DEBUG_PAD_NAME (data->pad), result);
+
+  return result;
+}
+
+/**
+ * gst_collect_pads2_pop:
+ * @pads: the collectspads to pop
+ * @data: the data to use
+ *
+ * Pop the buffer currently queued in @data. This function
+ * should be called with the @pads STREAM_LOCK held, such as in the callback
+ * handler.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): The buffer in @data or NULL if no buffer was
+ *   queued. You should unref the buffer after usage.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_collect_pads2_pop (GstCollectPads2 * pads, GstCollectData2 * data)
+{
+  GstBuffer *result;
+
+  g_return_val_if_fail (pads != NULL, NULL);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL);
+  g_return_val_if_fail (data != NULL, NULL);
+
+  if ((result = data->buffer)) {
+    data->buffer = NULL;
+    data->pos = 0;
+    /* one less pad with queued data now */
+    if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING))
+      pads->priv->queuedpads--;
+  }
+
+  GST_COLLECT_PADS2_EVT_BROADCAST (pads);
+
+  GST_DEBUG_OBJECT (pads, "Pop buffer on pad %s:%s: buffer=%p",
+      GST_DEBUG_PAD_NAME (data->pad), result);
+
+  return result;
+}
+
+/* pop and unref the currently queued buffer, should be called with STREAM_LOCK
+ * held */
+static void
+gst_collect_pads2_clear (GstCollectPads2 * pads, GstCollectData2 * data)
+{
+  GstBuffer *buf;
+
+  if ((buf = gst_collect_pads2_pop (pads, data)))
+    gst_buffer_unref (buf);
+}
+
+/**
+ * gst_collect_pads2_available:
+ * @pads: the collectspads to query
+ *
+ * Query how much bytes can be read from each queued buffer. This means
+ * that the result of this call is the maximum number of bytes that can
+ * be read from each of the pads.
+ *
+ * This function should be called with @pads STREAM_LOCK held, such as
+ * in the callback.
+ *
+ * MT safe.
+ *
+ * Returns: The maximum number of bytes queued on all pads. This function
+ * returns 0 if a pad has no queued buffer.
+ *
+ * Since: 0.10.36
+ */
+/* we might pre-calculate this in some struct field,
+ * but would then have to maintain this in _chain and particularly _pop, etc,
+ * even if element is never interested in this information */
+guint
+gst_collect_pads2_available (GstCollectPads2 * pads)
+{
+  GSList *collected;
+  guint result = G_MAXUINT;
+
+  g_return_val_if_fail (pads != NULL, 0);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0);
+
+  collected = pads->data;
+  for (; collected; collected = g_slist_next (collected)) {
+    GstCollectData2 *pdata;
+    GstBuffer *buffer;
+    gint size;
+
+    pdata = (GstCollectData2 *) collected->data;
+
+    /* ignore pad with EOS */
+    if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (pdata,
+                GST_COLLECT_PADS2_STATE_EOS))) {
+      GST_DEBUG_OBJECT (pads, "pad %p is EOS", pdata);
+      continue;
+    }
+
+    /* an empty buffer without EOS is weird when we get here.. */
+    if (G_UNLIKELY ((buffer = pdata->buffer) == NULL)) {
+      GST_WARNING_OBJECT (pads, "pad %p has no buffer", pdata);
+      goto not_filled;
+    }
+
+    /* this is the size left of the buffer */
+    size = gst_buffer_get_size (buffer) - pdata->pos;
+    GST_DEBUG_OBJECT (pads, "pad %p has %d bytes left", pdata, size);
+
+    /* need to return the min of all available data */
+    if (size < result)
+      result = size;
+  }
+  /* nothing changed, all must be EOS then, return 0 */
+  if (G_UNLIKELY (result == G_MAXUINT))
+    result = 0;
+
+  return result;
+
+not_filled:
+  {
+    return 0;
+  }
+}
+
+/**
+ * gst_collect_pads2_flush:
+ * @pads: the collectspads to query
+ * @data: the data to use
+ * @size: the number of bytes to flush
+ *
+ * Flush @size bytes from the pad @data.
+ *
+ * This function should be called with @pads STREAM_LOCK held, such as
+ * in the callback.
+ *
+ * MT safe.
+ *
+ * Returns: The number of bytes flushed This can be less than @size and
+ * is 0 if the pad was end-of-stream.
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data,
+    guint size)
+{
+  guint flushsize;
+  gsize bsize;
+  GstBuffer *buffer;
+
+  g_return_val_if_fail (pads != NULL, 0);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), 0);
+  g_return_val_if_fail (data != NULL, 0);
+
+  /* no buffer, must be EOS */
+  if ((buffer = data->buffer) == NULL)
+    return 0;
+
+  bsize = gst_buffer_get_size (buffer);
+
+  /* this is what we can flush at max */
+  flushsize = MIN (size, bsize - data->pos);
+
+  data->pos += size;
+
+  if (data->pos >= bsize)
+    /* _clear will also reset data->pos to 0 */
+    gst_collect_pads2_clear (pads, data);
+
+  return flushsize;
+}
+
+/**
+ * gst_collect_pads2_read_buffer:
+ * @pads: the collectspads to query
+ * @data: the data to use
+ * @size: the number of bytes to read
+ *
+ * Get a subbuffer of @size bytes from the given pad @data.
+ *
+ * This function should be called with @pads STREAM_LOCK held, such as in the
+ * callback.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ *
+ * Returns: (transfer full): A sub buffer. The size of the buffer can be less that requested.
+ * A return of NULL signals that the pad is end-of-stream.
+ * Unref the buffer after use.
+ */
+GstBuffer *
+gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data,
+    guint size)
+{
+  guint readsize;
+  GstBuffer *buffer;
+
+  g_return_val_if_fail (pads != NULL, NULL);
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), NULL);
+  g_return_val_if_fail (data != NULL, NULL);
+
+  /* no buffer, must be EOS */
+  if ((buffer = data->buffer) == NULL)
+    return NULL;
+
+  readsize = MIN (size, gst_buffer_get_size (buffer) - data->pos);
+
+  return gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, data->pos,
+      readsize);
+}
+
+/**
+ * gst_collect_pads2_take_buffer:
+ * @pads: the collectspads to query
+ * @data: the data to use
+ * @size: the number of bytes to read
+ *
+ * Get a subbuffer of @size bytes from the given pad @data. Flushes the amount
+ * of read bytes.
+ *
+ * This function should be called with @pads STREAM_LOCK held, such as in the
+ * callback.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ *
+ * Returns: A sub buffer. The size of the buffer can be less that requested.
+ * A return of NULL signals that the pad is end-of-stream.
+ * Unref the buffer after use.
+ */
+GstBuffer *
+gst_collect_pads2_take_buffer (GstCollectPads2 * pads, GstCollectData2 * data,
+    guint size)
+{
+  GstBuffer *buffer = gst_collect_pads2_read_buffer (pads, data, size);
+
+  if (buffer) {
+    gst_collect_pads2_flush (pads, data, gst_buffer_get_size (buffer));
+  }
+  return buffer;
+}
+
+/**
+ * gst_collect_pads2_set_waiting:
+ * @pads: the collectspads
+ * @data: the data to use
+ * @waiting: boolean indicating whether this pad should operate
+ *           in waiting or non-waiting mode
+ *
+ * Sets a pad to waiting or non-waiting mode, if at least this pad
+ * has not been created with locked waiting state,
+ * in which case nothing happens.
+ *
+ * This function should be called with @pads STREAM_LOCK held, such as
+ * in the callback.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_collect_pads2_set_waiting (GstCollectPads2 * pads, GstCollectData2 * data,
+    gboolean waiting)
+{
+  g_return_if_fail (pads != NULL);
+  g_return_if_fail (GST_IS_COLLECT_PADS2 (pads));
+  g_return_if_fail (data != NULL);
+
+  GST_DEBUG_OBJECT (pads, "Setting pad %s to waiting %d, locked %d",
+      GST_PAD_NAME (data->pad), waiting,
+      GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_LOCKED));
+
+  /* Do something only on a change and if not locked */
+  if (!GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_LOCKED) &&
+      (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING) !=
+          ! !waiting)) {
+    /* Set waiting state for this pad */
+    if (waiting)
+      GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_WAITING);
+    else
+      GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_WAITING);
+    /* Update number of queued pads if needed */
+    if (!data->buffer &&
+        !GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_EOS)) {
+      if (waiting)
+        pads->priv->queuedpads--;
+      else
+        pads->priv->queuedpads++;
+    }
+
+    /* signal waiters because something changed */
+    GST_COLLECT_PADS2_EVT_BROADCAST (pads);
+  }
+}
+
+/* see if pads were added or removed and update our stats. Any pad
+ * added after releasing the LOCK will get collected in the next
+ * round.
+ *
+ * We can do a quick check by checking the cookies, that get changed
+ * whenever the pad list is updated.
+ *
+ * Must be called with STREAM_LOCK.
+ */
+static void
+gst_collect_pads2_check_pads (GstCollectPads2 * pads)
+{
+  /* the master list and cookie are protected with LOCK */
+  GST_OBJECT_LOCK (pads);
+  if (G_UNLIKELY (pads->priv->pad_cookie != pads->priv->cookie)) {
+    GSList *collected;
+
+    /* clear list and stats */
+    g_slist_foreach (pads->data, (GFunc) unref_data, NULL);
+    g_slist_free (pads->data);
+    pads->data = NULL;
+    pads->priv->numpads = 0;
+    pads->priv->queuedpads = 0;
+    pads->priv->eospads = 0;
+    if (pads->priv->earliest_data)
+      unref_data (pads->priv->earliest_data);
+    pads->priv->earliest_data = NULL;
+    pads->priv->earliest_time = GST_CLOCK_TIME_NONE;
+
+    /* loop over the master pad list */
+    collected = pads->priv->pad_list;
+    for (; collected; collected = g_slist_next (collected)) {
+      GstCollectData2 *data;
+
+      /* update the stats */
+      pads->priv->numpads++;
+      data = collected->data;
+      if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_EOS))
+        pads->priv->eospads++;
+      else if (data->buffer || !GST_COLLECT_PADS2_STATE_IS_SET (data,
+              GST_COLLECT_PADS2_STATE_WAITING))
+        pads->priv->queuedpads++;
+
+      /* add to the list of pads to collect */
+      ref_data (data);
+      /* preserve order of adding/requesting pads */
+      pads->data = g_slist_append (pads->data, data);
+    }
+    /* and update the cookie */
+    pads->priv->cookie = pads->priv->pad_cookie;
+  }
+  GST_OBJECT_UNLOCK (pads);
+}
+
+/* checks if all the pads are collected and call the collectfunction
+ *
+ * Should be called with STREAM_LOCK.
+ *
+ * Returns: The #GstFlowReturn of collection.
+ */
+static GstFlowReturn
+gst_collect_pads2_check_collected (GstCollectPads2 * pads)
+{
+  GstFlowReturn flow_ret = GST_FLOW_OK;
+  GstCollectPads2Function func;
+  gpointer user_data;
+
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR);
+
+  GST_OBJECT_LOCK (pads);
+  func = pads->priv->func;
+  user_data = pads->priv->user_data;
+  GST_OBJECT_UNLOCK (pads);
+
+  g_return_val_if_fail (pads->priv->func != NULL, GST_FLOW_NOT_SUPPORTED);
+
+  /* check for new pads, update stats etc.. */
+  gst_collect_pads2_check_pads (pads);
+
+  if (G_UNLIKELY (pads->priv->eospads == pads->priv->numpads)) {
+    /* If all our pads are EOS just collect once to let the element
+     * do its final EOS handling. */
+    GST_DEBUG_OBJECT (pads, "All active pads (%d) are EOS, calling %s",
+        pads->priv->numpads, GST_DEBUG_FUNCPTR_NAME (func));
+
+    flow_ret = func (pads, user_data);
+  } else {
+    gboolean collected = FALSE;
+
+    /* We call the collected function as long as our condition matches. */
+    while (((pads->priv->queuedpads + pads->priv->eospads) >=
+            pads->priv->numpads)) {
+      GST_DEBUG_OBJECT (pads,
+          "All active pads (%d + %d >= %d) have data, " "calling %s",
+          pads->priv->queuedpads, pads->priv->eospads, pads->priv->numpads,
+          GST_DEBUG_FUNCPTR_NAME (func));
+
+      flow_ret = func (pads, user_data);
+      collected = TRUE;
+
+      /* break on error */
+      if (flow_ret != GST_FLOW_OK)
+        break;
+      /* Don't keep looping after telling the element EOS or flushing */
+      if (pads->priv->queuedpads == 0)
+        break;
+    }
+    if (!collected)
+      GST_DEBUG_OBJECT (pads, "Not all active pads (%d) have data, continuing",
+          pads->priv->numpads);
+  }
+  return flow_ret;
+}
+
+
+/* General overview:
+ * - only pad with a buffer can determine earliest_data (and earliest_time)
+ * - only segment info determines (non-)waiting state
+ * - ? perhaps use _stream_time for comparison
+ *   (which muxers might have use as well ?)
+ */
+
+/*
+ * Function to recalculate the waiting state of all pads.
+ *
+ * Must be called with STREAM_LOCK.
+ *
+ * Returns TRUE if a pad was set to waiting
+ * (from non-waiting state).
+ */
+static gboolean
+gst_collect_pads2_recalculate_waiting (GstCollectPads2 * pads)
+{
+  GSList *collected;
+  gboolean result = FALSE;
+
+  /* If earliest time is not known, there is nothing to do. */
+  if (pads->priv->earliest_data == NULL)
+    return FALSE;
+
+  for (collected = pads->data; collected; collected = g_slist_next (collected)) {
+    GstCollectData2 *data = (GstCollectData2 *) collected->data;
+    int cmp_res;
+
+    /* check if pad has a segment */
+    if (data->segment.format == GST_FORMAT_UNDEFINED)
+      continue;
+
+    /* check segment format */
+    if (data->segment.format != GST_FORMAT_TIME) {
+      GST_ERROR_OBJECT (pads, "GstCollectPads2 can handle only time segments.");
+      continue;
+    }
+
+    /* check if the waiting state should be changed */
+    cmp_res = pads->priv->compare_func (pads, data, data->segment.start,
+        pads->priv->earliest_data, pads->priv->earliest_time,
+        pads->priv->compare_user_data);
+    if (cmp_res > 0)
+      /* stop waiting */
+      gst_collect_pads2_set_waiting (pads, data, FALSE);
+    else {
+      if (!GST_COLLECT_PADS2_STATE_IS_SET (data,
+              GST_COLLECT_PADS2_STATE_WAITING)) {
+        /* start waiting */
+        gst_collect_pads2_set_waiting (pads, data, TRUE);
+        result = TRUE;
+      }
+    }
+  }
+
+  return result;
+}
+
+/**
+ * gst_collect_pads2_find_best_pad:
+ * @pads: the collectpads to use
+ * @data: returns the collectdata for earliest data
+ * @time: returns the earliest available buffertime
+ *
+ * Find the oldest/best pad, i.e. pad holding the oldest buffer and
+ * and return the corresponding #GstCollectData2 and buffertime.
+ *
+ * This function should be called with STREAM_LOCK held,
+ * such as in the callback.
+ *
+ * Since: 0.10.36
+ */
+static void
+gst_collect_pads2_find_best_pad (GstCollectPads2 * pads,
+    GstCollectData2 ** data, GstClockTime * time)
+{
+  GSList *collected;
+  GstCollectData2 *best = NULL;
+  GstClockTime best_time = GST_CLOCK_TIME_NONE;
+
+  g_return_if_fail (data != NULL);
+  g_return_if_fail (time != NULL);
+
+  for (collected = pads->data; collected; collected = g_slist_next (collected)) {
+    GstBuffer *buffer;
+    GstCollectData2 *data = (GstCollectData2 *) collected->data;
+    GstClockTime timestamp;
+
+    buffer = gst_collect_pads2_peek (pads, data);
+    /* if we have a buffer check if it is better then the current best one */
+    if (buffer != NULL) {
+      timestamp = GST_BUFFER_TIMESTAMP (buffer);
+      gst_buffer_unref (buffer);
+      if (best == NULL || pads->priv->compare_func (pads, data, timestamp,
+              best, best_time, pads->priv->compare_user_data) < 0) {
+        best = data;
+        best_time = timestamp;
+      }
+    }
+  }
+
+  /* set earliest time */
+  *data = best;
+  *time = best_time;
+
+  GST_DEBUG_OBJECT (pads, "best pad %s, best time %" GST_TIME_FORMAT,
+      best ? GST_PAD_NAME (((GstCollectData2 *) best)->pad) : "(nil)",
+      GST_TIME_ARGS (best_time));
+}
+
+/*
+ * Function to recalculate earliest_data and earliest_timestamp. This also calls
+ * gst_collect_pads2_recalculate_waiting
+ *
+ * Must be called with STREAM_LOCK.
+ */
+static gboolean
+gst_collect_pads2_recalculate_full (GstCollectPads2 * pads)
+{
+  if (pads->priv->earliest_data)
+    unref_data (pads->priv->earliest_data);
+  gst_collect_pads2_find_best_pad (pads, &pads->priv->earliest_data,
+      &pads->priv->earliest_time);
+  if (pads->priv->earliest_data)
+    ref_data (pads->priv->earliest_data);
+  return gst_collect_pads2_recalculate_waiting (pads);
+}
+
+/*
+ * Default collect callback triggered when #GstCollectPads2 gathered all data.
+ *
+ * Called with STREAM_LOCK.
+ */
+static GstFlowReturn
+gst_collect_pads2_default_collected (GstCollectPads2 * pads, gpointer user_data)
+{
+  GstCollectData2 *best = NULL;
+  GstBuffer *buffer;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstCollectPads2BufferFunction func;
+  gpointer buffer_user_data;
+
+  g_return_val_if_fail (GST_IS_COLLECT_PADS2 (pads), GST_FLOW_ERROR);
+
+  GST_OBJECT_LOCK (pads);
+  func = pads->priv->buffer_func;
+  buffer_user_data = pads->priv->buffer_user_data;
+  GST_OBJECT_UNLOCK (pads);
+
+  g_return_val_if_fail (func != NULL, GST_FLOW_NOT_SUPPORTED);
+
+  /* Find the oldest pad at all cost */
+  if (gst_collect_pads2_recalculate_full (pads)) {
+    /* waiting was switched on,
+     * so give another thread a chance to deliver a possibly
+     * older buffer; don't charge on yet with the current oldest */
+    ret = GST_FLOW_OK;
+    goto done;
+  }
+
+  best = pads->priv->earliest_data;
+
+  /* No data collected means EOS. */
+  if (G_UNLIKELY (best == NULL)) {
+    ret = func (pads, best, NULL, buffer_user_data);
+    if (ret == GST_FLOW_OK)
+      ret = GST_FLOW_EOS;
+    goto done;
+  }
+
+  /* make sure that the pad we take a buffer from is waiting;
+   * otherwise popping a buffer will seem not to have happened
+   * and collectpads can get into a busy loop */
+  gst_collect_pads2_set_waiting (pads, best, TRUE);
+
+  /* Send buffer */
+  buffer = gst_collect_pads2_pop (pads, best);
+  ret = func (pads, best, buffer, buffer_user_data);
+
+  /* maybe non-waiting was forced to waiting above due to
+   * newsegment events coming too sparsely,
+   * so re-check to restore state to avoid hanging/waiting */
+  gst_collect_pads2_recalculate_full (pads);
+
+done:
+  return ret;
+}
+
+/*
+ * Default timestamp compare function.
+ */
+static gint
+gst_collect_pads2_default_compare_func (GstCollectPads2 * pads,
+    GstCollectData2 * data1, GstClockTime timestamp1,
+    GstCollectData2 * data2, GstClockTime timestamp2, gpointer user_data)
+{
+
+  GST_LOG_OBJECT (pads, "comparing %" GST_TIME_FORMAT
+      " and %" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp1),
+      GST_TIME_ARGS (timestamp2));
+  /* non-valid timestamps go first as they are probably headers or so */
+  if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp1)))
+    return GST_CLOCK_TIME_IS_VALID (timestamp2) ? -1 : 0;
+
+  if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp2)))
+    return 1;
+
+  /* compare timestamp */
+  if (timestamp1 < timestamp2)
+    return -1;
+
+  if (timestamp1 > timestamp2)
+    return 1;
+
+  return 0;
+}
+
+static gboolean
+gst_collect_pads2_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  gboolean res = FALSE, need_unlock = FALSE;
+  GstCollectData2 *data;
+  GstCollectPads2 *pads;
+  GstCollectPads2EventFunction event_func;
+  GstCollectPads2BufferFunction buffer_func;
+  gpointer event_user_data;
+
+  /* some magic to get the managing collect_pads2 */
+  GST_OBJECT_LOCK (pad);
+  data = (GstCollectData2 *) gst_pad_get_element_private (pad);
+  if (G_UNLIKELY (data == NULL))
+    goto pad_removed;
+  ref_data (data);
+  GST_OBJECT_UNLOCK (pad);
+
+  res = FALSE;
+
+  pads = data->collect;
+
+  GST_DEBUG_OBJECT (data->pad, "Got %s event on sink pad",
+      GST_EVENT_TYPE_NAME (event));
+
+  GST_OBJECT_LOCK (pads);
+  event_func = pads->priv->event_func;
+  event_user_data = pads->priv->event_user_data;
+  buffer_func = pads->priv->buffer_func;
+  GST_OBJECT_UNLOCK (pads);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_FLUSH_START:
+    {
+      /* forward event to unblock check_collected */
+      if (event_func) {
+        res = event_func (pads, data, event, event_user_data);
+      } else {
+        GST_DEBUG_OBJECT (pad, "forwarding flush start");
+        res = gst_pad_event_default (pad, parent, event);
+      }
+
+      /* now unblock the chain function.
+       * no cond per pad, so they all unblock, 
+       * non-flushing block again */
+      GST_COLLECT_PADS2_STREAM_LOCK (pads);
+      GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_FLUSHING);
+      gst_collect_pads2_clear (pads, data);
+
+      /* cater for possible default muxing functionality */
+      if (buffer_func) {
+        /* restore to initial state */
+        gst_collect_pads2_set_waiting (pads, data, TRUE);
+        /* if the current pad is affected, reset state, recalculate later */
+        if (pads->priv->earliest_data == data) {
+          unref_data (data);
+          pads->priv->earliest_data = NULL;
+          pads->priv->earliest_time = GST_CLOCK_TIME_NONE;
+        }
+      }
+
+      GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+
+      /* event already cleaned up by forwarding */
+      res = TRUE;
+      goto done;
+    }
+    case GST_EVENT_FLUSH_STOP:
+    {
+      /* flush the 1 buffer queue */
+      GST_COLLECT_PADS2_STREAM_LOCK (pads);
+      GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_FLUSHING);
+      gst_collect_pads2_clear (pads, data);
+      /* we need new segment info after the flush */
+      gst_segment_init (&data->segment, GST_FORMAT_UNDEFINED);
+      GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT);
+      /* if the pad was EOS, remove the EOS flag and
+       * decrement the number of eospads */
+      if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data,
+                  GST_COLLECT_PADS2_STATE_EOS))) {
+        if (!GST_COLLECT_PADS2_STATE_IS_SET (data,
+                GST_COLLECT_PADS2_STATE_WAITING))
+          pads->priv->queuedpads++;
+        pads->priv->eospads--;
+        GST_COLLECT_PADS2_STATE_UNSET (data, GST_COLLECT_PADS2_STATE_EOS);
+      }
+      GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+
+      /* forward event */
+      goto forward_or_default;
+    }
+    case GST_EVENT_EOS:
+    {
+      GST_COLLECT_PADS2_STREAM_LOCK (pads);
+      /* if the pad was not EOS, make it EOS and so we
+       * have one more eospad */
+      if (G_LIKELY (!GST_COLLECT_PADS2_STATE_IS_SET (data,
+                  GST_COLLECT_PADS2_STATE_EOS))) {
+        GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_EOS);
+        if (!GST_COLLECT_PADS2_STATE_IS_SET (data,
+                GST_COLLECT_PADS2_STATE_WAITING))
+          pads->priv->queuedpads--;
+        pads->priv->eospads++;
+      }
+      /* check if we need collecting anything, we ignore the result. */
+      gst_collect_pads2_check_collected (pads);
+      GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+
+      goto forward_or_eat;
+    }
+    case GST_EVENT_SEGMENT:
+    {
+      GstSegment seg;
+      gint cmp_res;
+
+      GST_COLLECT_PADS2_STREAM_LOCK (pads);
+
+      gst_event_copy_segment (event, &seg);
+
+      GST_DEBUG_OBJECT (data->pad, "got segment %" GST_SEGMENT_FORMAT, &seg);
+
+      data->segment = seg;
+      GST_COLLECT_PADS2_STATE_SET (data, GST_COLLECT_PADS2_STATE_NEW_SEGMENT);
+
+      /* default muxing functionality */
+      if (!buffer_func)
+        goto newsegment_done;
+
+      /* default collection can not handle other segment formats than time */
+      if (seg.format != GST_FORMAT_TIME) {
+        GST_ERROR_OBJECT (pads, "GstCollectPads2 default collecting "
+            "can only handle time segments.");
+        goto newsegment_done;
+      }
+
+      /* If oldest time is not known, or current pad got newsegment;
+       * recalculate the state */
+      if (!pads->priv->earliest_data || pads->priv->earliest_data == data) {
+        gst_collect_pads2_recalculate_full (pads);
+        goto newsegment_done;
+      }
+
+      /* Check if the waiting state of the pad should change. */
+      cmp_res =
+          pads->priv->compare_func (pads, data, seg.start,
+          pads->priv->earliest_data, pads->priv->earliest_time,
+          pads->priv->compare_user_data);
+
+      if (cmp_res > 0)
+        /* Stop waiting */
+        gst_collect_pads2_set_waiting (pads, data, FALSE);
+
+    newsegment_done:
+      GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+      /* we must not forward this event since multiple segments will be
+       * accumulated and this is certainly not what we want. */
+      goto forward_or_eat;
+    }
+    case GST_EVENT_CAPS:
+    case GST_EVENT_STREAM_START:
+    case GST_EVENT_STREAM_CONFIG:
+      goto forward_or_eat;
+    default:
+      /* forward other events */
+      goto forward_or_default;
+  }
+
+forward_or_default:
+  if (GST_EVENT_IS_SERIALIZED (event)) {
+    GST_COLLECT_PADS2_STREAM_LOCK (pads);
+    need_unlock = TRUE;
+  }
+  if (event_func) {
+    res = event_func (pads, data, event, event_user_data);
+  } else {
+    GST_DEBUG_OBJECT (pad, "forwarding %s", GST_EVENT_TYPE_NAME (event));
+    res = gst_pad_event_default (pad, parent, event);
+  }
+  if (need_unlock)
+    GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+  goto done;
+
+forward_or_eat:
+  if (GST_EVENT_IS_SERIALIZED (event)) {
+    GST_COLLECT_PADS2_STREAM_LOCK (pads);
+    need_unlock = TRUE;
+  }
+  if (event_func) {
+    res = event_func (pads, data, event, event_user_data);
+  } else {
+    gst_event_unref (event);
+    res = TRUE;
+  }
+  if (need_unlock)
+    GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+  goto done;
+
+done:
+  unref_data (data);
+  return res;
+
+  /* ERRORS */
+pad_removed:
+  {
+    GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    return FALSE;
+  }
+}
+
+/* For each buffer we receive we check if our collected condition is reached
+ * and if so we call the collected function. When this is done we check if
+ * data has been unqueued. If data is still queued we wait holding the stream
+ * lock to make sure no EOS event can happen while we are ready to be
+ * collected 
+ */
+static GstFlowReturn
+gst_collect_pads2_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstCollectData2 *data;
+  GstCollectPads2 *pads;
+  GstFlowReturn ret;
+  GstBuffer **buffer_p;
+  guint32 cookie;
+
+  GST_DEBUG ("Got buffer for pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+  /* some magic to get the managing collect_pads2 */
+  GST_OBJECT_LOCK (pad);
+  data = (GstCollectData2 *) gst_pad_get_element_private (pad);
+  if (G_UNLIKELY (data == NULL))
+    goto no_data;
+  ref_data (data);
+  GST_OBJECT_UNLOCK (pad);
+
+  pads = data->collect;
+
+  GST_COLLECT_PADS2_STREAM_LOCK (pads);
+  /* if not started, bail out */
+  if (G_UNLIKELY (!pads->priv->started))
+    goto not_started;
+  /* check if this pad is flushing */
+  if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data,
+              GST_COLLECT_PADS2_STATE_FLUSHING)))
+    goto flushing;
+  /* pad was EOS, we can refuse this data */
+  if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data,
+              GST_COLLECT_PADS2_STATE_EOS)))
+    goto eos;
+
+  /* see if we need to clip */
+  if (pads->priv->clip_func) {
+    GstBuffer *outbuf = NULL;
+    ret =
+        pads->priv->clip_func (pads, data, buffer, &outbuf,
+        pads->priv->clip_user_data);
+    buffer = outbuf;
+
+    if (G_UNLIKELY (outbuf == NULL))
+      goto clipped;
+
+    if (G_UNLIKELY (ret == GST_FLOW_EOS))
+      goto eos;
+    else if (G_UNLIKELY (ret != GST_FLOW_OK))
+      goto error;
+  }
+
+  GST_DEBUG_OBJECT (pads, "Queuing buffer %p for pad %s:%s", buffer,
+      GST_DEBUG_PAD_NAME (pad));
+
+  /* One more pad has data queued */
+  if (GST_COLLECT_PADS2_STATE_IS_SET (data, GST_COLLECT_PADS2_STATE_WAITING))
+    pads->priv->queuedpads++;
+  buffer_p = &data->buffer;
+  gst_buffer_replace (buffer_p, buffer);
+
+  /* update segment last position if in TIME */
+  if (G_LIKELY (data->segment.format == GST_FORMAT_TIME)) {
+    GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
+
+    if (GST_CLOCK_TIME_IS_VALID (timestamp))
+      data->segment.position = timestamp;
+  }
+
+  /* While we have data queued on this pad try to collect stuff */
+  do {
+    /* Check if our collected condition is matched and call the collected
+     * function if it is */
+    ret = gst_collect_pads2_check_collected (pads);
+    /* when an error occurs, we want to report this back to the caller ASAP
+     * without having to block if the buffer was not popped */
+    if (G_UNLIKELY (ret != GST_FLOW_OK))
+      goto error;
+
+    /* data was consumed, we can exit and accept new data */
+    if (data->buffer == NULL)
+      break;
+
+    /* Having the _INIT here means we don't care about any broadcast up to here
+     * (most of which occur with STREAM_LOCK held, so could not have happened
+     * anyway).  We do care about e.g. a remove initiated broadcast as of this
+     * point.  Putting it here also makes this thread ignores any evt it raised
+     * itself (as is a usual WAIT semantic).
+     */
+    GST_COLLECT_PADS2_EVT_INIT (cookie);
+
+    /* pad could be removed and re-added */
+    unref_data (data);
+    GST_OBJECT_LOCK (pad);
+    if (G_UNLIKELY ((data = gst_pad_get_element_private (pad)) == NULL))
+      goto pad_removed;
+    ref_data (data);
+    GST_OBJECT_UNLOCK (pad);
+
+    GST_DEBUG_OBJECT (pads, "Pad %s:%s has a buffer queued, waiting",
+        GST_DEBUG_PAD_NAME (pad));
+
+    /* wait to be collected, this must happen from another thread triggered
+     * by the _chain function of another pad. We release the lock so we
+     * can get stopped or flushed as well. We can however not get EOS
+     * because we still hold the STREAM_LOCK.
+     */
+    GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+    GST_COLLECT_PADS2_EVT_WAIT (pads, cookie);
+    GST_COLLECT_PADS2_STREAM_LOCK (pads);
+
+    GST_DEBUG_OBJECT (pads, "Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
+
+    /* after a signal, we could be stopped */
+    if (G_UNLIKELY (!pads->priv->started))
+      goto not_started;
+    /* check if this pad is flushing */
+    if (G_UNLIKELY (GST_COLLECT_PADS2_STATE_IS_SET (data,
+                GST_COLLECT_PADS2_STATE_FLUSHING)))
+      goto flushing;
+  }
+  while (data->buffer != NULL);
+
+unlock_done:
+  GST_COLLECT_PADS2_STREAM_UNLOCK (pads);
+  unref_data (data);
+  if (buffer)
+    gst_buffer_unref (buffer);
+  return ret;
+
+pad_removed:
+  {
+    GST_WARNING ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    ret = GST_FLOW_NOT_LINKED;
+    goto unlock_done;
+  }
+  /* ERRORS */
+no_data:
+  {
+    GST_DEBUG ("%s got removed from collectpads", GST_OBJECT_NAME (pad));
+    GST_OBJECT_UNLOCK (pad);
+    gst_buffer_unref (buffer);
+    return GST_FLOW_NOT_LINKED;
+  }
+not_started:
+  {
+    GST_DEBUG ("not started");
+    gst_collect_pads2_clear (pads, data);
+    ret = GST_FLOW_FLUSHING;
+    goto unlock_done;
+  }
+flushing:
+  {
+    GST_DEBUG ("pad %s:%s is flushing", GST_DEBUG_PAD_NAME (pad));
+    gst_collect_pads2_clear (pads, data);
+    ret = GST_FLOW_FLUSHING;
+    goto unlock_done;
+  }
+eos:
+  {
+    /* we should not post an error for this, just inform upstream that
+     * we don't expect anything anymore */
+    GST_DEBUG ("pad %s:%s is eos", GST_DEBUG_PAD_NAME (pad));
+    ret = GST_FLOW_EOS;
+    goto unlock_done;
+  }
+clipped:
+  {
+    GST_DEBUG ("clipped buffer on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+    ret = GST_FLOW_OK;
+    goto unlock_done;
+  }
+error:
+  {
+    /* we print the error, the element should post a reasonable error
+     * message for fatal errors */
+    GST_DEBUG ("collect failed, reason %d (%s)", ret, gst_flow_get_name (ret));
+    gst_collect_pads2_clear (pads, data);
+    goto unlock_done;
+  }
+}
diff --git a/libs/gst/base/gstcollectpads2.h b/libs/gst/base/gstcollectpads2.h
new file mode 100644
index 0000000..e8bfcf2
--- /dev/null
+++ b/libs/gst/base/gstcollectpads2.h
@@ -0,0 +1,371 @@
+/* GStreamer
+ * Copyright (C) 2005 Wim Taymans <wim@fluendo.com>
+ * Copyright (C) 2008 Mark Nauwelaerts <mnauw@users.sourceforge.net>
+ *
+ * gstcollectpads2.h:
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_COLLECT_PADS2_H__
+#define __GST_COLLECT_PADS2_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_COLLECT_PADS2            (gst_collect_pads2_get_type())
+#define GST_COLLECT_PADS2(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COLLECT_PADS2,GstCollectPads2))
+#define GST_COLLECT_PADS2_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COLLECT_PADS2,GstCollectPads2Class))
+#define GST_COLLECT_PADS2_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_COLLECT_PADS2,GstCollectPads2Class))
+#define GST_IS_COLLECT_PADS2(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COLLECT_PADS2))
+#define GST_IS_COLLECT_PADS2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COLLECT_PADS2))
+
+typedef struct _GstCollectData2 GstCollectData2;
+typedef struct _GstCollectData2Private GstCollectData2Private;
+typedef struct _GstCollectPads2 GstCollectPads2;
+typedef struct _GstCollectPads2Private GstCollectPads2Private;
+typedef struct _GstCollectPads2Class GstCollectPads2Class;
+
+/**
+ * GstCollectData2DestroyNotify:
+ * @data: the #GstCollectData2 that will be freed
+ *
+ * A function that will be called when the #GstCollectData2 will be freed.
+ * It is passed the pointer to the structure and should free any custom
+ * memory and resources allocated for it.
+ *
+ * Since: 0.10.36
+ */
+typedef void (*GstCollectData2DestroyNotify) (GstCollectData2 *data);
+
+/**
+ * GstCollectPads2StateFlags:
+ * @GST_COLLECT_PADS2_STATE_EOS:         Set if collectdata's pad is EOS.
+ * @GST_COLLECT_PADS2_STATE_FLUSHING:    Set if collectdata's pad is flushing.
+ * @GST_COLLECT_PADS2_STATE_NEW_SEGMENT: Set if collectdata's pad received a
+ *                                      new_segment event.
+ * @GST_COLLECT_PADS2_STATE_WAITING:     Set if collectdata's pad must be waited
+ *                                      for when collecting.
+ * @GST_COLLECT_PADS2_STATE_LOCKED:      Set collectdata's pad WAITING state must
+ *                                      not be changed.
+ * #GstCollectPads2StateFlags indicate private state of a collectdata('s pad).
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+  GST_COLLECT_PADS2_STATE_EOS = 1 << 0,
+  GST_COLLECT_PADS2_STATE_FLUSHING = 1 << 1,
+  GST_COLLECT_PADS2_STATE_NEW_SEGMENT = 1 << 2,
+  GST_COLLECT_PADS2_STATE_WAITING = 1 << 3,
+  GST_COLLECT_PADS2_STATE_LOCKED = 1 << 4
+} GstCollectPads2StateFlags;
+
+/**
+ * GST_COLLECT_PADS2_STATE:
+ * @data: a #GstCollectData2.
+ *
+ * A flags word containing #GstCollectPads2StateFlags flags set
+ * on this collected pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STATE(data)                 (((GstCollectData2 *) data)->state)
+/**
+ * GST_COLLECT_PADS2_STATE_IS_SET:
+ * @data: a #GstCollectData2.
+ * @flag: the #GstCollectPads2StateFlags to check.
+ *
+ * Gives the status of a specific flag on a collected pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STATE_IS_SET(data,flag)     !!(GST_COLLECT_PADS2_STATE (data) & flag)
+/**
+ * GST_COLLECT_PADS2_STATE_SET:
+ * @data: a #GstCollectData2.
+ * @flag: the #GstCollectPads2StateFlags to set.
+ *
+ * Sets a state flag on a collected pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STATE_SET(data,flag)        (GST_COLLECT_PADS2_STATE (data) |= flag)
+/**
+ * GST_COLLECT_PADS2_STATE_UNSET:
+ * @data: a #GstCollectData2.
+ * @flag: the #GstCollectPads2StateFlags to clear.
+ *
+ * Clears a state flag on a collected pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STATE_UNSET(data,flag)      (GST_COLLECT_PADS2_STATE (data) &= ~(flag))
+
+/**
+ * GstCollectData2:
+ * @collect: owner #GstCollectPads2
+ * @pad: #GstPad managed by this data
+ * @buffer: currently queued buffer.
+ * @pos: position in the buffer
+ * @segment: last segment received.
+ *
+ * Structure used by the collect_pads2.
+ *
+ * Since: 0.10.36
+ */
+struct _GstCollectData2
+{
+  /* with STREAM_LOCK of @collect */
+  GstCollectPads2       *collect;
+  GstPad                *pad;
+  GstBuffer             *buffer;
+  guint                  pos;
+  GstSegment             segment;
+
+  /*< private >*/
+  /* state: bitfield for easier extension;
+   * eos, flushing, new_segment, waiting */
+  GstCollectPads2StateFlags    state;
+
+  GstCollectData2Private *priv;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstCollectPads2Function:
+ * @pads: the #GstCollectPads2 that trigered the callback
+ * @user_data: user data passed to gst_collect_pads2_set_function()
+ *
+ * A function that will be called when all pads have received data.
+ *
+ * Returns: #GST_FLOW_OK for success
+ *
+ * Since: 0.10.36
+ */
+typedef GstFlowReturn (*GstCollectPads2Function) (GstCollectPads2 *pads, gpointer user_data);
+
+/**
+ * GstCollectPads2BufferFunction:
+ * @pads: the #GstCollectPads2 that trigered the callback
+ * @data: the #GstCollectData2 of pad that has received the buffer
+ * @buffer: the #GstBuffer
+ * @user_data: user data passed to gst_collect_pads2_set_buffer_function()
+ *
+ * A function that will be called when a (considered oldest) buffer can be muxed.
+ * If all pads have reached EOS, this function is called with NULL @buffer
+ * and NULL @data.
+ *
+ * Returns: #GST_FLOW_OK for success
+ *
+ * Since: 0.10.36
+ */
+typedef GstFlowReturn (*GstCollectPads2BufferFunction) (GstCollectPads2 *pads, GstCollectData2 *data,
+                                                        GstBuffer *buffer, gpointer user_data);
+
+/**
+ * GstCollectPads2CompareFunction:
+ * @pads: the #GstCollectPads that is comparing the timestamps
+ * @data1: the first #GstCollectData2
+ * @timestamp1: the first timestamp
+ * @data2: the second #GstCollectData2
+ * @timestamp2: the second timestamp
+ * @user_data: user data passed to gst_collect_pads2_set_compare_function()
+ *
+ * A function for comparing two timestamps of buffers or newsegments collected on one pad.
+ *
+ * Returns: Integer less than zero when first timestamp is deemed older than the second one.
+ *          Zero if the timestamps are deemed equally old.
+ *          Integer greate than zero when second timestamp is deemed older than the first one.
+ *
+ * Since: 0.10.36
+ */
+typedef gint (*GstCollectPads2CompareFunction) (GstCollectPads2 *pads,
+                                                GstCollectData2 * data1, GstClockTime timestamp1,
+                                                GstCollectData2 * data2, GstClockTime timestamp2,
+                                                gpointer user_data);
+
+/**
+ * GstCollectPads2EventFunction:
+ * @pads: the #GstCollectPads2 that trigered the callback
+ * @pad: the #GstPad that received an event
+ * @event: the #GstEvent received
+ * @user_data: user data passed to gst_collect_pads2_set_event_function()
+ *
+ * A function that will be called while processing an event. It takes
+ * ownership of the event and is responsible for forwarding
+ * events downstream (with gst_pad_event_default()) or dropping events.
+ *
+ * The STREAM_START, CAPS, STREAM_CONFIG, SEGMENT and EOS events should
+ * usually be dropped by this function.
+ *
+ * Returns: %TRUE if the pad could handle the event
+ *
+ * Since: 0.10.36
+ */
+typedef gboolean (*GstCollectPads2EventFunction)        (GstCollectPads2 *pads, GstCollectData2 * pad,
+                                                         GstEvent * event, gpointer user_data);
+
+
+/**
+ * GstCollectPads2ClipFunction:
+ * @pads: a #GstCollectPads2
+ * @data: a #GstCollectData2
+ * @inbuffer: the input #GstBuffer
+ * @outbuffer: the output #GstBuffer
+ * @user_data: user data
+ *
+ * A function that will be called when @inbuffer is received on the pad managed
+ * by @data in the collecpad object @pads.
+ *
+ * The function should use the segment of @data and the negotiated media type on
+ * the pad to perform clipping of @inbuffer.
+ *
+ * This function takes ownership of @inbuffer and should output a buffer in
+ * @outbuffer or return %NULL in @outbuffer if the buffer should be dropped.
+ *
+ * Returns: a #GstFlowReturn that corresponds to the result of clipping.
+ *
+ * Since: 0.10.36
+ */
+typedef GstFlowReturn (*GstCollectPads2ClipFunction) (GstCollectPads2 *pads, GstCollectData2 *data,
+                                                   GstBuffer *inbuffer, GstBuffer **outbuffer,
+                                                   gpointer user_data);
+
+/**
+ * GST_COLLECT_PADS2_GET_STREAM_LOCK:
+ * @pads: a #GstCollectPads2
+ *
+ * Get the stream lock of @pads. The stream lock is used to coordinate and
+ * serialize execution among the various streams being collected, and in
+ * protecting the resources used to accomplish this.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_GET_STREAM_LOCK(pads) (&((GstCollectPads2 *)pads)->stream_lock)
+/**
+ * GST_COLLECT_PADS2_STREAM_LOCK:
+ * @pads: a #GstCollectPads2
+ *
+ * Lock the stream lock of @pads.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STREAM_LOCK(pads)     g_rec_mutex_lock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))
+/**
+ * GST_COLLECT_PADS2_STREAM_UNLOCK:
+ * @pads: a #GstCollectPads2
+ *
+ * Unlock the stream lock of @pads.
+ *
+ * Since: 0.10.36
+ */
+#define GST_COLLECT_PADS2_STREAM_UNLOCK(pads)   g_rec_mutex_unlock(GST_COLLECT_PADS2_GET_STREAM_LOCK (pads))
+
+/**
+ * GstCollectPads2:
+ * @data: #GList of #GstCollectData2 managed by this #GstCollectPads2.
+ *
+ * Collectpads object.
+ *
+ * Since: 0.10.36
+ */
+struct _GstCollectPads2 {
+  GstObject      object;
+
+  /*< public >*/ /* with LOCK and/or STREAM_LOCK */
+  GSList        *data;                  /* list of CollectData items */
+
+  /*< private >*/
+  GRecMutex      stream_lock;          /* used to serialize collection among several streams */
+
+  GstCollectPads2Private *priv;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstCollectPads2Class {
+  GstObjectClass parent_class;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_collect_pads2_get_type(void);
+
+/* creating the object */
+GstCollectPads2*        gst_collect_pads2_new           (void);
+
+/* set the callbacks */
+void            gst_collect_pads2_set_function         (GstCollectPads2 *pads,
+                                                        GstCollectPads2Function func,
+                                                        gpointer user_data);
+void            gst_collect_pads2_set_buffer_function  (GstCollectPads2 *pads,
+                                                        GstCollectPads2BufferFunction func,
+                                                        gpointer user_data);
+void            gst_collect_pads2_set_event_function   (GstCollectPads2 *pads,
+                                                        GstCollectPads2EventFunction func,
+                                                        gpointer user_data);
+void            gst_collect_pads2_set_compare_function (GstCollectPads2 *pads,
+                                                        GstCollectPads2CompareFunction func,
+                                                        gpointer user_data);
+void            gst_collect_pads2_set_clip_function    (GstCollectPads2 *pads,
+                                                        GstCollectPads2ClipFunction clipfunc,
+                                                        gpointer user_data);
+
+/* pad management */
+GstCollectData2* gst_collect_pads2_add_pad      (GstCollectPads2 *pads, GstPad *pad, guint size);
+GstCollectData2* gst_collect_pads2_add_pad_full (GstCollectPads2 *pads, GstPad *pad, guint size,
+                                                 GstCollectData2DestroyNotify destroy_notify,
+                                                 gboolean lock);
+gboolean        gst_collect_pads2_remove_pad    (GstCollectPads2 *pads, GstPad *pad);
+gboolean        gst_collect_pads2_is_active     (GstCollectPads2 *pads, GstPad *pad);
+
+/* start/stop collection */
+GstFlowReturn   gst_collect_pads2_collect       (GstCollectPads2 *pads);
+GstFlowReturn   gst_collect_pads2_collect_range (GstCollectPads2 *pads, guint64 offset, guint length);
+
+void            gst_collect_pads2_start         (GstCollectPads2 *pads);
+void            gst_collect_pads2_stop          (GstCollectPads2 *pads);
+void            gst_collect_pads2_set_flushing  (GstCollectPads2 *pads, gboolean flushing);
+
+/* get collected buffers */
+GstBuffer*      gst_collect_pads2_peek          (GstCollectPads2 *pads, GstCollectData2 *data);
+GstBuffer*      gst_collect_pads2_pop           (GstCollectPads2 *pads, GstCollectData2 *data);
+
+/* get collected bytes */
+guint           gst_collect_pads2_available     (GstCollectPads2 *pads);
+guint           gst_collect_pads2_flush         (GstCollectPads2 *pads, GstCollectData2 *data,
+                                                 guint size);
+GstBuffer*      gst_collect_pads2_read_buffer   (GstCollectPads2 * pads, GstCollectData2 * data,
+                                                 guint size);
+GstBuffer*      gst_collect_pads2_take_buffer   (GstCollectPads2 * pads, GstCollectData2 * data,
+                                                 guint size);
+
+/* setting and unsetting waiting mode */
+void            gst_collect_pads2_set_waiting   (GstCollectPads2 *pads, GstCollectData2 *data,
+                                                 gboolean waiting);
+
+/* convenience helper */
+GstFlowReturn	gst_collect_pads2_clip_running_time (GstCollectPads2 * pads,
+						GstCollectData2 * cdata, GstBuffer * buf, GstBuffer ** outbuf,
+                                                gpointer user_data);
+
+
+G_END_DECLS
+
+#endif /* __GST_COLLECT_PADS22_H__ */
diff --git a/gst/gstindex.c b/libs/gst/base/gstindex.c
similarity index 95%
rename from gst/gstindex.c
rename to libs/gst/base/gstindex.c
index d168eee..a0505cc 100644
--- a/gst/gstindex.c
+++ b/libs/gst/base/gstindex.c
@@ -55,17 +55,11 @@
  *     sense to ask the app to provide a ptr and fill it.
  */
 
-#include "gst_private.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
-#include "gstinfo.h"
-#include "gstindex.h"
-#include "gstindexfactory.h"
-#include "gstmarshal.h"
-#include "gstregistry.h"
-/* for constructing an entry name */
-#include "gstelement.h"
-#include "gstpad.h"
-#include "gstinfo.h"
+#include <gst/gst.h>
 
 /* Index signals and args */
 enum
@@ -81,8 +75,10 @@
       /* FILL ME */
 };
 
+#if 0
 GST_DEBUG_CATEGORY_STATIC (index_debug);
 #define GST_CAT_DEFAULT index_debug
+#endif
 
 static void gst_index_finalize (GObject * object);
 
@@ -100,7 +96,6 @@
     gchar ** writer_string, gpointer data);
 static void gst_index_add_entry (GstIndex * index, GstIndexEntry * entry);
 
-static GstObject *parent_class = NULL;
 static guint gst_index_signals[LAST_SIGNAL] = { 0 };
 
 typedef struct
@@ -136,34 +131,25 @@
   return index_resolver_type;
 }
 
-GType
-gst_index_entry_get_type (void)
-{
-  static GType index_entry_type = 0;
+G_DEFINE_BOXED_TYPE (GstIndexEntry, gst_index_entry,
+    (GBoxedCopyFunc) gst_index_entry_copy,
+    (GBoxedFreeFunc) gst_index_entry_free);
 
-  if (!index_entry_type) {
-    index_entry_type = g_boxed_type_register_static ("GstIndexEntry",
-        (GBoxedCopyFunc) gst_index_entry_copy,
-        (GBoxedFreeFunc) gst_index_entry_free);
-  }
-  return index_entry_type;
-}
-
+#if 0
 #define _do_init \
 { \
   GST_DEBUG_CATEGORY_INIT (index_debug, "GST_INDEX", GST_DEBUG_BOLD, \
       "Generic indexing support"); \
 }
+#endif
 
-G_DEFINE_TYPE_WITH_CODE (GstIndex, gst_index, GST_TYPE_OBJECT, _do_init);
+G_DEFINE_TYPE (GstIndex, gst_index, GST_TYPE_OBJECT);
 
 static void
 gst_index_class_init (GstIndexClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
-
   /**
    * GstIndex::entry-added
    * @gstindex: the object which received the signal.
@@ -174,7 +160,7 @@
   gst_index_signals[ENTRY_ADDED] =
       g_signal_new ("entry-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstIndexClass, entry_added), NULL, NULL,
-      gst_marshal_VOID__BOXED, G_TYPE_NONE, 1, GST_TYPE_INDEX_ENTRY);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_INDEX_ENTRY);
 
   gobject_class->set_property = gst_index_set_property;
   gobject_class->get_property = gst_index_get_property;
@@ -240,7 +226,7 @@
   if (index->resolver_user_data && index->resolver_user_data_destroy)
     index->resolver_user_data_destroy (index->resolver_user_data);
 
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+  G_OBJECT_CLASS (gst_index_parent_class)->finalize (object);
 }
 
 static void
@@ -302,6 +288,8 @@
   g_slice_free (GstIndexGroup, group);
 }
 
+/* do not resurrect this, add a derived dummy index class instead */
+#if 0
 /**
  * gst_index_new:
  *
@@ -341,7 +329,6 @@
     iclass->commit (index, id);
 }
 
-
 /**
  * gst_index_get_group:
  * @index: the index to get the current group from
@@ -410,7 +397,9 @@
   GST_DEBUG ("couldn't find index group %d", groupnum);
   return FALSE;
 }
+#endif
 
+#if 0
 /**
  * gst_index_set_certainty:
  * @index: the index to set the certainty on
@@ -437,7 +426,9 @@
 {
   return index->curgroup->certainty;
 }
+#endif
 
+#if 0
 /**
  * gst_index_set_filter:
  * @index: the index to register the filter on
@@ -522,6 +513,7 @@
   index->resolver_user_data_destroy = user_data_destroy;
   index->method = GST_INDEX_RESOLVER_CUSTOM;
 }
+#endif
 
 /**
  * gst_index_entry_copy:
@@ -573,6 +565,7 @@
   g_slice_free (GstIndexEntry, entry);
 }
 
+#if 0
 /**
  * gst_index_add_format:
  * @index: the index to add the entry to
@@ -611,6 +604,7 @@
 
   return entry;
 }
+#endif
 
 /**
  * gst_index_add_id:
@@ -790,8 +784,8 @@
  * Returns: a pointer to the newly added entry in the index.
  */
 GstIndexEntry *
-gst_index_add_associationv (GstIndex * index, gint id, GstAssocFlags flags,
-    gint n, const GstIndexAssociation * list)
+gst_index_add_associationv (GstIndex * index, gint id,
+    GstIndexAssociationFlags flags, gint n, const GstIndexAssociation * list)
 {
   GstIndexEntry *entry;
 
@@ -815,6 +809,7 @@
   return entry;
 }
 
+#if 0
 /**
  * gst_index_add_association:
  * @index: the index to add the entry to
@@ -831,8 +826,8 @@
  * Returns: a pointer to the newly added entry in the index.
  */
 GstIndexEntry *
-gst_index_add_association (GstIndex * index, gint id, GstAssocFlags flags,
-    GstFormat format, gint64 value, ...)
+gst_index_add_association (GstIndex * index, gint id,
+    GstIndexAssociationFlags flags, GstFormat format, gint64 value, ...)
 {
   va_list args;
   GstIndexEntry *entry;
@@ -902,6 +897,7 @@
 
   return NULL;
 }
+#endif
 
 static gint
 gst_index_compare_func (gconstpointer a, gconstpointer b, gpointer user_data)
@@ -929,7 +925,7 @@
  */
 GstIndexEntry *
 gst_index_get_assoc_entry (GstIndex * index, gint id,
-    GstIndexLookupMethod method, GstAssocFlags flags,
+    GstIndexLookupMethod method, GstIndexAssociationFlags flags,
     GstFormat format, gint64 value)
 {
   g_return_val_if_fail (GST_IS_INDEX (index), NULL);
@@ -960,7 +956,7 @@
  */
 GstIndexEntry *
 gst_index_get_assoc_entry_full (GstIndex * index, gint id,
-    GstIndexLookupMethod method, GstAssocFlags flags,
+    GstIndexLookupMethod method, GstIndexAssociationFlags flags,
     GstFormat format, gint64 value, GCompareDataFunc func, gpointer user_data)
 {
   GstIndexClass *iclass;
diff --git a/gst/gstindex.h b/libs/gst/base/gstindex.h
similarity index 92%
rename from gst/gstindex.h
rename to libs/gst/base/gstindex.h
index 9447a38..7e22efc 100644
--- a/gst/gstindex.h
+++ b/libs/gst/base/gstindex.h
@@ -137,24 +137,24 @@
 };
 
 /**
- * GstAssocFlags:
- * @GST_ASSOCIATION_FLAG_NONE: no extra flags
- * @GST_ASSOCIATION_FLAG_KEY_UNIT: the entry marks a key unit, a key unit is one
+ * GstIndexAssociationFlags:
+ * @GST_INDEX_ASSOCIATION_FLAG_NONE: no extra flags
+ * @GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT: the entry marks a key unit, a key unit is one
  *  that marks a place where one can randomly seek to.
- * @GST_ASSOCIATION_FLAG_DELTA_UNIT: the entry marks a delta unit, a delta unit
+ * @GST_INDEX_ASSOCIATION_FLAG_DELTA_UNIT: the entry marks a delta unit, a delta unit
  *  is one that marks a place where one can relatively seek to.
- * @GST_ASSOCIATION_FLAG_LAST: extra user defined flags should start here.
+ * @GST_INDEX_ASSOCIATION_FLAG_LAST: extra user defined flags should start here.
  *
  * Flags for an association entry.
  */
 typedef enum {
-  GST_ASSOCIATION_FLAG_NONE       = 0,
-  GST_ASSOCIATION_FLAG_KEY_UNIT   = (1 << 0),
-  GST_ASSOCIATION_FLAG_DELTA_UNIT = (1 << 1),
+  GST_INDEX_ASSOCIATION_FLAG_NONE       = 0,
+  GST_INDEX_ASSOCIATION_FLAG_KEY_UNIT   = (1 << 0),
+  GST_INDEX_ASSOCIATION_FLAG_DELTA_UNIT = (1 << 1),
 
   /* new flags should start here */
-  GST_ASSOCIATION_FLAG_LAST     = (1 << 8)
-} GstAssocFlags;
+  GST_INDEX_ASSOCIATION_FLAG_LAST     = (1 << 8)
+} GstIndexAssociationFlags;
 
 /**
  * GST_INDEX_FORMAT_FORMAT:
@@ -205,7 +205,7 @@
       gint               nassocs;
       GstIndexAssociation
                         *assocs;
-      GstAssocFlags      flags;
+      GstIndexAssociationFlags      flags;
     } assoc;
     struct {
       gchar             *key;
@@ -318,7 +318,7 @@
 
 /**
  * GstIndex:
- * 
+ *
  * Opaque #GstIndex structure.
  */
 struct _GstIndex {
@@ -349,7 +349,7 @@
   GstObjectClass parent_class;
 
   /*< protected >*/
-  gboolean      (*get_writer_id)        (GstIndex *index, gint *writer_id, gchar *writer_string);
+  gboolean      (*get_writer_id)        (GstIndex *index, gint *id, gchar *writer);
 
   void          (*commit)               (GstIndex *index, gint id);
 
@@ -357,7 +357,7 @@
   void          (*add_entry)            (GstIndex *index, GstIndexEntry *entry);
 
   GstIndexEntry* (*get_assoc_entry)     (GstIndex *index, gint id,
-                                         GstIndexLookupMethod method, GstAssocFlags flags,
+                                         GstIndexLookupMethod method, GstIndexAssociationFlags flags,
                                          GstFormat format, gint64 value,
                                          GCompareDataFunc func,
                                          gpointer user_data);
@@ -368,7 +368,10 @@
   gpointer _gst_reserved[GST_PADDING];
 };
 
+static
 GType                   gst_index_get_type              (void);
+
+#if 0
 GstIndex*               gst_index_new                   (void);
 void                    gst_index_commit                (GstIndex *index, gint id);
 
@@ -380,42 +383,61 @@
                                                          GstIndexCertainty certainty);
 GstIndexCertainty       gst_index_get_certainty         (GstIndex *index);
 
+static
 void                    gst_index_set_filter            (GstIndex *index,
                                                          GstIndexFilter filter, gpointer user_data);
+static
 void                    gst_index_set_filter_full       (GstIndex *index,
                                                          GstIndexFilter filter, gpointer user_data,
                                                          GDestroyNotify user_data_destroy);
+
 void                    gst_index_set_resolver          (GstIndex *index,
                                                          GstIndexResolver resolver, gpointer user_data);
 void                    gst_index_set_resolver_full     (GstIndex *index, GstIndexResolver resolver,
                                                          gpointer user_data,
                                                          GDestroyNotify user_data_destroy);
+#endif
 
+static
 gboolean                gst_index_get_writer_id         (GstIndex *index, GstObject *writer, gint *id);
 
+#if 0
 GstIndexEntry*          gst_index_add_format            (GstIndex *index, gint id, GstFormat format);
-GstIndexEntry*          gst_index_add_associationv      (GstIndex * index, gint id, GstAssocFlags flags,
+#endif
+
+static
+GstIndexEntry*          gst_index_add_associationv      (GstIndex * index, gint id, GstIndexAssociationFlags flags,
                                                          gint n, const GstIndexAssociation * list);
-GstIndexEntry*          gst_index_add_association       (GstIndex *index, gint id, GstAssocFlags flags,
-                                                         GstFormat format, gint64 value, ...);
+#if 0
+GstIndexEntry*          gst_index_add_association       (GstIndex *index, gint id, GstIndexAssociationFlags flags,
+                                                         GstFormat format, gint64 value, ...)
 GstIndexEntry*          gst_index_add_object            (GstIndex *index, gint id, gchar *key,
                                                          GType type, gpointer object);
+#endif
+
+static
 GstIndexEntry*          gst_index_add_id                (GstIndex *index, gint id,
                                                          gchar *description);
 
+static
 GstIndexEntry*          gst_index_get_assoc_entry       (GstIndex *index, gint id,
-                                                         GstIndexLookupMethod method, GstAssocFlags flags,
+                                                         GstIndexLookupMethod method, GstIndexAssociationFlags flags,
                                                          GstFormat format, gint64 value);
+static
 GstIndexEntry*          gst_index_get_assoc_entry_full  (GstIndex *index, gint id,
-                                                         GstIndexLookupMethod method, GstAssocFlags flags,
+                                                         GstIndexLookupMethod method, GstIndexAssociationFlags flags,
                                                          GstFormat format, gint64 value,
                                                          GCompareDataFunc func,
                                                          gpointer user_data);
 
 /* working with index entries */
+static
 GType gst_index_entry_get_type (void);
+static
 GstIndexEntry *         gst_index_entry_copy            (GstIndexEntry *entry);
+static
 void                    gst_index_entry_free            (GstIndexEntry *entry);
+static
 gboolean                gst_index_entry_assoc_map       (GstIndexEntry *entry,
                                                          GstFormat format, gint64 *value);
 
diff --git a/plugins/indexers/gstmemindex.c b/libs/gst/base/gstmemindex.c
similarity index 96%
rename from plugins/indexers/gstmemindex.c
rename to libs/gst/base/gstmemindex.c
index fd276fa..aaeab12 100644
--- a/plugins/indexers/gstmemindex.c
+++ b/libs/gst/base/gstmemindex.c
@@ -19,8 +19,6 @@
 
 #include <gst/gst.h>
 
-#include "gstindexers.h"
-
 #define GST_TYPE_MEM_INDEX              \
   (gst_index_get_type ())
 #define GST_MEM_INDEX(obj)              \
@@ -95,30 +93,16 @@
   GstIndexClass parent_class;
 };
 
-/* Index signals and args */
-enum
-{
-  LAST_SIGNAL
-};
-
-enum
-{
-  ARG_0,
-  /* FILL ME */
-};
-
 static void gst_mem_index_finalize (GObject * object);
 
 static void gst_mem_index_add_entry (GstIndex * index, GstIndexEntry * entry);
 static GstIndexEntry *gst_mem_index_get_assoc_entry (GstIndex * index, gint id,
-    GstIndexLookupMethod method, GstAssocFlags flags,
+    GstIndexLookupMethod method, GstIndexAssociationFlags flags,
     GstFormat format, gint64 value, GCompareDataFunc func, gpointer user_data);
 
 #define CLASS(mem_index)  GST_MEM_INDEX_CLASS (G_OBJECT_GET_CLASS (mem_index))
 
-/*static guint gst_mem_index_signals[LAST_SIGNAL] = { 0 }; */
-
-GType gst_mem_index_get_type (void);
+static GType gst_mem_index_get_type (void);
 
 G_DEFINE_TYPE (GstMemIndex, gst_mem_index, GST_TYPE_INDEX);
 
@@ -354,7 +338,7 @@
 static GstIndexEntry *
 gst_mem_index_get_assoc_entry (GstIndex * index, gint id,
     GstIndexLookupMethod method,
-    GstAssocFlags flags,
+    GstIndexAssociationFlags flags,
     GstFormat format, gint64 value, GCompareDataFunc func, gpointer user_data)
 {
   GstMemIndex *memindex = GST_MEM_INDEX (index);
@@ -421,6 +405,7 @@
   return entry;
 }
 
+#if 0
 gboolean
 gst_mem_index_plugin_init (GstPlugin * plugin)
 {
@@ -442,3 +427,4 @@
 
   return TRUE;
 }
+#endif
diff --git a/libs/gst/base/gstpushsrc.c b/libs/gst/base/gstpushsrc.c
index 6faec86..a1bfa0a 100644
--- a/libs/gst/base/gstpushsrc.c
+++ b/libs/gst/base/gstpushsrc.c
@@ -57,7 +57,6 @@
 
 #include "gstpushsrc.h"
 #include "gsttypefindhelper.h"
-#include <gst/gstmarshal.h>
 
 GST_DEBUG_CATEGORY_STATIC (gst_push_src_debug);
 #define GST_CAT_DEFAULT gst_push_src_debug
@@ -72,6 +71,8 @@
 static gboolean gst_push_src_query (GstBaseSrc * src, GstQuery * query);
 static GstFlowReturn gst_push_src_create (GstBaseSrc * bsrc, guint64 offset,
     guint length, GstBuffer ** ret);
+static GstFlowReturn gst_push_src_alloc (GstBaseSrc * bsrc, guint64 offset,
+    guint length, GstBuffer ** ret);
 static GstFlowReturn gst_push_src_fill (GstBaseSrc * bsrc, guint64 offset,
     guint length, GstBuffer * ret);
 
@@ -81,6 +82,7 @@
   GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *) klass;
 
   gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_push_src_create);
+  gstbasesrc_class->alloc = GST_DEBUG_FUNCPTR (gst_push_src_alloc);
   gstbasesrc_class->fill = GST_DEBUG_FUNCPTR (gst_push_src_fill);
   gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_push_src_query);
 }
@@ -101,7 +103,10 @@
     {
       /* a pushsrc can by default never operate in pull mode override
        * if you want something different. */
-      gst_query_set_scheduling (query, FALSE, FALSE, TRUE, 1, -1, 1);
+      gst_query_set_scheduling (query, GST_SCHEDULING_FLAG_SEQUENTIAL, 1, -1,
+          0);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
+
       ret = TRUE;
       break;
     }
@@ -133,6 +138,24 @@
 }
 
 static GstFlowReturn
+gst_push_src_alloc (GstBaseSrc * bsrc, guint64 offset, guint length,
+    GstBuffer ** ret)
+{
+  GstFlowReturn fret;
+  GstPushSrc *src;
+  GstPushSrcClass *pclass;
+
+  src = GST_PUSH_SRC (bsrc);
+  pclass = GST_PUSH_SRC_GET_CLASS (src);
+  if (pclass->alloc)
+    fret = pclass->alloc (src, ret);
+  else
+    fret = GST_BASE_SRC_CLASS (parent_class)->alloc (bsrc, offset, length, ret);
+
+  return fret;
+}
+
+static GstFlowReturn
 gst_push_src_fill (GstBaseSrc * bsrc, guint64 offset, guint length,
     GstBuffer * ret)
 {
diff --git a/libs/gst/base/gstpushsrc.h b/libs/gst/base/gstpushsrc.h
index e48ffb1..b936d83 100644
--- a/libs/gst/base/gstpushsrc.h
+++ b/libs/gst/base/gstpushsrc.h
@@ -54,11 +54,13 @@
 struct _GstPushSrcClass {
   GstBaseSrcClass parent_class;
 
-  /* ask the subclass to create a buffer */
+  /* ask the subclass to create a buffer, the default implementation
+   * uses alloc and fill */
   GstFlowReturn (*create) (GstPushSrc *src, GstBuffer **buf);
-
+  /* allocate memory for a buffer */
+  GstFlowReturn (*alloc)  (GstPushSrc *src, GstBuffer **buf);
   /* ask the subclass to fill a buffer */
-  GstFlowReturn (*fill) (GstPushSrc *src, GstBuffer *buf);
+  GstFlowReturn (*fill)   (GstPushSrc *src, GstBuffer *buf);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index b0e4028..41f66bf 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -43,7 +43,13 @@
 /* ********************** typefinding in pull mode ************************ */
 
 static void
-helper_find_suggest (gpointer data, guint probability, const GstCaps * caps);
+helper_find_suggest (gpointer data, guint probability, GstCaps * caps);
+
+typedef struct
+{
+  GstBuffer *buffer;
+  GstMapInfo map;
+} GstMappedBuffer;
 
 typedef struct
 {
@@ -55,6 +61,7 @@
   GstCaps *caps;
   GstTypeFindFactory *factory;  /* for logging */
   GstObject *obj;               /* for logging */
+  GstObject *parent;
 } GstTypeFindHelper;
 
 /*
@@ -79,6 +86,7 @@
   GSList *insert_pos = NULL;
   gsize buf_size;
   guint64 buf_offset;
+  GstMappedBuffer *bmap;
 #if 0
   GstCaps *caps;
 #endif
@@ -103,7 +111,8 @@
     GSList *walk;
 
     for (walk = helper->buffers; walk; walk = walk->next) {
-      GstBuffer *buf = GST_BUFFER_CAST (walk->data);
+      GstMappedBuffer *bmp = (GstMappedBuffer *) walk->data;
+      GstBuffer *buf = GST_BUFFER_CAST (bmp->buffer);
       guint64 buf_offset = GST_BUFFER_OFFSET (buf);
       guint buf_size = gst_buffer_get_size (buf);
 
@@ -112,12 +121,8 @@
        * we're after the searched end offset */
       if (buf_offset <= offset) {
         if ((offset + size) < (buf_offset + buf_size)) {
-          guint8 *data;
-
-          /* FIXME, unmap after usage */
-          data = gst_buffer_map (buf, NULL, NULL, GST_MAP_READ);
-
-          return data + (offset - buf_offset);
+          /* must already have been mapped before */
+          return (guint8 *) bmp->map.data + (offset - buf_offset);
         }
       } else if (offset + size >= buf_offset + buf_size) {
         insert_pos = walk;
@@ -133,7 +138,9 @@
    * of the file is also not a problem here, we'll just get a truncated buffer
    * in that case (and we'll have to double-check the size we actually get
    * anyway, see below) */
-  ret = helper->func (helper->obj, offset, MAX (size, 4096), &buffer);
+  ret =
+      helper->func (helper->obj, helper->parent, offset, MAX (size, 4096),
+      &buffer);
 
   if (ret != GST_FLOW_OK)
     goto error;
@@ -166,19 +173,21 @@
     return NULL;
   }
 
+  bmap = g_slice_new0 (GstMappedBuffer);
+  bmap->buffer = buffer;
   if (insert_pos) {
-    helper->buffers =
-        g_slist_insert_before (helper->buffers, insert_pos, buffer);
+    helper->buffers = g_slist_insert_before (helper->buffers, insert_pos, bmap);
   } else {
     /* if insert_pos is not set, our offset is bigger than the largest offset
      * we have so far; since we keep the list sorted with highest offsets
      * first, we need to prepend the buffer to the list */
     helper->last_offset = GST_BUFFER_OFFSET (buffer) + buf_size;
-    helper->buffers = g_slist_prepend (helper->buffers, buffer);
+    helper->buffers = g_slist_prepend (helper->buffers, bmap);
   }
 
-  /* FIXME, unmap */
-  return gst_buffer_map (buffer, NULL, NULL, GST_MAP_READ);
+  gst_buffer_map (buffer, &bmap->map, GST_MAP_READ);
+
+  return bmap->map.data;
 
 error:
   {
@@ -197,7 +206,7 @@
  */
 static void
 helper_find_suggest (gpointer data, GstTypeFindProbability probability,
-    const GstCaps * caps)
+    GstCaps * caps)
 {
   GstTypeFindHelper *helper = (GstTypeFindHelper *) data;
 
@@ -206,10 +215,7 @@
       GST_OBJECT_NAME (helper->factory), probability, caps);
 
   if (probability > helper->best_probability) {
-    GstCaps *copy = gst_caps_copy (caps);
-
-    gst_caps_replace (&helper->caps, copy);
-    gst_caps_unref (copy);
+    gst_caps_replace (&helper->caps, caps);
     helper->best_probability = probability;
   }
 }
@@ -226,8 +232,9 @@
 }
 
 /**
- * gst_type_find_helper_get_range_ext:
+ * gst_type_find_helper_get_range:
  * @obj: A #GstObject that will be passed as first argument to @func
+ * @parent: the parent of @obj or NULL
  * @func: (scope call): A generic #GstTypeFindHelperGetRangeFunction that will
  *        be used to access data at random offsets when doing the typefinding
  * @size: The length in bytes
@@ -256,7 +263,7 @@
  * Since: 0.10.26
  */
 GstCaps *
-gst_type_find_helper_get_range_ext (GstObject * obj,
+gst_type_find_helper_get_range (GstObject * obj, GstObject * parent,
     GstTypeFindHelperGetRangeFunction func, guint64 size,
     const gchar * extension, GstTypeFindProbability * prob)
 {
@@ -277,6 +284,7 @@
   helper.best_probability = GST_TYPE_FIND_NONE;
   helper.caps = NULL;
   helper.obj = obj;
+  helper.parent = parent;
 
   find.data = &helper;
   find.peek = helper_find_peek;
@@ -340,8 +348,13 @@
   }
   gst_plugin_feature_list_free (type_list);
 
-  for (walk = helper.buffers; walk; walk = walk->next)
-    gst_buffer_unref (GST_BUFFER_CAST (walk->data));
+  for (walk = helper.buffers; walk; walk = walk->next) {
+    GstMappedBuffer *bmap = (GstMappedBuffer *) walk->data;
+
+    gst_buffer_unmap (bmap->buffer, &bmap->map);
+    gst_buffer_unref (bmap->buffer);
+    g_slice_free (GstMappedBuffer, bmap);
+  }
   g_slist_free (helper.buffers);
 
   if (helper.best_probability > 0)
@@ -357,37 +370,6 @@
 }
 
 /**
- * gst_type_find_helper_get_range:
- * @obj: A #GstObject that will be passed as first argument to @func
- * @func: (scope call): A generic #GstTypeFindHelperGetRangeFunction that will
- *        be used to access data at random offsets when doing the typefinding
- * @size: The length in bytes
- * @prob: (out) (allow-none): location to store the probability of the found
- *     caps, or #NULL
- *
- * Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
- * however, this function will use the specified function @func to obtain the
- * data needed by the typefind functions, rather than operating on a given
- * source pad. This is useful mostly for elements like tag demuxers which
- * strip off data at the beginning and/or end of a file and want to typefind
- * the stripped data stream before adding their own source pad (the specified
- * callback can then call the upstream peer pad with offsets adjusted for the
- * tag size, for example).
- *
- * Free-function: gst_caps_unref
- *
- * Returns: (transfer full): the #GstCaps corresponding to the data stream.
- *     Returns #NULL if no #GstCaps matches the data stream.
- */
-GstCaps *
-gst_type_find_helper_get_range (GstObject * obj,
-    GstTypeFindHelperGetRangeFunction func, guint64 size,
-    GstTypeFindProbability * prob)
-{
-  return gst_type_find_helper_get_range_ext (obj, func, size, NULL, prob);
-}
-
-/**
  * gst_type_find_helper:
  * @src: A source #GstPad
  * @size: The length in bytes
@@ -410,7 +392,8 @@
 
   func = (GstTypeFindHelperGetRangeFunction) (GST_PAD_GETRANGEFUNC (src));
 
-  return gst_type_find_helper_get_range (GST_OBJECT (src), func, size, NULL);
+  return gst_type_find_helper_get_range (GST_OBJECT (src),
+      GST_OBJECT_PARENT (src), func, size, NULL, NULL);
 }
 
 /* ********************** typefinding for buffers ************************* */
@@ -470,7 +453,7 @@
  */
 static void
 buf_helper_find_suggest (gpointer data, GstTypeFindProbability probability,
-    const GstCaps * caps)
+    GstCaps * caps)
 {
   GstTypeFindBufHelper *helper = (GstTypeFindBufHelper *) data;
 
@@ -480,10 +463,7 @@
 
   /* Note: not >= as we call typefinders in order of rank, highest first */
   if (probability > helper->best_probability) {
-    GstCaps *copy = gst_caps_copy (caps);
-
-    gst_caps_replace (&helper->caps, copy);
-    gst_caps_unref (copy);
+    gst_caps_replace (&helper->caps, caps);
     helper->best_probability = probability;
   }
 }
@@ -589,17 +569,17 @@
     GstTypeFindProbability * prob)
 {
   GstCaps *result;
-  guint8 *data;
-  gsize size;
+  GstMapInfo info;
 
   g_return_val_if_fail (buf != NULL, NULL);
   g_return_val_if_fail (GST_IS_BUFFER (buf), NULL);
   g_return_val_if_fail (GST_BUFFER_OFFSET (buf) == 0 ||
       GST_BUFFER_OFFSET (buf) == GST_BUFFER_OFFSET_NONE, NULL);
 
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-  result = gst_type_find_helper_for_data (obj, data, size, prob);
-  gst_buffer_unmap (buf, data, size);
+  if (!gst_buffer_map (buf, &info, GST_MAP_READ))
+    return NULL;
+  result = gst_type_find_helper_for_data (obj, info.data, info.size, prob);
+  gst_buffer_unmap (buf, &info);
 
   return result;
 }
diff --git a/libs/gst/base/gsttypefindhelper.h b/libs/gst/base/gsttypefindhelper.h
index 052bc19..a61c042 100644
--- a/libs/gst/base/gsttypefindhelper.h
+++ b/libs/gst/base/gsttypefindhelper.h
@@ -44,6 +44,7 @@
 /**
  * GstTypeFindHelperGetRangeFunction:
  * @obj: a #GstObject that will handle the getrange request
+ * @parent: the parent of @obj or NULL
  * @offset: the offset of the range
  * @length: the length of the range
  * @buffer: a memory location to hold the result buffer
@@ -59,21 +60,18 @@
  * Returns: GST_FLOW_OK for success
  */
 typedef GstFlowReturn (*GstTypeFindHelperGetRangeFunction) (GstObject  *obj,
+                                                            GstObject  *parent,
                                                             guint64     offset,
                                                             guint       length,
                                                             GstBuffer **buffer);
 
-GstCaps * gst_type_find_helper_get_range (GstObject                        * obj,
+GstCaps * gst_type_find_helper_get_range (GstObject                         *obj,
+                                          GstObject                         *parent,
                                           GstTypeFindHelperGetRangeFunction  func,
                                           guint64                            size,
+                                          const gchar                       *extension,
                                           GstTypeFindProbability            *prob);
 
-GstCaps * gst_type_find_helper_get_range_ext (GstObject                        * obj,
-                                              GstTypeFindHelperGetRangeFunction  func,
-                                              guint64                            size,
-                                              const gchar                       *extension,
-                                              GstTypeFindProbability            *prob);
-
 G_END_DECLS
 
 #endif /* __GST_TYPEFINDHELPER_H__ */
diff --git a/libs/gst/check/Makefile.am b/libs/gst/check/Makefile.am
index 7d3082a..c1e41f7 100644
--- a/libs/gst/check/Makefile.am
+++ b/libs/gst/check/Makefile.am
@@ -1,37 +1,37 @@
-lib_LTLIBRARIES = libgstcheck-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstcheck-@GST_API_VERSION@.la
 
 SYMBOLS_FILE = exports.sym
 
 BUILT_SOURCES = internal-check.h
 
-libgstcheck_@GST_MAJORMINOR@_la_DEPENDENCIES = \
-	$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
+libgstcheck_@GST_API_VERSION@_la_DEPENDENCIES = \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 	internal-check.h \
 	$(SYMBOLS_FILE)
-libgstcheck_@GST_MAJORMINOR@_la_SOURCES =	\
+libgstcheck_@GST_API_VERSION@_la_SOURCES =	\
 	gstbufferstraw.c			\
 	gstcheck.c				\
 	gstconsistencychecker.c
 
-libgstcheck_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
+libgstcheck_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
 	-I$(top_builddir)/libs \
 	-I$(top_builddir)/libs/gst/check \
 	-I$(top_builddir)/libs/gst/check/libcheck
-libgstcheck_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) \
+libgstcheck_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) \
 	$(top_builddir)/libs/gst/check/libcheck/libcheckinternal.la \
 	$(LIBM)
-libgstcheck_@GST_MAJORMINOR@_la_LDFLAGS = \
+libgstcheck_@GST_API_VERSION@_la_LDFLAGS = \
 	-export-symbols $(SYMBOLS_FILE) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-libgstcheck_@GST_MAJORMINOR@includedir =		\
-	$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/check
+libgstcheck_@GST_API_VERSION@includedir =		\
+	$(includedir)/gstreamer-@GST_API_VERSION@/gst/check
 
-libgstcheck_@GST_MAJORMINOR@include_HEADERS =	 \
+libgstcheck_@GST_API_VERSION@include_HEADERS =	 \
 	gstbufferstraw.h			\
 	gstcheck.h				\
 	gstconsistencychecker.h
 
-nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS =	\
+nodist_libgstcheck_@GST_API_VERSION@include_HEADERS =	\
 	internal-check.h	
 
 CLEANFILES = *.gcno *.gcda *.gcov internal-check.h $(SYMBOLS_FILE)
@@ -39,10 +39,10 @@
 internal-check.h: $(top_builddir)/libs/gst/check/libcheck/check.h
 	$(AM_V_GEN)cp $(top_builddir)/libs/gst/check/libcheck/check.h internal-check.h
 
-%.c.gcov: .libs/libgstcheck_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstcheck_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstcheck_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 SUBDIRS = libcheck
 
@@ -84,6 +84,7 @@
 	gst_check_teardown_pad_by_name \
 	gst_check_teardown_sink_pad \
 	gst_check_teardown_src_pad \
+	gst_consistency_checker_add_pad \
 	gst_consistency_checker_new \
 	gst_consistency_checker_reset \
 	gst_consistency_checker_free
@@ -107,20 +108,21 @@
 	done
 
 if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstCheck-@GST_MAJORMINOR@.gir
+BUILT_GIRSOURCES = GstCheck-@GST_API_VERSION@.gir
 
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_MAJORMINOR@include_HEADERS)) \
-    $(patsubst %,$(builddir)/%, $(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/check/%',$(libgstcheck_@GST_MAJORMINOR@include_HEADERS)) \
-    $(patsubst %,--c-include='gst/check/%',$(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS))
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@include_HEADERS)) \
+    $(patsubst %,$(builddir)/%, $(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@_la_SOURCES))
+gir_cincludes=$(patsubst %,--c-include='gst/check/%',$(libgstcheck_@GST_API_VERSION@include_HEADERS)) \
+    $(patsubst %,--c-include='gst/check/%',$(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS))
 
-GstCheck-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_MAJORMINOR@.la
+GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
-		--nsversion=@GST_MAJORMINOR@ \
+		--nsversion=@GST_API_VERSION@ \
 		--strip-prefix=Gst \
+		--warn-all \
 		-DGST_USE_UNSTABLE_API \
 		-I$(top_srcdir) \
 		-I$(top_srcdir)/libs \
@@ -129,12 +131,12 @@
 		$(gir_cincludes) \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-		--library=libgstcheck-0.11.la \
-		--include=Gst-0.11 \
+		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+		--library=libgstcheck-@GST_API_VERSION@.la \
+		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
-		--pkg gstreamer-@GST_MAJORMINOR@ \
-		--pkg-export gstreamer-check-@GST_MAJORMINOR@ \
+		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg-export gstreamer-check-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL,NULL);" \
 		--output $@ \
 		$(gir_headers) \
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index 6717852..e1f5ac4 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,7 +55,7 @@
 host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/check
-DIST_COMMON = $(libgstcheck_@GST_MAJORMINOR@include_HEADERS) \
+DIST_COMMON = $(libgstcheck_@GST_API_VERSION@include_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -103,25 +120,31 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 	"$(DESTDIR)$(typelibsdir)" \
-	"$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" \
-	"$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)"
+	"$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)" \
+	"$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-am_libgstcheck_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo \
-	libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo \
-	libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo
-libgstcheck_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstcheck_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am_libgstcheck_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo \
+	libgstcheck_@GST_API_VERSION@_la-gstcheck.lo \
+	libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo
+libgstcheck_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstcheck_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libgstcheck_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+libgstcheck_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
-	$(libgstcheck_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
+	$(libgstcheck_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -132,24 +155,24 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES)
+SOURCES = $(libgstcheck_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libgstcheck_@GST_API_VERSION@_la_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-dvi-recursive install-exec-recursive \
@@ -157,9 +180,14 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstcheck_@GST_MAJORMINOR@include_HEADERS) \
-	$(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS)
+HEADERS = $(libgstcheck_@GST_API_VERSION@include_HEADERS) \
+	$(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -247,10 +275,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -263,10 +293,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -280,7 +310,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -297,6 +326,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -312,7 +345,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -345,6 +377,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -400,6 +433,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -433,7 +467,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -454,40 +487,40 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstcheck-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstcheck-@GST_API_VERSION@.la
 SYMBOLS_FILE = exports.sym
 BUILT_SOURCES = internal-check.h
-libgstcheck_@GST_MAJORMINOR@_la_DEPENDENCIES = \
-	$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
+libgstcheck_@GST_API_VERSION@_la_DEPENDENCIES = \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
 	internal-check.h \
 	$(SYMBOLS_FILE)
 
-libgstcheck_@GST_MAJORMINOR@_la_SOURCES = \
+libgstcheck_@GST_API_VERSION@_la_SOURCES = \
 	gstbufferstraw.c			\
 	gstcheck.c				\
 	gstconsistencychecker.c
 
-libgstcheck_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
+libgstcheck_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) \
 	-I$(top_builddir)/libs \
 	-I$(top_builddir)/libs/gst/check \
 	-I$(top_builddir)/libs/gst/check/libcheck
 
-libgstcheck_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) \
+libgstcheck_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) \
 	$(top_builddir)/libs/gst/check/libcheck/libcheckinternal.la \
 	$(LIBM)
 
-libgstcheck_@GST_MAJORMINOR@_la_LDFLAGS = \
+libgstcheck_@GST_API_VERSION@_la_LDFLAGS = \
 	-export-symbols $(SYMBOLS_FILE) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
-libgstcheck_@GST_MAJORMINOR@includedir = \
-	$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/check
+libgstcheck_@GST_API_VERSION@includedir = \
+	$(includedir)/gstreamer-@GST_API_VERSION@/gst/check
 
-libgstcheck_@GST_MAJORMINOR@include_HEADERS = \
+libgstcheck_@GST_API_VERSION@include_HEADERS = \
 	gstbufferstraw.h			\
 	gstcheck.h				\
 	gstconsistencychecker.h
 
-nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS = \
+nodist_libgstcheck_@GST_API_VERSION@include_HEADERS = \
 	internal-check.h	
 
 CLEANFILES = *.gcno *.gcda *.gcov internal-check.h $(SYMBOLS_FILE) \
@@ -531,6 +564,7 @@
 	gst_check_teardown_pad_by_name \
 	gst_check_teardown_sink_pad \
 	gst_check_teardown_src_pad \
+	gst_consistency_checker_add_pad \
 	gst_consistency_checker_new \
 	gst_consistency_checker_reset \
 	gst_consistency_checker_free
@@ -543,13 +577,13 @@
 # Please do not even think about changing the alphabet below into A-Za-z.
 # It is there for purpose. (Bug #602093)
 CHECK_SYMS = `$(SED) -n -e 's/^..*CK_EXPORT[ ]\{1,\}\([_0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]\{1,\}\)..*$$/\1/p' @top_srcdir@/libs/gst/check/libcheck/check.h.in`
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstCheck-@GST_MAJORMINOR@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_MAJORMINOR@include_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@    $(patsubst %,$(builddir)/%, $(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstCheck-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@include_HEADERS)) \
+@HAVE_INTROSPECTION_TRUE@    $(patsubst %,$(builddir)/%, $(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS))
 
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/check/%',$(libgstcheck_@GST_MAJORMINOR@include_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@    $(patsubst %,--c-include='gst/check/%',$(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/check/%',$(libgstcheck_@GST_API_VERSION@include_HEADERS)) \
+@HAVE_INTROSPECTION_TRUE@    $(patsubst %,--c-include='gst/check/%',$(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS))
 
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
@@ -595,7 +629,6 @@
 $(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -603,6 +636,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -624,8 +659,8 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstcheck-@GST_MAJORMINOR@.la: $(libgstcheck_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcheck_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstcheck_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstcheck_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcheck_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
+libgstcheck-@GST_API_VERSION@.la: $(libgstcheck_@GST_API_VERSION@_la_OBJECTS) $(libgstcheck_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstcheck_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstcheck_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstcheck_@GST_API_VERSION@_la_OBJECTS) $(libgstcheck_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -633,57 +668,51 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstcheck.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstcheck.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo: gstbufferstraw.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.Tpo -c -o libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo `test -f 'gstbufferstraw.c' || echo '$(srcdir)/'`gstbufferstraw.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.Tpo $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstbufferstraw.c' object='libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo: gstbufferstraw.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.Tpo -c -o libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo `test -f 'gstbufferstraw.c' || echo '$(srcdir)/'`gstbufferstraw.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.Tpo $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstbufferstraw.c' object='libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_MAJORMINOR@_la-gstbufferstraw.lo `test -f 'gstbufferstraw.c' || echo '$(srcdir)/'`gstbufferstraw.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_API_VERSION@_la-gstbufferstraw.lo `test -f 'gstbufferstraw.c' || echo '$(srcdir)/'`gstbufferstraw.c
 
-libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo: gstcheck.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstcheck.Tpo -c -o libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo `test -f 'gstcheck.c' || echo '$(srcdir)/'`gstcheck.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstcheck.Tpo $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstcheck.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcheck.c' object='libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcheck_@GST_API_VERSION@_la-gstcheck.lo: gstcheck.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_API_VERSION@_la-gstcheck.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstcheck.Tpo -c -o libgstcheck_@GST_API_VERSION@_la-gstcheck.lo `test -f 'gstcheck.c' || echo '$(srcdir)/'`gstcheck.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstcheck.Tpo $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstcheck.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcheck.c' object='libgstcheck_@GST_API_VERSION@_la-gstcheck.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_MAJORMINOR@_la-gstcheck.lo `test -f 'gstcheck.c' || echo '$(srcdir)/'`gstcheck.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_API_VERSION@_la-gstcheck.lo `test -f 'gstcheck.c' || echo '$(srcdir)/'`gstcheck.c
 
-libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo: gstconsistencychecker.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.Tpo -c -o libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo `test -f 'gstconsistencychecker.c' || echo '$(srcdir)/'`gstconsistencychecker.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.Tpo $(DEPDIR)/libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstconsistencychecker.c' object='libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo: gstconsistencychecker.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo -MD -MP -MF $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.Tpo -c -o libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo `test -f 'gstconsistencychecker.c' || echo '$(srcdir)/'`gstconsistencychecker.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.Tpo $(DEPDIR)/libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstconsistencychecker.c' object='libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_MAJORMINOR@_la-gstconsistencychecker.lo `test -f 'gstconsistencychecker.c' || echo '$(srcdir)/'`gstconsistencychecker.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcheck_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcheck_@GST_API_VERSION@_la-gstconsistencychecker.lo `test -f 'gstconsistencychecker.c' || echo '$(srcdir)/'`gstconsistencychecker.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -692,8 +721,11 @@
 	-rm -rf .libs _libs
 install-girDATA: $(gir_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -707,13 +739,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(girdir)" && rm -f $$files
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -727,49 +760,49 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
-install-libgstcheck_@GST_MAJORMINOR@includeHEADERS: $(libgstcheck_@GST_MAJORMINOR@include_HEADERS)
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstcheck_@GST_API_VERSION@includeHEADERS: $(libgstcheck_@GST_API_VERSION@include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstcheck_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)"
-	@list='$(libgstcheck_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcheck_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstcheck_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstcheck_@GST_API_VERSION@includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)" || exit $$?; \
 	done
 
-uninstall-libgstcheck_@GST_MAJORMINOR@includeHEADERS:
+uninstall-libgstcheck_@GST_API_VERSION@includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libgstcheck_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcheck_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(libgstcheck_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstcheck_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" && rm -f $$files
-install-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS)
+	dir='$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
+install-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS: $(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstcheck_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)"
-	@list='$(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcheck_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstcheck_@GST_API_VERSION@includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)" || exit $$?; \
 	done
 
-uninstall-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS:
+uninstall-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_libgstcheck_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcheck_@GST_MAJORMINOR@includedir)" || list=; \
+	@list='$(nodist_libgstcheck_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstcheck_@GST_API_VERSION@includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -938,13 +971,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -970,7 +1000,7 @@
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs: installdirs-recursive
 installdirs-am:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstcheck_@GST_MAJORMINOR@includedir)"; do \
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)" "$(DESTDIR)$(libgstcheck_@GST_API_VERSION@includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -984,10 +1014,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1025,8 +1060,8 @@
 info-am:
 
 install-data-am: install-girDATA \
-	install-libgstcheck_@GST_MAJORMINOR@includeHEADERS \
-	install-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS \
+	install-libgstcheck_@GST_API_VERSION@includeHEADERS \
+	install-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
 	install-typelibsDATA
 
 install-dvi: install-dvi-recursive
@@ -1074,8 +1109,8 @@
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgstcheck_@GST_MAJORMINOR@includeHEADERS \
-	uninstall-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstcheck_@GST_API_VERSION@includeHEADERS \
+	uninstall-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
@@ -1091,8 +1126,9 @@
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-girDATA install-html install-html-am \
 	install-info install-info-am install-libLTLIBRARIES \
-	install-libgstcheck_@GST_MAJORMINOR@includeHEADERS install-man \
-	install-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS \
+	install-libgstcheck_@GST_API_VERSION@includeHEADERS \
+	install-man \
+	install-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs installdirs-am maintainer-clean \
@@ -1100,18 +1136,18 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-recursive uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
-	uninstall-libgstcheck_@GST_MAJORMINOR@includeHEADERS \
-	uninstall-nodist_libgstcheck_@GST_MAJORMINOR@includeHEADERS \
+	uninstall-libgstcheck_@GST_API_VERSION@includeHEADERS \
+	uninstall-nodist_libgstcheck_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
 
 internal-check.h: $(top_builddir)/libs/gst/check/libcheck/check.h
 	$(AM_V_GEN)cp $(top_builddir)/libs/gst/check/libcheck/check.h internal-check.h
 
-%.c.gcov: .libs/libgstcheck_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstcheck_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstcheck_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstcheck_@GST_API_VERSION@_la_SOURCES:=.gcov)
 print-check-symbols:
 	@for s in $(CHECK_SYMS); do \
 	  echo $$s; \
@@ -1123,12 +1159,13 @@
 	  echo $$s >> $(SYMBOLS_FILE); \
 	done
 
-@HAVE_INTROSPECTION_TRUE@GstCheck-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_MAJORMINOR@.la
+@HAVE_INTROSPECTION_TRUE@GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
-@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		-DGST_USE_UNSTABLE_API \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/libs \
@@ -1137,12 +1174,12 @@
 @HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(top_builddir)/gst \
 @HAVE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/gst \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--library=libgstcheck-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--include=Gst-0.11 \
+@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstcheck-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
-@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-check-@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-check-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
 @HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
diff --git a/libs/gst/check/gstbufferstraw.c b/libs/gst/check/gstbufferstraw.c
index 71504ff..68405df 100644
--- a/libs/gst/check/gstbufferstraw.c
+++ b/libs/gst/check/gstbufferstraw.c
@@ -37,10 +37,11 @@
 
 /* called for every buffer.  Waits until the global "buf" variable is unset,
  * then sets it to the buffer received, and signals. */
-static gboolean
-buffer_probe (GstPad * pad, GstProbeType type, GstBuffer * buffer,
-    gpointer unused)
+static GstPadProbeReturn
+buffer_probe (GstPad * pad, GstPadProbeInfo * info, gpointer unused)
 {
+  GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER (info);
+
   g_mutex_lock (lock);
 
   while (buf != NULL)
@@ -53,7 +54,7 @@
 
   g_mutex_unlock (lock);
 
-  return TRUE;
+  return GST_PAD_PROBE_OK;
 }
 
 /**
@@ -82,8 +83,8 @@
 {
   GstStateChangeReturn ret;
 
-  id = gst_pad_add_probe (pad, GST_PROBE_TYPE_BUFFER,
-      (GstPadProbeCallback) buffer_probe, NULL, NULL);
+  id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER,
+      buffer_probe, NULL, NULL);
 
   cond = g_cond_new ();
   lock = g_mutex_new ();
diff --git a/libs/gst/check/gstbufferstraw.h b/libs/gst/check/gstbufferstraw.h
index 9ec4a31..ed49704 100644
--- a/libs/gst/check/gstbufferstraw.h
+++ b/libs/gst/check/gstbufferstraw.h
@@ -26,9 +26,9 @@
 
 G_BEGIN_DECLS
 
-void gst_buffer_straw_start_pipeline (GstElement * bin, GstPad * pad);
-GstBuffer *gst_buffer_straw_get_buffer (GstElement * bin, GstPad * pad);
-void gst_buffer_straw_stop_pipeline (GstElement * bin, GstPad * pad);
+void        gst_buffer_straw_start_pipeline (GstElement * bin, GstPad * pad);
+GstBuffer * gst_buffer_straw_get_buffer     (GstElement * bin, GstPad * pad);
+void        gst_buffer_straw_stop_pipeline  (GstElement * bin, GstPad * pad);
 
 G_END_DECLS
 
diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c
index 761c0c9..745b68c 100644
--- a/libs/gst/check/gstcheck.c
+++ b/libs/gst/check/gstcheck.c
@@ -98,7 +98,7 @@
 {
   GList *plugins, *l;
 
-  plugins = gst_default_registry_get_plugin_list ();
+  plugins = gst_registry_get_plugin_list (gst_registry_get ());
   plugins = g_list_sort (plugins, (GCompareFunc) sort_plugins);
   for (l = plugins; l != NULL; l = l->next) {
     GstPlugin *plugin = GST_PLUGIN (l->data);
@@ -160,9 +160,9 @@
 
 /* helper functions */
 GstFlowReturn
-gst_check_chain_func (GstPad * pad, GstBuffer * buffer)
+gst_check_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
-  GST_DEBUG ("chain_func: received buffer %p", buffer);
+  GST_DEBUG_OBJECT (pad, "chain_func: received buffer %p", buffer);
   buffers = g_list_append (buffers, buffer);
 
   g_mutex_lock (check_mutex);
@@ -197,19 +197,10 @@
   gst_object_unref (element);
 }
 
-/* FIXME: set_caps isn't that useful
- */
 GstPad *
-gst_check_setup_src_pad (GstElement * element,
-    GstStaticPadTemplate * tmpl, GstCaps * caps)
+gst_check_setup_src_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 {
-  GstPad *srcpad;
-
-  srcpad = gst_check_setup_src_pad_by_name (element, tmpl, "sink");
-  if (caps)
-    fail_unless (gst_pad_push_event (srcpad, gst_event_new_caps (caps)),
-        "could not set caps on pad");
-  return srcpad;
+  return gst_check_setup_src_pad_by_name (element, tmpl, "sink");
 }
 
 GstPad *
@@ -277,19 +268,10 @@
   gst_check_teardown_pad_by_name (element, "sink");
 }
 
-/* FIXME: set_caps isn't that useful; might want to check if fixed,
- * then use set_use_fixed or somesuch */
 GstPad *
-gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * tmpl,
-    GstCaps * caps)
+gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 {
-  GstPad *sinkpad;
-
-  sinkpad = gst_check_setup_sink_pad_by_name (element, tmpl, "src");
-  if (caps)
-    fail_unless (gst_pad_send_event (sinkpad, gst_event_new_caps (caps)),
-        "Could not set pad caps");
-  return sinkpad;
+  return gst_check_setup_sink_pad_by_name (element, tmpl, "src");
 }
 
 GstPad *
@@ -377,19 +359,48 @@
 void
 gst_check_buffer_data (GstBuffer * buffer, gconstpointer data, gsize size)
 {
-  guint8 *bdata;
-  gsize bsize;
+  GstMapInfo info;
 
-  bdata = gst_buffer_map (buffer, &bsize, NULL, GST_MAP_READ);
-  fail_unless (memcmp (bdata, data, size) == 0, "buffer contents not equal");
-  gst_buffer_unmap (buffer, bdata, bsize);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
+  GST_MEMDUMP ("Converted data", info.data, info.size);
+  GST_MEMDUMP ("Expected data", data, size);
+  if (memcmp (info.data, data, size) != 0) {
+    g_print ("\nConverted data:\n");
+    gst_util_dump_mem (info.data, info.size);
+    g_print ("\nExpected data:\n");
+    gst_util_dump_mem (data, size);
+  }
+  fail_unless (memcmp (info.data, data, size) == 0,
+      "buffer contents not equal");
+  gst_buffer_unmap (buffer, &info);
+}
+
+static gboolean
+buffer_event_function (GstPad * pad, GstObject * noparent, GstEvent * event)
+{
+  if (GST_EVENT_TYPE (event) == GST_EVENT_CAPS) {
+    GstCaps *event_caps, *current_caps;
+
+    current_caps = gst_pad_get_current_caps (pad);
+    gst_event_parse_caps (event, &event_caps);
+    fail_unless (gst_caps_is_fixed (current_caps));
+    fail_unless (gst_caps_is_fixed (event_caps));
+    fail_unless (gst_caps_is_equal_fixed (event_caps, current_caps));
+    gst_caps_unref (current_caps);
+    gst_event_unref (event);
+    return TRUE;
+  }
+
+  return gst_pad_event_default (pad, noparent, event);
 }
 
 /**
  * gst_check_element_push_buffer_list:
  * @element_name: name of the element that needs to be created
- * @buffer_in: a list of buffers that needs to be puched to the element
- * @buffer_out: a list of buffers that we expect from the element
+ * @buffer_in: (element-type GstBuffer) (transfer full): a list of buffers that needs to be
+ *  puched to the element
+ * @buffer_out: (element-type GstBuffer) (transfer full): a list of buffers that we expect from
+ * the element
  * @last_flow_return: the last buffer push needs to give this GstFlowReturn
  *
  * Create an @element with the factory with the name and push the buffers in
@@ -406,12 +417,9 @@
 /* FIXME 0.11: rename this function now that there's GstBufferList? */
 void
 gst_check_element_push_buffer_list (const gchar * element_name,
-    GList * buffer_in, GList * buffer_out, GstFlowReturn last_flow_return)
+    GList * buffer_in, GstCaps * caps_in, GList * buffer_out,
+    GstCaps * caps_out, GstFlowReturn last_flow_return)
 {
-#if 0
-  GstCaps *sink_caps;
-  GstCaps *src_caps = NULL;
-#endif
   GstElement *element;
   GstPad *pad_peer;
   GstPad *sink_pad = NULL;
@@ -428,52 +436,50 @@
   buffer = GST_BUFFER (buffer_in->data);
 
   fail_unless (GST_IS_BUFFER (buffer), "There should be a buffer in buffer_in");
-#if 0
-  src_caps = GST_BUFFER_CAPS (buffer);
-#endif
-  src_pad = gst_pad_new (NULL, GST_PAD_SRC);
-#if 0
-  gst_pad_set_caps (src_pad, src_caps);
-#endif
+  src_pad = gst_pad_new ("src", GST_PAD_SRC);
+  if (caps_in) {
+    fail_unless (gst_caps_is_fixed (caps_in));
+    gst_pad_use_fixed_caps (src_pad);
+  }
+  /* activate the pad */
+  gst_pad_set_active (src_pad, TRUE);
+  GST_DEBUG ("src pad activated");
+  if (caps_in)
+    fail_unless (gst_pad_set_caps (src_pad, caps_in));
   pad_peer = gst_element_get_static_pad (element, "sink");
   fail_if (pad_peer == NULL);
   fail_unless (gst_pad_link (src_pad, pad_peer) == GST_PAD_LINK_OK,
       "Could not link source and %s sink pads", GST_ELEMENT_NAME (element));
   gst_object_unref (pad_peer);
-  /* activate the pad */
-  gst_pad_set_active (src_pad, TRUE);
-  GST_DEBUG ("src pad activated");
   /* don't create the sink_pad if there is no buffer_out list */
   if (buffer_out != NULL) {
-#if 0
-    gchar *temp;
-#endif
 
     GST_DEBUG ("buffer out detected, creating the sink pad");
     /* get the sink caps */
-#if 0
-    sink_caps = GST_BUFFER_CAPS (GST_BUFFER (buffer_out->data));
-    fail_unless (GST_IS_CAPS (sink_caps), "buffer out don't have caps");
-    temp = gst_caps_to_string (sink_caps);
+    if (caps_out) {
+      gchar *temp;
 
-    GST_DEBUG ("sink caps requested by buffer out: '%s'", temp);
-    g_free (temp);
-    fail_unless (gst_caps_is_fixed (sink_caps), "we need fixed caps");
-#endif
+      fail_unless (gst_caps_is_fixed (caps_out));
+      temp = gst_caps_to_string (caps_out);
+
+      GST_DEBUG ("sink caps requested by buffer out: '%s'", temp);
+      g_free (temp);
+    }
+
     /* get the sink pad */
-    sink_pad = gst_pad_new (NULL, GST_PAD_SINK);
+    sink_pad = gst_pad_new ("sink", GST_PAD_SINK);
     fail_unless (GST_IS_PAD (sink_pad));
-#if 0
-    gst_pad_set_caps (sink_pad, sink_caps);
-#endif
+    /* configure the sink pad */
+    gst_pad_set_chain_function (sink_pad, gst_check_chain_func);
+    gst_pad_set_active (sink_pad, TRUE);
+    gst_pad_set_caps (sink_pad, caps_out);
+    if (caps_out)
+      gst_pad_set_event_function (sink_pad, buffer_event_function);
     /* get the peer pad */
     pad_peer = gst_element_get_static_pad (element, "src");
     fail_unless (gst_pad_link (pad_peer, sink_pad) == GST_PAD_LINK_OK,
         "Could not link sink and %s source pads", GST_ELEMENT_NAME (element));
     gst_object_unref (pad_peer);
-    /* configure the sink pad */
-    gst_pad_set_chain_function (sink_pad, gst_check_chain_func);
-    gst_pad_set_active (sink_pad, TRUE);
   }
   fail_unless (gst_element_set_state (element,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
@@ -502,30 +508,30 @@
   while (buffers != NULL) {
     GstBuffer *new = GST_BUFFER (buffers->data);
     GstBuffer *orig = GST_BUFFER (buffer_out->data);
-    gsize newsize, origsize;
-    guint8 *newdata, *origdata;
+    GstMapInfo newinfo, originfo;
 
-    newdata = gst_buffer_map (new, &newsize, NULL, GST_MAP_READ);
-    origdata = gst_buffer_map (orig, &origsize, NULL, GST_MAP_READ);
+    gst_buffer_map (new, &newinfo, GST_MAP_READ);
+    gst_buffer_map (orig, &originfo, GST_MAP_READ);
 
-    GST_LOG ("orig buffer: size %" G_GSIZE_FORMAT, origsize);
-    GST_LOG ("new  buffer: size %" G_GSIZE_FORMAT, newsize);
-    GST_MEMDUMP ("orig buffer", origdata, origsize);
-    GST_MEMDUMP ("new  buffer", newdata, newsize);
+    GST_LOG ("orig buffer: size %" G_GSIZE_FORMAT, originfo.size);
+    GST_LOG ("new  buffer: size %" G_GSIZE_FORMAT, newinfo.size);
+    GST_MEMDUMP ("orig buffer", originfo.data, originfo.size);
+    GST_MEMDUMP ("new  buffer", newinfo.data, newinfo.size);
 
     /* remove the buffers */
     buffers = g_list_remove (buffers, new);
     buffer_out = g_list_remove (buffer_out, orig);
 
-    fail_unless (origsize == newsize, "size of the buffers are not the same");
-    fail_unless (memcmp (origdata, newdata, newsize) == 0,
+    fail_unless (originfo.size == newinfo.size,
+        "size of the buffers are not the same");
+    fail_unless (memcmp (originfo.data, newinfo.data, newinfo.size) == 0,
         "data is not the same");
 #if 0
     gst_check_caps_equal (GST_BUFFER_CAPS (orig), GST_BUFFER_CAPS (new));
 #endif
 
-    gst_buffer_unmap (orig, origdata, origsize);
-    gst_buffer_unmap (new, newdata, newsize);
+    gst_buffer_unmap (orig, &originfo);
+    gst_buffer_unmap (new, &newinfo);
 
     gst_buffer_unref (new);
     gst_buffer_unref (orig);
@@ -553,7 +559,8 @@
  */
 void
 gst_check_element_push_buffer (const gchar * element_name,
-    GstBuffer * buffer_in, GstBuffer * buffer_out)
+    GstBuffer * buffer_in, GstCaps * caps_in, GstBuffer * buffer_out,
+    GstCaps * caps_out)
 {
   GList *in = NULL;
   GList *out = NULL;
@@ -561,7 +568,8 @@
   in = g_list_append (in, buffer_in);
   out = g_list_append (out, buffer_out);
 
-  gst_check_element_push_buffer_list (element_name, in, out, GST_FLOW_OK);
+  gst_check_element_push_buffer_list (element_name, in, caps_in, out, caps_out,
+      GST_FLOW_OK);
 }
 
 void
diff --git a/libs/gst/check/gstcheck.h b/libs/gst/check/gstcheck.h
index 6d4a935..ff66993 100644
--- a/libs/gst/check/gstcheck.h
+++ b/libs/gst/check/gstcheck.h
@@ -64,7 +64,7 @@
 
 void gst_check_init (int *argc, char **argv[]);
 
-GstFlowReturn gst_check_chain_func (GstPad * pad, GstBuffer * buffer);
+GstFlowReturn gst_check_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer);
 
 void gst_check_message_error (GstMessage * message, GstMessageType type,
     GQuark domain, gint code);
@@ -72,7 +72,7 @@
 GstElement *gst_check_setup_element (const gchar * factory);
 void gst_check_teardown_element (GstElement * element);
 GstPad *gst_check_setup_src_pad (GstElement * element,
-    GstStaticPadTemplate * tmpl, GstCaps * caps);
+    GstStaticPadTemplate * tmpl);
 GstPad * gst_check_setup_src_pad_by_name (GstElement * element,
           GstStaticPadTemplate * tmpl, const gchar *name);
 GstPad * gst_check_setup_sink_pad_by_name (GstElement * element, 
@@ -83,18 +83,20 @@
 void gst_check_caps_equal (GstCaps * caps1, GstCaps * caps2);
 void gst_check_buffer_data (GstBuffer * buffer, gconstpointer data, gsize size);
 void gst_check_element_push_buffer_list (const gchar * element_name,
-    GList * buffer_in, GList * buffer_out, GstFlowReturn last_flow_return);
+    GList * buffer_in, GstCaps * caps_in, GList * buffer_out,
+    GstCaps * caps_out, GstFlowReturn last_flow_return);
 void gst_check_element_push_buffer (const gchar * element_name,
-    GstBuffer * buffer_in, GstBuffer * buffer_out);
+    GstBuffer * buffer_in, GstCaps * caps_in, GstBuffer * buffer_out,
+    GstCaps *caps_out);
 GstPad *gst_check_setup_sink_pad (GstElement * element,
-    GstStaticPadTemplate * tmpl, GstCaps * caps);
+    GstStaticPadTemplate * tmpl);
 void gst_check_teardown_sink_pad (GstElement * element);
 void gst_check_abi_list (GstCheckABIStruct list[], gboolean have_abi_sizes);
 gint gst_check_run_suite (Suite * suite, const gchar * name,
     const gchar * fname);
 
-#define fail_unless_message_error(msg, domain, code)		\
-gst_check_message_error (msg, GST_MESSAGE_ERROR,		\
+#define fail_unless_message_error(msg, domain, code)            \
+gst_check_message_error (msg, GST_MESSAGE_ERROR,                \
   GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code)
 #define assert_message_error(m, d, c) fail_unless_message_error(m, d, c)
 
@@ -129,12 +131,12 @@
  * case, printing both expressions and the values they evaluated to. This
  * macro is for use in unit tests.
  */
-#define fail_unless_equals_int(a, b)					\
-G_STMT_START {								\
-  int first = a;							\
-  int second = b;							\
-  fail_unless(first == second,						\
-    "'" #a "' (%d) is not equal to '" #b"' (%d)", first, second);	\
+#define fail_unless_equals_int(a, b)                                    \
+G_STMT_START {                                                          \
+  int first = a;                                                        \
+  int second = b;                                                       \
+  fail_unless(first == second,                                          \
+    "'" #a "' (%d) is not equal to '" #b"' (%d)", first, second);       \
 } G_STMT_END;
 /**
  * assert_equals_int:
@@ -156,13 +158,13 @@
  * case, printing both expressions and the values they evaluated to. This
  * macro is for use in unit tests.
  */
-#define fail_unless_equals_int64(a, b)					\
-G_STMT_START {								\
-  gint64 first = a;							\
-  gint64 second = b;							\
-  fail_unless(first == second,						\
-    "'" #a "' (%" G_GINT64_FORMAT") is not equal to '" #b"' (%"		\
-    G_GINT64_FORMAT")", first, second);					\
+#define fail_unless_equals_int64(a, b)                                  \
+G_STMT_START {                                                          \
+  gint64 first = a;                                                     \
+  gint64 second = b;                                                    \
+  fail_unless(first == second,                                          \
+    "'" #a "' (%" G_GINT64_FORMAT") is not equal to '" #b"' (%"         \
+    G_GINT64_FORMAT")", first, second);                                 \
 } G_STMT_END;
 /**
  * assert_equals_int64:
@@ -184,13 +186,13 @@
  * case, printing both expressions and the values they evaluated to. This
  * macro is for use in unit tests.
  */
-#define fail_unless_equals_uint64(a, b)					\
-G_STMT_START {								\
-  guint64 first = a;							\
-  guint64 second = b;							\
-  fail_unless(first == second,						\
-    "'" #a "' (%" G_GUINT64_FORMAT ") is not equal to '" #b"' (%"	\
-    G_GUINT64_FORMAT ")", first, second);				\
+#define fail_unless_equals_uint64(a, b)                                 \
+G_STMT_START {                                                          \
+  guint64 first = a;                                                    \
+  guint64 second = b;                                                   \
+  fail_unless(first == second,                                          \
+    "'" #a "' (%" G_GUINT64_FORMAT ") is not equal to '" #b"' (%"       \
+    G_GUINT64_FORMAT ")", first, second);                               \
 } G_STMT_END;
 /**
  * assert_equals_uint64:
@@ -270,169 +272,252 @@
  */
 extern GList *thread_list;
 extern GMutex *mutex;
-extern GCond *start_cond;	/* used to notify main thread of thread startups */
-extern GCond *sync_cond;	/* used to synchronize all threads and main thread */
+extern GCond *start_cond;       /* used to notify main thread of thread startups */
+extern GCond *sync_cond;        /* used to synchronize all threads and main thread */
 
-#define MAIN_START_THREADS(count, function, data)		\
-MAIN_INIT();							\
-MAIN_START_THREAD_FUNCTIONS(count, function, data);		\
+#define MAIN_START_THREADS(count, function, data)               \
+MAIN_INIT();                                                    \
+MAIN_START_THREAD_FUNCTIONS(count, function, data);             \
 MAIN_SYNCHRONIZE();
 
-#define MAIN_INIT()			\
-G_STMT_START {				\
-  _gst_check_threads_running = TRUE;	\
-					\
-  if (mutex == NULL) {			\
-    mutex = g_mutex_new ();		\
-    start_cond = g_cond_new ();		\
-    sync_cond = g_cond_new ();		\
-  }					\
+#if GLIB_CHECK_VERSION (2, 31, 0)
+#define g_thread_create gst_g_thread_create
+static inline GThread *
+gst_g_thread_create (GThreadFunc func, gpointer data, gboolean joinable,
+    GError **error)
+{
+  GThread *thread = g_thread_try_new ("gst-check", func, data, error);
+  if (!joinable)
+    g_thread_unref (thread);
+  return thread;
+}
+#define g_mutex_new gst_g_mutex_new
+static inline GMutex *
+gst_g_mutex_new (void)
+{
+  GMutex *mutex = g_slice_new (GMutex);
+  g_mutex_init (mutex);
+  return mutex;
+}
+#define g_mutex_free gst_g_mutex_free
+static inline void
+gst_g_mutex_free (GMutex *mutex)
+{
+  g_mutex_clear (mutex);
+  g_slice_free (GMutex, mutex);
+}
+#define g_static_rec_mutex_init gst_g_static_rec_mutex_init
+static inline void
+gst_g_static_rec_mutex_init (GStaticRecMutex *mutex)
+{
+  static const GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT;
+
+  *mutex = init_mutex;
+}
+#define g_cond_new gst_g_cond_new
+static inline GCond *
+gst_g_cond_new (void)
+{
+  GCond *cond = g_slice_new (GCond);
+  g_cond_init (cond);
+  return cond;
+}
+#define g_cond_free gst_g_cond_free
+static inline void
+gst_g_cond_free (GCond *cond)
+{
+  g_cond_clear (cond);
+  g_slice_free (GCond, cond);
+}
+#define g_cond_timed_wait gst_g_cond_timed_wait
+static inline gboolean
+gst_g_cond_timed_wait (GCond *cond, GMutex *mutex, GTimeVal *abs_time)
+{
+  gint64 end_time;
+
+  if (abs_time == NULL) {
+    g_cond_wait (cond, mutex);
+    return TRUE;
+  }
+
+  end_time = abs_time->tv_sec;
+  end_time *= 1000000;
+  end_time += abs_time->tv_usec;
+
+  /* would be nice if we had clock_rtoffset, but that didn't seem to
+   * make it into the kernel yet...
+   */
+  /* if CLOCK_MONOTONIC is not defined then g_get_montonic_time() and
+   * g_get_real_time() are returning the same clock and we'd add ~0
+   */
+  end_time += g_get_monotonic_time () - g_get_real_time ();
+  return g_cond_wait_until (cond, mutex, end_time);
+}
+#endif
+
+#define MAIN_INIT()                     \
+G_STMT_START {                          \
+  _gst_check_threads_running = TRUE;    \
+                                        \
+  if (mutex == NULL) {                  \
+    mutex = g_mutex_new ();             \
+    start_cond = g_cond_new ();         \
+    sync_cond = g_cond_new ();          \
+  }                                     \
 } G_STMT_END;
 
-#define MAIN_START_THREAD_FUNCTIONS(count, function, data)	\
-G_STMT_START {							\
-  int i;							\
-  for (i = 0; i < count; ++i) {					\
-    MAIN_START_THREAD_FUNCTION (i, function, data);		\
-  }								\
+#define MAIN_START_THREAD_FUNCTIONS(count, function, data)      \
+G_STMT_START {                                                  \
+  int i;                                                        \
+  for (i = 0; i < count; ++i) {                                 \
+    MAIN_START_THREAD_FUNCTION (i, function, data);             \
+  }                                                             \
 } G_STMT_END;
 
-#define MAIN_START_THREAD_FUNCTION(i, function, data)		\
-G_STMT_START {							\
-    GThread *thread = NULL;					\
-    GST_DEBUG ("MAIN: creating thread %d", i);			\
-    g_mutex_lock (mutex);					\
-    thread = g_thread_create ((GThreadFunc) function, data,	\
-	TRUE, NULL);						\
-    /* wait for thread to signal us that it's ready */		\
-    GST_DEBUG ("MAIN: waiting for thread %d", i);		\
-    g_cond_wait (start_cond, mutex);				\
-    g_mutex_unlock (mutex);					\
-								\
-    thread_list = g_list_append (thread_list, thread);		\
+#define MAIN_START_THREAD_FUNCTION(i, function, data)           \
+G_STMT_START {                                                  \
+    GThread *thread = NULL;                                     \
+    GST_DEBUG ("MAIN: creating thread %d", i);                  \
+    g_mutex_lock (mutex);                                       \
+    thread = g_thread_create ((GThreadFunc) function, data,     \
+        TRUE, NULL);                                            \
+    /* wait for thread to signal us that it's ready */          \
+    GST_DEBUG ("MAIN: waiting for thread %d", i);               \
+    g_cond_wait (start_cond, mutex);                            \
+    g_mutex_unlock (mutex);                                     \
+                                                                \
+    thread_list = g_list_append (thread_list, thread);          \
 } G_STMT_END;
 
 
-#define MAIN_SYNCHRONIZE()		\
-G_STMT_START {				\
-  GST_DEBUG ("MAIN: synchronizing");	\
-  g_cond_broadcast (sync_cond);		\
-  GST_DEBUG ("MAIN: synchronized");	\
+#define MAIN_SYNCHRONIZE()              \
+G_STMT_START {                          \
+  GST_DEBUG ("MAIN: synchronizing");    \
+  g_cond_broadcast (sync_cond);         \
+  GST_DEBUG ("MAIN: synchronized");     \
 } G_STMT_END;
 
-#define MAIN_STOP_THREADS()					\
-G_STMT_START {							\
-  _gst_check_threads_running = FALSE;				\
-								\
-  /* join all threads */					\
-  GST_DEBUG ("MAIN: joining");					\
-  g_list_foreach (thread_list, (GFunc) g_thread_join, NULL);	\
-  g_list_free (thread_list);					\
-  thread_list = NULL;						\
-  GST_DEBUG ("MAIN: joined");					\
+#define MAIN_STOP_THREADS()                                     \
+G_STMT_START {                                                  \
+  _gst_check_threads_running = FALSE;                           \
+                                                                \
+  /* join all threads */                                        \
+  GST_DEBUG ("MAIN: joining");                                  \
+  g_list_foreach (thread_list, (GFunc) g_thread_join, NULL);    \
+  g_list_free (thread_list);                                    \
+  thread_list = NULL;                                           \
+  GST_DEBUG ("MAIN: joined");                                   \
 } G_STMT_END;
 
-#define THREAD_START()						\
-THREAD_STARTED();						\
+#define THREAD_START()                                          \
+THREAD_STARTED();                                               \
 THREAD_SYNCHRONIZE();
 
-#define THREAD_STARTED()					\
-G_STMT_START {							\
-  /* signal main thread that we started */			\
-  GST_DEBUG ("THREAD %p: started", g_thread_self ());		\
-  g_mutex_lock (mutex);						\
-  g_cond_signal (start_cond);					\
+#define THREAD_STARTED()                                        \
+G_STMT_START {                                                  \
+  /* signal main thread that we started */                      \
+  GST_DEBUG ("THREAD %p: started", g_thread_self ());           \
+  g_mutex_lock (mutex);                                         \
+  g_cond_signal (start_cond);                                   \
 } G_STMT_END;
 
-#define THREAD_SYNCHRONIZE()					\
-G_STMT_START {							\
-  /* synchronize everyone */					\
-  GST_DEBUG ("THREAD %p: syncing", g_thread_self ());		\
-  g_cond_wait (sync_cond, mutex);				\
-  GST_DEBUG ("THREAD %p: synced", g_thread_self ());		\
-  g_mutex_unlock (mutex);					\
+#define THREAD_SYNCHRONIZE()                                    \
+G_STMT_START {                                                  \
+  /* synchronize everyone */                                    \
+  GST_DEBUG ("THREAD %p: syncing", g_thread_self ());           \
+  g_cond_wait (sync_cond, mutex);                               \
+  GST_DEBUG ("THREAD %p: synced", g_thread_self ());            \
+  g_mutex_unlock (mutex);                                       \
 } G_STMT_END;
 
-#define THREAD_SWITCH()						\
-G_STMT_START {							\
-  /* a minimal sleep is a context switch */			\
-  g_usleep (1);							\
+#define THREAD_SWITCH()                                         \
+G_STMT_START {                                                  \
+  /* a minimal sleep is a context switch */                     \
+  g_usleep (1);                                                 \
 } G_STMT_END;
 
-#define THREAD_TEST_RUNNING()	(_gst_check_threads_running == TRUE)
+#define THREAD_TEST_RUNNING()   (_gst_check_threads_running == TRUE)
 
 /* additional assertions */
-#define ASSERT_CRITICAL(code)					\
-G_STMT_START {							\
-  _gst_check_expecting_log = TRUE;				\
-  _gst_check_raised_critical = FALSE;				\
-  code;								\
+#define ASSERT_CRITICAL(code)                                   \
+G_STMT_START {                                                  \
+  _gst_check_expecting_log = TRUE;                              \
+  _gst_check_raised_critical = FALSE;                           \
+  code;                                                         \
   _fail_unless (_gst_check_raised_critical, __FILE__, __LINE__, \
                 "Expected g_critical, got nothing", NULL);      \
-  _gst_check_expecting_log = FALSE;				\
+  _gst_check_expecting_log = FALSE;                             \
 } G_STMT_END
 
-#define ASSERT_WARNING(code)					\
-G_STMT_START {							\
-  _gst_check_expecting_log = TRUE;				\
-  _gst_check_raised_warning = FALSE;				\
-  code;								\
+#define ASSERT_WARNING(code)                                    \
+G_STMT_START {                                                  \
+  _gst_check_expecting_log = TRUE;                              \
+  _gst_check_raised_warning = FALSE;                            \
+  code;                                                         \
   _fail_unless (_gst_check_raised_warning, __FILE__, __LINE__,  \
                 "Expected g_warning, got nothing", NULL);       \
-  _gst_check_expecting_log = FALSE;				\
+  _gst_check_expecting_log = FALSE;                             \
 } G_STMT_END
 
 
-#define ASSERT_OBJECT_REFCOUNT(object, name, value)		\
-G_STMT_START {							\
-  int rc;							\
-  rc = GST_OBJECT_REFCOUNT_VALUE (object);			\
-  fail_unless (rc == value,					\
-      "%s (%p) refcount is %d instead of %d",			\
-      name, object, rc, value);					\
+#define ASSERT_OBJECT_REFCOUNT(object, name, value)             \
+G_STMT_START {                                                  \
+  int rc;                                                       \
+  rc = GST_OBJECT_REFCOUNT_VALUE (object);                      \
+  fail_unless (rc == value,                                     \
+      "%s (%p) refcount is %d instead of %d",                   \
+      name, object, rc, value);                                 \
 } G_STMT_END
 
-#define ASSERT_OBJECT_REFCOUNT_BETWEEN(object, name, lower, upper)	\
-G_STMT_START {								\
-  int rc = GST_OBJECT_REFCOUNT_VALUE (object);				\
-  int lo = lower;							\
-  int hi = upper;							\
-									\
-  fail_unless (rc >= lo,						\
-      "%s (%p) refcount %d is smaller than %d",				\
-      name, object, rc, lo);						\
-  fail_unless (rc <= hi,						\
-      "%s (%p) refcount %d is bigger than %d",				\
-      name, object, rc, hi);						\
+#define ASSERT_OBJECT_REFCOUNT_BETWEEN(object, name, lower, upper)      \
+G_STMT_START {                                                          \
+  int rc = GST_OBJECT_REFCOUNT_VALUE (object);                          \
+  int lo = lower;                                                       \
+  int hi = upper;                                                       \
+                                                                        \
+  fail_unless (rc >= lo,                                                \
+      "%s (%p) refcount %d is smaller than %d",                         \
+      name, object, rc, lo);                                            \
+  fail_unless (rc <= hi,                                                \
+      "%s (%p) refcount %d is bigger than %d",                          \
+      name, object, rc, hi);                                            \
 } G_STMT_END
 
 
-#define ASSERT_CAPS_REFCOUNT(caps, name, value)			\
-	ASSERT_MINI_OBJECT_REFCOUNT(caps, name, value)
+#define ASSERT_CAPS_REFCOUNT(caps, name, value)                 \
+        ASSERT_MINI_OBJECT_REFCOUNT(caps, name, value)
 
-#define ASSERT_BUFFER_REFCOUNT(buffer, name, value)		\
-	ASSERT_MINI_OBJECT_REFCOUNT(buffer, name, value)
+#define ASSERT_BUFFER_REFCOUNT(buffer, name, value)             \
+        ASSERT_MINI_OBJECT_REFCOUNT(buffer, name, value)
 
-#define ASSERT_MINI_OBJECT_REFCOUNT(caps, name, value)		\
-G_STMT_START {							\
-  int rc;							\
-  rc = GST_MINI_OBJECT_REFCOUNT_VALUE (caps);			\
-  fail_unless (rc == value,					\
-               name " refcount is %d instead of %d", rc, value);\
+#define ASSERT_MEMORY_REFCOUNT(memory, name, value)             \
+G_STMT_START {                                                  \
+  int rc;                                                       \
+  rc = memory->refcount;                                        \
+  fail_unless (rc == value,                                     \
+               name " (%p) refcount is %d instead of %d", memory, rc, value); \
 } G_STMT_END
 
-#define ASSERT_SET_STATE(element, state, ret)			\
-fail_unless (gst_element_set_state (element,			\
-  state) == ret,						\
+#define ASSERT_MINI_OBJECT_REFCOUNT(miniobj, name, value)       \
+G_STMT_START {                                                  \
+  int rc;                                                       \
+  rc = GST_MINI_OBJECT_REFCOUNT_VALUE (miniobj);                \
+  fail_unless (rc == value,                                     \
+               name " (%p) refcount is %d instead of %d", miniobj, rc, value); \
+} G_STMT_END
+
+#define ASSERT_SET_STATE(element, state, ret)                   \
+fail_unless (gst_element_set_state (element,                    \
+  state) == ret,                                                \
   "could not change state to " #state);
 
-#define GST_CHECK_MAIN(name)					\
-int main (int argc, char **argv)				\
-{								\
+#define GST_CHECK_MAIN(name)                                    \
+int main (int argc, char **argv)                                \
+{                                                               \
   Suite *s;                                                     \
-  gst_check_init (&argc, &argv);				\
-  s = name ## _suite ();					\
-  return gst_check_run_suite (s, # name, __FILE__);		\
+  gst_check_init (&argc, &argv);                                \
+  s = name ## _suite ();                                        \
+  return gst_check_run_suite (s, # name, __FILE__);             \
 }
 
 /* Hack to allow run-time selection of unit tests to run via the
diff --git a/libs/gst/check/gstconsistencychecker.c b/libs/gst/check/gstconsistencychecker.c
index 731fc5a..35f325f 100644
--- a/libs/gst/check/gstconsistencychecker.c
+++ b/libs/gst/check/gstconsistencychecker.c
@@ -3,6 +3,7 @@
  * unit testing helper lib
  *
  * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
+ * Copyright (C) 2012 Stefan Sauer <ensonic@users.sf.net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -34,20 +35,35 @@
 
 struct _GstStreamConsistency
 {
-  gboolean flushing;
-  gboolean segment;
-  gboolean eos;
-  gulong probeid;
-  GstPad *pad;
+  /* FIXME: do we want to track some states per pad? */
+  volatile gboolean flushing;
+  volatile gboolean segment;
+  volatile gboolean eos;
+  volatile gboolean expect_flush;
+  GstObject *parent;
+  GList *pads;
 };
 
+typedef struct _GstStreamConsistencyProbe
+{
+  GstPad *pad;
+  gulong probeid;
+} GstStreamConsistencyProbe;
+
 static gboolean
-source_pad_data_cb (GstPad * pad, GstProbeType type, GstMiniObject * data,
+source_pad_data_cb (GstPad * pad, GstPadProbeInfo * info,
     GstStreamConsistency * consist)
 {
+  GstMiniObject *data = GST_PAD_PROBE_INFO_DATA (info);
+
+  GST_DEBUG_OBJECT (pad, "%p: %d %d %d %d", consist, consist->flushing,
+      consist->segment, consist->eos, consist->expect_flush);
+
   if (GST_IS_BUFFER (data)) {
-    GST_DEBUG_OBJECT (pad, "Buffer %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (GST_BUFFER (data))));
+    GST_DEBUG_OBJECT (pad,
+        "Buffer pts %" GST_TIME_FORMAT ", dts %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (GST_BUFFER_PTS (GST_BUFFER_CAST (data))),
+        GST_TIME_ARGS (GST_BUFFER_DTS (GST_BUFFER_CAST (data))));
     /* If an EOS went through, a buffer would be invalid */
     fail_if (consist->eos, "Buffer received after EOS");
     /* Buffers need to be preceded by a segment event */
@@ -58,6 +74,9 @@
     GST_DEBUG_OBJECT (pad, "%s", GST_EVENT_TYPE_NAME (event));
     switch (GST_EVENT_TYPE (event)) {
       case GST_EVENT_FLUSH_START:
+        /* getting two flush_start in a row seems to be okay
+           fail_if (consist->flushing, "Received another FLUSH_START");
+         */
         consist->flushing = TRUE;
         break;
       case GST_EVENT_FLUSH_STOP:
@@ -65,9 +84,17 @@
         fail_unless (consist->flushing,
             "Received a FLUSH_STOP without a FLUSH_START");
         fail_if (consist->eos, "Received a FLUSH_STOP after an EOS");
-        consist->flushing = FALSE;
+        consist->flushing = consist->expect_flush = FALSE;
+        break;
+      case GST_EVENT_STREAM_START:
+      case GST_EVENT_STREAM_CONFIG:
+      case GST_EVENT_CAPS:
+        /* ok to have these before segment event */
+        /* FIXME check order more precisely, if so spec'ed somehow ? */
         break;
       case GST_EVENT_SEGMENT:
+        fail_if ((consist->expect_flush && consist->flushing),
+            "Received SEGMENT while in a flushing seek");
         consist->segment = TRUE;
         consist->eos = FALSE;
         break;
@@ -94,6 +121,75 @@
   return TRUE;
 }
 
+static gboolean
+sink_pad_data_cb (GstPad * pad, GstPadProbeInfo * info,
+    GstStreamConsistency * consist)
+{
+  GstMiniObject *data = GST_PAD_PROBE_INFO_DATA (info);
+
+  GST_DEBUG_OBJECT (pad, "%p: %d %d %d %d", consist, consist->flushing,
+      consist->segment, consist->eos, consist->expect_flush);
+
+  if (GST_IS_BUFFER (data)) {
+    GST_DEBUG_OBJECT (pad, "Buffer %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (GST_BUFFER (data))));
+    /* If an EOS went through, a buffer would be invalid */
+    fail_if (consist->eos, "Buffer received after EOS");
+    /* Buffers need to be preceded by a segment event */
+    fail_unless (consist->segment, "Buffer received without segment");
+  } else if (GST_IS_EVENT (data)) {
+    GstEvent *event = (GstEvent *) data;
+
+    GST_DEBUG_OBJECT (pad, "%s", GST_EVENT_TYPE_NAME (event));
+    switch (GST_EVENT_TYPE (event)) {
+      case GST_EVENT_SEEK:
+      {
+        GstSeekFlags flags;
+
+        gst_event_parse_seek (event, NULL, NULL, &flags, NULL, NULL, NULL,
+            NULL);
+        consist->expect_flush =
+            ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH);
+        break;
+      }
+      case GST_EVENT_SEGMENT:
+        fail_if ((consist->expect_flush && consist->flushing),
+            "Received SEGMENT while in a flushing seek");
+        consist->segment = TRUE;
+        consist->eos = FALSE;
+        break;
+      default:
+        /* FIXME : Figure out what to do for other events */
+        break;
+    }
+  }
+
+  return TRUE;
+}
+
+static void
+add_pad (GstStreamConsistency * consist, GstPad * pad)
+{
+  GstStreamConsistencyProbe *p;
+  GstPadDirection dir;
+
+  p = g_new0 (GstStreamConsistencyProbe, 1);
+  p->pad = g_object_ref (pad);
+  dir = gst_pad_get_direction (pad);
+  if (dir == GST_PAD_SRC) {
+
+    p->probeid =
+        gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
+        (GstPadProbeCallback) source_pad_data_cb, consist, NULL);
+
+  } else if (dir == GST_PAD_SINK) {
+    p->probeid =
+        gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
+        (GstPadProbeCallback) sink_pad_data_cb, consist, NULL);
+  }
+  consist->pads = g_list_prepend (consist->pads, p);
+}
+
 /**
  * gst_consistency_checker_new:
  * @pad: The #GstPad on which the dataflow will be checked.
@@ -101,13 +197,10 @@
  * Sets up a data probe on the given pad which will raise assertions if the
  * data flow is inconsistent.
  *
- * Currently only works for source pads.
- *
  * Returns: A #GstStreamConsistency structure used to track data flow.
  *
  * Since: 0.10.24
  */
-
 GstStreamConsistency *
 gst_consistency_checker_new (GstPad * pad)
 {
@@ -116,15 +209,38 @@
   g_return_val_if_fail (pad != NULL, NULL);
 
   consist = g_new0 (GstStreamConsistency, 1);
-  consist->pad = g_object_ref (pad);
-  consist->probeid =
-      gst_pad_add_probe (pad, GST_PROBE_TYPE_DATA,
-      (GstPadProbeCallback) source_pad_data_cb, consist, NULL);
 
+  if (!consist->pads) {
+    consist->parent = GST_OBJECT_PARENT (pad);
+  }
+  add_pad (consist, pad);
   return consist;
 }
 
 /**
+ * gst_consistency_checker_add_pad:
+ * @consist: The #GstStreamConsistency handle
+ * @pad: The #GstPad on which the dataflow will be checked.
+ *
+ * Sets up a data probe on the given pad which will raise assertions if the
+ * data flow is inconsistent.
+ *
+ * Returns: %TRUE if the pad was added
+ *
+ * Since: 0.10.37
+ */
+gboolean
+gst_consistency_checker_add_pad (GstStreamConsistency * consist, GstPad * pad)
+{
+  g_return_val_if_fail (consist != NULL, FALSE);
+  g_return_val_if_fail (pad != NULL, FALSE);
+  g_return_val_if_fail (GST_OBJECT_PARENT (pad) == consist->parent, FALSE);
+
+  add_pad (consist, pad);
+  return TRUE;
+}
+
+/**
  * gst_consistency_checker_reset:
  * @consist: The #GstStreamConsistency to reset.
  *
@@ -145,7 +261,7 @@
  * gst_consistency_checker_free:
  * @consist: The #GstStreamConsistency to free.
  *
- * Frees the allocated data and probe associated with @consist.
+ * Frees the allocated data and probes associated with @consist.
  *
  * Since: 0.10.24
  */
@@ -153,8 +269,16 @@
 void
 gst_consistency_checker_free (GstStreamConsistency * consist)
 {
-  /* Remove the data probe */
-  gst_pad_remove_probe (consist->pad, consist->probeid);
-  g_object_unref (consist->pad);
+  GList *node;
+  GstStreamConsistencyProbe *p;
+
+  /* Remove the data probes */
+  for (node = consist->pads; node; node = g_list_next (node)) {
+    p = (GstStreamConsistencyProbe *) node->data;
+    gst_pad_remove_probe (p->pad, p->probeid);
+    g_object_unref (p->pad);
+    g_free (p);
+  }
+  g_list_free (consist->pads);
   g_free (consist);
 }
diff --git a/libs/gst/check/gstconsistencychecker.h b/libs/gst/check/gstconsistencychecker.h
index ec88af7..4cbf3f8 100644
--- a/libs/gst/check/gstconsistencychecker.h
+++ b/libs/gst/check/gstconsistencychecker.h
@@ -37,11 +37,13 @@
 typedef struct _GstStreamConsistency GstStreamConsistency;
 
 
-GstStreamConsistency * gst_consistency_checker_new   (GstPad * pad);
+GstStreamConsistency * gst_consistency_checker_new     (GstPad * pad);
+gboolean               gst_consistency_checker_add_pad (GstStreamConsistency * consist,
+                                                        GstPad * pad);
 
-void                   gst_consistency_checker_reset (GstStreamConsistency * consist);
+void                   gst_consistency_checker_reset   (GstStreamConsistency * consist);
 
-void                   gst_consistency_checker_free  (GstStreamConsistency * consist);
+void                   gst_consistency_checker_free    (GstStreamConsistency * consist);
 
 G_END_DECLS
 
diff --git a/libs/gst/check/libcheck/Makefile.in b/libs/gst/check/libcheck/Makefile.in
index 7601fa9..df73417 100644
--- a/libs/gst/check/libcheck/Makefile.in
+++ b/libs/gst/check/libcheck/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +17,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -94,8 +111,8 @@
 am__objects_2 =
 am_libcheckinternal_la_OBJECTS = $(am__objects_1) $(am__objects_2)
 libcheckinternal_la_OBJECTS = $(am_libcheckinternal_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libcheckinternal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -111,24 +128,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libcheckinternal_la_SOURCES)
 DIST_SOURCES = $(libcheckinternal_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -186,10 +208,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -202,10 +226,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -219,7 +243,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -236,6 +259,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -251,7 +278,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -284,6 +310,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -339,6 +366,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -372,7 +400,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -470,7 +497,7 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libcheckinternal.la: $(libcheckinternal_la_OBJECTS) $(libcheckinternal_la_DEPENDENCIES) 
+libcheckinternal.la: $(libcheckinternal_la_OBJECTS) $(libcheckinternal_la_DEPENDENCIES) $(EXTRA_libcheckinternal_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libcheckinternal_la_LINK)  $(libcheckinternal_la_OBJECTS) $(libcheckinternal_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -492,98 +519,86 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libcheckinternal_la-check.lo: check.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check.Tpo -c -o libcheckinternal_la-check.lo `test -f 'check.c' || echo '$(srcdir)/'`check.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check.Tpo $(DEPDIR)/libcheckinternal_la-check.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check.c' object='libcheckinternal_la-check.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check.c' object='libcheckinternal_la-check.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check.lo `test -f 'check.c' || echo '$(srcdir)/'`check.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check.lo `test -f 'check.c' || echo '$(srcdir)/'`check.c
 
 libcheckinternal_la-check_error.lo: check_error.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_error.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_error.Tpo -c -o libcheckinternal_la-check_error.lo `test -f 'check_error.c' || echo '$(srcdir)/'`check_error.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_error.Tpo $(DEPDIR)/libcheckinternal_la-check_error.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_error.c' object='libcheckinternal_la-check_error.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_error.c' object='libcheckinternal_la-check_error.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_error.lo `test -f 'check_error.c' || echo '$(srcdir)/'`check_error.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_error.lo `test -f 'check_error.c' || echo '$(srcdir)/'`check_error.c
 
 libcheckinternal_la-check_list.lo: check_list.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_list.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_list.Tpo -c -o libcheckinternal_la-check_list.lo `test -f 'check_list.c' || echo '$(srcdir)/'`check_list.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_list.Tpo $(DEPDIR)/libcheckinternal_la-check_list.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_list.c' object='libcheckinternal_la-check_list.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_list.c' object='libcheckinternal_la-check_list.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_list.lo `test -f 'check_list.c' || echo '$(srcdir)/'`check_list.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_list.lo `test -f 'check_list.c' || echo '$(srcdir)/'`check_list.c
 
 libcheckinternal_la-check_log.lo: check_log.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_log.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_log.Tpo -c -o libcheckinternal_la-check_log.lo `test -f 'check_log.c' || echo '$(srcdir)/'`check_log.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_log.Tpo $(DEPDIR)/libcheckinternal_la-check_log.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_log.c' object='libcheckinternal_la-check_log.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_log.c' object='libcheckinternal_la-check_log.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_log.lo `test -f 'check_log.c' || echo '$(srcdir)/'`check_log.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_log.lo `test -f 'check_log.c' || echo '$(srcdir)/'`check_log.c
 
 libcheckinternal_la-check_msg.lo: check_msg.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_msg.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_msg.Tpo -c -o libcheckinternal_la-check_msg.lo `test -f 'check_msg.c' || echo '$(srcdir)/'`check_msg.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_msg.Tpo $(DEPDIR)/libcheckinternal_la-check_msg.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_msg.c' object='libcheckinternal_la-check_msg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_msg.c' object='libcheckinternal_la-check_msg.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_msg.lo `test -f 'check_msg.c' || echo '$(srcdir)/'`check_msg.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_msg.lo `test -f 'check_msg.c' || echo '$(srcdir)/'`check_msg.c
 
 libcheckinternal_la-check_pack.lo: check_pack.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_pack.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_pack.Tpo -c -o libcheckinternal_la-check_pack.lo `test -f 'check_pack.c' || echo '$(srcdir)/'`check_pack.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_pack.Tpo $(DEPDIR)/libcheckinternal_la-check_pack.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_pack.c' object='libcheckinternal_la-check_pack.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_pack.c' object='libcheckinternal_la-check_pack.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_pack.lo `test -f 'check_pack.c' || echo '$(srcdir)/'`check_pack.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_pack.lo `test -f 'check_pack.c' || echo '$(srcdir)/'`check_pack.c
 
 libcheckinternal_la-check_print.lo: check_print.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_print.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_print.Tpo -c -o libcheckinternal_la-check_print.lo `test -f 'check_print.c' || echo '$(srcdir)/'`check_print.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_print.Tpo $(DEPDIR)/libcheckinternal_la-check_print.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_print.c' object='libcheckinternal_la-check_print.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_print.c' object='libcheckinternal_la-check_print.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_print.lo `test -f 'check_print.c' || echo '$(srcdir)/'`check_print.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_print.lo `test -f 'check_print.c' || echo '$(srcdir)/'`check_print.c
 
 libcheckinternal_la-check_run.lo: check_run.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_run.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_run.Tpo -c -o libcheckinternal_la-check_run.lo `test -f 'check_run.c' || echo '$(srcdir)/'`check_run.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_run.Tpo $(DEPDIR)/libcheckinternal_la-check_run.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_run.c' object='libcheckinternal_la-check_run.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_run.c' object='libcheckinternal_la-check_run.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_run.lo `test -f 'check_run.c' || echo '$(srcdir)/'`check_run.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_run.lo `test -f 'check_run.c' || echo '$(srcdir)/'`check_run.c
 
 libcheckinternal_la-check_str.lo: check_str.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -MT libcheckinternal_la-check_str.lo -MD -MP -MF $(DEPDIR)/libcheckinternal_la-check_str.Tpo -c -o libcheckinternal_la-check_str.lo `test -f 'check_str.c' || echo '$(srcdir)/'`check_str.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcheckinternal_la-check_str.Tpo $(DEPDIR)/libcheckinternal_la-check_str.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='check_str.c' object='libcheckinternal_la-check_str.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='check_str.c' object='libcheckinternal_la-check_str.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_str.lo `test -f 'check_str.c' || echo '$(srcdir)/'`check_str.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcheckinternal_la_CFLAGS) $(CFLAGS) -c -o libcheckinternal_la-check_str.lo `test -f 'check_str.c' || echo '$(srcdir)/'`check_str.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -687,10 +702,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/libs/gst/check/libcheck/check.h b/libs/gst/check/libcheck/check.h
index afb42f6..75ebdde 100644
--- a/libs/gst/check/libcheck/check.h
+++ b/libs/gst/check/libcheck/check.h
@@ -232,7 +232,7 @@
         "Failure '"#expr"' occured" , ## __VA_ARGS__, NULL)
 
 /* Always fail */
-#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed" , ## __VA_ARGS__, NULL)
+#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed"  __VA_ARGS__, NULL)
 
 /* Non macro version of #fail_unless, with more complicated interface */
 void CK_EXPORT _fail_unless (int result, const char *file,
diff --git a/libs/gst/check/libcheck/check.h.in b/libs/gst/check/libcheck/check.h.in
index 231fdbb..3ed1acd 100644
--- a/libs/gst/check/libcheck/check.h.in
+++ b/libs/gst/check/libcheck/check.h.in
@@ -232,7 +232,7 @@
         "Failure '"#expr"' occured" , ## __VA_ARGS__, NULL)
 
 /* Always fail */
-#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed" , ## __VA_ARGS__, NULL)
+#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed"  __VA_ARGS__, NULL)
 
 /* Non macro version of #fail_unless, with more complicated interface */
 void CK_EXPORT _fail_unless (int result, const char *file,
diff --git a/libs/gst/controller/Makefile.am b/libs/gst/controller/Makefile.am
index 7a28ee7..3ccf92a 100644
--- a/libs/gst/controller/Makefile.am
+++ b/libs/gst/controller/Makefile.am
@@ -1,61 +1,58 @@
-lib_LTLIBRARIES = libgstcontroller-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstcontroller-@GST_API_VERSION@.la
 
-libgstcontroller_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/controller
-libgstcontroller_@GST_MAJORMINOR@_include_HEADERS = \
-	gstcontroller.h \
-	gstcontrolsource.h \
+libgstcontroller_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/controller
+libgstcontroller_@GST_API_VERSION@_include_HEADERS = \
+	gstargbcontrolbinding.h \
+	gstdirectcontrolbinding.h \
+	gsttimedvaluecontrolsource.h \
 	gstinterpolationcontrolsource.h \
+	gsttriggercontrolsource.h \
 	gstlfocontrolsource.h
 
-noinst_HEADERS = \
-	gstcontrollerprivate.h \
-	gstinterpolationcontrolsourceprivate.h \
-	gstlfocontrolsourceprivate.h
-
-libgstcontroller_@GST_MAJORMINOR@_la_SOURCES = \
-	lib.c \
-	gstcontroller.c \
-	gstinterpolation.c \
-	gsthelper.c \
-	gstcontrolsource.c \
+libgstcontroller_@GST_API_VERSION@_la_SOURCES = \
+	gstargbcontrolbinding.c \
+	gstdirectcontrolbinding.c \
+	gsttimedvaluecontrolsource.c \
 	gstinterpolationcontrolsource.c \
+	gsttriggercontrolsource.c \
 	gstlfocontrolsource.c
 
-libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstcontroller_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) $(LIBM)
-libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstcontroller_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
+libgstcontroller_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) $(LIBM)
+libgstcontroller_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 CLEANFILES = *.gcno *.gcda *.gcov
 
-%.c.gcov: .libs/libgstcontroller_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstcontroller_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstcontroller_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/controller \
-	 -:HEADERS $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS) \
+	 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
+	 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
 if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstController-@GST_MAJORMINOR@.gir
+BUILT_GIRSOURCES = GstController-@GST_API_VERSION@.gir
 
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/controller/%',$(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS))
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_la_SOURCES))
+gir_cincludes=$(patsubst %,--c-include='gst/controller/%',$(libgstcontroller_@GST_API_VERSION@_include_HEADERS))
 
-GstController-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_MAJORMINOR@.la
+GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstController \
-		--nsversion=@GST_MAJORMINOR@ \
+		--nsversion=@GST_API_VERSION@ \
+		--warn-all \
 		--strip-prefix=Gst \
 		-DGST_USE_UNSTABLE_API \
 		-I$(top_srcdir) \
@@ -65,12 +62,12 @@
 		$(gir_cincludes) \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-		--library=libgstcontroller-0.11.la \
-		--include=Gst-0.11 \
+		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+		--library=libgstcontroller-@GST_API_VERSION@.la \
+		--include=Gst-@GST_API_VERSION@ \
 		--libtool="$(top_builddir)/libtool" \
-		--pkg gstreamer-@GST_MAJORMINOR@ \
-		--pkg-export gstreamer-controller-@GST_MAJORMINOR@ \
+		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg-export gstreamer-controller-@GST_API_VERSION@ \
 		--add-init-section="gst_init(NULL,NULL);" \
 		--output $@ \
 		$(gir_headers) \
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index f4d214d..3c71914 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,8 +55,8 @@
 host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/controller
-DIST_COMMON = $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -103,30 +120,34 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 	"$(DESTDIR)$(typelibsdir)" \
-	"$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)"
+	"$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstcontroller_@GST_MAJORMINOR@_la_DEPENDENCIES =  \
+libgstcontroller_@GST_API_VERSION@_la_DEPENDENCIES =  \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstcontroller_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstcontroller_@GST_MAJORMINOR@_la-lib.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo \
-	libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo
-libgstcontroller_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstcontroller_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am_libgstcontroller_@GST_API_VERSION@_la_OBJECTS = libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo \
+	libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo \
+	libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo \
+	libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo \
+	libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo \
+	libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo
+libgstcontroller_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstcontroller_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libgstcontroller_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
+libgstcontroller_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
 	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
-	$(CCLD) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) \
-	$(CFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS) \
+	$(CCLD) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
+	$(CFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
 	$(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -138,27 +159,31 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES)
+SOURCES = $(libgstcontroller_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libgstcontroller_@GST_API_VERSION@_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS) \
-	$(noinst_HEADERS)
+HEADERS = $(libgstcontroller_@GST_API_VERSION@_include_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -215,10 +240,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -231,10 +258,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -248,7 +275,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -265,6 +291,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -280,7 +310,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -313,6 +342,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -368,6 +398,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -401,7 +432,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -422,36 +452,32 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstcontroller-@GST_MAJORMINOR@.la
-libgstcontroller_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/controller
-libgstcontroller_@GST_MAJORMINOR@_include_HEADERS = \
-	gstcontroller.h \
-	gstcontrolsource.h \
+lib_LTLIBRARIES = libgstcontroller-@GST_API_VERSION@.la
+libgstcontroller_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/controller
+libgstcontroller_@GST_API_VERSION@_include_HEADERS = \
+	gstargbcontrolbinding.h \
+	gstdirectcontrolbinding.h \
+	gsttimedvaluecontrolsource.h \
 	gstinterpolationcontrolsource.h \
+	gsttriggercontrolsource.h \
 	gstlfocontrolsource.h
 
-noinst_HEADERS = \
-	gstcontrollerprivate.h \
-	gstinterpolationcontrolsourceprivate.h \
-	gstlfocontrolsourceprivate.h
-
-libgstcontroller_@GST_MAJORMINOR@_la_SOURCES = \
-	lib.c \
-	gstcontroller.c \
-	gstinterpolation.c \
-	gsthelper.c \
-	gstcontrolsource.c \
+libgstcontroller_@GST_API_VERSION@_la_SOURCES = \
+	gstargbcontrolbinding.c \
+	gstdirectcontrolbinding.c \
+	gsttimedvaluecontrolsource.c \
 	gstinterpolationcontrolsource.c \
+	gsttriggercontrolsource.c \
 	gstlfocontrolsource.c
 
-libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstcontroller_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) $(LIBM)
-libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstcontroller_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS)
+libgstcontroller_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) $(LIBM)
+libgstcontroller_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 CLEANFILES = *.gcno *.gcda *.gcov $(am__append_1)
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstController-@GST_MAJORMINOR@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/controller/%',$(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstController-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst %,--c-include='gst/controller/%',$(libgstcontroller_@GST_API_VERSION@_include_HEADERS))
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
 # install anything - we need to install inside our prefix.
@@ -495,7 +521,6 @@
 $(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -503,6 +528,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -524,8 +551,8 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstcontroller-@GST_MAJORMINOR@.la: $(libgstcontroller_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcontroller_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstcontroller_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstcontroller_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcontroller_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
+libgstcontroller-@GST_API_VERSION@.la: $(libgstcontroller_@GST_API_VERSION@_la_OBJECTS) $(libgstcontroller_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstcontroller_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstcontroller_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstcontroller_@GST_API_VERSION@_la_OBJECTS) $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -533,93 +560,75 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-lib.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstcontroller_@GST_MAJORMINOR@_la-lib.lo: lib.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-lib.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-lib.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-lib.lo `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-lib.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-lib.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='lib.c' object='libgstcontroller_@GST_MAJORMINOR@_la-lib.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo: gstargbcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo `test -f 'gstargbcontrolbinding.c' || echo '$(srcdir)/'`gstargbcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstargbcontrolbinding.c' object='libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-lib.lo `test -f 'lib.c' || echo '$(srcdir)/'`lib.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gstargbcontrolbinding.lo `test -f 'gstargbcontrolbinding.c' || echo '$(srcdir)/'`gstargbcontrolbinding.c
 
-libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo: gstcontroller.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo `test -f 'gstcontroller.c' || echo '$(srcdir)/'`gstcontroller.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcontroller.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo: gstdirectcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo `test -f 'gstdirectcontrolbinding.c' || echo '$(srcdir)/'`gstdirectcontrolbinding.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdirectcontrolbinding.c' object='libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstcontroller.lo `test -f 'gstcontroller.c' || echo '$(srcdir)/'`gstcontroller.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gstdirectcontrolbinding.lo `test -f 'gstdirectcontrolbinding.c' || echo '$(srcdir)/'`gstdirectcontrolbinding.c
 
-libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo: gstinterpolation.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo `test -f 'gstinterpolation.c' || echo '$(srcdir)/'`gstinterpolation.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstinterpolation.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo: gsttimedvaluecontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo `test -f 'gsttimedvaluecontrolsource.c' || echo '$(srcdir)/'`gsttimedvaluecontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttimedvaluecontrolsource.c' object='libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolation.lo `test -f 'gstinterpolation.c' || echo '$(srcdir)/'`gstinterpolation.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gsttimedvaluecontrolsource.lo `test -f 'gsttimedvaluecontrolsource.c' || echo '$(srcdir)/'`gsttimedvaluecontrolsource.c
 
-libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo: gsthelper.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo `test -f 'gsthelper.c' || echo '$(srcdir)/'`gsthelper.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsthelper.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo: gstinterpolationcontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo `test -f 'gstinterpolationcontrolsource.c' || echo '$(srcdir)/'`gstinterpolationcontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstinterpolationcontrolsource.c' object='libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gsthelper.lo `test -f 'gsthelper.c' || echo '$(srcdir)/'`gsthelper.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gstinterpolationcontrolsource.lo `test -f 'gstinterpolationcontrolsource.c' || echo '$(srcdir)/'`gstinterpolationcontrolsource.c
 
-libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo: gstcontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo `test -f 'gstcontrolsource.c' || echo '$(srcdir)/'`gstcontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcontrolsource.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo: gsttriggercontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo `test -f 'gsttriggercontrolsource.c' || echo '$(srcdir)/'`gsttriggercontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttriggercontrolsource.c' object='libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstcontrolsource.lo `test -f 'gstcontrolsource.c' || echo '$(srcdir)/'`gstcontrolsource.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gsttriggercontrolsource.lo `test -f 'gsttriggercontrolsource.c' || echo '$(srcdir)/'`gsttriggercontrolsource.c
 
-libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo: gstinterpolationcontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo `test -f 'gstinterpolationcontrolsource.c' || echo '$(srcdir)/'`gstinterpolationcontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstinterpolationcontrolsource.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
+libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo: gstlfocontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.Tpo -c -o libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo `test -f 'gstlfocontrolsource.c' || echo '$(srcdir)/'`gstlfocontrolsource.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstlfocontrolsource.c' object='libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstinterpolationcontrolsource.lo `test -f 'gstinterpolationcontrolsource.c' || echo '$(srcdir)/'`gstinterpolationcontrolsource.c
-
-libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo: gstlfocontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo -MD -MP -MF $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.Tpo -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo `test -f 'gstlfocontrolsource.c' || echo '$(srcdir)/'`gstlfocontrolsource.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.Tpo $(DEPDIR)/libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstlfocontrolsource.c' object='libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_MAJORMINOR@_la-gstlfocontrolsource.lo `test -f 'gstlfocontrolsource.c' || echo '$(srcdir)/'`gstlfocontrolsource.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstcontroller_@GST_API_VERSION@_la-gstlfocontrolsource.lo `test -f 'gstlfocontrolsource.c' || echo '$(srcdir)/'`gstlfocontrolsource.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -628,8 +637,11 @@
 	-rm -rf .libs _libs
 install-girDATA: $(gir_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -643,13 +655,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(girdir)" && rm -f $$files
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -663,29 +676,28 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
-install-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS: $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS)
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstcontroller_@GST_API_VERSION@_includeHEADERS: $(libgstcontroller_@GST_API_VERSION@_include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstcontroller_@GST_MAJORMINOR@_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)"
-	@list='$(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstcontroller_@GST_MAJORMINOR@_includedir)" || list=; \
+	@list='$(libgstcontroller_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstcontroller_@GST_API_VERSION@_includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)" || exit $$?; \
 	done
 
-uninstall-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS:
+uninstall-libgstcontroller_@GST_API_VERSION@_includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstcontroller_@GST_MAJORMINOR@_includedir)" || list=; \
+	@list='$(libgstcontroller_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstcontroller_@GST_API_VERSION@_includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -773,7 +785,7 @@
 check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstcontroller_@GST_MAJORMINOR@_includedir)"; do \
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstcontroller_@GST_API_VERSION@_includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -786,10 +798,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -826,7 +843,7 @@
 info-am:
 
 install-data-am: install-girDATA \
-	install-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS \
+	install-libgstcontroller_@GST_API_VERSION@_includeHEADERS \
 	install-typelibsDATA
 
 install-dvi: install-dvi-am
@@ -874,7 +891,7 @@
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS \
+	uninstall-libgstcontroller_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
 
 .MAKE: install-am install-strip
@@ -887,7 +904,7 @@
 	install-dvi-am install-exec install-exec-am install-girDATA \
 	install-html install-html-am install-info install-info-am \
 	install-libLTLIBRARIES \
-	install-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS \
+	install-libgstcontroller_@GST_API_VERSION@_includeHEADERS \
 	install-man install-pdf install-pdf-am install-ps \
 	install-ps-am install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs maintainer-clean \
@@ -895,32 +912,33 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
-	uninstall-libgstcontroller_@GST_MAJORMINOR@_includeHEADERS \
+	uninstall-libgstcontroller_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
 
 
-%.c.gcov: .libs/libgstcontroller_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstcontroller_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcontroller_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstcontroller_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcontroller_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstcontroller_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/controller \
-	 -:HEADERS $(libgstcontroller_@GST_MAJORMINOR@_include_HEADERS) \
+	 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
+	 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
-@HAVE_INTROSPECTION_TRUE@GstController-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_MAJORMINOR@.la
+@HAVE_INTROSPECTION_TRUE@GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstController \
-@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
 @HAVE_INTROSPECTION_TRUE@		-DGST_USE_UNSTABLE_API \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir) \
@@ -930,12 +948,12 @@
 @HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(top_builddir)/gst \
 @HAVE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/gst \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--library=libgstcontroller-0.11.la \
-@HAVE_INTROSPECTION_TRUE@		--include=Gst-0.11 \
+@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstcontroller-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
-@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-controller-@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export gstreamer-controller-@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
 @HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
diff --git a/libs/gst/controller/gstargbcontrolbinding.c b/libs/gst/controller/gstargbcontrolbinding.c
new file mode 100644
index 0000000..829b616
--- /dev/null
+++ b/libs/gst/controller/gstargbcontrolbinding.c
@@ -0,0 +1,407 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstargbcontrolbinding.c: Attachment for multiple control sources to gargb
+ *                            properties
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/**
+ * SECTION:gstargbcontrolbinding
+ * @short_description: attachment for control source sources to argb properties
+ *
+ * A value mapping object that attaches multiple control sources to a guint
+ * gobject properties representing a color.
+ */
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include "gstargbcontrolbinding.h"
+
+#include <math.h>
+
+#define GST_CAT_DEFAULT control_binding_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+static GObject *gst_argb_control_binding_constructor (GType type,
+    guint n_construct_params, GObjectConstructParam * construct_params);
+static void gst_argb_control_binding_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_argb_control_binding_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
+static void gst_argb_control_binding_dispose (GObject * object);
+static void gst_argb_control_binding_finalize (GObject * object);
+
+static gboolean gst_argb_control_binding_sync_values (GstControlBinding * _self,
+    GstObject * object, GstClockTime timestamp, GstClockTime last_sync);
+static GValue *gst_argb_control_binding_get_value (GstControlBinding * _self,
+    GstClockTime timestamp);
+static gboolean gst_argb_control_binding_get_value_array (GstControlBinding *
+    _self, GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values);
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gstargbcontrolbinding", 0, \
+      "dynamic parameter control source attachment");
+
+G_DEFINE_TYPE_WITH_CODE (GstARGBControlBinding, gst_argb_control_binding,
+    GST_TYPE_CONTROL_BINDING, _do_init);
+
+enum
+{
+  PROP_0,
+  PROP_CS_A,
+  PROP_CS_R,
+  PROP_CS_G,
+  PROP_CS_B,
+  PROP_LAST
+};
+
+static GParamSpec *properties[PROP_LAST];
+
+/* vmethods */
+
+static void
+gst_argb_control_binding_class_init (GstARGBControlBindingClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GstControlBindingClass *control_binding_class =
+      GST_CONTROL_BINDING_CLASS (klass);
+
+  gobject_class->constructor = gst_argb_control_binding_constructor;
+  gobject_class->set_property = gst_argb_control_binding_set_property;
+  gobject_class->get_property = gst_argb_control_binding_get_property;
+  gobject_class->dispose = gst_argb_control_binding_dispose;
+  gobject_class->finalize = gst_argb_control_binding_finalize;
+
+  control_binding_class->sync_values = gst_argb_control_binding_sync_values;
+  control_binding_class->get_value = gst_argb_control_binding_get_value;
+  control_binding_class->get_value_array =
+      gst_argb_control_binding_get_value_array;
+
+  properties[PROP_CS_A] =
+      g_param_spec_object ("control-source-a", "ControlSource A",
+      "The control source for the alpha color component",
+      GST_TYPE_CONTROL_SOURCE,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  properties[PROP_CS_R] =
+      g_param_spec_object ("control-source-r", "ControlSource R",
+      "The control source for the red color component",
+      GST_TYPE_CONTROL_SOURCE,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  properties[PROP_CS_G] =
+      g_param_spec_object ("control-source-g", "ControlSource G",
+      "The control source for the green color component",
+      GST_TYPE_CONTROL_SOURCE,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  properties[PROP_CS_B] =
+      g_param_spec_object ("control-source-b", "ControlSource B",
+      "The control source for the blue color component",
+      GST_TYPE_CONTROL_SOURCE,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, properties);
+}
+
+static void
+gst_argb_control_binding_init (GstARGBControlBinding * self)
+{
+}
+
+static GObject *
+gst_argb_control_binding_constructor (GType type, guint n_construct_params,
+    GObjectConstructParam * construct_params)
+{
+  GstARGBControlBinding *self;
+
+  self =
+      GST_ARGB_CONTROL_BINDING (G_OBJECT_CLASS
+      (gst_argb_control_binding_parent_class)
+      ->constructor (type, n_construct_params, construct_params));
+
+  if (GST_CONTROL_BINDING_PSPEC (self)) {
+    if (!(G_PARAM_SPEC_VALUE_TYPE (GST_CONTROL_BINDING_PSPEC (self)) ==
+            G_TYPE_UINT)) {
+      GST_WARNING ("can't bind to paramspec type '%s'",
+          G_PARAM_SPEC_TYPE_NAME (GST_CONTROL_BINDING_PSPEC (self)));
+      GST_CONTROL_BINDING_PSPEC (self) = NULL;
+    } else {
+      g_value_init (&self->cur_value, G_TYPE_UINT);
+    }
+  }
+  return (GObject *) self;
+}
+
+static void
+gst_argb_control_binding_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_CS_A:
+      self->cs_a = g_value_dup_object (value);
+      break;
+    case PROP_CS_R:
+      self->cs_r = g_value_dup_object (value);
+      break;
+    case PROP_CS_G:
+      self->cs_r = g_value_dup_object (value);
+      break;
+    case PROP_CS_B:
+      self->cs_g = g_value_dup_object (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_argb_control_binding_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_CS_A:
+      g_value_set_object (value, self->cs_a);
+      break;
+    case PROP_CS_R:
+      g_value_set_object (value, self->cs_r);
+      break;
+    case PROP_CS_G:
+      g_value_set_object (value, self->cs_g);
+      break;
+    case PROP_CS_B:
+      g_value_set_object (value, self->cs_b);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_argb_control_binding_dispose (GObject * object)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (object);
+
+  if (self->cs_a)
+    gst_object_replace ((GstObject **) & self->cs_a, NULL);
+  if (self->cs_r)
+    gst_object_replace ((GstObject **) & self->cs_r, NULL);
+  if (self->cs_g)
+    gst_object_replace ((GstObject **) & self->cs_g, NULL);
+  if (self->cs_b)
+    gst_object_replace ((GstObject **) & self->cs_b, NULL);
+}
+
+static void
+gst_argb_control_binding_finalize (GObject * object)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (object);
+
+  g_value_unset (&self->cur_value);
+}
+
+static gboolean
+gst_argb_control_binding_sync_values (GstControlBinding * _self,
+    GstObject * object, GstClockTime timestamp, GstClockTime last_sync)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (_self);
+  gdouble src_val_a = 1.0, src_val_r = 0.0, src_val_g = 0.0, src_val_b = 0.0;
+  gboolean ret = TRUE;
+
+  g_return_val_if_fail (GST_IS_ARGB_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  GST_LOG_OBJECT (object, "property '%s' at ts=%" GST_TIME_FORMAT,
+      _self->name, GST_TIME_ARGS (timestamp));
+
+  if (self->cs_a)
+    ret &= gst_control_source_get_value (self->cs_a, timestamp, &src_val_a);
+  if (self->cs_r)
+    ret &= gst_control_source_get_value (self->cs_r, timestamp, &src_val_r);
+  if (self->cs_g)
+    ret &= gst_control_source_get_value (self->cs_g, timestamp, &src_val_g);
+  if (self->cs_b)
+    ret &= gst_control_source_get_value (self->cs_b, timestamp, &src_val_b);
+  if (G_LIKELY (ret)) {
+    guint src_val = (((guint) (CLAMP (src_val_a, 0.0, 1.0) * 255)) << 24) |
+        (((guint) (CLAMP (src_val_r, 0.0, 1.0) * 255)) << 16) |
+        (((guint) (CLAMP (src_val_g, 0.0, 1.0) * 255)) << 8) |
+        ((guint) (CLAMP (src_val_b, 0.0, 1.0) * 255));
+    GST_LOG_OBJECT (object, "  new value 0x%08x", src_val);
+    /* always set the value for first time, but then only if it changed
+     * this should limit g_object_notify invocations.
+     * FIXME: can we detect negative playback rates?
+     */
+    if ((timestamp < last_sync) || (src_val != self->last_value)) {
+      GValue *dst_val = &self->cur_value;
+
+      g_value_set_uint (dst_val, src_val);
+      /* we can make this faster
+       * http://bugzilla.gnome.org/show_bug.cgi?id=536939
+       */
+      g_object_set_property ((GObject *) object, _self->name, dst_val);
+      self->last_value = src_val;
+    }
+  } else {
+    GST_DEBUG_OBJECT (object, "no control value for param %s", _self->name);
+  }
+  return (ret);
+}
+
+static GValue *
+gst_argb_control_binding_get_value (GstControlBinding * _self,
+    GstClockTime timestamp)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (_self);
+  GValue *dst_val = NULL;
+  gdouble src_val_a = 1.0, src_val_r = 0.0, src_val_g = 0.0, src_val_b = 0.0;
+  gboolean ret = TRUE;
+
+  g_return_val_if_fail (GST_IS_ARGB_CONTROL_BINDING (self), NULL);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  /* get current value via control source */
+  if (self->cs_a)
+    ret &= gst_control_source_get_value (self->cs_a, timestamp, &src_val_a);
+  if (self->cs_r)
+    ret &= gst_control_source_get_value (self->cs_r, timestamp, &src_val_r);
+  if (self->cs_g)
+    ret &= gst_control_source_get_value (self->cs_g, timestamp, &src_val_g);
+  if (self->cs_b)
+    ret &= gst_control_source_get_value (self->cs_b, timestamp, &src_val_b);
+  if (G_LIKELY (ret)) {
+    guint src_val = (((guint) (CLAMP (src_val_a, 0.0, 1.0) * 255)) << 24) |
+        (((guint) (CLAMP (src_val_r, 0.0, 1.0) * 255)) << 16) |
+        (((guint) (CLAMP (src_val_g, 0.0, 1.0) * 255)) << 8) |
+        ((guint) (CLAMP (src_val_b, 0.0, 1.0) * 255));
+    dst_val = g_new0 (GValue, 1);
+    g_value_init (dst_val, G_TYPE_UINT);
+    g_value_set_uint (dst_val, src_val);
+  } else {
+    GST_LOG ("no control value for property %s at ts %" GST_TIME_FORMAT,
+        _self->name, GST_TIME_ARGS (timestamp));
+  }
+
+  return dst_val;
+}
+
+static gboolean
+gst_argb_control_binding_get_value_array (GstControlBinding * _self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values)
+{
+  GstARGBControlBinding *self = GST_ARGB_CONTROL_BINDING (_self);
+  gint i;
+  gdouble *src_val_a = NULL, *src_val_r = NULL, *src_val_g = NULL, *src_val_b =
+      NULL;
+  guint src_val;
+  gboolean ret = TRUE;
+
+  g_return_val_if_fail (GST_IS_ARGB_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
+  g_return_val_if_fail (values, FALSE);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  if (self->cs_a) {
+    src_val_a = g_new0 (gdouble, n_values);
+    ret &= gst_control_source_get_value_array (self->cs_a, timestamp,
+        interval, n_values, src_val_a);
+  }
+  if (self->cs_r) {
+    src_val_r = g_new0 (gdouble, n_values);
+    ret &= gst_control_source_get_value_array (self->cs_r, timestamp,
+        interval, n_values, src_val_r);
+  }
+  if (self->cs_g) {
+    src_val_g = g_new0 (gdouble, n_values);
+    ret &= gst_control_source_get_value_array (self->cs_g, timestamp,
+        interval, n_values, src_val_g);
+  }
+  if (self->cs_b) {
+    src_val_b = g_new0 (gdouble, n_values);
+    ret &= gst_control_source_get_value_array (self->cs_b, timestamp,
+        interval, n_values, src_val_b);
+  }
+  if (G_LIKELY (ret)) {
+    for (i = 0; i < n_values; i++) {
+      gdouble a = 1.0, r = 0.0, g = 0.0, b = 0.0;
+      if (src_val_a && !isnan (src_val_a[i]))
+        a = src_val_a[i];
+      if (src_val_r && !isnan (src_val_r[i]))
+        r = src_val_r[i];
+      if (src_val_g && !isnan (src_val_g[i]))
+        g = src_val_g[i];
+      if (src_val_b && !isnan (src_val_b[i]))
+        b = src_val_b[i];
+      src_val = (((guint) (CLAMP (a, 0.0, 1.0) * 255)) << 24) |
+          (((guint) (CLAMP (r, 0.0, 1.0) * 255)) << 16) |
+          (((guint) (CLAMP (g, 0.0, 1.0) * 255)) << 8) |
+          ((guint) (CLAMP (b, 0.0, 1.0) * 255));
+      g_value_init (&values[i], G_TYPE_UINT);
+      g_value_set_uint (&values[i], src_val);
+    }
+  } else {
+    GST_LOG ("failed to get control value for property %s at ts %"
+        GST_TIME_FORMAT, _self->name, GST_TIME_ARGS (timestamp));
+  }
+  g_free (src_val_a);
+  g_free (src_val_r);
+  g_free (src_val_g);
+  g_free (src_val_b);
+  return ret;
+}
+
+/* functions */
+
+/**
+ * gst_argb_control_binding_new:
+ * @object: the object of the property
+ * @property_name: the property-name to attach the control source
+ * @cs_a: the control source for the alpha channel
+ * @cs_r: the control source for the red channel
+ * @cs_g: the control source for the green channel
+ * @cs_b: the control source for the blue channel
+ *
+ * Create a new control-binding that attaches the given #GstControlSource to the
+ * #GObject property.
+ *
+ * Returns: (transfer floating): the new #GstARGBControlBinding
+ */
+GstControlBinding *
+gst_argb_control_binding_new (GstObject * object, const gchar * property_name,
+    GstControlSource * cs_a, GstControlSource * cs_r, GstControlSource * cs_g,
+    GstControlSource * cs_b)
+{
+  return (GstControlBinding *) g_object_new (GST_TYPE_ARGB_CONTROL_BINDING,
+      "object", object, "name", property_name,
+      "control-source-a", cs_a,
+      "control-source-r", cs_r,
+      "control-source-g", cs_g, "control-source-b", cs_b, NULL);
+}
+
+/* functions */
diff --git a/libs/gst/controller/gstargbcontrolbinding.h b/libs/gst/controller/gstargbcontrolbinding.h
new file mode 100644
index 0000000..26bfc6d
--- /dev/null
+++ b/libs/gst/controller/gstargbcontrolbinding.h
@@ -0,0 +1,98 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstargbcontrolbinding.h: Attachment for multiple control sources to gargb
+ *                            properties
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_ARGB_CONTROL_BINDING_H__
+#define __GST_ARGB_CONTROL_BINDING_H__
+
+#include <gst/gstconfig.h>
+
+#include <glib-object.h>
+
+#include <gst/gstcontrolsource.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_ARGB_CONTROL_BINDING \
+  (gst_argb_control_binding_get_type())
+#define GST_ARGB_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ARGB_CONTROL_BINDING,GstARGBControlBinding))
+#define GST_ARGB_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ARGB_CONTROL_BINDING,GstARGBControlBindingClass))
+#define GST_IS_ARGB_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ARGB_CONTROL_BINDING))
+#define GST_IS_ARGB_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ARGB_CONTROL_BINDING))
+#define GST_ARGB_CONTROL_BINDING_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CONTOL_SOURCE, GstARGBControlBindingClass))
+
+typedef struct _GstARGBControlBinding GstARGBControlBinding;
+typedef struct _GstARGBControlBindingClass GstARGBControlBindingClass;
+
+/**
+ * GstARGBControlBinding:
+ * @name: name of the property of this binding
+ *
+ * The instance structure of #GstARGBControlBinding.
+ */
+struct _GstARGBControlBinding {
+  GstControlBinding parent;
+  
+  /*< private >*/
+  GstControlSource *cs_a;       /* GstControlSources for this property */
+  GstControlSource *cs_r;
+  GstControlSource *cs_g;
+  GstControlSource *cs_b;
+
+  GValue cur_value;
+  guint32 last_value;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstARGBControlBindingClass:
+ * @parent_class: Parent class
+ * @convert: Class method to convert control-values
+ *
+ * The class structure of #GstARGBControlBinding.
+ */
+
+struct _GstARGBControlBindingClass
+{
+  GstControlBindingClass parent_class;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_argb_control_binding_get_type (void);
+
+/* Functions */
+
+GstControlBinding * gst_argb_control_binding_new   (GstObject * object, const gchar * property_name,
+                                                            GstControlSource * cs_a, GstControlSource * cs_r,
+                                                            GstControlSource * cs_g, GstControlSource * cs_b);
+
+G_END_DECLS
+
+#endif /* __GST_ARGB_CONTROL_BINDING_H__ */
diff --git a/libs/gst/controller/gstcontroller.c b/libs/gst/controller/gstcontroller.c
deleted file mode 100644
index 10f3d65..0000000
--- a/libs/gst/controller/gstcontroller.c
+++ /dev/null
@@ -1,959 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstcontroller.c: dynamic parameter control subsystem
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstcontroller
- * @short_description: dynamic parameter control subsystem
- *
- * The controller subsystem offers a lightweight way to adjust gobject
- * properties over stream-time. It works by using time-stamped value pairs that
- * are queued for element-properties. At run-time the elements continously pull
- * values changes for the current stream-time.
- *
- * What needs to be changed in a #GstElement?
- * Very little - it is just two steps to make a plugin controllable!
- * <orderedlist>
- *   <listitem><para>
- *     mark gobject-properties paramspecs that make sense to be controlled,
- *     by GST_PARAM_CONTROLLABLE.
- *   </para></listitem>
- *   <listitem><para>
- *     when processing data (get, chain, loop function) at the beginning call
- *     gst_object_sync_values(element,timestamp).
- *     This will made the controller to update all gobject properties that are under
- *     control with the current values based on timestamp.
- *   </para></listitem>
- * </orderedlist>
- *
- * What needs to be done in applications?
- * Again its not a lot to change.
- * <orderedlist>
- *   <listitem><para>
- *     first put some properties under control, by calling
- *     controller = gst_object_control_properties (object, "prop1", "prop2",...);
- *   </para></listitem>
- *   <listitem><para>
- *     Get a #GstControlSource for the property and set it up.
- *     csource = gst_interpolation_control_source_new ();
- *     gst_interpolation_control_source_set_interpolation_mode(csource, mode);
- *     gst_interpolation_control_source_set (csource,0 * GST_SECOND, value1);
- *     gst_interpolation_control_source_set (csource,1 * GST_SECOND, value2);
- *   </para></listitem>
- *   <listitem><para>
- *     Set the #GstControlSource in the controller.
- *     gst_controller_set_control_source (controller, "prop1", csource);
- *   </para></listitem>
- *   <listitem><para>
- *     start your pipeline
- *   </para></listitem>
- * </orderedlist>
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include "gstcontroller.h"
-#include "gstcontrollerprivate.h"
-#include "gstcontrolsource.h"
-#include "gstinterpolationcontrolsource.h"
-
-#define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
-
-static GObjectClass *parent_class = NULL;
-GQuark priv_gst_controller_key;
-
-/* property ids */
-enum
-{
-  PROP_CONTROL_RATE = 1
-};
-
-struct _GstControllerPrivate
-{
-  GstClockTime control_rate;
-  GstClockTime last_sync;
-};
-
-/* helper */
-
-/*
- * gst_controlled_property_new:
- * @object: for which object the controlled property should be set up
- * @name: the name of the property to be controlled
- *
- * Private method which initializes the fields of a new controlled property
- * structure.
- *
- * Returns: a freshly allocated structure or %NULL
- */
-static GstControlledProperty *
-gst_controlled_property_new (GObject * object, const gchar * name)
-{
-  GstControlledProperty *prop = NULL;
-  GParamSpec *pspec;
-
-  GST_INFO ("trying to put property '%s' under control", name);
-
-  /* check if the object has a property of that name */
-  if ((pspec =
-          g_object_class_find_property (G_OBJECT_GET_CLASS (object), name))) {
-    GST_DEBUG ("  psec->flags : 0x%08x", pspec->flags);
-
-    /* check if this param is witable && controlable && !construct-only */
-    g_return_val_if_fail ((pspec->flags & (G_PARAM_WRITABLE |
-                GST_PARAM_CONTROLLABLE | G_PARAM_CONSTRUCT_ONLY)) ==
-        (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE), NULL);
-
-    if ((prop = g_slice_new (GstControlledProperty))) {
-      prop->pspec = pspec;
-      prop->name = pspec->name;
-      prop->csource = NULL;
-      prop->disabled = FALSE;
-      memset (&prop->last_value, 0, sizeof (GValue));
-      g_value_init (&prop->last_value, G_PARAM_SPEC_VALUE_TYPE (prop->pspec));
-    }
-  } else {
-    GST_WARNING ("class '%s' has no property '%s'", G_OBJECT_TYPE_NAME (object),
-        name);
-  }
-  return prop;
-}
-
-/*
- * gst_controlled_property_free:
- * @prop: the object to free
- *
- * Private method which frees all data allocated by a #GstControlledProperty
- * instance.
- */
-static void
-gst_controlled_property_free (GstControlledProperty * prop)
-{
-  if (prop->csource)
-    g_object_unref (prop->csource);
-  g_value_unset (&prop->last_value);
-  g_slice_free (GstControlledProperty, prop);
-}
-
-/*
- * gst_controller_find_controlled_property:
- * @self: the controller object to search for a property in
- * @name: the gobject property name to look for
- *
- * Searches the list of properties under control.
- *
- * Returns: a #GstControlledProperty object of %NULL if the property is not
- * being controlled.
- */
-static GstControlledProperty *
-gst_controller_find_controlled_property (GstController * self,
-    const gchar * name)
-{
-  GstControlledProperty *prop;
-  GList *node;
-
-  for (node = self->properties; node; node = g_list_next (node)) {
-    prop = node->data;
-    /* FIXME: eventually use GQuark to speed it up */
-    if (!strcmp (prop->name, name)) {
-      return prop;
-    }
-  }
-  GST_DEBUG ("controller does not (yet) manage property '%s'", name);
-
-  return NULL;
-}
-
-/*
- * gst_controller_add_property:
- * @self: the controller object or %NULL if none yet exists
- * @object: object to bind the property
- * @name: name of projecty in @object
- * @ref_existing: pointer to flag that tracks if we need to ref an existing
- *   controller still
- *
- * Creates a new #GstControlledProperty if there is none for property @name yet.
- * In case this is the first controlled propery, it creates the controller as
- * well.
- *
- * Returns: a newly created controller object or reffed existing one with the
- * given property bound.
- */
-static GstController *
-gst_controller_add_property (GstController * self, GObject * object,
-    const gchar * name, gboolean * ref_existing)
-{
-  /* test if this property isn't yet controlled */
-  if (!self || !gst_controller_find_controlled_property (self, name)) {
-    GstControlledProperty *prop;
-
-    /* create GstControlledProperty and add to self->propeties List */
-    if ((prop = gst_controlled_property_new (object, name))) {
-      /* if we don't have a controller object yet, now is the time to create one */
-      if (!self) {
-        self = g_object_newv (GST_TYPE_CONTROLLER, 0, NULL);
-        self->object = g_object_ref (object);
-        /* store the controller */
-        g_object_set_qdata (object, priv_gst_controller_key, self);
-        *ref_existing = FALSE;
-      } else {
-        /* only want one single _ref(), even for multiple properties */
-        if (*ref_existing) {
-          g_object_ref (self);
-          *ref_existing = FALSE;
-          GST_INFO ("returning existing controller");
-        }
-      }
-      self->properties = g_list_prepend (self->properties, prop);
-    }
-  } else {
-    GST_WARNING ("trying to control property %s again", name);
-    if (*ref_existing) {
-      g_object_ref (self);
-      *ref_existing = FALSE;
-    }
-  }
-  return self;
-}
-
-/* methods */
-
-/**
- * gst_controller_new_valist:
- * @object: the object of which some properties should be controlled
- * @var_args: %NULL terminated list of property names that should be controlled
- *
- * Creates a new GstController for the given object's properties
- *
- * Returns: the new controller.
- */
-GstController *
-gst_controller_new_valist (GObject * object, va_list var_args)
-{
-  GstController *self;
-  gboolean ref_existing = TRUE;
-  gchar *name;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  GST_INFO ("setting up a new controller");
-
-  self = g_object_get_qdata (object, priv_gst_controller_key);
-  /* create GstControlledProperty for each property */
-  while ((name = va_arg (var_args, gchar *))) {
-    self = gst_controller_add_property (self, object, name, &ref_existing);
-  }
-  va_end (var_args);
-
-  if (self)
-    GST_INFO ("controller->ref_count=%d", G_OBJECT (self)->ref_count);
-  return self;
-}
-
-/**
- * gst_controller_new_list:
- * @object: the object of which some properties should be controlled
- * @list: list of property names that should be controlled
- *
- * Creates a new GstController for the given object's properties
- *
- * Returns: the new controller.
- */
-GstController *
-gst_controller_new_list (GObject * object, GList * list)
-{
-  GstController *self;
-  gboolean ref_existing = TRUE;
-  gchar *name;
-  GList *node;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  GST_INFO ("setting up a new controller");
-
-  self = g_object_get_qdata (object, priv_gst_controller_key);
-  /* create GstControlledProperty for each property */
-  for (node = list; node; node = g_list_next (node)) {
-    name = (gchar *) node->data;
-    self = gst_controller_add_property (self, object, name, &ref_existing);
-  }
-
-  if (self)
-    GST_INFO ("controller->ref_count=%d", G_OBJECT (self)->ref_count);
-  return self;
-}
-
-/**
- * gst_controller_new:
- * @object: the object of which some properties should be controlled
- * @...: %NULL terminated list of property names that should be controlled
- *
- * Creates a new GstController for the given object's properties
- *
- * Returns: the new controller.
- */
-GstController *
-gst_controller_new (GObject * object, ...)
-{
-  GstController *self;
-  va_list var_args;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  va_start (var_args, object);
-  self = gst_controller_new_valist (object, var_args);
-  va_end (var_args);
-
-  return self;
-}
-
-/**
- * gst_controller_remove_properties_valist:
- * @self: the controller object from which some properties should be removed
- * @var_args: %NULL terminated list of property names that should be removed
- *
- * Removes the given object properties from the controller
- *
- * Returns: %FALSE if one of the given property isn't handled by the controller, %TRUE otherwise
- */
-gboolean
-gst_controller_remove_properties_valist (GstController * self, va_list var_args)
-{
-  gboolean res = TRUE;
-  GstControlledProperty *prop;
-  gchar *name;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-
-  while ((name = va_arg (var_args, gchar *))) {
-    /* find the property in the properties list of the controller, remove and free it */
-    g_mutex_lock (self->lock);
-    if ((prop = gst_controller_find_controlled_property (self, name))) {
-      self->properties = g_list_remove (self->properties, prop);
-      //g_signal_handler_disconnect (self->object, prop->notify_handler_id);
-      gst_controlled_property_free (prop);
-    } else {
-      res = FALSE;
-    }
-    g_mutex_unlock (self->lock);
-  }
-
-  return res;
-}
-
-/**
- * gst_controller_remove_properties_list:
- * @self: the controller object from which some properties should be removed
- * @list: #GList of property names that should be removed
- *
- * Removes the given object properties from the controller
- *
- * Returns: %FALSE if one of the given property isn't handled by the controller, %TRUE otherwise
- */
-gboolean
-gst_controller_remove_properties_list (GstController * self, GList * list)
-{
-  gboolean res = TRUE;
-  GstControlledProperty *prop;
-  gchar *name;
-  GList *tmp;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-
-  for (tmp = list; tmp; tmp = g_list_next (tmp)) {
-    name = (gchar *) tmp->data;
-
-    /* find the property in the properties list of the controller, remove and free it */
-    g_mutex_lock (self->lock);
-    if ((prop = gst_controller_find_controlled_property (self, name))) {
-      self->properties = g_list_remove (self->properties, prop);
-      //g_signal_handler_disconnect (self->object, prop->notify_handler_id);
-      gst_controlled_property_free (prop);
-    } else {
-      res = FALSE;
-    }
-    g_mutex_unlock (self->lock);
-  }
-
-  return res;
-}
-
-/**
- * gst_controller_remove_properties:
- * @self: the controller object from which some properties should be removed
- * @...: %NULL terminated list of property names that should be removed
- *
- * Removes the given object properties from the controller
- *
- * Returns: %FALSE if one of the given property isn't handled by the controller, %TRUE otherwise
- */
-gboolean
-gst_controller_remove_properties (GstController * self, ...)
-{
-  gboolean res;
-  va_list var_args;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-
-  va_start (var_args, self);
-  res = gst_controller_remove_properties_valist (self, var_args);
-  va_end (var_args);
-
-  return res;
-}
-
-/**
- * gst_controller_set_property_disabled:
- * @self: the #GstController which should be disabled
- * @property_name: property to disable
- * @disabled: boolean that specifies whether to disable the controller
- * or not.
- *
- * This function is used to disable the #GstController on a property for
- * some time, i.e. gst_controller_sync_values() will do nothing for the
- * property.
- *
- * Since: 0.10.14
- */
-
-void
-gst_controller_set_property_disabled (GstController * self,
-    const gchar * property_name, gboolean disabled)
-{
-  GstControlledProperty *prop;
-
-  g_return_if_fail (GST_IS_CONTROLLER (self));
-  g_return_if_fail (property_name);
-
-  g_mutex_lock (self->lock);
-  if ((prop = gst_controller_find_controlled_property (self, property_name))) {
-    prop->disabled = disabled;
-  }
-  g_mutex_unlock (self->lock);
-}
-
-
-/**
- * gst_controller_set_disabled:
- * @self: the #GstController which should be disabled
- * @disabled: boolean that specifies whether to disable the controller
- * or not.
- *
- * This function is used to disable all properties of the #GstController
- * for some time, i.e. gst_controller_sync_values() will do nothing.
- *
- * Since: 0.10.14
- */
-
-void
-gst_controller_set_disabled (GstController * self, gboolean disabled)
-{
-  GList *node;
-  GstControlledProperty *prop;
-
-  g_return_if_fail (GST_IS_CONTROLLER (self));
-
-  g_mutex_lock (self->lock);
-  for (node = self->properties; node; node = node->next) {
-    prop = node->data;
-    prop->disabled = disabled;
-  }
-  g_mutex_unlock (self->lock);
-}
-
-/**
- * gst_controller_set_control_source:
- * @self: the controller object
- * @property_name: name of the property for which the #GstControlSource should be set
- * @csource: the #GstControlSource that should be used for the property
- *
- * Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
- * for this property it will be unreferenced.
- *
- * Returns: %FALSE if the given property isn't handled by the controller or the new #GstControlSource
- * couldn't be bound to the property, %TRUE if everything worked as expected.
- *
- * Since: 0.10.14
- */
-gboolean
-gst_controller_set_control_source (GstController * self,
-    const gchar * property_name, GstControlSource * csource)
-{
-  GstControlledProperty *prop;
-  gboolean ret = FALSE;
-
-  g_mutex_lock (self->lock);
-  if ((prop = gst_controller_find_controlled_property (self, property_name))) {
-    GstControlSource *old = prop->csource;
-
-    if (csource && (ret = gst_control_source_bind (csource, prop->pspec))) {
-      g_object_ref (csource);
-      prop->csource = csource;
-    } else if (!csource) {
-      ret = TRUE;
-      prop->csource = NULL;
-    }
-
-    if (ret && old)
-      g_object_unref (old);
-  }
-  g_mutex_unlock (self->lock);
-
-  return ret;
-}
-
-/**
- * gst_controller_get_control_source:
- * @self: the controller object
- * @property_name: name of the property for which the #GstControlSource should be get
- *
- * Gets the corresponding #GstControlSource for the property. This should be unreferenced
- * again after use.
- *
- * Returns: the #GstControlSource for @property_name or NULL if the property is not
- * controlled by this controller or no #GstControlSource was assigned yet.
- *
- * Since: 0.10.14
- */
-GstControlSource *
-gst_controller_get_control_source (GstController * self,
-    const gchar * property_name)
-{
-  GstControlledProperty *prop;
-  GstControlSource *ret = NULL;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), NULL);
-  g_return_val_if_fail (property_name, NULL);
-
-  g_mutex_lock (self->lock);
-  if ((prop = gst_controller_find_controlled_property (self, property_name))) {
-    ret = prop->csource;
-  }
-  g_mutex_unlock (self->lock);
-
-  if (ret)
-    g_object_ref (ret);
-
-  return ret;
-}
-
-/**
- * gst_controller_get:
- * @self: the controller object which handles the properties
- * @property_name: the name of the property to get
- * @timestamp: the time the control-change should be read from
- *
- * Gets the value for the given controller-handled property at the requested
- * time.
- *
- * Returns: the GValue of the property at the given time, or %NULL if the
- * property isn't handled by the controller
- */
-GValue *
-gst_controller_get (GstController * self, const gchar * property_name,
-    GstClockTime timestamp)
-{
-  GstControlledProperty *prop;
-  GValue *val = NULL;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), NULL);
-  g_return_val_if_fail (property_name, NULL);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
-
-  g_mutex_lock (self->lock);
-  if ((prop = gst_controller_find_controlled_property (self, property_name))) {
-    val = g_new0 (GValue, 1);
-    g_value_init (val, G_PARAM_SPEC_VALUE_TYPE (prop->pspec));
-    if (prop->csource) {
-      gboolean res;
-
-      /* get current value via control source */
-      res = gst_control_source_get_value (prop->csource, timestamp, val);
-      if (!res) {
-        g_free (val);
-        val = NULL;
-      }
-    } else {
-      g_object_get_property (self->object, prop->name, val);
-    }
-  }
-  g_mutex_unlock (self->lock);
-
-  return val;
-}
-
-/**
- * gst_controller_suggest_next_sync:
- * @self: the controller that handles the values
- *
- * Returns a suggestion for timestamps where buffers should be split
- * to get best controller results.
- *
- * Returns: Returns the suggested timestamp or %GST_CLOCK_TIME_NONE
- * if no control-rate was set.
- *
- * Since: 0.10.13
- */
-GstClockTime
-gst_controller_suggest_next_sync (GstController * self)
-{
-  GstClockTime ret;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), GST_CLOCK_TIME_NONE);
-  g_return_val_if_fail (self->priv->control_rate != GST_CLOCK_TIME_NONE,
-      GST_CLOCK_TIME_NONE);
-
-  g_mutex_lock (self->lock);
-
-  /* TODO: Implement more logic, depending on interpolation mode
-   * and control points
-   * FIXME: we need playback direction
-   */
-  ret = self->priv->last_sync + self->priv->control_rate;
-
-  g_mutex_unlock (self->lock);
-
-  return ret;
-}
-
-/**
- * gst_controller_sync_values:
- * @self: the controller that handles the values
- * @timestamp: the time that should be processed
- *
- * Sets the properties of the element, according to the controller that (maybe)
- * handles them and for the given timestamp.
- *
- * If this function fails, it is most likely the application developers fault.
- * Most probably the control sources are not setup correctly.
- *
- * Returns: %TRUE if the controller values could be applied to the object
- * properties, %FALSE otherwise
- */
-gboolean
-gst_controller_sync_values (GstController * self, GstClockTime timestamp)
-{
-  GstControlledProperty *prop;
-  GList *node;
-  gboolean ret = TRUE, val_ret;
-  GValue value = { 0, };
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-
-  GST_LOG ("sync_values");
-
-  g_mutex_lock (self->lock);
-  g_object_freeze_notify (self->object);
-  /* go over the controlled properties of the controller */
-  for (node = self->properties; node; node = g_list_next (node)) {
-    prop = node->data;
-
-    if (!prop->csource || prop->disabled)
-      continue;
-
-    GST_LOG ("property '%s' at ts=%" G_GUINT64_FORMAT, prop->name, timestamp);
-
-    /* we can make this faster
-     * http://bugzilla.gnome.org/show_bug.cgi?id=536939
-     */
-    g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (prop->pspec));
-    val_ret = gst_control_source_get_value (prop->csource, timestamp, &value);
-    if (G_LIKELY (val_ret)) {
-      /* always set the value for first time, but then only if it changed
-       * this should limit g_object_notify invocations.
-       * FIXME: can we detect negative playback rates?
-       */
-      if ((timestamp < self->priv->last_sync) ||
-          gst_value_compare (&value, &prop->last_value) != GST_VALUE_EQUAL) {
-        g_object_set_property (self->object, prop->name, &value);
-        g_value_copy (&value, &prop->last_value);
-      }
-    } else {
-      GST_DEBUG ("no control value for param %s", prop->name);
-    }
-    g_value_unset (&value);
-    ret &= val_ret;
-  }
-  self->priv->last_sync = timestamp;
-  g_object_thaw_notify (self->object);
-
-  g_mutex_unlock (self->lock);
-
-  return ret;
-}
-
-/**
- * gst_controller_get_value_arrays:
- * @self: the controller that handles the values
- * @timestamp: the time that should be processed
- * @value_arrays: list to return the control-values in
- *
- * Function to be able to get an array of values for one or more given element
- * properties.
- *
- * All fields of the %GstValueArray in the list must be filled correctly.
- * Especially the GstValueArray->values arrays must be big enough to keep
- * the requested amount of values.
- *
- * The types of the values in the array are the same as the property's type.
- *
- * <note><para>This doesn't modify the controlled GObject properties!</para></note>
- *
- * Returns: %TRUE if the given array(s) could be filled, %FALSE otherwise
- */
-gboolean
-gst_controller_get_value_arrays (GstController * self,
-    GstClockTime timestamp, GSList * value_arrays)
-{
-  gboolean res = TRUE;
-  GSList *node;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-  g_return_val_if_fail (value_arrays, FALSE);
-
-  for (node = value_arrays; (res && node); node = g_slist_next (node)) {
-    res = gst_controller_get_value_array (self, timestamp, node->data);
-  }
-
-  return (res);
-}
-
-/**
- * gst_controller_get_value_array:
- * @self: the controller that handles the values
- * @timestamp: the time that should be processed
- * @value_array: array to put control-values in
- *
- * Function to be able to get an array of values for one element property.
- *
- * All fields of @value_array must be filled correctly. Especially the
- * @value_array->values array must be big enough to keep the requested amount
- * of values (as indicated by the nbsamples field).
- *
- * The type of the values in the array is the same as the property's type.
- *
- * <note><para>This doesn't modify the controlled GObject property!</para></note>
- *
- * Returns: %TRUE if the given array could be filled, %FALSE otherwise
- */
-gboolean
-gst_controller_get_value_array (GstController * self, GstClockTime timestamp,
-    GstValueArray * value_array)
-{
-  gboolean res = FALSE;
-  GstControlledProperty *prop;
-
-  g_return_val_if_fail (GST_IS_CONTROLLER (self), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-  g_return_val_if_fail (value_array, FALSE);
-  g_return_val_if_fail (value_array->property_name, FALSE);
-  g_return_val_if_fail (value_array->values, FALSE);
-
-  g_mutex_lock (self->lock);
-
-  if ((prop =
-          gst_controller_find_controlled_property (self,
-              value_array->property_name))) {
-    /* get current value_array via control source */
-
-    if (!prop->csource)
-      goto out;
-
-    res =
-        gst_control_source_get_value_array (prop->csource, timestamp,
-        value_array);
-  }
-
-out:
-  g_mutex_unlock (self->lock);
-  return res;
-}
-
-/* gobject handling */
-
-static void
-_gst_controller_get_property (GObject * object, guint property_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstController *self = GST_CONTROLLER (object);
-
-  switch (property_id) {
-    case PROP_CONTROL_RATE:{
-      /* FIXME: don't change if element is playing, controller works for GObject
-         so this wont work
-
-         GstState c_state, p_state;
-         GstStateChangeReturn ret;
-
-         ret = gst_element_get_state (self->object, &c_state, &p_state, 0);
-         if ((ret == GST_STATE_CHANGE_SUCCESS &&
-         (c_state == GST_STATE_NULL || c_state == GST_STATE_READY)) ||
-         (ret == GST_STATE_CHANGE_ASYNC &&
-         (p_state == GST_STATE_NULL || p_state == GST_STATE_READY))) {
-       */
-      g_value_set_uint64 (value, self->priv->control_rate);
-      /*
-         }
-         else {
-         GST_WARNING ("Changing the control rate is only allowed if the elemnt"
-         " is in NULL or READY");
-         }
-       */
-    }
-      break;
-    default:{
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-      break;
-  }
-}
-
-/* sets the given properties for this object */
-static void
-_gst_controller_set_property (GObject * object, guint property_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstController *self = GST_CONTROLLER (object);
-
-  switch (property_id) {
-    case PROP_CONTROL_RATE:{
-      self->priv->control_rate = g_value_get_uint64 (value);
-    }
-      break;
-    default:{
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-      break;
-  }
-}
-
-static void
-_gst_controller_dispose (GObject * object)
-{
-  GstController *self = GST_CONTROLLER (object);
-
-  if (self->object != NULL) {
-    g_mutex_lock (self->lock);
-    /* free list of properties */
-    if (self->properties) {
-      GList *node;
-
-      for (node = self->properties; node; node = g_list_next (node)) {
-        GstControlledProperty *prop = node->data;
-
-        gst_controlled_property_free (prop);
-      }
-      g_list_free (self->properties);
-      self->properties = NULL;
-    }
-
-    /* remove controller from object's qdata list */
-    g_object_set_qdata (self->object, priv_gst_controller_key, NULL);
-    g_object_unref (self->object);
-    self->object = NULL;
-    g_mutex_unlock (self->lock);
-  }
-
-  if (G_OBJECT_CLASS (parent_class)->dispose)
-    (G_OBJECT_CLASS (parent_class)->dispose) (object);
-}
-
-static void
-_gst_controller_finalize (GObject * object)
-{
-  GstController *self = GST_CONTROLLER (object);
-
-  g_mutex_free (self->lock);
-
-  if (G_OBJECT_CLASS (parent_class)->finalize)
-    (G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-static void
-_gst_controller_init (GTypeInstance * instance, gpointer g_class)
-{
-  GstController *self = GST_CONTROLLER (instance);
-
-  self->lock = g_mutex_new ();
-  self->priv =
-      G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_CONTROLLER,
-      GstControllerPrivate);
-  self->priv->last_sync = GST_CLOCK_TIME_NONE;
-  self->priv->control_rate = 100 * GST_MSECOND;
-}
-
-static void
-_gst_controller_class_init (GstControllerClass * klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  parent_class = g_type_class_peek_parent (klass);
-  g_type_class_add_private (klass, sizeof (GstControllerPrivate));
-
-  gobject_class->set_property = _gst_controller_set_property;
-  gobject_class->get_property = _gst_controller_get_property;
-  gobject_class->dispose = _gst_controller_dispose;
-  gobject_class->finalize = _gst_controller_finalize;
-
-  priv_gst_controller_key = g_quark_from_static_string ("gst::controller");
-
-  /* register properties */
-  g_object_class_install_property (gobject_class, PROP_CONTROL_RATE,
-      g_param_spec_uint64 ("control-rate",
-          "control rate",
-          "Controlled properties will be updated at least every control-rate nanoseconds",
-          1, G_MAXUINT, 100 * GST_MSECOND,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  /* register signals */
-  /* set defaults for overridable methods */
-}
-
-GType
-gst_controller_get_type (void)
-{
-  static volatile gsize type = 0;
-
-  if (g_once_init_enter (&type)) {
-    GType _type;
-    static const GTypeInfo info = {
-      sizeof (GstControllerClass),
-      NULL,                     /* base_init */
-      NULL,                     /* base_finalize */
-      (GClassInitFunc) _gst_controller_class_init,      /* class_init */
-      NULL,                     /* class_finalize */
-      NULL,                     /* class_data */
-      sizeof (GstController),
-      0,                        /* n_preallocs */
-      (GInstanceInitFunc) _gst_controller_init, /* instance_init */
-      NULL                      /* value_table */
-    };
-    _type = g_type_register_static (G_TYPE_OBJECT, "GstController", &info, 0);
-    g_once_init_leave (&type, _type);
-  }
-  return type;
-}
diff --git a/libs/gst/controller/gstcontroller.h b/libs/gst/controller/gstcontroller.h
deleted file mode 100644
index ce666a5..0000000
--- a/libs/gst/controller/gstcontroller.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- *
- * gst-controller.h: dynamic parameter control subsystem
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_CONTROLLER_H__
-#define __GST_CONTROLLER_H__
-
-#include <string.h>
-
-#include <glib.h>
-#include <glib-object.h>
-#include <glib/gprintf.h>
-#include <gst/gst.h>
-
-#include <gst/controller/gstcontrolsource.h>
-#include <gst/controller/gstinterpolationcontrolsource.h>
-
-G_BEGIN_DECLS
-
-/* type macros */
-
-#define GST_TYPE_CONTROLLER	       (gst_controller_get_type ())
-#define GST_CONTROLLER(obj)	       (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_CONTROLLER, GstController))
-#define GST_CONTROLLER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_CONTROLLER, GstControllerClass))
-#define GST_IS_CONTROLLER(obj)	       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CONTROLLER))
-#define GST_IS_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CONTROLLERE))
-#define GST_CONTROLLER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CONTROLLER, GstControllerClass))
-
-typedef struct _GstController GstController;
-typedef struct _GstControllerClass GstControllerClass;
-typedef struct _GstControllerPrivate GstControllerPrivate;
-
-/**
- * GstController:
- *
- * The instance structure of GstController
- */
-
-struct _GstController
-{
-  GObject parent;
-
-  GList *properties;  /* List of GstControlledProperty */
-  GMutex *lock;       /* Secure property access, elements will access from threads */
-  GObject *object;    /* the object we control */
-
-  /*< private >*/
-  GstControllerPrivate *priv;
-  gpointer       _gst_reserved[GST_PADDING - 1];
-};
-
-struct _GstControllerClass
-{
-  GObjectClass parent_class;
-
-  /*< private >*/
-  gpointer       _gst_reserved[GST_PADDING];
-};
-
-GType gst_controller_get_type (void);
-
-/* GstController functions */
-
-GstController *gst_controller_new_valist (GObject * object, va_list var_args);
-GstController *gst_controller_new_list (GObject * object, GList *list);
-GstController *gst_controller_new (GObject * object, ...) G_GNUC_NULL_TERMINATED;
-
-gboolean gst_controller_remove_properties_valist (GstController * self,
-    va_list var_args);
-gboolean gst_controller_remove_properties_list (GstController * self,
-						GList *list);
-gboolean gst_controller_remove_properties (GstController * self, ...) G_GNUC_NULL_TERMINATED;
-
-void gst_controller_set_disabled (GstController *self, gboolean disabled);
-void gst_controller_set_property_disabled (GstController *self, const gchar * property_name, gboolean disabled);
-gboolean gst_controller_set_control_source (GstController *self, const gchar * property_name, GstControlSource *csource);
-GstControlSource * gst_controller_get_control_source (GstController *self, const gchar * property_name);
-
-GstClockTime gst_controller_suggest_next_sync (GstController *self);
-gboolean gst_controller_sync_values (GstController * self,
-    GstClockTime timestamp);
-
-GValue *gst_controller_get (GstController * self, const gchar * property_name,
-    GstClockTime timestamp);
-gboolean gst_controller_get_value_arrays (GstController * self,
-    GstClockTime timestamp, GSList * value_arrays);
-gboolean gst_controller_get_value_array (GstController * self,
-    GstClockTime timestamp, GstValueArray * value_array);
-
-/* GObject convenience functions */
-
-GstController *gst_object_control_properties (GObject * object, ...) G_GNUC_NULL_TERMINATED;
-gboolean gst_object_uncontrol_properties (GObject * object, ...) G_GNUC_NULL_TERMINATED;
-
-GstController *gst_object_get_controller (GObject * object);
-gboolean gst_object_set_controller (GObject * object, GstController * controller);
-
-GstClockTime gst_object_suggest_next_sync (GObject * object);
-gboolean gst_object_sync_values (GObject * object, GstClockTime timestamp);
-
-gboolean gst_object_set_control_source (GObject *object, const gchar * property_name, GstControlSource *csource);
-GstControlSource * gst_object_get_control_source (GObject *object, const gchar * property_name);
-
-gboolean gst_object_get_value_arrays (GObject * object,
-    GstClockTime timestamp, GSList * value_arrays);
-gboolean gst_object_get_value_array (GObject * object,
-    GstClockTime timestamp, GstValueArray * value_array);
-
-GstClockTime gst_object_get_control_rate (GObject * object);
-void gst_object_set_control_rate (GObject * object, GstClockTime control_rate);
-
-/* lib init/done */
-
-gboolean gst_controller_init (int * argc, char ***argv);
-
-
-G_END_DECLS
-
-#endif /* __GST_CONTROLLER_H__ */
diff --git a/libs/gst/controller/gstcontrollerprivate.h b/libs/gst/controller/gstcontrollerprivate.h
deleted file mode 100644
index 2dc57a5..0000000
--- a/libs/gst/controller/gstcontrollerprivate.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- *
- * gstcontrollerprivate.h: dynamic parameter control subsystem
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_CONTROLLER_PRIVATE_H__
-#define __GST_CONTROLLER_PRIVATE_H__
-
-#include <glib.h>
-#include <glib-object.h>
-#include <gst/gst.h>
-
-#include <gst/controller/gstcontroller.h>
-#include <gst/controller/gstcontrolsource.h>
-
-G_BEGIN_DECLS
-
-/**
- * GstControlledProperty:
- */
-typedef struct _GstControlledProperty
-{
-  GParamSpec *pspec;            /* GParamSpec for this property */
-  const gchar *name;            /* name of the property */
-  GstControlSource *csource;    /* GstControlSource for this property */
-  gboolean disabled;
-  GValue last_value;
-} GstControlledProperty;
-
-#define GST_CONTROLLED_PROPERTY(obj)    ((GstControlledProperty *)(obj))
-
-extern GQuark priv_gst_controller_key;
-
-G_END_DECLS
-
-#endif /* __GST_CONTROLLER_PRIVATE_H__ */
diff --git a/libs/gst/controller/gstdirectcontrolbinding.c b/libs/gst/controller/gstdirectcontrolbinding.c
new file mode 100644
index 0000000..97a23b2
--- /dev/null
+++ b/libs/gst/controller/gstdirectcontrolbinding.c
@@ -0,0 +1,387 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstdirectcontrolbinding.c: Direct attachment for control sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+/**
+ * SECTION:gstdirectcontrolbinding
+ * @short_description: direct attachment for control source sources
+ *
+ * A value mapping object that attaches control sources to gobject properties.
+ */
+
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include "gstdirectcontrolbinding.h"
+
+#include <math.h>
+
+#define GST_CAT_DEFAULT control_binding_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+static GObject *gst_direct_control_binding_constructor (GType type,
+    guint n_construct_params, GObjectConstructParam * construct_params);
+static void gst_direct_control_binding_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_direct_control_binding_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec);
+static void gst_direct_control_binding_dispose (GObject * object);
+static void gst_direct_control_binding_finalize (GObject * object);
+
+static gboolean gst_direct_control_binding_sync_values (GstControlBinding *
+    _self, GstObject * object, GstClockTime timestamp, GstClockTime last_sync);
+static GValue *gst_direct_control_binding_get_value (GstControlBinding * _self,
+    GstClockTime timestamp);
+static gboolean gst_direct_control_binding_get_value_array (GstControlBinding *
+    _self, GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values);
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gstdirectcontrolbinding", 0, \
+      "dynamic parameter control source attachment");
+
+G_DEFINE_TYPE_WITH_CODE (GstDirectControlBinding, gst_direct_control_binding,
+    GST_TYPE_CONTROL_BINDING, _do_init);
+
+enum
+{
+  PROP_0,
+  PROP_CS,
+  PROP_LAST
+};
+
+static GParamSpec *properties[PROP_LAST];
+
+/* mapping functions */
+
+#define DEFINE_CONVERT(type,Type,TYPE) \
+static void \
+convert_to_##type (GstDirectControlBinding *self, gdouble s, GValue *d) \
+{ \
+  GParamSpec##Type *pspec = G_PARAM_SPEC_##TYPE (((GstControlBinding *)self)->pspec); \
+  g##type v; \
+  \
+  s = CLAMP (s, 0.0, 1.0); \
+  v = pspec->minimum + (g##type) ((pspec->maximum - pspec->minimum) * s); \
+  g_value_set_##type (d, v); \
+}
+
+DEFINE_CONVERT (int, Int, INT);
+DEFINE_CONVERT (uint, UInt, UINT);
+DEFINE_CONVERT (long, Long, LONG);
+DEFINE_CONVERT (ulong, ULong, ULONG);
+DEFINE_CONVERT (int64, Int64, INT64);
+DEFINE_CONVERT (uint64, UInt64, UINT64);
+DEFINE_CONVERT (float, Float, FLOAT);
+DEFINE_CONVERT (double, Double, DOUBLE);
+
+static void
+convert_to_boolean (GstDirectControlBinding * self, gdouble s, GValue * d)
+{
+  s = CLAMP (s, 0.0, 1.0);
+  g_value_set_boolean (d, (gboolean) (s + 0.5));
+}
+
+static void
+convert_to_enum (GstDirectControlBinding * self, gdouble s, GValue * d)
+{
+  GParamSpecEnum *pspec =
+      G_PARAM_SPEC_ENUM (((GstControlBinding *) self)->pspec);
+  GEnumClass *e = pspec->enum_class;
+  gint v;
+
+  s = CLAMP (s, 0.0, 1.0);
+  v = s * (e->n_values - 1);
+  g_value_set_enum (d, e->values[v].value);
+}
+
+/* vmethods */
+
+static void
+gst_direct_control_binding_class_init (GstDirectControlBindingClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GstControlBindingClass *control_binding_class =
+      GST_CONTROL_BINDING_CLASS (klass);
+
+  gobject_class->constructor = gst_direct_control_binding_constructor;
+  gobject_class->set_property = gst_direct_control_binding_set_property;
+  gobject_class->get_property = gst_direct_control_binding_get_property;
+  gobject_class->dispose = gst_direct_control_binding_dispose;
+  gobject_class->finalize = gst_direct_control_binding_finalize;
+
+  control_binding_class->sync_values = gst_direct_control_binding_sync_values;
+  control_binding_class->get_value = gst_direct_control_binding_get_value;
+  control_binding_class->get_value_array =
+      gst_direct_control_binding_get_value_array;
+
+  properties[PROP_CS] =
+      g_param_spec_object ("control-source", "ControlSource",
+      "The control source",
+      GST_TYPE_CONTROL_SOURCE,
+      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+  g_object_class_install_properties (gobject_class, PROP_LAST, properties);
+}
+
+static void
+gst_direct_control_binding_init (GstDirectControlBinding * self)
+{
+}
+
+static GObject *
+gst_direct_control_binding_constructor (GType type, guint n_construct_params,
+    GObjectConstructParam * construct_params)
+{
+  GstDirectControlBinding *self;
+
+  self =
+      GST_DIRECT_CONTROL_BINDING (G_OBJECT_CLASS
+      (gst_direct_control_binding_parent_class)
+      ->constructor (type, n_construct_params, construct_params));
+
+  if (GST_CONTROL_BINDING_PSPEC (self)) {
+    GType type, base;
+
+    base = type = G_PARAM_SPEC_VALUE_TYPE (GST_CONTROL_BINDING_PSPEC (self));
+    g_value_init (&self->cur_value, type);
+    while ((type = g_type_parent (type)))
+      base = type;
+
+    GST_DEBUG ("  using type %s", g_type_name (base));
+
+    // select mapping function
+    switch (base) {
+      case G_TYPE_INT:
+        self->convert = convert_to_int;
+        break;
+      case G_TYPE_UINT:
+        self->convert = convert_to_uint;
+        break;
+      case G_TYPE_LONG:
+        self->convert = convert_to_long;
+        break;
+      case G_TYPE_ULONG:
+        self->convert = convert_to_ulong;
+        break;
+      case G_TYPE_INT64:
+        self->convert = convert_to_int64;
+        break;
+      case G_TYPE_UINT64:
+        self->convert = convert_to_uint64;
+        break;
+      case G_TYPE_FLOAT:
+        self->convert = convert_to_float;
+        break;
+      case G_TYPE_DOUBLE:
+        self->convert = convert_to_double;
+        break;
+      case G_TYPE_BOOLEAN:
+        self->convert = convert_to_boolean;
+        break;
+      case G_TYPE_ENUM:
+        self->convert = convert_to_enum;
+        break;
+      default:
+        GST_WARNING ("incomplete implementation for paramspec type '%s'",
+            G_PARAM_SPEC_TYPE_NAME (GST_CONTROL_BINDING_PSPEC (self)));
+        GST_CONTROL_BINDING_PSPEC (self) = NULL;
+        break;
+    }
+  }
+  return (GObject *) self;
+}
+
+static void
+gst_direct_control_binding_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_CS:
+      self->cs = g_value_dup_object (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_direct_control_binding_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (object);
+
+  switch (prop_id) {
+    case PROP_CS:
+      g_value_set_object (value, self->cs);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_direct_control_binding_dispose (GObject * object)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (object);
+
+  if (self->cs)
+    gst_object_replace ((GstObject **) & self->cs, NULL);
+}
+
+static void
+gst_direct_control_binding_finalize (GObject * object)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (object);
+
+  g_value_unset (&self->cur_value);
+}
+
+static gboolean
+gst_direct_control_binding_sync_values (GstControlBinding * _self,
+    GstObject * object, GstClockTime timestamp, GstClockTime last_sync)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (_self);
+  gdouble src_val;
+  gboolean ret;
+
+  g_return_val_if_fail (GST_IS_DIRECT_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  GST_LOG_OBJECT (object, "property '%s' at ts=%" GST_TIME_FORMAT,
+      _self->name, GST_TIME_ARGS (timestamp));
+
+  ret = gst_control_source_get_value (self->cs, timestamp, &src_val);
+  if (G_LIKELY (ret)) {
+    GST_LOG_OBJECT (object, "  new value %lf", src_val);
+    /* always set the value for first time, but then only if it changed
+     * this should limit g_object_notify invocations.
+     * FIXME: can we detect negative playback rates?
+     */
+    if ((timestamp < last_sync) || (src_val != self->last_value)) {
+      GValue *dst_val = &self->cur_value;
+
+      GST_LOG_OBJECT (object, "  mapping %s to value of type %s", _self->name,
+          G_VALUE_TYPE_NAME (dst_val));
+      /* run mapping function to convert gdouble to GValue */
+      self->convert (self, src_val, dst_val);
+      /* we can make this faster
+       * http://bugzilla.gnome.org/show_bug.cgi?id=536939
+       */
+      g_object_set_property ((GObject *) object, _self->name, dst_val);
+      self->last_value = src_val;
+    }
+  } else {
+    GST_DEBUG_OBJECT (object, "no control value for param %s", _self->name);
+  }
+  return (ret);
+}
+
+static GValue *
+gst_direct_control_binding_get_value (GstControlBinding * _self,
+    GstClockTime timestamp)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (_self);
+  GValue *dst_val = NULL;
+  gdouble src_val;
+
+  g_return_val_if_fail (GST_IS_DIRECT_CONTROL_BINDING (self), NULL);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  /* get current value via control source */
+  if (gst_control_source_get_value (self->cs, timestamp, &src_val)) {
+    dst_val = g_new0 (GValue, 1);
+    g_value_init (dst_val, G_PARAM_SPEC_VALUE_TYPE (_self->pspec));
+    self->convert (self, src_val, dst_val);
+  } else {
+    GST_LOG ("no control value for property %s at ts %" GST_TIME_FORMAT,
+        _self->name, GST_TIME_ARGS (timestamp));
+  }
+
+  return dst_val;
+}
+
+static gboolean
+gst_direct_control_binding_get_value_array (GstControlBinding * _self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    GValue * values)
+{
+  GstDirectControlBinding *self = GST_DIRECT_CONTROL_BINDING (_self);
+  gint i;
+  gdouble *src_val;
+  gboolean res = FALSE;
+  GType type;
+  GstDirectControlBindingConvert convert;
+
+  g_return_val_if_fail (GST_IS_DIRECT_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
+  g_return_val_if_fail (values, FALSE);
+  g_return_val_if_fail (GST_CONTROL_BINDING_PSPEC (self), FALSE);
+
+  convert = self->convert;
+  type = G_PARAM_SPEC_VALUE_TYPE (_self->pspec);
+
+  src_val = g_new0 (gdouble, n_values);
+  if ((res = gst_control_source_get_value_array (self->cs, timestamp,
+              interval, n_values, src_val))) {
+    for (i = 0; i < n_values; i++) {
+      if (!isnan (src_val[i])) {
+        g_value_init (&values[i], type);
+        convert (self, src_val[i], &values[i]);
+      } else {
+        GST_LOG ("no control value for property %s at index %d", _self->name,
+            i);
+      }
+    }
+  } else {
+    GST_LOG ("failed to get control value for property %s at ts %"
+        GST_TIME_FORMAT, _self->name, GST_TIME_ARGS (timestamp));
+  }
+  g_free (src_val);
+  return res;
+}
+
+/* functions */
+
+/**
+ * gst_direct_control_binding_new:
+ * @object: the object of the property
+ * @property_name: the property-name to attach the control source
+ * @csource: the control source
+ *
+ * Create a new control-binding that attaches the #GstControlSource to the
+ * #GObject property.
+ *
+ * Returns: (transfer floating): the new #GstDirectControlBinding
+ */
+GstControlBinding *
+gst_direct_control_binding_new (GstObject * object, const gchar * property_name,
+    GstControlSource * cs)
+{
+  return (GstControlBinding *) g_object_new (GST_TYPE_DIRECT_CONTROL_BINDING,
+      "object", object, "name", property_name, "control-source", cs, NULL);
+}
diff --git a/libs/gst/controller/gstdirectcontrolbinding.h b/libs/gst/controller/gstdirectcontrolbinding.h
new file mode 100644
index 0000000..729d117
--- /dev/null
+++ b/libs/gst/controller/gstdirectcontrolbinding.h
@@ -0,0 +1,103 @@
+/* GStreamer
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gstdirectcontrolbinding.h: Direct attachment for control sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_DIRECT_CONTROL_BINDING_H__
+#define __GST_DIRECT_CONTROL_BINDING_H__
+
+#include <gst/gstconfig.h>
+
+#include <glib-object.h>
+
+#include <gst/gstcontrolsource.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_DIRECT_CONTROL_BINDING \
+  (gst_direct_control_binding_get_type())
+#define GST_DIRECT_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DIRECT_CONTROL_BINDING,GstDirectControlBinding))
+#define GST_DIRECT_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DIRECT_CONTROL_BINDING,GstDirectControlBindingClass))
+#define GST_IS_DIRECT_CONTROL_BINDING(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DIRECT_CONTROL_BINDING))
+#define GST_IS_DIRECT_CONTROL_BINDING_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DIRECT_CONTROL_BINDING))
+#define GST_DIRECT_CONTROL_BINDING_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_CONTOL_SOURCE, GstDirectControlBindingClass))
+
+typedef struct _GstDirectControlBinding GstDirectControlBinding;
+typedef struct _GstDirectControlBindingClass GstDirectControlBindingClass;
+
+/**
+ * GstDirectControlBindingConvert:
+ * @self: the #GstDirectControlBinding instance
+ * @src_value: the value returned by the cotnrol source
+ * @dest_value: the target GValue
+ *
+ * Function to map a control-value to the target GValue.
+ */
+typedef void (* GstDirectControlBindingConvert) (GstDirectControlBinding *self, gdouble src_value, GValue *dest_value);
+
+/**
+ * GstDirectControlBinding:
+ * @name: name of the property of this binding
+ *
+ * The instance structure of #GstDirectControlBinding.
+ */
+struct _GstDirectControlBinding {
+  GstControlBinding parent;
+  
+  /*< private >*/
+  GstControlSource *cs;    /* GstControlSource for this property */
+  GValue cur_value;
+  gdouble last_value;
+
+  GstDirectControlBindingConvert convert;
+
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstDirectControlBindingClass:
+ * @parent_class: Parent class
+ * @convert: Class method to convert control-values
+ *
+ * The class structure of #GstDirectControlBinding.
+ */
+
+struct _GstDirectControlBindingClass
+{
+  GstControlBindingClass parent_class;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_direct_control_binding_get_type (void);
+
+/* Functions */
+
+GstControlBinding * gst_direct_control_binding_new (GstObject * object, const gchar * property_name,
+                                                    GstControlSource * cs);
+G_END_DECLS
+
+#endif /* __GST_DIRECT_CONTROL_BINDING_H__ */
diff --git a/libs/gst/controller/gsthelper.c b/libs/gst/controller/gsthelper.c
deleted file mode 100644
index 1c1f24a..0000000
--- a/libs/gst/controller/gsthelper.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- *
- * gsthelper.c: GObject convenience methods for using dynamic properties
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstcontrollergobject
- * @short_description: #GObject convenience methods for using dynamic properties
- * @see_also: #GstController
- *
- * These methods allow to use some #GstController functionality directly from
- * the #GObject class.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <stdarg.h>
-
-#include "gstcontrollerprivate.h"
-#include "gstcontroller.h"
-
-#define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
-
-/**
- * gst_object_control_properties:
- * @object: the object of which some properties should be controlled
- * @...: %NULL terminated list of property names that should be controlled
- *
- * Convenience function for GObject
- *
- * Creates a GstController that allows you to dynamically control one, or more, GObject properties.
- * If the given GObject already has a GstController, it adds the given properties to the existing
- * controller and returns that controller.
- *
- * Returns: The GstController with which the user can control the given properties dynamically or NULL if
- * one or more of the given properties aren't available, or cannot be controlled, for the given element.
- * Since: 0.9
- */
-GstController *
-gst_object_control_properties (GObject * object, ...)
-{
-  GstController *ctrl;
-  va_list var_args;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  va_start (var_args, object);
-  ctrl = gst_controller_new_valist (object, var_args);
-  va_end (var_args);
-  return (ctrl);
-}
-
-/**
- * gst_object_uncontrol_properties:
- * @object: the object of which some properties should not be controlled anymore
- * @...: %NULL terminated list of property names that should be controlled
- *
- * Convenience function for GObject
- *
- * Removes the given element's properties from it's controller
- *
- * Returns: %FALSE if one of the given property names isn't handled by the
- * controller, %TRUE otherwise
- * Since: 0.9
- */
-gboolean
-gst_object_uncontrol_properties (GObject * object, ...)
-{
-  gboolean res = FALSE;
-  GstController *ctrl;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    va_list var_args;
-
-    va_start (var_args, object);
-    res = gst_controller_remove_properties_valist (ctrl, var_args);
-    va_end (var_args);
-  }
-  return (res);
-}
-
-/**
- * gst_object_get_controller:
- * @object: the object that has controlled properties
- *
- * Gets the controller for the given GObject
- * 
- * Returns: the controller handling some of the given element's properties, %NULL if no controller
- * Since: 0.9
- */
-/* FIXME 0.11: This should return a new reference */
-GstController *
-gst_object_get_controller (GObject * object)
-{
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  return (g_object_get_qdata (object, priv_gst_controller_key));
-}
-
-/**
- * gst_object_set_controller:
- * @object: the object that should get the controller
- * @controller: the controller object to plug in
- *
- * Sets the controller on the given GObject
- *
- * Returns: %FALSE if the GObject already has an controller, %TRUE otherwise
- * Since: 0.9
- */
-/* FIXME 0.11: This should increase the refcount before storing */
-gboolean
-gst_object_set_controller (GObject * object, GstController * controller)
-{
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-  g_return_val_if_fail (controller, FALSE);
-
-  if (!g_object_get_qdata (object, priv_gst_controller_key)) {
-    g_object_set_qdata (object, priv_gst_controller_key, controller);
-    return (TRUE);
-  }
-  return (FALSE);
-}
-
- /**
- * gst_object_suggest_next_sync:
- * @object: the object that has controlled properties
- *
- * Convenience function for GObject
- *
- * Returns: same thing as gst_controller_suggest_next_sync()
- * Since: 0.10.13
- */
-GstClockTime
-gst_object_suggest_next_sync (GObject * object)
-{
-  GstController *ctrl = NULL;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), GST_CLOCK_TIME_NONE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_suggest_next_sync (ctrl);
-  }
-  return (GST_CLOCK_TIME_NONE);
-}
-
-/**
- * gst_object_sync_values:
- * @object: the object that has controlled properties
- * @timestamp: the time that should be processed
- *
- * Convenience function for GObject
- *
- * Returns: same thing as gst_controller_sync_values()
- * Since: 0.9
- */
-gboolean
-gst_object_sync_values (GObject * object, GstClockTime timestamp)
-{
-  GstController *ctrl = NULL;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_sync_values (ctrl, timestamp);
-  }
-  /* this is no failure, its called by elements regardless if there is a
-   * controller assigned or not
-   */
-  return (TRUE);
-}
-
-/**
- * gst_object_set_control_source:
- * @object: the controller object
- * @property_name: name of the property for which the #GstControlSource should be set
- * @csource: the #GstControlSource that should be used for the property
- *
- * Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
- * for this property it will be unreferenced.
- *
- * Returns: %FALSE if the given property isn't handled by the controller or the new #GstControlSource
- * couldn't be bound to the property, %TRUE if everything worked as expected.
- *
- * Since: 0.10.14
- */
-gboolean
-gst_object_set_control_source (GObject * object, const gchar * property_name,
-    GstControlSource * csource)
-{
-  GstController *ctrl = NULL;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-  g_return_val_if_fail (GST_IS_CONTROL_SOURCE (csource), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_set_control_source (ctrl, property_name, csource);
-  }
-  return FALSE;
-}
-
-/**
- * gst_object_get_control_source:
- * @object: the object
- * @property_name: name of the property for which the #GstControlSource should be get
- *
- * Gets the corresponding #GstControlSource for the property. This should be unreferenced
- * again after use.
- *
- * Returns: the #GstControlSource for @property_name or NULL if the property is not
- * controlled by this controller or no #GstControlSource was assigned yet.
- *
- * Since: 0.10.14
- */
-GstControlSource *
-gst_object_get_control_source (GObject * object, const gchar * property_name)
-{
-  GstController *ctrl = NULL;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), NULL);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_get_control_source (ctrl, property_name);
-  }
-  return NULL;
-}
-
-/**
- * gst_object_get_value_arrays:
- * @object: the object that has controlled properties
- * @timestamp: the time that should be processed
- * @value_arrays: list to return the control-values in
- *
- * Function to be able to get an array of values for one or more given element
- * properties.
- *
- * If the GstValueArray->values array in list nodes is NULL, it will be created
- * by the function.
- * The type of the values in the array are the same as the property's type.
- *
- * The g_object_* functions are just convenience functions for GObject
- *
- * Returns: %TRUE if the given array(s) could be filled, %FALSE otherwise
- * Since: 0.9
- */
-gboolean
-gst_object_get_value_arrays (GObject * object, GstClockTime timestamp,
-    GSList * value_arrays)
-{
-  GstController *ctrl;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_get_value_arrays (ctrl, timestamp, value_arrays);
-  }
-  return (FALSE);
-}
-
-/**
- * gst_object_get_value_array:
- * @object: the object that has controlled properties
- * @timestamp: the time that should be processed
- * @value_array: array to put control-values in
- *
- * Function to be able to get an array of values for one element properties
- *
- * If the GstValueArray->values array is NULL, it will be created by the function.
- * The type of the values in the array are the same as the property's type.
- *
- * The g_object_* functions are just convenience functions for GObject
- *
- * Returns: %TRUE if the given array(s) could be filled, %FALSE otherwise
- * Since: 0.9
- */
-gboolean
-gst_object_get_value_array (GObject * object, GstClockTime timestamp,
-    GstValueArray * value_array)
-{
-  GstController *ctrl;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    return gst_controller_get_value_array (ctrl, timestamp, value_array);
-  }
-  return (FALSE);
-}
-
-/**
- * gst_object_get_control_rate:
- * @object: the object that has controlled properties
- *
- * Obtain the control-rate for this @object. Audio processing #GstElement
- * objects will use this rate to sub-divide their processing loop and call
- * gst_object_sync_values() inbetween. The length of the processing segment
- * should be up to @control-rate nanoseconds.
- *
- * If the @object is not under property control, this will return
- * %GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
- *
- * The control-rate is not expected to change if the element is in
- * %GST_STATE_PAUSED or %GST_STATE_PLAYING.
- *
- * Returns: the control rate in nanoseconds
- * Since: 0.10.10
- */
-GstClockTime
-gst_object_get_control_rate (GObject * object)
-{
-  GstController *ctrl;
-  GstClockTime control_rate = GST_CLOCK_TIME_NONE;
-
-  g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    g_object_get (ctrl, "control-rate", &control_rate, NULL);
-  }
-  return (control_rate);
-}
-
-/**
- * gst_object_set_control_rate:
- * @object: the object that has controlled properties
- * @control_rate: the new control-rate in nanoseconds.
- *
- * Change the control-rate for this @object. Audio processing #GstElement
- * objects will use this rate to sub-divide their processing loop and call
- * gst_object_sync_values() inbetween. The length of the processing segment
- * should be up to @control-rate nanoseconds.
- *
- * The control-rate should not change if the element is in %GST_STATE_PAUSED or
- * %GST_STATE_PLAYING.
- *
- * Since: 0.10.10
- */
-void
-gst_object_set_control_rate (GObject * object, GstClockTime control_rate)
-{
-  GstController *ctrl;
-
-  g_return_if_fail (G_IS_OBJECT (object));
-
-  if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
-    g_object_set (ctrl, "control-rate", control_rate, NULL);
-  }
-}
diff --git a/libs/gst/controller/gstinterpolation.c b/libs/gst/controller/gstinterpolation.c
deleted file mode 100644
index 54ff60e..0000000
--- a/libs/gst/controller/gstinterpolation.c
+++ /dev/null
@@ -1,811 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- * Copyright (C) 2007-2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * gstinterpolation.c: Interpolation methods for dynamic properties
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include "gstinterpolationcontrolsource.h"
-#include "gstinterpolationcontrolsourceprivate.h"
-
-#define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
-
-#define EMPTY(x) (x)
-
-/* common helper */
-
-static gint
-gst_control_point_find (gconstpointer p1, gconstpointer p2)
-{
-  GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
-  GstClockTime ct2 = *(GstClockTime *) p2;
-
-  return ((ct1 < ct2) ? -1 : ((ct1 == ct2) ? 0 : 1));
-}
-
-/*
- * gst_interpolation_control_source_find_control_point_iter:
- * @self: the interpolation control source to search in
- * @timestamp: the search key
- *
- * Find last value before given timestamp in control point list.
- * If all values in the control point list come after the given
- * timestamp or no values exist, %NULL is returned.
- *
- * Returns: the found #GSequenceIter or %NULL
- */
-static GSequenceIter *gst_interpolation_control_source_find_control_point_iter
-    (GstInterpolationControlSource * self, GstClockTime timestamp)
-{
-  GSequenceIter *iter;
-
-  if (!self->priv->values)
-    return NULL;
-
-  iter =
-      g_sequence_search (self->priv->values, &timestamp,
-      (GCompareDataFunc) gst_control_point_find, NULL);
-
-  /* g_sequence_search() returns the iter where timestamp
-   * would be inserted, i.e. the iter > timestamp, so
-   * we need to get the previous one. And of course, if
-   * there is no previous one, we return NULL. */
-  if (g_sequence_iter_is_begin (iter))
-    return NULL;
-
-  return g_sequence_iter_prev (iter);
-}
-
-/*  steps-like (no-)interpolation, default */
-/*  just returns the value for the most recent key-frame */
-static inline const GValue *
-_interpolate_none_get (GstInterpolationControlSource * self,
-    GSequenceIter * iter)
-{
-  const GValue *ret;
-
-  if (iter) {
-    GstControlPoint *cp = g_sequence_get (iter);
-
-    ret = &cp->value;
-  } else {
-    ret = &self->priv->default_value;
-  }
-  return ret;
-}
-
-#define DEFINE_NONE_GET_FUNC_COMPARABLE(type) \
-static inline const GValue * \
-_interpolate_none_get_##type (GstInterpolationControlSource *self, GSequenceIter *iter) \
-{ \
-  const GValue *ret; \
-  \
-  if (iter) { \
-    GstControlPoint *cp = g_sequence_get (iter); \
-    g##type ret_val = g_value_get_##type (&cp->value); \
-    \
-    if (g_value_get_##type (&self->priv->minimum_value) > ret_val) \
-      ret = &self->priv->minimum_value; \
-    else if (g_value_get_##type (&self->priv->maximum_value) < ret_val) \
-      ret = &self->priv->maximum_value; \
-    else \
-      ret = &cp->value; \
-  } else { \
-    ret = &self->priv->default_value; \
-  } \
-  return ret; \
-}
-
-#define DEFINE_NONE_GET(type,ctype,get_func) \
-static gboolean \
-interpolate_none_get_##type (GstInterpolationControlSource *self, GstClockTime timestamp, GValue *value) \
-{ \
-  const GValue *ret; \
-  GSequenceIter *iter; \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  iter = gst_interpolation_control_source_find_control_point_iter (self, timestamp); \
-  ret = get_func (self, iter); \
-  g_value_copy (ret, value); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-interpolate_none_get_##type##_value_array (GstInterpolationControlSource *self, \
-    GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  GstClockTime next_ts = 0; \
-  ctype *values = (ctype *) value_array->values; \
-  const GValue *ret_val = NULL; \
-  ctype ret = 0; \
-  GSequenceIter *iter1 = NULL, *iter2 = NULL; \
-  \
-  g_mutex_lock (self->lock); \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    if (!ret_val || ts >= next_ts) { \
-      iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
-      if (!iter1) { \
-        if (G_LIKELY (self->priv->values)) \
-	  iter2 = g_sequence_get_begin_iter (self->priv->values); \
-	else \
-	  iter2 = NULL; \
-      } else { \
-        iter2 = g_sequence_iter_next (iter1); \
-      } \
-      \
-      if (iter2 && !g_sequence_iter_is_end (iter2)) { \
-        GstControlPoint *cp; \
-        \
-        cp = g_sequence_get (iter2); \
-        next_ts = cp->timestamp; \
-      } else { \
-        next_ts = GST_CLOCK_TIME_NONE; \
-      } \
-      \
-      ret_val = get_func (self, iter1); \
-      ret = g_value_get_##type (ret_val); \
-    } \
-    *values = ret; \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-}
-
-DEFINE_NONE_GET_FUNC_COMPARABLE (int);
-DEFINE_NONE_GET (int, gint, _interpolate_none_get_int);
-DEFINE_NONE_GET_FUNC_COMPARABLE (uint);
-DEFINE_NONE_GET (uint, guint, _interpolate_none_get_uint);
-DEFINE_NONE_GET_FUNC_COMPARABLE (long);
-DEFINE_NONE_GET (long, glong, _interpolate_none_get_long);
-DEFINE_NONE_GET_FUNC_COMPARABLE (ulong);
-DEFINE_NONE_GET (ulong, gulong, _interpolate_none_get_ulong);
-DEFINE_NONE_GET_FUNC_COMPARABLE (int64);
-DEFINE_NONE_GET (int64, gint64, _interpolate_none_get_int64);
-DEFINE_NONE_GET_FUNC_COMPARABLE (uint64);
-DEFINE_NONE_GET (uint64, guint64, _interpolate_none_get_uint64);
-DEFINE_NONE_GET_FUNC_COMPARABLE (float);
-DEFINE_NONE_GET (float, gfloat, _interpolate_none_get_float);
-DEFINE_NONE_GET_FUNC_COMPARABLE (double);
-DEFINE_NONE_GET (double, gdouble, _interpolate_none_get_double);
-
-DEFINE_NONE_GET (boolean, gboolean, _interpolate_none_get);
-DEFINE_NONE_GET (enum, gint, _interpolate_none_get);
-DEFINE_NONE_GET (string, const gchar *, _interpolate_none_get);
-
-static GstInterpolateMethod interpolate_none = {
-  (GstControlSourceGetValue) interpolate_none_get_int,
-  (GstControlSourceGetValueArray) interpolate_none_get_int_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_uint,
-  (GstControlSourceGetValueArray) interpolate_none_get_uint_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_long,
-  (GstControlSourceGetValueArray) interpolate_none_get_long_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_ulong,
-  (GstControlSourceGetValueArray) interpolate_none_get_ulong_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_int64,
-  (GstControlSourceGetValueArray) interpolate_none_get_int64_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_uint64,
-  (GstControlSourceGetValueArray) interpolate_none_get_uint64_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_float,
-  (GstControlSourceGetValueArray) interpolate_none_get_float_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_double,
-  (GstControlSourceGetValueArray) interpolate_none_get_double_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_boolean,
-  (GstControlSourceGetValueArray) interpolate_none_get_boolean_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_enum,
-  (GstControlSourceGetValueArray) interpolate_none_get_enum_value_array,
-  (GstControlSourceGetValue) interpolate_none_get_string,
-  (GstControlSourceGetValueArray) interpolate_none_get_string_value_array
-};
-
-/*  returns the default value of the property, except for times with specific values */
-/*  needed for one-shot events, such as notes and triggers */
-static inline const GValue *
-_interpolate_trigger_get (GstInterpolationControlSource * self,
-    GSequenceIter * iter, GstClockTime timestamp)
-{
-  GstControlPoint *cp;
-
-  /* check if there is a value at the registered timestamp */
-  if (iter) {
-    cp = g_sequence_get (iter);
-    if (timestamp == cp->timestamp) {
-      return &cp->value;
-    }
-  }
-  if (self->priv->nvalues > 0)
-    return &self->priv->default_value;
-  else
-    return NULL;
-}
-
-#define DEFINE_TRIGGER_GET_FUNC_COMPARABLE(type) \
-static inline const GValue * \
-_interpolate_trigger_get_##type (GstInterpolationControlSource *self, GSequenceIter *iter, GstClockTime timestamp) \
-{ \
-  GstControlPoint *cp; \
-  \
-  /* check if there is a value at the registered timestamp */ \
-  if (iter) { \
-    cp = g_sequence_get (iter); \
-    if (timestamp == cp->timestamp) { \
-      g##type ret = g_value_get_##type (&cp->value); \
-      if (g_value_get_##type (&self->priv->minimum_value) > ret) \
-        return &self->priv->minimum_value; \
-      else if (g_value_get_##type (&self->priv->maximum_value) < ret) \
-        return &self->priv->maximum_value; \
-      else \
-        return &cp->value; \
-    } \
-  } \
-  \
-  if (self->priv->nvalues > 0) \
-    return &self->priv->default_value; \
-  else \
-    return NULL; \
-}
-
-#define DEFINE_TRIGGER_GET(type, ctype, get_func) \
-static gboolean \
-interpolate_trigger_get_##type (GstInterpolationControlSource *self, GstClockTime timestamp, GValue *value) \
-{ \
-  const GValue *ret; \
-  GSequenceIter *iter; \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  iter = gst_interpolation_control_source_find_control_point_iter (self, timestamp); \
-  ret = get_func (self, iter, timestamp); \
-  if (!ret) { \
-    g_mutex_unlock (self->lock); \
-    return FALSE; \
-  } \
-  \
-  g_value_copy (ret, value); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-interpolate_trigger_get_##type##_value_array (GstInterpolationControlSource *self, \
-    GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  GstClockTime next_ts = 0; \
-  ctype *values = (ctype *) value_array->values; \
-  const GValue *ret_val = NULL; \
-  ctype ret = 0; \
-  GSequenceIter *iter1 = NULL, *iter2 = NULL; \
-  gboolean triggered = FALSE; \
-  \
-  g_mutex_lock (self->lock); \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    if (!ret_val || ts >= next_ts) { \
-      iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
-      if (!iter1) { \
-        if (G_LIKELY (self->priv->values)) \
-          iter2 = g_sequence_get_begin_iter (self->priv->values); \
-	else \
-	  iter2 = NULL; \
-      } else { \
-        iter2 = g_sequence_iter_next (iter1); \
-      } \
-      \
-      if (iter2 && !g_sequence_iter_is_end (iter2)) { \
-        GstControlPoint *cp; \
-        \
-        cp = g_sequence_get (iter2); \
-        next_ts = cp->timestamp; \
-      } else { \
-        next_ts = GST_CLOCK_TIME_NONE; \
-      } \
-      \
-      ret_val = get_func (self, iter1, ts); \
-      if (!ret_val) { \
-        g_mutex_unlock (self->lock); \
-        return FALSE; \
-      } \
-      ret = g_value_get_##type (ret_val); \
-      triggered = TRUE; \
-    } else if (triggered) { \
-      ret_val = get_func (self, iter1, ts); \
-      if (!ret_val) { \
-        g_mutex_unlock (self->lock); \
-        return FALSE; \
-      } \
-      ret = g_value_get_##type (ret_val); \
-      triggered = FALSE; \
-    } \
-    *values = ret; \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-}
-
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (int);
-DEFINE_TRIGGER_GET (int, gint, _interpolate_trigger_get_int);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (uint);
-DEFINE_TRIGGER_GET (uint, guint, _interpolate_trigger_get_uint);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (long);
-DEFINE_TRIGGER_GET (long, glong, _interpolate_trigger_get_long);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (ulong);
-DEFINE_TRIGGER_GET (ulong, gulong, _interpolate_trigger_get_ulong);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (int64);
-DEFINE_TRIGGER_GET (int64, gint64, _interpolate_trigger_get_int64);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (uint64);
-DEFINE_TRIGGER_GET (uint64, guint64, _interpolate_trigger_get_uint64);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (float);
-DEFINE_TRIGGER_GET (float, gfloat, _interpolate_trigger_get_float);
-DEFINE_TRIGGER_GET_FUNC_COMPARABLE (double);
-DEFINE_TRIGGER_GET (double, gdouble, _interpolate_trigger_get_double);
-
-DEFINE_TRIGGER_GET (boolean, gboolean, _interpolate_trigger_get);
-DEFINE_TRIGGER_GET (enum, gint, _interpolate_trigger_get);
-DEFINE_TRIGGER_GET (string, const gchar *, _interpolate_trigger_get);
-
-static GstInterpolateMethod interpolate_trigger = {
-  (GstControlSourceGetValue) interpolate_trigger_get_int,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_int_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_uint,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_uint_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_long,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_long_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_ulong,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_ulong_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_int64,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_int64_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_uint64,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_uint64_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_float,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_float_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_double,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_double_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_boolean,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_boolean_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_enum,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_enum_value_array,
-  (GstControlSourceGetValue) interpolate_trigger_get_string,
-  (GstControlSourceGetValueArray) interpolate_trigger_get_string_value_array
-};
-
-/*  linear interpolation */
-/*  smoothes inbetween values */
-#define DEFINE_LINEAR_GET(vtype, round, convert) \
-static inline void \
-_interpolate_linear_internal_##vtype (GstClockTime timestamp1, g##vtype value1, GstClockTime timestamp2, g##vtype value2, GstClockTime timestamp, g##vtype min, g##vtype max, g##vtype *ret) \
-{ \
-  if (GST_CLOCK_TIME_IS_VALID (timestamp2)) { \
-    gdouble slope; \
-    \
-    slope = ((gdouble) convert (value2) - (gdouble) convert (value1)) / gst_guint64_to_gdouble (timestamp2 - timestamp1); \
-    \
-    if (round) \
-      *ret = (g##vtype) (convert (value1) + gst_guint64_to_gdouble (timestamp - timestamp1) * slope + 0.5); \
-    else \
-      *ret = (g##vtype) (convert (value1) + gst_guint64_to_gdouble (timestamp - timestamp1) * slope); \
-  } else { \
-    *ret = value1; \
-  } \
-  *ret = CLAMP (*ret, min, max); \
-} \
-\
-static gboolean \
-interpolate_linear_get_##vtype (GstInterpolationControlSource *self, GstClockTime timestamp, GValue *value) \
-{ \
-  g##vtype ret, min, max; \
-  GSequenceIter *iter; \
-  GstControlPoint *cp1, *cp2 = NULL, cp = {0, }; \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  min = g_value_get_##vtype (&self->priv->minimum_value); \
-  max = g_value_get_##vtype (&self->priv->maximum_value); \
-  \
-  iter = gst_interpolation_control_source_find_control_point_iter (self, timestamp); \
-  if (iter) { \
-    cp1 = g_sequence_get (iter); \
-    iter = g_sequence_iter_next (iter); \
-  } else { \
-    cp.timestamp = G_GUINT64_CONSTANT(0); \
-    g_value_init (&cp.value, self->priv->type); \
-    g_value_copy (&self->priv->default_value, &cp.value); \
-    cp1 = &cp; \
-    if (G_LIKELY (self->priv->values)) \
-      iter = g_sequence_get_begin_iter (self->priv->values); \
-  } \
-  if (iter && !g_sequence_iter_is_end (iter)) \
-    cp2 = g_sequence_get (iter); \
-  \
-  _interpolate_linear_internal_##vtype (cp1->timestamp, g_value_get_##vtype (&cp1->value), (cp2 ? cp2->timestamp : GST_CLOCK_TIME_NONE), (cp2 ? g_value_get_##vtype (&cp2->value) : 0), timestamp, min, max, &ret); \
-  g_value_set_##vtype (value, ret); \
-  g_mutex_unlock (self->lock); \
-  if (cp1 == &cp) \
-    g_value_unset (&cp.value); \
-  return TRUE; \
-} \
-\
-static gboolean \
-interpolate_linear_get_##vtype##_value_array (GstInterpolationControlSource *self, \
-    GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  GstClockTime next_ts = 0; \
-  g##vtype *values = (g##vtype *) value_array->values; \
-  GSequenceIter *iter1, *iter2 = NULL; \
-  GstControlPoint *cp1 = NULL, *cp2 = NULL, cp = {0, }; \
-  g##vtype val1 = 0, val2 = 0, min, max; \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  cp.timestamp = G_GUINT64_CONSTANT(0); \
-  g_value_init (&cp.value, self->priv->type); \
-  g_value_copy (&self->priv->default_value, &cp.value); \
-  \
-  min = g_value_get_##vtype (&self->priv->minimum_value); \
-  max = g_value_get_##vtype (&self->priv->maximum_value); \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    if (timestamp >= next_ts) { \
-      iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
-      if (!iter1) { \
-        cp1 = &cp; \
-	if (G_LIKELY (self->priv->values)) \
-	  iter2 = g_sequence_get_begin_iter (self->priv->values); \
-	else \
-	  iter2 = NULL; \
-      } else { \
-        cp1 = g_sequence_get (iter1); \
-        iter2 = g_sequence_iter_next (iter1); \
-      } \
-      \
-      if (iter2 && !g_sequence_iter_is_end (iter2)) { \
-        cp2 = g_sequence_get (iter2); \
-        next_ts = cp2->timestamp; \
-      } else { \
-        next_ts = GST_CLOCK_TIME_NONE; \
-      } \
-      val1 = g_value_get_##vtype (&cp1->value); \
-      if (cp2) \
-        val2 = g_value_get_##vtype (&cp2->value); \
-    } \
-    _interpolate_linear_internal_##vtype (cp1->timestamp, val1, (cp2 ? cp2->timestamp : GST_CLOCK_TIME_NONE), (cp2 ? val2 : 0), ts, min, max, values); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  g_value_unset (&cp.value); \
-  return TRUE; \
-}
-
-DEFINE_LINEAR_GET (int, TRUE, EMPTY);
-DEFINE_LINEAR_GET (uint, TRUE, EMPTY);
-DEFINE_LINEAR_GET (long, TRUE, EMPTY);
-DEFINE_LINEAR_GET (ulong, TRUE, EMPTY);
-DEFINE_LINEAR_GET (int64, TRUE, EMPTY);
-DEFINE_LINEAR_GET (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_LINEAR_GET (float, FALSE, EMPTY);
-DEFINE_LINEAR_GET (double, FALSE, EMPTY);
-
-static GstInterpolateMethod interpolate_linear = {
-  (GstControlSourceGetValue) interpolate_linear_get_int,
-  (GstControlSourceGetValueArray) interpolate_linear_get_int_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_uint,
-  (GstControlSourceGetValueArray) interpolate_linear_get_uint_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_long,
-  (GstControlSourceGetValueArray) interpolate_linear_get_long_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_ulong,
-  (GstControlSourceGetValueArray) interpolate_linear_get_ulong_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_int64,
-  (GstControlSourceGetValueArray) interpolate_linear_get_int64_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_uint64,
-  (GstControlSourceGetValueArray) interpolate_linear_get_uint64_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_float,
-  (GstControlSourceGetValueArray) interpolate_linear_get_float_value_array,
-  (GstControlSourceGetValue) interpolate_linear_get_double,
-  (GstControlSourceGetValueArray) interpolate_linear_get_double_value_array,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL
-};
-
-/*  square interpolation */
-
-/*  cubic interpolation */
-
-/* The following functions implement a natural cubic spline interpolator.
- * For details look at http://en.wikipedia.org/wiki/Spline_interpolation
- *
- * Instead of using a real matrix with n^2 elements for the linear system
- * of equations we use three arrays o, p, q to hold the tridiagonal matrix
- * as following to save memory:
- *
- * p[0] q[0]    0    0    0
- * o[1] p[1] q[1]    0    0
- *    0 o[2] p[2] q[2]    .
- *    .    .    .    .    .
- */
-
-#define DEFINE_CUBIC_GET(vtype,round, convert) \
-static void \
-_interpolate_cubic_update_cache_##vtype (GstInterpolationControlSource *self) \
-{ \
-  gint i, n = self->priv->nvalues; \
-  gdouble *o = g_new0 (gdouble, n); \
-  gdouble *p = g_new0 (gdouble, n); \
-  gdouble *q = g_new0 (gdouble, n); \
-  \
-  gdouble *h = g_new0 (gdouble, n); \
-  gdouble *b = g_new0 (gdouble, n); \
-  gdouble *z = g_new0 (gdouble, n); \
-  \
-  GSequenceIter *iter; \
-  GstControlPoint *cp; \
-  GstClockTime x, x_next; \
-  g##vtype y_prev, y, y_next; \
-  \
-  /* Fill linear system of equations */ \
-  iter = g_sequence_get_begin_iter (self->priv->values); \
-  cp = g_sequence_get (iter); \
-  x = cp->timestamp; \
-  y = g_value_get_##vtype (&cp->value); \
-  \
-  p[0] = 1.0; \
-  \
-  iter = g_sequence_iter_next (iter); \
-  cp = g_sequence_get (iter); \
-  x_next = cp->timestamp; \
-  y_next = g_value_get_##vtype (&cp->value); \
-  h[0] = gst_guint64_to_gdouble (x_next - x); \
-  \
-  for (i = 1; i < n-1; i++) { \
-    /* Shuffle x and y values */ \
-    y_prev = y; \
-    x = x_next; \
-    y = y_next; \
-    iter = g_sequence_iter_next (iter); \
-    cp = g_sequence_get (iter); \
-    x_next = cp->timestamp; \
-    y_next = g_value_get_##vtype (&cp->value); \
-    \
-    h[i] = gst_guint64_to_gdouble (x_next - x); \
-    o[i] = h[i-1]; \
-    p[i] = 2.0 * (h[i-1] + h[i]); \
-    q[i] = h[i]; \
-    b[i] = convert (y_next - y) / h[i] - convert (y - y_prev) / h[i-1]; \
-  } \
-  p[n-1] = 1.0; \
-  \
-  /* Use Gauss elimination to set everything below the \
-   * diagonal to zero */ \
-  for (i = 1; i < n-1; i++) { \
-    gdouble a = o[i] / p[i-1]; \
-    p[i] -= a * q[i-1]; \
-    b[i] -= a * b[i-1]; \
-  } \
-  \
-  /* Solve everything else from bottom to top */ \
-  for (i = n-2; i > 0; i--) \
-    z[i] = (b[i] - q[i] * z[i+1]) / p[i]; \
-  \
-  /* Save cache next in the GstControlPoint */ \
-  \
-  iter = g_sequence_get_begin_iter (self->priv->values); \
-  for (i = 0; i < n; i++) { \
-    cp = g_sequence_get (iter); \
-    cp->cache.cubic.h = h[i]; \
-    cp->cache.cubic.z = z[i]; \
-    iter = g_sequence_iter_next (iter); \
-  } \
-  \
-  /* Free our temporary arrays */ \
-  g_free (o); \
-  g_free (p); \
-  g_free (q); \
-  g_free (h); \
-  g_free (b); \
-  g_free (z); \
-} \
-\
-static inline void \
-_interpolate_cubic_get_##vtype (GstInterpolationControlSource *self, GstControlPoint *cp1, g##vtype value1, GstControlPoint *cp2, g##vtype value2, GstClockTime timestamp, g##vtype min, g##vtype max, g##vtype *ret) \
-{ \
-  if (!self->priv->valid_cache) { \
-    _interpolate_cubic_update_cache_##vtype (self); \
-    self->priv->valid_cache = TRUE; \
-  } \
-  \
-  if (cp2) { \
-    gdouble diff1, diff2; \
-    gdouble out; \
-    \
-    diff1 = gst_guint64_to_gdouble (timestamp - cp1->timestamp); \
-    diff2 = gst_guint64_to_gdouble (cp2->timestamp - timestamp); \
-    \
-    out = (cp2->cache.cubic.z * diff1 * diff1 * diff1 + cp1->cache.cubic.z * diff2 * diff2 * diff2) / cp1->cache.cubic.h; \
-    out += (convert (value2) / cp1->cache.cubic.h - cp1->cache.cubic.h * cp2->cache.cubic.z) * diff1; \
-    out += (convert (value1) / cp1->cache.cubic.h - cp1->cache.cubic.h * cp1->cache.cubic.z) * diff2; \
-    \
-    if (round) \
-      *ret = (g##vtype) (out + 0.5); \
-    else \
-      *ret = (g##vtype) out; \
-  } \
-  else { \
-    *ret = value1; \
-  } \
-  *ret = CLAMP (*ret, min, max); \
-} \
-\
-static gboolean \
-interpolate_cubic_get_##vtype (GstInterpolationControlSource *self, GstClockTime timestamp, GValue *value) \
-{ \
-  g##vtype ret, min, max; \
-  GSequenceIter *iter; \
-  GstControlPoint *cp1, *cp2 = NULL, cp = {0, }; \
-  \
-  if (self->priv->nvalues <= 2) \
-    return interpolate_linear_get_##vtype (self, timestamp, value); \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  min = g_value_get_##vtype (&self->priv->minimum_value); \
-  max = g_value_get_##vtype (&self->priv->maximum_value); \
-  \
-  iter = gst_interpolation_control_source_find_control_point_iter (self, timestamp); \
-  if (iter) { \
-    cp1 = g_sequence_get (iter); \
-    iter = g_sequence_iter_next (iter); \
-  } else { \
-    cp.timestamp = G_GUINT64_CONSTANT(0); \
-    g_value_init (&cp.value, self->priv->type); \
-    g_value_copy (&self->priv->default_value, &cp.value); \
-    cp1 = &cp; \
-    if (G_LIKELY (self->priv->values)) \
-      iter = g_sequence_get_begin_iter (self->priv->values); \
-  } \
-  if (iter && !g_sequence_iter_is_end (iter)) \
-    cp2 = g_sequence_get (iter); \
-  \
-  _interpolate_cubic_get_##vtype (self, cp1, g_value_get_##vtype (&cp1->value), cp2, (cp2 ? g_value_get_##vtype (&cp2->value) : 0), timestamp, min, max, &ret); \
-  g_value_set_##vtype (value, ret); \
-  g_mutex_unlock (self->lock); \
-  if (cp1 == &cp) \
-    g_value_unset (&cp.value); \
-  return TRUE; \
-} \
-\
-static gboolean \
-interpolate_cubic_get_##vtype##_value_array (GstInterpolationControlSource *self, \
-    GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  GstClockTime next_ts = 0; \
-  g##vtype *values = (g##vtype *) value_array->values; \
-  GSequenceIter *iter1, *iter2 = NULL; \
-  GstControlPoint *cp1 = NULL, *cp2 = NULL, cp = {0, }; \
-  g##vtype val1 = 0, val2 = 0, min, max; \
-  \
-  if (self->priv->nvalues <= 2) \
-    return interpolate_linear_get_##vtype##_value_array (self, timestamp, value_array); \
-  \
-  g_mutex_lock (self->lock); \
-  \
-  cp.timestamp = G_GUINT64_CONSTANT(0); \
-  g_value_init (&cp.value, self->priv->type); \
-  g_value_copy (&self->priv->default_value, &cp.value); \
-  \
-  min = g_value_get_##vtype (&self->priv->minimum_value); \
-  max = g_value_get_##vtype (&self->priv->maximum_value); \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    if (timestamp >= next_ts) { \
-      iter1 = gst_interpolation_control_source_find_control_point_iter (self, ts); \
-      if (!iter1) { \
-        cp1 = &cp; \
-	if (G_LIKELY (self->priv->values)) \
-	  iter2 = g_sequence_get_begin_iter (self->priv->values); \
-	else \
-	  iter2 = NULL; \
-      } else { \
-        cp1 = g_sequence_get (iter1); \
-        iter2 = g_sequence_iter_next (iter1); \
-      } \
-      \
-      if (iter2 && !g_sequence_iter_is_end (iter2)) { \
-        cp2 = g_sequence_get (iter2); \
-        next_ts = cp2->timestamp; \
-      } else { \
-        next_ts = GST_CLOCK_TIME_NONE; \
-      } \
-      val1 = g_value_get_##vtype (&cp1->value); \
-      if (cp2) \
-        val2 = g_value_get_##vtype (&cp2->value); \
-    } \
-    _interpolate_cubic_get_##vtype (self, cp1, val1, cp2, val2, timestamp, min, max, values); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  g_value_unset (&cp.value); \
-  return TRUE; \
-}
-
-DEFINE_CUBIC_GET (int, TRUE, EMPTY);
-DEFINE_CUBIC_GET (uint, TRUE, EMPTY);
-DEFINE_CUBIC_GET (long, TRUE, EMPTY);
-DEFINE_CUBIC_GET (ulong, TRUE, EMPTY);
-DEFINE_CUBIC_GET (int64, TRUE, EMPTY);
-DEFINE_CUBIC_GET (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_CUBIC_GET (float, FALSE, EMPTY);
-DEFINE_CUBIC_GET (double, FALSE, EMPTY);
-
-static GstInterpolateMethod interpolate_cubic = {
-  (GstControlSourceGetValue) interpolate_cubic_get_int,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_int_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_uint,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_uint_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_long,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_long_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_ulong,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_ulong_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_int64,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_int64_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_uint64,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_uint64_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_float,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_float_value_array,
-  (GstControlSourceGetValue) interpolate_cubic_get_double,
-  (GstControlSourceGetValueArray) interpolate_cubic_get_double_value_array,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL,
-  (GstControlSourceGetValue) NULL,
-  (GstControlSourceGetValueArray) NULL
-};
-
-/*  register all interpolation methods */
-GstInterpolateMethod *priv_gst_interpolation_methods[] = {
-  &interpolate_none,
-  &interpolate_trigger,
-  &interpolate_linear,
-  &interpolate_cubic,
-  &interpolate_cubic
-};
-
-guint priv_gst_num_interpolation_methods =
-G_N_ELEMENTS (priv_gst_interpolation_methods);
diff --git a/libs/gst/controller/gstinterpolationcontrolsource.c b/libs/gst/controller/gstinterpolationcontrolsource.c
index 8f7d1d8..d184f7d 100644
--- a/libs/gst/controller/gstinterpolationcontrolsource.c
+++ b/libs/gst/controller/gstinterpolationcontrolsource.c
@@ -29,9 +29,8 @@
  * control points. It supports several interpolation modes and property types.
  *
  * To use #GstInterpolationControlSource get a new instance by calling
- * gst_interpolation_control_source_new(), bind it to a #GParamSpec, select a interpolation mode with
- * gst_interpolation_control_source_set_interpolation_mode() and set some control points by calling
- * gst_interpolation_control_source_set().
+ * gst_interpolation_control_source_new(), bind it to a #GParamSpec and set some
+ * control points by calling gst_timed_value_control_source_set().
  *
  * All functions are MT-safe.
  *
@@ -40,644 +39,552 @@
 #include <glib-object.h>
 #include <gst/gst.h>
 
-#include "gstcontrolsource.h"
 #include "gstinterpolationcontrolsource.h"
-#include "gstinterpolationcontrolsourceprivate.h"
+#include "gst/glib-compat-private.h"
+#include "gst/math-compat.h"
 
 #define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
-G_DEFINE_TYPE (GstInterpolationControlSource, gst_interpolation_control_source,
-    GST_TYPE_CONTROL_SOURCE);
-
-static GObjectClass *parent_class = NULL;
-
-/*
- * gst_control_point_free:
- * @prop: the object to free
- *
- * Private method which frees all data allocated by a #GstControlPoint
- * instance.
- */
-static void
-gst_control_point_free (GstControlPoint * cp)
+/*  steps-like (no-)interpolation, default */
+/*  just returns the value for the most recent key-frame */
+static inline gdouble
+_interpolate_none (GstTimedValueControlSource * self, GSequenceIter * iter)
 {
-  g_return_if_fail (cp);
+  GstControlPoint *cp = g_sequence_get (iter);
 
-  g_value_unset (&cp->value);
-  g_slice_free (GstControlPoint, cp);
+  return cp->value;
 }
 
-static void
-gst_interpolation_control_source_reset (GstInterpolationControlSource * self)
+static gboolean
+interpolate_none_get (GstTimedValueControlSource * self, GstClockTime timestamp,
+    gdouble * value)
 {
-  GstControlSource *csource = (GstControlSource *) self;
+  gboolean ret = FALSE;
+  GSequenceIter *iter;
 
-  csource->get_value = NULL;
-  csource->get_value_array = NULL;
+  g_mutex_lock (&self->lock);
 
-  self->priv->type = self->priv->base = G_TYPE_INVALID;
+  iter =
+      gst_timed_value_control_source_find_control_point_iter (self, timestamp);
+  if (iter) {
+    *value = _interpolate_none (self, iter);
+    ret = TRUE;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
 
-  if (G_IS_VALUE (&self->priv->default_value))
-    g_value_unset (&self->priv->default_value);
-  if (G_IS_VALUE (&self->priv->minimum_value))
-    g_value_unset (&self->priv->minimum_value);
-  if (G_IS_VALUE (&self->priv->maximum_value))
-    g_value_unset (&self->priv->maximum_value);
+static gboolean
+interpolate_none_get_value_array (GstTimedValueControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  gboolean ret = FALSE;
+  guint i;
+  GstClockTime ts = timestamp;
+  GstClockTime next_ts = 0;
+  gdouble val;
+  GSequenceIter *iter1 = NULL, *iter2 = NULL;
 
-  if (self->priv->values) {
-    g_sequence_free (self->priv->values);
-    self->priv->values = NULL;
+  g_mutex_lock (&self->lock);
+
+  for (i = 0; i < n_values; i++) {
+    GST_LOG ("values[%3d] : ts=%" GST_TIME_FORMAT ", next_ts=%" GST_TIME_FORMAT,
+        i, GST_TIME_ARGS (ts), GST_TIME_ARGS (next_ts));
+    val = NAN;
+    if (ts >= next_ts) {
+      iter1 = gst_timed_value_control_source_find_control_point_iter (self, ts);
+      if (!iter1) {
+        if (G_LIKELY (self->values))
+          iter2 = g_sequence_get_begin_iter (self->values);
+        else
+          iter2 = NULL;
+      } else {
+        iter2 = g_sequence_iter_next (iter1);
+      }
+
+      if (iter2 && !g_sequence_iter_is_end (iter2)) {
+        GstControlPoint *cp;
+
+        cp = g_sequence_get (iter2);
+        next_ts = cp->timestamp;
+      } else {
+        next_ts = GST_CLOCK_TIME_NONE;
+      }
+    }
+    if (iter1) {
+      val = _interpolate_none (self, iter1);
+      ret = TRUE;
+      GST_LOG ("values[%3d]=%lf", i, val);
+    } else {
+      GST_LOG ("values[%3d]=-", i);
+    }
+    *values = val;
+    ts += interval;
+    values++;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+
+
+/*  linear interpolation */
+/*  smoothes inbetween values */
+static inline gdouble
+_interpolate_linear (GstClockTime timestamp1, gdouble value1,
+    GstClockTime timestamp2, gdouble value2, GstClockTime timestamp)
+{
+  if (GST_CLOCK_TIME_IS_VALID (timestamp2)) {
+    gdouble slope;
+
+    slope =
+        (value2 - value1) / gst_guint64_to_gdouble (timestamp2 - timestamp1);
+    return value1 + (gst_guint64_to_gdouble (timestamp - timestamp1) * slope);
+  } else {
+    return value1;
+  }
+}
+
+static gboolean
+interpolate_linear_get (GstTimedValueControlSource * self,
+    GstClockTime timestamp, gdouble * value)
+{
+  gboolean ret = FALSE;
+  GSequenceIter *iter;
+  GstControlPoint *cp1, *cp2;
+
+  g_mutex_lock (&self->lock);
+
+  iter =
+      gst_timed_value_control_source_find_control_point_iter (self, timestamp);
+  if (iter) {
+    cp1 = g_sequence_get (iter);
+    iter = g_sequence_iter_next (iter);
+    if (iter && !g_sequence_iter_is_end (iter)) {
+      cp2 = g_sequence_get (iter);
+    } else {
+      cp2 = NULL;
+    }
+
+    *value = _interpolate_linear (cp1->timestamp, cp1->value,
+        (cp2 ? cp2->timestamp : GST_CLOCK_TIME_NONE),
+        (cp2 ? cp2->value : 0.0), timestamp);
+    ret = TRUE;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+static gboolean
+interpolate_linear_get_value_array (GstTimedValueControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  gboolean ret = FALSE;
+  guint i;
+  GstClockTime ts = timestamp;
+  GstClockTime next_ts = 0;
+  gdouble val;
+  GSequenceIter *iter1, *iter2 = NULL;
+  GstControlPoint *cp1 = NULL, *cp2 = NULL;
+
+  g_mutex_lock (&self->lock);
+
+  for (i = 0; i < n_values; i++) {
+    GST_LOG ("values[%3d] : ts=%" GST_TIME_FORMAT ", next_ts=%" GST_TIME_FORMAT,
+        i, GST_TIME_ARGS (ts), GST_TIME_ARGS (next_ts));
+    val = NAN;
+    if (ts >= next_ts) {
+      cp1 = cp2 = NULL;
+      iter1 = gst_timed_value_control_source_find_control_point_iter (self, ts);
+      if (!iter1) {
+        if (G_LIKELY (self->values))
+          iter2 = g_sequence_get_begin_iter (self->values);
+        else
+          iter2 = NULL;
+      } else {
+        cp1 = g_sequence_get (iter1);
+        iter2 = g_sequence_iter_next (iter1);
+      }
+
+      if (iter2 && !g_sequence_iter_is_end (iter2)) {
+        cp2 = g_sequence_get (iter2);
+        next_ts = cp2->timestamp;
+      } else {
+        next_ts = GST_CLOCK_TIME_NONE;
+      }
+    }
+    if (cp1) {
+      val = _interpolate_linear (cp1->timestamp, cp1->value,
+          (cp2 ? cp2->timestamp : GST_CLOCK_TIME_NONE),
+          (cp2 ? cp2->value : 0.0), ts);
+      ret = TRUE;
+      GST_LOG ("values[%3d]=%lf", i, val);
+    } else {
+      GST_LOG ("values[%3d]=-", i);
+    }
+    *values = val;
+    ts += interval;
+    values++;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+
+
+/*  cubic interpolation */
+
+/* The following functions implement a natural cubic spline interpolator.
+ * For details look at http://en.wikipedia.org/wiki/Spline_interpolation
+ *
+ * Instead of using a real matrix with n^2 elements for the linear system
+ * of equations we use three arrays o, p, q to hold the tridiagonal matrix
+ * as following to save memory:
+ *
+ * p[0] q[0]    0    0    0
+ * o[1] p[1] q[1]    0    0
+ *    0 o[2] p[2] q[2]    .
+ *    .    .    .    .    .
+ */
+
+static void
+_interpolate_cubic_update_cache (GstTimedValueControlSource * self)
+{
+  gint i, n = self->nvalues;
+  gdouble *o = g_new0 (gdouble, n);
+  gdouble *p = g_new0 (gdouble, n);
+  gdouble *q = g_new0 (gdouble, n);
+
+  gdouble *h = g_new0 (gdouble, n);
+  gdouble *b = g_new0 (gdouble, n);
+  gdouble *z = g_new0 (gdouble, n);
+
+  GSequenceIter *iter;
+  GstControlPoint *cp;
+  GstClockTime x, x_next;
+  gdouble y_prev, y, y_next;
+
+  /* Fill linear system of equations */
+  iter = g_sequence_get_begin_iter (self->values);
+  cp = g_sequence_get (iter);
+  x = cp->timestamp;
+  y = cp->value;
+
+  p[0] = 1.0;
+
+  iter = g_sequence_iter_next (iter);
+  cp = g_sequence_get (iter);
+  x_next = cp->timestamp;
+  y_next = cp->value;
+  h[0] = gst_guint64_to_gdouble (x_next - x);
+
+  for (i = 1; i < n - 1; i++) {
+    /* Shuffle x and y values */
+    y_prev = y;
+    x = x_next;
+    y = y_next;
+    iter = g_sequence_iter_next (iter);
+    cp = g_sequence_get (iter);
+    x_next = cp->timestamp;
+    y_next = cp->value;
+
+    h[i] = gst_guint64_to_gdouble (x_next - x);
+    o[i] = h[i - 1];
+    p[i] = 2.0 * (h[i - 1] + h[i]);
+    q[i] = h[i];
+    b[i] = (y_next - y) / h[i] - (y - y_prev) / h[i - 1];
+  }
+  p[n - 1] = 1.0;
+
+  /* Use Gauss elimination to set everything below the diagonal to zero */
+  for (i = 1; i < n - 1; i++) {
+    gdouble a = o[i] / p[i - 1];
+    p[i] -= a * q[i - 1];
+    b[i] -= a * b[i - 1];
   }
 
-  self->priv->nvalues = 0;
-  self->priv->valid_cache = FALSE;
+  /* Solve everything else from bottom to top */
+  for (i = n - 2; i > 0; i--)
+    z[i] = (b[i] - q[i] * z[i + 1]) / p[i];
+
+  /* Save cache next in the GstControlPoint */
+
+  iter = g_sequence_get_begin_iter (self->values);
+  for (i = 0; i < n; i++) {
+    cp = g_sequence_get (iter);
+    cp->cache.cubic.h = h[i];
+    cp->cache.cubic.z = z[i];
+    iter = g_sequence_iter_next (iter);
+  }
+
+  /* Free our temporary arrays */
+  g_free (o);
+  g_free (p);
+  g_free (q);
+  g_free (h);
+  g_free (b);
+  g_free (z);
 }
 
+static inline gdouble
+_interpolate_cubic (GstTimedValueControlSource * self, GstControlPoint * cp1,
+    gdouble value1, GstControlPoint * cp2, gdouble value2,
+    GstClockTime timestamp)
+{
+  if (!self->valid_cache) {
+    _interpolate_cubic_update_cache (self);
+    self->valid_cache = TRUE;
+  }
+
+  if (cp2) {
+    gdouble diff1, diff2;
+    gdouble out;
+
+    diff1 = gst_guint64_to_gdouble (timestamp - cp1->timestamp);
+    diff2 = gst_guint64_to_gdouble (cp2->timestamp - timestamp);
+
+    out =
+        (cp2->cache.cubic.z * diff1 * diff1 * diff1 +
+        cp1->cache.cubic.z * diff2 * diff2 * diff2) / cp1->cache.cubic.h;
+    out +=
+        (value2 / cp1->cache.cubic.h -
+        cp1->cache.cubic.h * cp2->cache.cubic.z) * diff1;
+    out +=
+        (value1 / cp1->cache.cubic.h -
+        cp1->cache.cubic.h * cp1->cache.cubic.z) * diff2;
+    return out;
+  } else {
+    return value1;
+  }
+}
+
+static gboolean
+interpolate_cubic_get (GstTimedValueControlSource * self,
+    GstClockTime timestamp, gdouble * value)
+{
+  gboolean ret = FALSE;
+  GSequenceIter *iter;
+  GstControlPoint *cp1, *cp2 = NULL;
+
+  if (self->nvalues <= 2)
+    return interpolate_linear_get (self, timestamp, value);
+
+  g_mutex_lock (&self->lock);
+
+  iter =
+      gst_timed_value_control_source_find_control_point_iter (self, timestamp);
+  if (iter) {
+    cp1 = g_sequence_get (iter);
+    iter = g_sequence_iter_next (iter);
+    if (iter && !g_sequence_iter_is_end (iter)) {
+      cp2 = g_sequence_get (iter);
+    } else {
+      cp2 = NULL;
+    }
+    *value = _interpolate_cubic (self, cp1, cp1->value, cp2,
+        (cp2 ? cp2->value : 0.0), timestamp);
+    ret = TRUE;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+static gboolean
+interpolate_cubic_get_value_array (GstTimedValueControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  gboolean ret = FALSE;
+  guint i;
+  GstClockTime ts = timestamp;
+  GstClockTime next_ts = 0;
+  gdouble val;
+  GSequenceIter *iter1, *iter2 = NULL;
+  GstControlPoint *cp1 = NULL, *cp2 = NULL;
+
+  if (self->nvalues <= 2)
+    return interpolate_linear_get_value_array (self, timestamp, interval,
+        n_values, values);
+
+  g_mutex_lock (&self->lock);
+
+  for (i = 0; i < n_values; i++) {
+    GST_LOG ("values[%3d] : ts=%" GST_TIME_FORMAT ", next_ts=%" GST_TIME_FORMAT,
+        i, GST_TIME_ARGS (ts), GST_TIME_ARGS (next_ts));
+    val = NAN;
+    if (ts >= next_ts) {
+      cp1 = cp2 = NULL;
+      iter1 = gst_timed_value_control_source_find_control_point_iter (self, ts);
+      if (!iter1) {
+        if (G_LIKELY (self->values))
+          iter2 = g_sequence_get_begin_iter (self->values);
+        else
+          iter2 = NULL;
+      } else {
+        cp1 = g_sequence_get (iter1);
+        iter2 = g_sequence_iter_next (iter1);
+      }
+
+      if (iter2 && !g_sequence_iter_is_end (iter2)) {
+        cp2 = g_sequence_get (iter2);
+        next_ts = cp2->timestamp;
+      } else {
+        next_ts = GST_CLOCK_TIME_NONE;
+      }
+    }
+    if (cp1) {
+      val = _interpolate_cubic (self, cp1, cp1->value, cp2,
+          (cp2 ? cp2->value : 0.0), ts);
+      ret = TRUE;
+      GST_LOG ("values[%3d]=%lf", i, val);
+    } else {
+      GST_LOG ("values[%3d]=-", i);
+    }
+    *values = val;
+    ts += interval;
+    values++;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+static struct
+{
+  GstControlSourceGetValue get;
+  GstControlSourceGetValueArray get_value_array;
+} interpolation_modes[] = {
+  {
+  (GstControlSourceGetValue) interpolate_none_get,
+        (GstControlSourceGetValueArray) interpolate_none_get_value_array}, {
+  (GstControlSourceGetValue) interpolate_linear_get,
+        (GstControlSourceGetValueArray) interpolate_linear_get_value_array}, {
+  (GstControlSourceGetValue) interpolate_cubic_get,
+        (GstControlSourceGetValueArray) interpolate_cubic_get_value_array}
+};
+
+static const guint num_interpolation_modes = G_N_ELEMENTS (interpolation_modes);
+
+enum
+{
+  PROP_MODE = 1
+};
+
+GType
+gst_interpolation_mode_get_type (void)
+{
+  static gsize gtype = 0;
+  static const GEnumValue values[] = {
+    {GST_INTERPOLATION_MODE_NONE, "GST_INTERPOLATION_MODE_NONE", "none"},
+    {GST_INTERPOLATION_MODE_LINEAR, "GST_INTERPOLATION_MODE_LINEAR", "linear"},
+    {GST_INTERPOLATION_MODE_CUBIC, "GST_INTERPOLATION_MODE_CUBIC", "cubic"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&gtype)) {
+    GType tmp = g_enum_register_static ("GstInterpolationMode", values);
+    g_once_init_leave (&gtype, tmp);
+  }
+
+  return (GType) gtype;
+}
+
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "interpolation control source", 0, \
+    "timeline value interpolating control source")
+
+G_DEFINE_TYPE_WITH_CODE (GstInterpolationControlSource,
+    gst_interpolation_control_source, GST_TYPE_TIMED_VALUE_CONTROL_SOURCE,
+    _do_init);
+
+struct _GstInterpolationControlSourcePrivate
+{
+  GstInterpolationMode interpolation_mode;
+};
+
 /**
  * gst_interpolation_control_source_new:
  *
  * This returns a new, unbound #GstInterpolationControlSource.
  *
- * Returns: a new, unbound #GstInterpolationControlSource.
+ * Returns: (transfer full): a new, unbound #GstInterpolationControlSource.
  */
-GstInterpolationControlSource *
+GstControlSource *
 gst_interpolation_control_source_new (void)
 {
   return g_object_newv (GST_TYPE_INTERPOLATION_CONTROL_SOURCE, 0, NULL);
 }
 
-/**
- * gst_interpolation_control_source_set_interpolation_mode:
- * @self: the #GstInterpolationControlSource object
- * @mode: interpolation mode
- *
- * Sets the given interpolation mode.
- *
- * <note><para>User interpolation is not yet available and quadratic interpolation
- * is deprecated and maps to cubic interpolation.</para></note>
- *
- * Returns: %TRUE if the interpolation mode could be set, %FALSE otherwise
- */
-/* *INDENT-OFF* */
-gboolean
-gst_interpolation_control_source_set_interpolation_mode (
-    GstInterpolationControlSource * self, GstInterpolateMode mode)
-/* *INDENT-ON* */
+static gboolean
+    gst_interpolation_control_source_set_interpolation_mode
+    (GstInterpolationControlSource * self, GstInterpolationMode mode)
 {
-  gboolean ret = TRUE;
   GstControlSource *csource = GST_CONTROL_SOURCE (self);
 
-  if (mode >= priv_gst_num_interpolation_methods
-      || priv_gst_interpolation_methods[mode] == NULL) {
+  if (mode >= num_interpolation_modes && (int) mode < 0) {
     GST_WARNING ("interpolation mode %d invalid or not implemented yet", mode);
     return FALSE;
   }
 
-  if (mode == GST_INTERPOLATE_QUADRATIC) {
-    GST_WARNING ("Quadratic interpolation mode is deprecated, using cubic"
-        "interpolation mode");
-  }
+  GST_TIMED_VALUE_CONTROL_SOURCE_LOCK (self);
+  csource->get_value = interpolation_modes[mode].get;
+  csource->get_value_array = interpolation_modes[mode].get_value_array;
 
-  if (mode == GST_INTERPOLATE_USER) {
-    GST_WARNING ("User interpolation mode is not implemented yet");
-    return FALSE;
-  }
-
-  g_mutex_lock (self->lock);
-  switch (self->priv->base) {
-    case G_TYPE_INT:
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_int;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_int_value_array;
-      break;
-    case G_TYPE_UINT:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_uint;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_uint_value_array;
-      break;
-    }
-    case G_TYPE_LONG:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_long;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_long_value_array;
-      break;
-    }
-    case G_TYPE_ULONG:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_ulong;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_ulong_value_array;
-      break;
-    }
-    case G_TYPE_INT64:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_int64;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_int64_value_array;
-      break;
-    }
-    case G_TYPE_UINT64:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_uint64;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_uint64_value_array;
-      break;
-    }
-    case G_TYPE_FLOAT:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_float;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_float_value_array;
-      break;
-    }
-    case G_TYPE_DOUBLE:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_double;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_double_value_array;
-      break;
-    }
-    case G_TYPE_BOOLEAN:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_boolean;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_boolean_value_array;
-      break;
-    }
-    case G_TYPE_ENUM:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_enum;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_enum_value_array;
-      break;
-    }
-    case G_TYPE_STRING:{
-      csource->get_value = priv_gst_interpolation_methods[mode]->get_string;
-      csource->get_value_array =
-          priv_gst_interpolation_methods[mode]->get_string_value_array;
-      break;
-    }
-    default:
-      ret = FALSE;
-      break;
-  }
-
-  /* Incomplete implementation */
-  if (!ret || !csource->get_value || !csource->get_value_array) {
-    gst_interpolation_control_source_reset (self);
-    ret = FALSE;
-  }
-
-  self->priv->valid_cache = FALSE;
+  gst_timed_value_control_invalidate_cache ((GstTimedValueControlSource *)
+      csource);
   self->priv->interpolation_mode = mode;
 
-  g_mutex_unlock (self->lock);
-
-  return ret;
-}
-
-static gboolean
-gst_interpolation_control_source_bind (GstControlSource * source,
-    GParamSpec * pspec)
-{
-  GType type, base;
-  GstInterpolationControlSource *self =
-      (GstInterpolationControlSource *) source;
-  gboolean ret = TRUE;
-
-  /* get the fundamental base type */
-  self->priv->type = base = type = G_PARAM_SPEC_VALUE_TYPE (pspec);
-  while ((type = g_type_parent (type)))
-    base = type;
-
-  self->priv->base = base;
-  /* restore type */
-  type = self->priv->type;
-
-  if (!gst_interpolation_control_source_set_interpolation_mode (self,
-          self->priv->interpolation_mode))
-    return FALSE;
-
-  switch (base) {
-    case G_TYPE_INT:{
-      GParamSpecInt *tpspec = G_PARAM_SPEC_INT (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_int (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_int (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_int (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_UINT:{
-      GParamSpecUInt *tpspec = G_PARAM_SPEC_UINT (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_uint (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_uint (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_uint (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_LONG:{
-      GParamSpecLong *tpspec = G_PARAM_SPEC_LONG (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_long (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_long (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_long (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_ULONG:{
-      GParamSpecULong *tpspec = G_PARAM_SPEC_ULONG (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_ulong (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_ulong (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_ulong (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_INT64:{
-      GParamSpecInt64 *tpspec = G_PARAM_SPEC_INT64 (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_int64 (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_int64 (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_int64 (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_UINT64:{
-      GParamSpecUInt64 *tpspec = G_PARAM_SPEC_UINT64 (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_uint64 (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_uint64 (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_uint64 (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_FLOAT:{
-      GParamSpecFloat *tpspec = G_PARAM_SPEC_FLOAT (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_float (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_float (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_float (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_DOUBLE:{
-      GParamSpecDouble *tpspec = G_PARAM_SPEC_DOUBLE (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_double (&self->priv->default_value, tpspec->default_value);
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_double (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_double (&self->priv->maximum_value, tpspec->maximum);
-      break;
-    }
-    case G_TYPE_BOOLEAN:{
-      GParamSpecBoolean *tpspec = G_PARAM_SPEC_BOOLEAN (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_boolean (&self->priv->default_value, tpspec->default_value);
-      break;
-    }
-    case G_TYPE_ENUM:{
-      GParamSpecEnum *tpspec = G_PARAM_SPEC_ENUM (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_enum (&self->priv->default_value, tpspec->default_value);
-      break;
-    }
-    case G_TYPE_STRING:{
-      GParamSpecString *tpspec = G_PARAM_SPEC_STRING (pspec);
-
-      g_value_init (&self->priv->default_value, type);
-      g_value_set_string (&self->priv->default_value, tpspec->default_value);
-      break;
-    }
-    default:
-      GST_WARNING ("incomplete implementation for paramspec type '%s'",
-          G_PARAM_SPEC_TYPE_NAME (pspec));
-      ret = FALSE;
-      break;
-  }
-
-  if (ret) {
-    self->priv->valid_cache = FALSE;
-    self->priv->nvalues = 0;
-  } else {
-    gst_interpolation_control_source_reset (self);
-  }
-
-  return ret;
-}
-
-/*
- * gst_control_point_compare:
- * @p1: a pointer to a #GstControlPoint
- * @p2: a pointer to a #GstControlPoint
- *
- * Compare function for g_list operations that operates on two #GstControlPoint
- * parameters.
- */
-static gint
-gst_control_point_compare (gconstpointer p1, gconstpointer p2)
-{
-  GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
-  GstClockTime ct2 = ((GstControlPoint *) p2)->timestamp;
-
-  return ((ct1 < ct2) ? -1 : ((ct1 == ct2) ? 0 : 1));
-}
-
-/*
- * gst_control_point_find:
- * @p1: a pointer to a #GstControlPoint
- * @p2: a pointer to a #GstClockTime
- *
- * Compare function for g_list operations that operates on a #GstControlPoint and
- * a #GstClockTime.
- */
-static gint
-gst_control_point_find (gconstpointer p1, gconstpointer p2)
-{
-  GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
-  GstClockTime ct2 = *(GstClockTime *) p2;
-
-  return ((ct1 < ct2) ? -1 : ((ct1 == ct2) ? 0 : 1));
-}
-
-static GstControlPoint *
-_make_new_cp (GstInterpolationControlSource * self, GstClockTime timestamp,
-    const GValue * value)
-{
-  GstControlPoint *cp;
-
-  /* create a new GstControlPoint */
-  cp = g_slice_new0 (GstControlPoint);
-  cp->timestamp = timestamp;
-  g_value_init (&cp->value, self->priv->type);
-  g_value_copy (value, &cp->value);
-
-  return cp;
-}
-
-static void
-gst_interpolation_control_source_set_internal (GstInterpolationControlSource *
-    self, GstClockTime timestamp, const GValue * value)
-{
-  GSequenceIter *iter;
-
-  /* check if a control point for the timestamp already exists */
-
-  /* iter contains the iter right *after* timestamp */
-  if (G_LIKELY (self->priv->values)) {
-    iter =
-        g_sequence_search (self->priv->values, &timestamp,
-        (GCompareDataFunc) gst_control_point_find, NULL);
-    if (iter) {
-      GSequenceIter *prev = g_sequence_iter_prev (iter);
-      GstControlPoint *cp = g_sequence_get (prev);
-
-      /* If the timestamp is the same just update the control point value */
-      if (cp->timestamp == timestamp) {
-        /* update control point */
-        g_value_reset (&cp->value);
-        g_value_copy (value, &cp->value);
-        goto done;
-      }
-    }
-  } else {
-    self->priv->values =
-        g_sequence_new ((GDestroyNotify) gst_control_point_free);
-  }
-
-  /* sort new cp into the prop->values list */
-  g_sequence_insert_sorted (self->priv->values, _make_new_cp (self, timestamp,
-          value), (GCompareDataFunc) gst_control_point_compare, NULL);
-  self->priv->nvalues++;
-
-done:
-  self->priv->valid_cache = FALSE;
-}
-
-
-/**
- * gst_interpolation_control_source_set:
- * @self: the #GstInterpolationControlSource object
- * @timestamp: the time the control-change is scheduled for
- * @value: the control-value
- *
- * Set the value of given controller-handled property at a certain time.
- *
- * Returns: FALSE if the values couldn't be set, TRUE otherwise.
- */
-gboolean
-gst_interpolation_control_source_set (GstInterpolationControlSource * self,
-    GstClockTime timestamp, const GValue * value)
-{
-  g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-  g_return_val_if_fail (G_IS_VALUE (value), FALSE);
-  g_return_val_if_fail (G_VALUE_TYPE (value) == self->priv->type, FALSE);
-
-  g_mutex_lock (self->lock);
-  gst_interpolation_control_source_set_internal (self, timestamp, value);
-  g_mutex_unlock (self->lock);
+  GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK (self);
 
   return TRUE;
 }
 
-/**
- * gst_interpolation_control_source_set_from_list:
- * @self: the #GstInterpolationControlSource object
- * @timedvalues: a list with #GstTimedValue items
- *
- * Sets multiple timed values at once.
- *
- * Returns: FALSE if the values couldn't be set, TRUE otherwise.
- */
-gboolean
-gst_interpolation_control_source_set_from_list (GstInterpolationControlSource *
-    self, const GSList * timedvalues)
-{
-  const GSList *node;
-  GstTimedValue *tv;
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), FALSE);
-
-  for (node = timedvalues; node; node = g_slist_next (node)) {
-    tv = node->data;
-    if (!GST_CLOCK_TIME_IS_VALID (tv->timestamp)) {
-      GST_WARNING ("GstTimedValued with invalid timestamp passed to %s",
-          GST_FUNCTION);
-    } else if (!G_IS_VALUE (&tv->value)) {
-      GST_WARNING ("GstTimedValued with invalid value passed to %s",
-          GST_FUNCTION);
-    } else if (G_VALUE_TYPE (&tv->value) != self->priv->type) {
-      GST_WARNING ("incompatible value type for property");
-    } else {
-      g_mutex_lock (self->lock);
-      gst_interpolation_control_source_set_internal (self, tv->timestamp,
-          &tv->value);
-      g_mutex_unlock (self->lock);
-      res = TRUE;
-    }
-  }
-  return res;
-}
-
-/**
- * gst_interpolation_control_source_unset:
- * @self: the #GstInterpolationControlSource object
- * @timestamp: the time the control-change should be removed from
- *
- * Used to remove the value of given controller-handled property at a certain
- * time.
- *
- * Returns: FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.
- */
-gboolean
-gst_interpolation_control_source_unset (GstInterpolationControlSource * self,
-    GstClockTime timestamp)
-{
-  GSequenceIter *iter;
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), FALSE);
-  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
-
-  g_mutex_lock (self->lock);
-  /* check if a control point for the timestamp exists */
-  if (G_LIKELY (self->priv->values) && (iter =
-          g_sequence_search (self->priv->values, &timestamp,
-              (GCompareDataFunc) gst_control_point_find, NULL))) {
-    GstControlPoint *cp;
-
-    /* Iter contains the iter right after timestamp, i.e.
-     * we need to get the previous one and check the timestamp
-     */
-    iter = g_sequence_iter_prev (iter);
-    cp = g_sequence_get (iter);
-    if (cp->timestamp == timestamp) {
-      g_sequence_remove (iter);
-      self->priv->nvalues--;
-      self->priv->valid_cache = FALSE;
-      res = TRUE;
-    }
-  }
-  g_mutex_unlock (self->lock);
-
-  return res;
-}
-
-/**
- * gst_interpolation_control_source_unset_all:
- * @self: the #GstInterpolationControlSource object
- *
- * Used to remove all time-stamped values of given controller-handled property
- *
- */
-void
-gst_interpolation_control_source_unset_all (GstInterpolationControlSource *
-    self)
-{
-  g_return_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self));
-
-  g_mutex_lock (self->lock);
-  /* free GstControlPoint structures */
-  if (self->priv->values) {
-    g_sequence_free (self->priv->values);
-    self->priv->values = NULL;
-  }
-  self->priv->nvalues = 0;
-  self->priv->valid_cache = FALSE;
-
-  g_mutex_unlock (self->lock);
-}
-
-static void
-_append_control_point (GstControlPoint * cp, GList ** l)
-{
-  *l = g_list_prepend (*l, cp);
-}
-
-/**
- * gst_interpolation_control_source_get_all:
- * @self: the #GstInterpolationControlSource to get the list from
- *
- * Returns a read-only copy of the list of #GstTimedValue for the given property.
- * Free the list after done with it.
- *
- * Returns: a copy of the list, or %NULL if the property isn't handled by the controller
- */
-GList *
-gst_interpolation_control_source_get_all (GstInterpolationControlSource * self)
-{
-  GList *res = NULL;
-
-  g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), NULL);
-
-  g_mutex_lock (self->lock);
-  if (G_LIKELY (self->priv->values))
-    g_sequence_foreach (self->priv->values, (GFunc) _append_control_point,
-        &res);
-  g_mutex_unlock (self->lock);
-
-  return g_list_reverse (res);
-}
-
-/**
- * gst_interpolation_control_source_get_count:
- * @self: the #GstInterpolationControlSource to get the number of values from
- *
- * Returns the number of control points that are set.
- *
- * Returns: the number of control points that are set.
- *
- */
-gint
-gst_interpolation_control_source_get_count (GstInterpolationControlSource *
-    self)
-{
-  g_return_val_if_fail (GST_IS_INTERPOLATION_CONTROL_SOURCE (self), 0);
-  return self->priv->nvalues;
-}
-
-
 static void
 gst_interpolation_control_source_init (GstInterpolationControlSource * self)
 {
-  self->lock = g_mutex_new ();
   self->priv =
       G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_INTERPOLATION_CONTROL_SOURCE,
       GstInterpolationControlSourcePrivate);
-  self->priv->interpolation_mode = GST_INTERPOLATE_NONE;
+  gst_interpolation_control_source_set_interpolation_mode (self,
+      GST_INTERPOLATION_MODE_NONE);
 }
 
 static void
-gst_interpolation_control_source_finalize (GObject * obj)
+gst_interpolation_control_source_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
 {
-  GstInterpolationControlSource *self = GST_INTERPOLATION_CONTROL_SOURCE (obj);
+  GstInterpolationControlSource *self =
+      GST_INTERPOLATION_CONTROL_SOURCE (object);
 
-  g_mutex_lock (self->lock);
-  gst_interpolation_control_source_reset (self);
-  g_mutex_unlock (self->lock);
-  g_mutex_free (self->lock);
-  G_OBJECT_CLASS (parent_class)->finalize (obj);
+  switch (prop_id) {
+    case PROP_MODE:
+      gst_interpolation_control_source_set_interpolation_mode (self,
+          (GstInterpolationMode) g_value_get_enum (value));
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
 }
 
 static void
-gst_interpolation_control_source_dispose (GObject * obj)
+gst_interpolation_control_source_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
 {
-  G_OBJECT_CLASS (parent_class)->dispose (obj);
+  GstInterpolationControlSource *self =
+      GST_INTERPOLATION_CONTROL_SOURCE (object);
+
+  switch (prop_id) {
+    case PROP_MODE:
+      g_value_set_enum (value, self->priv->interpolation_mode);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
 }
 
 static void
@@ -685,13 +592,16 @@
     * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  GstControlSourceClass *csource_class = GST_CONTROL_SOURCE_CLASS (klass);
+  //GstControlSourceClass *csource_class = GST_CONTROL_SOURCE_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
   g_type_class_add_private (klass,
       sizeof (GstInterpolationControlSourcePrivate));
 
-  gobject_class->finalize = gst_interpolation_control_source_finalize;
-  gobject_class->dispose = gst_interpolation_control_source_dispose;
-  csource_class->bind = gst_interpolation_control_source_bind;
+  gobject_class->set_property = gst_interpolation_control_source_set_property;
+  gobject_class->get_property = gst_interpolation_control_source_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_MODE,
+      g_param_spec_enum ("mode", "Mode", "Interpolation mode",
+          GST_TYPE_INTERPOLATION_MODE, GST_INTERPOLATION_MODE_NONE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 }
diff --git a/libs/gst/controller/gstinterpolationcontrolsource.h b/libs/gst/controller/gstinterpolationcontrolsource.h
index 1f14755..daf17bd 100644
--- a/libs/gst/controller/gstinterpolationcontrolsource.h
+++ b/libs/gst/controller/gstinterpolationcontrolsource.h
@@ -27,7 +27,7 @@
 #include <glib-object.h>
 #include <gst/gst.h>
 
-#include <gst/controller/gstcontrolsource.h>
+#include <gst/controller/gsttimedvaluecontrolsource.h>
 
 G_BEGIN_DECLS
 
@@ -44,31 +44,26 @@
 #define GST_INTERPOLATION_CONTROL_SOURCE_GET_CLASS(inst) \
   (G_TYPE_INSTANCE_GET_CLASS ((inst), GST_TYPE_INTERPOLATION_CONTROL_SOURCE, GstInterpolationControlSourceClass))
 
+#define GST_TYPE_INTERPOLATION_MODE (gst_interpolation_mode_get_type ())
+
 typedef struct _GstInterpolationControlSource GstInterpolationControlSource;
 typedef struct _GstInterpolationControlSourceClass GstInterpolationControlSourceClass;
 typedef struct _GstInterpolationControlSourcePrivate GstInterpolationControlSourcePrivate;
 
 /**
- * GstInterpolateMode:
- * @GST_INTERPOLATE_NONE: steps-like interpolation, default
- * @GST_INTERPOLATE_TRIGGER: returns the default value of the property,
- * except for times with specific values
- * @GST_INTERPOLATE_LINEAR: linear interpolation
- * @GST_INTERPOLATE_QUADRATIC: square interpolation (deprecated, maps to cubic)
- * @GST_INTERPOLATE_CUBIC: cubic interpolation
- * @GST_INTERPOLATE_USER: user-provided interpolation (not yet available)
+ * GstInterpolationMode:
+ * @GST_INTERPOLATION_MODE_NONE: steps-like interpolation, default
+ * @GST_INTERPOLATION_MODE_LINEAR: linear interpolation
+ * @GST_INTERPOLATION_MODE_CUBIC: cubic interpolation
  *
  * The various interpolation modes available.
  */
 typedef enum
 {
-  GST_INTERPOLATE_NONE,
-  GST_INTERPOLATE_TRIGGER,
-  GST_INTERPOLATE_LINEAR,
-  GST_INTERPOLATE_QUADRATIC,
-  GST_INTERPOLATE_CUBIC,
-  GST_INTERPOLATE_USER
-} GstInterpolateMode;
+  GST_INTERPOLATION_MODE_NONE,
+  GST_INTERPOLATION_MODE_LINEAR,
+  GST_INTERPOLATION_MODE_CUBIC
+} GstInterpolationMode;
 
 /**
  * GstInterpolationControlSource:
@@ -76,33 +71,26 @@
  * The instance structure of #GstControlSource.
  */
 struct _GstInterpolationControlSource {
-  GstControlSource parent;
+  GstTimedValueControlSource parent;
 
-  /* <private> */
-  GMutex *lock;
+  /*< private >*/
   GstInterpolationControlSourcePrivate *priv;
   gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstInterpolationControlSourceClass {
-  GstControlSourceClass parent_class;
-  
+  GstTimedValueControlSourceClass parent_class;
+
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
 GType gst_interpolation_control_source_get_type (void);
+GType gst_interpolation_mode_get_type (void);
 
 /* Functions */
 
-GstInterpolationControlSource *gst_interpolation_control_source_new (void);
-gboolean gst_interpolation_control_source_set_interpolation_mode (GstInterpolationControlSource *self, GstInterpolateMode mode);
-gboolean gst_interpolation_control_source_set (GstInterpolationControlSource * self, GstClockTime timestamp, const GValue * value);
-gboolean gst_interpolation_control_source_set_from_list (GstInterpolationControlSource * self, const GSList * timedvalues);
-gboolean gst_interpolation_control_source_unset (GstInterpolationControlSource * self, GstClockTime timestamp);
-void gst_interpolation_control_source_unset_all (GstInterpolationControlSource *self);
-GList *gst_interpolation_control_source_get_all (GstInterpolationControlSource * self);
-gint gst_interpolation_control_source_get_count (GstInterpolationControlSource * self);
+GstControlSource * gst_interpolation_control_source_new (void);
 
 G_END_DECLS
 
diff --git a/libs/gst/controller/gstinterpolationcontrolsourceprivate.h b/libs/gst/controller/gstinterpolationcontrolsourceprivate.h
deleted file mode 100644
index 1058d1b..0000000
--- a/libs/gst/controller/gstinterpolationcontrolsourceprivate.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstinterpolationcontrolsourceprivate.h: Private declarations for the
- *                                         GstInterpolationControlSource
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_INTERPOLATION_CONTROL_SOURCE_PRIVATE_H__
-#define __GST_INTERPOLATION_CONTROL_SOURCE_PRIVATE_H__
-
-/**
- * GstInterpolateMethod:
- *
- * Function pointer structure to do user-defined interpolation methods
- */
-typedef struct _GstInterpolateMethod
-{
-  GstControlSourceGetValue get_int;
-  GstControlSourceGetValueArray get_int_value_array;
-  GstControlSourceGetValue get_uint;
-  GstControlSourceGetValueArray get_uint_value_array;
-  GstControlSourceGetValue get_long;
-  GstControlSourceGetValueArray get_long_value_array;
-  GstControlSourceGetValue get_ulong;
-  GstControlSourceGetValueArray get_ulong_value_array;
-  GstControlSourceGetValue get_int64;
-  GstControlSourceGetValueArray get_int64_value_array;
-  GstControlSourceGetValue get_uint64;
-  GstControlSourceGetValueArray get_uint64_value_array;
-  GstControlSourceGetValue get_float;
-  GstControlSourceGetValueArray get_float_value_array;
-  GstControlSourceGetValue get_double;
-  GstControlSourceGetValueArray get_double_value_array;
-  GstControlSourceGetValue get_boolean;
-  GstControlSourceGetValueArray get_boolean_value_array;
-  GstControlSourceGetValue get_enum;
-  GstControlSourceGetValueArray get_enum_value_array;
-  GstControlSourceGetValue get_string;
-  GstControlSourceGetValueArray get_string_value_array;
-} GstInterpolateMethod;
-
-/**
- * GstControlPoint:
- *
- * a internal structure for value+time and various temporary
- * values used for interpolation. This "inherits" from
- * GstTimedValue.
- */
-typedef struct _GstControlPoint
-{
-  /* fields from GstTimedValue. DO NOT CHANGE! */
-  GstClockTime timestamp;       /* timestamp of the value change */
-  GValue value;                 /* the new value */
-
-  /* internal fields */
-
-  /* Caches for the interpolators */
-  union {
-    struct {
-      gdouble h;
-      gdouble z;
-    } cubic;
-  } cache;
-
-} GstControlPoint;
-
-struct _GstInterpolationControlSourcePrivate
-{
-  GType type;                   /* type of the handled property */
-  GType base;                   /* base-type of the handled property */
-
-  GValue default_value;         /* default value for the handled property */
-  GValue minimum_value;         /* min value for the handled property */
-  GValue maximum_value;         /* max value for the handled property */
-  GstInterpolateMode interpolation_mode;
-  
-  GSequence *values;            /* List of GstControlPoint */
-  gint nvalues;                 /* Number of control points */
-  gboolean valid_cache;
-};
-
-extern GstInterpolateMethod *priv_gst_interpolation_methods[];
-extern guint priv_gst_num_interpolation_methods;
-
-#endif /* __GST_INTERPOLATION_CONTROL_SOURCE_PRIVATE_H__ */
-
diff --git a/libs/gst/controller/gstlfocontrolsource.c b/libs/gst/controller/gstlfocontrolsource.c
index 06711b2..d5f23f6 100644
--- a/libs/gst/controller/gstlfocontrolsource.c
+++ b/libs/gst/controller/gstlfocontrolsource.c
@@ -38,14 +38,26 @@
 
 #include <glib-object.h>
 #include <gst/gst.h>
+#include <gst/gstcontrolsource.h>
 
-#include "gstcontrolsource.h"
 #include "gstlfocontrolsource.h"
-#include "gstlfocontrolsourceprivate.h"
+
+#include "gst/glib-compat-private.h"
 
 #include <gst/math-compat.h>
 
-#define EMPTY(x) (x)
+#define GST_CAT_DEFAULT controller_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+struct _GstLFOControlSourcePrivate
+{
+  GstLFOWaveform waveform;
+  gdouble frequency;
+  GstClockTime period;
+  GstClockTime timeshift;
+  gdouble amplitude;
+  gdouble offset;
+};
 
 /* FIXME: as % in C is not the modulo operator we need here for
  * negative numbers implement our own. Are there better ways? */
@@ -61,509 +73,290 @@
   return timestamp % period;
 }
 
-#define DEFINE_SINE(type,round,convert) \
-static inline g##type \
-_sine_get_##type (GstLFOControlSource *self, g##type max, g##type min, gdouble amp, gdouble off, GstClockTime timeshift, GstClockTime period, gdouble frequency, GstClockTime timestamp) \
-{ \
-  gdouble ret; \
-  GstClockTime pos = _calculate_pos (timestamp, timeshift, period); \
-  \
-  ret = sin (2.0 * M_PI * (frequency / GST_SECOND) * gst_guint64_to_gdouble (pos)); \
-  ret *= amp; \
-  ret += off; \
-  \
-  if (round) \
-    ret += 0.5; \
-  \
-  return (g##type) CLAMP (ret, convert (min), convert (max)); \
-} \
-\
-static gboolean \
-waveform_sine_get_##type (GstLFOControlSource *self, GstClockTime timestamp, \
-    GValue *value) \
-{ \
-  g##type ret, max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  ret = _sine_get_##type (self, max, min, amp, off, timeshift, period, frequency, timestamp); \
-  g_value_set_##type (value, ret); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-waveform_sine_get_##type##_value_array (GstLFOControlSource *self, \
-   GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  g##type *values = (g##type *) value_array->values; \
-  g##type max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    *values = _sine_get_##type (self, max, min, amp, off, timeshift, period, frequency, ts); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
+static inline gdouble
+_sine_get (GstLFOControlSource * self, gdouble amp, gdouble off,
+    GstClockTime timeshift, GstClockTime period, gdouble frequency,
+    GstClockTime timestamp)
+{
+  gdouble pos =
+      gst_guint64_to_gdouble (_calculate_pos (timestamp, timeshift, period));
+  gdouble ret;
+
+  ret = sin (2.0 * M_PI * (frequency / GST_SECOND) * pos);
+  ret *= amp;
+  ret += off;
+
+  return ret;
 }
 
-DEFINE_SINE (int, TRUE, EMPTY);
-DEFINE_SINE (uint, TRUE, EMPTY);
-DEFINE_SINE (long, TRUE, EMPTY);
-DEFINE_SINE (ulong, TRUE, EMPTY);
-DEFINE_SINE (int64, TRUE, EMPTY);
-DEFINE_SINE (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_SINE (float, FALSE, EMPTY);
-DEFINE_SINE (double, FALSE, EMPTY);
+static gboolean
+waveform_sine_get (GstLFOControlSource * self, GstClockTime timestamp,
+    gdouble * value)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
 
-static GstWaveformImplementation waveform_sine = {
-  (GstControlSourceGetValue) waveform_sine_get_int,
-  (GstControlSourceGetValueArray) waveform_sine_get_int_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_uint,
-  (GstControlSourceGetValueArray) waveform_sine_get_uint_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_long,
-  (GstControlSourceGetValueArray) waveform_sine_get_long_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_ulong,
-  (GstControlSourceGetValueArray) waveform_sine_get_ulong_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_int64,
-  (GstControlSourceGetValueArray) waveform_sine_get_int64_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_uint64,
-  (GstControlSourceGetValueArray) waveform_sine_get_uint64_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_float,
-  (GstControlSourceGetValueArray) waveform_sine_get_float_value_array,
-  (GstControlSourceGetValue) waveform_sine_get_double,
-  (GstControlSourceGetValueArray) waveform_sine_get_double_value_array
-};
-
-#define DEFINE_SQUARE(type,round, convert) \
-\
-static inline g##type \
-_square_get_##type (GstLFOControlSource *self, g##type max, g##type min, gdouble amp, gdouble off, GstClockTime timeshift, GstClockTime period, gdouble frequency, GstClockTime timestamp) \
-{ \
-  GstClockTime pos = _calculate_pos (timestamp, timeshift, period); \
-  gdouble ret; \
-  \
-  if (pos >= period / 2) \
-    ret = amp; \
-  else \
-    ret = - amp; \
-  \
-  ret += off; \
-  \
-  if (round) \
-    ret += 0.5; \
-  \
-  return (g##type) CLAMP (ret, convert (min), convert (max)); \
-} \
-\
-static gboolean \
-waveform_square_get_##type (GstLFOControlSource *self, GstClockTime timestamp, \
-    GValue *value) \
-{ \
-  g##type ret, max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  ret = _square_get_##type (self, max, min, amp, off, timeshift, period, frequency, timestamp); \
-  g_value_set_##type (value, ret); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-waveform_square_get_##type##_value_array (GstLFOControlSource *self, \
-   GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  g##type *values = (g##type *) value_array->values; \
-  g##type max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    *values = _square_get_##type (self, max, min, amp, off, timeshift, period, frequency, ts); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
+  gst_object_sync_values (GST_OBJECT (self), timestamp);
+  g_mutex_lock (&self->lock);
+  *value = _sine_get (self, priv->amplitude, priv->offset, priv->timeshift,
+      priv->period, priv->frequency, timestamp);
+  g_mutex_unlock (&self->lock);
+  return TRUE;
 }
 
-DEFINE_SQUARE (int, TRUE, EMPTY);
-DEFINE_SQUARE (uint, TRUE, EMPTY);
-DEFINE_SQUARE (long, TRUE, EMPTY);
-DEFINE_SQUARE (ulong, TRUE, EMPTY);
-DEFINE_SQUARE (int64, TRUE, EMPTY);
-DEFINE_SQUARE (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_SQUARE (float, FALSE, EMPTY);
-DEFINE_SQUARE (double, FALSE, EMPTY);
+static gboolean
+waveform_sine_get_value_array (GstLFOControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+  guint i;
+  GstClockTime ts = timestamp;
 
-static GstWaveformImplementation waveform_square = {
-  (GstControlSourceGetValue) waveform_square_get_int,
-  (GstControlSourceGetValueArray) waveform_square_get_int_value_array,
-  (GstControlSourceGetValue) waveform_square_get_uint,
-  (GstControlSourceGetValueArray) waveform_square_get_uint_value_array,
-  (GstControlSourceGetValue) waveform_square_get_long,
-  (GstControlSourceGetValueArray) waveform_square_get_long_value_array,
-  (GstControlSourceGetValue) waveform_square_get_ulong,
-  (GstControlSourceGetValueArray) waveform_square_get_ulong_value_array,
-  (GstControlSourceGetValue) waveform_square_get_int64,
-  (GstControlSourceGetValueArray) waveform_square_get_int64_value_array,
-  (GstControlSourceGetValue) waveform_square_get_uint64,
-  (GstControlSourceGetValueArray) waveform_square_get_uint64_value_array,
-  (GstControlSourceGetValue) waveform_square_get_float,
-  (GstControlSourceGetValueArray) waveform_square_get_float_value_array,
-  (GstControlSourceGetValue) waveform_square_get_double,
-  (GstControlSourceGetValueArray) waveform_square_get_double_value_array
-};
-
-#define DEFINE_SAW(type,round,convert) \
-\
-static inline g##type \
-_saw_get_##type (GstLFOControlSource *self, g##type max, g##type min, gdouble amp, gdouble off, GstClockTime timeshift, GstClockTime period, gdouble frequency, GstClockTime timestamp) \
-{ \
-  GstClockTime pos = _calculate_pos (timestamp, timeshift, period); \
-  gdouble ret; \
-  \
-  ret = - ((gst_guint64_to_gdouble (pos) - gst_guint64_to_gdouble (period) / 2.0) * ((2.0 * amp) / gst_guint64_to_gdouble (period)));\
-  \
-  ret += off; \
-  \
-  if (round) \
-    ret += 0.5; \
-  \
-  return (g##type) CLAMP (ret, convert (min), convert (max)); \
-} \
-\
-static gboolean \
-waveform_saw_get_##type (GstLFOControlSource *self, GstClockTime timestamp, \
-    GValue *value) \
-{ \
-  g##type ret, max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  ret = _saw_get_##type (self, max, min, amp, off, timeshift, period, frequency, timestamp); \
-  g_value_set_##type (value, ret); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-waveform_saw_get_##type##_value_array (GstLFOControlSource *self, \
-   GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  g##type *values = (g##type *) value_array->values; \
-  g##type max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    *values = _saw_get_##type (self, max, min, amp, off, timeshift, period, frequency, ts); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
+  for (i = 0; i < n_values; i++) {
+    gst_object_sync_values (GST_OBJECT (self), ts);
+    g_mutex_lock (&self->lock);
+    *values = _sine_get (self, priv->amplitude, priv->offset, priv->timeshift,
+        priv->period, priv->frequency, ts);
+    g_mutex_unlock (&self->lock);
+    ts += interval;
+    values++;
+  }
+  return TRUE;
 }
 
-DEFINE_SAW (int, TRUE, EMPTY);
-DEFINE_SAW (uint, TRUE, EMPTY);
-DEFINE_SAW (long, TRUE, EMPTY);
-DEFINE_SAW (ulong, TRUE, EMPTY);
-DEFINE_SAW (int64, TRUE, EMPTY);
-DEFINE_SAW (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_SAW (float, FALSE, EMPTY);
-DEFINE_SAW (double, FALSE, EMPTY);
 
-static GstWaveformImplementation waveform_saw = {
-  (GstControlSourceGetValue) waveform_saw_get_int,
-  (GstControlSourceGetValueArray) waveform_saw_get_int_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_uint,
-  (GstControlSourceGetValueArray) waveform_saw_get_uint_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_long,
-  (GstControlSourceGetValueArray) waveform_saw_get_long_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_ulong,
-  (GstControlSourceGetValueArray) waveform_saw_get_ulong_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_int64,
-  (GstControlSourceGetValueArray) waveform_saw_get_int64_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_uint64,
-  (GstControlSourceGetValueArray) waveform_saw_get_uint64_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_float,
-  (GstControlSourceGetValueArray) waveform_saw_get_float_value_array,
-  (GstControlSourceGetValue) waveform_saw_get_double,
-  (GstControlSourceGetValueArray) waveform_saw_get_double_value_array
-};
+static inline gdouble
+_square_get (GstLFOControlSource * self, gdouble amp, gdouble off,
+    GstClockTime timeshift, GstClockTime period, gdouble frequency,
+    GstClockTime timestamp)
+{
+  GstClockTime pos = _calculate_pos (timestamp, timeshift, period);
+  gdouble ret;
 
-#define DEFINE_RSAW(type,round,convert) \
-\
-static inline g##type \
-_rsaw_get_##type (GstLFOControlSource *self, g##type max, g##type min, gdouble amp, gdouble off, GstClockTime timeshift, GstClockTime period, gdouble frequency, GstClockTime timestamp) \
-{ \
-  GstClockTime pos = _calculate_pos (timestamp, timeshift, period); \
-  gdouble ret; \
-  \
-  ret = ((gst_guint64_to_gdouble (pos) - gst_guint64_to_gdouble (period) / 2.0) * ((2.0 * amp) / gst_guint64_to_gdouble (period)));\
-  \
-  ret += off; \
-  \
-  if (round) \
-    ret += 0.5; \
-  \
-  return (g##type) CLAMP (ret, convert (min), convert (max)); \
-} \
-\
-static gboolean \
-waveform_rsaw_get_##type (GstLFOControlSource *self, GstClockTime timestamp, \
-    GValue *value) \
-{ \
-  g##type ret, max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  ret = _rsaw_get_##type (self, max, min, amp, off, timeshift, period, frequency, timestamp); \
-  g_value_set_##type (value, ret); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-waveform_rsaw_get_##type##_value_array (GstLFOControlSource *self, \
-   GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  g##type *values = (g##type *) value_array->values; \
-  g##type max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    *values = _rsaw_get_##type (self, max, min, amp, off, timeshift, period, frequency, ts); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
+  if (pos >= period / 2)
+    ret = amp;
+  else
+    ret = -amp;
+  ret += off;
+
+  return ret;
 }
 
-DEFINE_RSAW (int, TRUE, EMPTY);
-DEFINE_RSAW (uint, TRUE, EMPTY);
-DEFINE_RSAW (long, TRUE, EMPTY);
-DEFINE_RSAW (ulong, TRUE, EMPTY);
-DEFINE_RSAW (int64, TRUE, EMPTY);
-DEFINE_RSAW (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_RSAW (float, FALSE, EMPTY);
-DEFINE_RSAW (double, FALSE, EMPTY);
+static gboolean
+waveform_square_get (GstLFOControlSource * self, GstClockTime timestamp,
+    gdouble * value)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
 
-static GstWaveformImplementation waveform_rsaw = {
-  (GstControlSourceGetValue) waveform_rsaw_get_int,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_int_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_uint,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_uint_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_long,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_long_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_ulong,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_ulong_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_int64,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_int64_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_uint64,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_uint64_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_float,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_float_value_array,
-  (GstControlSourceGetValue) waveform_rsaw_get_double,
-  (GstControlSourceGetValueArray) waveform_rsaw_get_double_value_array
-};
-
-#define DEFINE_TRIANGLE(type,round,convert) \
-\
-static inline g##type \
-_triangle_get_##type (GstLFOControlSource *self, g##type max, g##type min, gdouble amp, gdouble off, GstClockTime timeshift, GstClockTime period, gdouble frequency, GstClockTime timestamp) \
-{ \
-  GstClockTime pos = _calculate_pos (timestamp, timeshift, period); \
-  gdouble ret; \
-  \
-  if (gst_guint64_to_gdouble (pos) <= gst_guint64_to_gdouble (period) / 4.0) \
-    ret = gst_guint64_to_gdouble (pos) * ((4.0 * amp) / gst_guint64_to_gdouble (period)); \
-  else if (gst_guint64_to_gdouble (pos) <= (3.0 * gst_guint64_to_gdouble (period)) / 4.0) \
-    ret = -(gst_guint64_to_gdouble (pos) - gst_guint64_to_gdouble (period) / 2.0) * ((4.0 * amp) / gst_guint64_to_gdouble (period)); \
-  else \
-    ret = gst_guint64_to_gdouble (period) - gst_guint64_to_gdouble (pos) * ((4.0 * amp) / gst_guint64_to_gdouble (period)); \
-  \
-  ret += off; \
-  \
-  if (round) \
-    ret += 0.5; \
-  \
-  return (g##type) CLAMP (ret, convert (min), convert (max)); \
-} \
-\
-static gboolean \
-waveform_triangle_get_##type (GstLFOControlSource *self, GstClockTime timestamp, \
-    GValue *value) \
-{ \
-  g##type ret, max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  ret = _triangle_get_##type (self, max, min, amp, off, timeshift, period, frequency, timestamp); \
-  g_value_set_##type (value, ret); \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
-} \
-\
-static gboolean \
-waveform_triangle_get_##type##_value_array (GstLFOControlSource *self, \
-   GstClockTime timestamp, GstValueArray * value_array) \
-{ \
-  gint i; \
-  GstClockTime ts = timestamp; \
-  g##type *values = (g##type *) value_array->values; \
-  g##type max, min; \
-  gdouble amp, off, frequency; \
-  GstClockTime timeshift, period; \
-  \
-  g_mutex_lock (self->lock); \
-  max = g_value_get_##type (&self->priv->maximum_value); \
-  min = g_value_get_##type (&self->priv->minimum_value); \
-  amp = convert (g_value_get_##type (&self->priv->amplitude)); \
-  off = convert (g_value_get_##type (&self->priv->offset)); \
-  timeshift = self->priv->timeshift; \
-  period = self->priv->period; \
-  frequency = self->priv->frequency; \
-  \
-  for(i = 0; i < value_array->nbsamples; i++) { \
-    *values = _triangle_get_##type (self, max, min, amp, off, timeshift, period, frequency, ts); \
-    ts += value_array->sample_interval; \
-    values++; \
-  } \
-  g_mutex_unlock (self->lock); \
-  return TRUE; \
+  gst_object_sync_values (GST_OBJECT (self), timestamp);
+  g_mutex_lock (&self->lock);
+  *value = _square_get (self, priv->amplitude, priv->offset, priv->timeshift,
+      priv->period, priv->frequency, timestamp);
+  g_mutex_unlock (&self->lock);
+  return TRUE;
 }
 
-DEFINE_TRIANGLE (int, TRUE, EMPTY);
-DEFINE_TRIANGLE (uint, TRUE, EMPTY);
-DEFINE_TRIANGLE (long, TRUE, EMPTY);
-DEFINE_TRIANGLE (ulong, TRUE, EMPTY);
-DEFINE_TRIANGLE (int64, TRUE, EMPTY);
-DEFINE_TRIANGLE (uint64, TRUE, gst_guint64_to_gdouble);
-DEFINE_TRIANGLE (float, FALSE, EMPTY);
-DEFINE_TRIANGLE (double, FALSE, EMPTY);
+static gboolean
+waveform_square_get_value_array (GstLFOControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+  guint i;
+  GstClockTime ts = timestamp;
 
-static GstWaveformImplementation waveform_triangle = {
-  (GstControlSourceGetValue) waveform_triangle_get_int,
-  (GstControlSourceGetValueArray) waveform_triangle_get_int_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_uint,
-  (GstControlSourceGetValueArray) waveform_triangle_get_uint_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_long,
-  (GstControlSourceGetValueArray) waveform_triangle_get_long_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_ulong,
-  (GstControlSourceGetValueArray) waveform_triangle_get_ulong_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_int64,
-  (GstControlSourceGetValueArray) waveform_triangle_get_int64_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_uint64,
-  (GstControlSourceGetValueArray) waveform_triangle_get_uint64_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_float,
-  (GstControlSourceGetValueArray) waveform_triangle_get_float_value_array,
-  (GstControlSourceGetValue) waveform_triangle_get_double,
-  (GstControlSourceGetValueArray) waveform_triangle_get_double_value_array
-};
+  for (i = 0; i < n_values; i++) {
+    gst_object_sync_values (GST_OBJECT (self), ts);
+    g_mutex_lock (&self->lock);
+    *values = _square_get (self, priv->amplitude, priv->offset, priv->timeshift,
+        priv->period, priv->frequency, ts);
+    g_mutex_unlock (&self->lock);
+    ts += interval;
+    values++;
+  }
+  return TRUE;
+}
 
-static GstWaveformImplementation *waveforms[] = {
-  &waveform_sine,
-  &waveform_square,
-  &waveform_saw,
-  &waveform_rsaw,
-  &waveform_triangle
+static inline gdouble
+_saw_get (GstLFOControlSource * self, gdouble amp, gdouble off,
+    GstClockTime timeshift, GstClockTime period, gdouble frequency,
+    GstClockTime timestamp)
+{
+  gdouble pos =
+      gst_guint64_to_gdouble (_calculate_pos (timestamp, timeshift, period));
+  gdouble per = gst_guint64_to_gdouble (period);
+  gdouble ret;
+
+  ret = -((pos - per / 2.0) * ((2.0 * amp) / per));
+  ret += off;
+
+  return ret;
+}
+
+static gboolean
+waveform_saw_get (GstLFOControlSource * self, GstClockTime timestamp,
+    gdouble * value)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+
+  gst_object_sync_values (GST_OBJECT (self), timestamp);
+  g_mutex_lock (&self->lock);
+  *value = _saw_get (self, priv->amplitude, priv->offset, priv->timeshift,
+      priv->period, priv->frequency, timestamp);
+  g_mutex_unlock (&self->lock);
+  return TRUE;
+}
+
+static gboolean
+waveform_saw_get_value_array (GstLFOControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+  guint i;
+  GstClockTime ts = timestamp;
+
+  for (i = 0; i < n_values; i++) {
+    gst_object_sync_values (GST_OBJECT (self), ts);
+    g_mutex_lock (&self->lock);
+    *values = _saw_get (self, priv->amplitude, priv->offset, priv->timeshift,
+        priv->period, priv->frequency, ts);
+    g_mutex_unlock (&self->lock);
+    ts += interval;
+    values++;
+  }
+  return TRUE;
+}
+
+static inline gdouble
+_rsaw_get (GstLFOControlSource * self, gdouble amp, gdouble off,
+    GstClockTime timeshift, GstClockTime period, gdouble frequency,
+    GstClockTime timestamp)
+{
+  gdouble pos =
+      gst_guint64_to_gdouble (_calculate_pos (timestamp, timeshift, period));
+  gdouble per = gst_guint64_to_gdouble (period);
+  gdouble ret;
+
+  ret = (pos - per / 2.0) * ((2.0 * amp) / per);
+  ret += off;
+
+  return ret;
+}
+
+static gboolean
+waveform_rsaw_get (GstLFOControlSource * self, GstClockTime timestamp,
+    gdouble * value)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+
+  gst_object_sync_values (GST_OBJECT (self), timestamp);
+  g_mutex_lock (&self->lock);
+  *value = _rsaw_get (self, priv->amplitude, priv->offset, priv->timeshift,
+      priv->period, priv->frequency, timestamp);
+  g_mutex_unlock (&self->lock);
+  return TRUE;
+}
+
+static gboolean
+waveform_rsaw_get_value_array (GstLFOControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+  guint i;
+  GstClockTime ts = timestamp;
+
+  for (i = 0; i < n_values; i++) {
+    gst_object_sync_values (GST_OBJECT (self), ts);
+    g_mutex_lock (&self->lock);
+    *values = _rsaw_get (self, priv->amplitude, priv->offset, priv->timeshift,
+        priv->period, priv->frequency, ts);
+    g_mutex_unlock (&self->lock);
+    ts += interval;
+    values++;
+  }
+  return TRUE;
+}
+
+
+static inline gdouble
+_triangle_get (GstLFOControlSource * self, gdouble amp, gdouble off,
+    GstClockTime timeshift, GstClockTime period, gdouble frequency,
+    GstClockTime timestamp)
+{
+  gdouble pos =
+      gst_guint64_to_gdouble (_calculate_pos (timestamp, timeshift, period));
+  gdouble per = gst_guint64_to_gdouble (period);
+  gdouble ret;
+
+  if (pos <= 0.25 * per)
+    /* 1st quarter */
+    ret = pos * ((4.0 * amp) / per);
+  else if (pos <= 0.75 * per)
+    /* 2nd & 3rd quarter */
+    ret = -(pos - per / 2.0) * ((4.0 * amp) / per);
+  else
+    /* 4th quarter */
+    ret = -(per - pos) * ((4.0 * amp) / per);
+
+  ret += off;
+
+  return ret;
+}
+
+static gboolean
+waveform_triangle_get (GstLFOControlSource * self, GstClockTime timestamp,
+    gdouble * value)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+
+  gst_object_sync_values (GST_OBJECT (self), timestamp);
+  g_mutex_lock (&self->lock);
+  *value = _triangle_get (self, priv->amplitude, priv->offset, priv->timeshift,
+      priv->period, priv->frequency, timestamp);
+  g_mutex_unlock (&self->lock);
+  return TRUE;
+}
+
+static gboolean
+waveform_triangle_get_value_array (GstLFOControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  GstLFOControlSourcePrivate *priv = self->priv;
+  guint i;
+  GstClockTime ts = timestamp;
+
+  for (i = 0; i < n_values; i++) {
+    gst_object_sync_values (GST_OBJECT (self), ts);
+    g_mutex_lock (&self->lock);
+    *values =
+        _triangle_get (self, priv->amplitude, priv->offset, priv->timeshift,
+        priv->period, priv->frequency, ts);
+    g_mutex_unlock (&self->lock);
+    ts += interval;
+    values++;
+  }
+  return TRUE;
+}
+
+static struct
+{
+  GstControlSourceGetValue get;
+  GstControlSourceGetValueArray get_value_array;
+} waveforms[] = {
+  {
+  (GstControlSourceGetValue) waveform_sine_get,
+        (GstControlSourceGetValueArray) waveform_sine_get_value_array}, {
+  (GstControlSourceGetValue) waveform_square_get,
+        (GstControlSourceGetValueArray) waveform_square_get_value_array}, {
+  (GstControlSourceGetValue) waveform_saw_get,
+        (GstControlSourceGetValueArray) waveform_saw_get_value_array}, {
+  (GstControlSourceGetValue) waveform_rsaw_get,
+        (GstControlSourceGetValueArray) waveform_rsaw_get_value_array}, {
+  (GstControlSourceGetValue) waveform_triangle_get,
+        (GstControlSourceGetValueArray) waveform_triangle_get_value_array}
 };
 
 static const guint num_waveforms = G_N_ELEMENTS (waveforms);
@@ -603,10 +396,11 @@
   return (GType) gtype;
 }
 
-G_DEFINE_TYPE (GstLFOControlSource, gst_lfo_control_source,
-    GST_TYPE_CONTROL_SOURCE);
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "lfo control source", 0, "low frequency oscillator control source")
 
-static GObjectClass *parent_class = NULL;
+G_DEFINE_TYPE_WITH_CODE (GstLFOControlSource, gst_lfo_control_source,
+    GST_TYPE_CONTROL_SOURCE, _do_init);
 
 static void
 gst_lfo_control_source_reset (GstLFOControlSource * self)
@@ -615,18 +409,6 @@
 
   csource->get_value = NULL;
   csource->get_value_array = NULL;
-
-  self->priv->type = self->priv->base = G_TYPE_INVALID;
-
-  if (G_IS_VALUE (&self->priv->minimum_value))
-    g_value_unset (&self->priv->minimum_value);
-  if (G_IS_VALUE (&self->priv->maximum_value))
-    g_value_unset (&self->priv->maximum_value);
-
-  if (G_IS_VALUE (&self->priv->amplitude))
-    g_value_unset (&self->priv->amplitude);
-  if (G_IS_VALUE (&self->priv->offset))
-    g_value_unset (&self->priv->offset);
 }
 
 /**
@@ -634,9 +416,9 @@
  *
  * This returns a new, unbound #GstLFOControlSource.
  *
- * Returns: a new, unbound #GstLFOControlSource.
+ * Returns: (transfer full): a new, unbound #GstLFOControlSource.
  */
-GstLFOControlSource *
+GstControlSource *
 gst_lfo_control_source_new (void)
 {
   return g_object_newv (GST_TYPE_LFO_CONTROL_SOURCE, 0, NULL);
@@ -647,282 +429,18 @@
     GstLFOWaveform waveform)
 {
   GstControlSource *csource = GST_CONTROL_SOURCE (self);
-  gboolean ret = TRUE;
 
   if (waveform >= num_waveforms || (int) waveform < 0) {
     GST_WARNING ("waveform %d invalid or not implemented yet", waveform);
     return FALSE;
   }
 
-  if (self->priv->base == G_TYPE_INVALID) {
-    GST_WARNING ("not bound to a property yet");
-    return FALSE;
-  }
+  csource->get_value = waveforms[waveform].get;
+  csource->get_value_array = waveforms[waveform].get_value_array;
 
-  switch (self->priv->base) {
-    case G_TYPE_INT:
-      csource->get_value = waveforms[waveform]->get_int;
-      csource->get_value_array = waveforms[waveform]->get_int_value_array;
-      break;
-    case G_TYPE_UINT:{
-      csource->get_value = waveforms[waveform]->get_uint;
-      csource->get_value_array = waveforms[waveform]->get_uint_value_array;
-      break;
-    }
-    case G_TYPE_LONG:{
-      csource->get_value = waveforms[waveform]->get_long;
-      csource->get_value_array = waveforms[waveform]->get_long_value_array;
-      break;
-    }
-    case G_TYPE_ULONG:{
-      csource->get_value = waveforms[waveform]->get_ulong;
-      csource->get_value_array = waveforms[waveform]->get_ulong_value_array;
-      break;
-    }
-    case G_TYPE_INT64:{
-      csource->get_value = waveforms[waveform]->get_int64;
-      csource->get_value_array = waveforms[waveform]->get_int64_value_array;
-      break;
-    }
-    case G_TYPE_UINT64:{
-      csource->get_value = waveforms[waveform]->get_uint64;
-      csource->get_value_array = waveforms[waveform]->get_uint64_value_array;
-      break;
-    }
-    case G_TYPE_FLOAT:{
-      csource->get_value = waveforms[waveform]->get_float;
-      csource->get_value_array = waveforms[waveform]->get_float_value_array;
-      break;
-    }
-    case G_TYPE_DOUBLE:{
-      csource->get_value = waveforms[waveform]->get_double;
-      csource->get_value_array = waveforms[waveform]->get_double_value_array;
-      break;
-    }
-    default:
-      ret = FALSE;
-      break;
-  }
+  self->priv->waveform = waveform;
 
-  if (ret)
-    self->priv->waveform = waveform;
-  else
-    GST_WARNING ("incomplete implementation for type '%s'",
-        GST_STR_NULL (g_type_name (self->priv->type)));
-
-  return ret;
-}
-
-static gboolean
-gst_lfo_control_source_bind (GstControlSource * source, GParamSpec * pspec)
-{
-  GType type, base;
-  GstLFOControlSource *self = GST_LFO_CONTROL_SOURCE (source);
-  gboolean ret = TRUE;
-
-  /* get the fundamental base type */
-  self->priv->type = base = type = G_PARAM_SPEC_VALUE_TYPE (pspec);
-  while ((type = g_type_parent (type)))
-    base = type;
-
-  self->priv->base = base;
-  /* restore type */
-  type = self->priv->type;
-
-  switch (base) {
-    case G_TYPE_INT:{
-      GParamSpecInt *tpspec = G_PARAM_SPEC_INT (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_int (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_int (&self->priv->maximum_value, tpspec->maximum);
-
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_int (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_int (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_UINT:{
-      GParamSpecUInt *tpspec = G_PARAM_SPEC_UINT (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_uint (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_uint (&self->priv->maximum_value, tpspec->maximum);
-
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_uint (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_uint (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_LONG:{
-      GParamSpecLong *tpspec = G_PARAM_SPEC_LONG (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_long (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_long (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_long (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_long (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_ULONG:{
-      GParamSpecULong *tpspec = G_PARAM_SPEC_ULONG (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_ulong (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_ulong (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_ulong (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_ulong (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_INT64:{
-      GParamSpecInt64 *tpspec = G_PARAM_SPEC_INT64 (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_int64 (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_int64 (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_int64 (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_int64 (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_UINT64:{
-      GParamSpecUInt64 *tpspec = G_PARAM_SPEC_UINT64 (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_uint64 (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_uint64 (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_uint64 (&self->priv->amplitude, 0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_uint64 (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_FLOAT:{
-      GParamSpecFloat *tpspec = G_PARAM_SPEC_FLOAT (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_float (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_float (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_float (&self->priv->amplitude, 0.0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_float (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    case G_TYPE_DOUBLE:{
-      GParamSpecDouble *tpspec = G_PARAM_SPEC_DOUBLE (pspec);
-
-      g_value_init (&self->priv->minimum_value, type);
-      g_value_set_double (&self->priv->minimum_value, tpspec->minimum);
-      g_value_init (&self->priv->maximum_value, type);
-      g_value_set_double (&self->priv->maximum_value, tpspec->maximum);
-      if (!G_IS_VALUE (&self->priv->amplitude)) {
-        g_value_init (&self->priv->amplitude, type);
-        g_value_set_double (&self->priv->amplitude, 0.0);
-      }
-
-      if (!G_IS_VALUE (&self->priv->offset)) {
-        g_value_init (&self->priv->offset, type);
-        g_value_set_double (&self->priv->offset, tpspec->default_value);
-      }
-      break;
-    }
-    default:
-      GST_WARNING ("incomplete implementation for paramspec type '%s'",
-          G_PARAM_SPEC_TYPE_NAME (pspec));
-      ret = FALSE;
-      break;
-  }
-
-  if (ret) {
-    GValue amp = { 0, }
-    , off = {
-    0,};
-
-    /* This should never fail unless the user already set amplitude or offset
-     * with an incompatible type before _bind () */
-    if (!g_value_type_transformable (G_VALUE_TYPE (&self->priv->amplitude),
-            base)
-        || !g_value_type_transformable (G_VALUE_TYPE (&self->priv->offset),
-            base)) {
-      GST_WARNING ("incompatible types for amplitude or offset");
-      gst_lfo_control_source_reset (self);
-      return FALSE;
-    }
-
-    /* Generate copies and transform to the correct type */
-    g_value_init (&amp, base);
-    g_value_transform (&self->priv->amplitude, &amp);
-    g_value_init (&off, base);
-    g_value_transform (&self->priv->offset, &off);
-
-    ret = gst_lfo_control_source_set_waveform (self, self->priv->waveform);
-
-    g_value_unset (&self->priv->amplitude);
-    g_value_init (&self->priv->amplitude, self->priv->base);
-    g_value_transform (&amp, &self->priv->amplitude);
-
-    g_value_unset (&self->priv->offset);
-    g_value_init (&self->priv->offset, self->priv->base);
-    g_value_transform (&off, &self->priv->offset);
-
-    g_value_unset (&amp);
-    g_value_unset (&off);
-  }
-
-  if (!ret)
-    gst_lfo_control_source_reset (self);
-
-  return ret;
+  return TRUE;
 }
 
 static void
@@ -931,12 +449,13 @@
   self->priv =
       G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_LFO_CONTROL_SOURCE,
       GstLFOControlSourcePrivate);
-  self->priv->waveform = GST_LFO_WAVEFORM_SINE;
+  self->priv->waveform = gst_lfo_control_source_set_waveform (self,
+      GST_LFO_WAVEFORM_SINE);
   self->priv->frequency = 1.0;
   self->priv->period = GST_SECOND / self->priv->frequency;
   self->priv->timeshift = 0;
 
-  self->lock = g_mutex_new ();
+  g_mutex_init (&self->lock);
 }
 
 static void
@@ -945,19 +464,9 @@
   GstLFOControlSource *self = GST_LFO_CONTROL_SOURCE (obj);
 
   gst_lfo_control_source_reset (self);
+  g_mutex_clear (&self->lock);
 
-  if (self->lock) {
-    g_mutex_free (self->lock);
-    self->lock = NULL;
-  }
-
-  G_OBJECT_CLASS (parent_class)->finalize (obj);
-}
-
-static void
-gst_lfo_control_source_dispose (GObject * obj)
-{
-  G_OBJECT_CLASS (parent_class)->dispose (obj);
+  G_OBJECT_CLASS (gst_lfo_control_source_parent_class)->finalize (obj);
 }
 
 static void
@@ -968,10 +477,10 @@
 
   switch (prop_id) {
     case PROP_WAVEFORM:
-      g_mutex_lock (self->lock);
+      g_mutex_lock (&self->lock);
       gst_lfo_control_source_set_waveform (self,
           (GstLFOWaveform) g_value_get_enum (value));
-      g_mutex_unlock (self->lock);
+      g_mutex_unlock (&self->lock);
       break;
     case PROP_FREQUENCY:{
       gdouble frequency = g_value_get_double (value);
@@ -979,69 +488,27 @@
       g_return_if_fail (frequency > 0
           || ((GstClockTime) (GST_SECOND / frequency)) != 0);
 
-      g_mutex_lock (self->lock);
+      g_mutex_lock (&self->lock);
       self->priv->frequency = frequency;
       self->priv->period = GST_SECOND / frequency;
-      g_mutex_unlock (self->lock);
+      g_mutex_unlock (&self->lock);
       break;
     }
     case PROP_TIMESHIFT:
-      g_mutex_lock (self->lock);
+      g_mutex_lock (&self->lock);
       self->priv->timeshift = g_value_get_uint64 (value);
-      g_mutex_unlock (self->lock);
+      g_mutex_unlock (&self->lock);
       break;
-    case PROP_AMPLITUDE:{
-      GValue *val = g_value_get_boxed (value);
-
-      if (self->priv->type != G_TYPE_INVALID) {
-        g_return_if_fail (g_value_type_transformable (self->priv->type,
-                G_VALUE_TYPE (val)));
-
-        g_mutex_lock (self->lock);
-        if (G_IS_VALUE (&self->priv->amplitude))
-          g_value_unset (&self->priv->amplitude);
-
-        g_value_init (&self->priv->amplitude, self->priv->type);
-        g_value_transform (val, &self->priv->amplitude);
-        g_mutex_unlock (self->lock);
-      } else {
-        g_mutex_lock (self->lock);
-        if (G_IS_VALUE (&self->priv->amplitude))
-          g_value_unset (&self->priv->amplitude);
-
-        g_value_init (&self->priv->amplitude, G_VALUE_TYPE (val));
-        g_value_copy (val, &self->priv->amplitude);
-        g_mutex_unlock (self->lock);
-      }
-
+    case PROP_AMPLITUDE:
+      g_mutex_lock (&self->lock);
+      self->priv->amplitude = g_value_get_double (value);
+      g_mutex_unlock (&self->lock);
       break;
-    }
-    case PROP_OFFSET:{
-      GValue *val = g_value_get_boxed (value);
-
-      if (self->priv->type != G_TYPE_INVALID) {
-        g_return_if_fail (g_value_type_transformable (self->priv->type,
-                G_VALUE_TYPE (val)));
-
-        g_mutex_lock (self->lock);
-        if (G_IS_VALUE (&self->priv->offset))
-          g_value_unset (&self->priv->offset);
-
-        g_value_init (&self->priv->offset, self->priv->type);
-        g_value_transform (val, &self->priv->offset);
-        g_mutex_unlock (self->lock);
-      } else {
-        g_mutex_lock (self->lock);
-        if (G_IS_VALUE (&self->priv->offset))
-          g_value_unset (&self->priv->offset);
-
-        g_value_init (&self->priv->offset, G_VALUE_TYPE (val));
-        g_value_copy (val, &self->priv->offset);
-        g_mutex_unlock (self->lock);
-      }
-
+    case PROP_OFFSET:
+      g_mutex_lock (&self->lock);
+      self->priv->offset = g_value_get_double (value);
+      g_mutex_unlock (&self->lock);
       break;
-    }
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1065,10 +532,10 @@
       g_value_set_uint64 (value, self->priv->timeshift);
       break;
     case PROP_AMPLITUDE:
-      g_value_set_boxed (value, &self->priv->amplitude);
+      g_value_set_double (value, self->priv->amplitude);
       break;
     case PROP_OFFSET:
-      g_value_set_boxed (value, &self->priv->offset);
+      g_value_set_double (value, self->priv->offset);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1080,24 +547,18 @@
 gst_lfo_control_source_class_init (GstLFOControlSourceClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  GstControlSourceClass *csource_class = GST_CONTROL_SOURCE_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (klass);
   g_type_class_add_private (klass, sizeof (GstLFOControlSourcePrivate));
 
   gobject_class->finalize = gst_lfo_control_source_finalize;
-  gobject_class->dispose = gst_lfo_control_source_dispose;
   gobject_class->set_property = gst_lfo_control_source_set_property;
   gobject_class->get_property = gst_lfo_control_source_get_property;
 
-  csource_class->bind = gst_lfo_control_source_bind;
-
   /**
    * GstLFOControlSource:waveform
    *
    * Specifies the waveform that should be used for this #GstLFOControlSource.
-   * 
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_WAVEFORM,
       g_param_spec_enum ("waveform", "Waveform", "Waveform",
           GST_TYPE_LFO_WAVEFORM, GST_LFO_WAVEFORM_SINE,
@@ -1109,12 +570,11 @@
    * Specifies the frequency that should be used for the waveform
    * of this #GstLFOControlSource. It should be large enough
    * so that the period is longer than one nanosecond.
-   * 
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_FREQUENCY,
       g_param_spec_double ("frequency", "Frequency",
           "Frequency of the waveform", 0.0, G_MAXDOUBLE, 1.0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstLFOControlSource:timeshift
@@ -1125,33 +585,29 @@
    * To get a n nanosecond shift to the left use
    * "(GST_SECOND / frequency) - n".
    *
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_TIMESHIFT,
       g_param_spec_uint64 ("timeshift", "Timeshift",
           "Timeshift of the waveform to the right", 0, G_MAXUINT64, 0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstLFOControlSource:amplitude
    *
    * Specifies the amplitude for the waveform of this #GstLFOControlSource.
-   *
-   * It should be given as a #GValue with a type that can be transformed
-   * to the type of the bound property.
-   **/
+   */
   g_object_class_install_property (gobject_class, PROP_AMPLITUDE,
-      g_param_spec_boxed ("amplitude", "Amplitude", "Amplitude of the waveform",
-          G_TYPE_VALUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_double ("amplitude", "Amplitude",
+          "Amplitude of the waveform", 0.0, 1.0, 1.0,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstLFOControlSource:offset
    *
-   * Specifies the offset for the waveform of this #GstLFOControlSource.
-   *
-   * It should be given as a #GValue with a type that can be transformed
-   * to the type of the bound property.
-   **/
+   * Specifies the value offset for the waveform of this #GstLFOControlSource.
+   */
   g_object_class_install_property (gobject_class, PROP_OFFSET,
-      g_param_spec_boxed ("offset", "Offset", "Offset of the waveform",
-          G_TYPE_VALUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_double ("offset", "Offset", "Offset of the waveform",
+          0.0, 1.0, 1.0,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 }
diff --git a/libs/gst/controller/gstlfocontrolsource.h b/libs/gst/controller/gstlfocontrolsource.h
index d61ad06..2ce6d84 100644
--- a/libs/gst/controller/gstlfocontrolsource.h
+++ b/libs/gst/controller/gstlfocontrolsource.h
@@ -27,8 +27,6 @@
 #include <glib-object.h>
 #include <gst/gst.h>
 
-#include <gst/controller/gstcontrolsource.h>
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_LFO_CONTROL_SOURCE \
@@ -79,13 +77,13 @@
 
   /* <private> */
   GstLFOControlSourcePrivate *priv;
-  GMutex *lock;
+  GMutex lock;
   gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstLFOControlSourceClass {
   GstControlSourceClass parent_class;
-  
+
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
@@ -95,7 +93,7 @@
 
 /* Functions */
 
-GstLFOControlSource *gst_lfo_control_source_new (void);
+GstControlSource *gst_lfo_control_source_new (void);
 
 G_END_DECLS
 
diff --git a/libs/gst/controller/gstlfocontrolsourceprivate.h b/libs/gst/controller/gstlfocontrolsourceprivate.h
deleted file mode 100644
index fddf357..0000000
--- a/libs/gst/controller/gstlfocontrolsourceprivate.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
- *
- * gstlfocontrolsourceprivate.h: Private declarations for the
- *                                         GstLFOControlSource
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_LFO_CONTROL_SOURCE_PRIVATE_H__
-#define __GST_LFO_CONTROL_SOURCE_PRIVATE_H__
-
-typedef struct _GstWaveformImplementation
-{
-  GstControlSourceGetValue get_int;
-  GstControlSourceGetValueArray get_int_value_array;
-  GstControlSourceGetValue get_uint;
-  GstControlSourceGetValueArray get_uint_value_array;
-  GstControlSourceGetValue get_long;
-  GstControlSourceGetValueArray get_long_value_array;
-  GstControlSourceGetValue get_ulong;
-  GstControlSourceGetValueArray get_ulong_value_array;
-  GstControlSourceGetValue get_int64;
-  GstControlSourceGetValueArray get_int64_value_array;
-  GstControlSourceGetValue get_uint64;
-  GstControlSourceGetValueArray get_uint64_value_array;
-  GstControlSourceGetValue get_float;
-  GstControlSourceGetValueArray get_float_value_array;
-  GstControlSourceGetValue get_double;
-  GstControlSourceGetValueArray get_double_value_array;
-} GstWaveformImplementation;
-
-struct _GstLFOControlSourcePrivate
-{
-  GType type;                   /* type of the handled property */
-  GType base;                   /* base-type of the handled property */
-
-  GValue minimum_value;         /* min value for the handled property */
-  GValue maximum_value;         /* max value for the handled property */
-
-  GstLFOWaveform waveform;
-  gdouble frequency;
-  GstClockTime period;
-  GstClockTime timeshift;
-  GValue amplitude;
-  GValue offset; 
-};
-
-#endif /* __GST_LFO_CONTROL_SOURCE_PRIVATE_H__ */
-
diff --git a/libs/gst/controller/gsttimedvaluecontrolsource.c b/libs/gst/controller/gsttimedvaluecontrolsource.c
new file mode 100644
index 0000000..38723eb
--- /dev/null
+++ b/libs/gst/controller/gsttimedvaluecontrolsource.c
@@ -0,0 +1,422 @@
+/* GStreamer
+ *
+ * Copyright (C) 2007,2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *               2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gsttimedvaluecontrolsource.c: Base class for timeed value based control
+ *                               sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gsttimedvaluecontrolsource
+ * @short_description: timed value control source base class
+ *
+ * Base class for #GstContrlSources that use time-stamped values.
+ *
+ * When overriding bind, chain up first to give this bind implementation a
+ * chance to setup things.
+ *
+ * All functions are MT-safe.
+ *
+ */
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include "gstinterpolationcontrolsource.h"
+#include "gst/glib-compat-private.h"
+
+#define GST_CAT_DEFAULT controller_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "timed value control source", 0, \
+    "timed value control source base class")
+
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (GstTimedValueControlSource,
+    gst_timed_value_control_source, GST_TYPE_CONTROL_SOURCE, _do_init);
+
+/*
+ * gst_control_point_free:
+ * @prop: the object to free
+ *
+ * Private method which frees all data allocated by a #GstControlPoint
+ * instance.
+ */
+static void
+gst_control_point_free (GstControlPoint * cp)
+{
+  g_return_if_fail (cp);
+
+  g_slice_free (GstControlPoint, cp);
+}
+
+static void
+gst_timed_value_control_source_reset (GstTimedValueControlSource * self)
+{
+  GstControlSource *csource = (GstControlSource *) self;
+
+  csource->get_value = NULL;
+  csource->get_value_array = NULL;
+
+  if (self->values) {
+    g_sequence_free (self->values);
+    self->values = NULL;
+  }
+
+  self->nvalues = 0;
+  self->valid_cache = FALSE;
+}
+
+/*
+ * gst_control_point_compare:
+ * @p1: a pointer to a #GstControlPoint
+ * @p2: a pointer to a #GstControlPoint
+ *
+ * Compare function for g_list operations that operates on two #GstControlPoint
+ * parameters.
+ */
+static gint
+gst_control_point_compare (gconstpointer p1, gconstpointer p2)
+{
+  GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
+  GstClockTime ct2 = ((GstControlPoint *) p2)->timestamp;
+
+  return ((ct1 < ct2) ? -1 : ((ct1 == ct2) ? 0 : 1));
+}
+
+/*
+ * gst_control_point_find:
+ * @p1: a pointer to a #GstControlPoint
+ * @p2: a pointer to a #GstClockTime
+ *
+ * Compare function for g_list operations that operates on a #GstControlPoint and
+ * a #GstClockTime.
+ */
+static gint
+gst_control_point_find (gconstpointer p1, gconstpointer p2)
+{
+  GstClockTime ct1 = ((GstControlPoint *) p1)->timestamp;
+  GstClockTime ct2 = *(GstClockTime *) p2;
+
+  return ((ct1 < ct2) ? -1 : ((ct1 == ct2) ? 0 : 1));
+}
+
+static GstControlPoint *
+_make_new_cp (GstTimedValueControlSource * self, GstClockTime timestamp,
+    const gdouble value)
+{
+  GstControlPoint *cp;
+
+  /* create a new GstControlPoint */
+  cp = g_slice_new0 (GstControlPoint);
+  cp->timestamp = timestamp;
+  cp->value = value;
+
+  return cp;
+}
+
+static void
+gst_timed_value_control_source_set_internal (GstTimedValueControlSource *
+    self, GstClockTime timestamp, const gdouble value)
+{
+  GSequenceIter *iter;
+
+  /* check if a control point for the timestamp already exists */
+
+  /* iter contains the iter right *after* timestamp */
+  if (G_LIKELY (self->values)) {
+    iter =
+        g_sequence_search (self->values, &timestamp,
+        (GCompareDataFunc) gst_control_point_find, NULL);
+    if (iter) {
+      GSequenceIter *prev = g_sequence_iter_prev (iter);
+      GstControlPoint *cp = g_sequence_get (prev);
+
+      /* If the timestamp is the same just update the control point value */
+      if (cp->timestamp == timestamp) {
+        /* update control point */
+        cp->value = value;
+        goto done;
+      }
+    }
+  } else {
+    self->values = g_sequence_new ((GDestroyNotify) gst_control_point_free);
+    GST_INFO ("create new timed value sequence");
+  }
+
+  /* sort new cp into the prop->values list */
+  g_sequence_insert_sorted (self->values, _make_new_cp (self, timestamp,
+          value), (GCompareDataFunc) gst_control_point_compare, NULL);
+  self->nvalues++;
+
+done:
+  self->valid_cache = FALSE;
+}
+
+/**
+ * gst_timed_value_control_source_find_control_point_iter:
+ * @self: the control source to search in
+ * @timestamp: the search key
+ *
+ * Find last value before given timestamp in control point list.
+ * If all values in the control point list come after the given
+ * timestamp or no values exist, %NULL is returned.
+ *
+ * For use in control source implementations.
+ *
+ * Returns: the found #GSequenceIter or %NULL
+ */
+GSequenceIter *gst_timed_value_control_source_find_control_point_iter
+    (GstTimedValueControlSource * self, GstClockTime timestamp)
+{
+  GSequenceIter *iter;
+
+  if (!self->values)
+    return NULL;
+
+  iter =
+      g_sequence_search (self->values, &timestamp,
+      (GCompareDataFunc) gst_control_point_find, NULL);
+
+  /* g_sequence_search() returns the iter where timestamp
+   * would be inserted, i.e. the iter > timestamp, so
+   * we need to get the previous one. And of course, if
+   * there is no previous one, we return NULL. */
+  if (g_sequence_iter_is_begin (iter))
+    return NULL;
+
+  return g_sequence_iter_prev (iter);
+}
+
+
+/**
+ * gst_timed_value_control_source_set:
+ * @self: the #GstTimedValueControlSource object
+ * @timestamp: the time the control-change is scheduled for
+ * @value: the control-value
+ *
+ * Set the value of given controller-handled property at a certain time.
+ *
+ * Returns: FALSE if the values couldn't be set, TRUE otherwise.
+ */
+gboolean
+gst_timed_value_control_source_set (GstTimedValueControlSource * self,
+    GstClockTime timestamp, const gdouble value)
+{
+  g_return_val_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+
+  g_mutex_lock (&self->lock);
+  gst_timed_value_control_source_set_internal (self, timestamp, value);
+  g_mutex_unlock (&self->lock);
+
+  return TRUE;
+}
+
+/**
+ * gst_timed_value_control_source_set_from_list:
+ * @self: the #GstTimedValueControlSource object
+ * @timedvalues: (transfer none) (element-type GstController.TimedValue): a list
+ * with #GstTimedValue items
+ *
+ * Sets multiple timed values at once.
+ *
+ * Returns: FALSE if the values couldn't be set, TRUE otherwise.
+ */
+gboolean
+gst_timed_value_control_source_set_from_list (GstTimedValueControlSource *
+    self, const GSList * timedvalues)
+{
+  const GSList *node;
+  GstTimedValue *tv;
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self), FALSE);
+
+  for (node = timedvalues; node; node = g_slist_next (node)) {
+    tv = node->data;
+    if (!GST_CLOCK_TIME_IS_VALID (tv->timestamp)) {
+      GST_WARNING ("GstTimedValued with invalid timestamp passed to %s",
+          GST_FUNCTION);
+    } else {
+      g_mutex_lock (&self->lock);
+      gst_timed_value_control_source_set_internal (self, tv->timestamp,
+          tv->value);
+      g_mutex_unlock (&self->lock);
+      res = TRUE;
+    }
+  }
+  return res;
+}
+
+/**
+ * gst_timed_value_control_source_unset:
+ * @self: the #GstTimedValueControlSource object
+ * @timestamp: the time the control-change should be removed from
+ *
+ * Used to remove the value of given controller-handled property at a certain
+ * time.
+ *
+ * Returns: FALSE if the value couldn't be unset (i.e. not found, TRUE otherwise.
+ */
+gboolean
+gst_timed_value_control_source_unset (GstTimedValueControlSource * self,
+    GstClockTime timestamp)
+{
+  GSequenceIter *iter;
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
+
+  g_mutex_lock (&self->lock);
+  /* check if a control point for the timestamp exists */
+  if (G_LIKELY (self->values) && (iter =
+          g_sequence_search (self->values, &timestamp,
+              (GCompareDataFunc) gst_control_point_find, NULL))) {
+    GstControlPoint *cp;
+
+    /* Iter contains the iter right after timestamp, i.e.
+     * we need to get the previous one and check the timestamp
+     */
+    iter = g_sequence_iter_prev (iter);
+    cp = g_sequence_get (iter);
+    if (cp->timestamp == timestamp) {
+      g_sequence_remove (iter);
+      self->nvalues--;
+      self->valid_cache = FALSE;
+      res = TRUE;
+    }
+  }
+  g_mutex_unlock (&self->lock);
+
+  return res;
+}
+
+/**
+ * gst_timed_value_control_source_unset_all:
+ * @self: the #GstTimedValueControlSource object
+ *
+ * Used to remove all time-stamped values of given controller-handled property
+ *
+ */
+void
+gst_timed_value_control_source_unset_all (GstTimedValueControlSource * self)
+{
+  g_return_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self));
+
+  g_mutex_lock (&self->lock);
+  /* free GstControlPoint structures */
+  if (self->values) {
+    g_sequence_free (self->values);
+    self->values = NULL;
+  }
+  self->nvalues = 0;
+  self->valid_cache = FALSE;
+
+  g_mutex_unlock (&self->lock);
+}
+
+static void
+_append_control_point (GstControlPoint * cp, GQueue * res)
+{
+  g_queue_push_tail (res, cp);
+}
+
+/**
+ * gst_timed_value_control_source_get_all:
+ * @self: the #GstTimedValueControlSource to get the list from
+ *
+ * Returns a read-only copy of the list of #GstTimedValue for the given property.
+ * Free the list after done with it.
+ *
+ * Returns: (transfer container) (element-type GstController.TimedValue): a copy
+ * of the list, or %NULL if the property isn't handled by the controller
+ */
+GList *
+gst_timed_value_control_source_get_all (GstTimedValueControlSource * self)
+{
+  GQueue res = G_QUEUE_INIT;
+
+  g_return_val_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self), NULL);
+
+  g_mutex_lock (&self->lock);
+  if (G_LIKELY (self->values))
+    g_sequence_foreach (self->values, (GFunc) _append_control_point, &res);
+  g_mutex_unlock (&self->lock);
+
+  return res.head;
+}
+
+/**
+ * gst_timed_value_control_source_get_count:
+ * @self: the #GstTimedValueControlSource to get the number of values from
+ *
+ * Get the number of control points that are set.
+ *
+ * Returns: the number of control points that are set.
+ */
+gint
+gst_timed_value_control_source_get_count (GstTimedValueControlSource * self)
+{
+  g_return_val_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self), 0);
+  return self->nvalues;
+}
+
+/**
+ * gst_timed_value_control_invalidate_cache:
+ * @self: the #GstTimedValueControlSource
+ *
+ * Reset the controlled value cache.
+ */
+void
+gst_timed_value_control_invalidate_cache (GstTimedValueControlSource * self)
+{
+  g_return_if_fail (GST_IS_TIMED_VALUE_CONTROL_SOURCE (self));
+  self->valid_cache = FALSE;
+}
+
+static void
+gst_timed_value_control_source_init (GstTimedValueControlSource * self)
+{
+  g_mutex_init (&self->lock);
+}
+
+static void
+gst_timed_value_control_source_finalize (GObject * obj)
+{
+  GstTimedValueControlSource *self = GST_TIMED_VALUE_CONTROL_SOURCE (obj);
+
+  g_mutex_lock (&self->lock);
+  gst_timed_value_control_source_reset (self);
+  g_mutex_unlock (&self->lock);
+  g_mutex_clear (&self->lock);
+
+  G_OBJECT_CLASS (gst_timed_value_control_source_parent_class)->finalize (obj);
+}
+
+static void
+gst_timed_value_control_source_class_init (GstTimedValueControlSourceClass
+    * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  //GstControlSourceClass *csource_class = GST_CONTROL_SOURCE_CLASS (klass);
+
+  gobject_class->finalize = gst_timed_value_control_source_finalize;
+}
diff --git a/libs/gst/controller/gsttimedvaluecontrolsource.h b/libs/gst/controller/gsttimedvaluecontrolsource.h
new file mode 100644
index 0000000..e1dde55
--- /dev/null
+++ b/libs/gst/controller/gsttimedvaluecontrolsource.h
@@ -0,0 +1,131 @@
+/* GStreamer
+ *
+ * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ *               2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gsttimedvaluecontrolsource.h: Base class for timeed value based control
+ *                               sources
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_TIMED_VALUE_CONTROL_SOURCE_H__
+#define __GST_TIMED_VALUE_CONTROL_SOURCE_H__
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include <gst/gstcontrolsource.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_TIMED_VALUE_CONTROL_SOURCE \
+  (gst_timed_value_control_source_get_type ())
+#define GST_TIMED_VALUE_CONTROL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TIMED_VALUE_CONTROL_SOURCE, GstTimedValueControlSource))
+#define GST_TIMED_VALUE_CONTROL_SOURCE_CLASS(vtable) \
+  (G_TYPE_CHECK_CLASS_CAST ((vtable), GST_TYPE_TIMED_VALUE_CONTROL_SOURCE, GstTimedValueControlSourceClass))
+#define GST_IS_TIMED_VALUE_CONTROL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TIMED_VALUE_CONTROL_SOURCE))
+#define GST_IS_TIMED_VALUE_CONTROL_SOURCE_CLASS(vtable) \
+  (G_TYPE_CHECK_CLASS_TYPE ((vtable), GST_TYPE_TIMED_VALUE_CONTROL_SOURCE))
+#define GST_TIMED_VALUE_CONTROL_SOURCE_GET_CLASS(inst) \
+  (G_TYPE_INSTANCE_GET_CLASS ((inst), GST_TYPE_TIMED_VALUE_CONTROL_SOURCE, GstTimedValueControlSourceClass))
+
+typedef struct _GstTimedValueControlSource GstTimedValueControlSource;
+typedef struct _GstTimedValueControlSourceClass GstTimedValueControlSourceClass;
+typedef struct _GstTimedValueControlSourcePrivate GstTimedValueControlSourcePrivate;
+
+/**
+ * GstControlPoint:
+ *
+ * a internal structure for value+time and various temporary
+ * values used for interpolation. This "inherits" from
+ * GstTimedValue.
+ */
+typedef struct _GstControlPoint
+{
+  /* fields from GstTimedValue. DO NOT CHANGE! */
+  GstClockTime timestamp;       /* timestamp of the value change */
+  gdouble value;                /* the new value */
+
+  /* internal fields */
+
+  /* Caches for the interpolators */
+  // FIXME: we should not have this here already ...
+  union {
+    struct {
+      gdouble h;
+      gdouble z;
+    } cubic;
+  } cache;
+
+} GstControlPoint;
+
+/**
+ * GstTimedValueControlSource:
+ *
+ * The instance structure of #GstControlSource.
+ */
+struct _GstTimedValueControlSource {
+  GstControlSource parent;
+
+  /*< protected >*/
+  GMutex lock;
+
+  GSequence *values;            /* List of GstControlPoint */
+  gint nvalues;                 /* Number of control points */
+  gboolean valid_cache;
+
+  GstTimedValueControlSourcePrivate *priv;
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstTimedValueControlSourceClass {
+  GstControlSourceClass parent_class;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+#define GST_TIMED_VALUE_CONTROL_SOURCE_LOCK(o) \
+  g_mutex_lock(&((GstTimedValueControlSource *)o)->lock)
+#define GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK(o) \
+  g_mutex_unlock(&((GstTimedValueControlSource *)o)->lock)
+
+GType gst_timed_value_control_source_get_type (void);
+
+/* Functions */
+
+GSequenceIter * gst_timed_value_control_source_find_control_point_iter (
+                                                               GstTimedValueControlSource * self, 
+                                                               GstClockTime timestamp);
+
+gboolean        gst_timed_value_control_source_set            (GstTimedValueControlSource * self,
+                                                               GstClockTime timestamp,
+                                                               const gdouble value);
+gboolean        gst_timed_value_control_source_set_from_list  (GstTimedValueControlSource * self,
+                                                               const GSList * timedvalues);
+gboolean        gst_timed_value_control_source_unset          (GstTimedValueControlSource * self,
+                                                               GstClockTime timestamp);
+void            gst_timed_value_control_source_unset_all      (GstTimedValueControlSource *self);
+GList *         gst_timed_value_control_source_get_all        (GstTimedValueControlSource * self);
+gint            gst_timed_value_control_source_get_count      (GstTimedValueControlSource * self);
+void            gst_timed_value_control_invalidate_cache      (GstTimedValueControlSource * self);
+
+G_END_DECLS
+
+#endif /* __GST_TIMED_VALUE_CONTROL_SOURCE_H__ */
diff --git a/libs/gst/controller/gsttriggercontrolsource.c b/libs/gst/controller/gsttriggercontrolsource.c
new file mode 100644
index 0000000..94636be
--- /dev/null
+++ b/libs/gst/controller/gsttriggercontrolsource.c
@@ -0,0 +1,256 @@
+/* GStreamer
+ *
+ * Copyright (C) 2007,2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *               2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gsttriggercontrolsource.c: Control source that provides some values at time-
+ *                            stamps
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+ /**
+ * SECTION:gsttriggercontrolsource
+ * @short_description: interpolation control source
+ *
+ * #GstTriggerControlSource is a #GstControlSource, that returns values from user-given
+ * control points. It allows for a tolerance on the time-stamps.
+ *
+ * To use #GstTriggerControlSource get a new instance by calling
+ * gst_trigger_control_source_new(), bind it to a #GParamSpec and set some
+ * control points by calling gst_timed_value_control_source_set().
+ *
+ * All functions are MT-safe.
+ */
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include "gsttriggercontrolsource.h"
+#include "gst/glib-compat-private.h"
+#include "gst/math-compat.h"
+
+#define GST_CAT_DEFAULT controller_debug
+GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+struct _GstTriggerControlSourcePrivate
+{
+  gint64 tolerance;
+};
+
+/* control point accessors */
+
+/*  returns the default value of the property, except for times with specific values */
+/*  needed for one-shot events, such as notes and triggers */
+
+static inline gdouble
+_interpolate_trigger (GstTimedValueControlSource * self, GSequenceIter * iter,
+    GstClockTime timestamp)
+{
+  GstControlPoint *cp;
+  gint64 tolerance = ((GstTriggerControlSource *) self)->priv->tolerance;
+  gboolean found = FALSE;
+
+  cp = g_sequence_get (iter);
+  if (GST_CLOCK_DIFF (cp->timestamp, timestamp) <= tolerance) {
+    found = TRUE;
+  } else {
+    if ((iter = g_sequence_iter_next (iter))) {
+      cp = g_sequence_get (iter);
+      if (GST_CLOCK_DIFF (timestamp, cp->timestamp) <= tolerance) {
+        found = TRUE;
+      }
+    }
+  }
+  if (found) {
+    return cp->value;
+  }
+  return NAN;
+}
+
+static gboolean
+interpolate_trigger_get (GstTimedValueControlSource * self,
+    GstClockTime timestamp, gdouble * value)
+{
+  gboolean ret = FALSE;
+  GSequenceIter *iter;
+
+  g_mutex_lock (&self->lock);
+
+  iter =
+      gst_timed_value_control_source_find_control_point_iter (self, timestamp);
+  if (iter) {
+    *value = _interpolate_trigger (self, iter, timestamp);
+    if (!isnan (*value))
+      ret = TRUE;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+static gboolean
+interpolate_trigger_get_value_array (GstTimedValueControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  gboolean ret = FALSE;
+  guint i;
+  GstClockTime ts = timestamp;
+  GstClockTime next_ts = 0;
+  gdouble val;
+  GSequenceIter *iter1 = NULL, *iter2 = NULL;
+  gboolean triggered = FALSE;
+
+  g_mutex_lock (&self->lock);
+  for (i = 0; i < n_values; i++) {
+    val = NAN;
+    if (ts >= next_ts) {
+      iter1 = gst_timed_value_control_source_find_control_point_iter (self, ts);
+      if (!iter1) {
+        if (G_LIKELY (self->values))
+          iter2 = g_sequence_get_begin_iter (self->values);
+        else
+          iter2 = NULL;
+      } else {
+        iter2 = g_sequence_iter_next (iter1);
+      }
+
+      if (iter2 && !g_sequence_iter_is_end (iter2)) {
+        GstControlPoint *cp;
+
+        cp = g_sequence_get (iter2);
+        next_ts = cp->timestamp;
+      } else {
+        next_ts = GST_CLOCK_TIME_NONE;
+      }
+
+      if (iter1) {
+        val = _interpolate_trigger (self, iter1, ts);
+        if (!isnan (val))
+          ret = TRUE;
+      } else {
+        g_mutex_unlock (&self->lock);
+        return FALSE;
+      }
+      triggered = TRUE;
+    } else if (triggered) {
+      if (iter1) {
+        val = _interpolate_trigger (self, iter1, ts);
+        if (!isnan (val))
+          ret = TRUE;
+      } else {
+        g_mutex_unlock (&self->lock);
+        return FALSE;
+      }
+      triggered = FALSE;
+    }
+    *values = val;
+    ts += interval;
+    values++;
+  }
+  g_mutex_unlock (&self->lock);
+  return ret;
+}
+
+enum
+{
+  PROP_TOLERANCE = 1,
+};
+
+#define _do_init \
+  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "trigger control source", 0, \
+    "timeline value trigger control source")
+
+G_DEFINE_TYPE_WITH_CODE (GstTriggerControlSource, gst_trigger_control_source,
+    GST_TYPE_TIMED_VALUE_CONTROL_SOURCE, _do_init);
+
+/**
+ * gst_trigger_control_source_new:
+ *
+ * This returns a new, unbound #GstTriggerControlSource.
+ *
+ * Returns: (transfer full): a new, unbound #GstTriggerControlSource.
+ */
+GstControlSource *
+gst_trigger_control_source_new (void)
+{
+  return g_object_newv (GST_TYPE_TRIGGER_CONTROL_SOURCE, 0, NULL);
+}
+
+static void
+gst_trigger_control_source_init (GstTriggerControlSource * self)
+{
+  GstControlSource *csource = (GstControlSource *) self;
+
+  self->priv =
+      G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_TRIGGER_CONTROL_SOURCE,
+      GstTriggerControlSourcePrivate);
+
+  csource->get_value = (GstControlSourceGetValue) interpolate_trigger_get;
+  csource->get_value_array = (GstControlSourceGetValueArray)
+      interpolate_trigger_get_value_array;
+}
+
+static void
+gst_trigger_control_source_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstTriggerControlSource *self = GST_TRIGGER_CONTROL_SOURCE (object);
+
+  switch (prop_id) {
+    case PROP_TOLERANCE:
+      GST_TIMED_VALUE_CONTROL_SOURCE_LOCK (self);
+      self->priv->tolerance = g_value_get_int64 (value);
+      GST_TIMED_VALUE_CONTROL_SOURCE_UNLOCK (self);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_trigger_control_source_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstTriggerControlSource *self = GST_TRIGGER_CONTROL_SOURCE (object);
+
+  switch (prop_id) {
+    case PROP_TOLERANCE:
+      g_value_set_int64 (value, self->priv->tolerance);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_trigger_control_source_class_init (GstTriggerControlSourceClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  g_type_class_add_private (klass, sizeof (GstTriggerControlSourcePrivate));
+
+  gobject_class->set_property = gst_trigger_control_source_set_property;
+  gobject_class->get_property = gst_trigger_control_source_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_TOLERANCE,
+      g_param_spec_int64 ("tolerance", "Tolerance",
+          "Amount of ns a control time can be off to still trigger",
+          0, G_MAXINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+}
diff --git a/libs/gst/controller/gsttriggercontrolsource.h b/libs/gst/controller/gsttriggercontrolsource.h
new file mode 100644
index 0000000..1f1f132
--- /dev/null
+++ b/libs/gst/controller/gsttriggercontrolsource.h
@@ -0,0 +1,83 @@
+/* GStreamer
+ *
+ * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ *               2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * gsttriggercontrolsource.h: Control source that provides some values at time-
+ *                            stamps
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+#ifndef __GST_TRIGGER_CONTROL_SOURCE_H__
+#define __GST_TRIGGER_CONTROL_SOURCE_H__
+
+#include <glib-object.h>
+#include <gst/gst.h>
+
+#include <gst/controller/gsttimedvaluecontrolsource.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_TRIGGER_CONTROL_SOURCE \
+  (gst_trigger_control_source_get_type ())
+#define GST_TRIGGER_CONTROL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TRIGGER_CONTROL_SOURCE, GstTriggerControlSource))
+#define GST_TRIGGER_CONTROL_SOURCE_CLASS(vtable) \
+  (G_TYPE_CHECK_CLASS_CAST ((vtable), GST_TYPE_TRIGGER_CONTROL_SOURCE, GstTriggerControlSourceClass))
+#define GST_IS_TRIGGER_CONTROL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TRIGGER_CONTROL_SOURCE))
+#define GST_IS_TRIGGER_CONTROL_SOURCE_CLASS(vtable) \
+  (G_TYPE_CHECK_CLASS_TYPE ((vtable), GST_TYPE_TRIGGER_CONTROL_SOURCE))
+#define GST_TRIGGER_CONTROL_SOURCE_GET_CLASS(inst) \
+  (G_TYPE_INSTANCE_GET_CLASS ((inst), GST_TYPE_TRIGGER_CONTROL_SOURCE, GstTriggerControlSourceClass))
+
+#define GST_TYPE_TRIGGER_WAVEFORM (gst_trigger_waveform_get_type ())
+
+typedef struct _GstTriggerControlSource GstTriggerControlSource;
+typedef struct _GstTriggerControlSourceClass GstTriggerControlSourceClass;
+typedef struct _GstTriggerControlSourcePrivate GstTriggerControlSourcePrivate;
+
+/**
+ * GstTriggerControlSource:
+ *
+ * The instance structure of #GstControlSource.
+ */
+struct _GstTriggerControlSource {
+  GstTimedValueControlSource parent;
+
+  /*< private >*/
+  GstTriggerControlSourcePrivate *priv;
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstTriggerControlSourceClass {
+  GstTimedValueControlSourceClass parent_class;
+  
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_trigger_control_source_get_type (void);
+
+/* Functions */
+
+GstControlSource *gst_trigger_control_source_new (void);
+
+G_END_DECLS
+
+#endif /* __GST_TRIGGER_CONTROL_SOURCE_H__ */
diff --git a/libs/gst/controller/lib.c b/libs/gst/controller/lib.c
deleted file mode 100644
index d81185f..0000000
--- a/libs/gst/controller/lib.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* GStreamer
- *
- * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
- *
- * lib.c: controller subsystem init
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-#include <gst/gst.h>
-#include <gst/controller/gstcontroller.h>
-
-/* library initialisation */
-
-#define GST_CAT_DEFAULT controller_debug
-GST_DEBUG_CATEGORY (GST_CAT_DEFAULT);
-
-/**
- * gst_controller_init:
- * @argc: pointer to the commandline argument count
- * @argv: pointer to the commandline argument values
- *
- * Initializes the use of the controller library. Suggested to be called right
- * after gst_init().
- *
- * Returns: the %TRUE for success.
- */
-gboolean
-gst_controller_init (int *argc, char ***argv)
-{
-  static gboolean _gst_controller_initialized = FALSE;
-
-  if (_gst_controller_initialized)
-    return TRUE;
-
-  _gst_controller_initialized = TRUE;
-
-  GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gstcontroller", 0,
-      "dynamic parameter control for gstreamer elements");
-
-  return TRUE;
-}
diff --git a/libs/gst/dataprotocol/Makefile.am b/libs/gst/dataprotocol/Makefile.am
deleted file mode 100644
index 59bd387..0000000
--- a/libs/gst/dataprotocol/Makefile.am
+++ /dev/null
@@ -1,81 +0,0 @@
-lib_LTLIBRARIES = libgstdataprotocol-@GST_MAJORMINOR@.la
-
-libgstdataprotocol_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/dataprotocol
-libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS = \
-    dataprotocol.h
-noinst_HEADERS = dp-private.h
-
-libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES = \
-    dataprotocol.c
-
-libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
-libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-
-CLEANFILES = *.gcno *.gcda *.gcov *.gcov.out
-
-%.c.gcov: .libs/libgstdataprotocol_@GST_MAJORMINOR@_la-%.gcda %.c
-	$(GCOV) -b -f -o $^ > $@.out
-
-gcov: $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstdataprotocol-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/dataprotocol \
-	 -:HEADERS $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
-# Disabled until this is fixed:
-# http://bugzilla.gnome.org/show_bug.cgi?id=594202
-if FALSE
-if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstDataprotocol-@GST_MAJORMINOR@.gir
-
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/dataprotocol/%',$(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS))
-
-GstDataprotocol-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstdataprotocol-@GST_MAJORMINOR@.la
-	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
-		$(INTROSPECTION_SCANNER) -v --namespace GstDataprotocol \
-		--strip-prefix=Gst \
-		--nsversion=@GST_MAJORMINOR@ \
-		-DGST_USE_UNSTABLE_API \
-		-I$(top_srcdir) \
-		-I$(top_builddir) \
-		$(gir_cincludes) \
-		--add-include-path=$(top_builddir)/gst \
-		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
-		--library=libgstdataprotocol-@GST_MAJORMINOR@.la \
-		--include=Gst-@GST_MAJORMINOR@ \
-		--libtool="$(top_builddir)/libtool" \
-		--pkg gstreamer-@GST_MAJORMINOR@ \
-		--pkg-export=gstreamer-dataprotocol-@GST_MAJORMINOR@ \
-		--add-init-section="gst_init(NULL,NULL);" \
-		--output $@ \
-		$(gir_headers) \
-		$(gir_sources)
-
-# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
-# install anything - we need to install inside our prefix.
-girdir = $(datadir)/gir-1.0
-gir_DATA = $(BUILT_GIRSOURCES)
-
-typelibsdir = $(libdir)/girepository-1.0/
-
-typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
-
-%.typelib: %.gir $(INTROSPECTION_COMPILER)
-	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
-CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-endif
-endif
diff --git a/libs/gst/dataprotocol/Makefile.in b/libs/gst/dataprotocol/Makefile.in
deleted file mode 100644
index 662172a..0000000
--- a/libs/gst/dataprotocol/Makefile.in
+++ /dev/null
@@ -1,815 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = libs/gst/dataprotocol
-DIST_COMMON = $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS) \
-	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.m4 \
-	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
-	$(top_srcdir)/common/m4/as-scrub-include.m4 \
-	$(top_srcdir)/common/m4/as-version.m4 \
-	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
-	$(top_srcdir)/common/m4/gst-arch.m4 \
-	$(top_srcdir)/common/m4/gst-args.m4 \
-	$(top_srcdir)/common/m4/gst-check.m4 \
-	$(top_srcdir)/common/m4/gst-doc.m4 \
-	$(top_srcdir)/common/m4/gst-error.m4 \
-	$(top_srcdir)/common/m4/gst-feature.m4 \
-	$(top_srcdir)/common/m4/gst-function.m4 \
-	$(top_srcdir)/common/m4/gst-gettext.m4 \
-	$(top_srcdir)/common/m4/gst-glib2.m4 \
-	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
-	$(top_srcdir)/common/m4/gst-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(libdir)" \
-	"$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libgstdataprotocol_@GST_MAJORMINOR@_la_DEPENDENCIES =  \
-	$(am__DEPENDENCIES_1)
-am_libgstdataprotocol_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo
-libgstdataprotocol_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstdataprotocol_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
-libgstdataprotocol_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
-	--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
-	$(CCLD) $(libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS) \
-	$(CFLAGS) $(libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS) \
-	$(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES)
-HEADERS = $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS) \
-	$(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-GCOV = @GCOV@
-GCOV_CFLAGS = @GCOV_CFLAGS@
-GCOV_LIBS = @GCOV_LIBS@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
-GLIB_PREFIX = @GLIB_PREFIX@
-GLIB_REQ = @GLIB_REQ@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PKG_DEPS = @GST_PKG_DEPS@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE@
-GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
-HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FIG2DEV = @HAVE_FIG2DEV@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
-PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
-PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
-PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
-PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstdataprotocol-@GST_MAJORMINOR@.la
-libgstdataprotocol_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/dataprotocol
-libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS = \
-    dataprotocol.h
-
-noinst_HEADERS = dp-private.h
-libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES = \
-    dataprotocol.c
-
-libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS)
-libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-CLEANFILES = *.gcno *.gcda *.gcov *.gcov.out
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libs/gst/dataprotocol/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu libs/gst/dataprotocol/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
-	}
-
-uninstall-libLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
-	done
-
-clean-libLTLIBRARIES:
-	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libgstdataprotocol-@GST_MAJORMINOR@.la: $(libgstdataprotocol_@GST_MAJORMINOR@_la_OBJECTS) $(libgstdataprotocol_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstdataprotocol_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstdataprotocol_@GST_MAJORMINOR@_la_OBJECTS) $(libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo: dataprotocol.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo -MD -MP -MF $(DEPDIR)/libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.Tpo -c -o libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo `test -f 'dataprotocol.c' || echo '$(srcdir)/'`dataprotocol.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.Tpo $(DEPDIR)/libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='dataprotocol.c' object='libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstdataprotocol_@GST_MAJORMINOR@_la-dataprotocol.lo `test -f 'dataprotocol.c' || echo '$(srcdir)/'`dataprotocol.c
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-install-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS: $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS)
-	@$(NORMAL_INSTALL)
-	test -z "$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)"
-	@list='$(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)" || list=; \
-	for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)" || exit $$?; \
-	done
-
-uninstall-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS:
-	@$(NORMAL_UNINSTALL)
-	@list='$(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libgstdataprotocol_@GST_MAJORMINOR@_includedir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:  \
-	install-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libLTLIBRARIES \
-	uninstall-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am \
-	install-libLTLIBRARIES \
-	install-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-libLTLIBRARIES \
-	uninstall-libgstdataprotocol_@GST_MAJORMINOR@_includeHEADERS
-
-
-%.c.gcov: .libs/libgstdataprotocol_@GST_MAJORMINOR@_la-%.gcda %.c
-	$(GCOV) -b -f -o $^ > $@.out
-
-gcov: $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstdataprotocol-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstdataprotocol_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstdataprotocol_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstdataprotocol_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstdataprotocol_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/dataprotocol \
-	 -:HEADERS $(libgstdataprotocol_@GST_MAJORMINOR@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
-#GstDataprotocol-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstdataprotocol-@GST_MAJORMINOR@.la
-#	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-#		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
-#		$(INTROSPECTION_SCANNER) -v --namespace GstDataprotocol \
-#		--strip-prefix=Gst \
-#		--nsversion=@GST_MAJORMINOR@ \
-#		-DGST_USE_UNSTABLE_API \
-#		-I$(top_srcdir) \
-#		-I$(top_builddir) \
-#		$(gir_cincludes) \
-#		--add-include-path=$(top_builddir)/gst \
-#		--library-path=$(top_builddir)/gst \
-#		--library=$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
-#		--library=libgstdataprotocol-@GST_MAJORMINOR@.la \
-#		--include=Gst-@GST_MAJORMINOR@ \
-#		--libtool="$(top_builddir)/libtool" \
-#		--pkg gstreamer-@GST_MAJORMINOR@ \
-#		--pkg-export=gstreamer-dataprotocol-@GST_MAJORMINOR@ \
-#		--add-init-section="gst_init(NULL,NULL);" \
-#		--output $@ \
-#		$(gir_headers) \
-#		$(gir_sources)
-
-#%.typelib: %.gir $(INTROSPECTION_COMPILER)
-#	$(AM_V_GEN)$(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=$(builddir) --includedir=$(top_builddir)/gst $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libs/gst/dataprotocol/dataprotocol.c b/libs/gst/dataprotocol/dataprotocol.c
deleted file mode 100644
index 3b2e182..0000000
--- a/libs/gst/dataprotocol/dataprotocol.c
+++ /dev/null
@@ -1,768 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- * Copyright (C) 2004,2006 Thomas Vander Stichele <thomas at apestaart dot org>
- *
- * dataprotocol.c: Functions implementing the GStreamer Data Protocol
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstdataprotocol
- * @short_description: Serialization of caps, buffers and events.
- * @see_also: #GstCaps, #GstEvent, #GstBuffer
- *
- * This helper library provides serialization of GstBuffer, GstCaps and
- * GstEvent structures.
- *
- * This serialization is useful when GStreamer needs to interface with
- * the outside world to transport data between distinct GStreamer pipelines.
- * The connections with the outside world generally don't have mechanisms
- * to transport properties of these structures.
- *
- * For example, transporting buffers across named pipes or network connections
- * doesn't maintain the buffer size and separation.
- *
- * This data protocol assumes a reliable connection-oriented transport, such as
- * TCP, a pipe, or a file.  The protocol does not serialize the caps for
- * each buffer; instead, it transport the caps only when they change in the
- * stream.  This implies that there will always be a caps packet before any
- * buffer packets.
- *
- * The versioning of the protocol is independent of GStreamer's version.
- * The major number gets incremented, and the minor reset, for incompatible
- * changes.  The minor number gets incremented for compatible changes that
- * allow clients who do not completely understand the newer protocol version
- * to still decode what they do understand.
- *
- * Version 0.2 serializes only a small subset of all events, with a custom
- * payload for each type.  Also, all GDP streams start with the initial caps
- * packet.
- *
- * Version 1.0 serializes all events by taking the string representation of
- * the event as the payload.  In addition, GDP streams can now start with
- * events as well, as required by the new data stream model in GStreamer 0.10.
- *
- * Converting buffers, caps and events to GDP buffers is done using a
- * #GstDPPacketizer object and invoking its packetizer functions.
- * For backwards-compatibility reasons, the old 0.2 methods are still
- * available but deprecated.
- *
- * For reference, this image shows the byte layout of the GDP header:
- *
- * <inlinegraphic format="PNG" fileref="gdp-header.png"></inlinegraphic>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gst/gst.h>
-#include <gst/dataprotocol/dataprotocol.h>
-#include <glib/gprintf.h>       /* g_sprintf */
-#include <string.h>             /* strlen */
-#include "dp-private.h"
-
-/* debug category */
-GST_DEBUG_CATEGORY_STATIC (data_protocol_debug);
-#define GST_CAT_DEFAULT data_protocol_debug
-
-/* helper macros */
-
-/* write first 6 bytes of header */
-#define GST_DP_INIT_HEADER(h, version, flags, type)		\
-G_STMT_START {							\
-  gint maj = 0, min = 0;					\
-  switch (version) {						\
-    case GST_DP_VERSION_0_2: maj = 0; min = 2; break;		\
-    case GST_DP_VERSION_1_0: maj = 1; min = 0; break;		\
-  }								\
-  h[0] = (guint8) maj;						\
-  h[1] = (guint8) min;						\
-  h[2] = (guint8) flags;					\
-  h[3] = 0; /* padding byte */					\
-  GST_WRITE_UINT16_BE (h + 4, type);				\
-} G_STMT_END
-
-#define GST_DP_SET_CRC(h, flags, payload, length);		\
-G_STMT_START {							\
-  guint16 crc = 0;						\
-  if (flags & GST_DP_HEADER_FLAG_CRC_HEADER)			\
-    /* we don't crc the last four bytes since they are crc's */ \
-    crc = gst_dp_crc (h, 58);					\
-  GST_WRITE_UINT16_BE (h + 58, crc);				\
-								\
-  crc = 0;							\
-  if (length && (flags & GST_DP_HEADER_FLAG_CRC_PAYLOAD))	\
-    crc = gst_dp_crc (payload, length);				\
-  GST_WRITE_UINT16_BE (h + 60, crc);				\
-} G_STMT_END
-
-/* calculate a CCITT 16 bit CRC check value for a given byte array */
-/*
- * this code snippet is adapted from a web page I found
- * it is identical except for cleanups, and a final XOR with 0xffff
- * as outlined in the uecp spec
- *
- * XMODEM    x^16 + x^12 + x^5 + 1
- */
-
-#define POLY       0x1021
-#define CRC_INIT   0xFFFF
-
-/*** HELPER FUNCTIONS ***/
-
-static gboolean
-gst_dp_header_from_buffer_any (const GstBuffer * buffer, GstDPHeaderFlag flags,
-    guint * length, guint8 ** header, GstDPVersion version)
-{
-  guint8 *h;
-  guint16 flags_mask;
-  guint8 *data;
-  gsize size;
-
-  g_return_val_if_fail (GST_IS_BUFFER (buffer), FALSE);
-  g_return_val_if_fail (length, FALSE);
-  g_return_val_if_fail (header, FALSE);
-
-  *length = GST_DP_HEADER_LENGTH;
-  h = g_malloc0 (GST_DP_HEADER_LENGTH);
-
-  /* version, flags, type */
-  GST_DP_INIT_HEADER (h, version, flags, GST_DP_PAYLOAD_BUFFER);
-
-  data = gst_buffer_map ((GstBuffer *) buffer, &size, NULL, GST_MAP_READ);
-
-  /* buffer properties */
-  GST_WRITE_UINT32_BE (h + 6, size);
-  GST_WRITE_UINT64_BE (h + 10, GST_BUFFER_TIMESTAMP (buffer));
-  GST_WRITE_UINT64_BE (h + 18, GST_BUFFER_DURATION (buffer));
-  GST_WRITE_UINT64_BE (h + 26, GST_BUFFER_OFFSET (buffer));
-  GST_WRITE_UINT64_BE (h + 34, GST_BUFFER_OFFSET_END (buffer));
-
-  /* data flags; eats two bytes from the ABI area */
-  /* we copy everything but the read-only flags */
-  flags_mask = GST_BUFFER_FLAG_LIVE | GST_BUFFER_FLAG_DISCONT |
-      GST_BUFFER_FLAG_IN_CAPS | GST_BUFFER_FLAG_GAP |
-      GST_BUFFER_FLAG_DELTA_UNIT;
-
-  GST_WRITE_UINT16_BE (h + 42, GST_BUFFER_FLAGS (buffer) & flags_mask);
-
-  GST_DP_SET_CRC (h, flags, data, size);
-
-  gst_buffer_unmap ((GstBuffer *) buffer, data, size);
-
-  GST_LOG ("created header from buffer:");
-  gst_dp_dump_byte_array (h, GST_DP_HEADER_LENGTH);
-  *header = h;
-  return TRUE;
-}
-
-static gboolean
-gst_dp_packet_from_caps_any (const GstCaps * caps, GstDPHeaderFlag flags,
-    guint * length, guint8 ** header, guint8 ** payload, GstDPVersion version)
-{
-  guint8 *h;
-  guchar *string;
-  guint payload_length;
-
-  g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
-  g_return_val_if_fail (length, FALSE);
-  g_return_val_if_fail (header, FALSE);
-  g_return_val_if_fail (payload, FALSE);
-
-  *length = GST_DP_HEADER_LENGTH;
-  h = g_malloc0 (GST_DP_HEADER_LENGTH);
-
-  string = (guchar *) gst_caps_to_string (caps);
-  payload_length = strlen ((gchar *) string) + 1;       /* include trailing 0 */
-
-  /* version, flags, type */
-  GST_DP_INIT_HEADER (h, version, flags, GST_DP_PAYLOAD_CAPS);
-
-  /* buffer properties */
-  GST_WRITE_UINT32_BE (h + 6, payload_length);
-  GST_WRITE_UINT64_BE (h + 10, (guint64) 0);
-  GST_WRITE_UINT64_BE (h + 18, (guint64) 0);
-  GST_WRITE_UINT64_BE (h + 26, (guint64) 0);
-  GST_WRITE_UINT64_BE (h + 34, (guint64) 0);
-
-  GST_DP_SET_CRC (h, flags, string, payload_length);
-
-  GST_LOG ("created header from caps:");
-  gst_dp_dump_byte_array (h, GST_DP_HEADER_LENGTH);
-  *header = h;
-  *payload = string;
-  return TRUE;
-}
-
-
-/*** PUBLIC FUNCTIONS ***/
-
-static const guint16 gst_dp_crc_table[256] = {
-  0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
-  0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
-  0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
-  0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
-  0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
-  0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
-  0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
-  0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
-  0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
-  0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
-  0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
-  0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
-  0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
-  0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
-  0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
-  0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
-  0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
-  0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
-  0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
-  0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
-  0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
-  0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
-  0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
-  0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
-  0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
-  0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
-  0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
-  0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
-  0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
-  0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
-  0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
-  0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
-};
-
-/**
- * gst_dp_crc:
- * @buffer: array of bytes
- * @length: the length of @buffer
- *
- * Calculate a CRC for the given buffer over the given number of bytes.
- * This is only provided for verification purposes; typical GDP users
- * will not need this function.
- *
- * Returns: a two-byte CRC checksum.
- */
-guint16
-gst_dp_crc (const guint8 * buffer, guint length)
-{
-  guint16 crc_register = CRC_INIT;
-
-  g_return_val_if_fail (buffer != NULL || length == 0, 0);
-
-  /* calc CRC */
-  for (; length--;) {
-    crc_register = (guint16) ((crc_register << 8) ^
-        gst_dp_crc_table[((crc_register >> 8) & 0x00ff) ^ *buffer++]);
-  }
-  return (0xffff ^ crc_register);
-}
-
-/* debugging function; dumps byte array values per 8 bytes */
-/* FIXME: would be nice to merge this with gst_util_dump_mem () */
-void
-gst_dp_dump_byte_array (guint8 * array, guint length)
-{
-  int i;
-  int n = 8;                    /* number of bytes per line */
-  gchar *line = g_malloc0 (3 * n + 1);
-
-  GST_LOG ("dumping byte array of length %d", length);
-  for (i = 0; i < length; ++i) {
-    g_sprintf (line + 3 * (i % n), "%02x ", array[i]);
-    if (i % n == (n - 1)) {
-      GST_LOG ("%03d: %s", i - (n - 1), line);
-    }
-  }
-  if (i % n != 0) {
-    GST_LOG ("%03d: %s", (i / n) * n, line);
-  }
-  g_free (line);
-}
-
-GType
-gst_dp_version_get_type (void)
-{
-  static gsize gst_dp_version_type = 0;
-  static const GEnumValue gst_dp_version[] = {
-    {GST_DP_VERSION_0_2, "GST_DP_VERSION_0_2", "0.2"},
-    {GST_DP_VERSION_1_0, "GST_DP_VERSION_1_0", "1.0"},
-    {0, NULL, NULL},
-  };
-
-  if (g_once_init_enter (&gst_dp_version_type)) {
-    GType tmp = g_enum_register_static ("GstDPVersion", gst_dp_version);
-    g_once_init_leave (&gst_dp_version_type, tmp);
-  }
-
-  return (GType) gst_dp_version_type;
-};
-
-/**
- * gst_dp_init:
- *
- * Initialize GStreamer Data Protocol library.
- *
- * Should be called before using these functions from source linking
- * to this source file.
- */
-void
-gst_dp_init (void)
-{
-  static gboolean _gst_dp_initialized = FALSE;
-
-  if (_gst_dp_initialized)
-    return;
-
-  _gst_dp_initialized = TRUE;
-
-  g_type_class_ref (gst_dp_version_get_type ());
-
-  GST_DEBUG_CATEGORY_INIT (data_protocol_debug, "gdp", 0,
-      "GStreamer Data Protocol");
-}
-
-/**
- * gst_dp_header_payload_length:
- * @header: the byte header of the packet array
- *
- * Get the length of the payload described by @header.
- *
- * Returns: the length of the payload this header describes.
- */
-guint32
-gst_dp_header_payload_length (const guint8 * header)
-{
-  g_return_val_if_fail (header != NULL, 0);
-
-  return GST_DP_HEADER_PAYLOAD_LENGTH (header);
-}
-
-/**
- * gst_dp_header_payload_type:
- * @header: the byte header of the packet array
- *
- * Get the type of the payload described by @header.
- *
- * Returns: the #GstDPPayloadType the payload this header describes.
- */
-GstDPPayloadType
-gst_dp_header_payload_type (const guint8 * header)
-{
-  g_return_val_if_fail (header != NULL, GST_DP_PAYLOAD_NONE);
-
-  return GST_DP_HEADER_PAYLOAD_TYPE (header);
-}
-
-/*** PACKETIZER FUNCTIONS ***/
-
-static gboolean
-gst_dp_header_from_buffer_1_0 (const GstBuffer * buffer, GstDPHeaderFlag flags,
-    guint * length, guint8 ** header)
-{
-  return gst_dp_header_from_buffer_any (buffer, flags, length, header,
-      GST_DP_VERSION_1_0);
-}
-
-static gboolean
-gst_dp_packet_from_caps_1_0 (const GstCaps * caps, GstDPHeaderFlag flags,
-    guint * length, guint8 ** header, guint8 ** payload)
-{
-  return gst_dp_packet_from_caps_any (caps, flags, length, header, payload,
-      GST_DP_VERSION_1_0);
-}
-
-static gboolean
-gst_dp_packet_from_event_1_0 (const GstEvent * event, GstDPHeaderFlag flags,
-    guint * length, guint8 ** header, guint8 ** payload)
-{
-  guint8 *h;
-  guint32 pl_length;            /* length of payload */
-  guchar *string = NULL;
-  const GstStructure *structure;
-
-  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
-  g_return_val_if_fail (length, FALSE);
-  g_return_val_if_fail (header, FALSE);
-  g_return_val_if_fail (payload, FALSE);
-
-  *length = GST_DP_HEADER_LENGTH;
-  h = g_malloc0 (GST_DP_HEADER_LENGTH);
-
-  structure = gst_event_get_structure ((GstEvent *) event);
-  if (structure) {
-    string = (guchar *) gst_structure_to_string (structure);
-    GST_LOG ("event %p has structure, string %s", event, string);
-    pl_length = strlen ((gchar *) string) + 1;  /* include trailing 0 */
-  } else {
-    GST_LOG ("event %p has no structure", event);
-    pl_length = 0;
-  }
-
-  /* version, flags, type */
-  GST_DP_INIT_HEADER (h, GST_DP_VERSION_1_0, flags,
-      GST_DP_PAYLOAD_EVENT_NONE + GST_EVENT_TYPE (event));
-
-  /* length */
-  GST_WRITE_UINT32_BE (h + 6, pl_length);
-  /* timestamp */
-  GST_WRITE_UINT64_BE (h + 10, GST_EVENT_TIMESTAMP (event));
-
-  GST_DP_SET_CRC (h, flags, string, pl_length);
-
-  GST_LOG ("created header from event:");
-  gst_dp_dump_byte_array (h, GST_DP_HEADER_LENGTH);
-  *header = h;
-  *payload = string;
-  return TRUE;
-}
-
-/*** DEPACKETIZING FUNCTIONS ***/
-
-/**
- * gst_dp_buffer_from_header:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- *
- * Creates a newly allocated #GstBuffer from the given header.
- * The buffer data needs to be copied into it before validating.
- *
- * Use this function if you want to pre-allocate a buffer based on the
- * packet header to read the packet payload in to.
- *
- * This function does not check the header passed to it, use
- * gst_dp_validate_header() first if the header data is unchecked.
- *
- * Returns: A #GstBuffer if the buffer was successfully created, or NULL.
- */
-GstBuffer *
-gst_dp_buffer_from_header (guint header_length, const guint8 * header)
-{
-  GstBuffer *buffer;
-
-  g_return_val_if_fail (header != NULL, NULL);
-  g_return_val_if_fail (header_length >= GST_DP_HEADER_LENGTH, NULL);
-  g_return_val_if_fail (GST_DP_HEADER_PAYLOAD_TYPE (header) ==
-      GST_DP_PAYLOAD_BUFFER, NULL);
-
-  buffer =
-      gst_buffer_new_allocate (NULL,
-      (guint) GST_DP_HEADER_PAYLOAD_LENGTH (header), 0);
-
-  GST_BUFFER_TIMESTAMP (buffer) = GST_DP_HEADER_TIMESTAMP (header);
-  GST_BUFFER_DURATION (buffer) = GST_DP_HEADER_DURATION (header);
-  GST_BUFFER_OFFSET (buffer) = GST_DP_HEADER_OFFSET (header);
-  GST_BUFFER_OFFSET_END (buffer) = GST_DP_HEADER_OFFSET_END (header);
-  GST_BUFFER_FLAGS (buffer) = GST_DP_HEADER_BUFFER_FLAGS (header);
-
-  return buffer;
-}
-
-/**
- * gst_dp_caps_from_packet:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- * @payload: the byte array of the packet payload
- *
- * Creates a newly allocated #GstCaps from the given packet.
- *
- * This function does not check the arguments passed to it, use
- * gst_dp_validate_packet() first if the header and payload data are
- * unchecked.
- *
- * Returns: A #GstCaps containing the caps represented in the packet,
- *          or NULL if the packet could not be converted.
- */
-GstCaps *
-gst_dp_caps_from_packet (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  GstCaps *caps;
-  gchar *string;
-
-  g_return_val_if_fail (header, NULL);
-  g_return_val_if_fail (header_length >= GST_DP_HEADER_LENGTH, NULL);
-  g_return_val_if_fail (GST_DP_HEADER_PAYLOAD_TYPE (header) ==
-      GST_DP_PAYLOAD_CAPS, NULL);
-  g_return_val_if_fail (payload, NULL);
-
-  /* 0 sized payload length will work create NULL string */
-  string = g_strndup ((gchar *) payload, GST_DP_HEADER_PAYLOAD_LENGTH (header));
-  caps = gst_caps_from_string (string);
-  g_free (string);
-
-  return caps;
-}
-
-static GstEvent *
-gst_dp_event_from_packet_0_2 (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  GstEvent *event = NULL;
-  GstEventType type;
-
-  type = GST_DP_HEADER_PAYLOAD_TYPE (header) - GST_DP_PAYLOAD_EVENT_NONE;
-  switch (type) {
-    case GST_EVENT_UNKNOWN:
-      GST_WARNING ("Unknown event, ignoring");
-      return NULL;
-    case GST_EVENT_EOS:
-    case GST_EVENT_FLUSH_START:
-    case GST_EVENT_FLUSH_STOP:
-    case GST_EVENT_SEGMENT:
-      event = gst_event_new_custom (type, NULL);
-      GST_EVENT_TIMESTAMP (event) = GST_DP_HEADER_TIMESTAMP (header);
-      break;
-    case GST_EVENT_SEEK:
-    {
-      gdouble rate;
-      GstFormat format;
-      GstSeekFlags flags;
-      GstSeekType cur_type, stop_type;
-      gint64 cur, stop;
-
-      g_return_val_if_fail (payload != NULL, NULL);
-
-      /* FIXME, read rate */
-      rate = 1.0;
-      format = (GstFormat) GST_READ_UINT32_BE (payload);
-      flags = (GstSeekFlags) GST_READ_UINT32_BE (payload + 4);
-      cur_type = (GstSeekType) GST_READ_UINT32_BE (payload + 8);
-      cur = (gint64) GST_READ_UINT64_BE (payload + 12);
-      stop_type = (GstSeekType) GST_READ_UINT32_BE (payload + 20);
-      stop = (gint64) GST_READ_UINT64_BE (payload + 24);
-
-      event = gst_event_new_seek (rate, format, flags, cur_type, cur,
-          stop_type, stop);
-      GST_EVENT_TIMESTAMP (event) = GST_DP_HEADER_TIMESTAMP (header);
-      break;
-    }
-    case GST_EVENT_QOS:
-    case GST_EVENT_NAVIGATION:
-    case GST_EVENT_TAG:
-      GST_WARNING ("Unhandled event type %d, ignoring", type);
-      return NULL;
-    default:
-      GST_WARNING ("Unknown event type %d, ignoring", type);
-      return NULL;
-  }
-
-  return event;
-}
-
-static GstEvent *
-gst_dp_event_from_packet_1_0 (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  GstEvent *event = NULL;
-  GstEventType type;
-  gchar *string = NULL;
-  GstStructure *s = NULL;
-
-  type = GST_DP_HEADER_PAYLOAD_TYPE (header) - GST_DP_PAYLOAD_EVENT_NONE;
-  if (payload) {
-    string =
-        g_strndup ((gchar *) payload, GST_DP_HEADER_PAYLOAD_LENGTH (header));
-    s = gst_structure_from_string (string, NULL);
-    g_free (string);
-  }
-  event = gst_event_new_custom (type, s);
-  return event;
-}
-
-
-/**
- * gst_dp_event_from_packet:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- * @payload: the byte array of the packet payload
- *
- * Creates a newly allocated #GstEvent from the given packet.
- *
- * This function does not check the arguments passed to it, use
- * gst_dp_validate_packet() first if the header and payload data are
- * unchecked.
- *
- * Returns: A #GstEvent if the event was successfully created,
- *          or NULL if an event could not be read from the payload.
- */
-GstEvent *
-gst_dp_event_from_packet (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  guint8 major, minor;
-
-  g_return_val_if_fail (header, NULL);
-  g_return_val_if_fail (header_length >= GST_DP_HEADER_LENGTH, NULL);
-
-  major = GST_DP_HEADER_MAJOR_VERSION (header);
-  minor = GST_DP_HEADER_MINOR_VERSION (header);
-
-  if (major == 0 && minor == 2)
-    return gst_dp_event_from_packet_0_2 (header_length, header, payload);
-  else if (major == 1 && minor == 0)
-    return gst_dp_event_from_packet_1_0 (header_length, header, payload);
-  else {
-    GST_ERROR ("Unknown GDP version %d.%d", major, minor);
-    return NULL;
-  }
-}
-
-/**
- * gst_dp_validate_header:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- *
- * Validates the given packet header by checking the CRC checksum.
- *
- * Returns: %TRUE if the CRC matches, or no CRC checksum is present.
- */
-gboolean
-gst_dp_validate_header (guint header_length, const guint8 * header)
-{
-  guint16 crc_read, crc_calculated;
-
-  g_return_val_if_fail (header != NULL, FALSE);
-  g_return_val_if_fail (header_length >= GST_DP_HEADER_LENGTH, FALSE);
-
-  if (!(GST_DP_HEADER_FLAGS (header) & GST_DP_HEADER_FLAG_CRC_HEADER))
-    return TRUE;
-
-  crc_read = GST_DP_HEADER_CRC_HEADER (header);
-
-  /* don't include the last two crc fields for the crc check */
-  crc_calculated = gst_dp_crc (header, header_length - 4);
-  if (crc_read != crc_calculated)
-    goto crc_error;
-
-  GST_LOG ("header crc validation: %02x", crc_read);
-  return TRUE;
-
-  /* ERRORS */
-crc_error:
-  {
-    GST_WARNING ("header crc mismatch: read %02x, calculated %02x", crc_read,
-        crc_calculated);
-    return FALSE;
-  }
-}
-
-/**
- * gst_dp_validate_payload:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- * @payload: the byte array of the packet payload
- *
- * Validates the given packet payload using the given packet header
- * by checking the CRC checksum.
- *
- * Returns: %TRUE if the CRC matches, or no CRC checksum is present.
- */
-gboolean
-gst_dp_validate_payload (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  guint16 crc_read, crc_calculated;
-
-  g_return_val_if_fail (header != NULL, FALSE);
-  g_return_val_if_fail (header_length >= GST_DP_HEADER_LENGTH, FALSE);
-
-  if (!(GST_DP_HEADER_FLAGS (header) & GST_DP_HEADER_FLAG_CRC_PAYLOAD))
-    return TRUE;
-
-  crc_read = GST_DP_HEADER_CRC_PAYLOAD (header);
-  crc_calculated = gst_dp_crc (payload, GST_DP_HEADER_PAYLOAD_LENGTH (header));
-  if (crc_read != crc_calculated)
-    goto crc_error;
-
-  GST_LOG ("payload crc validation: %02x", crc_read);
-  return TRUE;
-
-  /* ERRORS */
-crc_error:
-  {
-    GST_WARNING ("payload crc mismatch: read %02x, calculated %02x", crc_read,
-        crc_calculated);
-    return FALSE;
-  }
-}
-
-/**
- * gst_dp_validate_packet:
- * @header_length: the length of the packet header
- * @header: the byte array of the packet header
- * @payload: the byte array of the packet payload
- *
- * Validates the given packet by checking version information and checksums.
- *
- * Returns: %TRUE if the packet validates.
- */
-gboolean
-gst_dp_validate_packet (guint header_length, const guint8 * header,
-    const guint8 * payload)
-{
-  if (!gst_dp_validate_header (header_length, header))
-    return FALSE;
-  if (!gst_dp_validate_payload (header_length, header, payload))
-    return FALSE;
-
-  return TRUE;
-}
-
-/**
- * gst_dp_packetizer_new:
- * @version: the #GstDPVersion of the protocol to packetize for.
- *
- * Creates a new packetizer.
- *
- * Returns: a newly allocated #GstDPPacketizer
- */
-GstDPPacketizer *
-gst_dp_packetizer_new (GstDPVersion version)
-{
-  GstDPPacketizer *ret;
-
-  ret = g_malloc0 (sizeof (GstDPPacketizer));
-  ret->version = version;
-
-  switch (version) {
-    case GST_DP_VERSION_1_0:
-      ret->header_from_buffer = gst_dp_header_from_buffer_1_0;
-      ret->packet_from_caps = gst_dp_packet_from_caps_1_0;
-      ret->packet_from_event = gst_dp_packet_from_event_1_0;
-      break;
-    default:
-      g_free (ret);
-      ret = NULL;
-      break;
-  }
-
-  return ret;
-}
-
-/**
- * gst_dp_packetizer_free:
- * @packetizer: the #GstDPPacketizer to free.
- *
- * Free the given packetizer.
- */
-void
-gst_dp_packetizer_free (GstDPPacketizer * packetizer)
-{
-  g_free (packetizer);
-}
diff --git a/libs/gst/dataprotocol/dataprotocol.h b/libs/gst/dataprotocol/dataprotocol.h
deleted file mode 100644
index efd524a..0000000
--- a/libs/gst/dataprotocol/dataprotocol.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999 Erik Walthinsen <omega@cse.ogi.edu>
- * Copyright (C) 2004,2006 Thomas Vander Stichele <thomas at apestaart dot org>
- *
- * dataprotocol.h: Functions implementing the GStreamer Data Protocol
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_DATA_PROTOCOL_H__
-#define __GST_DATA_PROTOCOL_H__
-
-#include <gst/gstbuffer.h>
-#include <gst/gstevent.h>
-#include <gst/gstcaps.h>
-
-G_BEGIN_DECLS
-
-/**
- * GstDPVersion:
- * @GST_DP_VERSION_0_2: protocol version 0.2
- * @GST_DP_VERSION_1_0: protocol version 1.0
- *
- * The version of the GDP protocol being used.
- */
-typedef enum {
-  GST_DP_VERSION_0_2 = 1,
-  GST_DP_VERSION_1_0,
-} GstDPVersion;
-
-GType gst_dp_version_get_type (void);
-#define GST_TYPE_DP_VERSION (gst_dp_version_get_type ())
-
-/**
- * GST_DP_VERSION_MAJOR:
- *
- * The major version number of the GStreamer Data Protocol.
- */
-#define GST_DP_VERSION_MAJOR 0
-/**
- * GST_DP_VERSION_MINOR:
- *
- * The minor version number of the GStreamer Data Protocol.
- */
-#define GST_DP_VERSION_MINOR 2
-
-/**
- * GST_DP_HEADER_LENGTH:
- *
- * The header size in bytes.
- */
-#define GST_DP_HEADER_LENGTH 62
-
-/**
- * GstDPHeaderFlag:
- * @GST_DP_HEADER_FLAG_NONE: No flag present.
- * @GST_DP_HEADER_FLAG_CRC_HEADER: a header CRC field is present.
- * @GST_DP_HEADER_FLAG_CRC_PAYLOAD: a payload CRC field is present.
- * @GST_DP_HEADER_FLAG_CRC: a CRC for header and payload is present.
- *
- * header flags for the dataprotocol.
- */
-typedef enum {
-  GST_DP_HEADER_FLAG_NONE        = 0,
-  GST_DP_HEADER_FLAG_CRC_HEADER  = (1 << 0),
-  GST_DP_HEADER_FLAG_CRC_PAYLOAD = (1 << 1),
-  GST_DP_HEADER_FLAG_CRC         = (1 << 1) | (1 << 0),
-} GstDPHeaderFlag;
-
-/**
- * GstDPPayloadType:
- * @GST_DP_PAYLOAD_NONE: Invalid payload type.
- * @GST_DP_PAYLOAD_BUFFER: #GstBuffer payload packet.
- * @GST_DP_PAYLOAD_CAPS: #GstCaps payload packet.
- * @GST_DP_PAYLOAD_EVENT_NONE: First value of #GstEvent payload packets.
- *
- * The GDP payload types. a #GstEvent payload type is encoded with the
- * event type number starting from @GST_DP_PAYLOAD_EVENT_NONE.
- */
-typedef enum {
-  GST_DP_PAYLOAD_NONE            = 0,
-  GST_DP_PAYLOAD_BUFFER,
-  GST_DP_PAYLOAD_CAPS,
-  GST_DP_PAYLOAD_EVENT_NONE      = 64,
-} GstDPPayloadType;
-
-typedef gboolean (*GstDPHeaderFromBufferFunction) (const GstBuffer * buffer,
-						GstDPHeaderFlag flags,
-						guint * length,
-						guint8 ** header);
-typedef gboolean (*GstDPPacketFromCapsFunction) (const GstCaps * caps,
-						GstDPHeaderFlag flags,
-						guint * length,
-						guint8 ** header,
-						guint8 ** payload);
-typedef gboolean (*GstDPPacketFromEventFunction) (const GstEvent * event,
-						GstDPHeaderFlag flags,
-						guint * length,
-						guint8 ** header,
-						guint8 ** payload);
-
-/**
- * GstDPPacketizer:
- * @version: the #GstDPVersion of the protocol to be used
- * @header_from_buffer: buffer serializer function
- * @packet_from_caps: caps serializer function
- * @packet_from_event: event serializer function
- *
- * Data protocol packetizer handle.
- */
-typedef struct {
-  GstDPVersion version;
-
-  GstDPHeaderFromBufferFunction header_from_buffer;
-  GstDPPacketFromCapsFunction packet_from_caps;
-  GstDPPacketFromEventFunction packet_from_event;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-} GstDPPacketizer;
-
-
-void		gst_dp_init			(void);
-
-/* packetizer */
-GstDPPacketizer *
-                gst_dp_packetizer_new           (GstDPVersion version);
-void            gst_dp_packetizer_free          (GstDPPacketizer *packetizer);
-
-/* crc checksum */
-guint16         gst_dp_crc                      (const guint8 * buffer,
-                                                 guint length);
-
-/* payload information from header */
-guint32		gst_dp_header_payload_length	(const guint8 * header);
-GstDPPayloadType
-		gst_dp_header_payload_type	(const guint8 * header);
-
-/* converting to GstBuffer/GstEvent/GstCaps */
-GstBuffer *	gst_dp_buffer_from_header	(guint header_length,
-						const guint8 * header);
-GstCaps *	gst_dp_caps_from_packet		(guint header_length,
-						const guint8 * header,
-						const guint8 * payload);
-GstEvent *	gst_dp_event_from_packet	(guint header_length,
-						const guint8 * header,
-						const guint8 * payload);
-
-/* validation */
-gboolean	gst_dp_validate_header		(guint header_length,
-						const guint8 * header);
-gboolean	gst_dp_validate_payload		(guint header_length,
-						const guint8 * header,
-						const guint8 * payload);
-gboolean	gst_dp_validate_packet		(guint header_length,
-						const guint8 * header,
-						const guint8 * payload);
-
-G_END_DECLS
-
-#endif /* __GST_DATA_PROTOCOL_H__ */
-
diff --git a/libs/gst/dataprotocol/dp-private.h b/libs/gst/dataprotocol/dp-private.h
deleted file mode 100644
index 5e54045..0000000
--- a/libs/gst/dataprotocol/dp-private.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- * Copyright (C) <2004> Thomas Vander Stichele <thomas at apestaart dot org>
- *
- * dp-private.h: private defines/macros for dataprotocol implementation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_DP_PRIVATE_H__
-#define __GST_DP_PRIVATE_H__
-
-#include <gst/gstbuffer.h>
-#include <gst/gstevent.h>
-#include <gst/gstcaps.h>
-
-G_BEGIN_DECLS
-
-/* accessor defines */
-#define GST_DP_HEADER_MAJOR_VERSION(x)	((x)[0])
-#define GST_DP_HEADER_MINOR_VERSION(x)  ((x)[1])
-#define GST_DP_HEADER_FLAGS(x)          ((x)[2])
-/* free byte here to align */
-#define GST_DP_HEADER_PAYLOAD_TYPE(x)   GST_READ_UINT16_BE (x + 4)
-#define GST_DP_HEADER_PAYLOAD_LENGTH(x) GST_READ_UINT32_BE (x + 6)
-#define GST_DP_HEADER_TIMESTAMP(x)      GST_READ_UINT64_BE (x + 10)
-#define GST_DP_HEADER_DURATION(x)       GST_READ_UINT64_BE (x + 18)
-#define GST_DP_HEADER_OFFSET(x)         GST_READ_UINT64_BE (x + 26)
-#define GST_DP_HEADER_OFFSET_END(x)     GST_READ_UINT64_BE (x + 34)
-#define GST_DP_HEADER_BUFFER_FLAGS(x)   GST_READ_UINT16_BE (x + 42)
-#define GST_DP_HEADER_CRC_HEADER(x)     GST_READ_UINT16_BE (x + 58)
-#define GST_DP_HEADER_CRC_PAYLOAD(x)    GST_READ_UINT16_BE (x + 60)
-
-void gst_dp_dump_byte_array (guint8 *array, guint length);
-
-G_END_DECLS
-
-#endif /* __GST_DP_PRIVATE_H__ */
-
diff --git a/libs/gst/helpers/Makefile.am b/libs/gst/helpers/Makefile.am
index ca46fd6..2816bc2 100644
--- a/libs/gst/helpers/Makefile.am
+++ b/libs/gst/helpers/Makefile.am
@@ -1,5 +1,5 @@
 helpers_PROGRAMS = gst-plugin-scanner
-helpersdir=$(libexecdir)/gstreamer-$(GST_MAJORMINOR)
+helpersdir=$(libexecdir)/gstreamer-$(GST_API_VERSION)
 
 gst_plugin_scanner_SOURCES = gst-plugin-scanner.c
 gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS)
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index 086aa7d..70bd6b2 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -86,8 +103,8 @@
 gst_plugin_scanner_OBJECTS = $(am_gst_plugin_scanner_OBJECTS)
 am__DEPENDENCIES_1 =
 gst_plugin_scanner_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 gst_plugin_scanner_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -103,24 +120,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(gst_plugin_scanner_SOURCES)
 DIST_SOURCES = $(gst_plugin_scanner_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -177,10 +199,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -193,10 +217,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -210,7 +234,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -227,6 +250,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -242,7 +269,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -275,6 +301,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -330,6 +357,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -363,7 +391,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -384,7 +411,7 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-helpersdir = $(libexecdir)/gstreamer-$(GST_MAJORMINOR)
+helpersdir = $(libexecdir)/gstreamer-$(GST_API_VERSION)
 gst_plugin_scanner_SOURCES = gst-plugin-scanner.c
 gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS)
 gst_plugin_scanner_LDADD = $(GST_OBJ_LIBS)
@@ -428,8 +455,11 @@
 $(am__aclocal_m4_deps):
 install-helpersPROGRAMS: $(helpers_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(helpersdir)" || $(MKDIR_P) "$(DESTDIR)$(helpersdir)"
 	@list='$(helpers_PROGRAMS)'; test -n "$(helpersdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(helpersdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(helpersdir)" || exit 1; \
+	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
 	while read p p1; do if test -f $$p || test -f $$p1; \
@@ -469,7 +499,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-gst-plugin-scanner$(EXEEXT): $(gst_plugin_scanner_OBJECTS) $(gst_plugin_scanner_DEPENDENCIES) 
+gst-plugin-scanner$(EXEEXT): $(gst_plugin_scanner_OBJECTS) $(gst_plugin_scanner_DEPENDENCIES) $(EXTRA_gst_plugin_scanner_DEPENDENCIES) 
 	@rm -f gst-plugin-scanner$(EXEEXT)
 	$(AM_V_CCLD)$(gst_plugin_scanner_LINK) $(gst_plugin_scanner_OBJECTS) $(gst_plugin_scanner_LDADD) $(LIBS)
 
@@ -484,42 +514,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 gst_plugin_scanner-gst-plugin-scanner.o: gst-plugin-scanner.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -MT gst_plugin_scanner-gst-plugin-scanner.o -MD -MP -MF $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Tpo -c -o gst_plugin_scanner-gst-plugin-scanner.o `test -f 'gst-plugin-scanner.c' || echo '$(srcdir)/'`gst-plugin-scanner.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Tpo $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-plugin-scanner.c' object='gst_plugin_scanner-gst-plugin-scanner.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-plugin-scanner.c' object='gst_plugin_scanner-gst-plugin-scanner.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -c -o gst_plugin_scanner-gst-plugin-scanner.o `test -f 'gst-plugin-scanner.c' || echo '$(srcdir)/'`gst-plugin-scanner.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -c -o gst_plugin_scanner-gst-plugin-scanner.o `test -f 'gst-plugin-scanner.c' || echo '$(srcdir)/'`gst-plugin-scanner.c
 
 gst_plugin_scanner-gst-plugin-scanner.obj: gst-plugin-scanner.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -MT gst_plugin_scanner-gst-plugin-scanner.obj -MD -MP -MF $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Tpo -c -o gst_plugin_scanner-gst-plugin-scanner.obj `if test -f 'gst-plugin-scanner.c'; then $(CYGPATH_W) 'gst-plugin-scanner.c'; else $(CYGPATH_W) '$(srcdir)/gst-plugin-scanner.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Tpo $(DEPDIR)/gst_plugin_scanner-gst-plugin-scanner.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-plugin-scanner.c' object='gst_plugin_scanner-gst-plugin-scanner.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-plugin-scanner.c' object='gst_plugin_scanner-gst-plugin-scanner.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -c -o gst_plugin_scanner-gst-plugin-scanner.obj `if test -f 'gst-plugin-scanner.c'; then $(CYGPATH_W) 'gst-plugin-scanner.c'; else $(CYGPATH_W) '$(srcdir)/gst-plugin-scanner.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_plugin_scanner_CFLAGS) $(CFLAGS) -c -o gst_plugin_scanner-gst-plugin-scanner.obj `if test -f 'gst-plugin-scanner.c'; then $(CYGPATH_W) 'gst-plugin-scanner.c'; else $(CYGPATH_W) '$(srcdir)/gst-plugin-scanner.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -626,10 +651,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/libs/gst/helpers/gst-plugin-scanner.c b/libs/gst/helpers/gst-plugin-scanner.c
index 0405728..09cb852 100644
--- a/libs/gst/helpers/gst-plugin-scanner.c
+++ b/libs/gst/helpers/gst-plugin-scanner.c
@@ -41,9 +41,6 @@
   if (argc != 2 || strcmp (argv[1], "-l"))
     return 1;
 
-  if (!g_thread_supported ())
-    g_thread_init (NULL);
-
   my_argc = 2;
   my_argv = g_malloc (my_argc * sizeof (char *));
   my_argv[0] = argv[0];
diff --git a/libs/gst/net/Makefile.am b/libs/gst/net/Makefile.am
index 67afa65..4fa252c 100644
--- a/libs/gst/net/Makefile.am
+++ b/libs/gst/net/Makefile.am
@@ -1,54 +1,57 @@
-lib_LTLIBRARIES = libgstnet-@GST_MAJORMINOR@.la
+lib_LTLIBRARIES = libgstnet-@GST_API_VERSION@.la
 
-libgstnet_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/net
-libgstnet_@GST_MAJORMINOR@_include_HEADERS = \
+libgstnet_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/net
+libgstnet_@GST_API_VERSION@_include_HEADERS = \
     gstnet.h \
+    gstnetaddressmeta.h \
     gstnetclientclock.h \
     gstnettimepacket.h \
     gstnettimeprovider.h
 
-libgstnet_@GST_MAJORMINOR@_la_SOURCES = \
+libgstnet_@GST_API_VERSION@_la_SOURCES = \
+    gstnetaddressmeta.c \
     gstnetclientclock.c \
     gstnettimepacket.c \
     gstnettimeprovider.c
 
-libgstnet_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstnet_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) $(INET_ATON_LIBS) $(WIN32_LIBS)
-libgstnet_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstnet_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) $(GIO_CFLAGS)
+libgstnet_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) $(GIO_LIBS)
+libgstnet_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 
 CLEANFILES = *.gcno *.gcda *.gcov
 
-%.c.gcov: .libs/libgstnet_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstnet_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstnet_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstnet_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstnet_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstnet_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/net \
-	 -:HEADERS $(libgstnet_@GST_MAJORMINOR@_include_HEADERS) \
+	 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
+	 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
 
 if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstNet-@GST_MAJORMINOR@.gir
+BUILT_GIRSOURCES = GstNet-@GST_API_VERSION@.gir
 
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_MAJORMINOR@_include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_MAJORMINOR@_la_SOURCES))
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_include_HEADERS))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_la_SOURCES))
 gir_cincludes=--c-include="gst/net/gstnet.h"
 
-GstNet-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_MAJORMINOR@.la
+GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 		--strip-prefix=Gst \
-		--nsversion=@GST_MAJORMINOR@ \
+		--warn-all \
+		--nsversion=@GST_API_VERSION@ \
 		-DGST_USE_UNSTABLE_API \
 		-I$(top_srcdir) \
 		-I$(top_srcdir)/libs \
@@ -57,12 +60,14 @@
 		$(gir_cincludes) \
 		--add-include-path=$(top_builddir)/gst \
 		--library-path=$(top_builddir)/gst \
-		--library=$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
-		--library=libgstnet-@GST_MAJORMINOR@.la \
-		--include=Gst-@GST_MAJORMINOR@ \
+		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+		--library=libgstnet-@GST_API_VERSION@.la \
+		--include=Gst-@GST_API_VERSION@ \
+		--include=Gio-2.0 \
 		--libtool="$(top_builddir)/libtool" \
-		--pkg gstreamer-@GST_MAJORMINOR@ \
-		--pkg-export="gstreamer-net-@GST_MAJORMINOR@" \
+		--pkg gstreamer-@GST_API_VERSION@ \
+		--pkg gio-2.0 \
+		--pkg-export="gstreamer-net-@GST_API_VERSION@" \
 		--add-init-section="gst_init(NULL,NULL);" \
 		--output $@ \
 		$(gir_headers) \
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index 26645b8..9db5659 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -38,7 +55,7 @@
 host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = libs/gst/net
-DIST_COMMON = $(libgstnet_@GST_MAJORMINOR@_include_HEADERS) \
+DIST_COMMON = $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -103,26 +120,33 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
 	"$(DESTDIR)$(typelibsdir)" \
-	"$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)"
+	"$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-libgstnet_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstnet_@GST_MAJORMINOR@_la_OBJECTS =  \
-	libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo \
-	libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo \
-	libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo
-libgstnet_@GST_MAJORMINOR@_la_OBJECTS =  \
-	$(am_libgstnet_@GST_MAJORMINOR@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+libgstnet_@GST_API_VERSION@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libgstnet_@GST_API_VERSION@_la_OBJECTS =  \
+	libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo \
+	libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo \
+	libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo \
+	libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo
+libgstnet_@GST_API_VERSION@_la_OBJECTS =  \
+	$(am_libgstnet_@GST_API_VERSION@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-libgstnet_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+libgstnet_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
-	$(libgstnet_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) \
+	$(libgstnet_@GST_API_VERSION@_la_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -133,26 +157,31 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstnet_@GST_MAJORMINOR@_la_SOURCES)
-DIST_SOURCES = $(libgstnet_@GST_MAJORMINOR@_la_SOURCES)
+SOURCES = $(libgstnet_@GST_API_VERSION@_la_SOURCES)
+DIST_SOURCES = $(libgstnet_@GST_API_VERSION@_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstnet_@GST_MAJORMINOR@_include_HEADERS)
+HEADERS = $(libgstnet_@GST_API_VERSION@_include_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -209,10 +238,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -225,10 +256,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -242,7 +273,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -259,6 +289,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -274,7 +308,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -307,6 +340,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -362,6 +396,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -395,7 +430,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -416,26 +450,28 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstnet-@GST_MAJORMINOR@.la
-libgstnet_@GST_MAJORMINOR@_includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/net
-libgstnet_@GST_MAJORMINOR@_include_HEADERS = \
+lib_LTLIBRARIES = libgstnet-@GST_API_VERSION@.la
+libgstnet_@GST_API_VERSION@_includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/net
+libgstnet_@GST_API_VERSION@_include_HEADERS = \
     gstnet.h \
+    gstnetaddressmeta.h \
     gstnetclientclock.h \
     gstnettimepacket.h \
     gstnettimeprovider.h
 
-libgstnet_@GST_MAJORMINOR@_la_SOURCES = \
+libgstnet_@GST_API_VERSION@_la_SOURCES = \
+    gstnetaddressmeta.c \
     gstnetclientclock.c \
     gstnettimepacket.c \
     gstnettimeprovider.c
 
-libgstnet_@GST_MAJORMINOR@_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstnet_@GST_MAJORMINOR@_la_LIBADD = $(GST_OBJ_LIBS) $(INET_ATON_LIBS) $(WIN32_LIBS)
-libgstnet_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstnet_@GST_API_VERSION@_la_CFLAGS = $(GST_OBJ_CFLAGS) $(GIO_CFLAGS)
+libgstnet_@GST_API_VERSION@_la_LIBADD = $(GST_OBJ_LIBS) $(GIO_LIBS)
+libgstnet_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
 CLEANFILES = *.gcno *.gcda *.gcov $(am__append_1)
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstNet-@GST_MAJORMINOR@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstnet_@GST_MAJORMINOR@_include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstnet_@GST_MAJORMINOR@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstNet-@GST_API_VERSION@.gir
+@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_include_HEADERS))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgstnet_@GST_API_VERSION@_la_SOURCES))
 @HAVE_INTROSPECTION_TRUE@gir_cincludes = --c-include="gst/net/gstnet.h"
 
 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
@@ -480,7 +516,6 @@
 $(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -488,6 +523,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
 	}
@@ -509,8 +546,8 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstnet-@GST_MAJORMINOR@.la: $(libgstnet_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnet_@GST_MAJORMINOR@_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstnet_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstnet_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnet_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
+libgstnet-@GST_API_VERSION@.la: $(libgstnet_@GST_API_VERSION@_la_OBJECTS) $(libgstnet_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstnet_@GST_API_VERSION@_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libgstnet_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstnet_@GST_API_VERSION@_la_OBJECTS) $(libgstnet_@GST_API_VERSION@_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -518,57 +555,59 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetclientclock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimepacket.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo: gstnetclientclock.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.Tpo -c -o libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo `test -f 'gstnetclientclock.c' || echo '$(srcdir)/'`gstnetclientclock.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.Tpo $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstnetclientclock.c' object='libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo' libtool=yes @AMDEPBACKSLASH@
+libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo: gstnetaddressmeta.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.Tpo -c -o libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo `test -f 'gstnetaddressmeta.c' || echo '$(srcdir)/'`gstnetaddressmeta.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.Tpo $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnetaddressmeta.c' object='libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_MAJORMINOR@_la-gstnetclientclock.lo `test -f 'gstnetclientclock.c' || echo '$(srcdir)/'`gstnetclientclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_API_VERSION@_la-gstnetaddressmeta.lo `test -f 'gstnetaddressmeta.c' || echo '$(srcdir)/'`gstnetaddressmeta.c
 
-libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo: gstnettimepacket.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.Tpo -c -o libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo `test -f 'gstnettimepacket.c' || echo '$(srcdir)/'`gstnettimepacket.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.Tpo $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstnettimepacket.c' object='libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo' libtool=yes @AMDEPBACKSLASH@
+libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo: gstnetclientclock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetclientclock.Tpo -c -o libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo `test -f 'gstnetclientclock.c' || echo '$(srcdir)/'`gstnetclientclock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetclientclock.Tpo $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnetclientclock.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnetclientclock.c' object='libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_MAJORMINOR@_la-gstnettimepacket.lo `test -f 'gstnettimepacket.c' || echo '$(srcdir)/'`gstnettimepacket.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_API_VERSION@_la-gstnetclientclock.lo `test -f 'gstnetclientclock.c' || echo '$(srcdir)/'`gstnetclientclock.c
 
-libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo: gstnettimeprovider.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.Tpo -c -o libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo `test -f 'gstnettimeprovider.c' || echo '$(srcdir)/'`gstnettimeprovider.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.Tpo $(DEPDIR)/libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstnettimeprovider.c' object='libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo' libtool=yes @AMDEPBACKSLASH@
+libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo: gstnettimepacket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimepacket.Tpo -c -o libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo `test -f 'gstnettimepacket.c' || echo '$(srcdir)/'`gstnettimepacket.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimepacket.Tpo $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimepacket.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnettimepacket.c' object='libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_MAJORMINOR@_la-gstnettimeprovider.lo `test -f 'gstnettimeprovider.c' || echo '$(srcdir)/'`gstnettimeprovider.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_API_VERSION@_la-gstnettimepacket.lo `test -f 'gstnettimepacket.c' || echo '$(srcdir)/'`gstnettimepacket.c
+
+libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo: gstnettimeprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo -MD -MP -MF $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.Tpo -c -o libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo `test -f 'gstnettimeprovider.c' || echo '$(srcdir)/'`gstnettimeprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.Tpo $(DEPDIR)/libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstnettimeprovider.c' object='libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnet_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstnet_@GST_API_VERSION@_la-gstnettimeprovider.lo `test -f 'gstnettimeprovider.c' || echo '$(srcdir)/'`gstnettimeprovider.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -577,8 +616,11 @@
 	-rm -rf .libs _libs
 install-girDATA: $(gir_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -592,13 +634,14 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(girdir)" && rm -f $$files
+	dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
 install-typelibsDATA: $(typelibs_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -612,29 +655,28 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
-install-libgstnet_@GST_MAJORMINOR@_includeHEADERS: $(libgstnet_@GST_MAJORMINOR@_include_HEADERS)
+	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-libgstnet_@GST_API_VERSION@_includeHEADERS: $(libgstnet_@GST_API_VERSION@_include_HEADERS)
 	@$(NORMAL_INSTALL)
-	test -z "$(libgstnet_@GST_MAJORMINOR@_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)"
-	@list='$(libgstnet_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstnet_@GST_MAJORMINOR@_includedir)" || list=; \
+	@list='$(libgstnet_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstnet_@GST_API_VERSION@_includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
 	done | $(am__base_list) | \
 	while read files; do \
-	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)'"; \
-	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)" || exit $$?; \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)" || exit $$?; \
 	done
 
-uninstall-libgstnet_@GST_MAJORMINOR@_includeHEADERS:
+uninstall-libgstnet_@GST_API_VERSION@_includeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libgstnet_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstnet_@GST_MAJORMINOR@_includedir)" || list=; \
+	@list='$(libgstnet_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstnet_@GST_API_VERSION@_includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -722,7 +764,7 @@
 check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstnet_@GST_MAJORMINOR@_includedir)"; do \
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstnet_@GST_API_VERSION@_includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -735,10 +777,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -775,7 +822,7 @@
 info-am:
 
 install-data-am: install-girDATA \
-	install-libgstnet_@GST_MAJORMINOR@_includeHEADERS \
+	install-libgstnet_@GST_API_VERSION@_includeHEADERS \
 	install-typelibsDATA
 
 install-dvi: install-dvi-am
@@ -823,7 +870,7 @@
 ps-am:
 
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-libgstnet_@GST_MAJORMINOR@_includeHEADERS \
+	uninstall-libgstnet_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
 
 .MAKE: install-am install-strip
@@ -836,7 +883,7 @@
 	install-dvi-am install-exec install-exec-am install-girDATA \
 	install-html install-html-am install-info install-info-am \
 	install-libLTLIBRARIES \
-	install-libgstnet_@GST_MAJORMINOR@_includeHEADERS install-man \
+	install-libgstnet_@GST_API_VERSION@_includeHEADERS install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-strip install-typelibsDATA installcheck \
 	installcheck-am installdirs maintainer-clean \
@@ -844,33 +891,34 @@
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-girDATA \
 	uninstall-libLTLIBRARIES \
-	uninstall-libgstnet_@GST_MAJORMINOR@_includeHEADERS \
+	uninstall-libgstnet_@GST_API_VERSION@_includeHEADERS \
 	uninstall-typelibsDATA
 
 
-%.c.gcov: .libs/libgstnet_@GST_MAJORMINOR@_la-%.gcda %.c
+%.c.gcov: .libs/libgstnet_@GST_API_VERSION@_la-%.gcda %.c
 	$(GCOV) -b -f -o $^ > $@.out
 
-gcov: $(libgstnet_@GST_MAJORMINOR@_la_SOURCES:=.gcov)
+gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
 Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_MAJORMINOR@ -:TAGS eng debug \
+	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstnet_@GST_MAJORMINOR@_la_SOURCES) \
-	 -:CFLAGS $(libgstnet_@GST_MAJORMINOR@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstnet_@GST_MAJORMINOR@_la_LDFLAGS) \
-	           $(libgstnet_@GST_MAJORMINOR@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_MAJORMINOR@/gst/net \
-	 -:HEADERS $(libgstnet_@GST_MAJORMINOR@_include_HEADERS) \
+	 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
+	 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
+	 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
+	           $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
+	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
+	 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
-@HAVE_INTROSPECTION_TRUE@GstNet-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_MAJORMINOR@.la
+@HAVE_INTROSPECTION_TRUE@GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
-@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--warn-all \
+@HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		-DGST_USE_UNSTABLE_API \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir) \
 @HAVE_INTROSPECTION_TRUE@		-I$(top_srcdir)/libs \
@@ -879,12 +927,14 @@
 @HAVE_INTROSPECTION_TRUE@		$(gir_cincludes) \
 @HAVE_INTROSPECTION_TRUE@		--add-include-path=$(top_builddir)/gst \
 @HAVE_INTROSPECTION_TRUE@		--library-path=$(top_builddir)/gst \
-@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la \
-@HAVE_INTROSPECTION_TRUE@		--library=libgstnet-@GST_MAJORMINOR@.la \
-@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_MAJORMINOR@ \
+@HAVE_INTROSPECTION_TRUE@		--library=$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--library=libgstnet-@GST_API_VERSION@.la \
+@HAVE_INTROSPECTION_TRUE@		--include=Gst-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--include=Gio-2.0 \
 @HAVE_INTROSPECTION_TRUE@		--libtool="$(top_builddir)/libtool" \
-@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@		--pkg-export="gstreamer-net-@GST_MAJORMINOR@" \
+@HAVE_INTROSPECTION_TRUE@		--pkg gstreamer-@GST_API_VERSION@ \
+@HAVE_INTROSPECTION_TRUE@		--pkg gio-2.0 \
+@HAVE_INTROSPECTION_TRUE@		--pkg-export="gstreamer-net-@GST_API_VERSION@" \
 @HAVE_INTROSPECTION_TRUE@		--add-init-section="gst_init(NULL,NULL);" \
 @HAVE_INTROSPECTION_TRUE@		--output $@ \
 @HAVE_INTROSPECTION_TRUE@		$(gir_headers) \
diff --git a/libs/gst/net/gstnetaddressmeta.c b/libs/gst/net/gstnetaddressmeta.c
new file mode 100644
index 0000000..af869ae
--- /dev/null
+++ b/libs/gst/net/gstnetaddressmeta.c
@@ -0,0 +1,110 @@
+/* GStreamer
+ * Copyright (C) <2011> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstnetaddressmeta
+ * @short_description: Network address metadata
+ *
+ * #GstNetAddress can be used to store a network address. #GstNetAddressMeta can
+ * be used to store a network address in a #GstBuffer so that it network
+ * elements can track the to and from address of the buffer.
+ *
+ * Last reviewed on 2011-11-03 (0.11.2)
+ */
+
+#include <string.h>
+
+#include "gstnetaddressmeta.h"
+
+static gboolean
+net_address_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
+{
+  GstNetAddressMeta *nmeta = (GstNetAddressMeta *) meta;
+
+  nmeta->addr = NULL;
+
+  return TRUE;
+}
+
+static gboolean
+net_address_meta_transform (GstBuffer * transbuf, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  GstNetAddressMeta *nmeta = (GstNetAddressMeta *) meta;
+
+  /* we always copy no matter what transform */
+  gst_buffer_add_net_address_meta (transbuf, nmeta->addr);
+
+  return TRUE;
+}
+
+static void
+net_address_meta_free (GstMeta * meta, GstBuffer * buffer)
+{
+  GstNetAddressMeta *nmeta = (GstNetAddressMeta *) meta;
+
+  if (nmeta->addr)
+    g_object_unref (nmeta->addr);
+  nmeta->addr = NULL;
+}
+
+GType
+gst_net_address_meta_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] = { "origin", NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type = gst_meta_api_type_register ("GstNetAddressMetaAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+const GstMetaInfo *
+gst_net_address_meta_get_info (void)
+{
+  static const GstMetaInfo *meta_info = NULL;
+
+  if (meta_info == NULL) {
+    meta_info = gst_meta_register (GST_NET_ADDRESS_META_API_TYPE,
+        "GstNetAddressMeta",
+        sizeof (GstNetAddressMeta),
+        net_address_meta_init,
+        net_address_meta_free, net_address_meta_transform);
+  }
+  return meta_info;
+}
+
+GstNetAddressMeta *
+gst_buffer_add_net_address_meta (GstBuffer * buffer, GSocketAddress * addr)
+{
+  GstNetAddressMeta *meta;
+
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
+  g_return_val_if_fail (G_IS_SOCKET_ADDRESS (addr), NULL);
+
+  meta =
+      (GstNetAddressMeta *) gst_buffer_add_meta (buffer,
+      GST_NET_ADDRESS_META_INFO, NULL);
+
+  meta->addr = g_object_ref (addr);
+
+  return meta;
+}
diff --git a/libs/gst/net/gstnetaddressmeta.h b/libs/gst/net/gstnetaddressmeta.h
new file mode 100644
index 0000000..0173d87
--- /dev/null
+++ b/libs/gst/net/gstnetaddressmeta.h
@@ -0,0 +1,57 @@
+/* GStreamer
+ * Copyright (C) <2011> Wim Taymans <wim.taymans@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_NET_ADDRESS_META_H__
+#define __GST_NET_ADDRESS_META_H__
+
+#include <gst/gst.h>
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstNetAddressMeta GstNetAddressMeta;
+
+/**
+ * GstNetAddressMeta:
+ *
+ * Buffer metadata for network addresses.
+ */
+struct _GstNetAddressMeta {
+  GstMeta       meta;
+
+  GSocketAddress *addr;
+};
+
+GType gst_net_address_meta_api_get_type (void);
+#define GST_NET_ADDRESS_META_API_TYPE (gst_net_address_meta_api_get_type())
+
+#define gst_buffer_get_net_address_meta(b) \
+  ((GstNetAddressMeta*)gst_buffer_get_meta((b),GST_NET_ADDRESS_META_API_TYPE))
+
+/* implementation */
+const GstMetaInfo *gst_net_address_meta_get_info (void);
+#define GST_NET_ADDRESS_META_INFO (gst_net_address_meta_get_info())
+
+GstNetAddressMeta * gst_buffer_add_net_address_meta (GstBuffer      *buffer,
+                                                     GSocketAddress *addr);
+
+G_END_DECLS
+
+#endif /* __GST_NET_ADDRESS_META_H__ */
+
diff --git a/libs/gst/net/gstnetclientclock.c b/libs/gst/net/gstnetclientclock.c
index 8130e3e..691c414 100644
--- a/libs/gst/net/gstnetclientclock.c
+++ b/libs/gst/net/gstnetclientclock.c
@@ -2,6 +2,7 @@
  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
  *                    2005 Wim Taymans <wim@fluendo.com>
  *                    2005 Andy Wingo <wingo@pobox.com>
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk>
  *
  * gstnetclientclock.h: clock that synchronizes itself to a time provider over
  * the network
@@ -53,13 +54,7 @@
 #include "gstnettimepacket.h"
 #include "gstnetclientclock.h"
 
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#if defined (_MSC_VER) && _MSC_VER >= 1400
-#include <io.h>
-#endif
+#include <gio/gio.h>
 
 GST_DEBUG_CATEGORY_STATIC (ncc_debug);
 #define GST_CAT_DEFAULT (ncc_debug)
@@ -68,15 +63,11 @@
 #define DEFAULT_PORT            5637
 #define DEFAULT_TIMEOUT         GST_SECOND
 
-#ifdef G_OS_WIN32
-#define getsockname(sock,addr,len) getsockname(sock,addr,(int *)len)
-#endif
-
 enum
 {
   PROP_0,
   PROP_ADDRESS,
-  PROP_PORT,
+  PROP_PORT
 };
 
 #define GST_NET_CLIENT_CLOCK_GET_PRIVATE(obj)  \
@@ -84,8 +75,16 @@
 
 struct _GstNetClientClockPrivate
 {
-  GstPollFD sock;
-  GstPoll *fdset;
+  GThread *thread;
+
+  GSocket *socket;
+  GSocketAddress *servaddr;
+  GCancellable *cancel;
+
+  GstClockTime timeout_expiration;
+
+  gchar *address;
+  gint port;
 };
 
 #define _do_init \
@@ -102,21 +101,6 @@
 
 static void gst_net_client_clock_stop (GstNetClientClock * self);
 
-#ifdef G_OS_WIN32
-static int
-inet_aton (const char *c, struct in_addr *paddr)
-{
-  /* note that inet_addr is deprecated on unix because
-   * inet_addr returns -1 (INADDR_NONE) for the valid 255.255.255.255
-   * address. */
-  paddr->s_addr = inet_addr (c);
-  if (paddr->s_addr == INADDR_NONE)
-    return 0;
-
-  return 1;
-}
-#endif
-
 static void
 gst_net_client_clock_class_init (GstNetClientClockClass * klass)
 {
@@ -132,9 +116,8 @@
 
   g_object_class_install_property (gobject_class, PROP_ADDRESS,
       g_param_spec_string ("address", "address",
-          "The address of the machine providing a time server, "
-          "as a dotted quad (x.x.x.x)", DEFAULT_ADDRESS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "The IP address of the machine providing a time server",
+          DEFAULT_ADDRESS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_PORT,
       g_param_spec_int ("port", "port",
           "The port on which the remote server is listening", 0, G_MAXUINT16,
@@ -145,29 +128,18 @@
 gst_net_client_clock_init (GstNetClientClock * self)
 {
   GstClock *clock = GST_CLOCK_CAST (self);
+  GstNetClientClockPrivate *priv;
 
-#ifdef G_OS_WIN32
-  WSADATA w;
-  int error = WSAStartup (0x0202, &w);
+  self->priv = priv = GST_NET_CLIENT_CLOCK_GET_PRIVATE (self);
 
-  if (error) {
-    GST_DEBUG_OBJECT (self, "Error on WSAStartup");
-  }
-  if (w.wVersion != 0x0202) {
-    WSACleanup ();
-  }
-#endif
-  self->priv = GST_NET_CLIENT_CLOCK_GET_PRIVATE (self);
+  priv->port = DEFAULT_PORT;
+  priv->address = g_strdup (DEFAULT_ADDRESS);
 
-  self->port = DEFAULT_PORT;
-  self->address = g_strdup (DEFAULT_ADDRESS);
+  gst_clock_set_timeout (clock, DEFAULT_TIMEOUT);
 
-  clock->timeout = DEFAULT_TIMEOUT;
+  priv->thread = NULL;
 
-  self->priv->sock.fd = -1;
-  self->thread = NULL;
-
-  self->servaddr = NULL;
+  priv->servaddr = NULL;
 }
 
 static void
@@ -175,25 +147,23 @@
 {
   GstNetClientClock *self = GST_NET_CLIENT_CLOCK (object);
 
-  if (self->thread) {
+  if (self->priv->thread) {
     gst_net_client_clock_stop (self);
-    g_assert (self->thread == NULL);
   }
 
-  if (self->priv->fdset) {
-    gst_poll_free (self->priv->fdset);
-    self->priv->fdset = NULL;
+  g_free (self->priv->address);
+  self->priv->address = NULL;
+
+  if (self->priv->servaddr != NULL) {
+    g_object_unref (self->priv->servaddr);
+    self->priv->servaddr = NULL;
   }
 
-  g_free (self->address);
-  self->address = NULL;
-
-  g_free (self->servaddr);
-  self->servaddr = NULL;
-
-#ifdef G_OS_WIN32
-  WSACleanup ();
-#endif
+  if (self->priv->socket != NULL) {
+    g_socket_close (self->priv->socket, NULL);
+    g_object_unref (self->priv->socket);
+    self->priv->socket = NULL;
+  }
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -206,14 +176,13 @@
 
   switch (prop_id) {
     case PROP_ADDRESS:
-      g_free (self->address);
-      if (g_value_get_string (value) == NULL)
-        self->address = g_strdup (DEFAULT_ADDRESS);
-      else
-        self->address = g_strdup (g_value_get_string (value));
+      g_free (self->priv->address);
+      self->priv->address = g_value_dup_string (value);
+      if (self->priv->address == NULL)
+        self->priv->address = g_strdup (DEFAULT_ADDRESS);
       break;
     case PROP_PORT:
-      self->port = g_value_get_int (value);
+      self->priv->port = g_value_get_int (value);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -229,10 +198,10 @@
 
   switch (prop_id) {
     case PROP_ADDRESS:
-      g_value_set_string (value, self->address);
+      g_value_set_string (value, self->priv->address);
       break;
     case PROP_PORT:
-      g_value_set_int (value, self->port);
+      g_value_set_int (value, self->priv->port);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -244,6 +213,7 @@
 gst_net_client_clock_observe_times (GstNetClientClock * self,
     GstClockTime local_1, GstClockTime remote, GstClockTime local_2)
 {
+  GstClockTime current_timeout;
   GstClockTime local_avg;
   gdouble r_squared;
   GstClock *clock;
@@ -255,18 +225,17 @@
 
   clock = GST_CLOCK_CAST (self);
 
-  gst_clock_add_observation (GST_CLOCK (self), local_avg, remote, &r_squared);
-
-  GST_CLOCK_SLAVE_LOCK (self);
-  if (clock->filling) {
-    self->current_timeout = 0;
-  } else {
+  if (gst_clock_add_observation (GST_CLOCK (self), local_avg, remote,
+          &r_squared)) {
     /* geto formula */
-    self->current_timeout =
-        (1e-3 / (1 - MIN (r_squared, 0.99999))) * GST_SECOND;
-    self->current_timeout = MIN (self->current_timeout, clock->timeout);
+    current_timeout = (1e-3 / (1 - MIN (r_squared, 0.99999))) * GST_SECOND;
+    current_timeout = MIN (current_timeout, gst_clock_get_timeout (clock));
+  } else {
+    current_timeout = 0;
   }
-  GST_CLOCK_SLAVE_UNLOCK (clock);
+
+  GST_INFO ("next timeout: %" GST_TIME_FORMAT, GST_TIME_ARGS (current_timeout));
+  self->priv->timeout_expiration = gst_util_get_timestamp () + current_timeout;
 
   return;
 
@@ -279,67 +248,111 @@
   }
 }
 
-static gint
-gst_net_client_clock_do_select (GstNetClientClock * self)
+typedef struct
 {
-  while (TRUE) {
-    GstClockTime diff;
-    gint ret;
+  GSource source;
+  GstNetClientClock *clock;
+  gboolean *p_timeout;
+} GstNetClientClockTimeoutSource;
 
-    GST_LOG_OBJECT (self, "doing select");
+static gboolean
+gst_net_client_clock_timeout_source_prepare (GSource * s, gint * p_timeout)
+{
+  GstNetClientClockTimeoutSource *source = (GstNetClientClockTimeoutSource *) s;
+  GstClockTime expiration_time = source->clock->priv->timeout_expiration;
+  GstClockTime now = gst_util_get_timestamp ();
 
-    diff = gst_clock_get_internal_time (GST_CLOCK (self));
-    ret = gst_poll_wait (self->priv->fdset, self->current_timeout);
-    diff = gst_clock_get_internal_time (GST_CLOCK (self)) - diff;
-
-    if (diff > self->current_timeout)
-      self->current_timeout = 0;
-    else
-      self->current_timeout -= diff;
-
-    GST_LOG_OBJECT (self, "select returned %d", ret);
-
-    if (ret < 0 && errno != EBUSY) {
-      if (errno != EAGAIN && errno != EINTR)
-        goto select_error;
-      else
-        continue;
-    } else {
-      return ret;
-    }
-
-    g_assert_not_reached ();
-
-    /* log errors and keep going */
-  select_error:
-    {
-      GST_WARNING_OBJECT (self, "select error %d: %s (%d)", ret,
-          g_strerror (errno), errno);
-      continue;
-    }
+  if (now >= expiration_time || (expiration_time - now) <= GST_MSECOND) {
+    *p_timeout = 0;
+    return TRUE;
   }
 
-  g_assert_not_reached ();
-  return -1;
+  *p_timeout = (expiration_time - now) / GST_MSECOND;
+  GST_TRACE_OBJECT (source->clock, "time out in %d ms please", *p_timeout);
+  return FALSE;
+}
+
+static gboolean
+gst_net_client_clock_timeout_source_check (GSource * s)
+{
+  GstNetClientClockTimeoutSource *source = (GstNetClientClockTimeoutSource *) s;
+
+  return (gst_util_get_timestamp () >= source->clock->priv->timeout_expiration);
+}
+
+static gboolean
+gst_net_client_clock_timeout_source_dispatch (GSource * s, GSourceFunc cb,
+    gpointer data)
+{
+  GstNetClientClockTimeoutSource *source = (GstNetClientClockTimeoutSource *) s;
+
+  GST_TRACE_OBJECT (source->clock, "timed out");
+  *source->p_timeout = TRUE;
+  return TRUE;
+}
+
+static gboolean
+gst_net_client_clock_socket_cb (GSocket * socket, GIOCondition condition,
+    gpointer user_data)
+{
+  GIOCondition *p_cond = user_data;
+
+  GST_TRACE ("socket %p I/O condition: 0x%02x", socket, condition);
+  *p_cond = condition;
+  return TRUE;
 }
 
 static gpointer
 gst_net_client_clock_thread (gpointer data)
 {
   GstNetClientClock *self = data;
-  struct sockaddr_in tmpaddr;
-  socklen_t len;
   GstNetTimePacket *packet;
-  gint ret;
+  GMainContext *ctx;
+  GSourceFuncs funcs = { NULL, };
+  GSource *source;
+  GIOCondition cond;
+  gboolean timeout;
+  GSocket *socket = self->priv->socket;
+  GError *err = NULL;
   GstClock *clock = data;
 
-  while (TRUE) {
-    ret = gst_net_client_clock_do_select (self);
+  GST_INFO_OBJECT (self, "net client clock thread running, socket=%p", socket);
 
-    if (ret < 0 && errno == EBUSY) {
-      GST_LOG_OBJECT (self, "stop");
-      goto stopped;
-    } else if (ret == 0) {
+  g_socket_set_blocking (socket, TRUE);
+  g_socket_set_timeout (socket, 0);
+
+  ctx = g_main_context_new ();
+
+  source = g_socket_create_source (socket, G_IO_IN, self->priv->cancel);
+  g_source_set_name (source, "GStreamer net client clock thread socket");
+  g_source_set_callback (source, (GSourceFunc) gst_net_client_clock_socket_cb,
+      &cond, NULL);
+  g_source_attach (source, ctx);
+  g_source_unref (source);
+
+  /* GSocket only support second granularity for timeouts, so roll our own
+   * timeout source (so we don't have to create a new source whenever the
+   * timeout changes, as we would have to do with the default timeout source) */
+  funcs.prepare = gst_net_client_clock_timeout_source_prepare;
+  funcs.check = gst_net_client_clock_timeout_source_check;
+  funcs.dispatch = gst_net_client_clock_timeout_source_dispatch;
+  funcs.finalize = NULL;
+  source = g_source_new (&funcs, sizeof (GstNetClientClockTimeoutSource));
+  ((GstNetClientClockTimeoutSource *) source)->clock = self;
+  ((GstNetClientClockTimeoutSource *) source)->p_timeout = &timeout;
+  g_source_set_name (source, "GStreamer net client clock timeout");
+  g_source_attach (source, ctx);
+  g_source_unref (source);
+
+  while (!g_cancellable_is_cancelled (self->priv->cancel)) {
+    cond = 0;
+    timeout = FALSE;
+    g_main_context_iteration (ctx, TRUE);
+
+    if (g_cancellable_is_cancelled (self->priv->cancel))
+      break;
+
+    if (timeout) {
       /* timed out, let's send another packet */
       GST_DEBUG_OBJECT (self, "timed out");
 
@@ -349,24 +362,32 @@
 
       GST_DEBUG_OBJECT (self, "sending packet, local time = %" GST_TIME_FORMAT,
           GST_TIME_ARGS (packet->local_time));
-      gst_net_time_packet_send (packet, self->priv->sock.fd,
-          (struct sockaddr *) self->servaddr, sizeof (struct sockaddr_in));
+
+      gst_net_time_packet_send (packet, self->priv->socket,
+          self->priv->servaddr, NULL);
 
       g_free (packet);
 
-      /* reset timeout */
-      self->current_timeout = clock->timeout;
+      /* reset timeout (but are expecting a response sooner anyway) */
+      self->priv->timeout_expiration =
+          gst_util_get_timestamp () + gst_clock_get_timeout (clock);
       continue;
-    } else if (gst_poll_fd_can_read (self->priv->fdset, &self->priv->sock)) {
-      /* got data in */
-      GstClockTime new_local = gst_clock_get_internal_time (GST_CLOCK (self));
+    }
 
-      len = sizeof (struct sockaddr);
-      packet = gst_net_time_packet_receive (self->priv->sock.fd,
-          (struct sockaddr *) &tmpaddr, &len);
+    /* got data to read? */
+    if ((cond & G_IO_IN)) {
+      GstClockTime new_local;
 
-      if (!packet)
-        goto receive_error;
+      new_local = gst_clock_get_internal_time (GST_CLOCK (self));
+
+      packet = gst_net_time_packet_receive (socket, NULL, &err);
+
+      if (err != NULL) {
+        GST_WARNING_OBJECT (self, "receive error: %s", err->message);
+        g_error_free (err);
+        err = NULL;
+        continue;
+      }
 
       GST_LOG_OBJECT (self, "got packet back");
       GST_LOG_OBJECT (self, "local_1 = %" GST_TIME_FORMAT,
@@ -382,77 +403,71 @@
 
       g_free (packet);
       continue;
-    } else {
-      GST_WARNING_OBJECT (self, "unhandled select return state?");
+    }
+
+    if ((cond & (G_IO_ERR | G_IO_HUP))) {
+      GST_DEBUG_OBJECT (self, "socket error?! %s", g_strerror (errno));
+      g_usleep (G_USEC_PER_SEC / 10);
       continue;
     }
-
-    g_assert_not_reached ();
-
-  stopped:
-    {
-      GST_DEBUG_OBJECT (self, "shutting down");
-      /* socket gets closed in _stop() */
-      return NULL;
-    }
-  receive_error:
-    {
-      GST_WARNING_OBJECT (self, "receive error");
-      continue;
-    }
-
-    g_assert_not_reached ();
-
   }
 
-  g_assert_not_reached ();
-
+  GST_INFO_OBJECT (self, "shutting down net client clock thread");
+  g_main_context_unref (ctx);
   return NULL;
 }
 
 static gboolean
 gst_net_client_clock_start (GstNetClientClock * self)
 {
-  struct sockaddr_in servaddr, myaddr;
-  socklen_t len;
-  gint ret;
-  GError *error;
+  GSocketAddress *servaddr;
+  GSocketAddress *myaddr;
+  GInetAddress *inetaddr;
+  GSocket *socket;
+  GError *error = NULL;
 
-  g_return_val_if_fail (self->address != NULL, FALSE);
-  g_return_val_if_fail (self->servaddr == NULL, FALSE);
+  g_return_val_if_fail (self->priv->address != NULL, FALSE);
+  g_return_val_if_fail (self->priv->servaddr == NULL, FALSE);
 
-  if ((ret = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
+  socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM,
+      G_SOCKET_PROTOCOL_UDP, &error);
+
+  if (socket == NULL)
     goto no_socket;
 
-  self->priv->sock.fd = ret;
+  /* check address we're bound to, mostly for debugging purposes */
+  myaddr = g_socket_get_local_address (socket, &error);
 
-  len = sizeof (myaddr);
-  ret = getsockname (self->priv->sock.fd, (struct sockaddr *) &myaddr, &len);
-  if (ret < 0)
+  if (myaddr == NULL)
     goto getsockname_error;
 
-  memset (&servaddr, 0, sizeof (servaddr));
-  servaddr.sin_family = AF_INET;        /* host byte order */
-  servaddr.sin_port = htons (self->port);       /* short, network byte order */
-
   GST_DEBUG_OBJECT (self, "socket opened on UDP port %hd",
-      ntohs (servaddr.sin_port));
+      g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (myaddr)));
 
-  if (!inet_aton (self->address, &servaddr.sin_addr))
+  g_object_unref (myaddr);
+
+  /* create target address */
+  inetaddr = g_inet_address_new_from_string (self->priv->address);
+
+  if (inetaddr == NULL)
     goto bad_address;
 
-  self->servaddr = g_malloc (sizeof (struct sockaddr_in));
-  memcpy (self->servaddr, &servaddr, sizeof (servaddr));
+  servaddr = g_inet_socket_address_new (inetaddr, self->priv->port);
+  g_object_unref (inetaddr);
 
-  GST_DEBUG_OBJECT (self, "will communicate with %s:%d", self->address,
-      self->port);
+  g_assert (servaddr != NULL);
 
-  gst_poll_add_fd (self->priv->fdset, &self->priv->sock);
-  gst_poll_fd_ctl_read (self->priv->fdset, &self->priv->sock, TRUE);
+  GST_DEBUG_OBJECT (self, "will communicate with %s:%d", self->priv->address,
+      self->priv->port);
 
-  self->thread = g_thread_create (gst_net_client_clock_thread, self, TRUE,
-      &error);
-  if (!self->thread)
+  self->priv->cancel = g_cancellable_new ();
+  self->priv->socket = socket;
+  self->priv->servaddr = G_SOCKET_ADDRESS (servaddr);
+
+  self->priv->thread = g_thread_try_new ("GstNetClientClock",
+      gst_net_client_clock_thread, self, &error);
+
+  if (error != NULL)
     goto no_thread;
 
   return TRUE;
@@ -460,34 +475,31 @@
   /* ERRORS */
 no_socket:
   {
-    GST_ERROR_OBJECT (self, "socket failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
+    GST_ERROR_OBJECT (self, "socket_new() failed: %s", error->message);
+    g_error_free (error);
     return FALSE;
   }
 getsockname_error:
   {
-    GST_ERROR_OBJECT (self, "getsockname failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
+    GST_ERROR_OBJECT (self, "get_local_address() failed: %s", error->message);
+    g_error_free (error);
+    g_object_unref (socket);
     return FALSE;
   }
 bad_address:
   {
-    GST_ERROR_OBJECT (self, "inet_aton failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
+    GST_ERROR_OBJECT (self, "inet_address_new_from_string('%s') failed",
+        self->priv->address);
+    g_object_unref (socket);
     return FALSE;
   }
 no_thread:
   {
     GST_ERROR_OBJECT (self, "could not create thread: %s", error->message);
-    gst_poll_remove_fd (self->priv->fdset, &self->priv->sock);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    g_free (self->servaddr);
-    self->servaddr = NULL;
+    g_object_unref (self->priv->servaddr);
+    self->priv->servaddr = NULL;
+    g_object_unref (self->priv->socket);
+    self->priv->socket = NULL;
     g_error_free (error);
     return FALSE;
   }
@@ -496,15 +508,25 @@
 static void
 gst_net_client_clock_stop (GstNetClientClock * self)
 {
-  gst_poll_set_flushing (self->priv->fdset, TRUE);
-  g_thread_join (self->thread);
-  self->thread = NULL;
+  if (self->priv->thread == NULL)
+    return;
 
-  if (self->priv->sock.fd != -1) {
-    gst_poll_remove_fd (self->priv->fdset, &self->priv->sock);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-  }
+  GST_INFO_OBJECT (self, "stopping...");
+  g_cancellable_cancel (self->priv->cancel);
+
+  g_thread_join (self->priv->thread);
+  self->priv->thread = NULL;
+
+  g_object_unref (self->priv->cancel);
+  self->priv->cancel = NULL;
+
+  g_object_unref (self->priv->servaddr);
+  self->priv->servaddr = NULL;
+
+  g_object_unref (self->priv->socket);
+  self->priv->socket = NULL;
+
+  GST_INFO_OBJECT (self, "stopped");
 }
 
 /**
@@ -525,6 +547,7 @@
 gst_net_client_clock_new (gchar * name, const gchar * remote_address,
     gint remote_port, GstClockTime base_time)
 {
+  /* FIXME: gst_net_client_clock_new() should be a thin wrapper for g_object_new() */
   GstNetClientClock *ret;
   GstClockTime internal;
 
@@ -556,22 +579,12 @@
     }
   }
 
-  if ((ret->priv->fdset = gst_poll_new (TRUE)) == NULL)
-    goto no_fdset;
-
   if (!gst_net_client_clock_start (ret))
     goto failed_start;
 
   /* all systems go, cap'n */
   return (GstClock *) ret;
 
-no_fdset:
-  {
-    GST_ERROR_OBJECT (ret, "could not create an fdset: %s (%d)",
-        g_strerror (errno), errno);
-    gst_object_unref (ret);
-    return NULL;
-  }
 failed_start:
   {
     /* already printed a nice error */
diff --git a/libs/gst/net/gstnetclientclock.h b/libs/gst/net/gstnetclientclock.h
index 44b2e2e..a0fcf1f 100644
--- a/libs/gst/net/gstnetclientclock.h
+++ b/libs/gst/net/gstnetclientclock.h
@@ -2,6 +2,7 @@
  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
  *                    2005 Wim Taymans <wim@fluendo.com>
  *                    2005 Andy Wingo <wingo@pobox.com>
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk>
  *
  * gstnetclientclock.h: clock that synchronizes itself to a time provider over
  * the network
@@ -31,21 +32,6 @@
 
 G_BEGIN_DECLS
 
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-
-#ifdef G_OS_WIN32
-# include <winsock2.h>
-#else
-# include <netdb.h>
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-#endif /*G_OS_WIN32 */
-
-#include <fcntl.h>
-
 #define GST_TYPE_NET_CLIENT_CLOCK \
   (gst_net_client_clock_get_type())
 #define GST_NET_CLIENT_CLOCK(obj) \
@@ -69,24 +55,10 @@
 struct _GstNetClientClock {
   GstSystemClock clock;
 
-  /*< protected >*/
-  gchar *address;
-  gint port;
-
-  /*< private >*/
-  int sock;
-  int control_sock[2];
-
-  GstClockTime current_timeout;
-
-  struct sockaddr_in *servaddr;
-
-  GThread *thread;
-
   /*< private >*/
   GstNetClientClockPrivate *priv;
 
-  gpointer _gst_reserved[GST_PADDING - 1];
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstNetClientClockClass {
@@ -97,6 +69,7 @@
 };
 
 GType           gst_net_client_clock_get_type	(void);
+
 GstClock*	gst_net_client_clock_new	(gchar *name, const gchar *remote_address,
                                                  gint remote_port, GstClockTime base_time);
 
diff --git a/libs/gst/net/gstnettimepacket.c b/libs/gst/net/gstnettimepacket.c
index bf8a027..f4667f6 100644
--- a/libs/gst/net/gstnettimepacket.c
+++ b/libs/gst/net/gstnettimepacket.c
@@ -1,5 +1,7 @@
 /* GStreamer
  * Copyright (C) 2005 Andy Wingo <wingo@pobox.com>
+ * Copyright (C) 2010 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -107,112 +109,106 @@
 
 /**
  * gst_net_time_packet_receive:
- * @fd: a file descriptor created by socket(2)
- * @addr: a pointer to a sockaddr to hold the address of the sender
- * @len: a pointer to the size of the data pointed to by @addr
+ * @socket: socket to receive the time packet on
+ * @src_addr: (out): address of variable to return sender address
+ * @err: return address for a #GError, or NULL
  *
- * Receives a #GstNetTimePacket over a socket. Handles interrupted system calls,
- * but otherwise returns NULL on error. See recvfrom(2) for more information on
- * how to interpret @sockaddr.
+ * Receives a #GstNetTimePacket over a socket. Handles interrupted system
+ * calls, but otherwise returns NULL on error.
  *
- * MT safe. Caller owns return value (g_free to free).
- *
- * Returns: The new #GstNetTimePacket.
+ * Returns: (transfer full): a new #GstNetTimePacket, or NULL on error. Free
+ *    with g_free() when done.
  */
 GstNetTimePacket *
-gst_net_time_packet_receive (gint fd, struct sockaddr * addr, socklen_t * len)
+gst_net_time_packet_receive (GSocket * socket,
+    GSocketAddress ** src_address, GError ** error)
 {
-  guint8 buffer[GST_NET_TIME_PACKET_SIZE];
-  gint ret;
+  gchar buffer[GST_NET_TIME_PACKET_SIZE];
+  GError *err = NULL;
+  gssize ret;
+
+  g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
   while (TRUE) {
-#ifdef G_OS_WIN32
-    ret = recvfrom (fd, (char *) buffer, GST_NET_TIME_PACKET_SIZE,
-#else
-    ret = recvfrom (fd, buffer, GST_NET_TIME_PACKET_SIZE,
-#endif
-        0, (struct sockaddr *) addr, len);
+    ret = g_socket_receive_from (socket, src_address, buffer,
+        GST_NET_TIME_PACKET_SIZE, NULL, &err);
+
     if (ret < 0) {
-      if (errno != EAGAIN && errno != EINTR)
-        goto receive_error;
-      else
+      if (err->code == G_IO_ERROR_WOULD_BLOCK) {
+        g_error_free (err);
+        err = NULL;
         continue;
+      } else {
+        goto receive_error;
+      }
     } else if (ret < GST_NET_TIME_PACKET_SIZE) {
       goto short_packet;
     } else {
-      return gst_net_time_packet_new (buffer);
+      return gst_net_time_packet_new ((const guint8 *) buffer);
     }
   }
 
 receive_error:
   {
-    GST_DEBUG ("receive error %d: %s (%d)", ret, g_strerror (errno), errno);
+    GST_DEBUG ("receive error: %s", err->message);
+    g_propagate_error (error, err);
     return NULL;
   }
 short_packet:
   {
-    GST_DEBUG ("someone sent us a short packet (%d < %d)",
+    GST_DEBUG ("someone sent us a short packet (%" G_GSSIZE_FORMAT " < %d)",
         ret, GST_NET_TIME_PACKET_SIZE);
+    g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
+        "short time packet (%d < %d)", (int) ret, GST_NET_TIME_PACKET_SIZE);
     return NULL;
   }
 }
 
 /**
  * gst_net_time_packet_send:
- * @packet: the #GstNetTimePacket
- * @fd: a file descriptor created by socket(2)
- * @addr: a pointer to a sockaddr to hold the address of the sender
- * @len: the size of the data pointed to by @addr
+ * @packet: the #GstNetTimePacket to send
+ * @socket: socket to send the time packet on
+ * @dest_addr: address to send the time packet to
+ * @err: return address for a #GError, or NULL
  *
- * Sends a #GstNetTimePacket over a socket. Essentially a thin wrapper around
- * sendto(2) and gst_net_time_packet_serialize(). 
+ * Sends a #GstNetTimePacket over a socket.
  *
  * MT safe.
  *
- * Returns: The return value of sendto(2).
+ * Returns: TRUE if successful, FALSE in case an error occured.
  */
-gint
-gst_net_time_packet_send (const GstNetTimePacket * packet, gint fd,
-    struct sockaddr * addr, socklen_t len)
+gboolean
+gst_net_time_packet_send (const GstNetTimePacket * packet,
+    GSocket * socket, GSocketAddress * dest_address, GError ** error)
 {
-#if defined __CYGWIN__
-  gint fdflags;
-#elif defined G_OS_WIN32
-  gulong flags;
-#endif
-
+  gboolean was_blocking;
   guint8 *buffer;
-  gint ret, send_flags;
+  gssize res;
 
-  g_return_val_if_fail (packet != NULL, -EINVAL);
+  g_return_val_if_fail (packet != NULL, FALSE);
+  g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
+  g_return_val_if_fail (G_IS_SOCKET_ADDRESS (dest_address), FALSE);
+  g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
-#ifdef __CYGWIN__
-  send_flags = 0;
-  fdflags = fcntl (fd, F_GETFL);
-  fcntl (fd, F_SETFL, fdflags | O_NONBLOCK);
-#elif defined G_OS_WIN32
-  flags = 1;
-  send_flags = 0;
-#else
-  send_flags = MSG_DONTWAIT;
-#endif
+  was_blocking = g_socket_get_blocking (socket);
 
+  if (was_blocking)
+    g_socket_set_blocking (socket, FALSE);
+
+  /* FIXME: avoid pointless alloc/free, serialise into stack-allocated buffer */
   buffer = gst_net_time_packet_serialize (packet);
 
-#ifdef G_OS_WIN32
-  ioctlsocket (fd, FIONBIO, &flags);    /* Set nonblocking mode */
-  ret =
-      sendto (fd, (char *) buffer, GST_NET_TIME_PACKET_SIZE, send_flags, addr,
-      len);
-#else
-  ret = sendto (fd, buffer, GST_NET_TIME_PACKET_SIZE, send_flags, addr, len);
-#endif
+  res = g_socket_send_to (socket, dest_address, (const gchar *) buffer,
+      GST_NET_TIME_PACKET_SIZE, NULL, error);
 
-#ifdef __CYGWIN__
-  fcntl (fd, F_SETFL, fdflags);
-#endif
+  /* datagram packets should be sent as a whole or not at all */
+  g_assert (res < 0 || res == GST_NET_TIME_PACKET_SIZE);
 
   g_free (buffer);
 
-  return ret;
+  if (was_blocking)
+    g_socket_set_blocking (socket, TRUE);
+
+  return (res == GST_NET_TIME_PACKET_SIZE);
 }
diff --git a/libs/gst/net/gstnettimepacket.h b/libs/gst/net/gstnettimepacket.h
index 48eefa7..e37342c 100644
--- a/libs/gst/net/gstnettimepacket.h
+++ b/libs/gst/net/gstnettimepacket.h
@@ -22,26 +22,10 @@
 #define __GST_NET_TIME_PACKET_H__
 
 #include <gst/gst.h>
+#include <gio/gio.h>
 
 G_BEGIN_DECLS
 
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-
-#ifdef G_OS_WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#ifndef socklen_t
-#define socklen_t int
-#endif
-#else
-#include <netdb.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#endif
-
 /**
  * GST_NET_TIME_PACKET_SIZE:
  *
@@ -63,14 +47,18 @@
   GstClockTime remote_time;
 };
 
-GstNetTimePacket*	gst_net_time_packet_new 	(const guint8 *buffer);
-guint8*			gst_net_time_packet_serialize	(const GstNetTimePacket *packet);
+/* FIXME 0.11: get rid of the packet stuff? add an unref/free function? */
+GstNetTimePacket*       gst_net_time_packet_new         (const guint8 *buffer);
+guint8*                 gst_net_time_packet_serialize   (const GstNetTimePacket *packet);
 
-GstNetTimePacket*	gst_net_time_packet_receive	(gint fd, struct sockaddr *addr,
-                                                         socklen_t *len);
-gint			gst_net_time_packet_send	(const GstNetTimePacket *packet,
-                                                         gint fd, struct sockaddr *addr,
-                                                         socklen_t len);
+GstNetTimePacket*	gst_net_time_packet_receive     (GSocket         * socket,
+                                                         GSocketAddress ** src_address,
+                                                         GError         ** error);
+
+gboolean                gst_net_time_packet_send        (const GstNetTimePacket * packet,
+                                                         GSocket                * socket,
+                                                         GSocketAddress         * dest_address,
+                                                         GError                ** error);
 
 G_END_DECLS
 
diff --git a/libs/gst/net/gstnettimeprovider.c b/libs/gst/net/gstnettimeprovider.c
index c1b4cac..f008c00 100644
--- a/libs/gst/net/gstnettimeprovider.c
+++ b/libs/gst/net/gstnettimeprovider.c
@@ -42,39 +42,14 @@
 #include "gstnettimeprovider.h"
 #include "gstnettimepacket.h"
 
-#include <glib.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#if defined (_MSC_VER) && _MSC_VER >= 1400
-#include <io.h>
-#endif
-
-#ifndef G_OS_WIN32
-#include <sys/ioctl.h>
-#endif
-
-#ifdef HAVE_FIONREAD_IN_SYS_FILIO
-#include <sys/filio.h>
-#endif
-
 GST_DEBUG_CATEGORY_STATIC (ntp_debug);
 #define GST_CAT_DEFAULT (ntp_debug)
 
-#ifdef G_OS_WIN32
-#define close(sock) closesocket(sock)
-#endif
-
 #define DEFAULT_ADDRESS         "0.0.0.0"
 #define DEFAULT_PORT            5637
 
-#define IS_ACTIVE(self) (g_atomic_int_get (&((self)->active.active)))
+#define IS_ACTIVE(self) (g_atomic_int_get (&((self)->priv->active)))
 
-#ifdef G_OS_WIN32
-#define setsockopt(sock, sol_flags, reuse_flags, ru, sizeofru) setsockopt (sock, sol_flags, reuse_flags, (char *)ru, sizeofru)
-#endif
 enum
 {
   PROP_0,
@@ -82,7 +57,6 @@
   PROP_ADDRESS,
   PROP_CLOCK,
   PROP_ACTIVE
-      /* FILL ME */
 };
 
 #define GST_NET_TIME_PROVIDER_GET_PRIVATE(obj)  \
@@ -90,8 +64,17 @@
 
 struct _GstNetTimeProviderPrivate
 {
-  GstPollFD sock;
-  GstPoll *fdset;
+  gchar *address;
+  int port;
+
+  GThread *thread;
+
+  GstClock *clock;
+
+  gboolean active;              /* ATOMIC */
+
+  GSocket *socket;
+  GCancellable *cancel;
 };
 
 static gboolean gst_net_time_provider_start (GstNetTimeProvider * bself);
@@ -112,18 +95,6 @@
 G_DEFINE_TYPE_WITH_CODE (GstNetTimeProvider, gst_net_time_provider,
     GST_TYPE_OBJECT, _do_init);
 
-#ifdef G_OS_WIN32
-static int
-inet_aton (const char *c, struct in_addr *paddr)
-{
-  paddr->s_addr = inet_addr (c);
-  if (paddr->s_addr == INADDR_NONE)
-    return 0;
-
-  return 1;
-}
-#endif
-
 static void
 gst_net_time_provider_class_init (GstNetTimeProviderClass * klass)
 {
@@ -160,24 +131,12 @@
 static void
 gst_net_time_provider_init (GstNetTimeProvider * self)
 {
-#ifdef G_OS_WIN32
-  WSADATA w;
-  int error = WSAStartup (0x0202, &w);
-
-  if (error) {
-    GST_DEBUG_OBJECT (self, "Error on WSAStartup");
-  }
-  if (w.wVersion != 0x0202) {
-    WSACleanup ();
-  }
-#endif
   self->priv = GST_NET_TIME_PROVIDER_GET_PRIVATE (self);
 
-  self->port = DEFAULT_PORT;
-  self->priv->sock.fd = -1;
-  self->address = g_strdup (DEFAULT_ADDRESS);
-  self->thread = NULL;
-  self->active.active = TRUE;
+  self->priv->port = DEFAULT_PORT;
+  self->priv->address = g_strdup (DEFAULT_ADDRESS);
+  self->priv->thread = NULL;
+  self->priv->active = TRUE;
 }
 
 static void
@@ -185,26 +144,17 @@
 {
   GstNetTimeProvider *self = GST_NET_TIME_PROVIDER (object);
 
-  if (self->thread) {
+  if (self->priv->thread) {
     gst_net_time_provider_stop (self);
-    g_assert (self->thread == NULL);
+    g_assert (self->priv->thread == NULL);
   }
 
-  if (self->priv->fdset) {
-    gst_poll_free (self->priv->fdset);
-    self->priv->fdset = NULL;
-  }
+  g_free (self->priv->address);
+  self->priv->address = NULL;
 
-  g_free (self->address);
-  self->address = NULL;
-
-  if (self->clock)
-    gst_object_unref (self->clock);
-  self->clock = NULL;
-
-#ifdef G_OS_WIN32
-  WSACleanup ();
-#endif
+  if (self->priv->clock)
+    gst_object_unref (self->priv->clock);
+  self->priv->clock = NULL;
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -213,75 +163,56 @@
 gst_net_time_provider_thread (gpointer data)
 {
   GstNetTimeProvider *self = data;
-  struct sockaddr_in tmpaddr;
-  socklen_t len;
+  GCancellable *cancel = self->priv->cancel;
+  GSocket *socket = self->priv->socket;
   GstNetTimePacket *packet;
-  gint ret;
+  GError *err = NULL;
+
+  GST_INFO_OBJECT (self, "time provider thread is running");
 
   while (TRUE) {
-    GST_LOG_OBJECT (self, "doing select");
-    ret = gst_poll_wait (self->priv->fdset, GST_CLOCK_TIME_NONE);
-    GST_LOG_OBJECT (self, "select returned %d", ret);
+    GSocketAddress *sender_addr = NULL;
 
-    if (ret <= 0) {
-      if (errno == EBUSY) {
-        GST_LOG_OBJECT (self, "stop");
-        goto stopped;
-      } else if (errno != EAGAIN && errno != EINTR)
-        goto select_error;
-      else
-        continue;
-    } else {
-      /* got data in */
-      len = sizeof (struct sockaddr);
+    GST_LOG_OBJECT (self, "waiting on socket");
+    if (!g_socket_condition_wait (socket, G_IO_IN, cancel, &err)) {
+      GST_INFO_OBJECT (self, "socket error: %s", err->message);
 
-      packet = gst_net_time_packet_receive (self->priv->sock.fd,
-          (struct sockaddr *) &tmpaddr, &len);
+      if (err->code == G_IO_ERROR_CANCELLED)
+        break;
 
-      if (!packet)
-        goto receive_error;
+      /* try again */
+      g_usleep (G_USEC_PER_SEC / 10);
+      g_error_free (err);
+      err = NULL;
+      continue;
+    }
 
-      if (IS_ACTIVE (self)) {
-        /* do what we were asked to and send the packet back */
-        packet->remote_time = gst_clock_get_time (self->clock);
+    /* got data in */
+    packet = gst_net_time_packet_receive (socket, &sender_addr, &err);
 
-        /* ignore errors */
-        gst_net_time_packet_send (packet, self->priv->sock.fd,
-            (struct sockaddr *) &tmpaddr, len);
-      }
+    if (err != NULL) {
+      GST_DEBUG_OBJECT (self, "receive error: %s", err->message);
+      g_usleep (G_USEC_PER_SEC / 10);
+      g_error_free (err);
+      err = NULL;
+      continue;
+    }
 
+    if (IS_ACTIVE (self)) {
+      /* do what we were asked to and send the packet back */
+      packet->remote_time = gst_clock_get_time (self->priv->clock);
+
+      /* ignore errors */
+      gst_net_time_packet_send (packet, socket, sender_addr, NULL);
+      g_object_unref (sender_addr);
       g_free (packet);
-
-      continue;
     }
-
-    g_assert_not_reached ();
-
-    /* log errors and keep going */
-  select_error:
-    {
-      GST_DEBUG_OBJECT (self, "select error %d: %s (%d)", ret,
-          g_strerror (errno), errno);
-      continue;
-    }
-  stopped:
-    {
-      GST_DEBUG_OBJECT (self, "shutting down");
-      /* close socket */
-      return NULL;
-    }
-  receive_error:
-    {
-      GST_DEBUG_OBJECT (self, "receive error");
-      continue;
-    }
-
-    g_assert_not_reached ();
-
   }
 
-  g_assert_not_reached ();
+  if (err != NULL)
+    g_error_free (err);
 
+  GST_INFO_OBJECT (self, "time provider thread is stopping");
   return NULL;
 }
 
@@ -290,25 +221,25 @@
     const GValue * value, GParamSpec * pspec)
 {
   GstNetTimeProvider *self = GST_NET_TIME_PROVIDER (object);
-  GstClock **clock_p = &self->clock;
+  GstClock **clock_p = &self->priv->clock;
 
   switch (prop_id) {
     case PROP_PORT:
-      self->port = g_value_get_int (value);
+      self->priv->port = g_value_get_int (value);
       break;
     case PROP_ADDRESS:
-      g_free (self->address);
+      g_free (self->priv->address);
       if (g_value_get_string (value) == NULL)
-        self->address = g_strdup (DEFAULT_ADDRESS);
+        self->priv->address = g_strdup (DEFAULT_ADDRESS);
       else
-        self->address = g_strdup (g_value_get_string (value));
+        self->priv->address = g_strdup (g_value_get_string (value));
       break;
     case PROP_CLOCK:
       gst_object_replace ((GstObject **) clock_p,
           (GstObject *) g_value_get_object (value));
       break;
     case PROP_ACTIVE:
-      g_atomic_int_set (&self->active.active, g_value_get_boolean (value));
+      g_atomic_int_set (&self->priv->active, g_value_get_boolean (value));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -324,13 +255,13 @@
 
   switch (prop_id) {
     case PROP_PORT:
-      g_value_set_int (value, self->port);
+      g_value_set_int (value, self->priv->port);
       break;
     case PROP_ADDRESS:
-      g_value_set_string (value, self->address);
+      g_value_set_string (value, self->priv->address);
       break;
     case PROP_CLOCK:
-      g_value_set_object (value, self->clock);
+      g_value_set_object (value, self->priv->clock);
       break;
     case PROP_ACTIVE:
       g_value_set_boolean (value, IS_ACTIVE (self));
@@ -344,112 +275,86 @@
 static gboolean
 gst_net_time_provider_start (GstNetTimeProvider * self)
 {
-  gint ru;
-  struct sockaddr_in my_addr;
-  socklen_t len;
+  GSocketAddress *socket_addr, *bound_addr;
+  GInetAddress *inet_addr;
+  GSocket *socket;
+  GError *err = NULL;
   int port;
-  gint ret;
-  GError *error;
 
-  if ((ret = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
-    goto no_socket;
-
-  self->priv->sock.fd = ret;
-
-  ru = 1;
-  ret =
-      setsockopt (self->priv->sock.fd, SOL_SOCKET, SO_REUSEADDR, &ru,
-      sizeof (ru));
-  if (ret < 0)
-    goto setsockopt_error;
-
-  memset (&my_addr, 0, sizeof (my_addr));
-  my_addr.sin_family = AF_INET; /* host byte order */
-  my_addr.sin_port = htons ((gint16) self->port);       /* short, network byte order */
-  my_addr.sin_addr.s_addr = INADDR_ANY;
-  if (self->address) {
-    ret = inet_aton (self->address, &my_addr.sin_addr);
-    if (ret == 0)
-      goto invalid_address_error;
+  if (self->priv->address) {
+    inet_addr = g_inet_address_new_from_string (self->priv->address);
+    if (inet_addr == NULL)
+      goto invalid_address;
+  } else {
+    inet_addr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4);
   }
 
-  GST_DEBUG_OBJECT (self, "binding on port %d", self->port);
-  ret =
-      bind (self->priv->sock.fd, (struct sockaddr *) &my_addr,
-      sizeof (my_addr));
-  if (ret < 0)
+  GST_LOG_OBJECT (self, "creating socket");
+  socket = g_socket_new (g_inet_address_get_family (inet_addr),
+      G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err);
+
+  if (err != NULL)
+    goto no_socket;
+
+  GST_DEBUG_OBJECT (self, "binding on port %d", self->priv->port);
+  socket_addr = g_inet_socket_address_new (inet_addr, self->priv->port);
+  g_socket_bind (socket, socket_addr, TRUE, &err);
+  g_object_unref (socket_addr);
+  g_object_unref (inet_addr);
+
+  if (err != NULL)
     goto bind_error;
 
-  len = sizeof (my_addr);
-  ret = getsockname (self->priv->sock.fd, (struct sockaddr *) &my_addr, &len);
-  if (ret < 0)
-    goto getsockname_error;
+  bound_addr = g_socket_get_local_address (socket, NULL);
+  port = g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (bound_addr));
+  GST_DEBUG_OBJECT (self, "bound on UDP port %d", port);
+  g_object_unref (bound_addr);
 
-  port = ntohs (my_addr.sin_port);
-  GST_DEBUG_OBJECT (self, "bound, on port %d", port);
-
-  if (port != self->port) {
-    self->port = port;
-    GST_DEBUG_OBJECT (self, "notifying %d", port);
+  if (port != self->priv->port) {
+    self->priv->port = port;
+    GST_DEBUG_OBJECT (self, "notifying port %d", port);
     g_object_notify (G_OBJECT (self), "port");
   }
 
-  gst_poll_add_fd (self->priv->fdset, &self->priv->sock);
-  gst_poll_fd_ctl_read (self->priv->fdset, &self->priv->sock, TRUE);
+  self->priv->socket = socket;
+  self->priv->cancel = g_cancellable_new ();
 
-  self->thread = g_thread_create (gst_net_time_provider_thread, self, TRUE,
-      &error);
-  if (!self->thread)
+  self->priv->thread = g_thread_try_new ("GstNetTimeProvider",
+      gst_net_time_provider_thread, self, &err);
+
+  if (err != NULL)
     goto no_thread;
 
   return TRUE;
 
   /* ERRORS */
+invalid_address:
+  {
+    GST_ERROR_OBJECT (self, "invalid address: %s", self->priv->address);
+    return FALSE;
+  }
 no_socket:
   {
-    GST_ERROR_OBJECT (self, "socket failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
-    return FALSE;
-  }
-setsockopt_error:
-  {
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    GST_ERROR_OBJECT (self, "setsockopt failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
-    return FALSE;
-  }
-invalid_address_error:
-  {
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    GST_ERROR_OBJECT (self, "invalid network address %s: %s (%d)",
-        self->address, g_strerror (errno), errno);
+    GST_ERROR_OBJECT (self, "could not create socket: %s", err->message);
+    g_error_free (err);
+    g_object_unref (inet_addr);
     return FALSE;
   }
 bind_error:
   {
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    GST_ERROR_OBJECT (self, "bind failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
-    return FALSE;
-  }
-getsockname_error:
-  {
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    GST_ERROR_OBJECT (self, "getsockname failed %d: %s (%d)", ret,
-        g_strerror (errno), errno);
+    GST_ERROR_OBJECT (self, "bind failed: %s", err->message);
+    g_error_free (err);
+    g_object_unref (socket);
     return FALSE;
   }
 no_thread:
   {
-    gst_poll_remove_fd (self->priv->fdset, &self->priv->sock);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-    GST_ERROR_OBJECT (self, "could not create thread: %s", error->message);
-    g_error_free (error);
+    GST_ERROR_OBJECT (self, "could not create thread: %s", err->message);
+    g_error_free (err);
+    g_object_unref (self->priv->socket);
+    self->priv->socket = NULL;
+    g_object_unref (self->priv->cancel);
+    self->priv->cancel = NULL;
     return FALSE;
   }
 }
@@ -457,15 +362,21 @@
 static void
 gst_net_time_provider_stop (GstNetTimeProvider * self)
 {
-  gst_poll_set_flushing (self->priv->fdset, TRUE);
-  g_thread_join (self->thread);
-  self->thread = NULL;
+  g_return_if_fail (self->priv->thread != NULL);
 
-  if (self->priv->sock.fd != -1) {
-    gst_poll_remove_fd (self->priv->fdset, &self->priv->sock);
-    close (self->priv->sock.fd);
-    self->priv->sock.fd = -1;
-  }
+  GST_INFO_OBJECT (self, "stopping..");
+  g_cancellable_cancel (self->priv->cancel);
+
+  g_thread_join (self->priv->thread);
+  self->priv->thread = NULL;
+
+  g_object_unref (self->priv->cancel);
+  self->priv->cancel = NULL;
+
+  g_object_unref (self->priv->socket);
+  self->priv->socket = NULL;
+
+  GST_INFO_OBJECT (self, "stopped");
 }
 
 /**
@@ -490,22 +401,12 @@
   ret = g_object_new (GST_TYPE_NET_TIME_PROVIDER, "clock", clock, "address",
       address, "port", port, NULL);
 
-  if ((ret->priv->fdset = gst_poll_new (TRUE)) == NULL)
-    goto no_fdset;
-
   if (!gst_net_time_provider_start (ret))
     goto failed_start;
 
   /* all systems go, cap'n */
   return ret;
 
-no_fdset:
-  {
-    GST_ERROR_OBJECT (ret, "could not create an fdset: %s (%d)",
-        g_strerror (errno), errno);
-    gst_object_unref (ret);
-    return NULL;
-  }
 failed_start:
   {
     /* already printed a nice error */
diff --git a/libs/gst/net/gstnettimeprovider.h b/libs/gst/net/gstnettimeprovider.h
index c9609e1..81c0fbe 100644
--- a/libs/gst/net/gstnettimeprovider.h
+++ b/libs/gst/net/gstnettimeprovider.h
@@ -1,6 +1,7 @@
 /* GStreamer
  * Copyright (C) 2005 Andy Wingo <wingo@pobox.com>
  *               2006 Joni Valtanen <joni.valtanen@movial.fi>
+ * Copyright (C) 2012 Collabora Ltd. <tim.muller@collabora.co.uk>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -22,32 +23,10 @@
 #ifndef __GST_NET_TIME_PROVIDER_H__
 #define __GST_NET_TIME_PROVIDER_H__
 
-/* to determinate os */
-#include <glib.h>
-
 #include <gst/gst.h>
 
 G_BEGIN_DECLS
 
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-
-#ifdef G_OS_WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#ifndef socklen_t
-#define socklen_t int
-#endif
-#else
-#include <netdb.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#endif
-
-#include <fcntl.h>
-
 #define GST_TYPE_NET_TIME_PROVIDER \
   (gst_net_time_provider_get_type())
 #define GST_NET_TIME_PROVIDER(obj) \
@@ -63,7 +42,6 @@
 typedef struct _GstNetTimeProviderClass GstNetTimeProviderClass;
 typedef struct _GstNetTimeProviderPrivate GstNetTimeProviderPrivate;
 
-
 /**
  * GstNetTimeProvider:
  *
@@ -73,34 +51,20 @@
   GstObject parent;
 
   /*< private >*/
-  gchar *address;
-  int port;
-
-  int sock;
-  int control_sock[2];
-
-  GThread *thread;
-
-  GstClock *clock;
-
-  union {
-    gpointer _gst_reserved1;
-    /* has to be a gint, we use atomic ops here */
-    gint active;
-  } active;
-
-  /*< private >*/
   GstNetTimeProviderPrivate *priv;
 
-  gpointer _gst_reserved[GST_PADDING - 2];
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 struct _GstNetTimeProviderClass {
   GstObjectClass parent_class;
+
+  gpointer _gst_reserved[GST_PADDING];
 };
 
-GType			gst_net_time_provider_get_type	(void);
-GstNetTimeProvider*	gst_net_time_provider_new 	(GstClock *clock,
+GType                   gst_net_time_provider_get_type  (void);
+
+GstNetTimeProvider*     gst_net_time_provider_new       (GstClock *clock,
                                                          const gchar *address,
                                                          gint port);
 
diff --git a/ltmain.sh b/ltmain.sh
old mode 100755
new mode 100644
index fa4b1e1..c7d06c3
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6b
+# libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -32,50 +32,57 @@
 #
 # Provide generalized library-building support services.
 #
-#     --config             show all configuration variables
-#     --debug              enable verbose shell tracing
-# -n, --dry-run            display commands without modifying any files
-#     --features           display basic configuration information and exit
-#     --mode=MODE          use operation mode MODE
-#     --preserve-dup-deps  don't remove duplicate dependency libraries
-#     --quiet, --silent    don't print informational messages
-#     --tag=TAG            use configuration variables from tag TAG
-# -v, --verbose            print informational messages (default)
-#     --version            print version information
-# -h, --help               print short or long help message
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --no-warn            don't display warning messages
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
 #
 # MODE must be one of the following:
 #
-#       clean              remove files from the build directory
-#       compile            compile a source file into a libtool object
-#       execute            automatically set library path, then run a program
-#       finish             complete the installation of libtool libraries
-#       install            install libraries or executables
-#       link               create a library or an executable
-#       uninstall          remove libraries from an installed directory
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
 #
-# MODE-ARGS vary depending on the MODE.
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 #
 # When reporting a bug, please describe a test case to reproduce it and
 # include the following information:
 #
-#       host-triplet:	$host
-#       shell:		$SHELL
-#       compiler:		$LTCC
-#       compiler flags:		$LTCFLAGS
-#       linker:		$LD (gnu? $with_gnu_ld)
-#       $progname:		(GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
-#       automake:		$automake_version
-#       autoconf:		$autoconf_version
+#         host-triplet:	$host
+#         shell:		$SHELL
+#         compiler:		$LTCC
+#         compiler flags:		$LTCFLAGS
+#         linker:		$LD (gnu? $with_gnu_ld)
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1
+#         automake:	$automake_version
+#         autoconf:	$autoconf_version
 #
 # Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
-PROGRAM=ltmain.sh
+PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
+VERSION="2.4.2 Debian-2.4.2-1"
 TIMESTAMP=""
-package_revision=1.3017
+package_revision=1.3337
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +98,15 @@
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
 # NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
 lt_user_locale=
 lt_safe_locale=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,24 +119,28 @@
 	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
 	fi"
 done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
 
 $lt_unset CDPATH
 
 
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
 
 
 
 : ${CP="cp -f"}
-: ${ECHO="echo"}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
-: ${LN_S="ln -s"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -144,6 +160,27 @@
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -158,33 +195,183 @@
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+		s@/\./@/@g
+		t dotsl
+		s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# Generated shell functions inserted here.
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
+
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
 
 # The name of this program:
-# In the unlikely event $progname began with a '-', it would play havoc with
-# func_echo (imagine progname=-n), so we prepend ./ in that case:
 func_dirname_and_basename "$progpath"
 progname=$func_basename_result
-case $progname in
-  -*) progname=./$progname ;;
-esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
@@ -196,7 +383,7 @@
      ;;
   *)
      save_IFS="$IFS"
-     IFS=:
+     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -215,6 +402,15 @@
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +439,7 @@
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -258,18 +454,25 @@
     :
 }
 
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
 # func_error arg...
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -326,9 +529,9 @@
         case $my_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
       done
-      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
 
       save_mkdir_p_IFS="$IFS"; IFS=':'
       for my_dir in $my_dir_list; do
@@ -378,7 +581,7 @@
         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     fi
 
-    $ECHO "X$my_tmpdir" | $Xsed
+    $ECHO "$my_tmpdir"
 }
 
 
@@ -392,7 +595,7 @@
 {
     case $1 in
       *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
       *)
         func_quote_for_eval_unquoted_result="$1" ;;
     esac
@@ -419,7 +622,7 @@
 {
     case $1 in
       *[\\\`\"]*)
-	my_arg=`$ECHO "X$1" | $Xsed \
+	my_arg=`$ECHO "$1" | $SED \
 	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
         my_arg="$1" ;;
@@ -488,15 +691,39 @@
     fi
 }
 
-
-
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
 
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
-    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+	:more
+	/\./!{
+	  N
+	  s/\n# / /
+	  b more
+	}
+	:go
+	/^# '$PROGRAM' (GNU /,/# warranty; / {
         s/^# //
 	s/^# *$//
         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +736,28 @@
 # Echo short help message to standard output and exit.
 func_usage ()
 {
-    $SED -n '/^# Usage:/,/# -h/ {
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
 	s/^# *$//
 	s/\$progname/'$progname'/
 	p
     }' < "$progpath"
-    $ECHO
+    echo
     $ECHO "run \`$progname --help | more' for full usage"
     exit $?
 }
 
-# func_help
-# Echo long help message to standard output and exit.
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+	:print
         s/^# //
 	s/^# *$//
 	s*\$progname*'$progname'*
@@ -534,11 +767,18 @@
 	s*\$LTCFLAGS*'"$LTCFLAGS"'*
 	s*\$LD*'"$LD"'*
 	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
 	p
-     }' < "$progpath"
-    exit $?
+	d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
 }
 
 # func_missing_arg argname
@@ -546,63 +786,106 @@
 # exit_cmd.
 func_missing_arg ()
 {
-    func_error "missing argument for $1"
+    $opt_debug
+
+    func_error "missing argument for $1."
     exit_cmd=exit
 }
 
+
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
 exit_cmd=:
 
 
 
 
 
-# Check that we have a working $ECHO.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell, and then maybe $ECHO will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
-
 magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -636,16 +919,16 @@
 # Display the features supported by this script.
 func_features ()
 {
-    $ECHO "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $ECHO "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $ECHO "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $ECHO "enable static libraries"
+      echo "enable static libraries"
     else
-      $ECHO "disable static libraries"
+      echo "disable static libraries"
     fi
 
     exit $?
@@ -692,133 +975,6 @@
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
-{
-
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
-
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
-    opt="$1"
-    shift
-
-    case $opt in
-      --config)		func_config					;;
-
-      --debug)		preserve_args="$preserve_args $opt"
-			func_echo "enabling shell trace mode"
-			opt_debug='set -x'
-			$opt_debug
-			;;
-
-      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			execute_dlfiles="$execute_dlfiles $1"
-			shift
-			;;
-
-      --dry-run | -n)	opt_dry_run=:					;;
-      --features)       func_features					;;
-      --finish)		mode="finish"					;;
-
-      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			case $1 in
-			  # Valid mode arguments:
-			  clean)	;;
-			  compile)	;;
-			  execute)	;;
-			  finish)	;;
-			  install)	;;
-			  link)		;;
-			  relink)	;;
-			  uninstall)	;;
-
-			  # Catch anything else as an error
-			  *) func_error "invalid argument for $opt"
-			     exit_cmd=exit
-			     break
-			     ;;
-		        esac
-
-			mode="$1"
-			shift
-			;;
-
-      --preserve-dup-deps)
-			opt_duplicate_deps=:				;;
-
-      --quiet|--silent)	preserve_args="$preserve_args $opt"
-			opt_silent=:
-			;;
-
-      --verbose| -v)	preserve_args="$preserve_args $opt"
-			opt_silent=false
-			;;
-
-      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
-			preserve_args="$preserve_args $opt $1"
-			func_enable_tag "$1"	# tagname is set here
-			shift
-			;;
-
-      # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-			func_opt_split "$opt"
-			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
-			shift
-			;;
-
-      -\?|-h)		func_usage					;;
-      --help)		opt_help=:					;;
-      --version)	func_version					;;
-
-      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
-
-      *)		nonopt="$opt"
-			break
-			;;
-    esac
-  done
-
-
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
-      ;;
-  esac
-
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
-
 # func_check_version_match
 # Ensure that we are using m4 macros, and libtool script from the same
 # release of libtool.
@@ -855,38 +1011,219 @@
 }
 
 
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
+
+
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
+    opt="$1"
+    shift
+    case $opt in
+      --debug|-x)	opt_debug='set -x'
+			func_echo "enabling shell trace mode"
+			$opt_debug
+			;;
+      --dry-run|--dryrun|-n)
+			opt_dry_run=:
+			;;
+      --config)
+			opt_config=:
+func_config
+			;;
+      --dlopen|-dlopen)
+			optarg="$1"
+			opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
+			shift
+			;;
+      --preserve-dup-deps)
+			opt_preserve_dup_deps=:
+			;;
+      --features)
+			opt_features=:
+func_features
+			;;
+      --finish)
+			opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+			;;
+      --help)
+			opt_help=:
+			;;
+      --help-all)
+			opt_help_all=:
+opt_help=': help-all'
+			;;
+      --mode)
+			test $# = 0 && func_missing_arg $opt && break
+			optarg="$1"
+			opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+			shift
+			;;
+      --no-silent|--no-quiet)
+			opt_silent=false
+func_append preserve_args " $opt"
+			;;
+      --no-warning|--no-warn)
+			opt_warning=false
+func_append preserve_args " $opt"
+			;;
+      --no-verbose)
+			opt_verbose=false
+func_append preserve_args " $opt"
+			;;
+      --silent|--quiet)
+			opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+			;;
+      --verbose|-v)
+			opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+			;;
+      --tag)
+			test $# = 0 && func_missing_arg $opt && break
+			optarg="$1"
+			opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
+			shift
+			;;
+
+      -\?|-h)		func_usage				;;
+      --help)		func_help				;;
+      --version)	func_version				;;
+
+      # Separate optargs to long options:
+      --*=*)
+			func_split_long_opt "$opt"
+			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+			shift
+			;;
+
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+			func_split_short_opt "$opt"
+			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+			shift
+			;;
+
+      --)		break					;;
+      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
+      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
+    esac
+  done
+
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+      ;;
+  esac
+
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
+
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
+    fi
+
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
+
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
+
+
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
+
+
+
+
 ## ----------- ##
 ##    Main.    ##
 ## ----------- ##
 
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
-
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
-
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
-
-
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
-
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
-
-
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
 # This function is only a basic sanity check; it will hardly flush out
@@ -950,12 +1287,9 @@
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-	func_dirname_and_basename "$1" "" "."
-	func_stripname '' '.exe' "$func_basename_result"
-	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1001,6 +1335,37 @@
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1378,15 @@
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-	CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	func_append_quoted CC_quoted "$arg"
       done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.
       *)
@@ -1030,11 +1397,13 @@
 	    CC_quoted=
 	    for arg in $CC; do
 	      # Double-quote args containing other shell metacharacters.
-	      func_quote_for_eval "$arg"
-	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
+	      func_append_quoted CC_quoted "$arg"
 	    done
+	    CC_expanded=`func_echo_all $CC`
+	    CC_quoted_expanded=`func_echo_all $CC_quoted`
 	    case "$@ " in
-	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
 	      # The compiler in the base compile command matches
 	      # the one in the tagged configuration.
 	      # Assume this is the tagged configuration we want.
@@ -1097,6 +1466,486 @@
     }
 }
 
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
@@ -1137,12 +1986,12 @@
 	  ;;
 
 	-pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
 	  continue
 	  ;;
 
 	-shared | -static | -prefer-pic | -prefer-non-pic)
-	  later="$later $arg"
+	  func_append later " $arg"
 	  continue
 	  ;;
 
@@ -1163,15 +2012,14 @@
 	  save_ifs="$IFS"; IFS=','
 	  for arg in $args; do
 	    IFS="$save_ifs"
-	    func_quote_for_eval "$arg"
-	    lastarg="$lastarg $func_quote_for_eval_result"
+	    func_append_quoted lastarg "$arg"
 	  done
 	  IFS="$save_ifs"
 	  func_stripname ' ' '' "$lastarg"
 	  lastarg=$func_stripname_result
 
 	  # Add the arguments to base_compile.
-	  base_compile="$base_compile $lastarg"
+	  func_append base_compile " $lastarg"
 	  continue
 	  ;;
 
@@ -1187,8 +2035,7 @@
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1213,7 +2060,7 @@
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1288,7 +2135,7 @@
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
     if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
     else
       output_obj=
@@ -1319,17 +2166,16 @@
 	$opt_dry_run || $RM $removelist
 	exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1349,7 +2195,7 @@
 
       if test -z "$output_obj"; then
 	# Place PIC objects in $objdir
-	command="$command -o $lobj"
+	func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command"	\
@@ -1396,11 +2242,11 @@
 	command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
+	func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1445,13 +2291,13 @@
 }
 
 $opt_help || {
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1482,10 +2328,11 @@
 
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
   -shared           do not build a \`.o' file suitable for static linking
   -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
 
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
@@ -1538,7 +2385,7 @@
 
 The following components of INSTALL-COMMAND are treated specially:
 
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
 The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."
@@ -1558,6 +2405,8 @@
 
   -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2435,11 @@
   -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -1619,18 +2473,44 @@
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
-    $ECHO
+    echo
     $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
 }
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	echo
+	func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+	H
+	d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
 
 
 # func_mode_execute arg...
@@ -1643,13 +2523,16 @@
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
 	|| func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
 	  || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2554,7 @@
 	dir="$func_dirname_result"
 
 	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
+	  func_append dir "/$objdir"
 	else
 	  if test ! -f "$dir/$dlname"; then
 	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2595,7 @@
     for file
     do
       case $file in
-      -*) ;;
+      -* | *.la | *.lo ) ;;
       *)
 	# Do a test to see if this is really a libtool program.
 	if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2611,7 @@
 	;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2636,66 @@
       # Display what would be done.
       if test -n "$shlibpath_var"; then
 	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	$ECHO "export $shlibpath_var"
+	echo "export $shlibpath_var"
       fi
       $ECHO "$cmd$args"
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 
 
 # func_mode_finish arg...
 func_mode_finish ()
 {
     $opt_debug
-    libdirs="$nonopt"
+    libs=
+    libdirs=
     admincmds=
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+	func_append libdirs " $opt"
 
+      elif test -f "$opt"; then
+	if func_lalib_unsafe_p "$opt"; then
+	  func_append libs " $opt"
+	else
+	  func_warning "\`$opt' is not a valid libtool archive"
+	fi
+
+      else
+	func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+	    > $tmpdir/tmp-la
+	  mv -f $tmpdir/tmp-la $lib
+	done
+        ${RM}r "$tmpdir"
+      fi
+    fi
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
       for libdir in $libdirs; do
 	if test -n "$finish_cmds"; then
 	  # Do each command in the finish commands.
@@ -1786,7 +2705,7 @@
 	if test -n "$finish_eval"; then
 	  # Do the single finish_eval.
 	  eval cmds=\"$finish_eval\"
-	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+	  $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
 	fi
       done
@@ -1795,53 +2714,55 @@
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
-    $ECHO "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    $ECHO
-    $ECHO "If you ever happen to want to link against installed libraries"
-    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
-    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $ECHO "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $ECHO "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $ECHO "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+	$ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+	echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+	echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+	libdir=LIBDIR
+	eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $ECHO
+	$ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+	$ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    $ECHO "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-	$ECHO "pages."
-	;;
-      *)
-        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+	solaris2.[6789]|solaris2.1[0-9])
+	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	  echo "pages."
+	  ;;
+	*)
+	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
+	  ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -1852,7 +2773,7 @@
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+       case $nonopt in *shtool*) :;; *) false;; esac; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2787,12 @@
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
 
     # We need to accept at least all the BSD install flags.
     dest=
@@ -1876,10 +2802,12 @@
     install_type=
     isdir=no
     stripme=
+    no_mode=:
     for arg
     do
+      arg2=
       if test -n "$dest"; then
-	files="$files $dest"
+	func_append files " $dest"
 	dest=$arg
 	continue
       fi
@@ -1887,10 +2815,9 @@
       case $arg in
       -d) isdir=yes ;;
       -f)
-	case " $install_prog " in
-	*[\\\ /]cp\ *) ;;
-	*) prev=$arg ;;
-	esac
+	if $install_cp; then :; else
+	  prev=$arg
+	fi
 	;;
       -g | -m | -o)
 	prev=$arg
@@ -1904,6 +2831,10 @@
       *)
 	# If the previous option needed an argument, then skip it.
 	if test -n "$prev"; then
+	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
+	    arg2=$install_override_mode
+	    no_mode=false
+	  fi
 	  prev=
 	else
 	  dest=$arg
@@ -1914,7 +2845,11 @@
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+	func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -1923,6 +2858,13 @@
     test -n "$prev" && \
       func_fatal_help "the \`$prev' option requires an argument"
 
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+	func_quote_for_eval "$install_override_mode"
+	func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
     if test -z "$files"; then
       if test -z "$dest"; then
 	func_fatal_help "no file or destination specified"
@@ -1977,10 +2919,13 @@
       case $file in
       *.$libext)
 	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
+	func_append staticlibs " $file"
 	;;
 
       *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
 	# Check to see that this really is a libtool archive.
 	func_lalib_unsafe_p "$file" \
 	  || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2939,23 @@
 	if test "X$destdir" = "X$libdir"; then
 	  case "$current_libdirs " in
 	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  *) func_append current_libdirs " $libdir" ;;
 	  esac
 	else
 	  # Note the libdir as a future libdir.
 	  case "$future_libdirs " in
 	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  *) func_append future_libdirs " $libdir" ;;
 	  esac
 	fi
 
 	func_dirname "$file" "/" ""
 	dir="$func_dirname_result"
-	dir="$dir$objdir"
+	func_append dir "$objdir"
 
 	if test -n "$relink_command"; then
 	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
 	  # Don't allow the user to place us outside of our expected
 	  # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2968,9 @@
 
 	  if test -n "$inst_prefix_dir"; then
 	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
 	  else
-	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
 	  fi
 
 	  func_warning "relinking \`$file'"
@@ -2043,7 +2988,7 @@
 	  test -n "$relink_command" && srcname="$realname"T
 
 	  # Install the shared library and build the symlinks.
-	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
 	      'exit $?'
 	  tstripme="$stripme"
 	  case $host_os in
@@ -2083,7 +3028,7 @@
 	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
 	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
 	;;
 
       *.lo)
@@ -2183,7 +3128,7 @@
 	    if test -f "$lib"; then
 	      func_source "$lib"
 	    fi
-	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
 	    if test -n "$libdir" && test ! -f "$libfile"; then
 	      func_warning "\`$lib' has not been installed in \`$libdir'"
 	      finalize=no
@@ -2202,7 +3147,7 @@
 		file="$func_basename_result"
 	        outputname="$tmpdir/$file"
 	        # Replace the output file specification.
-	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
 	        $opt_silent || {
 	          func_quote_for_expand "$relink_command"
@@ -2221,7 +3166,7 @@
 	    }
 	  else
 	    # Install the binary that we compiled earlier.
-	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
 	  fi
 	fi
 
@@ -2257,11 +3202,13 @@
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-	func_show_eval "$old_striplib $oldlib" 'exit $?'
+	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -2280,7 +3227,7 @@
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3270,22 @@
 extern \"C\" {
 #endif
 
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2332,10 +3295,11 @@
 	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
 	  # Add our own program objects to the symbol list.
-	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	  for progfile in $progfiles; do
-	    func_verbose "extracting global C symbols from \`$progfile'"
-	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
 	  done
 
 	  if test -n "$exclude_expsyms"; then
@@ -2371,7 +3335,7 @@
 	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
 	      eval '$MV "$nlist"T "$nlist"'
 	      case $host in
-	        *cygwin | *mingw* | *cegcc* )
+	        *cygwin* | *mingw* | *cegcc* )
 	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
 	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
 	          ;;
@@ -2384,10 +3348,52 @@
 	  func_verbose "extracting global C symbols from \`$dlprefile'"
 	  func_basename "$dlprefile"
 	  name="$func_basename_result"
-	  $opt_dry_run || {
-	    eval '$ECHO ": $name " >> "$nlist"'
-	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	  }
+          case $host in
+	    *cygwin* | *mingw* | *cegcc* )
+	      # if an import library, we need to obtain dlname
+	      if func_win32_import_lib_p "$dlprefile"; then
+	        func_tr_sh "$dlprefile"
+	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
+	        dlprefile_dlbasename=""
+	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+	          # Use subshell, to avoid clobbering current variable values
+	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+	          if test -n "$dlprefile_dlname" ; then
+	            func_basename "$dlprefile_dlname"
+	            dlprefile_dlbasename="$func_basename_result"
+	          else
+	            # no lafile. user explicitly requested -dlpreopen <import library>.
+	            $sharedlib_from_linklib_cmd "$dlprefile"
+	            dlprefile_dlbasename=$sharedlib_from_linklib_result
+	          fi
+	        fi
+	        $opt_dry_run || {
+	          if test -n "$dlprefile_dlbasename" ; then
+	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+	          else
+	            func_warning "Could not compute DLL name from $name"
+	            eval '$ECHO ": $name " >> "$nlist"'
+	          fi
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+	        }
+	      else # not an import lib
+	        $opt_dry_run || {
+	          eval '$ECHO ": $name " >> "$nlist"'
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	        }
+	      fi
+	    ;;
+	    *)
+	      $opt_dry_run || {
+	        eval '$ECHO ": $name " >> "$nlist"'
+	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	      }
+	    ;;
+          esac
 	done
 
 	$opt_dry_run || {
@@ -2415,36 +3421,19 @@
 	  if test -f "$nlist"S; then
 	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
 	  else
-	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
 	  fi
 
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+	  echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
 typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-	  case $host in
-	  *cygwin* | *mingw* | *cegcc* )
-	    $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-	    lt_dlsym_const= ;;
-	  *osf5*)
-	    echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-	    lt_dlsym_const= ;;
-	  *)
-	    lt_dlsym_const=const ;;
-	  esac
-
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3446,7 @@
 	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
 	    ;;
 	  esac
-	  $ECHO >> "$output_objdir/$my_dlsyms" "\
+	  echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}
 };
 
@@ -2484,7 +3473,7 @@
 	  # linked before any other PIC object.  But we must not use
 	  # pic_flag when linking with -static.  The problem exists in
 	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 	  *-*-hpux*)
 	    pic_flag_for_symtable=" $pic_flag"  ;;
@@ -2500,7 +3489,7 @@
 	for arg in $LTCFLAGS; do
 	  case $arg in
 	  -pie | -fpie | -fPIE) ;;
-	  *) symtab_cflags="$symtab_cflags $arg" ;;
+	  *) func_append symtab_cflags " $arg" ;;
 	  esac
 	done
 
@@ -2515,16 +3504,16 @@
 	case $host in
 	*cygwin* | *mingw* | *cegcc* )
 	  if test -f "$output_objdir/$my_outputname.def"; then
-	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
 	  else
-	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 	  fi
 	  ;;
 	*)
-	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
 	  ;;
 	esac
 	;;
@@ -2538,8 +3527,8 @@
       # really was required.
 
       # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi
 }
 
@@ -2549,6 +3538,7 @@
 # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
   $opt_debug
@@ -2559,9 +3549,11 @@
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
 	$SED -n -e '
 	    1,100{
 		/ I /{
@@ -2590,6 +3582,131 @@
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[	 ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -2598,7 +3715,18 @@
     $opt_debug
     f_ex_an_ar_dir="$1"; shift
     f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+		   'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :
     else
@@ -2669,7 +3797,7 @@
 	    darwin_file=
 	    darwin_files=
 	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
 	      $LIPO -create -output "$darwin_file" $darwin_files
 	    done # $darwin_filelist
 	    $RM -rf unfat-$$
@@ -2684,25 +3812,30 @@
         func_extract_an_archive "$my_xdir" "$my_xabs"
 	;;
       esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
     func_extract_archives_result="$my_oldobjs"
 }
 
 
-
-# func_emit_wrapper_part1 [arg=no]
+# func_emit_wrapper [arg=no]
 #
-# Emit the first part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part1 ()
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
 {
-	func_emit_wrapper_part1_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_part1_arg1=$1
-	fi
+	func_emit_wrapper_arg1=${1-no}
 
 	$ECHO "\
 #! $SHELL
@@ -2718,7 +3851,6 @@
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # Be Bourne compatible
@@ -2749,31 +3881,135 @@
 else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
 "
-	$ECHO "\
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 
   # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4019,13 @@
       esac
     fi
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done
-"
-}
-# end: func_emit_wrapper_part1
-
-# func_emit_wrapper_part2 [arg=no]
-#
-# Emit the second part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part2 ()
-{
-	func_emit_wrapper_part2_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_part2_arg1=$1
-	fi
-
-	$ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4033,7 @@
     fi
     # remove .libs from thisdir
     case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;
     esac
   fi
@@ -2869,6 +4088,18 @@
 
   if test -f \"\$progdir/\$program\"; then"
 
+	# fixup the dll searchpath if we need to.
+	#
+	# Fix the DLL searchpath if we need to.  Do this before prepending
+	# to shlibpath, because on Windows, both are PATH and uninstalled
+	# libraries must come first.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
 	# Export our shlibpath_var if we have one.
 	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
 	  $ECHO "\
@@ -2877,254 +4108,29 @@
 
     # Some systems cannot cope with colon-terminated $shlibpath_var
     # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 
     export $shlibpath_var
 "
 	fi
 
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
 	$ECHO "\
     if test \"\$libtool_execute_magic\" != \"$magic\"; then
       # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2* | *-cegcc*)
-	  $ECHO "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $ECHO "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
+      func_exec_program \${1+\"\$@\"}
     fi
   else
     # The program doesn't exist.
     \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
     \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
     exit 1
   fi
 fi\
 "
 }
-# end: func_emit_wrapper_part2
 
 
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-	func_emit_wrapper_arg1=no
-	if test -n "$1" ; then
-	  func_emit_wrapper_arg1=$1
-	fi
-
-	# split this up so that func_emit_cwrapperexe_src
-	# can call each part independently.
-	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
-	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
-}
-
-
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_tmp1=`cygpath -w "$1"`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=""
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
-
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-        func_to_host_pathlist_tmp2="$1"
-        # Once set for this call, this variable should not be
-        # reassigned. It is used in tha fallback case.
-        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
-          $SED -e 's|^:*||' -e 's|:*$||'`
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
-                  fi
-                fi
-              fi
-              IFS=:
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result" ; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
-            ;;
-        esac
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_pathlist
-
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
 # Must ONLY be called from within func_mode_link because
@@ -3141,31 +4147,23 @@
 
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "$SHELL $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
 */
 EOF
 	    cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
 # include <direct.h>
 # include <process.h>
 # include <io.h>
-# define setmode _setmode
 #else
 # include <unistd.h>
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
-#  define HAVE_SETENV
-#  ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -3177,6 +4175,44 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
 #elif defined(MAXPATHLEN)
@@ -3192,14 +4228,7 @@
 # define S_IXGRP 0
 #endif
 
-#ifdef _MSC_VER
-# define S_IXUSR _S_IEXEC
-# define stat _stat
-# ifndef _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#endif
-
+/* path handling portability macros */
 #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'
@@ -3230,10 +4259,6 @@
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */
 
-#ifdef __CYGWIN__
-# define FOPEN_WB "wb"
-#endif
-
 #ifndef FOPEN_WB
 # define FOPEN_WB "w"
 #endif
@@ -3246,22 +4271,13 @@
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
-    va_list args;
-    va_start (args, fmt);
-    (void) vfprintf (stderr, fmt, args);
-    va_end (args);
-}
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
 #else
-# define LTWRAPPER_DEBUGPRINTF(args)
+static int lt_debug = 0;
 #endif
 
-const char *program_name = NULL;
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 
 void *xmalloc (size_t num);
 char *xstrdup (const char *string);
@@ -3271,41 +4287,27 @@
 int make_executable (const char *path);
 int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_opt_process_env_set (const char *arg);
-void lt_opt_process_env_prepend (const char *arg);
-void lt_opt_process_env_append (const char *arg);
-int lt_split_name_value (const char *arg, char** name, char** value);
 void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);
-
-static const char *script_text_part1 =
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
 EOF
 
-	    func_emit_wrapper_part1 yes |
-	        $SED -e 's/\([\\"]\)/\\\1/g' \
-	             -e 's/^/  "/' -e 's/$/\\n"/'
-	    echo ";"
 	    cat <<EOF
-
-static const char *script_text_part2 =
-EOF
-	    func_emit_wrapper_part2 yes |
-	        $SED -e 's/\([\\"]\)/\\\1/g' \
-	             -e 's/^/  "/' -e 's/$/\\n"/'
-	    echo ";"
-
-	    cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
 	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
 	      cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
 	    else
 	      cat <<"EOF"
@@ -3314,10 +4316,10 @@
 	    fi
 
 	    if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
 	      cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
 	    else
 	      cat <<"EOF"
@@ -3340,24 +4342,10 @@
 	    cat <<"EOF"
 
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 
-static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
-  /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
-  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
-  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 
 int
 main (int argc, char *argv[])
@@ -3374,10 +4362,13 @@
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+  newargz = XMALLOC (char *, argc + 1);
 
-  /* very simple arg parsing; don't want to rely on getopt */
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
   for (i = 1; i < argc; i++)
     {
       if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3391,25 +4382,57 @@
 	      esac
 
 	    cat <<"EOF"
-	  printf ("%s", script_text_part1);
-	  printf ("%s", script_text_part2);
+	  lt_dump_script (stdout);
 	  return 0;
 	}
+      if (strcmp (argv[i], debug_opt) == 0)
+	{
+          lt_debug = 1;
+          continue;
+	}
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+		    "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
     }
+  newargz[++newargc] = NULL;
 
-  newargz = XMALLOC (char *, argc + 1);
+EOF
+	    cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+	    cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
   tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)
-    lt_fatal ("Couldn't find %s", argv[0]);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-			  tmp_pathspec));
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+		  tmp_pathspec);
 
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-			  actual_cwrapper_path));
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+		  actual_cwrapper_path);
   XFREE (tmp_pathspec);
 
-  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 
   /* wrapper name transforms */
@@ -3427,8 +4450,9 @@
   target_name = tmp_pathspec;
   tmp_pathspec = 0;
 
-  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-			  target_name));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(main) libtool target name: %s\n",
+		  target_name);
 EOF
 
 	    cat <<EOF
@@ -3478,80 +4502,19 @@
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
-        {
-          if (argv[i][env_set_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_set_opt_len + 1;
-              lt_opt_process_env_set (p);
-            }
-          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_set (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_set_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
-        {
-          if (argv[i][env_prepend_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_prepend_opt_len + 1;
-              lt_opt_process_env_prepend (p);
-            }
-          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_prepend_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
-        {
-          if (argv[i][env_append_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_append_opt_len + 1;
-              lt_opt_process_env_append (p);
-            }
-          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_append (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_append_opt);
-          continue;
-        }
-      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal ("Unrecognized option in %s namespace: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+		  nonnull (lt_argv_zero));
   for (i = 0; i < newargc; i++)
     {
-      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+		      i, nonnull (newargz[i]));
     }
 
 EOF
@@ -3560,11 +4523,14 @@
 	      mingw*)
 		cat <<"EOF"
   /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
   rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
   if (rval == -1)
     {
       /* failed to start process */
-      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      lt_debugprintf (__FILE__, __LINE__,
+		      "(main) failed to launch target \"%s\": %s\n",
+		      lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3586,7 +4552,7 @@
 {
   void *p = (void *) malloc (num);
   if (!p)
-    lt_fatal ("Memory exhausted");
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 
   return p;
 }
@@ -3620,8 +4586,8 @@
 {
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
-			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3638,8 +4604,8 @@
   int rval = 0;
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
-			  path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3665,8 +4631,8 @@
   int tmp_len;
   char *concat_name;
 
-  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
-			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
 
   if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;
@@ -3719,7 +4685,8 @@
 		{
 		  /* empty path: current directory */
 		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-		    lt_fatal ("getcwd failed");
+		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
 		  tmp_len = strlen (tmp);
 		  concat_name =
 		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3744,7 +4711,8 @@
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3770,8 +4738,9 @@
   int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)
     {
-      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-			      tmp_pathspec));
+      lt_debugprintf (__FILE__, __LINE__,
+		      "checking path component for symlinks: %s\n",
+		      tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)
 	{
 	  if (S_ISLNK (s.st_mode) != 0)
@@ -3793,8 +4762,9 @@
 	}
       else
 	{
-	  char *errstr = strerror (errno);
-	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+	  lt_fatal (__FILE__, __LINE__,
+		    "error accessing file \"%s\": %s",
+		    tmp_pathspec, nonnull (strerror (errno)));
 	}
     }
   XFREE (tmp_pathspec);
@@ -3807,7 +4777,8 @@
   tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)
     {
-      lt_fatal ("Could not follow symlinks for %s", pathspec);
+      lt_fatal (__FILE__, __LINE__,
+		"could not follow symlinks for %s", pathspec);
     }
   return xstrdup (tmp_pathspec);
 #endif
@@ -3833,11 +4804,25 @@
   return str;
 }
 
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
 static void
-lt_error_core (int exit_status, const char *mode,
+lt_error_core (int exit_status, const char *file,
+	       int line, const char *mode,
 	       const char *message, va_list ap)
 {
-  fprintf (stderr, "%s: %s: ", program_name, mode);
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");
 
@@ -3846,20 +4831,32 @@
 }
 
 void
-lt_fatal (const char *message, ...)
+lt_fatal (const char *file, int line, const char *message, ...)
 {
   va_list ap;
   va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);
 }
 
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
 void
 lt_setenv (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
   {
 #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3904,95 +4901,12 @@
   return new_value;
 }
 
-int
-lt_split_name_value (const char *arg, char** name, char** value)
-{
-  const char *p;
-  int len;
-  if (!arg || !*arg)
-    return 1;
-
-  p = strchr (arg, (int)'=');
-
-  if (!p)
-    return 1;
-
-  *value = xstrdup (++p);
-
-  len = strlen (arg) - strlen (*value);
-  *name = XMALLOC (char, len);
-  strncpy (*name, arg, len-1);
-  (*name)[len - 1] = '\0';
-
-  return 0;
-}
-
-void
-lt_opt_process_env_set (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
-    }
-
-  lt_setenv (name, value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_prepend (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 0);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_append (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 1);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
 void
 lt_update_exe_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4011,9 +4925,9 @@
 void
 lt_update_lib_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4023,11 +4937,158 @@
     }
 }
 
+EOF
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
 
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+	new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+	{
+	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+	  size_t length;
+	  unsigned int backslashes;
+	  const char *s;
+	  char *quoted_string;
+	  char *p;
+
+	  length = 0;
+	  backslashes = 0;
+	  if (quote_around)
+	    length++;
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		length += backslashes + 1;
+	      length++;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    length += backslashes + 1;
+
+	  quoted_string = XMALLOC (char, length + 1);
+
+	  p = quoted_string;
+	  backslashes = 0;
+	  if (quote_around)
+	    *p++ = '"';
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		{
+		  unsigned int j;
+		  for (j = backslashes + 1; j > 0; j--)
+		    *p++ = '\\';
+		}
+	      *p++ = c;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    {
+	      unsigned int j;
+	      for (j = backslashes; j > 0; j--)
+		*p++ = '\\';
+	      *p++ = '"';
+	    }
+	  *p = '\0';
+
+	  new_argv[i] = quoted_string;
+	}
+      else
+	new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+		;;
+	    esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+	    func_emit_wrapper yes |
+	      $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
 EOF
 }
 # end: func_emit_cwrapperexe_src
 
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
@@ -4072,6 +5133,7 @@
     new_inherited_linker_flags=
 
     avoid_version=no
+    bindir=
     dlfiles=
     dlprefiles=
     dlself=no
@@ -4164,6 +5226,11 @@
 	esac
 
 	case $prev in
+	bindir)
+	  bindir="$arg"
+	  prev=
+	  continue
+	  ;;
 	dlfiles|dlprefiles)
 	  if test "$preload" = no; then
 	    # Add the symbol object into the linking commands.
@@ -4195,9 +5262,9 @@
 	    ;;
 	  *)
 	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
+	      func_append dlfiles " $arg"
 	    else
-	      dlprefiles="$dlprefiles $arg"
+	      func_append dlprefiles " $arg"
 	    fi
 	    prev=
 	    continue
@@ -4221,7 +5288,7 @@
 	    *-*-darwin*)
 	      case "$deplibs " in
 		*" $qarg.ltframework "*) ;;
-		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		*) func_append deplibs " $qarg.ltframework" # this is fixed later
 		   ;;
 	      esac
 	      ;;
@@ -4240,7 +5307,7 @@
 	    moreargs=
 	    for fil in `cat "$save_arg"`
 	    do
-#	      moreargs="$moreargs $fil"
+#	      func_append moreargs " $fil"
 	      arg=$fil
 	      # A libtool-controlled object.
 
@@ -4269,7 +5336,7 @@
 
 		  if test "$prev" = dlfiles; then
 		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
+		      func_append dlfiles " $pic_object"
 		      prev=
 		      continue
 		    else
@@ -4281,7 +5348,7 @@
 		  # CHECK ME:  I think I busted this.  -Ossama
 		  if test "$prev" = dlprefiles; then
 		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
+		    func_append dlprefiles " $pic_object"
 		    prev=
 		  fi
 
@@ -4351,12 +5418,12 @@
 	  if test "$prev" = rpath; then
 	    case "$rpath " in
 	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
+	    *) func_append rpath " $arg" ;;
 	    esac
 	  else
 	    case "$xrpath " in
 	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
+	    *) func_append xrpath " $arg" ;;
 	    esac
 	  fi
 	  prev=
@@ -4368,28 +5435,28 @@
 	  continue
 	  ;;
 	weak)
-	  weak_libs="$weak_libs $arg"
+	  func_append weak_libs " $arg"
 	  prev=
 	  continue
 	  ;;
 	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $qarg"
 	  prev=
 	  func_append compile_command " $qarg"
 	  func_append finalize_command " $qarg"
 	  continue
 	  ;;
 	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
+	  func_append compiler_flags " $qarg"
 	  prev=
 	  func_append compile_command " $qarg"
 	  func_append finalize_command " $qarg"
 	  continue
 	  ;;
 	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $wl$qarg"
 	  prev=
 	  func_append compile_command " $wl$qarg"
 	  func_append finalize_command " $wl$qarg"
@@ -4425,6 +5492,11 @@
 	continue
 	;;
 
+      -bindir)
+	prev=bindir
+	continue
+	;;
+
       -dlopen)
 	prev=dlfiles
 	continue
@@ -4475,15 +5547,16 @@
 	;;
 
       -L*)
-	func_stripname '-L' '' "$arg"
-	dir=$func_stripname_result
-	if test -z "$dir"; then
+	func_stripname "-L" '' "$arg"
+	if test -z "$func_stripname_result"; then
 	  if test "$#" -gt 0; then
 	    func_fatal_error "require no space between \`-L' and \`$1'"
 	  else
 	    func_fatal_error "need path for \`-L' option"
 	  fi
 	fi
+	func_resolve_sysroot "$func_stripname_result"
+	dir=$func_resolve_sysroot_result
 	# We need an absolute path.
 	case $dir in
 	[\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4495,24 +5568,30 @@
 	  ;;
 	esac
 	case "$deplibs " in
-	*" -L$dir "*) ;;
+	*" -L$dir "* | *" $arg "*)
+	  # Will only happen for absolute or sysroot arguments
+	  ;;
 	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
+	  # Preserve sysroot, but never include relative directories
+	  case $dir in
+	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+	    *) func_append deplibs " -L$dir" ;;
+	  esac
+	  func_append lib_search_path " $dir"
 	  ;;
 	esac
 	case $host in
 	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
 	  *":$dir:"*) ;;
 	  ::) dllsearchpath=$dir;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  *) func_append dllsearchpath ":$dir";;
 	  esac
 	  case :$dllsearchpath: in
 	  *":$testbindir:"*) ;;
 	  ::) dllsearchpath=$testbindir;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  *) func_append dllsearchpath ":$testbindir";;
 	  esac
 	  ;;
 	esac
@@ -4522,7 +5601,7 @@
       -l*)
 	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
 	    # These systems don't actually have a C or math library (as such)
 	    continue
 	    ;;
@@ -4536,7 +5615,7 @@
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
 	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs System.ltframework"
+	    func_append deplibs " System.ltframework"
 	    continue
 	    ;;
 	  *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4556,7 +5635,7 @@
 	   ;;
 	 esac
 	fi
-	deplibs="$deplibs $arg"
+	func_append deplibs " $arg"
 	continue
 	;;
 
@@ -4568,21 +5647,22 @@
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-	compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+	func_append compiler_flags " $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
 	prev=xcompiler
 	continue
 	;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-	compiler_flags="$compiler_flags $arg"
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+	func_append compiler_flags " $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
 	case "$new_inherited_linker_flags " in
 	    *" $arg "*) ;;
-	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+	    * ) func_append new_inherited_linker_flags " $arg" ;;
 	esac
 	continue
 	;;
@@ -4649,13 +5729,17 @@
 	# We need an absolute path.
 	case $dir in
 	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	=*)
+	  func_stripname '=' '' "$dir"
+	  dir=$lt_sysroot$func_stripname_result
+	  ;;
 	*)
 	  func_fatal_error "only absolute run-paths are allowed"
 	  ;;
 	esac
 	case "$xrpath " in
 	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
+	*) func_append xrpath " $dir" ;;
 	esac
 	continue
 	;;
@@ -4708,8 +5792,8 @@
 	for flag in $args; do
 	  IFS="$save_ifs"
           func_quote_for_eval "$flag"
-	  arg="$arg $wl$func_quote_for_eval_result"
-	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
+	  func_append arg " $func_quote_for_eval_result"
+	  func_append compiler_flags " $func_quote_for_eval_result"
 	done
 	IFS="$save_ifs"
 	func_stripname ' ' '' "$arg"
@@ -4724,9 +5808,9 @@
 	for flag in $args; do
 	  IFS="$save_ifs"
           func_quote_for_eval "$flag"
-	  arg="$arg $wl$func_quote_for_eval_result"
-	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-	  linker_flags="$linker_flags $func_quote_for_eval_result"
+	  func_append arg " $wl$func_quote_for_eval_result"
+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
+	  func_append linker_flags " $func_quote_for_eval_result"
 	done
 	IFS="$save_ifs"
 	func_stripname ' ' '' "$arg"
@@ -4754,23 +5838,27 @@
 	arg="$func_quote_for_eval_result"
 	;;
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
 	arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -4782,7 +5870,7 @@
 
       *.$objext)
 	# A standard object.
-	objs="$objs $arg"
+	func_append objs " $arg"
 	;;
 
       *.lo)
@@ -4813,7 +5901,7 @@
 
 	    if test "$prev" = dlfiles; then
 	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
+		func_append dlfiles " $pic_object"
 		prev=
 		continue
 	      else
@@ -4825,7 +5913,7 @@
 	    # CHECK ME:  I think I busted this.  -Ossama
 	    if test "$prev" = dlprefiles; then
 	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
+	      func_append dlprefiles " $pic_object"
 	      prev=
 	    fi
 
@@ -4870,24 +5958,25 @@
 
       *.$libext)
 	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
+	func_append deplibs " $arg"
+	func_append old_deplibs " $arg"
 	continue
 	;;
 
       *.la)
 	# A libtool-controlled library.
 
+	func_resolve_sysroot "$arg"
 	if test "$prev" = dlfiles; then
 	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
+	  func_append dlfiles " $func_resolve_sysroot_result"
 	  prev=
 	elif test "$prev" = dlprefiles; then
 	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
+	  func_append dlprefiles " $func_resolve_sysroot_result"
 	  prev=
 	else
-	  deplibs="$deplibs $arg"
+	  func_append deplibs " $func_resolve_sysroot_result"
 	fi
 	continue
 	;;
@@ -4925,7 +6014,7 @@
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
@@ -4934,6 +6023,8 @@
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -4954,12 +6045,12 @@
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
 	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -4972,9 +6063,9 @@
       if $opt_duplicate_compiler_generated_deps; then
 	for pre_post_dep in $predeps $postdeps; do
 	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
 	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	  func_append pre_post_deps " $pre_post_dep"
 	done
       fi
       pre_post_deps=
@@ -5044,17 +6135,19 @@
 	for lib in $dlprefiles; do
 	  # Ignore non-libtool-libs
 	  dependency_libs=
+	  func_resolve_sysroot "$lib"
 	  case $lib in
-	  *.la)	func_source "$lib" ;;
+	  *.la)	func_source "$func_resolve_sysroot_result" ;;
 	  esac
 
 	  # Collect preopened libtool deplibs, except any this library
 	  # has declared as weak libs
 	  for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+	    func_basename "$deplib"
+            deplib_base=$func_basename_result
 	    case " $weak_libs " in
 	    *" $deplib_base "*) ;;
-	    *) deplibs="$deplibs $deplib" ;;
+	    *) func_append deplibs " $deplib" ;;
 	    esac
 	  done
 	done
@@ -5070,16 +6163,17 @@
 	lib=
 	found=no
 	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 	  if test "$linkmode,$pass" = "prog,link"; then
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
 	  else
-	    compiler_flags="$compiler_flags $deplib"
+	    func_append compiler_flags " $deplib"
 	    if test "$linkmode" = lib ; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
-		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
 		esac
 	    fi
 	  fi
@@ -5164,7 +6258,7 @@
 	    if test "$linkmode" = lib ; then
 		case "$new_inherited_linker_flags " in
 		    *" $deplib "*) ;;
-		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
 		esac
 	    fi
 	  fi
@@ -5177,7 +6271,8 @@
 	    test "$pass" = conv && continue
 	    newdependency_libs="$deplib $newdependency_libs"
 	    func_stripname '-L' '' "$deplib"
-	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  prog)
 	    if test "$pass" = conv; then
@@ -5191,7 +6286,8 @@
 	      finalize_deplibs="$deplib $finalize_deplibs"
 	    fi
 	    func_stripname '-L' '' "$deplib"
-	    newlib_search_path="$newlib_search_path $func_stripname_result"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
 	    ;;
 	  *)
 	    func_warning "\`-L' is ignored for archives/objects"
@@ -5202,17 +6298,21 @@
 	-R*)
 	  if test "$pass" = link; then
 	    func_stripname '-R' '' "$deplib"
-	    dir=$func_stripname_result
+	    func_resolve_sysroot "$func_stripname_result"
+	    dir=$func_resolve_sysroot_result
 	    # Make sure the xrpath contains only unique directories.
 	    case "$xrpath " in
 	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
+	    *) func_append xrpath " $dir" ;;
 	    esac
 	  fi
 	  deplibs="$deplib $deplibs"
 	  continue
 	  ;;
-	*.la) lib="$deplib" ;;
+	*.la)
+	  func_resolve_sysroot "$deplib"
+	  lib=$func_resolve_sysroot_result
+	  ;;
 	*.$libext)
 	  if test "$pass" = conv; then
 	    deplibs="$deplib $deplibs"
@@ -5230,7 +6330,7 @@
 		match_pattern*)
 		  set dummy $deplibs_check_method; shift
 		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
 		    | $EGREP "$match_pattern_regex" > /dev/null; then
 		    valid_a_lib=yes
 		  fi
@@ -5240,15 +6340,15 @@
 		;;
 	      esac
 	      if test "$valid_a_lib" != yes; then
-		$ECHO
+		echo
 		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
-		$ECHO "*** that it is just a static archive that I should not use here."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because the file extensions .$libext of this argument makes me believe"
+		echo "*** that it is just a static archive that I should not use here."
 	      else
-		$ECHO
+		echo
 		$ECHO "*** Warning: Linking the shared library $output against the"
 		$ECHO "*** static library $deplib is not portable!"
 		deplibs="$deplib $deplibs"
@@ -5275,11 +6375,11 @@
 	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
 	      # If there is no dlopen support or we're linking statically,
 	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
+	      func_append newdlprefiles " $deplib"
 	      compile_deplibs="$deplib $compile_deplibs"
 	      finalize_deplibs="$deplib $finalize_deplibs"
 	    else
-	      newdlfiles="$newdlfiles $deplib"
+	      func_append newdlfiles " $deplib"
 	    fi
 	  fi
 	  continue
@@ -5321,20 +6421,20 @@
 
 	# Convert "-framework foo" to "foo.ltframework"
 	if test -n "$inherited_linker_flags"; then
-	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
 	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
 	    case " $new_inherited_linker_flags " in
 	      *" $tmp_inherited_linker_flag "*) ;;
-	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
 	    esac
 	  done
 	fi
-	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	if test "$linkmode,$pass" = "lib,link" ||
 	   test "$linkmode,$pass" = "prog,scan" ||
 	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	  test -n "$dlopen" && func_append dlfiles " $dlopen"
+	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
 	fi
 
 	if test "$pass" = conv; then
@@ -5345,17 +6445,17 @@
 	      func_fatal_error "cannot find name of link library for \`$lib'"
 	    fi
 	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    func_append convenience " $ladir/$objdir/$old_library"
+	    func_append old_convenience " $ladir/$objdir/$old_library"
 	    tmp_libs=
 	    for deplib in $dependency_libs; do
 	      deplibs="$deplib $deplibs"
-	      if $opt_duplicate_deps ; then
+	      if $opt_preserve_dup_deps ; then
 		case "$tmp_libs " in
-		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+		*" $deplib "*) func_append specialdeplibs " $deplib" ;;
 		esac
 	      fi
-	      tmp_libs="$tmp_libs $deplib"
+	      func_append tmp_libs " $deplib"
 	    done
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
@@ -5366,9 +6466,15 @@
 
 	# Get the name of the library we link against.
 	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
+	if test -n "$old_library" &&
+	   { test "$prefer_static_libs" = yes ||
+	     test "$prefer_static_libs,$installed" = "built,no"; }; then
+	  linklib=$old_library
+	else
+	  for l in $old_library $library_names; do
+	    linklib="$l"
+	  done
+	fi
 	if test -z "$linklib"; then
 	  func_fatal_error "cannot find name of link library for \`$lib'"
 	fi
@@ -5385,9 +6491,9 @@
 	    # statically, we need to preload.  We also need to preload any
 	    # dependent libraries so libltdl's deplib preloader doesn't
 	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	    func_append dlprefiles " $lib $dependency_libs"
 	  else
-	    newdlfiles="$newdlfiles $lib"
+	    func_append newdlfiles " $lib"
 	  fi
 	  continue
 	fi # $pass = dlopen
@@ -5409,14 +6515,14 @@
 
 	# Find the relevant object directory and library name.
 	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
 	    func_warning "library \`$lib' was moved."
 	    dir="$ladir"
 	    absdir="$abs_ladir"
 	    libdir="$abs_ladir"
 	  else
-	    dir="$libdir"
-	    absdir="$libdir"
+	    dir="$lt_sysroot$libdir"
+	    absdir="$lt_sysroot$libdir"
 	  fi
 	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
 	else
@@ -5424,12 +6530,12 @@
 	    dir="$ladir"
 	    absdir="$abs_ladir"
 	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
+	    func_append notinst_path " $abs_ladir"
 	  else
 	    dir="$ladir/$objdir"
 	    absdir="$abs_ladir/$objdir"
 	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
+	    func_append notinst_path " $abs_ladir"
 	  fi
 	fi # $installed = yes
 	func_stripname 'lib' '.la' "$laname"
@@ -5440,20 +6546,46 @@
 	  if test -z "$libdir" && test "$linkmode" = prog; then
 	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
 	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	    # Keep a list of preopened convenience libraries to check
-	    # that they are being used correctly in the link pass.
-	    test -z "$libdir" && \
-		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
+	  case "$host" in
+	    # special handling for platforms with PE-DLLs.
+	    *cygwin* | *mingw* | *cegcc* )
+	      # Linker will automatically link against shared library if both
+	      # static and shared are present.  Therefore, ensure we extract
+	      # symbols from the import library if a shared library is present
+	      # (otherwise, the dlopen module name will be incorrect).  We do
+	      # this by putting the import library name into $newdlprefiles.
+	      # We recover the dlopen module name by 'saving' the la file
+	      # name in a special purpose variable, and (later) extracting the
+	      # dlname from the la file.
+	      if test -n "$dlname"; then
+	        func_tr_sh "$dir/$linklib"
+	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+	        func_append newdlprefiles " $dir/$linklib"
+	      else
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      fi
+	    ;;
+	    * )
+	      # Prefer using a static library (so that no silly _DYNAMIC symbols
+	      # are required to link).
+	      if test -n "$old_library"; then
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      # Otherwise, use the dlname, so that lt_dlopen finds it.
+	      elif test -n "$dlname"; then
+	        func_append newdlprefiles " $dir/$dlname"
+	      else
+	        func_append newdlprefiles " $dir/$linklib"
+	      fi
+	    ;;
+	  esac
 	fi # $pass = dlpreopen
 
 	if test -z "$libdir"; then
@@ -5471,7 +6603,7 @@
 
 
 	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
+	  func_append newlib_search_path " $ladir"
 	  deplibs="$lib $deplibs"
 
 	  linkalldeplibs=no
@@ -5484,7 +6616,8 @@
 	  for deplib in $dependency_libs; do
 	    case $deplib in
 	    -L*) func_stripname '-L' '' "$deplib"
-	         newlib_search_path="$newlib_search_path $func_stripname_result"
+	         func_resolve_sysroot "$func_stripname_result"
+	         func_append newlib_search_path " $func_resolve_sysroot_result"
 		 ;;
 	    esac
 	    # Need to link against all dependency_libs?
@@ -5495,12 +6628,12 @@
 	      # or/and link against static libraries
 	      newdependency_libs="$deplib $newdependency_libs"
 	    fi
-	    if $opt_duplicate_deps ; then
+	    if $opt_preserve_dup_deps ; then
 	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
 	      esac
 	    fi
-	    tmp_libs="$tmp_libs $deplib"
+	    func_append tmp_libs " $deplib"
 	  done # for deplib
 	  continue
 	fi # $linkmode = prog...
@@ -5515,7 +6648,7 @@
 	      # Make sure the rpath contains only unique directories.
 	      case "$temp_rpath:" in
 	      *"$absdir:"*) ;;
-	      *) temp_rpath="$temp_rpath$absdir:" ;;
+	      *) func_append temp_rpath "$absdir:" ;;
 	      esac
 	    fi
 
@@ -5527,7 +6660,7 @@
 	    *)
 	      case "$compile_rpath " in
 	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
+	      *) func_append compile_rpath " $absdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5536,7 +6669,7 @@
 	    *)
 	      case "$finalize_rpath " in
 	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
+	      *) func_append finalize_rpath " $libdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5561,12 +6694,12 @@
 	  case $host in
 	  *cygwin* | *mingw* | *cegcc*)
 	      # No point in relinking DLLs because paths are not encoded
-	      notinst_deplibs="$notinst_deplibs $lib"
+	      func_append notinst_deplibs " $lib"
 	      need_relink=no
 	    ;;
 	  *)
 	    if test "$installed" = no; then
-	      notinst_deplibs="$notinst_deplibs $lib"
+	      func_append notinst_deplibs " $lib"
 	      need_relink=yes
 	    fi
 	    ;;
@@ -5583,7 +6716,7 @@
 	    fi
 	  done
 	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-	    $ECHO
+	    echo
 	    if test "$linkmode" = prog; then
 	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
 	    else
@@ -5601,7 +6734,7 @@
 	    *)
 	      case "$compile_rpath " in
 	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
+	      *) func_append compile_rpath " $absdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5610,7 +6743,7 @@
 	    *)
 	      case "$finalize_rpath " in
 	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
+	      *) func_append finalize_rpath " $libdir" ;;
 	      esac
 	      ;;
 	    esac
@@ -5664,7 +6797,7 @@
 	    linklib=$newlib
 	  fi # test -n "$old_archive_from_expsyms_cmds"
 
-	  if test "$linkmode" = prog || test "$mode" != relink; then
+	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
@@ -5686,9 +6819,9 @@
 		      if test "X$dlopenmodule" != "X$lib"; then
 			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
 			if test -z "$old_library" ; then
-			  $ECHO
-			  $ECHO "*** And there doesn't seem to be a static archive available"
-			  $ECHO "*** The link will probably fail, sorry"
+			  echo
+			  echo "*** And there doesn't seem to be a static archive available"
+			  echo "*** The link will probably fail, sorry"
 			else
 			  add="$dir/$old_library"
 			fi
@@ -5715,12 +6848,12 @@
 	         test "$hardcode_direct_absolute" = no; then
 		add="$dir/$linklib"
 	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
+		add_dir="-L$absdir"
 		# Try looking first in the location we're being installed to.
 		if test -n "$inst_prefix_dir"; then
 		  case $libdir in
 		    [\\/]*)
-		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      func_append add_dir " -L$inst_prefix_dir$libdir"
 		      ;;
 		  esac
 		fi
@@ -5742,7 +6875,7 @@
 	    if test -n "$add_shlibpath"; then
 	      case :$compile_shlibpath: in
 	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
 	      esac
 	    fi
 	    if test "$linkmode" = prog; then
@@ -5756,13 +6889,13 @@
 		 test "$hardcode_shlibpath_var" = yes; then
 		case :$finalize_shlibpath: in
 		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		*) func_append finalize_shlibpath "$libdir:" ;;
 		esac
 	      fi
 	    fi
 	  fi
 
-	  if test "$linkmode" = prog || test "$mode" = relink; then
+	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
 	    add_shlibpath=
 	    add_dir=
 	    add=
@@ -5776,7 +6909,7 @@
 	    elif test "$hardcode_shlibpath_var" = yes; then
 	      case :$finalize_shlibpath: in
 	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      *) func_append finalize_shlibpath "$libdir:" ;;
 	      esac
 	      add="-l$name"
 	    elif test "$hardcode_automatic" = yes; then
@@ -5793,7 +6926,7 @@
 	      if test -n "$inst_prefix_dir"; then
 		case $libdir in
 		  [\\/]*)
-		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    func_append add_dir " -L$inst_prefix_dir$libdir"
 		    ;;
 		esac
 	      fi
@@ -5828,21 +6961,21 @@
 
 	    # Just print a warning and add the library to dependency_libs so
 	    # that the program can be linked against the static library.
-	    $ECHO
+	    echo
 	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-	    $ECHO "*** I have the capability to make that library automatically link in when"
-	    $ECHO "*** you link to this library.  But I can only do this if you have a"
-	    $ECHO "*** shared version of the library, which you do not appear to have."
+	    echo "*** I have the capability to make that library automatically link in when"
+	    echo "*** you link to this library.  But I can only do this if you have a"
+	    echo "*** shared version of the library, which you do not appear to have."
 	    if test "$module" = yes; then
-	      $ECHO "*** But as you try to build a module library, libtool will still create "
-	      $ECHO "*** a static module, that should work as long as the dlopening application"
-	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      echo "*** But as you try to build a module library, libtool will still create "
+	      echo "*** a static module, that should work as long as the dlopening application"
+	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
 	      if test -z "$global_symbol_pipe"; then
-		$ECHO
-		$ECHO "*** However, this would only work if libtool was able to extract symbol"
-		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$ECHO "*** not find such a program.  So, this module is probably useless."
-		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+		echo
+		echo "*** However, this would only work if libtool was able to extract symbol"
+		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		echo "*** not find such a program.  So, this module is probably useless."
+		echo "*** \`nm' from GNU binutils and a full rebuild may help."
 	      fi
 	      if test "$build_old_libs" = no; then
 		build_libtool_libs=module
@@ -5870,27 +7003,33 @@
 	           temp_xrpath=$func_stripname_result
 		   case " $xrpath " in
 		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
+		   *) func_append xrpath " $temp_xrpath";;
 		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      *) func_append temp_deplibs " $libdir";;
 	      esac
 	    done
 	    dependency_libs="$temp_deplibs"
 	  fi
 
-	  newlib_search_path="$newlib_search_path $absdir"
+	  func_append newlib_search_path " $absdir"
 	  # Link against this library
 	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
 	  # ... and its dependency_libs
 	  tmp_libs=
 	  for deplib in $dependency_libs; do
 	    newdependency_libs="$deplib $newdependency_libs"
-	    if $opt_duplicate_deps ; then
+	    case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+	    if $opt_preserve_dup_deps ; then
 	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
 	      esac
 	    fi
-	    tmp_libs="$tmp_libs $deplib"
+	    func_append tmp_libs " $func_resolve_sysroot_result"
 	  done
 
 	  if test "$link_all_deplibs" != no; then
@@ -5900,8 +7039,10 @@
 	      case $deplib in
 	      -L*) path="$deplib" ;;
 	      *.la)
+	        func_resolve_sysroot "$deplib"
+	        deplib=$func_resolve_sysroot_result
 	        func_dirname "$deplib" "" "."
-		dir="$func_dirname_result"
+		dir=$func_dirname_result
 		# We need an absolute path.
 		case $dir in
 		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -5928,8 +7069,8 @@
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
 		      path=
 		    fi
 		  fi
@@ -5962,7 +7103,7 @@
 	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
 	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
 	else
-	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	fi
       fi
       dependency_libs="$newdependency_libs"
@@ -5979,7 +7120,7 @@
 	  for dir in $newlib_search_path; do
 	    case "$lib_search_path " in
 	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
+	    *) func_append lib_search_path " $dir" ;;
 	    esac
 	  done
 	  newlib_search_path=
@@ -6037,10 +7178,10 @@
 	    -L*)
 	      case " $tmp_libs " in
 	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      *) func_append tmp_libs " $deplib" ;;
 	      esac
 	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    *) func_append tmp_libs " $deplib" ;;
 	    esac
 	  done
 	  eval $var=\"$tmp_libs\"
@@ -6056,7 +7197,7 @@
 	  ;;
 	esac
 	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
+	  func_append tmp_libs " $i"
 	fi
       done
       dependency_libs=$tmp_libs
@@ -6097,7 +7238,7 @@
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6130,10 +7271,10 @@
 	if test "$deplibs_check_method" != pass_all; then
 	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
 	else
-	  $ECHO
+	  echo
 	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
 	  $ECHO "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
+	  func_append libobjs " $objs"
 	fi
       fi
 
@@ -6192,13 +7333,14 @@
 	  # which has an extra 1 added just for fun
 	  #
 	  case $version_type in
+	  # correct linux to gnu/linux during the next big refactor
 	  darwin|linux|osf|windows|none)
 	    func_arith $number_major + $number_minor
 	    current=$func_arith_result
 	    age="$number_minor"
 	    revision="$number_revision"
 	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
+	  freebsd-aout|freebsd-elf|qnx|sunos)
 	    current="$number_major"
 	    revision="$number_minor"
 	    age="0"
@@ -6311,7 +7453,7 @@
 	  versuffix="$major.$revision"
 	  ;;
 
-	linux)
+	linux) # correct to gnu/linux during the next big refactor
 	  func_arith $current - $age
 	  major=.$func_arith_result
 	  versuffix="$major.$age.$revision"
@@ -6334,7 +7476,7 @@
 	  done
 
 	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
+	  func_append verstring ":${current}.0"
 	  ;;
 
 	qnx)
@@ -6402,10 +7544,10 @@
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
 	# Remove our outputs, but don't remove object files since they
 	# may have been created when compiling PIC objects.
 	removelist=
@@ -6421,7 +7563,7 @@
 		   continue
 		 fi
 	       fi
-	       removelist="$removelist $p"
+	       func_append removelist " $p"
 	       ;;
 	    *) ;;
 	  esac
@@ -6432,27 +7574,28 @@
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+	func_append oldlibs " $output_objdir/$libname.$libext"
 
 	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
       #for path in $notinst_path; do
-      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done
 
       if test -n "$xrpath"; then
 	# If the user specified any rpath flags, then add them.
 	temp_xrpath=
 	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
+	  func_replace_sysroot "$libdir"
+	  func_append temp_xrpath " -R$func_replace_sysroot_result"
 	  case "$finalize_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
 	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6466,7 +7609,7 @@
       for lib in $old_dlfiles; do
 	case " $dlprefiles $dlfiles " in
 	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
+	*) func_append dlfiles " $lib" ;;
 	esac
       done
 
@@ -6476,19 +7619,19 @@
       for lib in $old_dlprefiles; do
 	case "$dlprefiles " in
 	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
+	*) func_append dlprefiles " $lib" ;;
 	esac
       done
 
       if test "$build_libtool_libs" = yes; then
 	if test -n "$rpath"; then
 	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
 	    # these systems don't actually have a c library (as such)!
 	    ;;
 	  *-*-rhapsody* | *-*-darwin1.[012])
 	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs System.ltframework"
+	    func_append deplibs " System.ltframework"
 	    ;;
 	  *-*-netbsd*)
 	    # Don't link with libc until the a.out ld.so is fixed.
@@ -6505,7 +7648,7 @@
 	  *)
 	    # Add libc to deplibs on all other systems if necessary.
 	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
+	      func_append deplibs " -lc"
 	    fi
 	    ;;
 	  esac
@@ -6554,7 +7697,7 @@
 		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		  case " $predeps $postdeps " in
 		  *" $i "*)
-		    newdeplibs="$newdeplibs $i"
+		    func_append newdeplibs " $i"
 		    i=""
 		    ;;
 		  esac
@@ -6565,21 +7708,21 @@
 		  set dummy $deplib_matches; shift
 		  deplib_match=$1
 		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
+		    func_append newdeplibs " $i"
 		  else
 		    droppeddeps=yes
-		    $ECHO
+		    echo
 		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		    $ECHO "*** I have the capability to make that library automatically link in when"
-		    $ECHO "*** you link to this library.  But I can only do this if you have a"
-		    $ECHO "*** shared version of the library, which I believe you do not have"
-		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+		    echo "*** I have the capability to make that library automatically link in when"
+		    echo "*** you link to this library.  But I can only do this if you have a"
+		    echo "*** shared version of the library, which I believe you do not have"
+		    echo "*** because a test_compile did reveal that the linker did not use it for"
+		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
 		  fi
 		fi
 		;;
 	      *)
-		newdeplibs="$newdeplibs $i"
+		func_append newdeplibs " $i"
 		;;
 	      esac
 	    done
@@ -6597,7 +7740,7 @@
 		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		    case " $predeps $postdeps " in
 		    *" $i "*)
-		      newdeplibs="$newdeplibs $i"
+		      func_append newdeplibs " $i"
 		      i=""
 		      ;;
 		    esac
@@ -6608,29 +7751,29 @@
 		    set dummy $deplib_matches; shift
 		    deplib_match=$1
 		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$newdeplibs $i"
+		      func_append newdeplibs " $i"
 		    else
 		      droppeddeps=yes
-		      $ECHO
+		      echo
 		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		      $ECHO "*** I have the capability to make that library automatically link in when"
-		      $ECHO "*** you link to this library.  But I can only do this if you have a"
-		      $ECHO "*** shared version of the library, which you do not appear to have"
-		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+		      echo "*** I have the capability to make that library automatically link in when"
+		      echo "*** you link to this library.  But I can only do this if you have a"
+		      echo "*** shared version of the library, which you do not appear to have"
+		      echo "*** because a test_compile did reveal that the linker did not use this one"
+		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
 		    fi
 		  fi
 		else
 		  droppeddeps=yes
-		  $ECHO
+		  echo
 		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $ECHO "*** make it link in!  You will probably need to install it or some"
-		  $ECHO "*** library that it depends on before this library will be fully"
-		  $ECHO "*** functional.  Installing it before continuing would be even better."
+		  echo "*** make it link in!  You will probably need to install it or some"
+		  echo "*** library that it depends on before this library will be fully"
+		  echo "*** functional.  Installing it before continuing would be even better."
 		fi
 		;;
 	      *)
-		newdeplibs="$newdeplibs $i"
+		func_append newdeplibs " $i"
 		;;
 	      esac
 	    done
@@ -6647,15 +7790,27 @@
 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
+		  func_append newdeplibs " $a_deplib"
 		  a_deplib=""
 		  ;;
 		esac
 	      fi
 	      if test -n "$a_deplib" ; then
 		libname=`eval "\\$ECHO \"$libname_spec\""`
+		if test -n "$file_magic_glob"; then
+		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+		else
+		  libnameglob=$libname
+		fi
+		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
 		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  if test "$want_nocaseglob" = yes; then
+		    shopt -s nocaseglob
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		    $nocaseglob
+		  else
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		  fi
 		  for potent_lib in $potential_libs; do
 		      # Follow soft links.
 		      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6672,13 +7827,13 @@
 			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
 			case $potliblink in
 			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
 			esac
 		      done
 		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
 			 $SED -e 10q |
 			 $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
+			func_append newdeplibs " $a_deplib"
 			a_deplib=""
 			break 2
 		      fi
@@ -6687,12 +7842,12 @@
 	      fi
 	      if test -n "$a_deplib" ; then
 		droppeddeps=yes
-		$ECHO
+		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because I did check the linker path looking for a file starting"
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
 		if test -z "$potlib" ; then
 		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
 		else
@@ -6703,7 +7858,7 @@
 	      ;;
 	    *)
 	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
+	      func_append newdeplibs " $a_deplib"
 	      ;;
 	    esac
 	  done # Gone through all deplibs.
@@ -6719,7 +7874,7 @@
 	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 		case " $predeps $postdeps " in
 		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
+		  func_append newdeplibs " $a_deplib"
 		  a_deplib=""
 		  ;;
 		esac
@@ -6730,9 +7885,9 @@
 		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
 		  for potent_lib in $potential_libs; do
 		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
 		       $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
+		      func_append newdeplibs " $a_deplib"
 		      a_deplib=""
 		      break 2
 		    fi
@@ -6741,12 +7896,12 @@
 	      fi
 	      if test -n "$a_deplib" ; then
 		droppeddeps=yes
-		$ECHO
+		echo
 		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		$ECHO "*** I have the capability to make that library automatically link in when"
-		$ECHO "*** you link to this library.  But I can only do this if you have a"
-		$ECHO "*** shared version of the library, which you do not appear to have"
-		$ECHO "*** because I did check the linker path looking for a file starting"
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
 		if test -z "$potlib" ; then
 		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
 		else
@@ -6757,32 +7912,32 @@
 	      ;;
 	    *)
 	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
+	      func_append newdeplibs " $a_deplib"
 	      ;;
 	    esac
 	  done # Gone through all deplibs.
 	  ;;
 	none | unknown | *)
 	  newdeplibs=""
-	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
 	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
 	    for i in $predeps $postdeps ; do
 	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
 	    done
 	  fi
-	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
-	     $GREP . >/dev/null; then
-	    $ECHO
+	  case $tmp_deplibs in
+	  *[!\	\ ]*)
+	    echo
 	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+	      echo "*** Warning: inter-library dependencies are not supported in this platform."
 	    else
-	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+	      echo "*** Warning: inter-library dependencies are not known to be supported."
 	    fi
-	    $ECHO "*** All declared inter-library dependencies are being dropped."
+	    echo "*** All declared inter-library dependencies are being dropped."
 	    droppeddeps=yes
-	  fi
+	    ;;
+	  esac
 	  ;;
 	esac
 	versuffix=$versuffix_save
@@ -6794,23 +7949,23 @@
 	case $host in
 	*-*-rhapsody* | *-*-darwin1.[012])
 	  # On Rhapsody replace the C library with the System framework
-	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
 	  ;;
 	esac
 
 	if test "$droppeddeps" = yes; then
 	  if test "$module" = yes; then
-	    $ECHO
-	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+	    echo
+	    echo "*** Warning: libtool could not satisfy all declared inter-library"
 	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-	    $ECHO "*** a static module, that should work as long as the dlopening"
-	    $ECHO "*** application is linked with the -dlopen flag."
+	    echo "*** a static module, that should work as long as the dlopening"
+	    echo "*** application is linked with the -dlopen flag."
 	    if test -z "$global_symbol_pipe"; then
-	      $ECHO
-	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
-	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      $ECHO "*** not find such a program.  So, this module is probably useless."
-	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+	      echo
+	      echo "*** However, this would only work if libtool was able to extract symbol"
+	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      echo "*** not find such a program.  So, this module is probably useless."
+	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
 	    fi
 	    if test "$build_old_libs" = no; then
 	      oldlibs="$output_objdir/$libname.$libext"
@@ -6820,16 +7975,16 @@
 	      build_libtool_libs=no
 	    fi
 	  else
-	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
-	    $ECHO "*** automatically added whenever a program is linked with this library"
-	    $ECHO "*** or is declared to -dlopen it."
+	    echo "*** The inter-library dependencies that have been dropped here will be"
+	    echo "*** automatically added whenever a program is linked with this library"
+	    echo "*** or is declared to -dlopen it."
 
 	    if test "$allow_undefined" = no; then
-	      $ECHO
-	      $ECHO "*** Since this library must not contain undefined symbols,"
-	      $ECHO "*** because either the platform does not support them or"
-	      $ECHO "*** it was explicitly requested with -no-undefined,"
-	      $ECHO "*** libtool will only create a static version of it."
+	      echo
+	      echo "*** Since this library must not contain undefined symbols,"
+	      echo "*** because either the platform does not support them or"
+	      echo "*** it was explicitly requested with -no-undefined,"
+	      echo "*** libtool will only create a static version of it."
 	      if test "$build_old_libs" = no; then
 		oldlibs="$output_objdir/$libname.$libext"
 		build_libtool_libs=module
@@ -6846,9 +8001,9 @@
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
 	*-*-darwin*)
-	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	  ;;
       esac
 
@@ -6861,7 +8016,7 @@
 	*)
 	  case " $deplibs " in
 	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
+	    func_append new_libs " -L$path/$objdir" ;;
 	  esac
 	  ;;
 	esac
@@ -6871,10 +8026,10 @@
 	-L*)
 	  case " $new_libs " in
 	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
+	  *) func_append new_libs " $deplib" ;;
 	  esac
 	  ;;
-	*) new_libs="$new_libs $deplib" ;;
+	*) func_append new_libs " $deplib" ;;
 	esac
       done
       deplibs="$new_libs"
@@ -6886,15 +8041,22 @@
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
+	# Remove ${wl} instances when linking with ld.
+	# FIXME: should test the right _cmds variable.
+	case $archive_cmds in
+	  *\$LD\ *) wl= ;;
+        esac
 	if test "$hardcode_into_libs" = yes; then
 	  # Hardcode the library paths
 	  hardcode_libdirs=
 	  dep_rpath=
 	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
 	  for libdir in $rpath; do
 	    if test -n "$hardcode_libdir_flag_spec"; then
 	      if test -n "$hardcode_libdir_separator"; then
+		func_replace_sysroot "$libdir"
+		libdir=$func_replace_sysroot_result
 		if test -z "$hardcode_libdirs"; then
 		  hardcode_libdirs="$libdir"
 		else
@@ -6903,18 +8065,18 @@
 		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		    ;;
 		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		    ;;
 		  esac
 		fi
 	      else
 		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
+		func_append dep_rpath " $flag"
 	      fi
 	    elif test -n "$runpath_var"; then
 	      case "$perm_rpath " in
 	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      *) func_append perm_rpath " $libdir" ;;
 	      esac
 	    fi
 	  done
@@ -6922,17 +8084,13 @@
 	  if test -n "$hardcode_libdir_separator" &&
 	     test -n "$hardcode_libdirs"; then
 	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
+	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
 	  fi
 	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
 	    # We should set the runpath_var.
 	    rpath=
 	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
+	      func_append rpath "$dir:"
 	    done
 	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
 	  fi
@@ -6940,7 +8098,7 @@
 	fi
 
 	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
 	if test -n "$shlibpath"; then
 	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
 	fi
@@ -6966,18 +8124,18 @@
 	linknames=
 	for link
 	do
-	  linknames="$linknames $link"
+	  func_append linknames " $link"
 	done
 
 	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
 	test "X$libobjs" = "X " && libobjs=
 
 	delfiles=
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
 	  export_symbols="$output_objdir/$libname.uexp"
-	  delfiles="$delfiles $export_symbols"
+	  func_append delfiles " $export_symbols"
 	fi
 
 	orig_export_symbols=
@@ -7008,14 +8166,46 @@
 	    $opt_dry_run || $RM $export_symbols
 	    cmds=$export_symbols_cmds
 	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
+	    for cmd1 in $cmds; do
 	      IFS="$save_ifs"
-	      eval cmd=\"$cmd\"
-	      func_len " $cmd"
-	      len=$func_len_result
-	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	      # Take the normal branch if the nm_file_list_spec branch
+	      # doesn't work or if tool conversion is not needed.
+	      case $nm_file_list_spec~$to_tool_file_cmd in
+		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+		  try_normal_branch=yes
+		  eval cmd=\"$cmd1\"
+		  func_len " $cmd"
+		  len=$func_len_result
+		  ;;
+		*)
+		  try_normal_branch=no
+		  ;;
+	      esac
+	      if test "$try_normal_branch" = yes \
+		 && { test "$len" -lt "$max_cmd_len" \
+		      || test "$max_cmd_len" -le -1; }
+	      then
 		func_show_eval "$cmd" 'exit $?'
 		skipped_export=false
+	      elif test -n "$nm_file_list_spec"; then
+		func_basename "$output"
+		output_la=$func_basename_result
+		save_libobjs=$libobjs
+		save_output=$output
+		output=${output_objdir}/${output_la}.nm
+		func_to_tool_file "$output"
+		libobjs=$nm_file_list_spec$func_to_tool_file_result
+		func_append delfiles " $output"
+		func_verbose "creating $NM input file list: $output"
+		for obj in $save_libobjs; do
+		  func_to_tool_file "$obj"
+		  $ECHO "$func_to_tool_file_result"
+		done > "$output"
+		eval cmd=\"$cmd1\"
+		func_show_eval "$cmd" 'exit $?'
+		output=$save_output
+		libobjs=$save_libobjs
+		skipped_export=false
 	      else
 		# The command line is too long to execute in one step.
 		func_verbose "using reloadable object file for export list..."
@@ -7036,7 +8226,7 @@
 	if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	  tmp_export_symbols="$export_symbols"
 	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	fi
 
 	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7048,7 +8238,7 @@
 	  # global variables. join(1) would be nice here, but unfortunately
 	  # isn't a blessed tool.
 	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
 	  export_symbols=$output_objdir/$libname.def
 	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 	fi
@@ -7058,7 +8248,7 @@
 	  case " $convenience " in
 	  *" $test_deplib "*) ;;
 	  *)
-	    tmp_deplibs="$tmp_deplibs $test_deplib"
+	    func_append tmp_deplibs " $test_deplib"
 	    ;;
 	  esac
 	done
@@ -7078,21 +8268,21 @@
 	    test "X$libobjs" = "X " && libobjs=
 	  else
 	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
+	    func_append generated " $gentop"
 
 	    func_extract_archives $gentop $convenience
-	    libobjs="$libobjs $func_extract_archives_result"
+	    func_append libobjs " $func_extract_archives_result"
 	    test "X$libobjs" = "X " && libobjs=
 	  fi
 	fi
 
 	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
 	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
+	  func_append linker_flags " $flag"
 	fi
 
 	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
+	if test "$opt_mode" = relink; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
 	fi
 
@@ -7137,7 +8327,8 @@
 	    save_libobjs=$libobjs
 	  fi
 	  save_output=$output
-	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+	  func_basename "$output"
+	  output_la=$func_basename_result
 
 	  # Clear the reloadable object creation command queue and
 	  # initialize k to one.
@@ -7150,13 +8341,16 @@
 	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
 	    output=${output_objdir}/${output_la}.lnkscript
 	    func_verbose "creating GNU ld script: $output"
-	    $ECHO 'INPUT (' > $output
+	    echo 'INPUT (' > $output
 	    for obj in $save_libobjs
 	    do
-	      $ECHO "$obj" >> $output
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
 	    done
-	    $ECHO ')' >> $output
-	    delfiles="$delfiles $output"
+	    echo ')' >> $output
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$func_to_tool_file_result
 	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
 	    output=${output_objdir}/${output_la}.lnk
 	    func_verbose "creating linker input file list: $output"
@@ -7170,10 +8364,12 @@
 	    fi
 	    for obj
 	    do
-	      $ECHO "$obj" >> $output
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
 	    done
-	    delfiles="$delfiles $output"
-	    output=$firstobj\"$file_list_spec$output\"
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
 	  else
 	    if test -n "$save_libobjs"; then
 	      func_verbose "creating reloadable object files..."
@@ -7197,17 +8393,19 @@
 		  # command to the queue.
 		  if test "$k" -eq 1 ; then
 		    # The first file doesn't have a previous command to add.
-		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+		    reload_objs=$objlist
+		    eval concat_cmds=\"$reload_cmds\"
 		  else
 		    # All subsequent reloadable object files will link in
 		    # the last one created.
-		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+		    reload_objs="$objlist $last_robj"
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
 		  fi
 		  last_robj=$output_objdir/$output_la-${k}.$objext
 		  func_arith $k + 1
 		  k=$func_arith_result
 		  output=$output_objdir/$output_la-${k}.$objext
-		  objlist=$obj
+		  objlist=" $obj"
 		  func_len " $last_robj"
 		  func_arith $len0 + $func_len_result
 		  len=$func_arith_result
@@ -7217,11 +8415,12 @@
 	      # reloadable object file.  All subsequent reloadable object
 	      # files will link in the last one created.
 	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+	      reload_objs="$objlist $last_robj"
+	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
 	      if test -n "$last_robj"; then
 	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
 	      fi
-	      delfiles="$delfiles $output"
+	      func_append delfiles " $output"
 
 	    else
 	      output=
@@ -7255,7 +8454,7 @@
 		lt_exit=$?
 
 		# Restore the uninstalled library and exit
-		if test "$mode" = relink; then
+		if test "$opt_mode" = relink; then
 		  ( cd "$output_objdir" && \
 		    $RM "${realname}T" && \
 		    $MV "${realname}U" "$realname" )
@@ -7276,7 +8475,7 @@
 	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
 	      tmp_export_symbols="$export_symbols"
 	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
 	    fi
 
 	    if test -n "$orig_export_symbols"; then
@@ -7288,7 +8487,7 @@
 	      # global variables. join(1) would be nice here, but unfortunately
 	      # isn't a blessed tool.
 	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
 	      export_symbols=$output_objdir/$libname.def
 	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
 	    fi
@@ -7329,10 +8528,10 @@
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
-	  libobjs="$libobjs $func_extract_archives_result"
+	  func_append libobjs " $func_extract_archives_result"
 	  test "X$libobjs" = "X " && libobjs=
 	fi
 
@@ -7348,7 +8547,7 @@
 	    lt_exit=$?
 
 	    # Restore the uninstalled library and exit
-	    if test "$mode" = relink; then
+	    if test "$opt_mode" = relink; then
 	      ( cd "$output_objdir" && \
 	        $RM "${realname}T" && \
 		$MV "${realname}U" "$realname" )
@@ -7360,7 +8559,7 @@
 	IFS="$save_ifs"
 
 	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
+	if test "$opt_mode" = relink; then
 	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
 	  if test -n "$convenience"; then
@@ -7441,18 +8640,21 @@
       if test -n "$convenience"; then
 	if test -n "$whole_archive_flag_spec"; then
 	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
 	else
 	  gentop="$output_objdir/${obj}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $convenience
 	  reload_conv_objs="$reload_objs $func_extract_archives_result"
 	fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
       output="$obj"
       func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7512,8 +8714,8 @@
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
 	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
 	;;
       esac
 
@@ -7524,14 +8726,14 @@
 	if test "$tagname" = CXX ; then
 	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
 	    10.[0123])
-	      compile_command="$compile_command ${wl}-bind_at_load"
-	      finalize_command="$finalize_command ${wl}-bind_at_load"
+	      func_append compile_command " ${wl}-bind_at_load"
+	      func_append finalize_command " ${wl}-bind_at_load"
 	    ;;
 	  esac
 	fi
 	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
 	;;
       esac
 
@@ -7545,7 +8747,7 @@
 	*)
 	  case " $compile_deplibs " in
 	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
+	    func_append new_libs " -L$path/$objdir" ;;
 	  esac
 	  ;;
 	esac
@@ -7555,17 +8757,17 @@
 	-L*)
 	  case " $new_libs " in
 	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
+	  *) func_append new_libs " $deplib" ;;
 	  esac
 	  ;;
-	*) new_libs="$new_libs $deplib" ;;
+	*) func_append new_libs " $deplib" ;;
 	esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
 	# If the user specified any rpath flags, then add them.
@@ -7573,7 +8775,7 @@
 	  # This is the magic to use -rpath.
 	  case "$finalize_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  *) func_append finalize_rpath " $libdir" ;;
 	  esac
 	done
       fi
@@ -7592,18 +8794,18 @@
 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		;;
 	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		;;
 	      esac
 	    fi
 	  else
 	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
+	    func_append rpath " $flag"
 	  fi
 	elif test -n "$runpath_var"; then
 	  case "$perm_rpath " in
 	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  *) func_append perm_rpath " $libdir" ;;
 	  esac
 	fi
 	case $host in
@@ -7612,12 +8814,12 @@
 	  case :$dllsearchpath: in
 	  *":$libdir:"*) ;;
 	  ::) dllsearchpath=$libdir;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  *) func_append dllsearchpath ":$libdir";;
 	  esac
 	  case :$dllsearchpath: in
 	  *":$testbindir:"*) ;;
 	  ::) dllsearchpath=$testbindir;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  *) func_append dllsearchpath ":$testbindir";;
 	  esac
 	  ;;
 	esac
@@ -7643,18 +8845,18 @@
 	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
 		;;
 	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
 		;;
 	      esac
 	    fi
 	  else
 	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
+	    func_append rpath " $flag"
 	  fi
 	elif test -n "$runpath_var"; then
 	  case "$finalize_perm_rpath " in
 	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  *) func_append finalize_perm_rpath " $libdir" ;;
 	  esac
 	fi
       done
@@ -7668,8 +8870,8 @@
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
 	# Transform all the library objects into standard objects.
-	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7681,15 +8883,15 @@
 
       wrappers_required=yes
       case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
       *cygwin* | *mingw* )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
         ;;
-      *cegcc)
-        # Disable wrappers for cegcc, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
       *)
         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
           wrappers_required=no
@@ -7698,13 +8900,19 @@
       esac
       if test "$wrappers_required" = no; then
 	# Replace the output file specification.
-	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 	link_command="$compile_command$compile_rpath"
 
 	# We have no uninstalled library dependencies, so finalize right now.
 	exit_status=0
 	func_show_eval "$link_command" 'exit_status=$?'
 
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
 	# Delete the generated files.
 	if test -f "$output_objdir/${outputname}S.${objext}"; then
 	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7727,7 +8935,7 @@
 	  # We should set the runpath_var.
 	  rpath=
 	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
+	    func_append rpath "$dir:"
 	  done
 	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 	fi
@@ -7735,7 +8943,7 @@
 	  # We should set the runpath_var.
 	  rpath=
 	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
+	    func_append rpath "$dir:"
 	  done
 	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
 	fi
@@ -7745,11 +8953,18 @@
 	# We don't need to create a wrapper script.
 	link_command="$compile_var$compile_command$compile_rpath"
 	# Replace the output file specification.
-	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
 	# Delete the old output file.
 	$opt_dry_run || $RM $output
 	# Link the executable and exit
 	func_show_eval "$link_command" 'exit $?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
 	exit $EXIT_SUCCESS
       fi
 
@@ -7764,7 +8979,7 @@
 	if test "$fast_install" != no; then
 	  link_command="$finalize_var$compile_command$finalize_rpath"
 	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
 	  else
 	    # fast_install is set to needless
 	    relink_command=
@@ -7776,13 +8991,19 @@
       fi
 
       # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
       # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+	func_to_tool_file "$output_objdir/$outputname"
+	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -7800,18 +9021,7 @@
 	  fi
 	done
 	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-	case $progpath in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-	esac
-	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -7891,7 +9101,7 @@
 	else
 	  oldobjs="$old_deplibs $non_pic_objects"
 	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    oldobjs="$oldobjs $symfileobj"
+	    func_append oldobjs " $symfileobj"
 	  fi
 	fi
 	addlibs="$old_convenience"
@@ -7899,10 +9109,10 @@
 
       if test -n "$addlibs"; then
 	gentop="$output_objdir/${outputname}x"
-	generated="$generated $gentop"
+	func_append generated " $gentop"
 
 	func_extract_archives $gentop $addlibs
-	oldobjs="$oldobjs $func_extract_archives_result"
+	func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -7913,10 +9123,10 @@
 	# Add any objects from preloaded convenience libraries
 	if test -n "$dlprefiles"; then
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 
 	  func_extract_archives $gentop $dlprefiles
-	  oldobjs="$oldobjs $func_extract_archives_result"
+	  func_append oldobjs " $func_extract_archives_result"
 	fi
 
 	# POSIX demands no paths to be encoded in archives.  We have
@@ -7932,9 +9142,9 @@
 	    done | sort | sort -uc >/dev/null 2>&1); then
 	  :
 	else
-	  $ECHO "copying selected object files to avoid basename conflicts..."
+	  echo "copying selected object files to avoid basename conflicts..."
 	  gentop="$output_objdir/${outputname}x"
-	  generated="$generated $gentop"
+	  func_append generated " $gentop"
 	  func_mkdir_p "$gentop"
 	  save_oldobjs=$oldobjs
 	  oldobjs=
@@ -7958,18 +9168,30 @@
 		esac
 	      done
 	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      oldobjs="$oldobjs $gentop/$newobj"
+	      func_append oldobjs " $gentop/$newobj"
 	      ;;
-	    *) oldobjs="$oldobjs $obj" ;;
+	    *) func_append oldobjs " $obj" ;;
 	    esac
 	  done
 	fi
+	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+	tool_oldlib=$func_to_tool_file_result
 	eval cmds=\"$old_archive_cmds\"
 
 	func_len " $cmds"
 	len=$func_len_result
 	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
 	  cmds=$old_archive_cmds
+	elif test -n "$archiver_list_spec"; then
+	  func_verbose "using command file archive linking..."
+	  for obj in $oldobjs
+	  do
+	    func_to_tool_file "$obj"
+	    $ECHO "$func_to_tool_file_result"
+	  done > $output_objdir/$libname.libcmd
+	  func_to_tool_file "$output_objdir/$libname.libcmd"
+	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+	  cmds=$old_archive_cmds
 	else
 	  # the command line is too long to link in one step, link in parts
 	  func_verbose "using piecewise archive linking..."
@@ -8043,7 +9265,7 @@
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
 	relink_command=
       fi
@@ -8063,12 +9285,23 @@
 	      *.la)
 		func_basename "$deplib"
 		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		func_resolve_sysroot "$deplib"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-		newdependency_libs="$newdependency_libs $libdir/$name"
+		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
 		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      -L*)
+		func_stripname -L '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -L$func_replace_sysroot_result"
+		;;
+	      -R*)
+		func_stripname -R '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -R$func_replace_sysroot_result"
+		;;
+	      *) func_append newdependency_libs " $deplib" ;;
 	      esac
 	    done
 	    dependency_libs="$newdependency_libs"
@@ -8082,9 +9315,9 @@
 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		newdlfiles="$newdlfiles $libdir/$name"
+		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
-	      *) newdlfiles="$newdlfiles $lib" ;;
+	      *) func_append newdlfiles " $lib" ;;
 	      esac
 	    done
 	    dlfiles="$newdlfiles"
@@ -8101,7 +9334,7 @@
 		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		newdlprefiles="$newdlprefiles $libdir/$name"
+		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
 		;;
 	      esac
 	    done
@@ -8113,7 +9346,7 @@
 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
-	      newdlfiles="$newdlfiles $abs"
+	      func_append newdlfiles " $abs"
 	    done
 	    dlfiles="$newdlfiles"
 	    newdlprefiles=
@@ -8122,15 +9355,33 @@
 		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
 		*) abs=`pwd`"/$lib" ;;
 	      esac
-	      newdlprefiles="$newdlprefiles $abs"
+	      func_append newdlprefiles " $abs"
 	    done
 	    dlprefiles="$newdlprefiles"
 	  fi
 	  $RM $output
 	  # place dlname in correct position for cygwin
+	  # In fact, it would be nice if we could use this code for all target
+	  # systems that can't hard-code library paths into their executables
+	  # and that have no shared library path variable independent of PATH,
+	  # but it turns out we can't easily determine that from inspecting
+	  # libtool variables, so we have to hard-code the OSs to which it
+	  # applies here; at the moment, that means platforms that use the PE
+	  # object format with DLL files.  See the long comment at the top of
+	  # tests/bindir.at for full details.
 	  tdlname=$dlname
 	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+	      # If a -bindir argument was supplied, place the dll there.
+	      if test "x$bindir" != x ;
+	      then
+		func_relative_path "$install_libdir" "$bindir"
+		tdlname=$func_relative_path_result$dlname
+	      else
+		# Otherwise fall back on heuristic.
+		tdlname=../bin/$dlname
+	      fi
+	      ;;
 	  esac
 	  $ECHO > $output "\
 # $outputname - a libtool library file
@@ -8189,7 +9440,7 @@
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8209,9 +9460,9 @@
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8220,24 +9471,23 @@
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-	objdir="$origobjdir"
+	odir="$objdir"
       else
-	objdir="$dir/$origobjdir"
+	odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
 	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
+	  *" $odir "*) ;;
+	  *) func_append rmdirs " $odir" ;;
 	esac
       fi
 
@@ -8263,18 +9513,17 @@
 
 	  # Delete the libtool libraries and symlinks.
 	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
+	    func_append rmfiles " $odir/$n"
 	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-	  case "$mode" in
+	  case "$opt_mode" in
 	  clean)
-	    case "  $library_names " in
-	    # "  " in the beginning catches empty $dlname
+	    case " $library_names " in
 	    *" $dlname "*) ;;
-	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
 	    esac
-	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
 	    ;;
 	  uninstall)
 	    if test -n "$library_names"; then
@@ -8302,19 +9551,19 @@
 	  # Add PIC object to the list of files to remove.
 	  if test -n "$pic_object" &&
 	     test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
+	    func_append rmfiles " $dir/$pic_object"
 	  fi
 
 	  # Add non-PIC object to the list of files to remove.
 	  if test -n "$non_pic_object" &&
 	     test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
+	    func_append rmfiles " $dir/$non_pic_object"
 	  fi
 	fi
 	;;
 
       *)
-	if test "$mode" = clean ; then
+	if test "$opt_mode" = clean ; then
 	  noexename=$name
 	  case $file in
 	  *.exe)
@@ -8324,7 +9573,7 @@
 	    noexename=$func_stripname_result
 	    # $file with .exe has already been added to rmfiles,
 	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
+	    func_append rmfiles " $file"
 	    ;;
 	  esac
 	  # Do a test to see if this is a libtool program.
@@ -8333,7 +9582,7 @@
 	      func_ltwrapper_scriptname "$file"
 	      relink_command=
 	      func_source $func_ltwrapper_scriptname_result
-	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+	      func_append rmfiles " $func_ltwrapper_scriptname_result"
 	    else
 	      relink_command=
 	      func_source $dir/$noexename
@@ -8341,12 +9590,12 @@
 
 	    # note $name still contains .exe if it was in $file originally
 	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
 	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
+	      func_append rmfiles " $odir/lt-$name"
 	    fi
 	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	      func_append rmfiles " $odir/lt-${noexename}.c"
 	    fi
 	  fi
 	fi
@@ -8354,7 +9603,6 @@
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8366,16 +9614,16 @@
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
diff --git a/m4/Makefile.in b/m4/Makefile.in
index d315bfd..4ef8737 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -437,10 +464,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index a3fee53..828104c 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,7 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,7 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -37,7 +39,7 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -66,6 +68,7 @@
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -82,6 +85,8 @@
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -118,7 +123,7 @@
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -138,6 +143,11 @@
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -160,10 +170,13 @@
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -179,7 +192,6 @@
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -193,23 +205,6 @@
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -250,6 +245,28 @@
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -408,7 +425,7 @@
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -418,7 +435,7 @@
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -517,12 +534,20 @@
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -533,9 +558,9 @@
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -543,16 +568,38 @@
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -562,20 +609,11 @@
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -601,7 +639,7 @@
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -646,15 +684,13 @@
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -717,15 +753,12 @@
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_XSI_SHELLFNS
+  _LT_PROG_REPLACE_SHELLFNS
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -770,6 +803,7 @@
 m4_case([$1],
   [C],			[_LT_LANG(C)],
   [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
   [Java],		[_LT_LANG(GCJ)],
   [Fortran 77],		[_LT_LANG(F77)],
   [Fortran],		[_LT_LANG(FC)],
@@ -791,6 +825,31 @@
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -821,6 +880,10 @@
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -831,11 +894,13 @@
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -921,7 +986,13 @@
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -929,6 +1000,7 @@
 	rm -rf libconftest.dylib*
 	rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -940,6 +1012,34 @@
 	[lt_cv_ld_exported_symbols_list=no])
 	LDFLAGS="$save_LDFLAGS"
     ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -967,7 +1067,7 @@
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -977,8 +1077,8 @@
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -987,7 +1087,13 @@
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -995,7 +1101,7 @@
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1011,203 +1117,142 @@
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-	/^0/ {
-	    s/^0  *\(.*\)$/\1/
-	    p
-	}
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
 
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
+
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
 esac
 
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-	   test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	  # Cool, printf works
-	  :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	  export CONFIG_SHELL
-	  SHELL="$CONFIG_SHELL"
-	  export SHELL
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	     test "X$echo_testing_string" = 'X\t' &&
-	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	     test "X$echo_testing_string" = "X$echo_test_string"; then
-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-	  # maybe with a smaller string...
-	  prev=:
-
-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-	    then
-	      break
-	    fi
-	    prev="$cmd"
-	  done
-
-	  if test "$prev" != 'sed 50q "[$]0"'; then
-	    echo_test_string=`eval $prev`
-	    export echo_test_string
-	    exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	  else
-	    # Oops.  We lost completely, so just stick with echo.
-	    ECHO=echo
-	  fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1236,7 +1281,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -1329,14 +1374,27 @@
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -1354,14 +1412,47 @@
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	AC_TRY_EVAL([lt_ar_try])
+	if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1380,18 +1471,27 @@
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -1416,15 +1516,15 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -1464,7 +1564,7 @@
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -1527,6 +1627,11 @@
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -1552,6 +1657,11 @@
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1591,8 +1701,8 @@
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -1643,7 +1753,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -1684,7 +1794,13 @@
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -1693,7 +1809,11 @@
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
       /* dlclose (self); */
     }
   else
@@ -1869,16 +1989,16 @@
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
@@ -2037,6 +2157,7 @@
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
 	[], [
@@ -2045,16 +2166,23 @@
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -2067,7 +2195,7 @@
 	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -2087,7 +2215,13 @@
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
@@ -2113,7 +2247,7 @@
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2122,7 +2256,7 @@
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2175,7 +2309,7 @@
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -2187,7 +2321,7 @@
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2206,8 +2340,9 @@
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2228,36 +2363,83 @@
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -2278,7 +2460,7 @@
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2286,10 +2468,6 @@
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2297,7 +2475,7 @@
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2315,7 +2493,7 @@
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2335,12 +2513,26 @@
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -2386,12 +2578,14 @@
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2407,7 +2601,7 @@
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -2444,9 +2638,9 @@
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2454,16 +2648,21 @@
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -2472,7 +2671,7 @@
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -2516,7 +2715,7 @@
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2585,7 +2784,7 @@
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2610,7 +2809,7 @@
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2634,7 +2833,7 @@
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2665,7 +2864,7 @@
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2675,7 +2874,7 @@
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2717,6 +2916,8 @@
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
@@ -2829,6 +3030,7 @@
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
@@ -2950,6 +3152,11 @@
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -2958,8 +3165,8 @@
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -3011,16 +3218,18 @@
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -3050,6 +3259,10 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -3058,11 +3271,11 @@
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -3083,7 +3296,7 @@
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3162,6 +3375,21 @@
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3169,7 +3397,11 @@
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -3226,7 +3458,19 @@
   NM="$lt_cv_path_NM"
 else
   # Didn't find any BSD compatible name lister, look for dumpbin.
-  AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
   AC_SUBST([DUMPBIN])
   if test "$DUMPBIN" != ":"; then
     NM="$DUMPBIN"
@@ -3239,13 +3483,13 @@
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -3260,6 +3504,67 @@
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
 
 # LT_LIB_M
 # --------
@@ -3268,7 +3573,7 @@
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
   # These system don't have libm, or don't need it
   ;;
 *-ncr-sysv4.3*)
@@ -3296,7 +3601,12 @@
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
@@ -3313,6 +3623,7 @@
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -3380,8 +3691,8 @@
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3405,6 +3716,7 @@
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -3417,6 +3729,7 @@
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -3438,7 +3751,7 @@
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -3450,6 +3763,18 @@
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
 	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -3461,7 +3786,7 @@
 	  cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -3487,15 +3812,15 @@
 _LT_EOF
 	  # Now try linking the two files.
 	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
 	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
 	else
 	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
 	fi
@@ -3528,6 +3853,13 @@
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3538,6 +3870,8 @@
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -3549,7 +3883,6 @@
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -3600,6 +3933,11 @@
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -3649,6 +3987,12 @@
 	  ;;
 	esac
 	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	m4_if([$1], [GCJ], [],
+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+	;;
       dgux*)
 	case $cc_basename in
 	  ec++*)
@@ -3738,8 +4082,8 @@
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
 	    ;;
-	  xlc* | xlC*)
-	    # IBM XL 8.0 on PPC
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -3801,7 +4145,7 @@
 	;;
       solaris*)
 	case $cc_basename in
-	  CC*)
+	  CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -3905,6 +4249,12 @@
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -3947,6 +4297,15 @@
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -4010,7 +4369,13 @@
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+	# NAG Fortran compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
 	# which looks to be a dead project)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4022,25 +4387,40 @@
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-	# IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	  ;;
-	*Sun\ F*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
 	  ;;
 	esac
 	;;
@@ -4072,7 +4452,7 @@
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
@@ -4129,9 +4509,11 @@
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -4150,6 +4532,8 @@
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
 	[Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -4170,6 +4554,7 @@
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4178,30 +4563,40 @@
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  linux* | k*bsd*-gnu)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  linux* | k*bsd*-gnu | gnu*)
     _LT_TAGVAR(link_all_deplibs, $1)=no
-  ;;
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -4216,7 +4611,6 @@
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4261,13 +4655,39 @@
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu)
+  linux* | k*bsd*-gnu | gnu*)
     _LT_TAGVAR(link_all_deplibs, $1)=no
     ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -4301,11 +4721,12 @@
 	_LT_TAGVAR(ld_shlibs, $1)=no
 	cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -4341,10 +4762,12 @@
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -4362,6 +4785,11 @@
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4387,15 +4815,16 @@
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag'
 	  ;;
-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  tmp_addflag=' $pic_flag -Mnomain' ;;
 	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
 	  tmp_addflag=' -i_dynamic' ;;
@@ -4406,13 +4835,17 @@
 	lf95*)				# Lahey Fortran 8.1
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
 	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]*)			# IBM XL C 8.0 on PPC (deal with xlf below)
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
 	  tmp_sharedflag='-qmkshrobj'
 	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
 	esac
 	case `$CC -V 2>&1 | sed 5q` in
 	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	  _LT_TAGVAR(compiler_needs_object, $1)=yes
 	  tmp_sharedflag='-G' ;;
 	*Sun\ F*)			# Sun Fortran 8.3
@@ -4428,17 +4861,16 @@
         fi
 
 	case $cc_basename in
-	xlf*)
+	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
 	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
 	  fi
 	  ;;
 	esac
@@ -4452,8 +4884,8 @@
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4471,8 +4903,8 @@
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4518,8 +4950,8 @@
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
 	_LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4559,8 +4991,10 @@
       else
 	# If we're using GNU nm, then we don't want the "-C" option.
 	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	# Also, AIX nm treats weak defined symbols like other global
+	# defined symbols, whereas GNU nm marks them as "W".
 	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	else
 	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
 	fi
@@ -4648,9 +5082,9 @@
 	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
 	if test "$host_cpu" = ia64; then
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -4659,14 +5093,19 @@
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX
+	 _LT_SYS_MODULE_PATH_AIX([$1])
 	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 	  # Warning - without using the other run time loading flags,
 	  # -berok will link without error, but may produce a broken library.
 	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  if test "$with_gnu_ld" = yes; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
 	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 	  # This is similar to how AIX traditionally builds its shared libraries.
 	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -4698,20 +5137,64 @@
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	_LT_TAGVAR(always_export_symbols, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	  else
+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	  fi~
+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	  linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
+	  case $lt_outputfile in
+	    *.exe|*.EXE) ;;
+	    *)
+	      lt_outputfile="$lt_outputfile.exe"
+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
+	      ;;
+	  esac~
+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	    $RM "$lt_outputfile.manifest";
+	  fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=".dll"
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	# FIXME: Should let the user specify the lib program.
+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4724,10 +5207,6 @@
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -4740,7 +5219,7 @@
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -4749,7 +5228,7 @@
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4757,7 +5236,7 @@
 
     hpux9*)
       if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -4772,14 +5251,13 @@
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
 	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
 	_LT_TAGVAR(hardcode_direct, $1)=yes
 	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -4791,16 +5269,16 @@
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
 	case $host_cpu in
 	hppa*64*)
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	esac
       else
@@ -4812,7 +5290,14 @@
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
 	  ;;
 	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	m4_if($1, [], [
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  _LT_LINKER_OPTION([if $CC understands -b],
+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
 	  ;;
 	esac
       fi
@@ -4840,19 +5325,34 @@
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	# Try to use the -exported_symbol ld option, if it does not
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+	# This should be the same for all languages, so no per-tag cache variable.
+	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+	  [lt_cv_irix_exported_symbol],
+	  [save_LDFLAGS="$LDFLAGS"
+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+	   AC_LINK_IFELSE(
+	     [AC_LANG_SOURCE(
+	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+			      [C++], [[int foo (void) { return 0; }]],
+			      [Fortran 77], [[
+      subroutine foo
+      end]],
+			      [Fortran], [[
+      subroutine foo
+      end]])])],
+	      [lt_cv_irix_exported_symbol=yes],
+	      [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+	if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+	fi
       else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4914,17 +5414,17 @@
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
 	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4934,13 +5434,13 @@
     osf4* | osf5*)	# as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
 	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
 	# Both c and cxx compiler support -rpath directly
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -4953,9 +5453,9 @@
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
 	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
 	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
@@ -5131,36 +5631,38 @@
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+	[$RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+	  _LT_TAGVAR(allow_undefined_flag, $1)=
+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+	  then
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	  else
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  fi
+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+	])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
       ;;
     esac
   fi
@@ -5197,9 +5699,6 @@
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5225,8 +5724,6 @@
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -5237,6 +5734,8 @@
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -5330,14 +5829,15 @@
 ])# _LT_LANG_C_CONFIG
 
 
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
     ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
     (test "X$CXX" != "Xg++"))) ; then
@@ -5345,22 +5845,6 @@
 else
   _lt_caught_CXX_error=yes
 fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
 
 AC_LANG_PUSH(C++)
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -5372,7 +5856,6 @@
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -5382,6 +5865,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -5413,6 +5898,7 @@
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -5430,6 +5916,7 @@
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -5451,8 +5938,8 @@
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5484,7 +5971,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -5593,10 +6080,10 @@
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -5605,14 +6092,19 @@
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX
+	    _LT_SYS_MODULE_PATH_AIX([$1])
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 	    # Warning - without using the other run time loading flags,
 	    # -berok will link without error, but may produce a broken library.
 	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
 	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    if test "$with_gnu_ld" = yes; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    fi
 	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
 	    # This is similar to how AIX traditionally builds its shared
 	    # libraries.
@@ -5642,28 +6134,75 @@
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=yes
+	  _LT_TAGVAR(file_list_spec, $1)='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=".dll"
+	  # FIXME: Setting linknames here is a bad hack.
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+	    else
+	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+	    fi~
+	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+	    linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	  # Don't use ranlib
+	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+	    lt_tool_outputfile="@TOOL_OUTPUT@"~
+	    case $lt_outputfile in
+	      *.exe|*.EXE) ;;
+	      *)
+		lt_outputfile="$lt_outputfile.exe"
+		lt_tool_outputfile="$lt_tool_outputfile.exe"
+		;;
+	    esac~
+	    func_to_tool_file "$lt_outputfile"~
+	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+	      $RM "$lt_outputfile.manifest";
+	    fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=no
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
 
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    cp $export_symbols $output_objdir/$soname.def;
-          else
-	    echo EXPORTS > $output_objdir/$soname.def;
-	    cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file (1st line
+	    # is EXPORTS), use it as is; otherwise, prepend...
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	      cp $export_symbols $output_objdir/$soname.def;
+	    else
+	      echo EXPORTS > $output_objdir/$soname.def;
+	      cat $export_symbols >> $output_objdir/$soname.def;
+	    fi~
+	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	  ;;
+	esac
+	;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
 	;;
@@ -5686,7 +6225,7 @@
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
 	# switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5705,6 +6244,11 @@
       gnu*)
         ;;
 
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
       hpux9*)
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -5729,11 +6273,11 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5794,7 +6338,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
           *)
 	    if test "$GXX" = yes; then
@@ -5804,10 +6348,10 @@
 	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	            ;;
 	        esac
 	      fi
@@ -5837,7 +6381,7 @@
         case $cc_basename in
           CC*)
 	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -5848,9 +6392,9 @@
           *)
 	    if test "$GXX" = yes; then
 	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
 	      fi
 	    fi
 	    _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -5879,7 +6423,7 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5916,26 +6460,26 @@
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
 	    case `$CC -V` in
-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
 	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
 		$RANLIB $oldlib'
 	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
-	    *) # Version 6 will use weak symbols
+	    *) # Version 6 and above use weak symbols
 	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
@@ -5943,7 +6487,7 @@
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
 	  cxx*)
 	    # Compaq C++
@@ -5962,9 +6506,9 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
 	    ;;
-	  xl*)
+	  xl* | mpixl* | bgxl*)
 	    # IBM XL 8.0 on PPC, with GNU ld
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5984,13 +6528,13 @@
 	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
 	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
 	      _LT_TAGVAR(compiler_needs_object, $1)=yes
 
 	      # Not sure whether something based on
 	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
 	      # would be better.
-	      output_verbose_link_cmd='echo'
+	      output_verbose_link_cmd='func_echo_all'
 
 	      # Archives containing C++ object files must be created using
 	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6059,7 +6603,7 @@
 	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
 	  fi
-	  output_verbose_link_cmd=echo
+	  output_verbose_link_cmd=func_echo_all
 	else
 	  _LT_TAGVAR(ld_shlibs, $1)=no
 	fi
@@ -6094,15 +6638,15 @@
 	    case $host in
 	      osf3*)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 		;;
 	      *)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
 	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
 	          $RM $lib.exp'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
 		;;
@@ -6118,17 +6662,17 @@
 	    # explicitly linking system object files so we need to strip them
 	    # from the output so that they don't get included in the library
 	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 	    ;;
 	  *)
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
 	      case $host in
 	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 		  ;;
 	      esac
 
@@ -6138,7 +6682,7 @@
 	      # Commands to make compiler produce verbose output that lists
 	      # what "hidden" libraries, object files and flags are used when
 	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
 	    else
 	      # FIXME: insert proper C++ library support
@@ -6174,7 +6718,7 @@
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
 	    # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
 	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -6195,7 +6739,7 @@
 	    esac
 	    _LT_TAGVAR(link_all_deplibs, $1)=yes
 
-	    output_verbose_link_cmd='echo'
+	    output_verbose_link_cmd='func_echo_all'
 
 	    # Archives containing C++ object files must be created using
 	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6215,14 +6759,14 @@
 	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
 	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
 	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      else
 	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
 	        # platform.
@@ -6233,7 +6777,7 @@
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
 	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 	      fi
 
 	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
@@ -6287,6 +6831,10 @@
           CC*)
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+	      '"$_LT_TAGVAR(reload_cmds, $1)"
 	    ;;
 	  *)
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -6342,6 +6890,7 @@
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -6356,6 +6905,29 @@
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6364,6 +6936,7 @@
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -6413,7 +6986,20 @@
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -6425,7 +7011,7 @@
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -6434,13 +7020,22 @@
           test $p = "-R"; then
 	 prev=$p
 	 continue
-       else
-	 prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
+	 case ${prev} in
+	 -L | -R)
 	   # Internal compiler library paths should come after those
 	   # provided the user.  The postdeps already come after the
 	   # user supplied libs so there is no need to process them.
@@ -6460,8 +7055,10 @@
 	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
 	 fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -6497,6 +7094,7 @@
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -6533,7 +7131,7 @@
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -6577,32 +7175,16 @@
 ])# _LT_SYS_HIDDEN_LIBDEPS
 
 
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
 # _LT_LANG_F77_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6612,7 +7194,6 @@
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6621,6 +7202,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6660,7 +7243,9 @@
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6714,38 +7299,24 @@
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
 
 
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
 # _LT_LANG_FC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6755,7 +7326,6 @@
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6764,6 +7334,8 @@
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6803,7 +7375,9 @@
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -6859,7 +7433,8 @@
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -6896,10 +7471,12 @@
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -6909,6 +7486,8 @@
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 ## CAVEAT EMPTOR:
 ## There is no encapsulation within the following macros, do not change
@@ -6928,10 +7507,82 @@
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -6963,9 +7614,11 @@
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -6978,7 +7631,8 @@
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -6998,6 +7652,13 @@
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
@@ -7037,6 +7698,15 @@
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7130,8 +7800,8 @@
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7170,208 +7840,162 @@
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
-    ;;
-  esac
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
 ])
+
+
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
+
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
+
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
index 34151a3..5d9acd8 100644
--- a/m4/ltoptions.m4
+++ b/m4/ltoptions.m4
@@ -1,13 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 6 ltoptions.m4
+# serial 7 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -125,7 +126,7 @@
 [enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -133,13 +134,13 @@
 esac
 
 test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 ])# win32-dll
 
 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
@@ -325,9 +326,24 @@
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
 	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
index f3c5309..07a8602 100644
--- a/m4/ltversion.m4
+++ b/m4/ltversion.m4
@@ -7,17 +7,17 @@
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3017 ltversion.m4
+# serial 3337 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6b])
-m4_define([LT_PACKAGE_REVISION], [1.3017])
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6b'
-macro_revision='1.3017'
+[macro_version='2.4.2'
+macro_revision='1.3337'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
index 637bb20..c573da9 100644
--- a/m4/lt~obsolete.m4
+++ b/m4/lt~obsolete.m4
@@ -1,13 +1,13 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
@@ -77,7 +77,6 @@
 m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
 m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
 m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],		[AC_DEFUN([AC_LIBTOOL_RC])])
 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
 m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -90,3 +89,10 @@
 m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/missing b/missing
index 28055d2..86a8fc3 100755
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-01-06.13; # UTC
 
 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -84,7 +84,6 @@
   help2man     touch the output file
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
 Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
@@ -122,15 +121,6 @@
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar*)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
   *)
     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
        # We have it, but it failed.
@@ -226,7 +216,7 @@
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
 	case $LASTARG in
 	*.y)
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -256,7 +246,7 @@
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
     if test $# -ne 1; then
-        eval LASTARG="\${$#}"
+        eval LASTARG=\${$#}
 	case $LASTARG in
 	*.l)
 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -318,41 +308,6 @@
     touch $file
     ;;
 
-  tar*)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-	case $firstarg in
-	*o*)
-	    firstarg=`echo "$firstarg" | sed s/o//`
-	    tar "$firstarg" "$@" && exit 0
-	    ;;
-	esac
-	case $firstarg in
-	*h*)
-	    firstarg=`echo "$firstarg" | sed s/h//`
-	    tar "$firstarg" "$@" && exit 0
-	    ;;
-	esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
   *)
     echo 1>&2 "\
 WARNING: \`$1' is needed, and is $msg.
diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am
index c928f25..5da63ed 100644
--- a/pkgconfig/Makefile.am
+++ b/pkgconfig/Makefile.am
@@ -1,27 +1,25 @@
 ### all of the standard pc files we need to generate
 if HAVE_CHECK
-CHECK_PC_I = gstreamer-check-@GST_MAJORMINOR@.pc
-CHECK_PC_U = gstreamer-check-@GST_MAJORMINOR@-uninstalled.pc
+CHECK_PC_I = gstreamer-check-@GST_API_VERSION@.pc
+CHECK_PC_U = gstreamer-check-@GST_API_VERSION@-uninstalled.pc
 else
 CHECK_PC_I =
 CHECK_PC_U =
 endif
 
 pcfiles = 							\
-	gstreamer-@GST_MAJORMINOR@.pc				\
-	gstreamer-base-@GST_MAJORMINOR@.pc			\
+	gstreamer-@GST_API_VERSION@.pc				\
+	gstreamer-base-@GST_API_VERSION@.pc			\
 	$(CHECK_PC_I)						\
-	gstreamer-controller-@GST_MAJORMINOR@.pc		\
-	gstreamer-dataprotocol-@GST_MAJORMINOR@.pc		\
-	gstreamer-net-@GST_MAJORMINOR@.pc
+	gstreamer-controller-@GST_API_VERSION@.pc		\
+	gstreamer-net-@GST_API_VERSION@.pc
 
 pcfiles_uninstalled =						\
-	gstreamer-@GST_MAJORMINOR@-uninstalled.pc		\
-	gstreamer-base-@GST_MAJORMINOR@-uninstalled.pc		\
+	gstreamer-@GST_API_VERSION@-uninstalled.pc		\
+	gstreamer-base-@GST_API_VERSION@-uninstalled.pc		\
 	$(CHECK_PC_U)						\
-	gstreamer-controller-@GST_MAJORMINOR@-uninstalled.pc	\
-	gstreamer-dataprotocol-@GST_MAJORMINOR@-uninstalled.pc	\
-	gstreamer-net-@GST_MAJORMINOR@-uninstalled.pc
+	gstreamer-controller-@GST_API_VERSION@-uninstalled.pc	\
+	gstreamer-net-@GST_API_VERSION@-uninstalled.pc
 
 all-local: $(pcfiles) $(pcfiles_uninstalled)
 
@@ -30,9 +28,9 @@
 cp_verbose_0 = @echo "  CP     $@";
 
 ### how to generate pc files
-%-@GST_MAJORMINOR@.pc: %.pc
+%-@GST_API_VERSION@.pc: %.pc
 	$(cp_verbose_0)cp $< $@
-%-@GST_MAJORMINOR@-uninstalled.pc: %-uninstalled.pc
+%-@GST_API_VERSION@-uninstalled.pc: %-uninstalled.pc
 	$(cp_verbose_0)cp $< $@
 
 pkgconfigdir = $(libdir)/pkgconfig
@@ -47,8 +45,6 @@
 	gstreamer-check-uninstalled.pc.in			\
 	gstreamer-controller.pc.in				\
 	gstreamer-controller-uninstalled.pc.in			\
-	gstreamer-dataprotocol.pc.in				\
-	gstreamer-dataprotocol-uninstalled.pc.in		\
 	gstreamer-net.pc.in					\
 	gstreamer-net-uninstalled.pc.in
 
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index c76fd91..47145a4 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -42,8 +59,6 @@
 	$(srcdir)/gstreamer-check.pc.in \
 	$(srcdir)/gstreamer-controller-uninstalled.pc.in \
 	$(srcdir)/gstreamer-controller.pc.in \
-	$(srcdir)/gstreamer-dataprotocol-uninstalled.pc.in \
-	$(srcdir)/gstreamer-dataprotocol.pc.in \
 	$(srcdir)/gstreamer-net-uninstalled.pc.in \
 	$(srcdir)/gstreamer-net.pc.in \
 	$(srcdir)/gstreamer-uninstalled.pc.in \
@@ -92,18 +107,21 @@
 	gstreamer-base.pc gstreamer-base-uninstalled.pc \
 	gstreamer-check.pc gstreamer-check-uninstalled.pc \
 	gstreamer-controller.pc gstreamer-controller-uninstalled.pc \
-	gstreamer-dataprotocol.pc \
-	gstreamer-dataprotocol-uninstalled.pc gstreamer-net.pc \
-	gstreamer-net-uninstalled.pc
+	gstreamer-net.pc gstreamer-net-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -125,6 +143,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -181,10 +205,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -197,10 +223,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -214,7 +240,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -231,6 +256,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -246,7 +275,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -279,6 +307,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -334,6 +363,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -367,7 +397,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -391,24 +420,22 @@
 @HAVE_CHECK_FALSE@CHECK_PC_I = 
 
 ### all of the standard pc files we need to generate
-@HAVE_CHECK_TRUE@CHECK_PC_I = gstreamer-check-@GST_MAJORMINOR@.pc
+@HAVE_CHECK_TRUE@CHECK_PC_I = gstreamer-check-@GST_API_VERSION@.pc
 @HAVE_CHECK_FALSE@CHECK_PC_U = 
-@HAVE_CHECK_TRUE@CHECK_PC_U = gstreamer-check-@GST_MAJORMINOR@-uninstalled.pc
+@HAVE_CHECK_TRUE@CHECK_PC_U = gstreamer-check-@GST_API_VERSION@-uninstalled.pc
 pcfiles = \
-	gstreamer-@GST_MAJORMINOR@.pc				\
-	gstreamer-base-@GST_MAJORMINOR@.pc			\
+	gstreamer-@GST_API_VERSION@.pc				\
+	gstreamer-base-@GST_API_VERSION@.pc			\
 	$(CHECK_PC_I)						\
-	gstreamer-controller-@GST_MAJORMINOR@.pc		\
-	gstreamer-dataprotocol-@GST_MAJORMINOR@.pc		\
-	gstreamer-net-@GST_MAJORMINOR@.pc
+	gstreamer-controller-@GST_API_VERSION@.pc		\
+	gstreamer-net-@GST_API_VERSION@.pc
 
 pcfiles_uninstalled = \
-	gstreamer-@GST_MAJORMINOR@-uninstalled.pc		\
-	gstreamer-base-@GST_MAJORMINOR@-uninstalled.pc		\
+	gstreamer-@GST_API_VERSION@-uninstalled.pc		\
+	gstreamer-base-@GST_API_VERSION@-uninstalled.pc		\
 	$(CHECK_PC_U)						\
-	gstreamer-controller-@GST_MAJORMINOR@-uninstalled.pc	\
-	gstreamer-dataprotocol-@GST_MAJORMINOR@-uninstalled.pc	\
-	gstreamer-net-@GST_MAJORMINOR@-uninstalled.pc
+	gstreamer-controller-@GST_API_VERSION@-uninstalled.pc	\
+	gstreamer-net-@GST_API_VERSION@-uninstalled.pc
 
 cp_verbose = $(cp_verbose_$(V))
 cp_verbose_ = $(cp_verbose_$(AM_DEFAULT_VERBOSITY))
@@ -424,8 +451,6 @@
 	gstreamer-check-uninstalled.pc.in			\
 	gstreamer-controller.pc.in				\
 	gstreamer-controller-uninstalled.pc.in			\
-	gstreamer-dataprotocol.pc.in				\
-	gstreamer-dataprotocol-uninstalled.pc.in		\
 	gstreamer-net.pc.in					\
 	gstreamer-net-uninstalled.pc.in
 
@@ -479,10 +504,6 @@
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstreamer-controller-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-controller-uninstalled.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-gstreamer-dataprotocol.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-dataprotocol.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-gstreamer-dataprotocol-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-dataprotocol-uninstalled.pc.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstreamer-net.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-net.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 gstreamer-net-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-net-uninstalled.pc.in
@@ -495,8 +516,11 @@
 	-rm -rf .libs _libs
 install-pkgconfigDATA: $(pkgconfig_DATA)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)' || exit 1; \
+	fi; \
 	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; \
@@ -510,9 +534,7 @@
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -567,10 +589,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -667,9 +694,9 @@
 all-local: $(pcfiles) $(pcfiles_uninstalled)
 
 ### how to generate pc files
-%-@GST_MAJORMINOR@.pc: %.pc
+%-@GST_API_VERSION@.pc: %.pc
 	$(cp_verbose_0)cp $< $@
-%-@GST_MAJORMINOR@-uninstalled.pc: %-uninstalled.pc
+%-@GST_API_VERSION@-uninstalled.pc: %-uninstalled.pc
 	$(cp_verbose_0)cp $< $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/pkgconfig/gstreamer-base-uninstalled.pc.in b/pkgconfig/gstreamer-base-uninstalled.pc.in
index 72cf0ec..ab7dacf 100644
--- a/pkgconfig/gstreamer-base-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-base-uninstalled.pc.in
@@ -8,8 +8,8 @@
 
 Name: GStreamer base classes, uninstalled
 Description: Base classes for GStreamer elements, Not Installed
-Requires: gstreamer-@GST_MAJORMINOR@ = @VERSION@
+Requires: gstreamer-@GST_API_VERSION@ = @VERSION@
 Version: @VERSION@
 
-Libs: @abs_top_builddir@/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la
+Libs: @abs_top_builddir@/libs/gst/base/libgstbase-@GST_API_VERSION@.la
 Cflags: -I@abs_top_srcdir@/libs -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer-base.pc.in b/pkgconfig/gstreamer-base.pc.in
index 45471a8..e24e050 100644
--- a/pkgconfig/gstreamer-base.pc.in
+++ b/pkgconfig/gstreamer-base.pc.in
@@ -1,7 +1,7 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
 datarootdir=${prefix}/share
 datadir=${datarootdir}
 girdir=${datadir}/gir-1.0
@@ -9,7 +9,7 @@
 
 Name: GStreamer base classes
 Description: Base classes for GStreamer elements
-Requires: gstreamer-@GST_MAJORMINOR@
+Requires: gstreamer-@GST_API_VERSION@
 Version: @VERSION@
-Libs: -L${libdir} -lgstbase-@GST_MAJORMINOR@
+Libs: -L${libdir} -lgstbase-@GST_API_VERSION@
 Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-check-uninstalled.pc.in b/pkgconfig/gstreamer-check-uninstalled.pc.in
index 45629cd..47c2bea 100644
--- a/pkgconfig/gstreamer-check-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-check-uninstalled.pc.in
@@ -8,8 +8,8 @@
 
 Name: GStreamer check unit testing, uninstalled
 Description: Unit testing helper library for GStreamer modules, Not Installed
-Requires: gstreamer-@GST_MAJORMINOR@ = @VERSION@
+Requires: gstreamer-@GST_API_VERSION@ = @VERSION@
 Version: @VERSION@
 
-Libs: @abs_top_builddir@/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la @LIBM@
+Libs: @abs_top_builddir@/libs/gst/check/libgstcheck-@GST_API_VERSION@.la @LIBM@
 Cflags: -I@abs_top_srcdir@/libs -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer-check.pc.in b/pkgconfig/gstreamer-check.pc.in
index ac2a2c1..8c3a129 100644
--- a/pkgconfig/gstreamer-check.pc.in
+++ b/pkgconfig/gstreamer-check.pc.in
@@ -1,7 +1,7 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
 datarootdir=${prefix}/share
 datadir=${datarootdir}
 girdir=${datadir}/gir-1.0
@@ -9,7 +9,7 @@
 
 Name: GStreamer check unit testing
 Description: Unit testing helper library for GStreamer modules
-Requires: gstreamer-@GST_MAJORMINOR@
+Requires: gstreamer-@GST_API_VERSION@
 Version: @VERSION@
-Libs: -L${libdir} -lgstcheck-@GST_MAJORMINOR@ @LIBM@
+Libs: -L${libdir} -lgstcheck-@GST_API_VERSION@ @LIBM@
 Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-controller-uninstalled.pc.in b/pkgconfig/gstreamer-controller-uninstalled.pc.in
index e1b4f88..d74aa32 100644
--- a/pkgconfig/gstreamer-controller-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-controller-uninstalled.pc.in
@@ -8,8 +8,8 @@
 
 Name: GStreamer controller, uninstalled
 Description: Dynamic parameter control for GStreamer elements, Not Installed
-Requires: gstreamer-@GST_MAJORMINOR@ = @VERSION@
+Requires: gstreamer-@GST_API_VERSION@ = @VERSION@
 Version: @VERSION@
 
-Libs: @abs_top_builddir@/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la
+Libs: @abs_top_builddir@/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la
 Cflags: -I@abs_top_srcdir@/libs -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer-controller.pc.in b/pkgconfig/gstreamer-controller.pc.in
index 8d197ab..5118de4 100644
--- a/pkgconfig/gstreamer-controller.pc.in
+++ b/pkgconfig/gstreamer-controller.pc.in
@@ -1,7 +1,7 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
 datarootdir=${prefix}/share
 datadir=${datarootdir}
 girdir=${datadir}/gir-1.0
@@ -9,7 +9,7 @@
 
 Name: GStreamer controller
 Description: Dynamic parameter control for GStreamer elements
-Requires: gstreamer-@GST_MAJORMINOR@
+Requires: gstreamer-@GST_API_VERSION@
 Version: @VERSION@
-Libs: -L${libdir} -lgstcontroller-@GST_MAJORMINOR@
+Libs: -L${libdir} -lgstcontroller-@GST_API_VERSION@
 Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in b/pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in
deleted file mode 100644
index fff856a..0000000
--- a/pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in
+++ /dev/null
@@ -1,15 +0,0 @@
-# the standard variables don't make sense for an uninstalled copy
-prefix=
-exec_prefix=
-libdir=@abs_top_builddir@/libs/gst/dataprotocol
-includedir=
-girdir=@abs_top_builddir@/libs/gst/dataprotocol
-typelibdir=@abs_top_builddir@/libs/gst/dataprotocol
-
-Name: GStreamer data protocol library, uninstalled
-Description: Data protocol for plug-ins, Not Installed
-Requires: gstreamer-@GST_MAJORMINOR@ = @VERSION@
-Version: @VERSION@
-
-Libs: @abs_top_builddir@/libs/gst/dataprotocol/libgstdataprotocol-@GST_MAJORMINOR@.la
-Cflags: -I@abs_top_srcdir@/libs -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer-dataprotocol.pc.in b/pkgconfig/gstreamer-dataprotocol.pc.in
deleted file mode 100644
index e06b7e9..0000000
--- a/pkgconfig/gstreamer-dataprotocol.pc.in
+++ /dev/null
@@ -1,15 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-girdir=${datadir}/gir-1.0
-typelibdir=${libdir}/girepository-1.0
-
-Name: GStreamer data protocol library
-Description: Data protocol for plug-ins
-Requires: gstreamer-@GST_MAJORMINOR@
-Version: @VERSION@
-Libs: -L${libdir} -lgstdataprotocol-@GST_MAJORMINOR@
-Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-net-uninstalled.pc.in b/pkgconfig/gstreamer-net-uninstalled.pc.in
index 80a1691..bb972b0 100644
--- a/pkgconfig/gstreamer-net-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-net-uninstalled.pc.in
@@ -8,8 +8,8 @@
 
 Name: GStreamer networking library, uninstalled
 Description: Network-enabled GStreamer plug-ins and clocking, uninstalled
-Requires: gstreamer-@GST_MAJORMINOR@ = @VERSION@
+Requires: gstreamer-@GST_API_VERSION@ = @VERSION@ gio-2.0
 Version: @VERSION@
 
-Libs: @abs_top_builddir@/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la
+Libs: @abs_top_builddir@/libs/gst/net/libgstnet-@GST_API_VERSION@.la
 Cflags: -I@abs_top_srcdir@/libs -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer-net.pc.in b/pkgconfig/gstreamer-net.pc.in
index d8b510b..aa4c3ab 100644
--- a/pkgconfig/gstreamer-net.pc.in
+++ b/pkgconfig/gstreamer-net.pc.in
@@ -1,7 +1,7 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
 datarootdir=${prefix}/share
 datadir=${datarootdir}
 girdir=${datadir}/gir-1.0
@@ -9,7 +9,7 @@
 
 Name: GStreamer networking library
 Description: Network-enabled GStreamer plug-ins and clocking
-Requires: gstreamer-@GST_MAJORMINOR@
+Requires: gstreamer-@GST_API_VERSION@ gio-2.0
 Version: @VERSION@
-Libs: -L${libdir} -lgstnet-@GST_MAJORMINOR@
+Libs: -L${libdir} -lgstnet-@GST_API_VERSION@
 Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-uninstalled.pc.in b/pkgconfig/gstreamer-uninstalled.pc.in
index 481f81f..9e5602b 100644
--- a/pkgconfig/gstreamer-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-uninstalled.pc.in
@@ -13,6 +13,6 @@
 Description: Streaming media framework, Not Installed
 Version: @VERSION@
 Requires: @GST_PKG_DEPS@
-Libs: @abs_top_builddir@/gst/libgstreamer-@GST_MAJORMINOR@.la
+Libs: @abs_top_builddir@/gst/libgstreamer-@GST_API_VERSION@.la
 # FIXME: the libs dir doesn't really belong here
 Cflags: -I@abs_top_srcdir@ -I@abs_top_srcdir@/libs -I@abs_top_builddir@ -I@abs_top_builddir@/libs
diff --git a/pkgconfig/gstreamer.pc.in b/pkgconfig/gstreamer.pc.in
index 36fb2f4..914e186 100644
--- a/pkgconfig/gstreamer.pc.in
+++ b/pkgconfig/gstreamer.pc.in
@@ -1,9 +1,9 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
+includedir=@includedir@/gstreamer-@GST_API_VERSION@
 toolsdir=${exec_prefix}/bin
-pluginsdir=@libdir@/gstreamer-@GST_MAJORMINOR@
+pluginsdir=@libdir@/gstreamer-@GST_API_VERSION@
 datarootdir=${prefix}/share
 datadir=${datarootdir}
 girdir=${datadir}/gir-1.0
@@ -13,5 +13,5 @@
 Description: Streaming media framework
 Requires: @GST_PKG_DEPS@
 Version: @VERSION@
-Libs: -L${libdir} -lgstreamer-@GST_MAJORMINOR@
+Libs: -L${libdir} -lgstreamer-@GST_API_VERSION@
 Cflags: -I${includedir}
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 6fc0a1b..17233d2 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -1,6 +1,6 @@
-SUBDIRS = elements indexers
+SUBDIRS = elements
 
-DIST_SUBDIRS = elements indexers
+DIST_SUBDIRS = elements
 
 Android.mk: Makefile.am
 	androgenizer -:PROJECT gstreamer \
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index 7d091f3..539c2ed 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,11 +94,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -92,6 +109,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -178,10 +200,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -194,10 +218,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -211,7 +235,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -228,6 +251,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -243,7 +270,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -276,6 +302,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -331,6 +358,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -364,7 +392,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -385,8 +412,8 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = elements indexers
-DIST_SUBDIRS = elements indexers
+SUBDIRS = elements
+DIST_SUBDIRS = elements
 all: all-recursive
 
 .SUFFIXES:
@@ -594,13 +621,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -635,10 +659,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/plugins/elements/Makefile.am b/plugins/elements/Makefile.am
index f743cf2..d451a1f 100644
--- a/plugins/elements/Makefile.am
+++ b/plugins/elements/Makefile.am
@@ -1,7 +1,7 @@
 
 plugin_LTLIBRARIES = libgstcoreelements.la
 
-libgstcoreelements_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
+libgstcoreelements_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la
 libgstcoreelements_la_SOURCES =	\
 	gstcapsfilter.c		\
 	gstelements.c		\
@@ -15,6 +15,7 @@
 	gstidentity.c		\
 	gstinputselector.c	\
 	gstoutputselector.c	\
+	gstdataqueue.c 		\
 	gstmultiqueue.c		\
 	gstqueue.c		\
 	gstqueue2.c		\
@@ -24,7 +25,7 @@
 
 libgstcoreelements_la_CFLAGS = $(GST_OBJ_CFLAGS)
 libgstcoreelements_la_LIBADD = \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 libgstcoreelements_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstcoreelements_la_LIBTOOLFLAGS = --tag=disable-static
@@ -41,6 +42,7 @@
 	gstidentity.h		\
 	gstinputselector.h	\
 	gstoutputselector.h	\
+	gstdataqueue.h 		\
 	gstmultiqueue.h		\
 	gstqueue.h		\
 	gstqueue2.h		\
@@ -67,5 +69,5 @@
 	 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
 	            $(libgstcoreelements_la_LIBADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_MAJORMINOR@ \
+	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
 	> $@
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index 149fd45..2cc34f1 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +17,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -101,6 +118,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(plugindir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
@@ -117,6 +140,7 @@
 	libgstcoreelements_la-gstidentity.lo \
 	libgstcoreelements_la-gstinputselector.lo \
 	libgstcoreelements_la-gstoutputselector.lo \
+	libgstcoreelements_la-gstdataqueue.lo \
 	libgstcoreelements_la-gstmultiqueue.lo \
 	libgstcoreelements_la-gstqueue.lo \
 	libgstcoreelements_la-gstqueue2.lo \
@@ -124,8 +148,8 @@
 	libgstcoreelements_la-gsttypefindelement.lo \
 	libgstcoreelements_la-gstvalve.lo
 libgstcoreelements_la_OBJECTS = $(am_libgstcoreelements_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 libgstcoreelements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -141,24 +165,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libgstcoreelements_la_SOURCES)
 DIST_SOURCES = $(libgstcoreelements_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -216,10 +245,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -232,10 +263,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -249,7 +280,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -266,6 +296,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -281,7 +315,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -314,6 +347,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -369,6 +403,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -402,7 +437,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -424,7 +458,7 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstcoreelements.la
-libgstcoreelements_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
+libgstcoreelements_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la
 libgstcoreelements_la_SOURCES = \
 	gstcapsfilter.c		\
 	gstelements.c		\
@@ -438,6 +472,7 @@
 	gstidentity.c		\
 	gstinputselector.c	\
 	gstoutputselector.c	\
+	gstdataqueue.c 		\
 	gstmultiqueue.c		\
 	gstqueue.c		\
 	gstqueue2.c		\
@@ -447,7 +482,7 @@
 
 libgstcoreelements_la_CFLAGS = $(GST_OBJ_CFLAGS)
 libgstcoreelements_la_LIBADD = \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 libgstcoreelements_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -464,6 +499,7 @@
 	gstidentity.h		\
 	gstinputselector.h	\
 	gstoutputselector.h	\
+	gstdataqueue.h 		\
 	gstmultiqueue.h		\
 	gstqueue.h		\
 	gstqueue2.h		\
@@ -511,7 +547,6 @@
 $(am__aclocal_m4_deps):
 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)"
 	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
@@ -519,6 +554,8 @@
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
+	  $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
 	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
 	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
 	}
@@ -540,7 +577,7 @@
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libgstcoreelements.la: $(libgstcoreelements_la_OBJECTS) $(libgstcoreelements_la_DEPENDENCIES) 
+libgstcoreelements.la: $(libgstcoreelements_la_OBJECTS) $(libgstcoreelements_la_DEPENDENCIES) $(EXTRA_libgstcoreelements_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgstcoreelements_la_LINK) -rpath $(plugindir) $(libgstcoreelements_la_OBJECTS) $(libgstcoreelements_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
@@ -550,6 +587,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstcapsfilter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstdataqueue.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstelements.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstfakesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstfakesrc.Plo@am__quote@
@@ -571,170 +609,156 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 libgstcoreelements_la-gstcapsfilter.lo: gstcapsfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstcapsfilter.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstcapsfilter.Tpo -c -o libgstcoreelements_la-gstcapsfilter.lo `test -f 'gstcapsfilter.c' || echo '$(srcdir)/'`gstcapsfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstcapsfilter.Tpo $(DEPDIR)/libgstcoreelements_la-gstcapsfilter.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstcapsfilter.c' object='libgstcoreelements_la-gstcapsfilter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstcapsfilter.c' object='libgstcoreelements_la-gstcapsfilter.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstcapsfilter.lo `test -f 'gstcapsfilter.c' || echo '$(srcdir)/'`gstcapsfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstcapsfilter.lo `test -f 'gstcapsfilter.c' || echo '$(srcdir)/'`gstcapsfilter.c
 
 libgstcoreelements_la-gstelements.lo: gstelements.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstelements.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstelements.Tpo -c -o libgstcoreelements_la-gstelements.lo `test -f 'gstelements.c' || echo '$(srcdir)/'`gstelements.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstelements.Tpo $(DEPDIR)/libgstcoreelements_la-gstelements.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstelements.c' object='libgstcoreelements_la-gstelements.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstelements.c' object='libgstcoreelements_la-gstelements.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstelements.lo `test -f 'gstelements.c' || echo '$(srcdir)/'`gstelements.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstelements.lo `test -f 'gstelements.c' || echo '$(srcdir)/'`gstelements.c
 
 libgstcoreelements_la-gstfakesrc.lo: gstfakesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfakesrc.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfakesrc.Tpo -c -o libgstcoreelements_la-gstfakesrc.lo `test -f 'gstfakesrc.c' || echo '$(srcdir)/'`gstfakesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfakesrc.Tpo $(DEPDIR)/libgstcoreelements_la-gstfakesrc.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfakesrc.c' object='libgstcoreelements_la-gstfakesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfakesrc.c' object='libgstcoreelements_la-gstfakesrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfakesrc.lo `test -f 'gstfakesrc.c' || echo '$(srcdir)/'`gstfakesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfakesrc.lo `test -f 'gstfakesrc.c' || echo '$(srcdir)/'`gstfakesrc.c
 
 libgstcoreelements_la-gstfakesink.lo: gstfakesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfakesink.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfakesink.Tpo -c -o libgstcoreelements_la-gstfakesink.lo `test -f 'gstfakesink.c' || echo '$(srcdir)/'`gstfakesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfakesink.Tpo $(DEPDIR)/libgstcoreelements_la-gstfakesink.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfakesink.c' object='libgstcoreelements_la-gstfakesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfakesink.c' object='libgstcoreelements_la-gstfakesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfakesink.lo `test -f 'gstfakesink.c' || echo '$(srcdir)/'`gstfakesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfakesink.lo `test -f 'gstfakesink.c' || echo '$(srcdir)/'`gstfakesink.c
 
 libgstcoreelements_la-gstfdsrc.lo: gstfdsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfdsrc.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfdsrc.Tpo -c -o libgstcoreelements_la-gstfdsrc.lo `test -f 'gstfdsrc.c' || echo '$(srcdir)/'`gstfdsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfdsrc.Tpo $(DEPDIR)/libgstcoreelements_la-gstfdsrc.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfdsrc.c' object='libgstcoreelements_la-gstfdsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfdsrc.c' object='libgstcoreelements_la-gstfdsrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfdsrc.lo `test -f 'gstfdsrc.c' || echo '$(srcdir)/'`gstfdsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfdsrc.lo `test -f 'gstfdsrc.c' || echo '$(srcdir)/'`gstfdsrc.c
 
 libgstcoreelements_la-gstfdsink.lo: gstfdsink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfdsink.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfdsink.Tpo -c -o libgstcoreelements_la-gstfdsink.lo `test -f 'gstfdsink.c' || echo '$(srcdir)/'`gstfdsink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfdsink.Tpo $(DEPDIR)/libgstcoreelements_la-gstfdsink.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfdsink.c' object='libgstcoreelements_la-gstfdsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfdsink.c' object='libgstcoreelements_la-gstfdsink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfdsink.lo `test -f 'gstfdsink.c' || echo '$(srcdir)/'`gstfdsink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfdsink.lo `test -f 'gstfdsink.c' || echo '$(srcdir)/'`gstfdsink.c
 
 libgstcoreelements_la-gstfilesink.lo: gstfilesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfilesink.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfilesink.Tpo -c -o libgstcoreelements_la-gstfilesink.lo `test -f 'gstfilesink.c' || echo '$(srcdir)/'`gstfilesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfilesink.Tpo $(DEPDIR)/libgstcoreelements_la-gstfilesink.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfilesink.c' object='libgstcoreelements_la-gstfilesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfilesink.c' object='libgstcoreelements_la-gstfilesink.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfilesink.lo `test -f 'gstfilesink.c' || echo '$(srcdir)/'`gstfilesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfilesink.lo `test -f 'gstfilesink.c' || echo '$(srcdir)/'`gstfilesink.c
 
 libgstcoreelements_la-gstfilesrc.lo: gstfilesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfilesrc.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfilesrc.Tpo -c -o libgstcoreelements_la-gstfilesrc.lo `test -f 'gstfilesrc.c' || echo '$(srcdir)/'`gstfilesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfilesrc.Tpo $(DEPDIR)/libgstcoreelements_la-gstfilesrc.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfilesrc.c' object='libgstcoreelements_la-gstfilesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfilesrc.c' object='libgstcoreelements_la-gstfilesrc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfilesrc.lo `test -f 'gstfilesrc.c' || echo '$(srcdir)/'`gstfilesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfilesrc.lo `test -f 'gstfilesrc.c' || echo '$(srcdir)/'`gstfilesrc.c
 
 libgstcoreelements_la-gstfunnel.lo: gstfunnel.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstfunnel.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstfunnel.Tpo -c -o libgstcoreelements_la-gstfunnel.lo `test -f 'gstfunnel.c' || echo '$(srcdir)/'`gstfunnel.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstfunnel.Tpo $(DEPDIR)/libgstcoreelements_la-gstfunnel.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstfunnel.c' object='libgstcoreelements_la-gstfunnel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstfunnel.c' object='libgstcoreelements_la-gstfunnel.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfunnel.lo `test -f 'gstfunnel.c' || echo '$(srcdir)/'`gstfunnel.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstfunnel.lo `test -f 'gstfunnel.c' || echo '$(srcdir)/'`gstfunnel.c
 
 libgstcoreelements_la-gstidentity.lo: gstidentity.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstidentity.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstidentity.Tpo -c -o libgstcoreelements_la-gstidentity.lo `test -f 'gstidentity.c' || echo '$(srcdir)/'`gstidentity.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstidentity.Tpo $(DEPDIR)/libgstcoreelements_la-gstidentity.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstidentity.c' object='libgstcoreelements_la-gstidentity.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstidentity.c' object='libgstcoreelements_la-gstidentity.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstidentity.lo `test -f 'gstidentity.c' || echo '$(srcdir)/'`gstidentity.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstidentity.lo `test -f 'gstidentity.c' || echo '$(srcdir)/'`gstidentity.c
 
 libgstcoreelements_la-gstinputselector.lo: gstinputselector.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstinputselector.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstinputselector.Tpo -c -o libgstcoreelements_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstinputselector.Tpo $(DEPDIR)/libgstcoreelements_la-gstinputselector.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstinputselector.c' object='libgstcoreelements_la-gstinputselector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstinputselector.c' object='libgstcoreelements_la-gstinputselector.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstinputselector.lo `test -f 'gstinputselector.c' || echo '$(srcdir)/'`gstinputselector.c
 
 libgstcoreelements_la-gstoutputselector.lo: gstoutputselector.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstoutputselector.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstoutputselector.Tpo -c -o libgstcoreelements_la-gstoutputselector.lo `test -f 'gstoutputselector.c' || echo '$(srcdir)/'`gstoutputselector.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstoutputselector.Tpo $(DEPDIR)/libgstcoreelements_la-gstoutputselector.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstoutputselector.c' object='libgstcoreelements_la-gstoutputselector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstoutputselector.c' object='libgstcoreelements_la-gstoutputselector.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstoutputselector.lo `test -f 'gstoutputselector.c' || echo '$(srcdir)/'`gstoutputselector.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstoutputselector.lo `test -f 'gstoutputselector.c' || echo '$(srcdir)/'`gstoutputselector.c
+
+libgstcoreelements_la-gstdataqueue.lo: gstdataqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstdataqueue.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstdataqueue.Tpo -c -o libgstcoreelements_la-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstdataqueue.Tpo $(DEPDIR)/libgstcoreelements_la-gstdataqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdataqueue.c' object='libgstcoreelements_la-gstdataqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstdataqueue.lo `test -f 'gstdataqueue.c' || echo '$(srcdir)/'`gstdataqueue.c
 
 libgstcoreelements_la-gstmultiqueue.lo: gstmultiqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstmultiqueue.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstmultiqueue.Tpo -c -o libgstcoreelements_la-gstmultiqueue.lo `test -f 'gstmultiqueue.c' || echo '$(srcdir)/'`gstmultiqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstmultiqueue.Tpo $(DEPDIR)/libgstcoreelements_la-gstmultiqueue.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmultiqueue.c' object='libgstcoreelements_la-gstmultiqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmultiqueue.c' object='libgstcoreelements_la-gstmultiqueue.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstmultiqueue.lo `test -f 'gstmultiqueue.c' || echo '$(srcdir)/'`gstmultiqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstmultiqueue.lo `test -f 'gstmultiqueue.c' || echo '$(srcdir)/'`gstmultiqueue.c
 
 libgstcoreelements_la-gstqueue.lo: gstqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstqueue.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstqueue.Tpo -c -o libgstcoreelements_la-gstqueue.lo `test -f 'gstqueue.c' || echo '$(srcdir)/'`gstqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstqueue.Tpo $(DEPDIR)/libgstcoreelements_la-gstqueue.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstqueue.c' object='libgstcoreelements_la-gstqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqueue.c' object='libgstcoreelements_la-gstqueue.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstqueue.lo `test -f 'gstqueue.c' || echo '$(srcdir)/'`gstqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstqueue.lo `test -f 'gstqueue.c' || echo '$(srcdir)/'`gstqueue.c
 
 libgstcoreelements_la-gstqueue2.lo: gstqueue2.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstqueue2.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstqueue2.Tpo -c -o libgstcoreelements_la-gstqueue2.lo `test -f 'gstqueue2.c' || echo '$(srcdir)/'`gstqueue2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstqueue2.Tpo $(DEPDIR)/libgstcoreelements_la-gstqueue2.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstqueue2.c' object='libgstcoreelements_la-gstqueue2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqueue2.c' object='libgstcoreelements_la-gstqueue2.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstqueue2.lo `test -f 'gstqueue2.c' || echo '$(srcdir)/'`gstqueue2.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstqueue2.lo `test -f 'gstqueue2.c' || echo '$(srcdir)/'`gstqueue2.c
 
 libgstcoreelements_la-gsttee.lo: gsttee.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gsttee.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gsttee.Tpo -c -o libgstcoreelements_la-gsttee.lo `test -f 'gsttee.c' || echo '$(srcdir)/'`gsttee.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gsttee.Tpo $(DEPDIR)/libgstcoreelements_la-gsttee.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttee.c' object='libgstcoreelements_la-gsttee.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttee.c' object='libgstcoreelements_la-gsttee.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gsttee.lo `test -f 'gsttee.c' || echo '$(srcdir)/'`gsttee.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gsttee.lo `test -f 'gsttee.c' || echo '$(srcdir)/'`gsttee.c
 
 libgstcoreelements_la-gsttypefindelement.lo: gsttypefindelement.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gsttypefindelement.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gsttypefindelement.Tpo -c -o libgstcoreelements_la-gsttypefindelement.lo `test -f 'gsttypefindelement.c' || echo '$(srcdir)/'`gsttypefindelement.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gsttypefindelement.Tpo $(DEPDIR)/libgstcoreelements_la-gsttypefindelement.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gsttypefindelement.c' object='libgstcoreelements_la-gsttypefindelement.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsttypefindelement.c' object='libgstcoreelements_la-gsttypefindelement.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gsttypefindelement.lo `test -f 'gsttypefindelement.c' || echo '$(srcdir)/'`gsttypefindelement.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gsttypefindelement.lo `test -f 'gsttypefindelement.c' || echo '$(srcdir)/'`gsttypefindelement.c
 
 libgstcoreelements_la-gstvalve.lo: gstvalve.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstvalve.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstvalve.Tpo -c -o libgstcoreelements_la-gstvalve.lo `test -f 'gstvalve.c' || echo '$(srcdir)/'`gstvalve.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstvalve.Tpo $(DEPDIR)/libgstcoreelements_la-gstvalve.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstvalve.c' object='libgstcoreelements_la-gstvalve.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstvalve.c' object='libgstcoreelements_la-gstvalve.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstvalve.lo `test -f 'gstvalve.c' || echo '$(srcdir)/'`gstvalve.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstvalve.lo `test -f 'gstvalve.c' || echo '$(srcdir)/'`gstvalve.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -841,10 +865,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -958,7 +987,7 @@
 	 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
 	            $(libgstcoreelements_la_LIBADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_MAJORMINOR@ \
+	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
 	> $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c
index 16278dc..971cb7f 100644
--- a/plugins/elements/gstcapsfilter.c
+++ b/plugins/elements/gstcapsfilter.c
@@ -104,7 +104,7 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class = GST_ELEMENT_CLASS (klass);
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "CapsFilter",
       "Generic",
       "Pass data without modification, limiting formats",
@@ -131,14 +131,6 @@
   filter->filter_caps = gst_caps_new_any ();
 }
 
-static gboolean
-copy_func (GQuark field_id, const GValue * value, GstStructure * dest)
-{
-  gst_structure_id_set_value (dest, field_id, value);
-
-  return TRUE;
-}
-
 static void
 gst_capsfilter_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
@@ -148,7 +140,7 @@
   switch (prop_id) {
     case PROP_FILTER_CAPS:{
       GstCaps *new_caps;
-      GstCaps *old_caps, *suggest, *nego;
+      GstCaps *old_caps;
       const GstCaps *new_caps_val = gst_value_get_caps (value);
 
       if (new_caps_val == NULL) {
@@ -167,51 +159,7 @@
 
       GST_DEBUG_OBJECT (capsfilter, "set new caps %" GST_PTR_FORMAT, new_caps);
 
-      /* filter the currently negotiated format against the new caps */
-      nego = gst_pad_get_current_caps (GST_BASE_TRANSFORM_SINK_PAD (object));
-      if (nego) {
-        GST_DEBUG_OBJECT (capsfilter, "we had negotiated caps %" GST_PTR_FORMAT,
-            nego);
-
-        if (G_UNLIKELY (gst_caps_is_any (new_caps))) {
-          GST_DEBUG_OBJECT (capsfilter, "not settings any suggestion");
-
-          suggest = NULL;
-        } else {
-          GstStructure *s1, *s2;
-
-          /* first check if the name is the same */
-          s1 = gst_caps_get_structure (nego, 0);
-          s2 = gst_caps_get_structure (new_caps, 0);
-
-          if (gst_structure_get_name_id (s1) == gst_structure_get_name_id (s2)) {
-            /* same name, copy all fields from the new caps into the previously
-             * negotiated caps */
-            suggest = gst_caps_copy (nego);
-            s1 = gst_caps_get_structure (suggest, 0);
-            gst_structure_foreach (s2, (GstStructureForeachFunc) copy_func, s1);
-            GST_DEBUG_OBJECT (capsfilter, "copied structure fields");
-          } else {
-            GST_DEBUG_OBJECT (capsfilter, "different structure names");
-            /* different names, we can only suggest the complete caps */
-            suggest = gst_caps_copy (new_caps);
-          }
-        }
-        gst_caps_unref (nego);
-      } else {
-        GST_DEBUG_OBJECT (capsfilter, "no negotiated caps");
-        /* Suggest the new caps, we can't just rely on _get_caps as this may
-         * already be called at this point even though no buffer has been
-         * pushed yet */
-        suggest = gst_caps_copy (new_caps);
-      }
-
-      GST_DEBUG_OBJECT (capsfilter, "suggesting new caps %" GST_PTR_FORMAT,
-          suggest);
-      gst_base_transform_suggest (GST_BASE_TRANSFORM (object), suggest, 0);
-      if (suggest)
-        gst_caps_unref (suggest);
-
+      gst_base_transform_reconfigure_sink (GST_BASE_TRANSFORM (object));
       break;
     }
     default:
@@ -296,9 +244,13 @@
   if (ret) {
     /* if we can intersect, see if the other end also accepts */
     if (direction == GST_PAD_SRC)
-      ret = gst_pad_peer_accept_caps (GST_BASE_TRANSFORM_SINK_PAD (base), caps);
+      ret =
+          gst_pad_peer_query_accept_caps (GST_BASE_TRANSFORM_SINK_PAD (base),
+          caps);
     else
-      ret = gst_pad_peer_accept_caps (GST_BASE_TRANSFORM_SRC_PAD (base), caps);
+      ret =
+          gst_pad_peer_query_accept_caps (GST_BASE_TRANSFORM_SRC_PAD (base),
+          caps);
     GST_DEBUG_OBJECT (capsfilter, "peer accept: %d", ret);
   }
 
@@ -346,8 +298,7 @@
       g_return_val_if_fail (out_caps != NULL, GST_FLOW_ERROR);
     }
 
-    out_caps = gst_caps_make_writable (out_caps);
-    gst_caps_do_simplify (out_caps);
+    out_caps = gst_caps_simplify (out_caps);
 
     if (gst_caps_is_fixed (out_caps) && !gst_caps_is_empty (out_caps)) {
       GST_DEBUG_OBJECT (trans, "Have fixed output caps %"
@@ -355,6 +306,7 @@
 
       if (!gst_pad_has_current_caps (trans->srcpad))
         gst_pad_push_event (trans->srcpad, gst_event_new_caps (out_caps));
+      gst_caps_unref (out_caps);
     } else {
       gchar *caps_str = gst_caps_to_string (out_caps);
 
diff --git a/libs/gst/base/gstdataqueue.c b/plugins/elements/gstdataqueue.c
similarity index 95%
rename from libs/gst/base/gstdataqueue.c
rename to plugins/elements/gstdataqueue.c
index 69dadb4..c1b8820 100644
--- a/libs/gst/base/gstdataqueue.c
+++ b/plugins/elements/gstdataqueue.c
@@ -33,6 +33,7 @@
 #include <gst/gst.h>
 #include "string.h"
 #include "gstdataqueue.h"
+#include "gst/glib-compat-private.h"
 
 GST_DEBUG_CATEGORY_STATIC (data_queue_debug);
 #define GST_CAT_DEFAULT (data_queue_debug)
@@ -60,7 +61,7 @@
     GST_CAT_LOG (data_queue_dataflow,                                   \
       "locking qlock from thread %p",                                   \
       g_thread_self ());                                                \
-  g_mutex_lock (q->qlock);                                              \
+  g_mutex_lock (&q->qlock);                                              \
   GST_CAT_LOG (data_queue_dataflow,                                     \
       "locked qlock from thread %p",                                    \
       g_thread_self ());                                                \
@@ -76,7 +77,7 @@
     GST_CAT_LOG (data_queue_dataflow,                                   \
       "unlocking qlock from thread %p",                                 \
       g_thread_self ());                                                \
-  g_mutex_unlock (q->qlock);                                            \
+  g_mutex_unlock (&q->qlock);                                            \
 } G_STMT_END
 
 #define STATUS(q, msg)                                                  \
@@ -177,9 +178,9 @@
 
   queue->checkfull = NULL;
 
-  queue->qlock = g_mutex_new ();
-  queue->item_add = g_cond_new ();
-  queue->item_del = g_cond_new ();
+  g_mutex_init (&queue->qlock);
+  g_cond_init (&queue->item_add);
+  g_cond_init (&queue->item_del);
   queue->queue = g_queue_new ();
 
   GST_DEBUG ("initialized queue's not_empty & not_full conditions");
@@ -261,11 +262,11 @@
   g_queue_free (queue->queue);
 
   GST_DEBUG ("free mutex");
-  g_mutex_free (queue->qlock);
+  g_mutex_clear (&queue->qlock);
   GST_DEBUG ("done free mutex");
 
-  g_cond_free (queue->item_add);
-  g_cond_free (queue->item_del);
+  g_cond_clear (&queue->item_add);
+  g_cond_clear (&queue->item_del);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -278,7 +279,7 @@
   STATUS (queue, "after flushing");
   /* we deleted something... */
   if (queue->waiting_del)
-    g_cond_signal (queue->item_del);
+    g_cond_signal (&queue->item_del);
 }
 
 static inline gboolean
@@ -385,9 +386,9 @@
   if (flushing) {
     /* release push/pop functions */
     if (queue->waiting_add)
-      g_cond_signal (queue->item_add);
+      g_cond_signal (&queue->item_add);
     if (queue->waiting_del)
-      g_cond_signal (queue->item_del);
+      g_cond_signal (&queue->item_del);
   }
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 }
@@ -433,7 +434,7 @@
     /* signal might have removed some items */
     while (gst_data_queue_locked_is_full (queue)) {
       queue->waiting_del = TRUE;
-      g_cond_wait (queue->item_del, queue->qlock);
+      g_cond_wait (&queue->item_del, &queue->qlock);
       queue->waiting_del = FALSE;
       if (queue->flushing)
         goto flushing;
@@ -449,7 +450,7 @@
 
   STATUS (queue, "after pushing");
   if (queue->waiting_add)
-    g_cond_signal (queue->item_add);
+    g_cond_signal (&queue->item_add);
 
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 
@@ -498,7 +499,7 @@
 
     while (gst_data_queue_locked_is_empty (queue)) {
       queue->waiting_add = TRUE;
-      g_cond_wait (queue->item_add, queue->qlock);
+      g_cond_wait (&queue->item_add, &queue->qlock);
       queue->waiting_add = FALSE;
       if (queue->flushing)
         goto flushing;
@@ -516,7 +517,7 @@
 
   STATUS (queue, "after popping");
   if (queue->waiting_del)
-    g_cond_signal (queue->item_del);
+    g_cond_signal (&queue->item_del);
 
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 
@@ -602,7 +603,7 @@
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
   if (queue->waiting_del) {
     GST_DEBUG ("signal del");
-    g_cond_signal (queue->item_del);
+    g_cond_signal (&queue->item_del);
   }
   GST_DATA_QUEUE_MUTEX_UNLOCK (queue);
 }
diff --git a/libs/gst/base/gstdataqueue.h b/plugins/elements/gstdataqueue.h
similarity index 94%
rename from libs/gst/base/gstdataqueue.h
rename to plugins/elements/gstdataqueue.h
index 4ab42ff..36f4be7 100644
--- a/libs/gst/base/gstdataqueue.h
+++ b/plugins/elements/gstdataqueue.h
@@ -127,11 +127,11 @@
   GstDataQueueCheckFullFunction checkfull;      /* Callback to check if the queue is full */
   gpointer *checkdata;
 
-  GMutex *qlock;                /* lock for queue (vs object lock) */
+  GMutex qlock;                /* lock for queue (vs object lock) */
   gboolean waiting_add;
-  GCond *item_add;              /* signals buffers now available for reading */
+  GCond item_add;              /* signals buffers now available for reading */
   gboolean waiting_del;
-  GCond *item_del;              /* signals space now available for writing */
+  GCond item_del;              /* signals space now available for writing */
   gboolean flushing;            /* indicates whether conditions where signalled because
                                  * of external flushing */
   GstDataQueueFullCallback fullcallback;
@@ -154,12 +154,12 @@
 GType gst_data_queue_get_type (void);
 
 GstDataQueue * gst_data_queue_new            (GstDataQueueCheckFullFunction checkfull,
-                                              gpointer checkdata);
+                                              gpointer checkdata) G_GNUC_MALLOC;
 
 GstDataQueue * gst_data_queue_new_full       (GstDataQueueCheckFullFunction checkfull,
 					      GstDataQueueFullCallback fullcallback,
 					      GstDataQueueEmptyCallback emptycallback,
-					      gpointer checkdata);
+					      gpointer checkdata) G_GNUC_MALLOC;
 
 gboolean       gst_data_queue_push           (GstDataQueue * queue, GstDataQueueItem * item);
 gboolean       gst_data_queue_pop            (GstDataQueue * queue, GstDataQueueItem ** item);
diff --git a/plugins/elements/gstelements.c b/plugins/elements/gstelements.c
index 8d00729..00594b5 100644
--- a/plugins/elements/gstelements.c
+++ b/plugins/elements/gstelements.c
@@ -93,6 +93,6 @@
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
-    "coreelements",
+    coreelements,
     "standard GStreamer elements",
     plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/plugins/elements/gstfakesink.c b/plugins/elements/gstfakesink.c
index f4e6a5c..363fde9 100644
--- a/plugins/elements/gstfakesink.c
+++ b/plugins/elements/gstfakesink.c
@@ -38,7 +38,6 @@
 #endif
 
 #include "gstfakesink.h"
-#include <gst/gstmarshal.h>
 #include <string.h>
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
@@ -61,7 +60,7 @@
 #define DEFAULT_SYNC FALSE
 
 #define DEFAULT_STATE_ERROR FAKE_SINK_STATE_ERROR_NONE
-#define DEFAULT_SILENT FALSE
+#define DEFAULT_SILENT TRUE
 #define DEFAULT_DUMP FALSE
 #define DEFAULT_SIGNAL_HANDOFFS FALSE
 #define DEFAULT_LAST_MESSAGE NULL
@@ -131,40 +130,13 @@
 static GstFlowReturn gst_fake_sink_render (GstBaseSink * bsink,
     GstBuffer * buffer);
 static gboolean gst_fake_sink_event (GstBaseSink * bsink, GstEvent * event);
+static gboolean gst_fake_sink_query (GstBaseSink * bsink, GstQuery * query);
 
 static guint gst_fake_sink_signals[LAST_SIGNAL] = { 0 };
 
 static GParamSpec *pspec_last_message = NULL;
 
 static void
-marshal_VOID__MINIOBJECT_OBJECT (GClosure * closure, GValue * return_value,
-    guint n_param_values, const GValue * param_values, gpointer invocation_hint,
-    gpointer marshal_data)
-{
-  typedef void (*marshalfunc_VOID__MINIOBJECT_OBJECT) (gpointer obj,
-      gpointer arg1, gpointer arg2, gpointer data2);
-  register marshalfunc_VOID__MINIOBJECT_OBJECT callback;
-  register GCClosure *cc = (GCClosure *) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure)) {
-    data1 = closure->data;
-    data2 = g_value_peek_pointer (param_values + 0);
-  } else {
-    data1 = g_value_peek_pointer (param_values + 0);
-    data2 = closure->data;
-  }
-  callback =
-      (marshalfunc_VOID__MINIOBJECT_OBJECT) (marshal_data ? marshal_data :
-      cc->callback);
-
-  callback (data1, g_value_get_boxed (param_values + 1),
-      g_value_get_object (param_values + 2), data2);
-}
-
-static void
 gst_fake_sink_class_init (GstFakeSinkClass * klass)
 {
   GObjectClass *gobject_class;
@@ -225,8 +197,8 @@
   gst_fake_sink_signals[SIGNAL_HANDOFF] =
       g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstFakeSinkClass, handoff), NULL, NULL,
-      marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2,
-      GST_TYPE_BUFFER, GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      GST_TYPE_BUFFER | G_SIGNAL_TYPE_STATIC_SCOPE, GST_TYPE_PAD);
 
   /**
    * GstFakeSink::preroll-handoff:
@@ -241,10 +213,10 @@
   gst_fake_sink_signals[SIGNAL_PREROLL_HANDOFF] =
       g_signal_new ("preroll-handoff", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstFakeSinkClass, preroll_handoff),
-      NULL, NULL, marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2,
-      GST_TYPE_BUFFER, GST_TYPE_PAD);
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      GST_TYPE_BUFFER | G_SIGNAL_TYPE_STATIC_SCOPE, GST_TYPE_PAD);
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Fake Sink",
       "Sink",
       "Black hole for data",
@@ -260,6 +232,7 @@
   gstbase_sink_class->event = GST_DEBUG_FUNCPTR (gst_fake_sink_event);
   gstbase_sink_class->preroll = GST_DEBUG_FUNCPTR (gst_fake_sink_preroll);
   gstbase_sink_class->render = GST_DEBUG_FUNCPTR (gst_fake_sink_render);
+  gstbase_sink_class->query = GST_DEBUG_FUNCPTR (gst_fake_sink_query);
 }
 
 static void
@@ -271,9 +244,6 @@
   fakesink->state_error = DEFAULT_STATE_ERROR;
   fakesink->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
   fakesink->num_buffers = DEFAULT_NUM_BUFFERS;
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_static_rec_mutex_init (&fakesink->notify_lock);
-#endif
 
   gst_base_sink_set_sync (GST_BASE_SINK (fakesink), DEFAULT_SYNC);
 }
@@ -281,12 +251,6 @@
 static void
 gst_fake_sink_finalize (GObject * obj)
 {
-#if !GLIB_CHECK_VERSION(2,26,0)
-  GstFakeSink *sink = GST_FAKE_SINK (obj);
-
-  g_static_rec_mutex_free (&sink->notify_lock);
-#endif
-
   G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
 
@@ -370,19 +334,7 @@
 static void
 gst_fake_sink_notify_last_message (GstFakeSink * sink)
 {
-  /* FIXME: this hacks around a bug in GLib/GObject: doing concurrent
-   * g_object_notify() on the same object might lead to crashes, see
-   * http://bugzilla.gnome.org/show_bug.cgi?id=166020#c60 and follow-ups.
-   * So we really don't want to do a g_object_notify() here for out-of-band
-   * events with the streaming thread possibly also doing a g_object_notify()
-   * for an in-band buffer or event. This is fixed in GLib >= 2.26 */
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_static_rec_mutex_lock (&sink->notify_lock);
-  g_object_notify ((GObject *) sink, "last-message");
-  g_static_rec_mutex_unlock (&sink->notify_lock);
-#else
   g_object_notify_by_pspec ((GObject *) sink, pspec_last_message);
-#endif
 }
 
 static gboolean
@@ -392,6 +344,7 @@
 
   if (!sink->silent) {
     const GstStructure *s;
+    const gchar *tstr;
     gchar *sstr;
 
     GST_OBJECT_LOCK (sink);
@@ -405,10 +358,13 @@
       structure = gst_message_get_structure (msg);
       sstr = gst_structure_to_string (structure);
       sink->last_message =
-          g_strdup_printf ("message ******* M (type: %d, %s) %p",
+          g_strdup_printf ("message ******* (%s:%s) M (type: %d, %s) %p",
+          GST_DEBUG_PAD_NAME (GST_BASE_SINK_CAST (sink)->sinkpad),
           GST_MESSAGE_TYPE (msg), sstr, msg);
       gst_message_unref (msg);
     } else {
+      tstr = gst_event_type_get_name (GST_EVENT_TYPE (event));
+
       if ((s = gst_event_get_structure (event))) {
         sstr = gst_structure_to_string (s);
       } else {
@@ -416,8 +372,9 @@
       }
 
       sink->last_message =
-          g_strdup_printf ("event   ******* E (type: %d, %s) %p",
-          GST_EVENT_TYPE (event), sstr, event);
+          g_strdup_printf ("event   ******* (%s:%s) E (type: %s (%d), %s) %p",
+          GST_DEBUG_PAD_NAME (GST_BASE_SINK_CAST (sink)->sinkpad),
+          tstr, GST_EVENT_TYPE (event), sstr, event);
     }
     g_free (sstr);
     GST_OBJECT_UNLOCK (sink);
@@ -425,11 +382,7 @@
     gst_fake_sink_notify_last_message (sink);
   }
 
-  if (GST_BASE_SINK_CLASS (parent_class)->event) {
-    return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
-  } else {
-    return TRUE;
-  }
+  return GST_BASE_SINK_CLASS (parent_class)->event (bsink, event);
 }
 
 static GstFlowReturn
@@ -460,7 +413,7 @@
 eos:
   {
     GST_DEBUG_OBJECT (sink, "we are EOS");
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
@@ -476,17 +429,24 @@
     sink->num_buffers_left--;
 
   if (!sink->silent) {
-    gchar ts_str[64], dur_str[64];
+    gchar dts_str[64], pts_str[64], dur_str[64];
     gchar flag_str[100];
 
     GST_OBJECT_LOCK (sink);
     g_free (sink->last_message);
 
-    if (GST_BUFFER_TIMESTAMP (buf) != GST_CLOCK_TIME_NONE) {
-      g_snprintf (ts_str, sizeof (ts_str), "%" GST_TIME_FORMAT,
-          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+    if (GST_BUFFER_DTS (buf) != GST_CLOCK_TIME_NONE) {
+      g_snprintf (dts_str, sizeof (dts_str), "%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_DTS (buf)));
     } else {
-      g_strlcpy (ts_str, "none", sizeof (ts_str));
+      g_strlcpy (dts_str, "none", sizeof (dts_str));
+    }
+
+    if (GST_BUFFER_PTS (buf) != GST_CLOCK_TIME_NONE) {
+      g_snprintf (pts_str, sizeof (pts_str), "%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_PTS (buf)));
+    } else {
+      g_strlcpy (pts_str, "none", sizeof (pts_str));
     }
 
     if (GST_BUFFER_DURATION (buf) != GST_CLOCK_TIME_NONE) {
@@ -497,15 +457,14 @@
     }
 
     {
-      const char *flag_list[12] = {
-        "ro", "media4", "", "",
-        "preroll", "discont", "incaps", "gap",
-        "delta_unit", "media1", "media2", "media3"
+      const char *flag_list[15] = {
+        "", "", "", "", "live", "decode-only", "discont", "resync", "corrupted",
+        "marker", "header", "gap", "droppable", "delta-unit", "in-caps"
       };
       int i;
       char *end = flag_str;
       end[0] = '\0';
-      for (i = 0; i < 12; i++) {
+      for (i = 0; i < G_N_ELEMENTS (flag_list); i++) {
         if (GST_MINI_OBJECT_CAST (buf)->flags & (1 << i)) {
           strcpy (end, flag_list[i]);
           end += strlen (end);
@@ -517,12 +476,13 @@
     }
 
     sink->last_message =
-        g_strdup_printf ("chain   ******* < (%5" G_GSIZE_FORMAT
-        " bytes, timestamp: %s" ", duration: %s, offset: %" G_GINT64_FORMAT
-        ", offset_end: %" G_GINT64_FORMAT ", flags: %d %s) %p",
-        gst_buffer_get_size (buf), ts_str, dur_str, GST_BUFFER_OFFSET (buf),
-        GST_BUFFER_OFFSET_END (buf), GST_MINI_OBJECT_CAST (buf)->flags,
-        flag_str, buf);
+        g_strdup_printf ("chain   ******* (%s:%s) (%u bytes, dts: %s, pts: %s"
+        ", duration: %s, offset: %" G_GINT64_FORMAT ", offset_end: %"
+        G_GINT64_FORMAT ", flags: %d %s) %p",
+        GST_DEBUG_PAD_NAME (GST_BASE_SINK_CAST (sink)->sinkpad),
+        (guint) gst_buffer_get_size (buf), dts_str, pts_str,
+        dur_str, GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf),
+        GST_MINI_OBJECT_CAST (buf)->flags, flag_str, buf);
     GST_OBJECT_UNLOCK (sink);
 
     gst_fake_sink_notify_last_message (sink);
@@ -532,12 +492,11 @@
         bsink->sinkpad);
 
   if (sink->dump) {
-    guint8 *data;
-    gsize size;
+    GstMapInfo info;
 
-    data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-    gst_util_dump_mem (data, size);
-    gst_buffer_unmap (buf, data, size);
+    gst_buffer_map (buf, &info, GST_MAP_READ);
+    gst_util_dump_mem (info.data, info.size);
+    gst_buffer_unmap (buf, &info);
   }
   if (sink->num_buffers_left == 0)
     goto eos;
@@ -548,10 +507,33 @@
 eos:
   {
     GST_DEBUG_OBJECT (sink, "we are EOS");
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
+static gboolean
+gst_fake_sink_query (GstBaseSink * bsink, GstQuery * query)
+{
+  gboolean ret;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_SEEKING:{
+      GstFormat fmt;
+
+      /* we don't supporting seeking */
+      gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
+      gst_query_set_seeking (query, fmt, FALSE, 0, -1);
+      ret = TRUE;
+      break;
+    }
+    default:
+      ret = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
+      break;
+  }
+
+  return ret;
+}
+
 static GstStateChangeReturn
 gst_fake_sink_change_state (GstElement * element, GstStateChange transition)
 {
diff --git a/plugins/elements/gstfakesink.h b/plugins/elements/gstfakesink.h
index b1165af..2db98b9 100644
--- a/plugins/elements/gstfakesink.h
+++ b/plugins/elements/gstfakesink.h
@@ -82,9 +82,6 @@
   gchar			*last_message;
   gint                  num_buffers;
   gint                  num_buffers_left;
-#if !GLIB_CHECK_VERSION(2,26,0)
-  GStaticRecMutex       notify_lock;
-#endif
 };
 
 struct _GstFakeSinkClass {
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index df46d18..c9b2c45 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -52,7 +52,6 @@
 #include <string.h>
 
 #include "gstfakesrc.h"
-#include <gst/gstmarshal.h>
 
 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
@@ -81,7 +80,7 @@
 #define DEFAULT_PATTERN         NULL
 #define DEFAULT_EOS             FALSE
 #define DEFAULT_SIGNAL_HANDOFFS FALSE
-#define DEFAULT_SILENT          FALSE
+#define DEFAULT_SILENT          TRUE
 #define DEFAULT_DUMP            FALSE
 #define DEFAULT_PARENTSIZE      4096*10
 #define DEFAULT_CAN_ACTIVATE_PULL TRUE
@@ -227,34 +226,6 @@
 static GParamSpec *pspec_last_message = NULL;
 
 static void
-marshal_VOID__MINIOBJECT_OBJECT (GClosure * closure, GValue * return_value,
-    guint n_param_values, const GValue * param_values, gpointer invocation_hint,
-    gpointer marshal_data)
-{
-  typedef void (*marshalfunc_VOID__MINIOBJECT_OBJECT) (gpointer obj,
-      gpointer arg1, gpointer arg2, gpointer data2);
-  register marshalfunc_VOID__MINIOBJECT_OBJECT callback;
-  register GCClosure *cc = (GCClosure *) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 3);
-
-  if (G_CCLOSURE_SWAP_DATA (closure)) {
-    data1 = closure->data;
-    data2 = g_value_peek_pointer (param_values + 0);
-  } else {
-    data1 = g_value_peek_pointer (param_values + 0);
-    data2 = closure->data;
-  }
-  callback =
-      (marshalfunc_VOID__MINIOBJECT_OBJECT) (marshal_data ? marshal_data :
-      cc->callback);
-
-  callback (data1, g_value_get_boxed (param_values + 1),
-      g_value_get_object (param_values + 2), data2);
-}
-
-static void
 gst_fake_src_class_init (GstFakeSrcClass * klass)
 {
   GObjectClass *gobject_class;
@@ -363,10 +334,10 @@
   gst_fake_src_signals[SIGNAL_HANDOFF] =
       g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstFakeSrcClass, handoff), NULL, NULL,
-      marshal_VOID__MINIOBJECT_OBJECT, G_TYPE_NONE, 2, GST_TYPE_BUFFER,
-      GST_TYPE_PAD);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      GST_TYPE_BUFFER | G_SIGNAL_TYPE_STATIC_SCOPE, GST_TYPE_PAD);
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Fake Source",
       "Source",
       "Push empty (no data) buffers around",
@@ -429,27 +400,27 @@
 
   if (!src->silent) {
     const GstStructure *s;
+    const gchar *tstr;
     gchar *sstr;
 
     GST_OBJECT_LOCK (src);
     g_free (src->last_message);
 
+    tstr = gst_event_type_get_name (GST_EVENT_TYPE (event));
+
     if ((s = gst_event_get_structure (event)))
       sstr = gst_structure_to_string (s);
     else
       sstr = g_strdup ("");
 
     src->last_message =
-        g_strdup_printf ("event   ******* E (type: %d, %s) %p",
-        GST_EVENT_TYPE (event), sstr, event);
+        g_strdup_printf ("event   ******* (%s:%s) E (type: %s (%d), %s) %p",
+        GST_DEBUG_PAD_NAME (GST_BASE_SRC_CAST (src)->srcpad),
+        tstr, GST_EVENT_TYPE (event), sstr, event);
     g_free (sstr);
     GST_OBJECT_UNLOCK (src);
 
-#if !GLIB_CHECK_VERSION(2,26,0)
-    g_object_notify ((GObject *) src, "last-message");
-#else
     g_object_notify_by_pspec ((GObject *) src, pspec_last_message);
-#endif
   }
 
   return GST_BASE_SRC_CLASS (parent_class)->event (basesrc, event);
@@ -460,7 +431,7 @@
 {
   GstBuffer *buf;
 
-  buf = gst_buffer_new_allocate (NULL, src->parentsize, 0);
+  buf = gst_buffer_new_allocate (NULL, src->parentsize, NULL);
 
   src->parent = buf;
   src->parentoffset = 0;
@@ -526,11 +497,13 @@
       src->dump = g_value_get_boolean (value);
       break;
     case PROP_CAN_ACTIVATE_PUSH:
-      g_return_if_fail (!GST_OBJECT_FLAG_IS_SET (object, GST_BASE_SRC_STARTED));
+      g_return_if_fail (!GST_OBJECT_FLAG_IS_SET (object,
+              GST_BASE_SRC_FLAG_STARTED));
       GST_BASE_SRC (src)->can_activate_push = g_value_get_boolean (value);
       break;
     case PROP_CAN_ACTIVATE_PULL:
-      g_return_if_fail (!GST_OBJECT_FLAG_IS_SET (object, GST_BASE_SRC_STARTED));
+      g_return_if_fail (!GST_OBJECT_FLAG_IS_SET (object,
+              GST_BASE_SRC_FLAG_STARTED));
       src->can_activate_pull = g_value_get_boolean (value);
       break;
     case PROP_IS_LIVE:
@@ -686,8 +659,8 @@
     if (do_prepare)
       gst_fake_src_prepare_buffer (src, data, size);
 
-    gst_buffer_take_memory (buf, -1,
-        gst_memory_new_wrapped (0, data, g_free, size, 0, size));
+    gst_buffer_append_memory (buf,
+        gst_memory_new_wrapped (0, data, size, 0, size, data, g_free));
   }
 
   return buf;
@@ -720,7 +693,7 @@
   GstBuffer *buf;
   gsize size = gst_fake_src_get_size (src);
   gboolean dump = src->dump;
-  guint8 *data;
+  GstMapInfo info;
 
   *bufsize = size;
 
@@ -747,9 +720,9 @@
         /* try again (this will allocate a new parent) */
         return gst_fake_src_create_buffer (src, bufsize);
       }
-      data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE);
-      gst_fake_src_prepare_buffer (src, data, size);
-      gst_buffer_unmap (buf, data, size);
+      gst_buffer_map (buf, &info, GST_MAP_WRITE);
+      gst_fake_src_prepare_buffer (src, info.data, info.size);
+      gst_buffer_unmap (buf, &info);
       break;
     default:
       g_warning ("fakesrc: dunno how to allocate buffers !");
@@ -757,9 +730,9 @@
       break;
   }
   if (dump) {
-    data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-    gst_util_dump_mem (data, size);
-    gst_buffer_unmap (buf, data, size);
+    gst_buffer_map (buf, &info, GST_MAP_READ);
+    gst_util_dump_mem (info.data, info.size);
+    gst_buffer_unmap (buf, &info);
   }
 
   return buf;
@@ -775,12 +748,16 @@
 
   /* sync on the timestamp of the buffer if requested. */
   if (src->sync) {
-    GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
+    GstClockTime timestamp, duration;
+
+    /* first sync on DTS, else use PTS */
+    timestamp = GST_BUFFER_DTS (buffer);
+    if (!GST_CLOCK_TIME_IS_VALID (timestamp))
+      timestamp = GST_BUFFER_PTS (buffer);
 
     if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
       /* get duration to calculate end time */
-      GstClockTime duration = GST_BUFFER_DURATION (buffer);
-
+      duration = GST_BUFFER_DURATION (buffer);
       if (GST_CLOCK_TIME_IS_VALID (duration)) {
         *end = timestamp + duration;
       }
@@ -827,21 +804,28 @@
     time = GST_CLOCK_TIME_NONE;
   }
 
-  GST_BUFFER_TIMESTAMP (buf) = time;
+  GST_BUFFER_DTS (buf) = time;
+  GST_BUFFER_PTS (buf) = time;
 
   if (!src->silent) {
-    gchar ts_str[64], dur_str[64];
+    gchar dts_str[64], pts_str[64], dur_str[64];
+    gchar flag_str[100];
 
     GST_OBJECT_LOCK (src);
     g_free (src->last_message);
 
-    if (GST_BUFFER_TIMESTAMP (buf) != GST_CLOCK_TIME_NONE) {
-      g_snprintf (ts_str, sizeof (ts_str), "%" GST_TIME_FORMAT,
-          GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+    if (GST_BUFFER_DTS (buf) != GST_CLOCK_TIME_NONE) {
+      g_snprintf (dts_str, sizeof (dts_str), "%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_DTS (buf)));
     } else {
-      g_strlcpy (ts_str, "none", sizeof (ts_str));
+      g_strlcpy (dts_str, "none", sizeof (dts_str));
     }
-
+    if (GST_BUFFER_PTS (buf) != GST_CLOCK_TIME_NONE) {
+      g_snprintf (pts_str, sizeof (pts_str), "%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (GST_BUFFER_PTS (buf)));
+    } else {
+      g_strlcpy (pts_str, "none", sizeof (pts_str));
+    }
     if (GST_BUFFER_DURATION (buf) != GST_CLOCK_TIME_NONE) {
       g_snprintf (dur_str, sizeof (dur_str), "%" GST_TIME_FORMAT,
           GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
@@ -849,19 +833,36 @@
       g_strlcpy (dur_str, "none", sizeof (dur_str));
     }
 
+    {
+      const char *flag_list[15] = {
+        "", "", "", "", "live", "decode-only", "discont", "resync", "corrupted",
+        "marker", "header", "gap", "droppable", "delta-unit", "in-caps"
+      };
+      int i;
+      char *end = flag_str;
+      end[0] = '\0';
+      for (i = 0; i < G_N_ELEMENTS (flag_list); i++) {
+        if (GST_MINI_OBJECT_CAST (buf)->flags & (1 << i)) {
+          strcpy (end, flag_list[i]);
+          end += strlen (end);
+          end[0] = ' ';
+          end[1] = '\0';
+          end++;
+        }
+      }
+    }
+
     src->last_message =
-        g_strdup_printf ("get      ******* > (%5d bytes, timestamp: %s"
+        g_strdup_printf ("create   ******* (%s:%s) (%u bytes, dts: %s, pts:%s"
         ", duration: %s, offset: %" G_GINT64_FORMAT ", offset_end: %"
-        G_GINT64_FORMAT ", flags: %d) %p", (gint) size, ts_str,
-        dur_str, GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf),
-        GST_MINI_OBJECT_CAST (buf)->flags, buf);
+        G_GINT64_FORMAT ", flags: %d %s) %p",
+        GST_DEBUG_PAD_NAME (GST_BASE_SRC_CAST (src)->srcpad), (guint) size,
+        dts_str, pts_str, dur_str, GST_BUFFER_OFFSET (buf),
+        GST_BUFFER_OFFSET_END (buf), GST_MINI_OBJECT_CAST (buf)->flags,
+        flag_str, buf);
     GST_OBJECT_UNLOCK (src);
 
-#if !GLIB_CHECK_VERSION(2,26,0)
-    g_object_notify ((GObject *) src, "last-message");
-#else
     g_object_notify_by_pspec ((GObject *) src, pspec_last_message);
-#endif
   }
 
   if (src->signal_handoffs) {
diff --git a/plugins/elements/gstfdsink.c b/plugins/elements/gstfdsink.c
index 01edb3f..7852561 100644
--- a/plugins/elements/gstfdsink.c
+++ b/plugins/elements/gstfdsink.c
@@ -106,7 +106,7 @@
     GValue * value, GParamSpec * pspec);
 static void gst_fd_sink_dispose (GObject * obj);
 
-static gboolean gst_fd_sink_query (GstPad * pad, GstQuery * query);
+static gboolean gst_fd_sink_query (GstBaseSink * bsink, GstQuery * query);
 static GstFlowReturn gst_fd_sink_render (GstBaseSink * sink,
     GstBuffer * buffer);
 static gboolean gst_fd_sink_start (GstBaseSink * basesink);
@@ -132,7 +132,7 @@
   gobject_class->get_property = gst_fd_sink_get_property;
   gobject_class->dispose = gst_fd_sink_dispose;
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Filedescriptor Sink",
       "Sink/File",
       "Write data to a file descriptor", "Erik Walthinsen <omega@cse.ogi.edu>");
@@ -145,6 +145,7 @@
   gstbasesink_class->unlock = GST_DEBUG_FUNCPTR (gst_fd_sink_unlock);
   gstbasesink_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_fd_sink_unlock_stop);
   gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_fd_sink_event);
+  gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_fd_sink_query);
 
   g_object_class_install_property (gobject_class, ARG_FD,
       g_param_spec_int ("fd", "fd", "An open file descriptor to write to",
@@ -154,11 +155,6 @@
 static void
 gst_fd_sink_init (GstFdSink * fdsink)
 {
-  GstPad *pad;
-
-  pad = GST_BASE_SINK_PAD (fdsink);
-  gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_fd_sink_query));
-
   fdsink->fd = 1;
   fdsink->uri = g_strdup_printf ("fd://%d", fdsink->fd);
   fdsink->bytes_written = 0;
@@ -179,44 +175,67 @@
 }
 
 static gboolean
-gst_fd_sink_query (GstPad * pad, GstQuery * query)
+gst_fd_sink_query (GstBaseSink * bsink, GstQuery * query)
 {
+  gboolean res = FALSE;
   GstFdSink *fdsink;
-  GstFormat format;
 
-  fdsink = GST_FD_SINK (GST_PAD_PARENT (pad));
+  fdsink = GST_FD_SINK (bsink);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
+    {
+      GstFormat format;
+
       gst_query_parse_position (query, &format, NULL);
+
       switch (format) {
         case GST_FORMAT_DEFAULT:
         case GST_FORMAT_BYTES:
           gst_query_set_position (query, GST_FORMAT_BYTES, fdsink->current_pos);
-          return TRUE;
+          res = TRUE;
+          break;
         default:
-          return FALSE;
+          break;
       }
-
+      break;
+    }
     case GST_QUERY_FORMATS:
       gst_query_set_formats (query, 2, GST_FORMAT_DEFAULT, GST_FORMAT_BYTES);
-      return TRUE;
-
+      res = TRUE;
+      break;
     case GST_QUERY_URI:
       gst_query_set_uri (query, fdsink->uri);
-      return TRUE;
+      res = TRUE;
+      break;
+    case GST_QUERY_SEEKING:{
+      GstFormat format;
 
+      gst_query_parse_seeking (query, &format, NULL, NULL, NULL);
+      if (format == GST_FORMAT_BYTES || format == GST_FORMAT_DEFAULT) {
+        gst_query_set_seeking (query, GST_FORMAT_BYTES, fdsink->seekable, 0,
+            -1);
+      } else {
+        gst_query_set_seeking (query, format, FALSE, 0, -1);
+      }
+      res = TRUE;
+      break;
+    }
     default:
-      return gst_pad_query_default (pad, query);
+      res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
+      break;
+
   }
+  return res;
 }
 
 static GstFlowReturn
 gst_fd_sink_render (GstBaseSink * sink, GstBuffer * buffer)
 {
   GstFdSink *fdsink;
-  guint8 *data, *ptr;
-  gsize size, left;
+  GstMapInfo info;
+  guint8 *ptr;
+  gsize left;
   gint written;
 
 #ifndef HAVE_WIN32
@@ -227,16 +246,16 @@
 
   g_return_val_if_fail (fdsink->fd >= 0, GST_FLOW_ERROR);
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
 
-  ptr = data;
-  left = size;
+  ptr = info.data;
+  left = info.size;
 
 again:
 #ifndef HAVE_WIN32
   do {
     GST_DEBUG_OBJECT (fdsink, "going into select, have %" G_GSIZE_FORMAT
-        " bytes to write", size);
+        " bytes to write", info.size);
     retval = gst_poll_wait (fdsink->fdset, GST_CLOCK_TIME_NONE);
   } while (retval == -1 && (errno == EINTR || errno == EAGAIN));
 
@@ -249,7 +268,7 @@
 #endif
 
   GST_DEBUG_OBJECT (fdsink, "writing %" G_GSIZE_FORMAT " bytes to"
-      " file descriptor %d", size, fdsink->fd);
+      " file descriptor %d", info.size, fdsink->fd);
 
   written = write (fdsink->fd, ptr, left);
 
@@ -276,7 +295,7 @@
   if (G_UNLIKELY (left > 0))
     goto again;
 
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &info);
 
   return GST_FLOW_OK;
 
@@ -286,14 +305,14 @@
     GST_ELEMENT_ERROR (fdsink, RESOURCE, READ, (NULL),
         ("select on file descriptor: %s.", g_strerror (errno)));
     GST_DEBUG_OBJECT (fdsink, "Error during select");
-    gst_buffer_unmap (buffer, data, size);
+    gst_buffer_unmap (buffer, &info);
     return GST_FLOW_ERROR;
   }
 stopped:
   {
     GST_DEBUG_OBJECT (fdsink, "Select stopped");
-    gst_buffer_unmap (buffer, data, size);
-    return GST_FLOW_WRONG_STATE;
+    gst_buffer_unmap (buffer, &info);
+    return GST_FLOW_FLUSHING;
   }
 #endif
 
@@ -309,13 +328,13 @@
                 fdsink->fd, g_strerror (errno)));
       }
     }
-    gst_buffer_unmap (buffer, data, size);
+    gst_buffer_unmap (buffer, &info);
     return GST_FLOW_ERROR;
   }
 }
 
 static gboolean
-gst_fd_sink_check_fd (GstFdSink * fdsink, int fd)
+gst_fd_sink_check_fd (GstFdSink * fdsink, int fd, GError ** error)
 {
   struct stat stat_results;
   off_t result;
@@ -347,6 +366,8 @@
   {
     GST_ELEMENT_ERROR (fdsink, RESOURCE, WRITE, (NULL),
         ("File descriptor %d is not valid: %s", fd, g_strerror (errno)));
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_REFERENCE,
+        "File descriptor %d is not valid: %s", fd, g_strerror (errno));
     return FALSE;
   }
 not_seekable:
@@ -363,7 +384,7 @@
   GstPollFD fd = GST_POLL_FD_INIT;
 
   fdsink = GST_FD_SINK (basesink);
-  if (!gst_fd_sink_check_fd (fdsink, fdsink->fd))
+  if (!gst_fd_sink_check_fd (fdsink, fdsink->fd, NULL))
     return FALSE;
 
   if ((fdsink->fdset = gst_poll_new (TRUE)) == NULL)
@@ -376,6 +397,9 @@
   fdsink->bytes_written = 0;
   fdsink->current_pos = 0;
 
+  fdsink->seekable = gst_fd_sink_do_seek (fdsink, 0);
+  GST_INFO_OBJECT (fdsink, "seeking supported: %d", fdsink->seekable);
+
   return TRUE;
 
   /* ERRORS */
@@ -427,12 +451,15 @@
 }
 
 static gboolean
-gst_fd_sink_update_fd (GstFdSink * fdsink, int new_fd)
+gst_fd_sink_update_fd (GstFdSink * fdsink, int new_fd, GError ** error)
 {
-  if (new_fd < 0)
+  if (new_fd < 0) {
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_REFERENCE,
+        "File descriptor %d is not valid", new_fd);
     return FALSE;
+  }
 
-  if (!gst_fd_sink_check_fd (fdsink, new_fd))
+  if (!gst_fd_sink_check_fd (fdsink, new_fd, error))
     goto invalid;
 
   /* assign the fd */
@@ -474,7 +501,7 @@
       int fd;
 
       fd = g_value_get_int (value);
-      gst_fd_sink_update_fd (fdsink, fd);
+      gst_fd_sink_update_fd (fdsink, fd, NULL);
       break;
     }
     default:
@@ -566,13 +593,14 @@
       break;
   }
 
-  return TRUE;
+  return GST_BASE_SINK_CLASS (parent_class)->event (sink, event);
 
 seek_failed:
   {
     GST_ELEMENT_ERROR (fdsink, RESOURCE, SEEK, (NULL),
         ("Error while seeking on file descriptor %d: %s",
             fdsink->fd, g_strerror (errno)));
+    gst_event_unref (event);
     return FALSE;
   }
 
@@ -586,40 +614,37 @@
   return GST_URI_SINK;
 }
 
-static gchar **
+static const gchar *const *
 gst_fd_sink_uri_get_protocols (GType type)
 {
-  static gchar *protocols[] = { (char *) "fd", NULL };
+  static const gchar *protocols[] = { "fd", NULL };
 
   return protocols;
 }
 
-static const gchar *
+static gchar *
 gst_fd_sink_uri_get_uri (GstURIHandler * handler)
 {
   GstFdSink *sink = GST_FD_SINK (handler);
 
-  return sink->uri;
+  /* FIXME: make thread-safe */
+  return g_strdup (sink->uri);
 }
 
 static gboolean
-gst_fd_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_fd_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** error)
 {
-  gchar *protocol;
   GstFdSink *sink = GST_FD_SINK (handler);
   gint fd;
 
-  protocol = gst_uri_get_protocol (uri);
-  if (strcmp (protocol, "fd") != 0) {
-    g_free (protocol);
+  if (sscanf (uri, "fd://%d", &fd) != 1) {
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
+        "File descriptor URI could not be parsed");
     return FALSE;
   }
-  g_free (protocol);
 
-  if (sscanf (uri, "fd://%d", &fd) != 1)
-    return FALSE;
-
-  return gst_fd_sink_update_fd (sink, fd);
+  return gst_fd_sink_update_fd (sink, fd, error);
 }
 
 static void
diff --git a/plugins/elements/gstfdsink.h b/plugins/elements/gstfdsink.h
index 90913b4..59393d0 100644
--- a/plugins/elements/gstfdsink.h
+++ b/plugins/elements/gstfdsink.h
@@ -59,6 +59,8 @@
   int fd;
   guint64 bytes_written;
   guint64 current_pos;
+
+  gboolean seekable;
 };
 
 struct _GstFdSinkClass {
diff --git a/plugins/elements/gstfdsrc.c b/plugins/elements/gstfdsrc.c
index 8e12d52..13c70bd 100644
--- a/plugins/elements/gstfdsrc.c
+++ b/plugins/elements/gstfdsrc.c
@@ -169,7 +169,7 @@
           G_MAXUINT64, DEFAULT_TIMEOUT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Filedescriptor Source",
       "Source/File",
       "Read from a file descriptor", "Erik Walthinsen <omega@cse.ogi.edu>");
@@ -392,24 +392,23 @@
   GstBuffer *buf;
   gssize readbytes;
   guint blocksize;
-  GstClockTime timeout;
-  guint8 *data;
-  gsize maxsize;
+  GstMapInfo info;
 
 #ifndef HAVE_WIN32
+  GstClockTime timeout;
   gboolean try_again;
   gint retval;
 #endif
 
   src = GST_FD_SRC (psrc);
 
+#ifndef HAVE_WIN32
   if (src->timeout > 0) {
     timeout = src->timeout * GST_USECOND;
   } else {
     timeout = GST_CLOCK_TIME_NONE;
   }
 
-#ifndef HAVE_WIN32
   do {
     try_again = FALSE;
 
@@ -442,21 +441,22 @@
   blocksize = GST_BASE_SRC (src)->blocksize;
 
   /* create the buffer */
-  buf = gst_buffer_new_allocate (NULL, blocksize, 0);
+  buf = gst_buffer_new_allocate (NULL, blocksize, NULL);
   if (G_UNLIKELY (buf == NULL))
     goto alloc_failed;
 
-  data = gst_buffer_map (buf, NULL, &maxsize, GST_MAP_WRITE);
+  gst_buffer_map (buf, &info, GST_MAP_WRITE);
 
   do {
-    readbytes = read (src->fd, data, blocksize);
+    readbytes = read (src->fd, info.data, blocksize);
     GST_LOG_OBJECT (src, "read %" G_GSSIZE_FORMAT, readbytes);
   } while (readbytes == -1 && errno == EINTR);  /* retry if interrupted */
 
   if (readbytes < 0)
     goto read_error;
 
-  gst_buffer_unmap (buf, data, readbytes);
+  gst_buffer_unmap (buf, &info);
+  gst_buffer_resize (buf, 0, readbytes);
 
   if (readbytes == 0)
     goto eos;
@@ -484,7 +484,7 @@
 stopped:
   {
     GST_DEBUG_OBJECT (psrc, "Poll stopped");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 #endif
 alloc_failed:
@@ -496,14 +496,14 @@
   {
     GST_DEBUG_OBJECT (psrc, "Read 0 bytes. EOS.");
     gst_buffer_unref (buf);
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 read_error:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
         ("read on file descriptor: %s.", g_strerror (errno)));
     GST_DEBUG_OBJECT (psrc, "Error reading from fd");
-    gst_buffer_unmap (buf, data, 0);
+    gst_buffer_unmap (buf, &info);
     gst_buffer_unref (buf);
     return GST_FLOW_ERROR;
   }
@@ -605,29 +605,31 @@
   return GST_URI_SRC;
 }
 
-static gchar **
+static const gchar *const *
 gst_fd_src_uri_get_protocols (GType type)
 {
-  static gchar *protocols[] = { (char *) "fd", NULL };
+  static const gchar *protocols[] = { "fd", NULL };
 
   return protocols;
 }
 
-static const gchar *
+static gchar *
 gst_fd_src_uri_get_uri (GstURIHandler * handler)
 {
   GstFdSrc *src = GST_FD_SRC (handler);
 
-  return src->uri;
+  /* FIXME: make thread-safe */
+  return g_strdup (src->uri);
 }
 
 static gboolean
-gst_fd_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_fd_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** err)
 {
   gchar *protocol, *q;
   GstFdSrc *src = GST_FD_SRC (handler);
   gint fd;
-  guint64 size = -1;
+  guint64 size = (guint64) - 1;
 
   GST_INFO_OBJECT (src, "checking uri %s", uri);
 
diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
index 02fee92..7b5218b 100644
--- a/plugins/elements/gstfilesink.c
+++ b/plugins/elements/gstfilesink.c
@@ -220,7 +220,7 @@
           "Append to an already existing file", DEFAULT_APPEND,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "File Sink",
       "Sink/File", "Write stream to a file",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
@@ -269,7 +269,8 @@
 }
 
 static gboolean
-gst_file_sink_set_location (GstFileSink * sink, const gchar * location)
+gst_file_sink_set_location (GstFileSink * sink, const gchar * location,
+    GError ** error)
 {
   if (sink->file)
     goto was_open;
@@ -295,6 +296,9 @@
   {
     g_warning ("Changing the `location' property on filesink when a file is "
         "open is not supported.");
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_STATE,
+        "Changing the 'location' property on filesink when a file is "
+        "open is not supported");
     return FALSE;
   }
 }
@@ -307,7 +311,7 @@
 
   switch (prop_id) {
     case PROP_LOCATION:
-      gst_file_sink_set_location (sink, g_value_get_string (value));
+      gst_file_sink_set_location (sink, g_value_get_string (value), NULL);
       break;
     case PROP_BUFFER_MODE:
       sink->buffer_mode = g_value_get_enum (value);
@@ -478,6 +482,16 @@
       res = TRUE;
       break;
 
+    case GST_QUERY_SEEKING:
+      gst_query_parse_seeking (query, &format, NULL, NULL, NULL);
+      if (format == GST_FORMAT_BYTES || format == GST_FORMAT_DEFAULT) {
+        gst_query_set_seeking (query, GST_FORMAT_BYTES, self->seekable, 0, -1);
+      } else {
+        gst_query_set_seeking (query, format, FALSE, 0, -1);
+      }
+      res = TRUE;
+      break;
+
     default:
       res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query);
       break;
@@ -579,7 +593,7 @@
       break;
   }
 
-  return TRUE;
+  return GST_BASE_SINK_CLASS (parent_class)->event (sink, event);
 
   /* ERRORS */
 seek_failed:
@@ -587,6 +601,7 @@
     GST_ELEMENT_ERROR (filesink, RESOURCE, SEEK,
         (_("Error while seeking in file \"%s\"."), filesink->filename),
         GST_ERROR_SYSTEM);
+    gst_event_unref (event);
     return FALSE;
   }
 flush_failed:
@@ -594,6 +609,7 @@
     GST_ELEMENT_ERROR (filesink, RESOURCE, WRITE,
         (_("Error while writing to file \"%s\"."), filesink->filename),
         GST_ERROR_SYSTEM);
+    gst_event_unref (event);
     return FALSE;
   }
 }
@@ -625,24 +641,23 @@
 gst_file_sink_render (GstBaseSink * sink, GstBuffer * buffer)
 {
   GstFileSink *filesink;
-  gsize size;
-  guint8 *data;
+  GstMapInfo info;
 
   filesink = GST_FILE_SINK (sink);
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
 
   GST_DEBUG_OBJECT (filesink,
       "writing %" G_GSIZE_FORMAT " bytes at %" G_GUINT64_FORMAT,
-      size, filesink->current_pos);
+      info.size, filesink->current_pos);
 
-  if (size > 0 && data != NULL) {
-    if (fwrite (data, size, 1, filesink->file) != 1)
+  if (info.size > 0 && info.data != NULL) {
+    if (fwrite (info.data, info.size, 1, filesink->file) != 1)
       goto handle_error;
 
-    filesink->current_pos += size;
+    filesink->current_pos += info.size;
   }
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &info);
 
   return GST_FLOW_OK;
 
@@ -659,7 +674,7 @@
             ("%s", g_strerror (errno)));
       }
     }
-    gst_buffer_unmap (buffer, data, size);
+    gst_buffer_unmap (buffer, &info);
     return GST_FLOW_ERROR;
   }
 }
@@ -685,36 +700,31 @@
   return GST_URI_SINK;
 }
 
-static gchar **
+static const gchar *const *
 gst_file_sink_uri_get_protocols (GType type)
 {
-  static gchar *protocols[] = { (char *) "file", NULL };
+  static const gchar *protocols[] = { "file", NULL };
 
   return protocols;
 }
 
-static const gchar *
+static gchar *
 gst_file_sink_uri_get_uri (GstURIHandler * handler)
 {
   GstFileSink *sink = GST_FILE_SINK (handler);
 
-  return sink->uri;
+  /* FIXME: make thread-safe */
+  return g_strdup (sink->uri);
 }
 
 static gboolean
-gst_file_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_file_sink_uri_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** error)
 {
-  gchar *protocol, *location;
+  gchar *location;
   gboolean ret;
   GstFileSink *sink = GST_FILE_SINK (handler);
 
-  protocol = gst_uri_get_protocol (uri);
-  if (strcmp (protocol, "file") != 0) {
-    g_free (protocol);
-    return FALSE;
-  }
-  g_free (protocol);
-
   /* allow file://localhost/foo/bar by stripping localhost but fail
    * for every other hostname */
   if (g_str_has_prefix (uri, "file://localhost/")) {
@@ -730,20 +740,26 @@
     /* Special case for "file://" as this is used by some applications
      *  to test with gst_element_make_from_uri if there's an element
      *  that supports the URI protocol. */
-    gst_file_sink_set_location (sink, NULL);
+    gst_file_sink_set_location (sink, NULL, NULL);
     return TRUE;
   } else {
     location = gst_uri_get_location (uri);
   }
 
-  if (!location)
+  if (!location) {
+    g_set_error_literal (error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
+        "File URI without location");
     return FALSE;
+  }
+
   if (!g_path_is_absolute (location)) {
+    g_set_error_literal (error, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
+        "File URI location must be an absolute path");
     g_free (location);
     return FALSE;
   }
 
-  ret = gst_file_sink_set_location (sink, location);
+  ret = gst_file_sink_set_location (sink, location, error);
   g_free (location);
 
   return ret;
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index 803530f..8f55d1f 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -130,8 +130,7 @@
 enum
 {
   PROP_0,
-  PROP_LOCATION,
-  PROP_FD
+  PROP_LOCATION
 };
 
 static void gst_file_src_finalize (GObject * object);
@@ -173,10 +172,6 @@
   gobject_class->set_property = gst_file_src_set_property;
   gobject_class->get_property = gst_file_src_get_property;
 
-  g_object_class_install_property (gobject_class, PROP_FD,
-      g_param_spec_int ("fd", "File-descriptor",
-          "File-descriptor for the file being mmap()d", 0, G_MAXINT, 0,
-          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_LOCATION,
       g_param_spec_string ("location", "File Location",
           "Location of the file to read", NULL,
@@ -185,7 +180,7 @@
 
   gobject_class->finalize = gst_file_src_finalize;
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "File Source",
       "Source/File",
       "Read from arbitrary point in a file",
@@ -214,6 +209,8 @@
   src->uri = NULL;
 
   src->is_regular = FALSE;
+
+  gst_base_src_set_blocksize (GST_BASE_SRC (src), DEFAULT_BLOCKSIZE);
 }
 
 static void
@@ -257,7 +254,7 @@
     GST_INFO ("uri      : %s", src->uri);
   }
   g_object_notify (G_OBJECT (src), "location");
-  gst_uri_handler_new_uri (GST_URI_HANDLER (src), src->uri);
+  /* FIXME 0.11: notify "uri" property once there is one */
 
   return TRUE;
 
@@ -305,9 +302,6 @@
     case PROP_LOCATION:
       g_value_set_string (value, src->filename);
       break;
-    case PROP_FD:
-      g_value_set_int (value, src->fd);
-      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -329,7 +323,9 @@
     GstBuffer * buf)
 {
   GstFileSrc *src;
+  guint to_read, bytes_read;
   int ret;
+  GstMapInfo info;
   guint8 *data;
 
   src = GST_FILE_SRC_CAST (basesrc);
@@ -344,31 +340,42 @@
     src->read_position = offset;
   }
 
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
+  gst_buffer_map (buf, &info, GST_MAP_WRITE);
+  data = info.data;
 
-  GST_LOG_OBJECT (src, "Reading %d bytes at offset 0x%" G_GINT64_MODIFIER "x",
-      length, offset);
+  bytes_read = 0;
+  to_read = length;
+  while (to_read > 0) {
+    GST_LOG_OBJECT (src, "Reading %d bytes at offset 0x%" G_GINT64_MODIFIER "x",
+        to_read, offset + bytes_read);
+    errno = 0;
+    ret = read (src->fd, data + bytes_read, to_read);
+    if (G_UNLIKELY (ret < 0)) {
+      if (errno == EAGAIN || errno == EINTR)
+        continue;
+      goto could_not_read;
+    }
 
-  ret = read (src->fd, data, length);
-  if (G_UNLIKELY (ret < 0))
-    goto could_not_read;
+    /* files should eos if they read 0 and more was requested */
+    if (G_UNLIKELY (ret == 0)) {
+      /* .. but first we should return any remaining data */
+      if (bytes_read > 0)
+        break;
+      goto eos;
+    }
 
-  /* seekable regular files should have given us what we expected */
-  if (G_UNLIKELY ((guint) ret < length && src->seekable))
-    goto unexpected_eos;
+    to_read -= ret;
+    bytes_read += ret;
 
-  /* other files should eos if they read 0 and more was requested */
-  if (G_UNLIKELY (ret == 0))
-    goto eos;
+    src->read_position += ret;
+  }
 
-  length = ret;
-
-  gst_buffer_unmap (buf, data, length);
+  gst_buffer_unmap (buf, &info);
+  if (bytes_read != length)
+    gst_buffer_resize (buf, 0, bytes_read);
 
   GST_BUFFER_OFFSET (buf) = offset;
-  GST_BUFFER_OFFSET_END (buf) = offset + length;
-
-  src->read_position += length;
+  GST_BUFFER_OFFSET_END (buf) = offset + bytes_read;
 
   return GST_FLOW_OK;
 
@@ -381,21 +388,16 @@
 could_not_read:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), GST_ERROR_SYSTEM);
-    gst_buffer_unmap (buf, data, 0);
-    return GST_FLOW_ERROR;
-  }
-unexpected_eos:
-  {
-    GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
-        ("unexpected end of file."));
-    gst_buffer_unmap (buf, data, 0);
+    gst_buffer_unmap (buf, &info);
+    gst_buffer_resize (buf, 0, 0);
     return GST_FLOW_ERROR;
   }
 eos:
   {
-    GST_DEBUG ("non-regular file hits EOS");
-    gst_buffer_unmap (buf, data, 0);
-    return GST_FLOW_UNEXPECTED;
+    GST_DEBUG ("EOS");
+    gst_buffer_unmap (buf, &info);
+    gst_buffer_resize (buf, 0, 0);
+    return GST_FLOW_EOS;
   }
 }
 
@@ -518,7 +520,7 @@
   {
     GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND,
         (_("No file name specified for reading.")), (NULL));
-    return FALSE;
+    goto error_exit;
   }
 open_failed:
   {
@@ -533,29 +535,30 @@
             GST_ERROR_SYSTEM);
         break;
     }
-    return FALSE;
+    goto error_exit;
   }
 no_stat:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         (_("Could not get info on \"%s\"."), src->filename), (NULL));
-    close (src->fd);
-    return FALSE;
+    goto error_close;
   }
 was_directory:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         (_("\"%s\" is a directory."), src->filename), (NULL));
-    close (src->fd);
-    return FALSE;
+    goto error_close;
   }
 was_socket:
   {
     GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
         (_("File \"%s\" is a socket."), src->filename), (NULL));
-    close (src->fd);
-    return FALSE;
+    goto error_close;
   }
+error_close:
+  close (src->fd);
+error_exit:
+  return FALSE;
 }
 
 /* unmap and close the file */
@@ -582,29 +585,30 @@
   return GST_URI_SRC;
 }
 
-static gchar **
+static const gchar *const *
 gst_file_src_uri_get_protocols (GType type)
 {
-  static gchar *protocols[] = { (char *) "file", NULL };
+  static const gchar *protocols[] = { "file", NULL };
 
   return protocols;
 }
 
-static const gchar *
+static gchar *
 gst_file_src_uri_get_uri (GstURIHandler * handler)
 {
   GstFileSrc *src = GST_FILE_SRC (handler);
 
-  return src->uri;
+  /* FIXME: make thread-safe */
+  return g_strdup (src->uri);
 }
 
 static gboolean
-gst_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_file_src_uri_set_uri (GstURIHandler * handler, const gchar * uri,
+    GError ** err)
 {
   gchar *location, *hostname = NULL;
   gboolean ret = FALSE;
   GstFileSrc *src = GST_FILE_SRC (handler);
-  GError *error = NULL;
 
   if (strcmp (uri, "file://") == 0) {
     /* Special case for "file://" as this is used by some applications
@@ -614,22 +618,19 @@
     return TRUE;
   }
 
-  location = g_filename_from_uri (uri, &hostname, &error);
+  location = g_filename_from_uri (uri, &hostname, err);
 
-  if (!location || error) {
-    if (error) {
-      GST_WARNING_OBJECT (src, "Invalid URI '%s' for filesrc: %s", uri,
-          error->message);
-      g_error_free (error);
-    } else {
-      GST_WARNING_OBJECT (src, "Invalid URI '%s' for filesrc", uri);
-    }
+  if (!location || (err != NULL && *err != NULL)) {
+    GST_WARNING_OBJECT (src, "Invalid URI '%s' for filesrc: %s", uri,
+        (err != NULL && *err != NULL) ? (*err)->message : "unknown error");
     goto beach;
   }
 
   if ((hostname) && (strcmp (hostname, "localhost"))) {
     /* Only 'localhost' is permitted */
     GST_WARNING_OBJECT (src, "Invalid hostname '%s' for filesrc", hostname);
+    g_set_error (err, GST_URI_ERROR, GST_URI_ERROR_BAD_URI,
+        "File URI with invalid hostname '%s'", hostname);
     goto beach;
   }
 #ifdef G_OS_WIN32
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index 5b37e72..9a9f455 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -94,7 +94,7 @@
 }
 
 static GstStaticPadTemplate funnel_sink_template =
-GST_STATIC_PAD_TEMPLATE ("sink%d",
+GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
@@ -116,11 +116,15 @@
     GstPadTemplate * templ, const gchar * name, const GstCaps * caps);
 static void gst_funnel_release_pad (GstElement * element, GstPad * pad);
 
-static GstFlowReturn gst_funnel_sink_chain (GstPad * pad, GstBuffer * buffer);
-static gboolean gst_funnel_sink_event (GstPad * pad, GstEvent * event);
-static GstCaps *gst_funnel_sink_getcaps (GstPad * pad, GstCaps * filter);
+static GstFlowReturn gst_funnel_sink_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static gboolean gst_funnel_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_funnel_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
-static gboolean gst_funnel_src_event (GstPad * pad, GstEvent * event);
+static gboolean gst_funnel_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
 
 static void
 gst_funnel_dispose (GObject * object)
@@ -148,7 +152,7 @@
 
   gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_funnel_dispose);
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Funnel pipe fitting", "Generic", "N-to-1 pipe fitting",
       "Olivier Crete <olivier.crete@collabora.co.uk>");
 
@@ -189,8 +193,8 @@
       GST_DEBUG_FUNCPTR (gst_funnel_sink_chain));
   gst_pad_set_event_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_funnel_sink_event));
-  gst_pad_set_getcaps_function (sinkpad,
-      GST_DEBUG_FUNCPTR (gst_funnel_sink_getcaps));
+  gst_pad_set_query_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_funnel_sink_query));
 
   gst_pad_set_active (sinkpad, TRUE);
 
@@ -211,29 +215,11 @@
   gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad);
 }
 
-static GstCaps *
-gst_funnel_sink_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstFunnel *funnel = GST_FUNNEL (gst_pad_get_parent (pad));
-  GstCaps *caps;
-
-  if (G_UNLIKELY (funnel == NULL))
-    return gst_caps_new_any ();
-
-  caps = gst_pad_peer_get_caps (funnel->srcpad, filter);
-  if (caps == NULL)
-    caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  gst_object_unref (funnel);
-
-  return caps;
-}
-
 static GstFlowReturn
-gst_funnel_sink_chain (GstPad * pad, GstBuffer * buffer)
+gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstFlowReturn res;
-  GstFunnel *funnel = GST_FUNNEL (gst_pad_get_parent (pad));
+  GstFunnel *funnel = GST_FUNNEL (parent);
   GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
   GstEvent *event = NULL;
   GstClockTime newts;
@@ -293,24 +279,18 @@
 #if 0
 out:
 #endif
-  gst_object_unref (funnel);
 
   return res;
 }
 
 static gboolean
-gst_funnel_sink_event (GstPad * pad, GstEvent * event)
+gst_funnel_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
-  GstFunnel *funnel = GST_FUNNEL (gst_pad_get_parent (pad));
+  GstFunnel *funnel = GST_FUNNEL (parent);
   GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
   gboolean forward = TRUE;
   gboolean res = TRUE;
 
-  if (G_UNLIKELY (funnel == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
-
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_SEGMENT:
     {
@@ -338,13 +318,24 @@
   else
     gst_event_unref (event);
 
-  gst_object_unref (funnel);
+  return res;
+}
+
+static gboolean
+gst_funnel_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstFunnel *funnel = GST_FUNNEL (parent);
+  gboolean forward = TRUE;
+  gboolean res = TRUE;
+
+  if (forward)
+    res = gst_pad_peer_query (funnel->srcpad, query);
 
   return res;
 }
 
 static gboolean
-gst_funnel_src_event (GstPad * pad, GstEvent * event)
+gst_funnel_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstElement *funnel;
   GstIterator *iter;
@@ -353,11 +344,7 @@
   gboolean done = FALSE;
   GValue value = { 0, };
 
-  funnel = gst_pad_get_parent_element (pad);
-  if (G_UNLIKELY (funnel == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
+  funnel = GST_ELEMENT_CAST (parent);
 
   iter = gst_element_iterate_sink_pads (funnel);
 
@@ -382,7 +369,6 @@
   }
   g_value_unset (&value);
   gst_iterator_free (iter);
-  gst_object_unref (funnel);
   gst_event_unref (event);
 
   return result;
diff --git a/plugins/elements/gstidentity.c b/plugins/elements/gstidentity.c
index 460660f..50afaec 100644
--- a/plugins/elements/gstidentity.c
+++ b/plugins/elements/gstidentity.c
@@ -32,10 +32,10 @@
 #endif
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "../../gst/gst-i18n-lib.h"
 #include "gstidentity.h"
-#include <gst/gstmarshal.h>
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
@@ -63,7 +63,7 @@
 #define DEFAULT_ERROR_AFTER             -1
 #define DEFAULT_DROP_PROBABILITY        0.0
 #define DEFAULT_DATARATE                0
-#define DEFAULT_SILENT                  FALSE
+#define DEFAULT_SILENT                  TRUE
 #define DEFAULT_SINGLE_SEGMENT          FALSE
 #define DEFAULT_DUMP                    FALSE
 #define DEFAULT_SYNC                    FALSE
@@ -107,10 +107,10 @@
     GstEvent * event);
 static GstFlowReturn gst_identity_transform_ip (GstBaseTransform * trans,
     GstBuffer * buf);
-static GstFlowReturn gst_identity_prepare_output_buffer (GstBaseTransform *
-    trans, GstBuffer * in_buf, GstBuffer ** out_buf);
 static gboolean gst_identity_start (GstBaseTransform * trans);
 static gboolean gst_identity_stop (GstBaseTransform * trans);
+static GstStateChangeReturn gst_identity_change_state (GstElement * element,
+    GstStateChange transition);
 
 static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
 
@@ -125,41 +125,9 @@
 
   g_free (identity->last_message);
 
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_static_rec_mutex_free (&identity->notify_lock);
-#endif
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
-/* fixme: do something about this */
-static void
-marshal_VOID__MINIOBJECT (GClosure * closure, GValue * return_value,
-    guint n_param_values, const GValue * param_values, gpointer invocation_hint,
-    gpointer marshal_data)
-{
-  typedef void (*marshalfunc_VOID__MINIOBJECT) (gpointer obj, gpointer arg1,
-      gpointer data2);
-  register marshalfunc_VOID__MINIOBJECT callback;
-  register GCClosure *cc = (GCClosure *) closure;
-  register gpointer data1, data2;
-
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure)) {
-    data1 = closure->data;
-    data2 = g_value_peek_pointer (param_values + 0);
-  } else {
-    data1 = g_value_peek_pointer (param_values + 0);
-    data2 = closure->data;
-  }
-  callback =
-      (marshalfunc_VOID__MINIOBJECT) (marshal_data ? marshal_data :
-      cc->callback);
-
-  callback (data1, g_value_get_boxed (param_values + 1), data2);
-}
-
 static void
 gst_identity_class_init (GstIdentityClass * klass)
 {
@@ -254,11 +222,12 @@
   gst_identity_signals[SIGNAL_HANDOFF] =
       g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstIdentityClass, handoff), NULL, NULL,
-      marshal_VOID__MINIOBJECT, G_TYPE_NONE, 1, GST_TYPE_BUFFER);
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1,
+      GST_TYPE_BUFFER | G_SIGNAL_TYPE_STATIC_SCOPE);
 
   gobject_class->finalize = gst_identity_finalize;
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Identity",
       "Generic",
       "Pass data without modification", "Erik Walthinsen <omega@cse.ogi.edu>");
@@ -267,11 +236,12 @@
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sinktemplate));
 
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_identity_change_state);
+
   gstbasetrans_class->sink_event = GST_DEBUG_FUNCPTR (gst_identity_sink_event);
   gstbasetrans_class->transform_ip =
       GST_DEBUG_FUNCPTR (gst_identity_transform_ip);
-  gstbasetrans_class->prepare_output_buffer =
-      GST_DEBUG_FUNCPTR (gst_identity_prepare_output_buffer);
   gstbasetrans_class->start = GST_DEBUG_FUNCPTR (gst_identity_start);
   gstbasetrans_class->stop = GST_DEBUG_FUNCPTR (gst_identity_stop);
 }
@@ -293,29 +263,13 @@
   identity->last_message = NULL;
   identity->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
 
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_static_rec_mutex_init (&identity->notify_lock);
-#endif
-
   gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM_CAST (identity), TRUE);
 }
 
 static void
 gst_identity_notify_last_message (GstIdentity * identity)
 {
-  /* FIXME: this hacks around a bug in GLib/GObject: doing concurrent
-   * g_object_notify() on the same object might lead to crashes, see
-   * http://bugzilla.gnome.org/show_bug.cgi?id=166020#c60 and follow-ups.
-   * So we really don't want to do a g_object_notify() here for out-of-band
-   * events with the streaming thread possibly also doing a g_object_notify()
-   * for an in-band buffer or event. This is fixed in GLib >= 2.26 */
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_static_rec_mutex_lock (&identity->notify_lock);
-  g_object_notify ((GObject *) identity, "last-message");
-  g_static_rec_mutex_unlock (&identity->notify_lock);
-#else
   g_object_notify_by_pspec ((GObject *) identity, pspec_last_message);
-#endif
 }
 
 static gboolean
@@ -328,20 +282,22 @@
 
   if (!identity->silent) {
     const GstStructure *s;
+    const gchar *tstr;
     gchar *sstr;
 
     GST_OBJECT_LOCK (identity);
     g_free (identity->last_message);
 
+    tstr = gst_event_type_get_name (GST_EVENT_TYPE (event));
     if ((s = gst_event_get_structure (event)))
       sstr = gst_structure_to_string (s);
     else
       sstr = g_strdup ("");
 
     identity->last_message =
-        g_strdup_printf ("event   ******* (%s:%s) E (type: %d, %s) %p",
-        GST_DEBUG_PAD_NAME (trans->sinkpad), GST_EVENT_TYPE (event), sstr,
-        event);
+        g_strdup_printf ("event   ******* (%s:%s) E (type: %s (%d), %s) %p",
+        GST_DEBUG_PAD_NAME (trans->sinkpad), tstr, GST_EVENT_TYPE (event),
+        sstr, event);
     g_free (sstr);
     GST_OBJECT_UNLOCK (identity);
 
@@ -361,7 +317,7 @@
       gst_segment_init (&segment, segment.format);
       news = gst_event_new_segment (&segment);
 
-      gst_pad_event_default (trans->sinkpad, news);
+      gst_pad_event_default (trans->sinkpad, GST_OBJECT_CAST (trans), news);
     }
   }
 
@@ -372,39 +328,28 @@
     identity->prev_offset = identity->prev_offset_end = GST_BUFFER_OFFSET_NONE;
   }
 
-
-  if (identity->single_segment && (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT)) {
+  if (identity->single_segment && GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
     /* eat up segments */
     gst_event_unref (event);
     ret = TRUE;
   } else {
+    if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_START) {
+      GST_OBJECT_LOCK (identity);
+      if (identity->clock_id) {
+        GST_DEBUG_OBJECT (identity, "unlock clock wait");
+        gst_clock_id_unschedule (identity->clock_id);
+        gst_clock_id_unref (identity->clock_id);
+        identity->clock_id = NULL;
+      }
+      GST_OBJECT_UNLOCK (identity);
+    }
+
     ret = GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event);
   }
 
   return ret;
 }
 
-static GstFlowReturn
-gst_identity_prepare_output_buffer (GstBaseTransform * trans,
-    GstBuffer * in_buf, GstBuffer ** out_buf)
-{
-  GstIdentity *identity = GST_IDENTITY (trans);
-
-  /* only bother if we may have to alter metadata */
-  if (identity->datarate > 0 || identity->single_segment) {
-    if (gst_buffer_is_writable (in_buf))
-      /* reuse */
-      *out_buf = in_buf;
-    else {
-      /* copy */
-      *out_buf = gst_buffer_copy (in_buf);
-    }
-  } else
-    *out_buf = in_buf;
-
-  return GST_FLOW_OK;
-}
-
 static void
 gst_identity_check_perfect (GstIdentity * identity, GstBuffer * buf)
 {
@@ -559,19 +504,41 @@
 gst_identity_update_last_message_for_buffer (GstIdentity * identity,
     const gchar * action, GstBuffer * buf, gsize size)
 {
-  gchar ts_str[64], dur_str[64];
+  gchar dts_str[64], pts_str[64], dur_str[64];
+  gchar flag_str[100];
 
   GST_OBJECT_LOCK (identity);
 
+  {
+    const char *flag_list[15] = {
+      "", "", "", "", "live", "decode-only", "discont", "resync", "corrupted",
+      "marker", "header", "gap", "droppable", "delta-unit", "in-caps"
+    };
+    int i;
+    char *end = flag_str;
+    end[0] = '\0';
+    for (i = 0; i < G_N_ELEMENTS (flag_list); i++) {
+      if (GST_MINI_OBJECT_CAST (buf)->flags & (1 << i)) {
+        strcpy (end, flag_list[i]);
+        end += strlen (end);
+        end[0] = ' ';
+        end[1] = '\0';
+        end++;
+      }
+    }
+  }
+
   g_free (identity->last_message);
-  identity->last_message = g_strdup_printf ("%s   ******* (%s:%s)i "
-      "(%" G_GSIZE_FORMAT " bytes, timestamp: %s, duration: %s, offset: %"
-      G_GINT64_FORMAT ", " "offset_end: % " G_GINT64_FORMAT ", flags: %d) %p",
-      action, GST_DEBUG_PAD_NAME (GST_BASE_TRANSFORM_CAST (identity)->sinkpad),
-      size, print_pretty_time (ts_str, sizeof (ts_str),
-          GST_BUFFER_TIMESTAMP (buf)), print_pretty_time (dur_str,
-          sizeof (dur_str), GST_BUFFER_DURATION (buf)), GST_BUFFER_OFFSET (buf),
-      GST_BUFFER_OFFSET_END (buf), GST_BUFFER_FLAGS (buf), buf);
+  identity->last_message = g_strdup_printf ("%s   ******* (%s:%s) "
+      "(%" G_GSIZE_FORMAT " bytes, dts: %s, pts:%s, duration: %s, offset: %"
+      G_GINT64_FORMAT ", " "offset_end: % " G_GINT64_FORMAT
+      ", flags: %d %s) %p", action,
+      GST_DEBUG_PAD_NAME (GST_BASE_TRANSFORM_CAST (identity)->sinkpad), size,
+      print_pretty_time (dts_str, sizeof (dts_str), GST_BUFFER_DTS (buf)),
+      print_pretty_time (pts_str, sizeof (pts_str), GST_BUFFER_PTS (buf)),
+      print_pretty_time (dur_str, sizeof (dur_str), GST_BUFFER_DURATION (buf)),
+      GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf),
+      GST_BUFFER_FLAGS (buf), flag_str, buf);
 
   GST_OBJECT_UNLOCK (identity);
 
@@ -584,10 +551,9 @@
   GstFlowReturn ret = GST_FLOW_OK;
   GstIdentity *identity = GST_IDENTITY (trans);
   GstClockTime runtimestamp = G_GINT64_CONSTANT (0);
-  guint8 *data;
   gsize size;
 
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
+  size = gst_buffer_get_size (buf);
 
   if (identity->check_perfect)
     gst_identity_check_perfect (identity, buf);
@@ -614,7 +580,11 @@
   }
 
   if (identity->dump) {
-    gst_util_dump_mem (data, size);
+    GstMapInfo info;
+
+    gst_buffer_map (buf, &info, GST_MAP_READ);
+    gst_util_dump_mem (info.data, info.size);
+    gst_buffer_unmap (buf, &info);
   }
 
   if (!identity->silent) {
@@ -647,7 +617,6 @@
       timestamp = runtimestamp + GST_ELEMENT (identity)->base_time;
 
       /* save id if we need to unlock */
-      /* FIXME: actually unlock this somewhere in the state changes */
       identity->clock_id = gst_clock_new_single_shot_id (clock, timestamp);
       GST_OBJECT_UNLOCK (identity);
 
@@ -659,7 +628,7 @@
         identity->clock_id = NULL;
       }
       if (cret == GST_CLOCK_UNSCHEDULED)
-        ret = GST_FLOW_UNEXPECTED;
+        ret = GST_FLOW_EOS;
     }
     GST_OBJECT_UNLOCK (identity);
   }
@@ -676,8 +645,6 @@
     GST_BUFFER_OFFSET_END (buf) = GST_CLOCK_TIME_NONE;
   }
 
-  gst_buffer_unmap (buf, data, size);
-
   return ret;
 
   /* ERRORS */
@@ -685,7 +652,6 @@
   {
     GST_ELEMENT_ERROR (identity, CORE, FAILED,
         (_("Failed after iterations as requested.")), (NULL));
-    gst_buffer_unmap (buf, data, size);
     return GST_FLOW_ERROR;
   }
 dropped:
@@ -694,7 +660,6 @@
       gst_identity_update_last_message_for_buffer (identity, "dropping", buf,
           size);
     }
-    gst_buffer_unmap (buf, data, size);
     /* return DROPPED to basetransform. */
     return GST_BASE_TRANSFORM_FLOW_DROPPED;
   }
@@ -749,6 +714,10 @@
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }
+  if (identity->datarate > 0 || identity->single_segment)
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (identity), FALSE);
+  else
+    gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (identity), TRUE);
 }
 
 static void
@@ -837,3 +806,46 @@
 
   return TRUE;
 }
+
+static GstStateChangeReturn
+gst_identity_change_state (GstElement * element, GstStateChange transition)
+{
+  GstStateChangeReturn ret;
+  GstIdentity *identity = GST_IDENTITY (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_OBJECT_LOCK (identity);
+      if (identity->clock_id) {
+        GST_DEBUG_OBJECT (identity, "unlock clock wait");
+        gst_clock_id_unschedule (identity->clock_id);
+        gst_clock_id_unref (identity->clock_id);
+        identity->clock_id = NULL;
+      }
+      GST_OBJECT_UNLOCK (identity);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
diff --git a/plugins/elements/gstidentity.h b/plugins/elements/gstidentity.h
index a608d2b..fabc667 100644
--- a/plugins/elements/gstidentity.h
+++ b/plugins/elements/gstidentity.h
@@ -73,10 +73,6 @@
   gchar 	*last_message;
   guint64        offset;
   gboolean       signal_handoffs;
-
-#if !GLIB_CHECK_VERSION(2,26,0)
-  GStaticRecMutex  notify_lock;
-#endif
 };
 
 struct _GstIdentityClass {
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index 7235a47..564e721 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -59,28 +59,13 @@
 
 #include "gstinputselector.h"
 
+#include "gst/glib-compat-private.h"
+
 GST_DEBUG_CATEGORY_STATIC (input_selector_debug);
 #define GST_CAT_DEFAULT input_selector_debug
 
-#if GLIB_CHECK_VERSION(2, 26, 0)
-#define NOTIFY_MUTEX_LOCK()
-#define NOTIFY_MUTEX_UNLOCK()
-#else
-static GStaticRecMutex notify_mutex = G_STATIC_REC_MUTEX_INIT;
-#define NOTIFY_MUTEX_LOCK() g_static_rec_mutex_lock (&notify_mutex)
-#define NOTIFY_MUTEX_UNLOCK() g_static_rec_mutex_unlock (&notify_mutex)
-#endif
-
-#define GST_INPUT_SELECTOR_GET_LOCK(sel) (((GstInputSelector*)(sel))->lock)
-#define GST_INPUT_SELECTOR_GET_COND(sel) (((GstInputSelector*)(sel))->cond)
-#define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
-#define GST_INPUT_SELECTOR_UNLOCK(sel) (g_mutex_unlock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
-#define GST_INPUT_SELECTOR_WAIT(sel) (g_cond_wait (GST_INPUT_SELECTOR_GET_COND(sel), \
-			GST_INPUT_SELECTOR_GET_LOCK(sel)))
-#define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
-
 static GstStaticPadTemplate gst_input_selector_sink_factory =
-GST_STATIC_PAD_TEMPLATE ("sink%d",
+GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
@@ -99,7 +84,7 @@
   PROP_SYNC_STREAMS
 };
 
-#define DEFAULT_SYNC_STREAMS FALSE
+#define DEFAULT_SYNC_STREAMS TRUE
 
 #define DEFAULT_PAD_ALWAYS_OK TRUE
 
@@ -178,11 +163,14 @@
 
 static gint64 gst_selector_pad_get_running_time (GstSelectorPad * pad);
 static void gst_selector_pad_reset (GstSelectorPad * pad);
-static gboolean gst_selector_pad_event (GstPad * pad, GstEvent * event);
-static GstCaps *gst_selector_pad_getcaps (GstPad * pad, GstCaps * filter);
-static gboolean gst_selector_pad_acceptcaps (GstPad * pad, GstCaps * caps);
-static GstIterator *gst_selector_pad_iterate_linked_pads (GstPad * pad);
-static GstFlowReturn gst_selector_pad_chain (GstPad * pad, GstBuffer * buf);
+static gboolean gst_selector_pad_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_selector_pad_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+static GstIterator *gst_selector_pad_iterate_linked_pads (GstPad * pad,
+    GstObject * parent);
+static GstFlowReturn gst_selector_pad_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buf);
 
 G_DEFINE_TYPE (GstSelectorPad, gst_selector_pad, GST_TYPE_PAD);
 
@@ -330,16 +318,14 @@
 /* strictly get the linked pad from the sinkpad. If the pad is active we return
  * the srcpad else we return NULL */
 static GstIterator *
-gst_selector_pad_iterate_linked_pads (GstPad * pad)
+gst_selector_pad_iterate_linked_pads (GstPad * pad, GstObject * parent)
 {
   GstInputSelector *sel;
   GstPad *otherpad;
   GstIterator *it = NULL;
   GValue val = { 0, };
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL))
-    return NULL;
+  sel = GST_INPUT_SELECTOR (parent);
 
   otherpad = gst_input_selector_get_linked_pad (sel, pad, TRUE);
   if (otherpad) {
@@ -349,13 +335,12 @@
     g_value_unset (&val);
     gst_object_unref (otherpad);
   }
-  gst_object_unref (sel);
 
   return it;
 }
 
 static gboolean
-gst_selector_pad_event (GstPad * pad, GstEvent * event)
+gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
   gboolean forward;
@@ -364,11 +349,7 @@
   GstPad *prev_active_sinkpad;
   GstPad *active_sinkpad;
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
+  sel = GST_INPUT_SELECTOR (parent);
   selpad = GST_SELECTOR_PAD_CAST (pad);
 
   GST_INPUT_SELECTOR_LOCK (sel);
@@ -380,9 +361,7 @@
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
   if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
-    NOTIFY_MUTEX_LOCK ();
     g_object_notify (G_OBJECT (sel), "active-pad");
-    NOTIFY_MUTEX_UNLOCK ();
   }
 
   switch (GST_EVENT_TYPE (event)) {
@@ -486,44 +465,19 @@
   } else
     gst_event_unref (event);
 
-  gst_object_unref (sel);
-
   return res;
 }
 
-static GstCaps *
-gst_selector_pad_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstInputSelector *sel;
-  GstCaps *caps;
-
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL))
-    return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  GST_DEBUG_OBJECT (sel, "Getting caps of srcpad peer");
-  caps = gst_pad_peer_get_caps (sel->srcpad, filter);
-  if (caps == NULL)
-    caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  gst_object_unref (sel);
-
-  return caps;
-}
-
 static gboolean
-gst_selector_pad_acceptcaps (GstPad * pad, GstCaps * caps)
+gst_selector_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstInputSelector *sel;
-  gboolean res;
+  gboolean res = FALSE;
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL))
-    return FALSE;
-
-  GST_DEBUG_OBJECT (sel, "Checking acceptcaps of srcpad peer");
-  res = gst_pad_peer_accept_caps (sel->srcpad, caps);
-  gst_object_unref (sel);
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      res = gst_pad_query_default (pad, parent, query);
+      break;
+  }
 
   return res;
 }
@@ -550,7 +504,7 @@
   GstPad *active_sinkpad;
   GstSelectorPad *active_selpad;
   GstSegment *seg, *active_seg;
-  GstClockTime running_time, active_running_time = -1;
+  GstClockTime running_time, active_running_time = GST_CLOCK_TIME_NONE;
 
   seg = &pad->segment;
 
@@ -595,9 +549,10 @@
    *   d) the active pad has no running time or the active
    *      pad's running time is before this running time
    *   e) the active pad has a non-time segment
+   *   f) the active pad changed and has not pushed anything
    */
-  while (pad != active_selpad && !sel->flushing && !pad->flushing &&
-      (sel->blocked || active_running_time == -1
+  while (pad != active_selpad && !sel->flushing && !pad->flushing
+      && active_selpad->pushed && (sel->blocked || active_running_time == -1
           || running_time >= active_running_time)) {
     if (!sel->blocked)
       GST_DEBUG_OBJECT (pad,
@@ -641,7 +596,7 @@
 
 
 static GstFlowReturn
-gst_selector_pad_chain (GstPad * pad, GstBuffer * buf)
+gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
   GstInputSelector *sel;
   GstFlowReturn res;
@@ -652,7 +607,7 @@
   GstSegment *seg;
   GstEvent *start_event = NULL;
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
+  sel = GST_INPUT_SELECTOR (parent);
   selpad = GST_SELECTOR_PAD_CAST (pad);
   seg = &selpad->segment;
 
@@ -701,23 +656,24 @@
   /* if we have a pending segment, push it out now */
   if (G_UNLIKELY (prev_active_sinkpad != active_sinkpad
           || selpad->segment_pending)) {
-    GST_DEBUG_OBJECT (pad,
-        "pushing pending NEWSEGMENT update %d, rate %lf, applied rate %lf, "
-        "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
-        G_GINT64_FORMAT, FALSE, seg->rate, seg->applied_rate, seg->format,
-        seg->start, seg->stop, seg->time);
+    if (G_UNLIKELY (seg->format == GST_FORMAT_UNDEFINED)) {
+      GST_ERROR_OBJECT (pad, "Buffers arrived before NEWSEGMENT event");
+    } else {
+      GST_DEBUG_OBJECT (pad,
+          "pushing pending NEWSEGMENT update %d, rate %lf, applied rate %lf, "
+          "format %d, " "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
+          G_GINT64_FORMAT, FALSE, seg->rate, seg->applied_rate, seg->format,
+          seg->start, seg->stop, seg->time);
 
-    start_event = gst_event_new_segment (seg);
-    gst_event_set_seqnum (start_event, selpad->segment_seqnum);
-
-    selpad->segment_pending = FALSE;
+      start_event = gst_event_new_segment (seg);
+      gst_event_set_seqnum (start_event, selpad->segment_seqnum);
+      selpad->segment_pending = FALSE;
+    }
   }
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
   if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
-    NOTIFY_MUTEX_LOCK ();
     g_object_notify (G_OBJECT (sel), "active-pad");
-    NOTIFY_MUTEX_UNLOCK ();
   }
 
   if (start_event)
@@ -738,7 +694,6 @@
   selpad->pushed = TRUE;
 
 done:
-  gst_object_unref (sel);
   return res;
 
   /* dropped buffers */
@@ -767,12 +722,13 @@
     GST_DEBUG_OBJECT (pad, "We are flushing, discard buffer %p", buf);
     GST_INPUT_SELECTOR_UNLOCK (sel);
     gst_buffer_unref (buf);
-    res = GST_FLOW_WRONG_STATE;
+    res = GST_FLOW_FLUSHING;
     goto done;
   }
 }
 
 static void gst_input_selector_dispose (GObject * object);
+static void gst_input_selector_finalize (GObject * object);
 
 static void gst_input_selector_set_property (GObject * object,
     guint prop_id, const GValue * value, GParamSpec * pspec);
@@ -786,9 +742,10 @@
 static GstStateChangeReturn gst_input_selector_change_state (GstElement *
     element, GstStateChange transition);
 
-static GstCaps *gst_input_selector_getcaps (GstPad * pad, GstCaps * filter);
-static gboolean gst_input_selector_event (GstPad * pad, GstEvent * event);
-static gboolean gst_input_selector_query (GstPad * pad, GstQuery * query);
+static gboolean gst_input_selector_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_input_selector_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 static gint64 gst_input_selector_block (GstInputSelector * self);
 
 /* FIXME: create these marshallers using glib-genmarshal */
@@ -837,6 +794,7 @@
   GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
 
   gobject_class->dispose = gst_input_selector_dispose;
+  gobject_class->finalize = gst_input_selector_finalize;
 
   gobject_class->set_property = gst_input_selector_set_property;
   gobject_class->get_property = gst_input_selector_get_property;
@@ -859,7 +817,7 @@
    * buffers are dropped by input-selector that might be needed
    * when switching the active pad.
    *
-   * Since: 0.10.35
+   * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_STREAMS,
       g_param_spec_boolean ("sync-streams", "Sync Streams",
@@ -880,7 +838,7 @@
       G_STRUCT_OFFSET (GstInputSelectorClass, block), NULL, NULL,
       gst_input_selector_marshal_INT64__VOID, G_TYPE_INT64, 0);
 
-  gst_element_class_set_details_simple (gstelement_class, "Input selector",
+  gst_element_class_set_static_metadata (gstelement_class, "Input selector",
       "Generic", "N-to-1 input stream selector",
       "Julien Moutte <julien@moutte.net>, "
       "Jan Schmidt <thaytan@mad.scientist.com>, "
@@ -903,20 +861,19 @@
   sel->srcpad = gst_pad_new ("src", GST_PAD_SRC);
   gst_pad_set_iterate_internal_links_function (sel->srcpad,
       GST_DEBUG_FUNCPTR (gst_selector_pad_iterate_linked_pads));
-  gst_pad_set_getcaps_function (sel->srcpad,
-      GST_DEBUG_FUNCPTR (gst_input_selector_getcaps));
   gst_pad_set_query_function (sel->srcpad,
       GST_DEBUG_FUNCPTR (gst_input_selector_query));
   gst_pad_set_event_function (sel->srcpad,
       GST_DEBUG_FUNCPTR (gst_input_selector_event));
+  GST_OBJECT_FLAG_SET (sel->srcpad, GST_PAD_FLAG_PROXY_CAPS);
   gst_element_add_pad (GST_ELEMENT (sel), sel->srcpad);
   /* sinkpad management */
   sel->active_sinkpad = NULL;
   sel->padcount = 0;
   sel->sync_streams = DEFAULT_SYNC_STREAMS;
 
-  sel->lock = g_mutex_new ();
-  sel->cond = g_cond_new ();
+  g_mutex_init (&sel->lock);
+  g_cond_init (&sel->cond);
   sel->blocked = FALSE;
 }
 
@@ -929,18 +886,20 @@
     gst_object_unref (sel->active_sinkpad);
     sel->active_sinkpad = NULL;
   }
-  if (sel->lock) {
-    g_mutex_free (sel->lock);
-    sel->lock = NULL;
-  }
-  if (sel->cond) {
-    g_cond_free (sel->cond);
-    sel->cond = NULL;
-  }
-
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
+static void
+gst_input_selector_finalize (GObject * object)
+{
+  GstInputSelector *sel = GST_INPUT_SELECTOR (object);
+
+  g_mutex_clear (&sel->lock);
+  g_cond_clear (&sel->cond);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
 /* this function must be called with the SELECTOR_LOCK. It returns TRUE when the
  * active pad changed. */
 static gboolean
@@ -1059,7 +1018,7 @@
 }
 
 static gboolean
-gst_input_selector_event (GstPad * pad, GstEvent * event)
+gst_input_selector_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstInputSelector *sel;
   gboolean result = FALSE;
@@ -1069,12 +1028,7 @@
   GstPad *eventpad;
   GList *pushed_pads = NULL;
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
-
+  sel = GST_INPUT_SELECTOR (parent);
   /* Send upstream events to all sinkpads */
   iter = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (sel));
 
@@ -1124,17 +1078,12 @@
 /* query on the srcpad. We override this function because by default it will
  * only forward the query to one random sinkpad */
 static gboolean
-gst_input_selector_query (GstPad * pad, GstQuery * query)
+gst_input_selector_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  gboolean res = TRUE;
+  gboolean res = FALSE;
   GstInputSelector *sel;
-  GstPad *otherpad;
 
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL))
-    return FALSE;
-
-  otherpad = gst_input_selector_get_linked_pad (sel, pad, TRUE);
+  sel = GST_INPUT_SELECTOR (parent);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_LATENCY:
@@ -1147,9 +1096,6 @@
       resmax = -1;
       reslive = FALSE;
 
-      /* assume FALSE, we become TRUE if one query succeeds */
-      res = FALSE;
-
       /* perform the query on all sinkpads and combine the results. We take the
        * max of min and the min of max for the result latency. */
       GST_INPUT_SELECTOR_LOCK (sel);
@@ -1195,47 +1141,13 @@
       break;
     }
     default:
-      if (otherpad)
-        res = gst_pad_peer_query (otherpad, query);
+      res = gst_pad_query_default (pad, parent, query);
       break;
   }
-  if (otherpad)
-    gst_object_unref (otherpad);
-  gst_object_unref (sel);
 
   return res;
 }
 
-static GstCaps *
-gst_input_selector_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstPad *otherpad;
-  GstInputSelector *sel;
-  GstCaps *caps;
-
-  sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL))
-    return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  otherpad = gst_input_selector_get_linked_pad (sel, pad, FALSE);
-
-  if (!otherpad) {
-    GST_DEBUG_OBJECT (pad, "Pad not linked, returning ANY");
-    caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-  } else {
-    GST_DEBUG_OBJECT (pad, "Pad is linked (to %s:%s), returning peer caps",
-        GST_DEBUG_PAD_NAME (otherpad));
-    /* if the peer has caps, use those. If the pad is not linked, this function
-     * returns NULL and we return ANY */
-    if (!(caps = gst_pad_peer_get_caps (otherpad, filter)))
-      caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-    gst_object_unref (otherpad);
-  }
-
-  gst_object_unref (sel);
-  return caps;
-}
-
 /* check if the pad is the active sinkpad */
 static inline gboolean
 gst_input_selector_is_active_sinkpad (GstInputSelector * sel, GstPad * pad)
@@ -1286,7 +1198,7 @@
   GST_INPUT_SELECTOR_LOCK (sel);
 
   GST_LOG_OBJECT (sel, "Creating new pad %d", sel->padcount);
-  name = g_strdup_printf ("sink%d", sel->padcount++);
+  name = g_strdup_printf ("sink_%u", sel->padcount++);
   sinkpad = g_object_new (GST_TYPE_SELECTOR_PAD,
       "name", name, "direction", templ->direction, "template", templ, NULL);
   g_free (name);
@@ -1295,15 +1207,15 @@
 
   gst_pad_set_event_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_selector_pad_event));
-  gst_pad_set_getcaps_function (sinkpad,
-      GST_DEBUG_FUNCPTR (gst_selector_pad_getcaps));
-  gst_pad_set_acceptcaps_function (sinkpad,
-      GST_DEBUG_FUNCPTR (gst_selector_pad_acceptcaps));
+  gst_pad_set_query_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_selector_pad_query));
   gst_pad_set_chain_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_selector_pad_chain));
   gst_pad_set_iterate_internal_links_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_selector_pad_iterate_linked_pads));
 
+  GST_OBJECT_FLAG_SET (sinkpad, GST_PAD_FLAG_PROXY_CAPS);
+  GST_OBJECT_FLAG_SET (sinkpad, GST_PAD_FLAG_PROXY_ALLOCATION);
   gst_pad_set_active (sinkpad, TRUE);
   gst_element_add_pad (GST_ELEMENT (sel), sinkpad);
   GST_INPUT_SELECTOR_UNLOCK (sel);
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index 116c31c..8a5248a 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -40,8 +40,8 @@
 typedef struct _GstInputSelector GstInputSelector;
 typedef struct _GstInputSelectorClass GstInputSelectorClass;
 
-#define GST_INPUT_SELECTOR_GET_LOCK(sel) (((GstInputSelector*)(sel))->lock)
-#define GST_INPUT_SELECTOR_GET_COND(sel) (((GstInputSelector*)(sel))->cond)
+#define GST_INPUT_SELECTOR_GET_LOCK(sel) (&((GstInputSelector*)(sel))->lock)
+#define GST_INPUT_SELECTOR_GET_COND(sel) (&((GstInputSelector*)(sel))->cond)
 #define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
 #define GST_INPUT_SELECTOR_UNLOCK(sel) (g_mutex_unlock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
 #define GST_INPUT_SELECTOR_WAIT(sel) (g_cond_wait (GST_INPUT_SELECTOR_GET_COND(sel), \
@@ -58,8 +58,8 @@
   guint padcount;
   gboolean sync_streams;
 
-  GMutex *lock;
-  GCond *cond;
+  GMutex lock;
+  GCond cond;
   gboolean blocked;
   gboolean flushing;
 };
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index 85083eb..09db153 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -136,6 +136,12 @@
 
   /* flowreturn of previous srcpad push */
   GstFlowReturn srcresult;
+  /* If something was actually pushed on
+   * this pad after flushing/pad activation
+   * and the srcresult corresponds to something
+   * real
+   */
+  gboolean pushed;
 
   /* segments */
   GstSegment sink_segment;
@@ -159,7 +165,11 @@
   guint32 last_oldid;           /* Previously observed old_id, reset to MAXUINT32 on flush */
   GstClockTime next_time;       /* End running time of next buffer to be pushed */
   GstClockTime last_time;       /* Start running time of last pushed buffer */
-  GCond *turn;                  /* SingleQueue turn waiting conditional */
+  GCond turn;                   /* SingleQueue turn waiting conditional */
+
+  /* for serialized queries */
+  GCond query_handled;
+  gboolean last_query;
 };
 
 
@@ -177,7 +187,7 @@
   guint32 posid;
 };
 
-static GstSingleQueue *gst_single_queue_new (GstMultiQueue * mqueue, gint id);
+static GstSingleQueue *gst_single_queue_new (GstMultiQueue * mqueue, guint id);
 static void gst_single_queue_free (GstSingleQueue * squeue);
 
 static void wake_up_next_non_linked (GstMultiQueue * mq);
@@ -186,12 +196,12 @@
 static void single_queue_overrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 static void single_queue_underrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink%d",
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink_%u",
     GST_PAD_SINK,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
 
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src%d",
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src_%u",
     GST_PAD_SRC,
     GST_PAD_SOMETIMES,
     GST_STATIC_CAPS_ANY);
@@ -247,11 +257,11 @@
 };
 
 #define GST_MULTI_QUEUE_MUTEX_LOCK(q) G_STMT_START {                          \
-  g_mutex_lock (q->qlock);                                              \
+  g_mutex_lock (&q->qlock);                                              \
 } G_STMT_END
 
 #define GST_MULTI_QUEUE_MUTEX_UNLOCK(q) G_STMT_START {                        \
-  g_mutex_unlock (q->qlock);                                            \
+  g_mutex_unlock (&q->qlock);                                            \
 } G_STMT_END
 
 static void gst_multi_queue_finalize (GObject * object);
@@ -397,7 +407,7 @@
    * streams by keeping the order in which buffers and events arrived compared
    * to active and linked streams.
    *
-   * Since: 0.10.35
+   * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_BY_RUNNING_TIME,
       g_param_spec_boolean ("sync-by-running-time", "Sync By Running Time",
@@ -407,7 +417,7 @@
 
   gobject_class->finalize = gst_multi_queue_finalize;
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "MultiQueue",
       "Generic", "Multiple data queue", "Edward Hervey <edward@fluendo.com>");
   gst_element_class_add_pad_template (gstelement_class,
@@ -447,7 +457,7 @@
   mqueue->highid = -1;
   mqueue->high_time = GST_CLOCK_TIME_NONE;
 
-  mqueue->qlock = g_mutex_new ();
+  g_mutex_init (&mqueue->qlock);
 }
 
 static void
@@ -461,7 +471,7 @@
   mqueue->queues_cookie++;
 
   /* free/unref instance data */
-  g_mutex_free (mqueue->qlock);
+  g_mutex_clear (&mqueue->qlock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -575,12 +585,12 @@
 }
 
 static GstIterator *
-gst_multi_queue_iterate_internal_links (GstPad * pad)
+gst_multi_queue_iterate_internal_links (GstPad * pad, GstObject * parent)
 {
   GstIterator *it = NULL;
   GstPad *opad;
   GstSingleQueue *squeue;
-  GstMultiQueue *mq = GST_MULTI_QUEUE (gst_pad_get_parent (pad));
+  GstMultiQueue *mq = GST_MULTI_QUEUE (parent);
   GValue val = { 0, };
 
   GST_MULTI_QUEUE_MUTEX_LOCK (mq);
@@ -604,7 +614,6 @@
 
 out:
   GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
-  gst_object_unref (mq);
 
   return it;
 }
@@ -620,10 +629,10 @@
 {
   GstMultiQueue *mqueue = GST_MULTI_QUEUE (element);
   GstSingleQueue *squeue;
-  gint temp_id = -1;
+  guint temp_id = -1;
 
   if (name) {
-    sscanf (name + 4, "%d", &temp_id);
+    sscanf (name + 4, "_%u", &temp_id);
     GST_LOG_OBJECT (element, "name : %s (id %d)", GST_STR_NULL (name), temp_id);
   }
 
@@ -710,7 +719,7 @@
       for (tmp = mqueue->queues; tmp; tmp = g_list_next (tmp)) {
         sq = (GstSingleQueue *) tmp->data;
         sq->flushing = TRUE;
-        g_cond_signal (sq->turn);
+        g_cond_signal (&sq->turn);
       }
       GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
       break;
@@ -741,27 +750,32 @@
       sq->id);
 
   if (flush) {
-    sq->srcresult = GST_FLOW_WRONG_STATE;
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+    sq->srcresult = GST_FLOW_FLUSHING;
     gst_data_queue_set_flushing (sq->queue, TRUE);
 
     sq->flushing = TRUE;
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
     /* wake up non-linked task */
     GST_LOG_OBJECT (mq, "SingleQueue %d : waking up eventually waiting task",
         sq->id);
-    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
-    g_cond_signal (sq->turn);
+    g_cond_signal (&sq->turn);
+    sq->last_query = FALSE;
+    g_cond_signal (&sq->query_handled);
     GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
     GST_LOG_OBJECT (mq, "SingleQueue %d : pausing task", sq->id);
     result = gst_pad_pause_task (sq->srcpad);
     sq->sink_tainted = sq->src_tainted = TRUE;
   } else {
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
     gst_data_queue_flush (sq->queue);
     gst_segment_init (&sq->sink_segment, GST_FORMAT_TIME);
     gst_segment_init (&sq->src_segment, GST_FORMAT_TIME);
     /* All pads start off not-linked for a smooth kick-off */
     sq->srcresult = GST_FLOW_OK;
+    sq->pushed = FALSE;
     sq->cur_time = 0;
     sq->max_size.visible = mq->max_size.visible;
     sq->is_eos = FALSE;
@@ -773,11 +787,10 @@
     gst_data_queue_set_flushing (sq->queue, FALSE);
 
     /* Reset high time to be recomputed next */
-    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
     mq->high_time = GST_CLOCK_TIME_NONE;
-    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
     sq->flushing = FALSE;
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
     GST_LOG_OBJECT (mq, "SingleQueue %d : starting task", sq->id);
     result =
@@ -991,7 +1004,7 @@
     gint i, n;
     GstBuffer *buf;
 
-    n = gst_buffer_list_len (list);
+    n = gst_buffer_list_length (list);
     for (i = 0; i < n; i++) {
       buf = gst_buffer_list_get (list, i);
       if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
@@ -1036,16 +1049,10 @@
   if (GST_IS_BUFFER (object)) {
     GstBuffer *buffer;
     GstClockTime timestamp, duration;
-#if 0
-    GstCaps *caps;
-#endif
 
     buffer = GST_BUFFER_CAST (object);
     timestamp = GST_BUFFER_TIMESTAMP (buffer);
     duration = GST_BUFFER_DURATION (buffer);
-#if 0
-    caps = GST_BUFFER_CAPS (buffer);
-#endif
 
     apply_buffer (mq, sq, timestamp, duration, &sq->src_segment);
 
@@ -1056,14 +1063,6 @@
         "SingleQueue %d : Pushing buffer %p with ts %" GST_TIME_FORMAT,
         sq->id, buffer, GST_TIME_ARGS (timestamp));
 
-#if 0
-    /* Set caps on pad before pushing, this avoids core calling the acceptcaps
-     * function on the srcpad, which will call acceptcaps upstream, which might
-     * not accept these caps (anymore). */
-    if (caps && caps != GST_PAD_CAPS (sq->srcpad))
-      gst_pad_set_caps (sq->srcpad, caps);
-#endif
-
     result = gst_pad_push (sq->srcpad, buffer);
   } else if (GST_IS_EVENT (object)) {
     GstEvent *event;
@@ -1072,7 +1071,7 @@
 
     switch (GST_EVENT_TYPE (event)) {
       case GST_EVENT_EOS:
-        result = GST_FLOW_UNEXPECTED;
+        result = GST_FLOW_EOS;
         break;
       case GST_EVENT_SEGMENT:
         apply_segment (mq, sq, event, &sq->src_segment);
@@ -1088,6 +1087,18 @@
         sq->id, event, GST_EVENT_TYPE_NAME (event));
 
     gst_pad_push_event (sq->srcpad, event);
+  } else if (GST_IS_QUERY (object)) {
+    GstQuery *query;
+    gboolean res;
+
+    query = GST_QUERY_CAST (object);
+
+    res = gst_pad_peer_query (sq->srcpad, query);
+
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+    sq->last_query = res;
+    g_cond_signal (&sq->query_handled);
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
   } else {
     g_warning ("Unexpected object in singlequeue %d (refcounting problem?)",
         sq->id);
@@ -1136,7 +1147,7 @@
 }
 
 static GstMultiQueueItem *
-gst_multi_queue_event_item_new (GstMiniObject * object, guint32 curid)
+gst_multi_queue_mo_item_new (GstMiniObject * object, guint32 curid)
 {
   GstMultiQueueItem *item;
 
@@ -1166,6 +1177,7 @@
   guint32 newid;
   GstFlowReturn result;
   GstClockTime next_time;
+  gboolean is_buffer;
 
   sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
   mq = sq->mqueue;
@@ -1187,6 +1199,8 @@
   object = gst_multi_queue_item_steal_object (item);
   gst_multi_queue_item_destroy (item);
 
+  is_buffer = GST_IS_BUFFER (object);
+
   /* Get running time of the item. Events will have GST_CLOCK_TIME_NONE */
   next_time = get_running_time (&sq->src_segment, object, TRUE);
 
@@ -1198,14 +1212,13 @@
    * or it's the first loop, or we just passed the previous highid, 
    * we might need to wake some sleeping pad up, so there's extra work 
    * there too */
+  GST_MULTI_QUEUE_MUTEX_LOCK (mq);
   if (sq->srcresult == GST_FLOW_NOT_LINKED
       || (sq->last_oldid == G_MAXUINT32) || (newid != (sq->last_oldid + 1))
       || sq->last_oldid > mq->highid) {
     GST_LOG_OBJECT (mq, "CHECKING sq->srcresult: %s",
         gst_flow_get_name (sq->srcresult));
 
-    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
-
     /* Check again if we're flushing after the lock is taken,
      * the flush flag might have been changed in the meantime */
     if (sq->flushing) {
@@ -1245,7 +1258,7 @@
         wake_up_next_non_linked (mq);
 
         mq->numwaiting++;
-        g_cond_wait (sq->turn, mq->qlock);
+        g_cond_wait (&sq->turn, &mq->qlock);
         mq->numwaiting--;
 
         if (sq->flushing) {
@@ -1272,9 +1285,8 @@
     /* We're done waiting, we can clear the nextid and nexttime */
     sq->nextid = 0;
     sq->next_time = GST_CLOCK_TIME_NONE;
-
-    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
   }
+  GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
   if (sq->flushing)
     goto out_flushing;
@@ -1283,6 +1295,7 @@
       gst_flow_get_name (sq->srcresult));
 
   /* Update time stats */
+  GST_MULTI_QUEUE_MUTEX_LOCK (mq);
   next_time = get_running_time (&sq->src_segment, object, FALSE);
   if (next_time != GST_CLOCK_TIME_NONE) {
     if (sq->last_time == GST_CLOCK_TIME_NONE || sq->last_time < next_time)
@@ -1293,21 +1306,59 @@
       wake_up_next_non_linked (mq);
     }
   }
+  GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 
   /* Try to push out the new object */
   result = gst_single_queue_push_one (mq, sq, object);
-  sq->srcresult = result;
   object = NULL;
 
+  /* Check if we pushed something already and if this is
+   * now a switch from an active to a non-active stream.
+   *
+   * If it is, we reset all the waiting streams, let them
+   * push another buffer to see if they're now active again.
+   * This allows faster switching between streams and prevents
+   * deadlocks if downstream does any waiting too.
+   */
+  GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+  if (sq->pushed && sq->srcresult == GST_FLOW_OK
+      && result == GST_FLOW_NOT_LINKED) {
+    GList *tmp;
+
+    GST_LOG_OBJECT (mq, "SingleQueue %d : Changed from active to non-active",
+        sq->id);
+
+    compute_high_id (mq);
+
+    /* maybe no-one is waiting */
+    if (mq->numwaiting > 0) {
+      /* Else figure out which singlequeue(s) need waking up */
+      for (tmp = mq->queues; tmp; tmp = g_list_next (tmp)) {
+        GstSingleQueue *sq2 = (GstSingleQueue *) tmp->data;
+
+        if (sq2->srcresult == GST_FLOW_NOT_LINKED) {
+          GST_LOG_OBJECT (mq, "Waking up singlequeue %d", sq2->id);
+          sq2->pushed = FALSE;
+          sq2->srcresult = GST_FLOW_OK;
+          g_cond_signal (&sq2->turn);
+        }
+      }
+    }
+  }
+
+  if (is_buffer)
+    sq->pushed = TRUE;
+  sq->srcresult = result;
+  sq->last_oldid = newid;
+  GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+
   if (result != GST_FLOW_OK && result != GST_FLOW_NOT_LINKED
-      && result != GST_FLOW_UNEXPECTED)
+      && result != GST_FLOW_EOS)
     goto out_flushing;
 
   GST_LOG_OBJECT (mq, "AFTER PUSHING sq->srcresult: %s",
       gst_flow_get_name (sq->srcresult));
 
-  sq->last_oldid = newid;
-
   return;
 
 out_flushing:
@@ -1317,6 +1368,7 @@
 
     /* Need to make sure wake up any sleeping pads when we exit */
     GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+    compute_high_time (mq);
     compute_high_id (mq);
     wake_up_next_non_linked (mq);
     GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
@@ -1325,7 +1377,7 @@
      * but might be stuck in one of our other full queues;
      * so empty this one and trigger dynamic queue growth. At
      * this point the srcresult is not OK, NOT_LINKED
-     * or UNEXPECTED, i.e. a real failure */
+     * or EOS, i.e. a real failure */
     gst_data_queue_flush (sq->queue);
     single_queue_underrun_cb (sq->queue, sq);
     gst_data_queue_set_flushing (sq->queue, TRUE);
@@ -1345,7 +1397,7 @@
  * _ we push with a unique id (curid)
  */
 static GstFlowReturn
-gst_multi_queue_chain (GstPad * pad, GstBuffer * buffer)
+gst_multi_queue_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstSingleQueue *sq;
   GstMultiQueue *mq;
@@ -1361,7 +1413,7 @@
     goto was_eos;
 
   /* Get a unique incrementing id */
-  curid = G_ATOMIC_INT_ADD ((gint *) & mq->counter, 1);
+  curid = g_atomic_int_add ((gint *) & mq->counter, 1);
 
   GST_LOG_OBJECT (mq, "SingleQueue %d : about to enqueue buffer %p with id %d",
       sq->id, buffer, curid);
@@ -1391,31 +1443,55 @@
   }
 was_eos:
   {
-    GST_DEBUG_OBJECT (mq, "we are EOS, dropping buffer, return UNEXPECTED");
+    GST_DEBUG_OBJECT (mq, "we are EOS, dropping buffer, return EOS");
     gst_buffer_unref (buffer);
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
 static gboolean
-gst_multi_queue_sink_activate_push (GstPad * pad, gboolean active)
+gst_multi_queue_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
+  gboolean res;
   GstSingleQueue *sq;
+  GstMultiQueue *mq;
 
   sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
+  mq = (GstMultiQueue *) gst_pad_get_parent (pad);
 
-  if (active) {
-    /* All pads start off linked until they push one buffer */
-    sq->srcresult = GST_FLOW_OK;
-  } else {
-    sq->srcresult = GST_FLOW_WRONG_STATE;
-    gst_data_queue_flush (sq->queue);
+  /* mq is NULL if the pad is activated/deactivated before being
+   * added to the multiqueue */
+  if (mq)
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+      if (active) {
+        /* All pads start off linked until they push one buffer */
+        sq->srcresult = GST_FLOW_OK;
+        sq->pushed = FALSE;
+      } else {
+        sq->srcresult = GST_FLOW_FLUSHING;
+        gst_data_queue_flush (sq->queue);
+      }
+      res = TRUE;
+      break;
+    default:
+      res = FALSE;
+      break;
   }
-  return TRUE;
+
+  if (mq) {
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+    gst_object_unref (mq);
+  }
+
+  return res;
 }
 
 static gboolean
-gst_multi_queue_sink_event (GstPad * pad, GstEvent * event)
+gst_multi_queue_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstSingleQueue *sq;
   GstMultiQueue *mq;
@@ -1426,7 +1502,7 @@
   GstEvent *sref = NULL;
 
   sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
-  mq = (GstMultiQueue *) gst_pad_get_parent (pad);
+  mq = (GstMultiQueue *) parent;
 
   type = GST_EVENT_TYPE (event);
 
@@ -1467,9 +1543,9 @@
     goto was_eos;
 
   /* Get an unique incrementing id. */
-  curid = G_ATOMIC_INT_ADD ((gint *) & mq->counter, 1);
+  curid = g_atomic_int_add ((gint *) & mq->counter, 1);
 
-  item = gst_multi_queue_event_item_new ((GstMiniObject *) event, curid);
+  item = gst_multi_queue_mo_item_new ((GstMiniObject *) event, curid);
 
   GST_DEBUG_OBJECT (mq,
       "SingleQueue %d : Enqueuing event %p of type %s with id %d",
@@ -1497,7 +1573,6 @@
       break;
   }
 done:
-  gst_object_unref (mq);
   return res;
 
 flushing:
@@ -1518,64 +1593,77 @@
   }
 }
 
-static GstCaps *
-gst_multi_queue_getcaps (GstPad * pad, GstCaps * filter)
+static gboolean
+gst_multi_queue_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstSingleQueue *sq = gst_pad_get_element_private (pad);
-  GstPad *otherpad;
-  GstCaps *result;
+  gboolean res;
+  GstSingleQueue *sq;
+  GstMultiQueue *mq;
 
-  otherpad = (pad == sq->srcpad) ? sq->sinkpad : sq->srcpad;
+  sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
+  mq = (GstMultiQueue *) parent;
 
-  GST_LOG_OBJECT (otherpad, "Getting caps from the peer of this pad");
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      if (GST_QUERY_IS_SERIALIZED (query)) {
+        guint32 curid;
+        GstMultiQueueItem *item;
 
-  result = gst_pad_peer_get_caps (otherpad, filter);
-  if (result == NULL)
-    result = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
+        /* Get an unique incrementing id. */
+        curid = g_atomic_int_add ((gint *) & mq->counter, 1);
 
-  return result;
+        item = gst_multi_queue_mo_item_new ((GstMiniObject *) query, curid);
+
+        GST_DEBUG_OBJECT (mq,
+            "SingleQueue %d : Enqueuing query %p of type %s with id %d",
+            sq->id, query, GST_QUERY_TYPE_NAME (query), curid);
+
+        GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+        res = gst_data_queue_push (sq->queue, (GstDataQueueItem *) item);
+        g_cond_wait (&sq->query_handled, &mq->qlock);
+        res = sq->last_query;
+        GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+      } else {
+        /* default handling */
+        res = gst_pad_query_default (pad, parent, query);
+      }
+      break;
+  }
+  return res;
 }
 
 static gboolean
-gst_multi_queue_acceptcaps (GstPad * pad, GstCaps * caps)
-{
-  GstSingleQueue *sq = gst_pad_get_element_private (pad);
-  GstPad *otherpad;
-  gboolean result;
-
-  otherpad = (pad == sq->srcpad) ? sq->sinkpad : sq->srcpad;
-
-  GST_LOG_OBJECT (otherpad, "Accept caps from the peer of this pad");
-
-  result = gst_pad_peer_accept_caps (otherpad, caps);
-
-  return result;
-}
-
-static gboolean
-gst_multi_queue_src_activate_push (GstPad * pad, gboolean active)
+gst_multi_queue_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
   GstMultiQueue *mq;
   GstSingleQueue *sq;
-  gboolean result = FALSE;
+  gboolean result;
 
   sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
   mq = sq->mqueue;
 
   GST_DEBUG_OBJECT (mq, "SingleQueue %d", sq->id);
 
-  if (active) {
-    result = gst_single_queue_flush (mq, sq, FALSE);
-  } else {
-    result = gst_single_queue_flush (mq, sq, TRUE);
-    /* make sure streaming finishes */
-    result |= gst_pad_stop_task (pad);
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+      if (active) {
+        result = gst_single_queue_flush (mq, sq, FALSE);
+      } else {
+        result = gst_single_queue_flush (mq, sq, TRUE);
+        /* make sure streaming finishes */
+        result |= gst_pad_stop_task (pad);
+      }
+      break;
+    default:
+      result = FALSE;
+      break;
   }
   return result;
 }
 
 static gboolean
-gst_multi_queue_src_event (GstPad * pad, GstEvent * event)
+gst_multi_queue_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstSingleQueue *sq = gst_pad_get_element_private (pad);
 
@@ -1583,30 +1671,18 @@
 }
 
 static gboolean
-gst_multi_queue_src_query (GstPad * pad, GstQuery * query)
+gst_multi_queue_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstSingleQueue *sq = gst_pad_get_element_private (pad);
-  GstPad *peerpad;
   gboolean res;
 
   /* FIXME, Handle position offset depending on queue size */
-
-  /* default handling */
-  if (!(peerpad = gst_pad_get_peer (sq->sinkpad)))
-    goto no_peer;
-
-  res = gst_pad_query (peerpad, query);
-
-  gst_object_unref (peerpad);
-
-  return res;
-
-  /* ERRORS */
-no_peer:
-  {
-    GST_LOG_OBJECT (sq->sinkpad, "Couldn't send query because we have no peer");
-    return FALSE;
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      /* default handling */
+      res = gst_pad_query_default (pad, parent, query);
+      break;
   }
+  return res;
 }
 
 /*
@@ -1633,7 +1709,7 @@
               && sq->next_time >= mq->high_time)
           || (sq->nextid != 0 && sq->nextid <= mq->highid)) {
         GST_LOG_OBJECT (mq, "Waking up singlequeue %d", sq->id);
-        g_cond_signal (sq->turn);
+        g_cond_signal (&sq->turn);
       }
     }
   }
@@ -1664,10 +1740,10 @@
 
       if (sq->nextid < lowest)
         lowest = sq->nextid;
-    } else if (sq->srcresult != GST_FLOW_UNEXPECTED) {
+    } else if (sq->srcresult != GST_FLOW_EOS) {
       /* If we don't have a global highid, or the global highid is lower than
        * this single queue's last outputted id, store the queue's one, 
-       * unless the singlequeue is at EOS (srcresult = UNEXPECTED) */
+       * unless the singlequeue is at EOS (srcresult = EOS) */
       if ((highid == G_MAXUINT32) || (sq->oldid > highid))
         highid = sq->oldid;
     }
@@ -1709,10 +1785,10 @@
 
       if (lowest == GST_CLOCK_TIME_NONE || sq->next_time < lowest)
         lowest = sq->next_time;
-    } else if (sq->srcresult != GST_FLOW_UNEXPECTED) {
+    } else if (sq->srcresult != GST_FLOW_EOS) {
       /* If we don't have a global highid, or the global highid is lower than
        * this single queue's last outputted id, store the queue's one, 
-       * unless the singlequeue is at EOS (srcresult = UNEXPECTED) */
+       * unless the singlequeue is at EOS (srcresult = EOS) */
       if (highest == GST_CLOCK_TIME_NONE || sq->last_time > highest)
         highest = sq->last_time;
     }
@@ -1758,8 +1834,6 @@
             "Another queue is empty, bumping single queue %d max visible to %d",
             sq->id, sq->max_size.visible);
       }
-      GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
-      goto beach;
     }
     /* check if we reached the hard time/bytes limits */
     gst_data_queue_get_level (oq->queue, &ssize);
@@ -1793,7 +1867,6 @@
     g_signal_emit (mq, gst_multi_queue_signals[SIGNAL_OVERRUN], 0);
   }
 
-beach:
   return;
 }
 
@@ -1866,17 +1939,18 @@
   /* DRAIN QUEUE */
   gst_data_queue_flush (sq->queue);
   g_object_unref (sq->queue);
-  g_cond_free (sq->turn);
+  g_cond_clear (&sq->turn);
+  g_cond_clear (&sq->query_handled);
   g_free (sq);
 }
 
 static GstSingleQueue *
-gst_single_queue_new (GstMultiQueue * mqueue, gint id)
+gst_single_queue_new (GstMultiQueue * mqueue, guint id)
 {
   GstSingleQueue *sq;
   gchar *name;
   GList *tmp;
-  gint temp_id = (id == -1) ? 0 : id;
+  guint temp_id = (id == -1) ? 0 : id;
 
   GST_MULTI_QUEUE_MUTEX_LOCK (mqueue);
 
@@ -1916,7 +1990,8 @@
   GST_DEBUG_OBJECT (mqueue, "Creating GstSingleQueue id:%d", sq->id);
 
   sq->mqueue = mqueue;
-  sq->srcresult = GST_FLOW_WRONG_STATE;
+  sq->srcresult = GST_FLOW_FLUSHING;
+  sq->pushed = FALSE;
   sq->queue = gst_data_queue_new_full ((GstDataQueueCheckFullFunction)
       single_queue_check_full,
       (GstDataQueueFullCallback) single_queue_overrun_cb,
@@ -1930,46 +2005,43 @@
   sq->oldid = 0;
   sq->next_time = GST_CLOCK_TIME_NONE;
   sq->last_time = GST_CLOCK_TIME_NONE;
-  sq->turn = g_cond_new ();
+  g_cond_init (&sq->turn);
+  g_cond_init (&sq->query_handled);
 
   sq->sinktime = GST_CLOCK_TIME_NONE;
   sq->srctime = GST_CLOCK_TIME_NONE;
   sq->sink_tainted = TRUE;
   sq->src_tainted = TRUE;
 
-  name = g_strdup_printf ("sink%d", sq->id);
+  name = g_strdup_printf ("sink_%u", sq->id);
   sq->sinkpad = gst_pad_new_from_static_template (&sinktemplate, name);
   g_free (name);
 
   gst_pad_set_chain_function (sq->sinkpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_chain));
-  gst_pad_set_activatepush_function (sq->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_sink_activate_push));
+  gst_pad_set_activatemode_function (sq->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_multi_queue_sink_activate_mode));
   gst_pad_set_event_function (sq->sinkpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_sink_event));
-  gst_pad_set_getcaps_function (sq->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_getcaps));
-  gst_pad_set_acceptcaps_function (sq->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_acceptcaps));
+  gst_pad_set_query_function (sq->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_multi_queue_sink_query));
   gst_pad_set_iterate_internal_links_function (sq->sinkpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_iterate_internal_links));
+  GST_OBJECT_FLAG_SET (sq->sinkpad, GST_PAD_FLAG_PROXY_CAPS);
 
-  name = g_strdup_printf ("src%d", sq->id);
+  name = g_strdup_printf ("src_%u", sq->id);
   sq->srcpad = gst_pad_new_from_static_template (&srctemplate, name);
   g_free (name);
 
-  gst_pad_set_activatepush_function (sq->srcpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_src_activate_push));
-  gst_pad_set_getcaps_function (sq->srcpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_getcaps));
-  gst_pad_set_acceptcaps_function (sq->srcpad,
-      GST_DEBUG_FUNCPTR (gst_multi_queue_acceptcaps));
+  gst_pad_set_activatemode_function (sq->srcpad,
+      GST_DEBUG_FUNCPTR (gst_multi_queue_src_activate_mode));
   gst_pad_set_event_function (sq->srcpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_src_event));
   gst_pad_set_query_function (sq->srcpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_src_query));
   gst_pad_set_iterate_internal_links_function (sq->srcpad,
       GST_DEBUG_FUNCPTR (gst_multi_queue_iterate_internal_links));
+  GST_OBJECT_FLAG_SET (sq->srcpad, GST_PAD_FLAG_PROXY_CAPS);
 
   gst_pad_set_element_private (sq->sinkpad, (gpointer) sq);
   gst_pad_set_element_private (sq->srcpad, (gpointer) sq);
@@ -1979,14 +2051,14 @@
   /* only activate the pads when we are not in the NULL state
    * and add the pad under the state_lock to prevend state changes
    * between activating and adding */
-  g_static_rec_mutex_lock (GST_STATE_GET_LOCK (mqueue));
+  g_rec_mutex_lock (GST_STATE_GET_LOCK (mqueue));
   if (GST_STATE_TARGET (mqueue) != GST_STATE_NULL) {
     gst_pad_set_active (sq->srcpad, TRUE);
     gst_pad_set_active (sq->sinkpad, TRUE);
   }
   gst_element_add_pad (GST_ELEMENT (mqueue), sq->srcpad);
   gst_element_add_pad (GST_ELEMENT (mqueue), sq->sinkpad);
-  g_static_rec_mutex_unlock (GST_STATE_GET_LOCK (mqueue));
+  g_rec_mutex_unlock (GST_STATE_GET_LOCK (mqueue));
 
   GST_DEBUG_OBJECT (mqueue, "GstSingleQueue [%d] created and pads added",
       sq->id);
diff --git a/plugins/elements/gstmultiqueue.h b/plugins/elements/gstmultiqueue.h
index bb3d840..04c7501 100644
--- a/plugins/elements/gstmultiqueue.h
+++ b/plugins/elements/gstmultiqueue.h
@@ -24,7 +24,7 @@
 #define __GST_MULTI_QUEUE_H__
 
 #include <gst/gst.h>
-#include <gst/base/gstdataqueue.h>
+#include "gstdataqueue.h"
 
 G_BEGIN_DECLS
 
@@ -65,11 +65,11 @@
   gboolean buffering;
   gint percent;
 
-  guint32  counter;	/* incoming object counter, use atomic accesses */
+  guint    counter;	/* incoming object counter, use atomic accesses */
   guint32  highid;	/* contains highest id of last outputted object */
   GstClockTime high_time; /* highest start running time */
 
-  GMutex * qlock;	/* Global queue lock (vs object lock or individual */
+  GMutex   qlock;	/* Global queue lock (vs object lock or individual */
 			/* queues lock). Protects nbqueues, queues, global */
 			/* GstMultiQueueSize, counter and highid */
 
diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c
index 2db7660..04422ad 100644
--- a/plugins/elements/gstoutputselector.c
+++ b/plugins/elements/gstoutputselector.c
@@ -44,7 +44,7 @@
     GST_STATIC_CAPS_ANY);
 
 static GstStaticPadTemplate gst_output_selector_src_factory =
-GST_STATIC_PAD_TEMPLATE ("src%d",
+GST_STATIC_PAD_TEMPLATE ("src_%u",
     GST_PAD_SRC,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
@@ -102,11 +102,14 @@
     GstPadTemplate * templ, const gchar * unused, const GstCaps * caps);
 static void gst_output_selector_release_pad (GstElement * element,
     GstPad * pad);
-static GstFlowReturn gst_output_selector_chain (GstPad * pad, GstBuffer * buf);
+static GstFlowReturn gst_output_selector_chain (GstPad * pad,
+    GstObject * parent, GstBuffer * buf);
 static GstStateChangeReturn gst_output_selector_change_state (GstElement *
     element, GstStateChange transition);
-static gboolean gst_output_selector_handle_sink_event (GstPad * pad,
+static gboolean gst_output_selector_event (GstPad * pad, GstObject * parent,
     GstEvent * event);
+static gboolean gst_output_selector_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 static void gst_output_selector_switch_pad_negotiation_mode (GstOutputSelector *
     sel, gint mode);
 
@@ -136,7 +139,7 @@
           DEFAULT_PAD_NEGOTIATION_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_set_details_simple (gstelement_class, "Output selector",
+  gst_element_class_set_static_metadata (gstelement_class, "Output selector",
       "Generic", "1-to-N output stream selector",
       "Stefan Kost <stefan.kost@nokia.com>");
   gst_element_class_add_pad_template (gstelement_class,
@@ -161,14 +164,16 @@
   gst_pad_set_chain_function (sel->sinkpad,
       GST_DEBUG_FUNCPTR (gst_output_selector_chain));
   gst_pad_set_event_function (sel->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_output_selector_handle_sink_event));
+      GST_DEBUG_FUNCPTR (gst_output_selector_event));
+  gst_pad_set_query_function (sel->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_output_selector_query));
 
   gst_element_add_pad (GST_ELEMENT (sel), sel->sinkpad);
 
   /* srcpad management */
   sel->active_srcpad = NULL;
   sel->nb_srcpads = 0;
-  gst_segment_init (&sel->segment, GST_FORMAT_TIME);
+  gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
   sel->pending_srcpad = NULL;
 
   sel->resend_latest = FALSE;
@@ -280,15 +285,10 @@
   }
 }
 
-static GstCaps *
-gst_output_selector_sink_getcaps (GstPad * pad, GstCaps * filter)
+static GstPad *
+gst_output_selector_get_active (GstOutputSelector * sel)
 {
-  GstOutputSelector *sel = GST_OUTPUT_SELECTOR (gst_pad_get_parent (pad));
   GstPad *active = NULL;
-  GstCaps *caps = NULL;
-
-  if (G_UNLIKELY (sel == NULL))
-    return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
 
   GST_OBJECT_LOCK (sel);
   if (sel->pending_srcpad)
@@ -297,16 +297,7 @@
     active = gst_object_ref (sel->active_srcpad);
   GST_OBJECT_UNLOCK (sel);
 
-  if (active) {
-    caps = gst_pad_peer_get_caps (active, filter);
-    gst_object_unref (active);
-  }
-  if (caps == NULL) {
-    caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-  }
-
-  gst_object_unref (sel);
-  return caps;
+  return active;
 }
 
 static void
@@ -314,24 +305,16 @@
     gint mode)
 {
   sel->pad_negotiation_mode = mode;
-  if (mode == GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ALL) {
-    gst_pad_set_getcaps_function (sel->sinkpad, gst_pad_proxy_getcaps);
-  } else if (mode == GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_NONE) {
-    gst_pad_set_getcaps_function (sel->sinkpad, NULL);
-  } else {                      /* active */
-    gst_pad_set_getcaps_function (sel->sinkpad,
-        gst_output_selector_sink_getcaps);
-  }
 }
 
-static GstFlowReturn
-forward_sticky_events (GstPad * pad, GstEvent * event, gpointer user_data)
+static gboolean
+forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
 {
   GstPad *srcpad = GST_PAD_CAST (user_data);
 
-  gst_pad_push_event (srcpad, gst_event_ref (event));
+  gst_pad_push_event (srcpad, gst_event_ref (*event));
 
-  return GST_FLOW_OK;
+  return TRUE;
 }
 
 static GstPad *
@@ -347,7 +330,7 @@
   GST_DEBUG_OBJECT (osel, "requesting pad");
 
   GST_OBJECT_LOCK (osel);
-  padname = g_strdup_printf ("src%d", osel->nb_srcpads++);
+  padname = g_strdup_printf ("src_%u", osel->nb_srcpads++);
   srcpad = gst_pad_new_from_template (templ, padname);
   GST_OBJECT_UNLOCK (osel);
 
@@ -391,7 +374,8 @@
 
   /* Switch */
   GST_OBJECT_LOCK (GST_OBJECT (osel));
-  GST_INFO ("switching to pad %" GST_PTR_FORMAT, osel->pending_srcpad);
+  GST_INFO_OBJECT (osel, "switching to pad %" GST_PTR_FORMAT,
+      osel->pending_srcpad);
   if (gst_pad_is_linked (osel->pending_srcpad)) {
     osel->active_srcpad = osel->pending_srcpad;
     res = TRUE;
@@ -400,26 +384,29 @@
   osel->pending_srcpad = NULL;
   GST_OBJECT_UNLOCK (GST_OBJECT (osel));
 
-  /* Send SEGMENT event and latest buffer if switching succeeded */
+  /* Send SEGMENT event and latest buffer if switching succeeded
+   * and we already have a valid segment configured */
   if (res) {
-    /* Send SEGMENT to the pad we are going to switch to */
-    seg = &osel->segment;
-    /* If resending then mark segment start and position accordingly */
-    if (osel->resend_latest && osel->latest_buffer &&
-        GST_BUFFER_TIMESTAMP_IS_VALID (osel->latest_buffer)) {
-      start = position = GST_BUFFER_TIMESTAMP (osel->latest_buffer);
-    } else {
-      start = position = seg->position;
-    }
+    if (osel->segment.format != GST_FORMAT_UNDEFINED) {
+      /* Send SEGMENT to the pad we are going to switch to */
+      seg = &osel->segment;
+      /* If resending then mark segment start and position accordingly */
+      if (osel->resend_latest && osel->latest_buffer &&
+          GST_BUFFER_TIMESTAMP_IS_VALID (osel->latest_buffer)) {
+        start = position = GST_BUFFER_TIMESTAMP (osel->latest_buffer);
+      } else {
+        start = position = seg->position;
+      }
 
-    seg->start = start;
-    seg->position = position;
-    ev = gst_event_new_segment (seg);
+      seg->start = start;
+      seg->position = position;
+      ev = gst_event_new_segment (seg);
 
-    if (!gst_pad_push_event (osel->active_srcpad, ev)) {
-      GST_WARNING_OBJECT (osel,
-          "newsegment handling failed in %" GST_PTR_FORMAT,
-          osel->active_srcpad);
+      if (!gst_pad_push_event (osel->active_srcpad, ev)) {
+        GST_WARNING_OBJECT (osel,
+            "newsegment handling failed in %" GST_PTR_FORMAT,
+            osel->active_srcpad);
+      }
     }
 
     /* Resend latest buffer to newly switched pad */
@@ -435,13 +422,13 @@
 }
 
 static GstFlowReturn
-gst_output_selector_chain (GstPad * pad, GstBuffer * buf)
+gst_output_selector_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
   GstFlowReturn res;
   GstOutputSelector *osel;
   GstClockTime position, duration;
 
-  osel = GST_OUTPUT_SELECTOR (gst_pad_get_parent (pad));
+  osel = GST_OUTPUT_SELECTOR (parent);
 
   /*
    * The _switch function might push a buffer if 'resend-latest' is true.
@@ -485,7 +472,6 @@
   GST_LOG_OBJECT (osel, "pushing buffer to %" GST_PTR_FORMAT,
       osel->active_srcpad);
   res = gst_pad_push (osel->active_srcpad, buf);
-  gst_object_unref (osel);
 
   return res;
 }
@@ -520,17 +506,13 @@
 }
 
 static gboolean
-gst_output_selector_handle_sink_event (GstPad * pad, GstEvent * event)
+gst_output_selector_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
   GstOutputSelector *sel;
   GstPad *active = NULL;
 
-  sel = GST_OUTPUT_SELECTOR (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (sel == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
+  sel = GST_OUTPUT_SELECTOR (parent);
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_CAPS:
@@ -538,19 +520,13 @@
       switch (sel->pad_negotiation_mode) {
         case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ALL:
           /* Send caps to all src pads */
-          res = gst_pad_event_default (pad, event);
+          res = gst_pad_event_default (pad, parent, event);
           break;
         case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_NONE:
           gst_event_unref (event);
           break;
         default:
-          GST_OBJECT_LOCK (sel);
-          if (sel->pending_srcpad)
-            active = gst_object_ref (sel->pending_srcpad);
-          else if (sel->active_srcpad)
-            active = gst_object_ref (sel->active_srcpad);
-          GST_OBJECT_UNLOCK (sel);
-
+          active = gst_output_selector_get_active (sel);
           if (active) {
             res = gst_pad_push_event (active, event);
             gst_object_unref (active);
@@ -569,23 +545,17 @@
           &sel->segment);
 
       /* Send newsegment to all src pads */
-      res = gst_pad_event_default (pad, event);
+      res = gst_pad_event_default (pad, parent, event);
       break;
     }
     case GST_EVENT_EOS:
       /* Send eos to all src pads */
-      res = gst_pad_event_default (pad, event);
+      res = gst_pad_event_default (pad, parent, event);
       break;
     default:
     {
-      GST_OBJECT_LOCK (sel);
-      if (sel->pending_srcpad)
-        active = gst_object_ref (sel->pending_srcpad);
-      else if (sel->active_srcpad)
-        active = gst_object_ref (sel->active_srcpad);
-      GST_OBJECT_UNLOCK (sel);
-
       /* Send other events to pending or active src pad */
+      active = gst_output_selector_get_active (sel);
       if (active) {
         res = gst_pad_push_event (active, event);
         gst_object_unref (active);
@@ -596,7 +566,44 @@
     }
   }
 
-  gst_object_unref (sel);
+  return res;
+}
 
+static gboolean
+gst_output_selector_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  gboolean res = TRUE;
+  GstOutputSelector *sel;
+  GstPad *active = NULL;
+
+  sel = GST_OUTPUT_SELECTOR (parent);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      switch (sel->pad_negotiation_mode) {
+        case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_ALL:
+          /* Send caps to all src pads */
+          res = gst_pad_proxy_query_caps (pad, query);
+          break;
+        case GST_OUTPUT_SELECTOR_PAD_NEGOTIATION_MODE_NONE:
+          res = FALSE;
+          break;
+        default:
+          active = gst_output_selector_get_active (sel);
+          if (active) {
+            res = gst_pad_peer_query (active, query);
+            gst_object_unref (active);
+          } else {
+            res = FALSE;
+          }
+          break;
+      }
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, parent, query);
+      break;
+  }
   return res;
 }
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index 19ccf8f..aa494be 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -61,6 +61,7 @@
 #include "gstqueue.h"
 
 #include "../../gst/gst-i18n-lib.h"
+#include "../../gst/glib-compat-private.h"
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
@@ -91,7 +92,7 @@
                       queue->cur_level.time, \
                       queue->min_threshold.time, \
                       queue->max_size.time, \
-                      queue->queue->length)
+                      queue->queue.length)
 
 /* Queue signals and args */
 enum
@@ -127,7 +128,7 @@
 #define DEFAULT_MAX_SIZE_TIME     GST_SECOND    /* 1 second    */
 
 #define GST_QUEUE_MUTEX_LOCK(q) G_STMT_START {                          \
-  g_mutex_lock (q->qlock);                                              \
+  g_mutex_lock (&q->qlock);                                              \
 } G_STMT_END
 
 #define GST_QUEUE_MUTEX_LOCK_CHECK(q,label) G_STMT_START {              \
@@ -137,13 +138,13 @@
 } G_STMT_END
 
 #define GST_QUEUE_MUTEX_UNLOCK(q) G_STMT_START {                        \
-  g_mutex_unlock (q->qlock);                                            \
+  g_mutex_unlock (&q->qlock);                                            \
 } G_STMT_END
 
 #define GST_QUEUE_WAIT_DEL_CHECK(q, label) G_STMT_START {               \
   STATUS (q, q->sinkpad, "wait for DEL");                               \
   q->waiting_del = TRUE;                                                \
-  g_cond_wait (q->item_del, q->qlock);                                  \
+  g_cond_wait (&q->item_del, &q->qlock);                                  \
   q->waiting_del = FALSE;                                               \
   if (q->srcresult != GST_FLOW_OK) {                                    \
     STATUS (q, q->srcpad, "received DEL wakeup");                       \
@@ -155,7 +156,7 @@
 #define GST_QUEUE_WAIT_ADD_CHECK(q, label) G_STMT_START {               \
   STATUS (q, q->srcpad, "wait for ADD");                                \
   q->waiting_add = TRUE;                                                \
-  g_cond_wait (q->item_add, q->qlock);                                  \
+  g_cond_wait (&q->item_add, &q->qlock);                                  \
   q->waiting_add = FALSE;                                               \
   if (q->srcresult != GST_FLOW_OK) {                                    \
     STATUS (q, q->srcpad, "received ADD wakeup");                       \
@@ -167,14 +168,14 @@
 #define GST_QUEUE_SIGNAL_DEL(q) G_STMT_START {                          \
   if (q->waiting_del) {                                                 \
     STATUS (q, q->srcpad, "signal DEL");                                \
-    g_cond_signal (q->item_del);                                        \
+    g_cond_signal (&q->item_del);                                        \
   }                                                                     \
 } G_STMT_END
 
 #define GST_QUEUE_SIGNAL_ADD(q) G_STMT_START {                          \
   if (q->waiting_add) {                                                 \
     STATUS (q, q->sinkpad, "signal ADD");                               \
-    g_cond_signal (q->item_add);                                        \
+    g_cond_signal (&q->item_add);                                        \
   }                                                                     \
 } G_STMT_END
 
@@ -192,23 +193,27 @@
 static void gst_queue_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GstFlowReturn gst_queue_chain (GstPad * pad, GstBuffer * buffer);
+static GstFlowReturn gst_queue_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
 static GstFlowReturn gst_queue_push_one (GstQueue * queue);
 static void gst_queue_loop (GstPad * pad);
 
-static gboolean gst_queue_handle_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_queue_handle_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_queue_handle_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
-static gboolean gst_queue_handle_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_queue_handle_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_queue_handle_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_queue_handle_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
-static gboolean gst_queue_acceptcaps (GstPad * pad, GstCaps * caps);
-static GstCaps *gst_queue_getcaps (GstPad * pad, GstCaps * filter);
-static GstPadLinkReturn gst_queue_link_sink (GstPad * pad, GstPad * peer);
-static GstPadLinkReturn gst_queue_link_src (GstPad * pad, GstPad * peer);
 static void gst_queue_locked_flush (GstQueue * queue);
 
-static gboolean gst_queue_src_activate_push (GstPad * pad, gboolean active);
-static gboolean gst_queue_sink_activate_push (GstPad * pad, gboolean active);
+static gboolean gst_queue_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
+static gboolean gst_queue_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
 
 static gboolean gst_queue_is_empty (GstQueue * queue);
 static gboolean gst_queue_is_filled (GstQueue * queue);
@@ -358,7 +363,7 @@
 
   gobject_class->finalize = gst_queue_finalize;
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Queue",
       "Generic", "Simple data queue", "Erik Walthinsen <omega@cse.ogi.edu>");
   gst_element_class_add_pad_template (gstelement_class,
@@ -367,16 +372,12 @@
       gst_static_pad_template_get (&sinktemplate));
 
   /* Registering debug symbols for function pointers */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_chain);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_sink_activate_push);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_src_activate_mode);
   GST_DEBUG_REGISTER_FUNCPTR (gst_queue_handle_sink_event);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_link_sink);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_getcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_acceptcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_src_activate_push);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_link_src);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_handle_sink_query);
   GST_DEBUG_REGISTER_FUNCPTR (gst_queue_handle_src_event);
   GST_DEBUG_REGISTER_FUNCPTR (gst_queue_handle_src_query);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_queue_chain);
 }
 
 static void
@@ -385,23 +386,20 @@
   queue->sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink");
 
   gst_pad_set_chain_function (queue->sinkpad, gst_queue_chain);
-  gst_pad_set_activatepush_function (queue->sinkpad,
-      gst_queue_sink_activate_push);
+  gst_pad_set_activatemode_function (queue->sinkpad,
+      gst_queue_sink_activate_mode);
   gst_pad_set_event_function (queue->sinkpad, gst_queue_handle_sink_event);
-  gst_pad_set_link_function (queue->sinkpad, gst_queue_link_sink);
-  gst_pad_set_getcaps_function (queue->sinkpad, gst_queue_getcaps);
-  gst_pad_set_acceptcaps_function (queue->sinkpad, gst_queue_acceptcaps);
+  gst_pad_set_query_function (queue->sinkpad, gst_queue_handle_sink_query);
+  GST_PAD_SET_PROXY_CAPS (queue->sinkpad);
   gst_element_add_pad (GST_ELEMENT (queue), queue->sinkpad);
 
   queue->srcpad = gst_pad_new_from_static_template (&srctemplate, "src");
 
-  gst_pad_set_activatepush_function (queue->srcpad,
-      gst_queue_src_activate_push);
-  gst_pad_set_link_function (queue->srcpad, gst_queue_link_src);
-  gst_pad_set_acceptcaps_function (queue->srcpad, gst_queue_acceptcaps);
-  gst_pad_set_getcaps_function (queue->srcpad, gst_queue_getcaps);
+  gst_pad_set_activatemode_function (queue->srcpad,
+      gst_queue_src_activate_mode);
   gst_pad_set_event_function (queue->srcpad, gst_queue_handle_src_event);
   gst_pad_set_query_function (queue->srcpad, gst_queue_handle_src_query);
+  GST_PAD_SET_PROXY_CAPS (queue->srcpad);
   gst_element_add_pad (GST_ELEMENT (queue), queue->srcpad);
 
   GST_QUEUE_CLEAR_LEVEL (queue->cur_level);
@@ -415,12 +413,13 @@
   queue->head_needs_discont = queue->tail_needs_discont = FALSE;
 
   queue->leaky = GST_QUEUE_NO_LEAK;
-  queue->srcresult = GST_FLOW_WRONG_STATE;
+  queue->srcresult = GST_FLOW_FLUSHING;
 
-  queue->qlock = g_mutex_new ();
-  queue->item_add = g_cond_new ();
-  queue->item_del = g_cond_new ();
-  queue->queue = g_queue_new ();
+  g_mutex_init (&queue->qlock);
+  g_cond_init (&queue->item_add);
+  g_cond_init (&queue->item_del);
+
+  g_queue_init (&queue->queue);
 
   queue->sinktime = GST_CLOCK_TIME_NONE;
   queue->srctime = GST_CLOCK_TIME_NONE;
@@ -438,100 +437,24 @@
 static void
 gst_queue_finalize (GObject * object)
 {
+  GstMiniObject *data;
   GstQueue *queue = GST_QUEUE (object);
 
   GST_DEBUG_OBJECT (queue, "finalizing queue");
 
-  while (!g_queue_is_empty (queue->queue)) {
-    GstMiniObject *data = g_queue_pop_head (queue->queue);
-
-    gst_mini_object_unref (data);
+  while ((data = g_queue_pop_head (&queue->queue))) {
+    if (!GST_IS_QUERY (data))
+      gst_mini_object_unref (data);
   }
-  g_queue_free (queue->queue);
-  g_mutex_free (queue->qlock);
-  g_cond_free (queue->item_add);
-  g_cond_free (queue->item_del);
+
+  g_queue_clear (&queue->queue);
+  g_mutex_clear (&queue->qlock);
+  g_cond_clear (&queue->item_add);
+  g_cond_clear (&queue->item_del);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
-static gboolean
-gst_queue_acceptcaps (GstPad * pad, GstCaps * caps)
-{
-  gboolean result;
-  GstQueue *queue;
-  GstPad *otherpad;
-
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (queue == NULL))
-    return FALSE;
-
-  otherpad = (pad == queue->srcpad ? queue->sinkpad : queue->srcpad);
-  result = gst_pad_peer_accept_caps (otherpad, caps);
-
-  gst_object_unref (queue);
-
-  return result;
-}
-
-static GstCaps *
-gst_queue_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstQueue *queue;
-  GstPad *otherpad;
-  GstCaps *result;
-
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (queue == NULL))
-    return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  otherpad = (pad == queue->srcpad ? queue->sinkpad : queue->srcpad);
-  result = gst_pad_peer_get_caps (otherpad, filter);
-  if (result == NULL)
-    result = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  gst_object_unref (queue);
-
-  return result;
-}
-
-static GstPadLinkReturn
-gst_queue_link_sink (GstPad * pad, GstPad * peer)
-{
-  return GST_PAD_LINK_OK;
-}
-
-static GstPadLinkReturn
-gst_queue_link_src (GstPad * pad, GstPad * peer)
-{
-  GstPadLinkReturn result = GST_PAD_LINK_OK;
-  GstQueue *queue;
-
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
-
-  GST_DEBUG_OBJECT (queue, "queue linking source pad");
-
-  if (GST_PAD_LINKFUNC (peer)) {
-    result = GST_PAD_LINKFUNC (peer) (peer, pad);
-  }
-
-  if (GST_PAD_LINK_SUCCESSFUL (result)) {
-    GST_QUEUE_MUTEX_LOCK (queue);
-    if (queue->srcresult == GST_FLOW_OK) {
-      queue->push_newsegment = TRUE;
-      gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad);
-      GST_DEBUG_OBJECT (queue, "starting task as pad is linked");
-    } else {
-      GST_DEBUG_OBJECT (queue, "not starting task reason %s",
-          gst_flow_get_name (queue->srcresult));
-    }
-    GST_QUEUE_MUTEX_UNLOCK (queue);
-  }
-  gst_object_unref (queue);
-
-  return result;
-}
-
 /* calculate the diff between running time on the sink and src of the queue.
  * This is the total amount of time in the queue. */
 static void
@@ -631,12 +554,13 @@
 static void
 gst_queue_locked_flush (GstQueue * queue)
 {
-  while (!g_queue_is_empty (queue->queue)) {
-    GstMiniObject *data = g_queue_pop_head (queue->queue);
+  GstMiniObject *data;
 
+  while ((data = g_queue_pop_head (&queue->queue))) {
     /* Then lose another reference because we are supposed to destroy that
        data when flushing */
-    gst_mini_object_unref (data);
+    if (!GST_IS_QUERY (data))
+      gst_mini_object_unref (data);
   }
   GST_QUEUE_CLEAR_LEVEL (queue->cur_level);
   queue->min_threshold.buffers = queue->orig_min_threshold.buffers;
@@ -664,7 +588,7 @@
   queue->cur_level.bytes += gst_buffer_get_size (buffer);
   apply_buffer (queue, buffer, &queue->sink_segment, TRUE, TRUE);
 
-  g_queue_push_tail (queue->queue, item);
+  g_queue_push_tail (&queue->queue, item);
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
@@ -685,12 +609,12 @@
     case GST_EVENT_SEGMENT:
       apply_segment (queue, event, &queue->sink_segment, TRUE);
       /* if the queue is empty, apply sink segment on the source */
-      if (queue->queue->length == 0) {
+      if (queue->queue.length == 0) {
         GST_CAT_LOG_OBJECT (queue_dataflow, queue, "Apply segment on srcpad");
         apply_segment (queue, event, &queue->src_segment, FALSE);
         queue->newseg_applied_to_src = TRUE;
       }
-      /* a new segment allows us to accept more buffers if we got UNEXPECTED
+      /* a new segment allows us to accept more buffers if we got EOS
        * from downstream */
       queue->unexpected = FALSE;
       break;
@@ -698,17 +622,17 @@
       break;
   }
 
-  g_queue_push_tail (queue->queue, item);
+  g_queue_push_tail (&queue->queue, item);
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
 /* dequeue an item from the queue and update level stats, with QUEUE_LOCK */
 static GstMiniObject *
-gst_queue_locked_dequeue (GstQueue * queue, gboolean * is_buffer)
+gst_queue_locked_dequeue (GstQueue * queue)
 {
   GstMiniObject *item;
 
-  item = g_queue_pop_head (queue->queue);
+  item = g_queue_pop_head (&queue->queue);
   if (item == NULL)
     goto no_item;
 
@@ -726,7 +650,6 @@
     if (queue->cur_level.buffers == 0)
       queue->cur_level.time = 0;
 
-    *is_buffer = TRUE;
   } else if (GST_IS_EVENT (item)) {
     GstEvent *event = GST_EVENT_CAST (item);
 
@@ -749,8 +672,11 @@
       default:
         break;
     }
+  } else if (GST_IS_QUERY (item)) {
+    GstQuery *query = GST_QUERY_CAST (item);
 
-    *is_buffer = FALSE;
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+        "retrieved query %p from queue", query);
   } else {
     g_warning
         ("Unexpected item %p dequeued from queue %s (refcounting problem?)",
@@ -770,15 +696,11 @@
 }
 
 static gboolean
-gst_queue_handle_sink_event (GstPad * pad, GstEvent * event)
+gst_queue_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GstQueue *queue;
 
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (queue == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
+  queue = GST_QUEUE (parent);
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_START:
@@ -789,7 +711,7 @@
 
       /* now unblock the chain function */
       GST_QUEUE_MUTEX_LOCK (queue);
-      queue->srcresult = GST_FLOW_WRONG_STATE;
+      queue->srcresult = GST_FLOW_FLUSHING;
       /* unblock the loop and chain functions */
       GST_QUEUE_SIGNAL_ADD (queue);
       GST_QUEUE_SIGNAL_DEL (queue);
@@ -812,12 +734,8 @@
       queue->srcresult = GST_FLOW_OK;
       queue->eos = FALSE;
       queue->unexpected = FALSE;
-      if (gst_pad_is_linked (queue->srcpad)) {
-        gst_pad_start_task (queue->srcpad, (GstTaskFunction) gst_queue_loop,
-            queue->srcpad);
-      } else {
-        GST_INFO_OBJECT (queue, "not re-starting task as pad is not linked");
-      }
+      gst_pad_start_task (queue->srcpad, (GstTaskFunction) gst_queue_loop,
+          queue->srcpad);
       GST_QUEUE_MUTEX_UNLOCK (queue);
 
       STATUS (queue, pad, "after flush");
@@ -839,7 +757,6 @@
       break;
   }
 done:
-  gst_object_unref (queue);
   return TRUE;
 
   /* ERRORS */
@@ -848,7 +765,6 @@
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "refusing event, we are flushing");
     GST_QUEUE_MUTEX_UNLOCK (queue);
-    gst_object_unref (queue);
     gst_event_unref (event);
     return FALSE;
   }
@@ -856,16 +772,52 @@
   {
     GST_CAT_LOG_OBJECT (queue_dataflow, queue, "refusing event, we are EOS");
     GST_QUEUE_MUTEX_UNLOCK (queue);
-    gst_object_unref (queue);
     gst_event_unref (event);
     return FALSE;
   }
 }
 
 static gboolean
+gst_queue_handle_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstQueue *queue = GST_QUEUE_CAST (parent);
+  gboolean res;
+
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      if (G_UNLIKELY (GST_QUERY_IS_SERIALIZED (query))) {
+        GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
+        GST_LOG_OBJECT (queue, "queuing query %p (%s)", query,
+            GST_QUERY_TYPE_NAME (query));
+        g_queue_push_tail (&queue->queue, query);
+        GST_QUEUE_SIGNAL_ADD (queue);
+        while (queue->queue.length != 0) {
+          /* for as long as the queue has items, we know the query is
+           * not handled yet */
+          GST_QUEUE_WAIT_DEL_CHECK (queue, out_flushing);
+        }
+        res = queue->last_query;
+        GST_QUEUE_MUTEX_UNLOCK (queue);
+      } else {
+        res = gst_pad_query_default (pad, parent, query);
+      }
+      break;
+  }
+  return res;
+
+  /* ERRORS */
+out_flushing:
+  {
+    GST_DEBUG_OBJECT (queue, "we are flushing");
+    GST_QUEUE_MUTEX_UNLOCK (queue);
+    return FALSE;
+  }
+}
+
+static gboolean
 gst_queue_is_empty (GstQueue * queue)
 {
-  if (queue->queue->length == 0)
+  if (queue->queue.length == 0)
     return TRUE;
 
   /* It is possible that a max size is reached before all min thresholds are.
@@ -896,16 +848,16 @@
   /* for as long as the queue is filled, dequeue an item and discard it */
   while (gst_queue_is_filled (queue)) {
     GstMiniObject *leak;
-    gboolean is_buffer;
 
-    leak = gst_queue_locked_dequeue (queue, &is_buffer);
+    leak = gst_queue_locked_dequeue (queue);
     /* there is nothing to dequeue and the queue is still filled.. This should
      * not happen */
     g_assert (leak != NULL);
 
     GST_CAT_DEBUG_OBJECT (queue_dataflow, queue,
         "queue is full, leaking item %p on downstream end", leak);
-    gst_mini_object_unref (leak);
+    if (!GST_IS_QUERY (leak))
+      gst_mini_object_unref (leak);
 
     /* last buffer needs to get a DISCONT flag */
     queue->head_needs_discont = TRUE;
@@ -913,12 +865,12 @@
 }
 
 static GstFlowReturn
-gst_queue_chain (GstPad * pad, GstBuffer * buffer)
+gst_queue_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstQueue *queue;
   GstClockTime duration, timestamp;
 
-  queue = (GstQueue *) GST_OBJECT_PARENT (pad);
+  queue = GST_QUEUE_CAST (parent);
 
   /* we have to lock the queue since we span threads */
   GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
@@ -1033,30 +985,19 @@
 
     gst_buffer_unref (buffer);
 
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 out_unexpected:
   {
-    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-        "exit because we received UNEXPECTED");
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we received EOS");
     GST_QUEUE_MUTEX_UNLOCK (queue);
 
     gst_buffer_unref (buffer);
 
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
-static void
-gst_queue_push_newsegment (GstQueue * queue)
-{
-  GstEvent *event;
-
-  event = gst_event_new_segment (&queue->src_segment);
-  GST_CAT_LOG_OBJECT (queue_dataflow, queue, "pushing real newsegment event");
-  gst_pad_push_event (queue->srcpad, event);
-}
-
 /* dequeue an item from the queue an push it downstream. This functions returns
  * the result of the push. */
 static GstFlowReturn
@@ -1064,18 +1005,14 @@
 {
   GstFlowReturn result = GST_FLOW_OK;
   GstMiniObject *data;
-  gboolean is_buffer;
 
-  data = gst_queue_locked_dequeue (queue, &is_buffer);
+  data = gst_queue_locked_dequeue (queue);
   if (data == NULL)
     goto no_item;
 
 next:
-  if (is_buffer) {
+  if (GST_IS_BUFFER (data)) {
     GstBuffer *buffer;
-#if 0
-    GstCaps *caps;
-#endif
 
     buffer = GST_BUFFER_CAST (data);
 
@@ -1090,55 +1027,44 @@
       }
       queue->head_needs_discont = FALSE;
     }
-#if 0
-    caps = GST_BUFFER_CAPS (buffer);
-#endif
 
     GST_QUEUE_MUTEX_UNLOCK (queue);
-#if 0
-    /* set the right caps on the pad now. We do this before pushing the buffer
-     * because the pad_push call will check (using acceptcaps) if the buffer can
-     * be set on the pad, which might fail because this will be propagated
-     * upstream. Also note that if the buffer has NULL caps, it means that the
-     * caps did not change, so we don't have to change caps on the pad. */
-    if (caps && caps != GST_PAD_CAPS (queue->srcpad))
-      gst_pad_set_caps (queue->srcpad, caps);
-#endif
-
-    if (queue->push_newsegment) {
-      gst_queue_push_newsegment (queue);
-    }
     result = gst_pad_push (queue->srcpad, buffer);
 
     /* need to check for srcresult here as well */
     GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
 
-    if (result == GST_FLOW_UNEXPECTED) {
-      GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-          "got UNEXPECTED from downstream");
+    if (result == GST_FLOW_EOS) {
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue, "got EOS from downstream");
       /* stop pushing buffers, we dequeue all items until we see an item that we
        * can push again, which is EOS or SEGMENT. If there is nothing in the
        * queue we can push, we set a flag to make the sinkpad refuse more
-       * buffers with an UNEXPECTED return value. */
-      while ((data = gst_queue_locked_dequeue (queue, &is_buffer))) {
-        if (is_buffer) {
+       * buffers with an EOS return value. */
+      while ((data = gst_queue_locked_dequeue (queue))) {
+        if (GST_IS_BUFFER (data)) {
           GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-              "dropping UNEXPECTED buffer %p", data);
+              "dropping EOS buffer %p", data);
           gst_buffer_unref (GST_BUFFER_CAST (data));
-        } else {
+        } else if (GST_IS_EVENT (data)) {
           GstEvent *event = GST_EVENT_CAST (data);
           GstEventType type = GST_EVENT_TYPE (event);
 
           if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT) {
             /* we found a pushable item in the queue, push it out */
             GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-                "pushing pushable event %s after UNEXPECTED",
+                "pushing pushable event %s after EOS",
                 GST_EVENT_TYPE_NAME (event));
             goto next;
           }
           GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-              "dropping UNEXPECTED event %p", event);
+              "dropping EOS event %p", event);
           gst_event_unref (event);
+        } else if (GST_IS_QUERY (data)) {
+          GstQuery *query = GST_QUERY_CAST (data);
+
+          GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+              "dropping query %p because of EOS", query);
+          queue->last_query = FALSE;
         }
       }
       /* no more items in the queue. Set the unexpected flag so that upstream
@@ -1148,24 +1074,27 @@
       queue->unexpected = TRUE;
       result = GST_FLOW_OK;
     }
-  } else {
+  } else if (GST_IS_EVENT (data)) {
     GstEvent *event = GST_EVENT_CAST (data);
     GstEventType type = GST_EVENT_TYPE (event);
 
     GST_QUEUE_MUTEX_UNLOCK (queue);
 
-    if (queue->push_newsegment && type != GST_EVENT_SEGMENT) {
-      gst_queue_push_newsegment (queue);
-    }
     gst_pad_push_event (queue->srcpad, event);
 
     GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
-    /* if we're EOS, return UNEXPECTED so that the task pauses. */
+    /* if we're EOS, return EOS so that the task pauses. */
     if (type == GST_EVENT_EOS) {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-          "pushed EOS event %p, return UNEXPECTED", event);
-      result = GST_FLOW_UNEXPECTED;
+          "pushed EOS event %p, return EOS", event);
+      result = GST_FLOW_EOS;
     }
+  } else if (GST_IS_QUERY (data)) {
+    GstQuery *query = GST_QUERY_CAST (data);
+
+    queue->last_query = gst_pad_peer_query (queue->srcpad, query);
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+        "did query %p, return %d", query, queue->last_query);
   }
   return result;
 
@@ -1179,7 +1108,7 @@
 out_flushing:
   {
     GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 }
 
@@ -1217,7 +1146,6 @@
   }
 
   ret = gst_queue_push_one (queue);
-  queue->push_newsegment = FALSE;
   queue->srcresult = ret;
   if (ret != GST_FLOW_OK)
     goto out_flushing;
@@ -1235,11 +1163,14 @@
     gst_pad_pause_task (queue->srcpad);
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "pause task, reason:  %s", gst_flow_get_name (ret));
-    GST_QUEUE_SIGNAL_DEL (queue);
+    if (ret == GST_FLOW_FLUSHING)
+      gst_queue_locked_flush (queue);
+    else
+      GST_QUEUE_SIGNAL_DEL (queue);
     GST_QUEUE_MUTEX_UNLOCK (queue);
     /* let app know about us giving up if upstream is not expected to do so */
-    /* UNEXPECTED is already taken care of elsewhere */
-    if (eos && (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED)) {
+    /* EOS is already taken care of elsewhere */
+    if (eos && (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS)) {
       GST_ELEMENT_ERROR (queue, STREAM, FAILED,
           (_("Internal data flow error.")),
           ("streaming task paused, reason %s (%d)",
@@ -1251,15 +1182,11 @@
 }
 
 static gboolean
-gst_queue_handle_src_event (GstPad * pad, GstEvent * event)
+gst_queue_handle_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
-  GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
+  GstQueue *queue = GST_QUEUE (parent);
 
-  if (G_UNLIKELY (queue == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
 #ifndef GST_DISABLE_GST_DEBUG
   GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, "got event %p (%d)",
       event, GST_EVENT_TYPE (event));
@@ -1267,32 +1194,19 @@
 
   res = gst_pad_push_event (queue->sinkpad, event);
 
-  gst_object_unref (queue);
   return res;
 }
 
 static gboolean
-gst_queue_handle_src_query (GstPad * pad, GstQuery * query)
+gst_queue_handle_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
-  GstPad *peer;
+  GstQueue *queue = GST_QUEUE (parent);
   gboolean res;
 
-  if (G_UNLIKELY (queue == NULL))
+  res = gst_pad_query_default (pad, parent, query);
+  if (!res)
     return FALSE;
 
-  if (!(peer = gst_pad_get_peer (queue->sinkpad))) {
-    gst_object_unref (queue);
-    return FALSE;
-  }
-
-  res = gst_pad_query (peer, query);
-  gst_object_unref (peer);
-  if (!res) {
-    gst_object_unref (queue);
-    return FALSE;
-  }
-
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
     {
@@ -1347,72 +1261,77 @@
       break;
   }
 
-  gst_object_unref (queue);
   return TRUE;
 }
 
 static gboolean
-gst_queue_sink_activate_push (GstPad * pad, gboolean active)
+gst_queue_sink_activate_mode (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
 {
-  gboolean result = TRUE;
+  gboolean result;
   GstQueue *queue;
 
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
+  queue = GST_QUEUE (parent);
 
-  if (active) {
-    GST_QUEUE_MUTEX_LOCK (queue);
-    queue->srcresult = GST_FLOW_OK;
-    queue->eos = FALSE;
-    queue->unexpected = FALSE;
-    GST_QUEUE_MUTEX_UNLOCK (queue);
-  } else {
-    /* step 1, unblock chain function */
-    GST_QUEUE_MUTEX_LOCK (queue);
-    queue->srcresult = GST_FLOW_WRONG_STATE;
-    gst_queue_locked_flush (queue);
-    GST_QUEUE_MUTEX_UNLOCK (queue);
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+      if (active) {
+        GST_QUEUE_MUTEX_LOCK (queue);
+        queue->srcresult = GST_FLOW_OK;
+        queue->eos = FALSE;
+        queue->unexpected = FALSE;
+        GST_QUEUE_MUTEX_UNLOCK (queue);
+      } else {
+        /* step 1, unblock chain function */
+        GST_QUEUE_MUTEX_LOCK (queue);
+        queue->srcresult = GST_FLOW_FLUSHING;
+        gst_queue_locked_flush (queue);
+        GST_QUEUE_MUTEX_UNLOCK (queue);
+      }
+      result = TRUE;
+      break;
+    default:
+      result = FALSE;
+      break;
   }
-
-  gst_object_unref (queue);
-
   return result;
 }
 
 static gboolean
-gst_queue_src_activate_push (GstPad * pad, gboolean active)
+gst_queue_src_activate_mode (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
 {
-  gboolean result = FALSE;
+  gboolean result;
   GstQueue *queue;
 
-  queue = GST_QUEUE (gst_pad_get_parent (pad));
+  queue = GST_QUEUE (parent);
 
-  if (active) {
-    GST_QUEUE_MUTEX_LOCK (queue);
-    queue->srcresult = GST_FLOW_OK;
-    queue->eos = FALSE;
-    queue->unexpected = FALSE;
-    /* we do not start the task yet if the pad is not connected */
-    if (gst_pad_is_linked (pad))
-      result = gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad);
-    else {
-      GST_INFO_OBJECT (queue, "not starting task as pad is not linked");
-      result = TRUE;
-    }
-    GST_QUEUE_MUTEX_UNLOCK (queue);
-  } else {
-    /* step 1, unblock loop function */
-    GST_QUEUE_MUTEX_LOCK (queue);
-    queue->srcresult = GST_FLOW_WRONG_STATE;
-    /* the item add signal will unblock */
-    g_cond_signal (queue->item_add);
-    GST_QUEUE_MUTEX_UNLOCK (queue);
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+      if (active) {
+        GST_QUEUE_MUTEX_LOCK (queue);
+        queue->srcresult = GST_FLOW_OK;
+        queue->eos = FALSE;
+        queue->unexpected = FALSE;
+        result =
+            gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad);
+        GST_QUEUE_MUTEX_UNLOCK (queue);
+      } else {
+        /* step 1, unblock loop function */
+        GST_QUEUE_MUTEX_LOCK (queue);
+        queue->srcresult = GST_FLOW_FLUSHING;
+        /* the item add signal will unblock */
+        g_cond_signal (&queue->item_add);
+        GST_QUEUE_MUTEX_UNLOCK (queue);
 
-    /* step 2, make sure streaming finishes */
-    result = gst_pad_stop_task (pad);
+        /* step 2, make sure streaming finishes */
+        result = gst_pad_stop_task (pad);
+      }
+      break;
+    default:
+      result = FALSE;
+      break;
   }
-
-  gst_object_unref (queue);
-
   return result;
 }
 
diff --git a/plugins/elements/gstqueue.h b/plugins/elements/gstqueue.h
index 6ab8617..57ccc2a 100644
--- a/plugins/elements/gstqueue.h
+++ b/plugins/elements/gstqueue.h
@@ -38,6 +38,8 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_QUEUE))
 #define GST_IS_QUEUE_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QUEUE))
+#define GST_QUEUE_CAST(obj) \
+  ((GstQueue *)(obj))
 
 typedef struct _GstQueue GstQueue;
 typedef struct _GstQueueSize GstQueueSize;
@@ -105,7 +107,7 @@
   gboolean      eos;
 
   /* the queue of data we're keeping our grubby hands on */
-  GQueue *queue;
+  GQueue queue;
 
   GstQueueSize
     cur_level,          /* currently in the queue */
@@ -116,11 +118,11 @@
   /* whether we leak data, and at which end */
   gint leaky;
 
-  GMutex *qlock;        /* lock for queue (vs object lock) */
+  GMutex qlock;        /* lock for queue (vs object lock) */
   gboolean waiting_add;
-  GCond *item_add;      /* signals buffers now available for reading */
+  GCond item_add;      /* signals buffers now available for reading */
   gboolean waiting_del;
-  GCond *item_del;      /* signals space now available for writing */
+  GCond item_del;      /* signals space now available for writing */
 
   gboolean head_needs_discont, tail_needs_discont;
   gboolean push_newsegment;
@@ -129,6 +131,8 @@
 
   /* whether the first new segment has been applied to src */
   gboolean newseg_applied_to_src;
+
+  gboolean last_query;
 };
 
 struct _GstQueueClass {
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index c89c6cd..82e2e11 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -63,6 +63,7 @@
 #include <glib/gstdio.h>
 
 #include "gst/gst-i18n-lib.h"
+#include "gst/glib-compat-private.h"
 
 #include <string.h>
 
@@ -155,10 +156,10 @@
                       queue->max_level.time, \
                       (guint64) (!QUEUE_IS_USING_QUEUE(queue) ? \
                         queue->current->writing_pos - queue->current->max_reading_pos : \
-                        queue->queue->length))
+                        queue->queue.length))
 
 #define GST_QUEUE2_MUTEX_LOCK(q) G_STMT_START {                          \
-  g_mutex_lock (q->qlock);                                              \
+  g_mutex_lock (&q->qlock);                                              \
 } G_STMT_END
 
 #define GST_QUEUE2_MUTEX_LOCK_CHECK(q,res,label) G_STMT_START {         \
@@ -168,13 +169,13 @@
 } G_STMT_END
 
 #define GST_QUEUE2_MUTEX_UNLOCK(q) G_STMT_START {                        \
-  g_mutex_unlock (q->qlock);                                            \
+  g_mutex_unlock (&q->qlock);                                            \
 } G_STMT_END
 
 #define GST_QUEUE2_WAIT_DEL_CHECK(q, res, label) G_STMT_START {         \
   STATUS (queue, q->sinkpad, "wait for DEL");                           \
   q->waiting_del = TRUE;                                                \
-  g_cond_wait (q->item_del, queue->qlock);                              \
+  g_cond_wait (&q->item_del, &queue->qlock);                              \
   q->waiting_del = FALSE;                                               \
   if (res != GST_FLOW_OK) {                                             \
     STATUS (queue, q->srcpad, "received DEL wakeup");                   \
@@ -186,7 +187,7 @@
 #define GST_QUEUE2_WAIT_ADD_CHECK(q, res, label) G_STMT_START {         \
   STATUS (queue, q->srcpad, "wait for ADD");                            \
   q->waiting_add = TRUE;                                                \
-  g_cond_wait (q->item_add, q->qlock);                                  \
+  g_cond_wait (&q->item_add, &q->qlock);                                  \
   q->waiting_add = FALSE;                                               \
   if (res != GST_FLOW_OK) {                                             \
     STATUS (queue, q->srcpad, "received ADD wakeup");                   \
@@ -198,14 +199,14 @@
 #define GST_QUEUE2_SIGNAL_DEL(q) G_STMT_START {                          \
   if (q->waiting_del) {                                                 \
     STATUS (q, q->srcpad, "signal DEL");                                \
-    g_cond_signal (q->item_del);                                        \
+    g_cond_signal (&q->item_del);                                        \
   }                                                                     \
 } G_STMT_END
 
 #define GST_QUEUE2_SIGNAL_ADD(q) G_STMT_START {                          \
   if (q->waiting_add) {                                                 \
     STATUS (q, q->sinkpad, "signal ADD");                               \
-    g_cond_signal (q->item_add);                                        \
+    g_cond_signal (&q->item_add);                                        \
   }                                                                     \
 } G_STMT_END
 
@@ -223,26 +224,32 @@
 static void gst_queue2_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GstFlowReturn gst_queue2_chain (GstPad * pad, GstBuffer * buffer);
+static GstFlowReturn gst_queue2_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static GstFlowReturn gst_queue2_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * buffer_list);
 static GstFlowReturn gst_queue2_push_one (GstQueue2 * queue);
 static void gst_queue2_loop (GstPad * pad);
 
-static gboolean gst_queue2_handle_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_queue2_handle_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
-static gboolean gst_queue2_handle_src_event (GstPad * pad, GstEvent * event);
-static gboolean gst_queue2_handle_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_queue2_handle_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_queue2_handle_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 static gboolean gst_queue2_handle_query (GstElement * element,
     GstQuery * query);
 
-static GstCaps *gst_queue2_getcaps (GstPad * pad, GstCaps * filter);
-static gboolean gst_queue2_acceptcaps (GstPad * pad, GstCaps * caps);
+static GstFlowReturn gst_queue2_get_range (GstPad * pad, GstObject * parent,
+    guint64 offset, guint length, GstBuffer ** buffer);
 
-static GstFlowReturn gst_queue2_get_range (GstPad * pad, guint64 offset,
-    guint length, GstBuffer ** buffer);
-
-static gboolean gst_queue2_src_activate_pull (GstPad * pad, gboolean active);
-static gboolean gst_queue2_src_activate_push (GstPad * pad, gboolean active);
-static gboolean gst_queue2_sink_activate_push (GstPad * pad, gboolean active);
+static gboolean gst_queue2_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
+static gboolean gst_queue2_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
 static GstStateChangeReturn gst_queue2_change_state (GstElement * element,
     GstStateChange transition);
 
@@ -251,6 +258,14 @@
 
 static void update_cur_level (GstQueue2 * queue, GstQueue2Range * range);
 
+typedef enum
+{
+  GST_QUEUE2_ITEM_TYPE_UNKNOWN = 0,
+  GST_QUEUE2_ITEM_TYPE_BUFFER,
+  GST_QUEUE2_ITEM_TYPE_BUFFER_LIST,
+  GST_QUEUE2_ITEM_TYPE_EVENT
+} GstQueue2ItemType;
+
 /* static guint gst_queue2_signals[LAST_SIGNAL] = { 0 }; */
 
 static void
@@ -358,7 +373,7 @@
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sinktemplate));
 
-  gst_element_class_set_details_simple (gstelement_class, "Queue 2",
+  gst_element_class_set_static_metadata (gstelement_class, "Queue 2",
       "Generic",
       "Simple data queue",
       "Erik Walthinsen <omega@cse.ogi.edu>, "
@@ -375,32 +390,28 @@
 
   gst_pad_set_chain_function (queue->sinkpad,
       GST_DEBUG_FUNCPTR (gst_queue2_chain));
-  gst_pad_set_activatepush_function (queue->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_sink_activate_push));
+  gst_pad_set_chain_list_function (queue->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_queue2_chain_list));
+  gst_pad_set_activatemode_function (queue->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_queue2_sink_activate_mode));
   gst_pad_set_event_function (queue->sinkpad,
       GST_DEBUG_FUNCPTR (gst_queue2_handle_sink_event));
-  gst_pad_set_getcaps_function (queue->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_getcaps));
-  gst_pad_set_acceptcaps_function (queue->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_acceptcaps));
+  gst_pad_set_query_function (queue->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_queue2_handle_sink_query));
+  GST_PAD_SET_PROXY_CAPS (queue->sinkpad);
   gst_element_add_pad (GST_ELEMENT (queue), queue->sinkpad);
 
   queue->srcpad = gst_pad_new_from_static_template (&srctemplate, "src");
 
-  gst_pad_set_activatepull_function (queue->srcpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_src_activate_pull));
-  gst_pad_set_activatepush_function (queue->srcpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_src_activate_push));
+  gst_pad_set_activatemode_function (queue->srcpad,
+      GST_DEBUG_FUNCPTR (gst_queue2_src_activate_mode));
   gst_pad_set_getrange_function (queue->srcpad,
       GST_DEBUG_FUNCPTR (gst_queue2_get_range));
-  gst_pad_set_getcaps_function (queue->srcpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_getcaps));
-  gst_pad_set_acceptcaps_function (queue->srcpad,
-      GST_DEBUG_FUNCPTR (gst_queue2_acceptcaps));
   gst_pad_set_event_function (queue->srcpad,
       GST_DEBUG_FUNCPTR (gst_queue2_handle_src_event));
   gst_pad_set_query_function (queue->srcpad,
       GST_DEBUG_FUNCPTR (gst_queue2_handle_src_query));
+  GST_PAD_SET_PROXY_CAPS (queue->srcpad);
   gst_element_add_pad (GST_ELEMENT (queue), queue->srcpad);
 
   /* levels */
@@ -422,18 +433,18 @@
   queue->sink_tainted = TRUE;
   queue->src_tainted = TRUE;
 
-  queue->srcresult = GST_FLOW_WRONG_STATE;
-  queue->sinkresult = GST_FLOW_WRONG_STATE;
+  queue->srcresult = GST_FLOW_FLUSHING;
+  queue->sinkresult = GST_FLOW_FLUSHING;
   queue->is_eos = FALSE;
   queue->in_timer = g_timer_new ();
   queue->out_timer = g_timer_new ();
 
-  queue->qlock = g_mutex_new ();
+  g_mutex_init (&queue->qlock);
   queue->waiting_add = FALSE;
-  queue->item_add = g_cond_new ();
+  g_cond_init (&queue->item_add);
   queue->waiting_del = FALSE;
-  queue->item_del = g_cond_new ();
-  queue->queue = g_queue_new ();
+  g_cond_init (&queue->item_del);
+  g_queue_init (&queue->queue);
 
   queue->buffering_percent = 100;
 
@@ -458,16 +469,16 @@
 
   GST_DEBUG_OBJECT (queue, "finalizing queue");
 
-  while (!g_queue_is_empty (queue->queue)) {
-    GstMiniObject *data = g_queue_pop_head (queue->queue);
+  while (!g_queue_is_empty (&queue->queue)) {
+    GstMiniObject *data = g_queue_pop_head (&queue->queue);
 
     gst_mini_object_unref (data);
   }
 
-  g_queue_free (queue->queue);
-  g_mutex_free (queue->qlock);
-  g_cond_free (queue->item_add);
-  g_cond_free (queue->item_del);
+  g_queue_clear (&queue->queue);
+  g_mutex_clear (&queue->qlock);
+  g_cond_clear (&queue->item_add);
+  g_cond_clear (&queue->item_del);
   g_timer_destroy (queue->in_timer);
   g_timer_destroy (queue->out_timer);
 
@@ -611,42 +622,6 @@
   queue->current = add_range (queue, 0);
 }
 
-static gboolean
-gst_queue2_acceptcaps (GstPad * pad, GstCaps * caps)
-{
-  GstQueue2 *queue;
-  GstPad *otherpad;
-  gboolean result;
-
-  queue = GST_QUEUE2 (GST_PAD_PARENT (pad));
-
-  otherpad = (pad == queue->srcpad ? queue->sinkpad : queue->srcpad);
-  result = gst_pad_peer_accept_caps (otherpad, caps);
-
-  return result;
-}
-
-static GstCaps *
-gst_queue2_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstQueue2 *queue;
-  GstPad *otherpad;
-  GstCaps *result;
-
-  queue = GST_QUEUE2 (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (queue == NULL))
-    return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  otherpad = (pad == queue->srcpad ? queue->sinkpad : queue->srcpad);
-  result = gst_pad_peer_get_caps (otherpad, filter);
-  if (result == NULL)
-    result = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  gst_object_unref (queue);
-
-  return result;
-}
-
 /* calculate the diff between running time on the sink and src of the queue.
  * This is the total amount of time in the queue. */
 static void
@@ -686,11 +661,9 @@
   gst_event_copy_segment (event, segment);
 
   if (segment->format == GST_FORMAT_BYTES) {
-    if (QUEUE_IS_USING_TEMP_FILE (queue)) {
+    if (!QUEUE_IS_USING_QUEUE (queue) && is_sink) {
       /* start is where we'll be getting from and as such writing next */
       queue->current = add_range (queue, segment->start);
-      /* update the stats for this range */
-      update_cur_level (queue, queue->current);
     }
   }
 
@@ -749,6 +722,52 @@
   update_time_level (queue);
 }
 
+static gboolean
+buffer_list_apply_time (GstBuffer ** buf, guint idx, gpointer data)
+{
+  GstClockTime *timestamp = data;
+
+  GST_TRACE ("buffer %u has ts %" GST_TIME_FORMAT
+      " duration %" GST_TIME_FORMAT, idx,
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (*buf)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (*buf)));
+
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (*buf))
+    *timestamp = GST_BUFFER_TIMESTAMP (*buf);
+
+  if (GST_BUFFER_DURATION_IS_VALID (*buf))
+    *timestamp += GST_BUFFER_DURATION (*buf);
+
+  GST_TRACE ("ts now %" GST_TIME_FORMAT, GST_TIME_ARGS (*timestamp));
+  return TRUE;
+}
+
+/* take a buffer list and update segment, updating the time level of the queue */
+static void
+apply_buffer_list (GstQueue2 * queue, GstBufferList * buffer_list,
+    GstSegment * segment, gboolean is_sink)
+{
+  GstClockTime timestamp;
+
+  /* if no timestamp is set, assume it's continuous with the previous time */
+  timestamp = segment->position;
+
+  gst_buffer_list_foreach (buffer_list, buffer_list_apply_time, &timestamp);
+
+  GST_DEBUG_OBJECT (queue, "last_stop updated to %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (timestamp));
+
+  segment->position = timestamp;
+
+  if (is_sink)
+    queue->sink_tainted = TRUE;
+  else
+    queue->src_tainted = TRUE;
+
+  /* calc diff with other end */
+  update_time_level (queue);
+}
+
 static void
 update_buffering (GstQueue2 * queue)
 {
@@ -819,7 +838,7 @@
           mode = GST_BUFFERING_DOWNLOAD;
 
         if (queue->byte_in_rate > 0) {
-          if (gst_pad_query_peer_duration (queue->sinkpad, GST_FORMAT_BYTES,
+          if (gst_pad_peer_query_duration (queue->sinkpad, GST_FORMAT_BYTES,
                   &duration)) {
             buffering_left =
                 (gdouble) ((duration -
@@ -984,6 +1003,8 @@
   GstEvent *event;
   gboolean res;
 
+  /* until we receive the FLUSH_STOP from this seek, we skip data */
+  queue->seeking = TRUE;
   GST_QUEUE2_MUTEX_UNLOCK (queue);
 
   GST_DEBUG_OBJECT (queue, "Seeking to %" G_GUINT64_FORMAT, offset);
@@ -1036,20 +1057,27 @@
           (offset + length) - range->writing_pos);
 
   } else {
-    GST_INFO_OBJECT (queue, "not found in any range");
-    /* we don't have the range, see how far away we are, FIXME, find a good
-     * threshold based on the incoming rate. */
+    GST_INFO_OBJECT (queue, "not found in any range off %" G_GUINT64_FORMAT
+        " len %u", offset, length);
+    /* we don't have the range, see how far away we are */
     if (!queue->is_eos && queue->current) {
+      /* FIXME, find a good threshold based on the incoming rate. */
+      guint64 threshold = 1024 * 512;
+
       if (QUEUE_IS_USING_RING_BUFFER (queue)) {
-        if (offset < queue->current->offset || offset >
-            queue->current->writing_pos + QUEUE_MAX_BYTES (queue) -
-            queue->cur_level.bytes) {
-          perform_seek_to_offset (queue, offset);
-        } else {
+        guint64 distance;
+
+        distance = QUEUE_MAX_BYTES (queue) - queue->cur_level.bytes;
+        /* don't wait for the complete buffer to fill */
+        distance = MIN (distance, threshold);
+
+        if (offset >= queue->current->offset && offset <=
+            queue->current->writing_pos + distance) {
           GST_INFO_OBJECT (queue,
               "requested data is within range, wait for data");
+          return FALSE;
         }
-      } else if (offset < queue->current->writing_pos + 200000) {
+      } else if (offset < queue->current->writing_pos + threshold) {
         update_cur_pos (queue, queue->current, offset + length);
         GST_INFO_OBJECT (queue, "wait for data");
         return FALSE;
@@ -1122,7 +1150,7 @@
 eos:
   {
     GST_DEBUG ("non-regular file hits EOS");
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
@@ -1131,22 +1159,30 @@
     GstBuffer ** buffer)
 {
   GstBuffer *buf;
+  GstMapInfo info;
   guint8 *data;
   guint64 file_offset;
   guint block_length, remaining, read_length;
   guint64 rb_size;
+  guint64 max_size;
   guint64 rpos;
   GstFlowReturn ret = GST_FLOW_OK;
 
   /* allocate the output buffer of the requested size */
-  buf = gst_buffer_new_allocate (NULL, length, 0);
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
+  if (*buffer == NULL)
+    buf = gst_buffer_new_allocate (NULL, length, NULL);
+  else
+    buf = *buffer;
+
+  gst_buffer_map (buf, &info, GST_MAP_WRITE);
+  data = info.data;
 
   GST_DEBUG_OBJECT (queue, "Reading %u bytes from %" G_GUINT64_FORMAT, length,
       offset);
 
   rpos = offset;
   rb_size = queue->ring_buffer_max_size;
+  max_size = QUEUE_MAX_BYTES (queue);
 
   remaining = length;
   while (remaining > 0) {
@@ -1165,16 +1201,16 @@
 
         GST_DEBUG_OBJECT (queue,
             "reading %" G_GUINT64_FORMAT ", writing %" G_GUINT64_FORMAT
-            ", level %" G_GUINT64_FORMAT,
-            rpos, queue->current->writing_pos, level);
+            ", level %" G_GUINT64_FORMAT ", max %" G_GUINT64_FORMAT,
+            rpos, queue->current->writing_pos, level, max_size);
 
-        if (level >= rb_size) {
+        if (level >= max_size) {
           /* we don't have the data but if we have a ring buffer that is full, we
            * need to read */
           GST_DEBUG_OBJECT (queue,
-              "ring buffer full, reading ring-buffer-max-size %"
-              G_GUINT64_FORMAT " bytes", rb_size);
-          read_length = rb_size;
+              "ring buffer full, reading QUEUE_MAX_BYTES %"
+              G_GUINT64_FORMAT " bytes", max_size);
+          read_length = max_size;
         } else if (queue->is_eos) {
           /* won't get any more data so read any data we have */
           if (level) {
@@ -1182,21 +1218,20 @@
                 "EOS hit but read %" G_GUINT64_FORMAT " bytes that we have",
                 level);
             read_length = level;
+            remaining = level;
+            length = level;
           } else
             goto hit_eos;
         }
       }
 
       if (read_length == 0) {
-        if (QUEUE_IS_USING_RING_BUFFER (queue)
-            && queue->current->max_reading_pos > rpos) {
-          /* protect cached data (data between offset and max_reading_pos)
-           * and update current level */
+        if (QUEUE_IS_USING_RING_BUFFER (queue)) {
           GST_DEBUG_OBJECT (queue,
-              "protecting cached data [%" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT
-              "]", rpos, queue->current->max_reading_pos);
-          queue->current->max_reading_pos = rpos;
-          update_cur_level (queue, queue->current);
+              "update current position [%" G_GUINT64_FORMAT "-%"
+              G_GUINT64_FORMAT "]", rpos, queue->current->max_reading_pos);
+          update_cur_pos (queue, queue->current, rpos);
+          GST_QUEUE2_SIGNAL_DEL (queue);
         }
         GST_DEBUG_OBJECT (queue, "waiting for add");
         GST_QUEUE2_WAIT_ADD_CHECK (queue, queue->srcresult, out_flushing);
@@ -1251,7 +1286,8 @@
     GST_DEBUG_OBJECT (queue, "%u bytes left to read", remaining);
   }
 
-  gst_buffer_unmap (buf, data, length);
+  gst_buffer_unmap (buf, &info);
+  gst_buffer_resize (buf, 0, length);
 
   GST_BUFFER_OFFSET (buf) = offset;
   GST_BUFFER_OFFSET_END (buf) = offset + length;
@@ -1264,20 +1300,25 @@
 hit_eos:
   {
     GST_DEBUG_OBJECT (queue, "EOS hit and we don't have any requested data");
-    gst_buffer_unref (buf);
-    return GST_FLOW_UNEXPECTED;
+    gst_buffer_unmap (buf, &info);
+    if (*buffer == NULL)
+      gst_buffer_unref (buf);
+    return GST_FLOW_EOS;
   }
 out_flushing:
   {
     GST_DEBUG_OBJECT (queue, "we are flushing");
-    gst_buffer_unref (buf);
-    return GST_FLOW_WRONG_STATE;
+    gst_buffer_unmap (buf, &info);
+    if (*buffer == NULL)
+      gst_buffer_unref (buf);
+    return GST_FLOW_FLUSHING;
   }
 read_error:
   {
     GST_DEBUG_OBJECT (queue, "we have a read error");
-    gst_buffer_unmap (buf, data, 0);
-    gst_buffer_unref (buf);
+    gst_buffer_unmap (buf, &info);
+    if (*buffer == NULL)
+      gst_buffer_unref (buf);
     return ret;
   }
 }
@@ -1288,12 +1329,15 @@
 {
   GstMiniObject *item;
 
-  if (queue->starting_segment != NULL) {
+  if (queue->stream_start_event != NULL) {
+    item = GST_MINI_OBJECT_CAST (queue->stream_start_event);
+    queue->stream_start_event = NULL;
+  } else if (queue->starting_segment != NULL) {
     item = GST_MINI_OBJECT_CAST (queue->starting_segment);
     queue->starting_segment = NULL;
   } else {
     GstFlowReturn ret;
-    GstBuffer *buffer;
+    GstBuffer *buffer = NULL;
     guint64 reading_pos;
 
     reading_pos = queue->current->reading_pos;
@@ -1306,7 +1350,7 @@
       case GST_FLOW_OK:
         item = GST_MINI_OBJECT_CAST (buffer);
         break;
-      case GST_FLOW_UNEXPECTED:
+      case GST_FLOW_EOS:
         item = GST_MINI_OBJECT_CAST (gst_event_new_eos ());
         break;
       default:
@@ -1442,8 +1486,8 @@
       gst_queue2_flush_temp_file (queue);
     init_ranges (queue);
   } else {
-    while (!g_queue_is_empty (queue->queue)) {
-      GstMiniObject *data = g_queue_pop_head (queue->queue);
+    while (!g_queue_is_empty (&queue->queue)) {
+      GstMiniObject *data = g_queue_pop_head (&queue->queue);
 
       /* Then lose another reference because we are supposed to destroy that
          data when flushing */
@@ -1459,6 +1503,7 @@
     gst_event_unref (queue->starting_segment);
   queue->starting_segment = NULL;
   queue->segment_event_received = FALSE;
+  gst_event_replace (&queue->stream_start_event, NULL);
 
   /* we deleted a lot of something */
   GST_QUEUE2_SIGNAL_DEL (queue);
@@ -1502,9 +1547,9 @@
 static gboolean
 gst_queue2_create_write (GstQueue2 * queue, GstBuffer * buffer)
 {
-  guint8 *odata, *data, *ring_buffer;
+  GstMapInfo info;
+  guint8 *data, *ring_buffer;
   guint size, rb_size;
-  gsize osize;
   guint64 writing_pos, new_writing_pos;
   GstQueue2Range *range, *prev, *next;
 
@@ -1515,13 +1560,13 @@
   ring_buffer = queue->ring_buffer;
   rb_size = queue->ring_buffer_max_size;
 
-  odata = gst_buffer_map (buffer, &osize, NULL, GST_MAP_READ);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
 
-  size = osize;
-  data = odata;
+  size = info.size;
+  data = info.data;
 
   GST_DEBUG_OBJECT (queue, "Writing %u bytes to %" G_GUINT64_FORMAT, size,
-      GST_BUFFER_OFFSET (buffer));
+      writing_pos);
 
   while (size > 0) {
     guint to_write;
@@ -1742,7 +1787,7 @@
     GST_QUEUE2_SIGNAL_ADD (queue);
   }
 
-  gst_buffer_unmap (buffer, odata, osize);
+  gst_buffer_unmap (buffer, &info);
 
   return TRUE;
 
@@ -1750,14 +1795,14 @@
 out_flushing:
   {
     GST_DEBUG_OBJECT (queue, "we are flushing");
-    gst_buffer_unmap (buffer, odata, osize);
-    /* FIXME - GST_FLOW_UNEXPECTED ? */
+    gst_buffer_unmap (buffer, &info);
+    /* FIXME - GST_FLOW_EOS ? */
     return FALSE;
   }
 seek_failed:
   {
     GST_ELEMENT_ERROR (queue, RESOURCE, SEEK, (NULL), GST_ERROR_SYSTEM);
-    gst_buffer_unmap (buffer, odata, osize);
+    gst_buffer_unmap (buffer, &info);
     return FALSE;
   }
 handle_error:
@@ -1773,16 +1818,45 @@
             ("%s", g_strerror (errno)));
       }
     }
-    gst_buffer_unmap (buffer, odata, osize);
+    gst_buffer_unmap (buffer, &info);
     return FALSE;
   }
 }
 
+static gboolean
+buffer_list_create_write (GstBuffer ** buf, guint idx, gpointer q)
+{
+  GstQueue2 *queue = q;
+
+  GST_TRACE_OBJECT (queue,
+      "writing buffer %u of size %" G_GSIZE_FORMAT " bytes", idx,
+      gst_buffer_get_size (*buf));
+
+  if (!gst_queue2_create_write (queue, *buf)) {
+    GST_INFO_OBJECT (queue, "create_write() returned FALSE, bailing out");
+    return FALSE;
+  }
+  return TRUE;
+}
+
+static gboolean
+buffer_list_calc_size (GstBuffer ** buf, guint idx, gpointer data)
+{
+  guint *p_size = data;
+  gsize buf_size;
+
+  buf_size = gst_buffer_get_size (*buf);
+  GST_TRACE ("buffer %u in has size %" G_GSIZE_FORMAT, idx, buf_size);
+  *p_size += buf_size;
+  return TRUE;
+}
+
 /* enqueue an item an update the level stats */
 static void
-gst_queue2_locked_enqueue (GstQueue2 * queue, gpointer item, gboolean isbuffer)
+gst_queue2_locked_enqueue (GstQueue2 * queue, gpointer item,
+    GstQueue2ItemType item_type)
 {
-  if (isbuffer) {
+  if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER) {
     GstBuffer *buffer;
     guint size;
 
@@ -1805,7 +1879,32 @@
       /* FIXME - check return value? */
       gst_queue2_create_write (queue, buffer);
     }
-  } else if (GST_IS_EVENT (item)) {
+  } else if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER_LIST) {
+    GstBufferList *buffer_list;
+    guint size = 0;
+
+    buffer_list = GST_BUFFER_LIST_CAST (item);
+
+    gst_buffer_list_foreach (buffer_list, buffer_list_calc_size, &size);
+    GST_LOG_OBJECT (queue, "total size of buffer list: %u bytes", size);
+
+    /* add buffer to the statistics */
+    if (QUEUE_IS_USING_QUEUE (queue)) {
+      queue->cur_level.buffers++;
+      queue->cur_level.bytes += size;
+    }
+    queue->bytes_in += size;
+
+    /* apply new buffer to segment stats */
+    apply_buffer_list (queue, buffer_list, &queue->sink_segment, TRUE);
+
+    /* update the byterate stats */
+    update_in_rates (queue);
+
+    if (!QUEUE_IS_USING_QUEUE (queue)) {
+      gst_buffer_list_foreach (buffer_list, buffer_list_create_write, queue);
+    }
+  } else if (item_type == GST_QUEUE2_ITEM_TYPE_EVENT) {
     GstEvent *event;
 
     event = GST_EVENT_CAST (item);
@@ -1831,10 +1930,17 @@
           queue->starting_segment = event;
           item = NULL;
         }
-        /* a new segment allows us to accept more buffers if we got UNEXPECTED
+        /* a new segment allows us to accept more buffers if we got EOS
          * from downstream */
         queue->unexpected = FALSE;
         break;
+      case GST_EVENT_STREAM_START:
+        if (!QUEUE_IS_USING_QUEUE (queue)) {
+          gst_event_replace (&queue->stream_start_event, event);
+          gst_event_unref (event);
+          item = NULL;
+        }
+        break;
       default:
         if (!QUEUE_IS_USING_QUEUE (queue))
           goto unexpected_event;
@@ -1853,7 +1959,7 @@
       update_buffering (queue);
 
     if (QUEUE_IS_USING_QUEUE (queue)) {
-      g_queue_push_tail (queue->queue, item);
+      g_queue_push_tail (&queue->queue, item);
     } else {
       gst_mini_object_unref (GST_MINI_OBJECT_CAST (item));
     }
@@ -1877,14 +1983,14 @@
 
 /* dequeue an item from the queue and update level stats */
 static GstMiniObject *
-gst_queue2_locked_dequeue (GstQueue2 * queue, gboolean * is_buffer)
+gst_queue2_locked_dequeue (GstQueue2 * queue, GstQueue2ItemType * item_type)
 {
   GstMiniObject *item;
 
   if (!QUEUE_IS_USING_QUEUE (queue))
     item = gst_queue2_read_item_from_file (queue);
   else
-    item = g_queue_pop_head (queue->queue);
+    item = g_queue_pop_head (&queue->queue);
 
   if (item == NULL)
     goto no_item;
@@ -1895,7 +2001,7 @@
 
     buffer = GST_BUFFER_CAST (item);
     size = gst_buffer_get_size (buffer);
-    *is_buffer = TRUE;
+    *item_type = GST_QUEUE2_ITEM_TYPE_BUFFER;
 
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "retrieved buffer %p from queue", buffer);
@@ -1916,7 +2022,7 @@
   } else if (GST_IS_EVENT (item)) {
     GstEvent *event = GST_EVENT_CAST (item);
 
-    *is_buffer = FALSE;
+    *item_type = GST_QUEUE2_ITEM_TYPE_EVENT;
 
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "retrieved event %p from queue", event);
@@ -1932,11 +2038,36 @@
       default:
         break;
     }
+  } else if (GST_IS_BUFFER_LIST (item)) {
+    GstBufferList *buffer_list;
+    guint size = 0;
+
+    buffer_list = GST_BUFFER_LIST_CAST (item);
+    gst_buffer_list_foreach (buffer_list, buffer_list_calc_size, &size);
+    *item_type = GST_QUEUE2_ITEM_TYPE_BUFFER_LIST;
+
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+        "retrieved buffer list %p from queue", buffer_list);
+
+    if (QUEUE_IS_USING_QUEUE (queue)) {
+      queue->cur_level.buffers--;
+      queue->cur_level.bytes -= size;
+    }
+    queue->bytes_out += size;
+
+    apply_buffer_list (queue, buffer_list, &queue->src_segment, FALSE);
+    /* update the byterate stats */
+    update_out_rates (queue);
+    /* update the buffering */
+    if (queue->use_buffering)
+      update_buffering (queue);
+
   } else {
     g_warning
         ("Unexpected item %p dequeued from queue %s (refcounting problem?)",
         item, GST_OBJECT_NAME (queue));
     item = NULL;
+    *item_type = GST_QUEUE2_ITEM_TYPE_UNKNOWN;
   }
   GST_QUEUE2_SIGNAL_DEL (queue);
 
@@ -1951,24 +2082,25 @@
 }
 
 static gboolean
-gst_queue2_handle_sink_event (GstPad * pad, GstEvent * event)
+gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
 {
   GstQueue2 *queue;
 
-  queue = GST_QUEUE2 (GST_OBJECT_PARENT (pad));
+  queue = GST_QUEUE2 (parent);
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_START:
     {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received flush start event");
-      if (QUEUE_IS_USING_QUEUE (queue)) {
+      if (GST_PAD_MODE (queue->srcpad) == GST_PAD_MODE_PUSH) {
         /* forward event */
         gst_pad_push_event (queue->srcpad, event);
 
         /* now unblock the chain function */
         GST_QUEUE2_MUTEX_LOCK (queue);
-        queue->srcresult = GST_FLOW_WRONG_STATE;
-        queue->sinkresult = GST_FLOW_WRONG_STATE;
+        queue->srcresult = GST_FLOW_FLUSHING;
+        queue->sinkresult = GST_FLOW_FLUSHING;
         /* unblock the loop and chain functions */
         GST_QUEUE2_SIGNAL_ADD (queue);
         GST_QUEUE2_SIGNAL_DEL (queue);
@@ -1981,7 +2113,7 @@
       } else {
         GST_QUEUE2_MUTEX_LOCK (queue);
         /* flush the sink pad */
-        queue->sinkresult = GST_FLOW_WRONG_STATE;
+        queue->sinkresult = GST_FLOW_FLUSHING;
         GST_QUEUE2_SIGNAL_DEL (queue);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
@@ -1993,7 +2125,7 @@
     {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received flush stop event");
 
-      if (QUEUE_IS_USING_QUEUE (queue)) {
+      if (GST_PAD_MODE (queue->srcpad) == GST_PAD_MODE_PUSH) {
         /* forward event */
         gst_pad_push_event (queue->srcpad, event);
 
@@ -2003,6 +2135,7 @@
         queue->sinkresult = GST_FLOW_OK;
         queue->is_eos = FALSE;
         queue->unexpected = FALSE;
+        queue->seeking = FALSE;
         /* reset rate counters */
         reset_rate_timer (queue);
         gst_pad_start_task (queue->srcpad, (GstTaskFunction) gst_queue2_loop,
@@ -2014,6 +2147,7 @@
         queue->is_eos = FALSE;
         queue->unexpected = FALSE;
         queue->sinkresult = GST_FLOW_OK;
+        queue->seeking = FALSE;
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
         gst_event_unref (event);
@@ -2027,7 +2161,7 @@
         /* refuse more events on EOS */
         if (queue->is_eos)
           goto out_eos;
-        gst_queue2_locked_enqueue (queue, event, FALSE);
+        gst_queue2_locked_enqueue (queue, event, GST_QUEUE2_ITEM_TYPE_EVENT);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
       } else {
         /* non-serialized events are passed upstream. */
@@ -2056,6 +2190,25 @@
 }
 
 static gboolean
+gst_queue2_handle_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query)
+{
+  gboolean res;
+
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      if (GST_QUERY_IS_SERIALIZED (query)) {
+        GST_WARNING_OBJECT (pad, "unhandled serialized query");
+        res = FALSE;
+      } else {
+        res = gst_pad_query_default (pad, parent, query);
+      }
+      break;
+  }
+  return res;
+}
+
+static gboolean
 gst_queue2_is_empty (GstQueue2 * queue)
 {
   /* never empty on EOS */
@@ -2065,7 +2218,7 @@
   if (!QUEUE_IS_USING_QUEUE (queue) && queue->current) {
     return queue->current->writing_pos <= queue->current->max_reading_pos;
   } else {
-    if (queue->queue->length == 0)
+    if (queue->queue.length == 0)
       return TRUE;
   }
 
@@ -2117,18 +2270,9 @@
 }
 
 static GstFlowReturn
-gst_queue2_chain (GstPad * pad, GstBuffer * buffer)
+gst_queue2_chain_buffer_or_buffer_list (GstQueue2 * queue,
+    GstMiniObject * item, GstQueue2ItemType item_type)
 {
-  GstQueue2 *queue;
-
-  queue = GST_QUEUE2 (GST_OBJECT_PARENT (pad));
-
-  GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received buffer %p of size %"
-      G_GSIZE_FORMAT ", time %" GST_TIME_FORMAT ", duration %"
-      GST_TIME_FORMAT, buffer, gst_buffer_get_size (buffer),
-      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
-      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
-
   /* we have to lock the queue since we span threads */
   GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->sinkresult, out_flushing);
   /* when we received EOS, we refuse more data */
@@ -2138,11 +2282,15 @@
   if (queue->unexpected)
     goto out_unexpected;
 
+  /* while we didn't receive the newsegment, we're seeking and we skip data */
+  if (queue->seeking)
+    goto out_seeking;
+
   if (!gst_queue2_wait_free_space (queue))
     goto out_flushing;
 
   /* put buffer in queue now */
-  gst_queue2_locked_enqueue (queue, buffer, TRUE);
+  gst_queue2_locked_enqueue (queue, item, item_type);
   GST_QUEUE2_MUTEX_UNLOCK (queue);
 
   return GST_FLOW_OK;
@@ -2155,7 +2303,7 @@
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "exit because task paused, reason: %s", gst_flow_get_name (ret));
     GST_QUEUE2_MUTEX_UNLOCK (queue);
-    gst_buffer_unref (buffer);
+    gst_mini_object_unref (item);
 
     return ret;
   }
@@ -2163,21 +2311,104 @@
   {
     GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we received EOS");
     GST_QUEUE2_MUTEX_UNLOCK (queue);
-    gst_buffer_unref (buffer);
+    gst_mini_object_unref (item);
 
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
+  }
+out_seeking:
+  {
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are seeking");
+    GST_QUEUE2_MUTEX_UNLOCK (queue);
+    gst_mini_object_unref (item);
+
+    return GST_FLOW_OK;
   }
 out_unexpected:
   {
-    GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-        "exit because we received UNEXPECTED");
+    GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we received EOS");
     GST_QUEUE2_MUTEX_UNLOCK (queue);
-    gst_buffer_unref (buffer);
+    gst_mini_object_unref (item);
 
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
+static GstFlowReturn
+gst_queue2_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstQueue2 *queue;
+
+  queue = GST_QUEUE2 (parent);
+
+  GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received buffer %p of "
+      "size %" G_GSIZE_FORMAT ", time %" GST_TIME_FORMAT ", duration %"
+      GST_TIME_FORMAT, buffer, gst_buffer_get_size (buffer),
+      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+      GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+  return gst_queue2_chain_buffer_or_buffer_list (queue,
+      GST_MINI_OBJECT_CAST (buffer), GST_QUEUE2_ITEM_TYPE_BUFFER);
+}
+
+static GstFlowReturn
+gst_queue2_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * buffer_list)
+{
+  GstQueue2 *queue;
+
+  queue = GST_QUEUE2 (parent);
+
+  GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+      "received buffer list %p", buffer_list);
+
+  return gst_queue2_chain_buffer_or_buffer_list (queue,
+      GST_MINI_OBJECT_CAST (buffer_list), GST_QUEUE2_ITEM_TYPE_BUFFER_LIST);
+}
+
+static GstMiniObject *
+gst_queue2_dequeue_on_eos (GstQueue2 * queue, GstQueue2ItemType * item_type)
+{
+  GstMiniObject *data;
+
+  GST_CAT_LOG_OBJECT (queue_dataflow, queue, "got EOS from downstream");
+
+  /* stop pushing buffers, we dequeue all items until we see an item that we
+   * can push again, which is EOS or SEGMENT. If there is nothing in the
+   * queue we can push, we set a flag to make the sinkpad refuse more
+   * buffers with an EOS return value until we receive something
+   * pushable again or we get flushed. */
+  while ((data = gst_queue2_locked_dequeue (queue, item_type))) {
+    if (*item_type == GST_QUEUE2_ITEM_TYPE_BUFFER) {
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+          "dropping EOS buffer %p", data);
+      gst_buffer_unref (GST_BUFFER_CAST (data));
+    } else if (*item_type == GST_QUEUE2_ITEM_TYPE_EVENT) {
+      GstEvent *event = GST_EVENT_CAST (data);
+      GstEventType type = GST_EVENT_TYPE (event);
+
+      if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT) {
+        /* we found a pushable item in the queue, push it out */
+        GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+            "pushing pushable event %s after EOS", GST_EVENT_TYPE_NAME (event));
+        return data;
+      }
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+          "dropping EOS event %p", event);
+      gst_event_unref (event);
+    } else if (*item_type == GST_QUEUE2_ITEM_TYPE_BUFFER_LIST) {
+      GST_CAT_LOG_OBJECT (queue_dataflow, queue,
+          "dropping EOS buffer list %p", data);
+      gst_buffer_list_unref (GST_BUFFER_LIST_CAST (data));
+    }
+  }
+  /* no more items in the queue. Set the unexpected flag so that upstream
+   * make us refuse any more buffers on the sinkpad. Since we will still
+   * accept EOS and SEGMENT we return _FLOW_OK to the caller so that the
+   * task function does not shut down. */
+  queue->unexpected = TRUE;
+  return NULL;
+}
+
 /* dequeue an item from the queue an push it downstream. This functions returns
  * the result of the push. */
 static GstFlowReturn
@@ -2185,16 +2416,16 @@
 {
   GstFlowReturn result = GST_FLOW_OK;
   GstMiniObject *data;
-  gboolean is_buffer = FALSE;
+  GstQueue2ItemType item_type;
 
-  data = gst_queue2_locked_dequeue (queue, &is_buffer);
+  data = gst_queue2_locked_dequeue (queue, &item_type);
   if (data == NULL)
     goto no_item;
 
 next:
   GST_QUEUE2_MUTEX_UNLOCK (queue);
 
-  if (is_buffer) {
+  if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER) {
     GstBuffer *buffer;
 #if 0
     GstCaps *caps;
@@ -2216,56 +2447,59 @@
 
     /* need to check for srcresult here as well */
     GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
-    if (result == GST_FLOW_UNEXPECTED) {
-      GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-          "got UNEXPECTED from downstream");
-      /* stop pushing buffers, we dequeue all items until we see an item that we
-       * can push again, which is EOS or SEGMENT. If there is nothing in the
-       * queue we can push, we set a flag to make the sinkpad refuse more
-       * buffers with an UNEXPECTED return value until we receive something
-       * pushable again or we get flushed. */
-      while ((data = gst_queue2_locked_dequeue (queue, &is_buffer))) {
-        if (is_buffer) {
-          GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-              "dropping UNEXPECTED buffer %p", data);
-          gst_buffer_unref (GST_BUFFER_CAST (data));
-        } else if (GST_IS_EVENT (data)) {
-          GstEvent *event = GST_EVENT_CAST (data);
-          GstEventType type = GST_EVENT_TYPE (event);
-
-          if (type == GST_EVENT_EOS || type == GST_EVENT_SEGMENT) {
-            /* we found a pushable item in the queue, push it out */
-            GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-                "pushing pushable event %s after UNEXPECTED",
-                GST_EVENT_TYPE_NAME (event));
-            goto next;
-          }
-          GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-              "dropping UNEXPECTED event %p", event);
-          gst_event_unref (event);
-        }
-      }
-      /* no more items in the queue. Set the unexpected flag so that upstream
-       * make us refuse any more buffers on the sinkpad. Since we will still
-       * accept EOS and SEGMENT we return _FLOW_OK to the caller so that the
-       * task function does not shut down. */
-      queue->unexpected = TRUE;
+    if (result == GST_FLOW_EOS) {
+      data = gst_queue2_dequeue_on_eos (queue, &item_type);
+      if (data != NULL)
+        goto next;
+      /* Since we will still accept EOS and SEGMENT we return _FLOW_OK
+       * to the caller so that the task function does not shut down */
       result = GST_FLOW_OK;
     }
-  } else if (GST_IS_EVENT (data)) {
+  } else if (item_type == GST_QUEUE2_ITEM_TYPE_EVENT) {
     GstEvent *event = GST_EVENT_CAST (data);
     GstEventType type = GST_EVENT_TYPE (event);
 
     gst_pad_push_event (queue->srcpad, event);
 
-    /* if we're EOS, return UNEXPECTED so that the task pauses. */
+    /* if we're EOS, return EOS so that the task pauses. */
     if (type == GST_EVENT_EOS) {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue,
-          "pushed EOS event %p, return UNEXPECTED", event);
-      result = GST_FLOW_UNEXPECTED;
+          "pushed EOS event %p, return EOS", event);
+      result = GST_FLOW_EOS;
     }
 
     GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
+  } else if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER_LIST) {
+    GstBufferList *buffer_list;
+#if 0
+    GstBuffer *first_buf;
+    GstCaps *caps;
+#endif
+
+    buffer_list = GST_BUFFER_LIST_CAST (data);
+
+#if 0
+    first_buf = gst_buffer_list_get (buffer_list, 0);
+    caps = (first_buf != NULL) ? GST_BUFFER_CAPS (first_buf) : NULL;
+
+    /* set caps before pushing the buffer so that core does not try to do
+     * something fancy to check if this is possible. */
+    if (caps && caps != GST_PAD_CAPS (queue->srcpad))
+      gst_pad_set_caps (queue->srcpad, caps);
+#endif
+
+    result = gst_pad_push_list (queue->srcpad, buffer_list);
+
+    /* need to check for srcresult here as well */
+    GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
+    if (result == GST_FLOW_EOS) {
+      data = gst_queue2_dequeue_on_eos (queue, &item_type);
+      if (data != NULL)
+        goto next;
+      /* Since we will still accept EOS and SEGMENT we return _FLOW_OK
+       * to the caller so that the task function does not shut down */
+      result = GST_FLOW_OK;
+    }
   }
   return result;
 
@@ -2279,7 +2513,7 @@
 out_flushing:
   {
     GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing");
-    return GST_FLOW_WRONG_STATE;
+    return GST_FLOW_FLUSHING;
   }
 }
 
@@ -2337,8 +2571,8 @@
     GST_CAT_LOG_OBJECT (queue_dataflow, queue,
         "pause task, reason:  %s", gst_flow_get_name (queue->srcresult));
     /* let app know about us giving up if upstream is not expected to do so */
-    /* UNEXPECTED is already taken care of elsewhere */
-    if (eos && (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_UNEXPECTED)) {
+    /* EOS is already taken care of elsewhere */
+    if (eos && (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS)) {
       GST_ELEMENT_ERROR (queue, STREAM, FAILED,
           (_("Internal data flow error.")),
           ("streaming task paused, reason %s (%d)",
@@ -2350,15 +2584,11 @@
 }
 
 static gboolean
-gst_queue2_handle_src_event (GstPad * pad, GstEvent * event)
+gst_queue2_handle_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
-  GstQueue2 *queue = GST_QUEUE2 (gst_pad_get_parent (pad));
+  GstQueue2 *queue = GST_QUEUE2 (parent);
 
-  if (G_UNLIKELY (queue == NULL)) {
-    gst_event_unref (event);
-    return FALSE;
-  }
 #ifndef GST_DISABLE_GST_DEBUG
   GST_CAT_DEBUG_OBJECT (queue_dataflow, queue, "got event %p (%s)",
       event, GST_EVENT_TYPE_NAME (event));
@@ -2373,7 +2603,7 @@
         /* now unblock the getrange function */
         GST_QUEUE2_MUTEX_LOCK (queue);
         GST_DEBUG_OBJECT (queue, "flushing");
-        queue->srcresult = GST_FLOW_WRONG_STATE;
+        queue->srcresult = GST_FLOW_FLUSHING;
         GST_QUEUE2_SIGNAL_ADD (queue);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
@@ -2390,12 +2620,6 @@
         /* now unblock the getrange function */
         GST_QUEUE2_MUTEX_LOCK (queue);
         queue->srcresult = GST_FLOW_OK;
-        if (queue->current) {
-          /* forget the highest read offset, we'll calculate a new one when we
-           * get the next getrange request. We need to do this in order to reset
-           * the buffering percentage */
-          queue->current->max_reading_pos = 0;
-        }
         GST_QUEUE2_MUTEX_UNLOCK (queue);
 
         /* when using a temp file, we eat the event */
@@ -2408,31 +2632,15 @@
       break;
   }
 
-  gst_object_unref (queue);
   return res;
 }
 
 static gboolean
-gst_queue2_peer_query (GstQueue2 * queue, GstPad * pad, GstQuery * query)
-{
-  gboolean ret = FALSE;
-  GstPad *peer;
-
-  if ((peer = gst_pad_get_peer (pad))) {
-    ret = gst_pad_query (peer, query);
-    gst_object_unref (peer);
-  }
-  return ret;
-}
-
-static gboolean
-gst_queue2_handle_src_query (GstPad * pad, GstQuery * query)
+gst_queue2_handle_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstQueue2 *queue;
 
-  queue = GST_QUEUE2 (gst_pad_get_parent (pad));
-  if (G_UNLIKELY (queue == NULL))
-    return FALSE;
+  queue = GST_QUEUE2 (parent);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
@@ -2440,7 +2648,7 @@
       gint64 peer_pos;
       GstFormat format;
 
-      if (!gst_queue2_peer_query (queue, queue->sinkpad, query))
+      if (!gst_pad_peer_query (queue->sinkpad, query))
         goto peer_failed;
 
       /* get peer position */
@@ -2467,7 +2675,7 @@
     {
       GST_DEBUG_OBJECT (queue, "doing peer query");
 
-      if (!gst_queue2_peer_query (queue, queue->sinkpad, query))
+      if (!gst_pad_peer_query (queue->sinkpad, query))
         goto peer_failed;
 
       GST_DEBUG_OBJECT (queue, "peer query success");
@@ -2482,7 +2690,7 @@
       /* FIXME - is this condition correct? what should ring buffer do? */
       if (QUEUE_IS_USING_QUEUE (queue)) {
         /* no temp file, just forward to the peer */
-        if (!gst_queue2_peer_query (queue, queue->sinkpad, query))
+        if (!gst_pad_peer_query (queue->sinkpad, query))
           goto peer_failed;
         GST_DEBUG_OBJECT (queue, "buffering forwarded to peer");
       } else {
@@ -2512,7 +2720,7 @@
           duration = writing_pos;
         } else {
           /* get duration of upstream in bytes */
-          peer_res = gst_pad_query_peer_duration (queue->sinkpad,
+          peer_res = gst_pad_peer_query_duration (queue->sinkpad,
               GST_FORMAT_BYTES, &duration);
         }
 
@@ -2597,28 +2805,32 @@
     case GST_QUERY_SCHEDULING:
     {
       gboolean pull_mode;
+      GstSchedulingFlags flags = 0;
 
       /* we can operate in pull mode when we are using a tempfile */
       pull_mode = !QUEUE_IS_USING_QUEUE (queue);
 
-      gst_query_set_scheduling (query, pull_mode, pull_mode, FALSE, 0, -1, 1);
+      if (pull_mode)
+        flags |= GST_SCHEDULING_FLAG_SEEKABLE;
+      gst_query_set_scheduling (query, flags, 0, -1, 0);
+      if (pull_mode)
+        gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
       break;
     }
     default:
       /* peer handled other queries */
-      if (!gst_queue2_peer_query (queue, queue->sinkpad, query))
+      if (!gst_pad_query_default (pad, parent, query))
         goto peer_failed;
       break;
   }
 
-  gst_object_unref (queue);
   return TRUE;
 
   /* ERRORS */
 peer_failed:
   {
     GST_DEBUG_OBJECT (queue, "failed peer query");
-    gst_object_unref (queue);
     return FALSE;
   }
 }
@@ -2626,8 +2838,11 @@
 static gboolean
 gst_queue2_handle_query (GstElement * element, GstQuery * query)
 {
+  GstQueue2 *queue = GST_QUEUE2 (element);
+
   /* simply forward to the srcpad query function */
-  return gst_queue2_handle_src_query (GST_QUEUE2_CAST (element)->srcpad, query);
+  return gst_queue2_handle_src_query (queue->srcpad, GST_OBJECT_CAST (element),
+      query);
 }
 
 static void
@@ -2635,7 +2850,7 @@
 {
   gint64 upstream_size = -1;
 
-  if (gst_pad_query_peer_duration (queue->sinkpad, GST_FORMAT_BYTES,
+  if (gst_pad_peer_query_duration (queue->sinkpad, GST_FORMAT_BYTES,
           &upstream_size)) {
     GST_INFO_OBJECT (queue, "upstream size: %" G_GINT64_FORMAT, upstream_size);
     queue->upstream_size = upstream_size;
@@ -2643,13 +2858,13 @@
 }
 
 static GstFlowReturn
-gst_queue2_get_range (GstPad * pad, guint64 offset, guint length,
-    GstBuffer ** buffer)
+gst_queue2_get_range (GstPad * pad, GstObject * parent, guint64 offset,
+    guint length, GstBuffer ** buffer)
 {
   GstQueue2 *queue;
   GstFlowReturn ret;
 
-  queue = GST_QUEUE2_CAST (gst_pad_get_parent (pad));
+  queue = GST_QUEUE2_CAST (parent);
 
   length = (length == -1) ? DEFAULT_BUFFER_SIZE : length;
   GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
@@ -2681,8 +2896,6 @@
   ret = gst_queue2_create_read (queue, offset, length, buffer);
   GST_QUEUE2_MUTEX_UNLOCK (queue);
 
-  gst_object_unref (queue);
-
   return ret;
 
   /* ERRORS */
@@ -2692,60 +2905,64 @@
 
     GST_DEBUG_OBJECT (queue, "we are flushing");
     GST_QUEUE2_MUTEX_UNLOCK (queue);
-    gst_object_unref (queue);
     return ret;
   }
 out_unexpected:
   {
     GST_DEBUG_OBJECT (queue, "read beyond end of file");
     GST_QUEUE2_MUTEX_UNLOCK (queue);
-    gst_object_unref (queue);
-    return GST_FLOW_UNEXPECTED;
+    return GST_FLOW_EOS;
   }
 }
 
 /* sink currently only operates in push mode */
 static gboolean
-gst_queue2_sink_activate_push (GstPad * pad, gboolean active)
+gst_queue2_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
-  gboolean result = TRUE;
+  gboolean result;
   GstQueue2 *queue;
 
-  queue = GST_QUEUE2 (gst_pad_get_parent (pad));
+  queue = GST_QUEUE2 (parent);
 
-  if (active) {
-    GST_QUEUE2_MUTEX_LOCK (queue);
-    GST_DEBUG_OBJECT (queue, "activating push mode");
-    queue->srcresult = GST_FLOW_OK;
-    queue->sinkresult = GST_FLOW_OK;
-    queue->is_eos = FALSE;
-    queue->unexpected = FALSE;
-    reset_rate_timer (queue);
-    GST_QUEUE2_MUTEX_UNLOCK (queue);
-  } else {
-    /* unblock chain function */
-    GST_QUEUE2_MUTEX_LOCK (queue);
-    GST_DEBUG_OBJECT (queue, "deactivating push mode");
-    queue->srcresult = GST_FLOW_WRONG_STATE;
-    queue->sinkresult = GST_FLOW_WRONG_STATE;
-    gst_queue2_locked_flush (queue);
-    GST_QUEUE2_MUTEX_UNLOCK (queue);
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+      if (active) {
+        GST_QUEUE2_MUTEX_LOCK (queue);
+        GST_DEBUG_OBJECT (queue, "activating push mode");
+        queue->srcresult = GST_FLOW_OK;
+        queue->sinkresult = GST_FLOW_OK;
+        queue->is_eos = FALSE;
+        queue->unexpected = FALSE;
+        reset_rate_timer (queue);
+        GST_QUEUE2_MUTEX_UNLOCK (queue);
+      } else {
+        /* unblock chain function */
+        GST_QUEUE2_MUTEX_LOCK (queue);
+        GST_DEBUG_OBJECT (queue, "deactivating push mode");
+        queue->srcresult = GST_FLOW_FLUSHING;
+        queue->sinkresult = GST_FLOW_FLUSHING;
+        gst_queue2_locked_flush (queue);
+        GST_QUEUE2_MUTEX_UNLOCK (queue);
+      }
+      result = TRUE;
+      break;
+    default:
+      result = FALSE;
+      break;
   }
-
-  gst_object_unref (queue);
-
   return result;
 }
 
 /* src operating in push mode, we start a task on the source pad that pushes out
  * buffers from the queue */
 static gboolean
-gst_queue2_src_activate_push (GstPad * pad, gboolean active)
+gst_queue2_src_activate_push (GstPad * pad, GstObject * parent, gboolean active)
 {
   gboolean result = FALSE;
   GstQueue2 *queue;
 
-  queue = GST_QUEUE2 (gst_pad_get_parent (pad));
+  queue = GST_QUEUE2 (parent);
 
   if (active) {
     GST_QUEUE2_MUTEX_LOCK (queue);
@@ -2760,8 +2977,8 @@
     /* unblock loop function */
     GST_QUEUE2_MUTEX_LOCK (queue);
     GST_DEBUG_OBJECT (queue, "deactivating push mode");
-    queue->srcresult = GST_FLOW_WRONG_STATE;
-    queue->sinkresult = GST_FLOW_WRONG_STATE;
+    queue->srcresult = GST_FLOW_FLUSHING;
+    queue->sinkresult = GST_FLOW_FLUSHING;
     /* the item add signal will unblock */
     GST_QUEUE2_SIGNAL_ADD (queue);
     GST_QUEUE2_MUTEX_UNLOCK (queue);
@@ -2770,19 +2987,17 @@
     result = gst_pad_stop_task (pad);
   }
 
-  gst_object_unref (queue);
-
   return result;
 }
 
 /* pull mode, downstream will call our getrange function */
 static gboolean
-gst_queue2_src_activate_pull (GstPad * pad, gboolean active)
+gst_queue2_src_activate_pull (GstPad * pad, GstObject * parent, gboolean active)
 {
   gboolean result;
   GstQueue2 *queue;
 
-  queue = GST_QUEUE2 (gst_pad_get_parent (pad));
+  queue = GST_QUEUE2 (parent);
 
   if (active) {
     GST_QUEUE2_MUTEX_LOCK (queue);
@@ -2808,26 +3023,46 @@
       GST_DEBUG_OBJECT (queue, "no temp file, cannot activate pull mode");
       /* this is not allowed, we cannot operate in pull mode without a temp
        * file. */
-      queue->srcresult = GST_FLOW_WRONG_STATE;
-      queue->sinkresult = GST_FLOW_WRONG_STATE;
+      queue->srcresult = GST_FLOW_FLUSHING;
+      queue->sinkresult = GST_FLOW_FLUSHING;
       result = FALSE;
     }
     GST_QUEUE2_MUTEX_UNLOCK (queue);
   } else {
     GST_QUEUE2_MUTEX_LOCK (queue);
     GST_DEBUG_OBJECT (queue, "deactivating pull mode");
-    queue->srcresult = GST_FLOW_WRONG_STATE;
-    queue->sinkresult = GST_FLOW_WRONG_STATE;
+    queue->srcresult = GST_FLOW_FLUSHING;
+    queue->sinkresult = GST_FLOW_FLUSHING;
     /* this will unlock getrange */
     GST_QUEUE2_SIGNAL_ADD (queue);
     result = TRUE;
     GST_QUEUE2_MUTEX_UNLOCK (queue);
   }
-  gst_object_unref (queue);
 
   return result;
 }
 
+static gboolean
+gst_queue2_src_activate_mode (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
+{
+  gboolean res;
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      res = gst_queue2_src_activate_pull (pad, parent, active);
+      break;
+    case GST_PAD_MODE_PUSH:
+      res = gst_queue2_src_activate_push (pad, parent, active);
+      break;
+    default:
+      GST_LOG_OBJECT (pad, "unknown activation mode %d", mode);
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
 static GstStateChangeReturn
 gst_queue2_change_state (GstElement * element, GstStateChange transition)
 {
@@ -2857,6 +3092,7 @@
       }
       queue->segment_event_received = FALSE;
       queue->starting_segment = NULL;
+      gst_event_replace (&queue->stream_start_event, NULL);
       GST_QUEUE2_MUTEX_UNLOCK (queue);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -2891,6 +3127,7 @@
         gst_event_unref (queue->starting_segment);
         queue->starting_segment = NULL;
       }
+      gst_event_replace (&queue->stream_start_event, NULL);
       GST_QUEUE2_MUTEX_UNLOCK (queue);
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
diff --git a/plugins/elements/gstqueue2.h b/plugins/elements/gstqueue2.h
index ccbead6..25beef4 100644
--- a/plugins/elements/gstqueue2.h
+++ b/plugins/elements/gstqueue2.h
@@ -95,7 +95,7 @@
   gboolean unexpected;
 
   /* the queue of data we're keeping our hands on */
-  GQueue *queue;
+  GQueue queue;
 
   GstQueue2Size cur_level;       /* currently in the queue */
   GstQueue2Size max_level;       /* max. amount of data allowed in the queue */
@@ -124,11 +124,11 @@
   guint64 bytes_out;
   gdouble byte_out_rate;
 
-  GMutex *qlock;                /* lock for queue (vs object lock) */
+  GMutex qlock;                /* lock for queue (vs object lock) */
   gboolean waiting_add;
-  GCond *item_add;              /* signals buffers now available for reading */
+  GCond item_add;              /* signals buffers now available for reading */
   gboolean waiting_del;
-  GCond *item_del;              /* signals space now available for writing */
+  GCond item_del;              /* signals space now available for writing */
 
   /* temp location stuff */
   gchar *temp_template;
@@ -143,6 +143,9 @@
    * because we can't save it on the file */
   gboolean segment_event_received;
   GstEvent *starting_segment;
+  gboolean seeking;
+
+  GstEvent *stream_start_event;
 
   guint64 ring_buffer_max_size;
   guint8 * ring_buffer;
diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c
index 90678c6..3cae773 100644
--- a/plugins/elements/gsttee.c
+++ b/plugins/elements/gsttee.c
@@ -48,6 +48,7 @@
 #endif
 
 #include "gsttee.h"
+#include "gst/glib-compat-private.h"
 
 #include <string.h>
 
@@ -78,8 +79,8 @@
 }
 
 /* lock to protect request pads from being removed while downstream */
-#define GST_TEE_DYN_LOCK(tee) g_mutex_lock ((tee)->dyn_lock)
-#define GST_TEE_DYN_UNLOCK(tee) g_mutex_unlock ((tee)->dyn_lock)
+#define GST_TEE_DYN_LOCK(tee) g_mutex_lock (&(tee)->dyn_lock)
+#define GST_TEE_DYN_UNLOCK(tee) g_mutex_unlock (&(tee)->dyn_lock)
 
 #define DEFAULT_PROP_NUM_SRC_PADS	0
 #define DEFAULT_PROP_HAS_SINK_LOOP	FALSE
@@ -100,7 +101,8 @@
   PROP_ALLOC_PAD,
 };
 
-static GstStaticPadTemplate tee_src_template = GST_STATIC_PAD_TEMPLATE ("src%d",
+static GstStaticPadTemplate tee_src_template =
+GST_STATIC_PAD_TEMPLATE ("src_%u",
     GST_PAD_SRC,
     GST_PAD_REQUEST,
     GST_STATIC_CAPS_ANY);
@@ -135,15 +137,22 @@
     GValue * value, GParamSpec * pspec);
 static void gst_tee_dispose (GObject * object);
 
-static GstFlowReturn gst_tee_chain (GstPad * pad, GstBuffer * buffer);
-static GstFlowReturn gst_tee_chain_list (GstPad * pad, GstBufferList * list);
-static gboolean gst_tee_sink_event (GstPad * pad, GstEvent * event);
-static gboolean gst_tee_sink_acceptcaps (GstPad * pad, GstCaps * caps);
-static gboolean gst_tee_sink_activate_push (GstPad * pad, gboolean active);
-static gboolean gst_tee_src_query (GstPad * pad, GstQuery * query);
-static gboolean gst_tee_src_activate_pull (GstPad * pad, gboolean active);
-static GstFlowReturn gst_tee_src_get_range (GstPad * pad, guint64 offset,
-    guint length, GstBuffer ** buf);
+static GstFlowReturn gst_tee_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static GstFlowReturn gst_tee_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * list);
+static gboolean gst_tee_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_tee_sink_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+static gboolean gst_tee_sink_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
+static gboolean gst_tee_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+static gboolean gst_tee_src_activate_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active);
+static GstFlowReturn gst_tee_src_get_range (GstPad * pad, GstObject * parent,
+    guint64 offset, guint length, GstBuffer ** buf);
 
 static void
 gst_tee_dispose (GObject * object)
@@ -171,7 +180,7 @@
 
   g_free (tee->last_message);
 
-  g_mutex_free (tee->dyn_lock);
+  g_mutex_clear (&tee->dyn_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -223,7 +232,7 @@
   g_object_class_install_property (gobject_class, PROP_ALLOC_PAD,
       pspec_alloc_pad);
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "Tee pipe fitting",
       "Generic",
       "1-to-N pipe fitting",
@@ -241,22 +250,21 @@
 static void
 gst_tee_init (GstTee * tee)
 {
-  tee->dyn_lock = g_mutex_new ();
+  g_mutex_init (&tee->dyn_lock);
 
   tee->sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink");
-  tee->sink_mode = GST_ACTIVATE_NONE;
+  tee->sink_mode = GST_PAD_MODE_NONE;
 
   gst_pad_set_event_function (tee->sinkpad,
       GST_DEBUG_FUNCPTR (gst_tee_sink_event));
-  gst_pad_set_getcaps_function (tee->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps));
-  gst_pad_set_acceptcaps_function (tee->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_tee_sink_acceptcaps));
-  gst_pad_set_activatepush_function (tee->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_tee_sink_activate_push));
+  gst_pad_set_query_function (tee->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_tee_sink_query));
+  gst_pad_set_activatemode_function (tee->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_tee_sink_activate_mode));
   gst_pad_set_chain_function (tee->sinkpad, GST_DEBUG_FUNCPTR (gst_tee_chain));
   gst_pad_set_chain_list_function (tee->sinkpad,
       GST_DEBUG_FUNCPTR (gst_tee_chain_list));
+  GST_OBJECT_FLAG_SET (tee->sinkpad, GST_PAD_FLAG_PROXY_CAPS);
   gst_element_add_pad (GST_ELEMENT (tee), tee->sinkpad);
 
   tee->last_message = NULL;
@@ -265,21 +273,17 @@
 static void
 gst_tee_notify_alloc_pad (GstTee * tee)
 {
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_object_notify ((GObject *) tee, "alloc-pad");
-#else
   g_object_notify_by_pspec ((GObject *) tee, pspec_alloc_pad);
-#endif
 }
 
-static GstFlowReturn
-forward_sticky_events (GstPad * pad, GstEvent * event, gpointer user_data)
+static gboolean
+forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
 {
   GstPad *srcpad = GST_PAD_CAST (user_data);
 
-  gst_pad_push_event (srcpad, gst_event_ref (event));
+  gst_pad_push_event (srcpad, gst_event_ref (*event));
 
-  return GST_FLOW_OK;
+  return TRUE;
 }
 
 static GstPad *
@@ -289,7 +293,7 @@
   gchar *name;
   GstPad *srcpad;
   GstTee *tee;
-  GstActivateMode mode;
+  GstPadMode mode;
   gboolean res;
   PushData *data;
 
@@ -298,7 +302,7 @@
   GST_DEBUG_OBJECT (tee, "requesting pad");
 
   GST_OBJECT_LOCK (tee);
-  name = g_strdup_printf ("src%d", tee->pad_counter++);
+  name = g_strdup_printf ("src_%u", tee->pad_counter++);
 
   srcpad = gst_pad_new_from_template (templ, name);
   g_free (name);
@@ -316,11 +320,11 @@
   GST_OBJECT_UNLOCK (tee);
 
   switch (mode) {
-    case GST_ACTIVATE_PULL:
+    case GST_PAD_MODE_PULL:
       /* we already have a src pad in pull mode, and our pull mode can only be
          SINGLE, so fall through to activate this new pad in push mode */
-    case GST_ACTIVATE_PUSH:
-      res = gst_pad_activate_push (srcpad, TRUE);
+    case GST_PAD_MODE_PUSH:
+      res = gst_pad_activate_mode (srcpad, GST_PAD_MODE_PUSH, TRUE);
       break;
     default:
       res = TRUE;
@@ -330,15 +334,14 @@
   if (!res)
     goto activate_failed;
 
-  gst_pad_set_getcaps_function (srcpad,
-      GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps));
-  gst_pad_set_activatepull_function (srcpad,
-      GST_DEBUG_FUNCPTR (gst_tee_src_activate_pull));
+  gst_pad_set_activatemode_function (srcpad,
+      GST_DEBUG_FUNCPTR (gst_tee_src_activate_mode));
   gst_pad_set_query_function (srcpad, GST_DEBUG_FUNCPTR (gst_tee_src_query));
   gst_pad_set_getrange_function (srcpad,
       GST_DEBUG_FUNCPTR (gst_tee_src_get_range));
   /* Forward sticky events to the new srcpad */
   gst_pad_sticky_events_foreach (tee->sinkpad, forward_sticky_events, srcpad);
+  GST_OBJECT_FLAG_SET (srcpad, GST_PAD_FLAG_PROXY_CAPS);
   gst_element_add_pad (GST_ELEMENT_CAST (tee), srcpad);
 
   return srcpad;
@@ -479,56 +482,29 @@
 }
 
 static gboolean
-gst_tee_sink_event (GstPad * pad, GstEvent * event)
+gst_tee_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res;
 
   switch (GST_EVENT_TYPE (event)) {
     default:
-      res = gst_pad_event_default (pad, event);
+      res = gst_pad_event_default (pad, parent, event);
       break;
   }
 
   return res;
 }
 
-/* on the sink we accept caps that are acceptable to all srcpads */
 static gboolean
-gst_tee_sink_acceptcaps (GstPad * pad, GstCaps * caps)
+gst_tee_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstTee *tee;
-  gboolean res, done;
-  GstIterator *it;
-  GValue item = { 0, };
+  gboolean res;
 
-  tee = GST_TEE_CAST (GST_PAD_PARENT (pad));
-
-  it = gst_element_iterate_src_pads (GST_ELEMENT_CAST (tee));
-
-  res = TRUE;
-  done = FALSE;
-  while (!done && res) {
-    switch (gst_iterator_next (it, &item)) {
-      case GST_ITERATOR_OK:
-        res &= gst_pad_peer_accept_caps (g_value_get_object (&item), caps);
-        g_value_reset (&item);
-        break;
-      case GST_ITERATOR_RESYNC:
-        res = TRUE;
-        gst_iterator_resync (it);
-        break;
-      case GST_ITERATOR_ERROR:
-        res = FALSE;
-        done = TRUE;
-        break;
-      case GST_ITERATOR_DONE:
-        done = TRUE;
-        break;
-    }
+  switch (GST_QUERY_TYPE (query)) {
+    default:
+      res = gst_pad_query_default (pad, parent, query);
+      break;
   }
-  g_value_unset (&item);
-  gst_iterator_free (it);
-
   return res;
 }
 
@@ -549,11 +525,7 @@
   }
   GST_OBJECT_UNLOCK (tee);
 
-#if !GLIB_CHECK_VERSION(2,26,0)
-  g_object_notify ((GObject *) tee, "last-message");
-#else
   g_object_notify_by_pspec ((GObject *) tee, pspec_last_message);
-#endif
 }
 
 static GstFlowReturn
@@ -714,12 +686,12 @@
 }
 
 static GstFlowReturn
-gst_tee_chain (GstPad * pad, GstBuffer * buffer)
+gst_tee_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   GstFlowReturn res;
   GstTee *tee;
 
-  tee = GST_TEE_CAST (GST_OBJECT_PARENT (pad));
+  tee = GST_TEE_CAST (parent);
 
   GST_DEBUG_OBJECT (tee, "received buffer %p", buffer);
 
@@ -731,12 +703,12 @@
 }
 
 static GstFlowReturn
-gst_tee_chain_list (GstPad * pad, GstBufferList * list)
+gst_tee_chain_list (GstPad * pad, GstObject * parent, GstBufferList * list)
 {
   GstFlowReturn res;
   GstTee *tee;
 
-  tee = GST_TEE_CAST (gst_pad_get_parent (pad));
+  tee = GST_TEE_CAST (parent);
 
   GST_DEBUG_OBJECT (tee, "received list %p", list);
 
@@ -744,26 +716,35 @@
 
   GST_DEBUG_OBJECT (tee, "handled list %s", gst_flow_get_name (res));
 
-  gst_object_unref (tee);
-
   return res;
 }
 
 static gboolean
-gst_tee_sink_activate_push (GstPad * pad, gboolean active)
+gst_tee_sink_activate_mode (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
 {
+  gboolean res;
   GstTee *tee;
 
-  tee = GST_TEE (GST_OBJECT_PARENT (pad));
+  tee = GST_TEE (parent);
 
-  GST_OBJECT_LOCK (tee);
-  tee->sink_mode = active && GST_ACTIVATE_PUSH;
+  switch (mode) {
+    case GST_PAD_MODE_PUSH:
+    {
+      GST_OBJECT_LOCK (tee);
+      tee->sink_mode = active ? mode : GST_PAD_MODE_NONE;
 
-  if (active && !tee->has_chain)
-    goto no_chain;
-  GST_OBJECT_UNLOCK (tee);
-
-  return TRUE;
+      if (active && !tee->has_chain)
+        goto no_chain;
+      GST_OBJECT_UNLOCK (tee);
+      res = TRUE;
+      break;
+    }
+    default:
+      res = FALSE;
+      break;
+  }
+  return res;
 
   /* ERRORS */
 no_chain:
@@ -776,45 +757,54 @@
 }
 
 static gboolean
-gst_tee_src_activate_pull (GstPad * pad, gboolean active)
+gst_tee_src_activate_mode (GstPad * pad, GstObject * parent, GstPadMode mode,
+    gboolean active)
 {
   GstTee *tee;
   gboolean res;
   GstPad *sinkpad;
 
-  tee = GST_TEE (gst_pad_get_parent (pad));
+  tee = GST_TEE (parent);
 
-  GST_OBJECT_LOCK (tee);
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+    {
+      GST_OBJECT_LOCK (tee);
 
-  if (tee->pull_mode == GST_TEE_PULL_MODE_NEVER)
-    goto cannot_pull;
+      if (tee->pull_mode == GST_TEE_PULL_MODE_NEVER)
+        goto cannot_pull;
 
-  if (tee->pull_mode == GST_TEE_PULL_MODE_SINGLE && active && tee->pull_pad)
-    goto cannot_pull_multiple_srcs;
+      if (tee->pull_mode == GST_TEE_PULL_MODE_SINGLE && active && tee->pull_pad)
+        goto cannot_pull_multiple_srcs;
 
-  sinkpad = gst_object_ref (tee->sinkpad);
+      sinkpad = gst_object_ref (tee->sinkpad);
 
-  GST_OBJECT_UNLOCK (tee);
+      GST_OBJECT_UNLOCK (tee);
 
-  res = gst_pad_activate_pull (sinkpad, active);
-  gst_object_unref (sinkpad);
+      res = gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, active);
+      gst_object_unref (sinkpad);
 
-  if (!res)
-    goto sink_activate_failed;
+      if (!res)
+        goto sink_activate_failed;
 
-  GST_OBJECT_LOCK (tee);
-  if (active) {
-    if (tee->pull_mode == GST_TEE_PULL_MODE_SINGLE)
-      tee->pull_pad = pad;
-  } else {
-    if (pad == tee->pull_pad)
-      tee->pull_pad = NULL;
+      GST_OBJECT_LOCK (tee);
+      if (active) {
+        if (tee->pull_mode == GST_TEE_PULL_MODE_SINGLE)
+          tee->pull_pad = pad;
+      } else {
+        if (pad == tee->pull_pad)
+          tee->pull_pad = NULL;
+      }
+      tee->sink_mode = (active ? GST_PAD_MODE_PULL : GST_PAD_MODE_NONE);
+      GST_OBJECT_UNLOCK (tee);
+      break;
+    }
+    default:
+      res = TRUE;
+      break;
   }
-  tee->sink_mode = active & GST_ACTIVATE_PULL;
   GST_OBJECT_UNLOCK (tee);
 
-  gst_object_unref (tee);
-
   return res;
 
   /* ERRORS */
@@ -823,7 +813,6 @@
     GST_OBJECT_UNLOCK (tee);
     GST_INFO_OBJECT (tee, "Cannot activate in pull mode, pull-mode "
         "set to NEVER");
-    gst_object_unref (tee);
     return FALSE;
   }
 cannot_pull_multiple_srcs:
@@ -831,26 +820,24 @@
     GST_OBJECT_UNLOCK (tee);
     GST_INFO_OBJECT (tee, "Cannot activate multiple src pads in pull mode, "
         "pull-mode set to SINGLE");
-    gst_object_unref (tee);
     return FALSE;
   }
 sink_activate_failed:
   {
     GST_INFO_OBJECT (tee, "Failed to %sactivate sink pad in pull mode",
         active ? "" : "de");
-    gst_object_unref (tee);
     return FALSE;
   }
 }
 
 static gboolean
-gst_tee_src_query (GstPad * pad, GstQuery * query)
+gst_tee_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
   GstTee *tee;
   gboolean res;
   GstPad *sinkpad;
 
-  tee = GST_TEE (gst_pad_get_parent (pad));
+  tee = GST_TEE (parent);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_SCHEDULING:
@@ -882,12 +869,10 @@
       break;
     }
     default:
-      res = gst_pad_query_default (pad, query);
+      res = gst_pad_query_default (pad, parent, query);
       break;
   }
 
-  gst_object_unref (tee);
-
   return res;
 }
 
@@ -912,22 +897,20 @@
 }
 
 static GstFlowReturn
-gst_tee_src_get_range (GstPad * pad, guint64 offset, guint length,
-    GstBuffer ** buf)
+gst_tee_src_get_range (GstPad * pad, GstObject * parent, guint64 offset,
+    guint length, GstBuffer ** buf)
 {
   GstTee *tee;
   GstFlowReturn ret;
 
-  tee = GST_TEE (gst_pad_get_parent (pad));
+  tee = GST_TEE (parent);
 
   ret = gst_pad_pull_range (tee->sinkpad, offset, length, buf);
 
   if (ret == GST_FLOW_OK)
     ret = gst_tee_handle_data (tee, gst_buffer_ref (*buf), FALSE);
-  else if (ret == GST_FLOW_UNEXPECTED)
+  else if (ret == GST_FLOW_EOS)
     gst_tee_pull_eos (tee);
 
-  gst_object_unref (tee);
-
   return ret;
 }
diff --git a/plugins/elements/gsttee.h b/plugins/elements/gsttee.h
index 626d750..5d6cc51 100644
--- a/plugins/elements/gsttee.h
+++ b/plugins/elements/gsttee.h
@@ -67,18 +67,18 @@
 
   /*< private >*/
   /* lock protecting dynamic pads */
-  GMutex         *dyn_lock;
+  GMutex          dyn_lock;
 
   GstPad         *sinkpad;
   GstPad         *allocpad;
-  gint            pad_counter;
+  guint           pad_counter;
 
   gboolean        has_chain;
   gboolean        has_sink_loop;
   gboolean        silent;
   gchar          *last_message;
 
-  GstActivateMode sink_mode;
+  GstPadMode      sink_mode;
   GstTeePullMode  pull_mode;
   GstPad         *pull_pad;
 };
@@ -87,7 +87,7 @@
   GstElementClass parent_class;
 };
 
-GType 	gst_tee_get_type	(void);
+GType	gst_tee_get_type	(void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index 9ed0bdf..436a4e9 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -141,38 +141,42 @@
 #endif
 
 static gboolean gst_type_find_element_src_event (GstPad * pad,
-    GstEvent * event);
-static gboolean gst_type_find_handle_src_query (GstPad * pad, GstQuery * query);
+    GstObject * parent, GstEvent * event);
+static gboolean gst_type_find_handle_src_query (GstPad * pad,
+    GstObject * parent, GstQuery * query);
 
 static gboolean gst_type_find_element_sink_event (GstPad * pad,
-    GstEvent * event);
+    GstObject * parent, GstEvent * event);
 static gboolean gst_type_find_element_setcaps (GstTypeFindElement * typefind,
     GstCaps * caps);
 static GstFlowReturn gst_type_find_element_chain (GstPad * sinkpad,
-    GstBuffer * buffer);
+    GstObject * parent, GstBuffer * buffer);
 static GstFlowReturn gst_type_find_element_getrange (GstPad * srcpad,
-    guint64 offset, guint length, GstBuffer ** buffer);
+    GstObject * parent, guint64 offset, guint length, GstBuffer ** buffer);
 
 static GstStateChangeReturn
 gst_type_find_element_change_state (GstElement * element,
     GstStateChange transition);
-static gboolean gst_type_find_element_activate (GstPad * pad);
-static gboolean
-gst_type_find_element_activate_src_pull (GstPad * pad, gboolean active);
+static gboolean gst_type_find_element_activate_sink (GstPad * pad,
+    GstObject * parent);
+static gboolean gst_type_find_element_activate_sink_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
+static gboolean gst_type_find_element_activate_src_mode (GstPad * pad,
+    GstObject * parent, GstPadMode mode, gboolean active);
 static GstFlowReturn
 gst_type_find_element_chain_do_typefinding (GstTypeFindElement * typefind,
     gboolean check_avail);
 static void gst_type_find_element_send_cached_events (GstTypeFindElement *
     typefind);
 
+static void gst_type_find_element_loop (GstPad * pad);
+
 static guint gst_type_find_element_signals[LAST_SIGNAL] = { 0 };
 
 static void
 gst_type_find_element_have_type (GstTypeFindElement * typefind,
-    guint probability, const GstCaps * caps)
+    guint probability, GstCaps * caps)
 {
-  GstCaps *copy;
-
   g_assert (caps != NULL);
 
   GST_INFO_OBJECT (typefind, "found caps %" GST_PTR_FORMAT ", probability=%u",
@@ -181,12 +185,10 @@
   GST_OBJECT_LOCK (typefind);
   if (typefind->caps)
     gst_caps_unref (typefind->caps);
-  typefind->caps = gst_caps_copy (caps);
-  copy = gst_caps_ref (typefind->caps);
+  typefind->caps = gst_caps_ref (caps);
   GST_OBJECT_UNLOCK (typefind);
 
-  gst_pad_push_event (typefind->src, gst_event_new_caps (copy));
-  gst_caps_unref (copy);
+  gst_pad_push_event (typefind->src, gst_event_new_caps (caps));
 }
 
 static void
@@ -229,13 +231,13 @@
   gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have-type",
       G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_FIRST,
       G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
-      gst_marshal_VOID__UINT_BOXED, G_TYPE_NONE, 2,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 2,
       G_TYPE_UINT, GST_TYPE_CAPS | G_SIGNAL_TYPE_STATIC_SCOPE);
 
   typefind_class->have_type =
       GST_DEBUG_FUNCPTR (gst_type_find_element_have_type);
 
-  gst_element_class_set_details_simple (gstelement_class,
+  gst_element_class_set_static_metadata (gstelement_class,
       "TypeFind",
       "Generic",
       "Finds the media type of a stream",
@@ -258,19 +260,22 @@
       "sink");
 
   gst_pad_set_activate_function (typefind->sink,
-      GST_DEBUG_FUNCPTR (gst_type_find_element_activate));
+      GST_DEBUG_FUNCPTR (gst_type_find_element_activate_sink));
+  gst_pad_set_activatemode_function (typefind->sink,
+      GST_DEBUG_FUNCPTR (gst_type_find_element_activate_sink_mode));
   gst_pad_set_chain_function (typefind->sink,
       GST_DEBUG_FUNCPTR (gst_type_find_element_chain));
   gst_pad_set_event_function (typefind->sink,
       GST_DEBUG_FUNCPTR (gst_type_find_element_sink_event));
+  GST_PAD_SET_PROXY_ALLOCATION (typefind->sink);
   gst_element_add_pad (GST_ELEMENT (typefind), typefind->sink);
 
   /* srcpad */
   typefind->src =
       gst_pad_new_from_static_template (&type_find_element_src_template, "src");
 
-  gst_pad_set_activatepull_function (typefind->src,
-      GST_DEBUG_FUNCPTR (gst_type_find_element_activate_src_pull));
+  gst_pad_set_activatemode_function (typefind->src,
+      GST_DEBUG_FUNCPTR (gst_type_find_element_activate_src_mode));
   gst_pad_set_getrange_function (typefind->src,
       GST_DEBUG_FUNCPTR (gst_type_find_element_getrange));
   gst_pad_set_event_function (typefind->src,
@@ -366,28 +371,43 @@
 }
 
 static gboolean
-gst_type_find_handle_src_query (GstPad * pad, GstQuery * query)
+gst_type_find_handle_src_query (GstPad * pad, GstObject * parent,
+    GstQuery * query)
 {
   GstTypeFindElement *typefind;
   gboolean res = FALSE;
-  GstPad *peer;
 
-  typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
-
-  peer = gst_pad_get_peer (typefind->sink);
-  if (peer == NULL)
-    return FALSE;
-
-  res = gst_pad_query (peer, query);
-  if (!res)
-    goto out;
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
+  GST_DEBUG_OBJECT (typefind, "Handling src query %s",
+      GST_QUERY_TYPE_NAME (query));
 
   switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_SCHEDULING:
+      /* FIXME, filter out the scheduling modes that we understand */
+      res = gst_pad_peer_query (typefind->sink, query);
+      break;
+    case GST_QUERY_CAPS:
+    {
+      GST_DEBUG_OBJECT (typefind,
+          "Got caps query, our caps are %" GST_PTR_FORMAT, typefind->caps);
+
+      /* We can hijack caps query if we typefind already */
+      if (typefind->caps) {
+        gst_query_set_caps_result (query, typefind->caps);
+        res = TRUE;
+      } else {
+        res = gst_pad_peer_query (typefind->sink, query);
+      }
+      break;
+    }
     case GST_QUERY_POSITION:
     {
       gint64 peer_pos;
       GstFormat format;
 
+      if (!(res = gst_pad_peer_query (typefind->sink, query)))
+        goto out;
+
       gst_query_parse_position (query, &format, &peer_pos);
 
       GST_OBJECT_LOCK (typefind);
@@ -405,41 +425,112 @@
       break;
     }
     default:
+      res = gst_pad_query_default (pad, parent, query);
       break;
   }
-
 out:
-  gst_object_unref (peer);
   return res;
 }
 
-#if 0
-static const GstEventMask *
-gst_type_find_element_src_event_mask (GstPad * pad)
+static gboolean
+gst_type_find_element_seek (GstTypeFindElement * typefind, GstEvent * event)
 {
-  static const GstEventMask mask[] = {
-    {GST_EVENT_SEEK,
-        GST_SEEK_METHOD_SET | GST_SEEK_METHOD_CUR | GST_SEEK_METHOD_END |
-          GST_SEEK_FLAG_FLUSH},
-    /* add more if you want, event masks suck and need to die anyway */
-    {0,}
-  };
+  GstSeekFlags flags;
+  GstSeekType cur_type, stop_type;
+  GstFormat format;
+  gboolean flush;
+  gdouble rate;
+  gint64 cur, stop;
+  GstSegment seeksegment = { 0, };
 
-  return mask;
+  gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+      &stop_type, &stop);
+
+  /* we can only seek on bytes */
+  if (format != GST_FORMAT_BYTES) {
+    GST_DEBUG_OBJECT (typefind, "Can only seek on BYTES");
+    return FALSE;
+  }
+
+  /* copy segment, we need this because we still need the old
+   * segment when we close the current segment. */
+  memcpy (&seeksegment, &typefind->segment, sizeof (GstSegment));
+
+  GST_DEBUG_OBJECT (typefind, "configuring seek");
+  gst_segment_do_seek (&seeksegment, rate, format, flags,
+      cur_type, cur, stop_type, stop, NULL);
+
+  flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
+
+  GST_DEBUG_OBJECT (typefind, "New segment %" GST_SEGMENT_FORMAT, &seeksegment);
+
+  if (flush) {
+    GST_DEBUG_OBJECT (typefind, "Starting flush");
+    gst_pad_push_event (typefind->sink, gst_event_new_flush_start ());
+    gst_pad_push_event (typefind->src, gst_event_new_flush_start ());
+  } else {
+    GST_DEBUG_OBJECT (typefind, "Non-flushing seek, pausing task");
+    gst_pad_pause_task (typefind->sink);
+  }
+
+  /* now grab the stream lock so that streaming cannot continue, for
+   * non flushing seeks when the element is in PAUSED this could block
+   * forever. */
+  GST_DEBUG_OBJECT (typefind, "Waiting for streaming to stop");
+  GST_PAD_STREAM_LOCK (typefind->sink);
+
+  if (flush) {
+    GST_DEBUG_OBJECT (typefind, "Stopping flush");
+    gst_pad_push_event (typefind->sink, gst_event_new_flush_stop (TRUE));
+    gst_pad_push_event (typefind->src, gst_event_new_flush_stop (TRUE));
+  }
+
+  /* now update the real segment info */
+  GST_DEBUG_OBJECT (typefind, "Committing new seek segment");
+  memcpy (&typefind->segment, &seeksegment, sizeof (GstSegment));
+  typefind->offset = typefind->segment.start;
+
+  /* notify start of new segment */
+  if (typefind->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+    GstMessage *msg;
+
+    msg = gst_message_new_segment_start (GST_OBJECT (typefind),
+        GST_FORMAT_BYTES, typefind->segment.start);
+    gst_element_post_message (GST_ELEMENT (typefind), msg);
+  }
+
+  typefind->need_segment = TRUE;
+
+  /* restart our task since it might have been stopped when we did the
+   * flush. */
+  gst_pad_start_task (typefind->sink,
+      (GstTaskFunction) gst_type_find_element_loop, typefind->sink);
+
+  /* streaming can continue now */
+  GST_PAD_STREAM_UNLOCK (typefind->sink);
+
+  return TRUE;
 }
-#endif
 
 static gboolean
-gst_type_find_element_src_event (GstPad * pad, GstEvent * event)
+gst_type_find_element_src_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
 {
-  GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
+  GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (parent);
 
   if (typefind->mode != MODE_NORMAL) {
     /* need to do more? */
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (event));
     return FALSE;
   }
-  return gst_pad_push_event (typefind->sink, event);
+
+  /* Only handle seeks here if driving the pipeline */
+  if (typefind->segment.format != GST_FORMAT_UNDEFINED &&
+      GST_EVENT_TYPE (event) == GST_EVENT_SEEK) {
+    return gst_type_find_element_seek (typefind, event);
+  } else {
+    return gst_pad_push_event (typefind->sink, event);
+  }
 }
 
 static void
@@ -518,10 +609,11 @@
 }
 
 static gboolean
-gst_type_find_element_sink_event (GstPad * pad, GstEvent * event)
+gst_type_find_element_sink_event (GstPad * pad, GstObject * parent,
+    GstEvent * event)
 {
   gboolean res = FALSE;
-  GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
+  GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (parent);
 
   GST_DEBUG_OBJECT (typefind, "got %s event in mode %d",
       GST_EVENT_TYPE_NAME (event), typefind->mode);
@@ -730,12 +822,13 @@
 }
 
 static GstFlowReturn
-gst_type_find_element_chain (GstPad * pad, GstBuffer * buffer)
+gst_type_find_element_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer)
 {
   GstTypeFindElement *typefind;
   GstFlowReturn res = GST_FLOW_OK;
 
-  typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
 
   GST_LOG_OBJECT (typefind, "handling buffer in mode %d", typefind->mode);
 
@@ -795,7 +888,7 @@
   data = gst_adapter_map (typefind->adapter, avail);
   caps = gst_type_find_helper_for_data (GST_OBJECT (typefind),
       data, avail, &probability);
-  gst_adapter_unmap (typefind->adapter, 0);
+  gst_adapter_unmap (typefind->adapter);
 
   if (caps == NULL && have_max)
     goto no_type_found;
@@ -858,13 +951,13 @@
 }
 
 static GstFlowReturn
-gst_type_find_element_getrange (GstPad * srcpad,
+gst_type_find_element_getrange (GstPad * srcpad, GstObject * parent,
     guint64 offset, guint length, GstBuffer ** buffer)
 {
   GstTypeFindElement *typefind;
   GstFlowReturn ret;
 
-  typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (srcpad));
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
 
   ret = gst_pad_pull_range (typefind->sink, offset, length, buffer);
 
@@ -872,70 +965,50 @@
 }
 
 static gboolean
-gst_type_find_element_activate_src_pull (GstPad * pad, gboolean active)
+gst_type_find_element_activate_src_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
 {
+  gboolean res;
   GstTypeFindElement *typefind;
 
-  typefind = GST_TYPE_FIND_ELEMENT (GST_OBJECT_PARENT (pad));
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
 
-  return gst_pad_activate_pull (typefind->sink, active);
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      /* make sure our task stops pushing, we can't call _stop here because this
+       * activation might happen from the streaming thread. */
+      gst_pad_pause_task (typefind->sink);
+      res = gst_pad_activate_mode (typefind->sink, mode, active);
+      if (typefind->caps) {
+        GstCaps *caps;
+        GST_OBJECT_LOCK (typefind);
+        caps = gst_caps_ref (typefind->caps);
+        GST_OBJECT_UNLOCK (typefind);
+        gst_pad_push_event (typefind->src, gst_event_new_caps (caps));
+        gst_caps_unref (caps);
+      }
+      break;
+    default:
+      res = TRUE;
+      break;
+  }
+  return res;
 }
 
-static gboolean
-gst_type_find_element_activate (GstPad * pad)
+static void
+gst_type_find_element_loop (GstPad * pad)
 {
-  GstTypeFindProbability probability = GST_TYPE_FIND_NONE;
-  GstCaps *found_caps = NULL;
   GstTypeFindElement *typefind;
-  GstQuery *query;
-  gboolean pull_mode;
+  GstFlowReturn ret = GST_FLOW_OK;
 
-  typefind = GST_TYPE_FIND_ELEMENT (GST_OBJECT_PARENT (pad));
+  typefind = GST_TYPE_FIND_ELEMENT (GST_PAD_PARENT (pad));
 
-  /* if we have force caps, use those */
-  GST_OBJECT_LOCK (typefind);
-  if (typefind->force_caps) {
-    found_caps = gst_caps_ref (typefind->force_caps);
-    probability = GST_TYPE_FIND_MAXIMUM;
-    GST_OBJECT_UNLOCK (typefind);
-    goto done;
-  }
-  GST_OBJECT_UNLOCK (typefind);
-
-  /* 1. try to activate in pull mode. if not, switch to push and succeed.
-     2. try to pull type find.
-     3. deactivate pull mode.
-     4. src pad might have been activated push by the state change. deactivate.
-     5. if we didn't find any caps, try getting the uri extension by doing an uri
-     query.
-     6. if we didn't find any caps, fail.
-     7. emit have-type; maybe the app connected the source pad to something.
-     8. if the sink pad is activated, we are in pull mode. succeed.
-     otherwise activate both pads in push mode and succeed.
-   */
-
-  /* 1 */
-  query = gst_query_new_scheduling ();
-
-  if (!gst_pad_peer_query (pad, query)) {
-    gst_query_unref (query);
-    goto typefind_push;
-  }
-
-  gst_query_parse_scheduling (query, &pull_mode, NULL, NULL, NULL, NULL, NULL);
-  gst_query_unref (query);
-
-  if (!pull_mode)
-    goto typefind_push;
-
-  if (!gst_pad_activate_pull (pad, TRUE))
-    goto typefind_push;
-
-  /* 2 */
-  GST_DEBUG_OBJECT (typefind, "find type in pull mode");
-
-  {
+  if (typefind->mode == MODE_TYPEFIND) {
     GstPad *peer;
+    GstCaps *found_caps = NULL;
+    GstTypeFindProbability probability = GST_TYPE_FIND_NONE;
+
+    GST_DEBUG_OBJECT (typefind, "find type in pull mode");
 
     peer = gst_pad_get_peer (pad);
     if (peer) {
@@ -945,8 +1018,9 @@
       if (!gst_pad_query_duration (peer, GST_FORMAT_BYTES, &size)) {
         GST_WARNING_OBJECT (typefind, "Could not query upstream length!");
         gst_object_unref (peer);
-        gst_pad_activate_pull (pad, FALSE);
-        return FALSE;
+
+        ret = GST_FLOW_ERROR;
+        goto pause;
       }
 
       /* the size if 0, we cannot continue */
@@ -955,73 +1029,194 @@
         GST_ELEMENT_ERROR (typefind, STREAM, TYPE_NOT_FOUND,
             (_("Stream contains no data.")), ("Can't typefind empty stream"));
         gst_object_unref (peer);
-        gst_pad_activate_pull (pad, FALSE);
-        return FALSE;
+        ret = GST_FLOW_ERROR;
+        goto pause;
       }
       ext = gst_type_find_get_extension (typefind, pad);
 
-      found_caps = gst_type_find_helper_get_range_ext (GST_OBJECT_CAST (peer),
+      found_caps =
+          gst_type_find_helper_get_range (GST_OBJECT_CAST (peer),
+          GST_OBJECT_PARENT (peer),
           (GstTypeFindHelperGetRangeFunction) (GST_PAD_GETRANGEFUNC (peer)),
           (guint64) size, ext, &probability);
       g_free (ext);
 
+      GST_DEBUG ("Found caps %" GST_PTR_FORMAT, found_caps);
+
       gst_object_unref (peer);
     }
+
+    if (!found_caps || probability < typefind->min_probability) {
+      GST_DEBUG ("Trying to guess using extension");
+      gst_caps_replace (&found_caps, NULL);
+      found_caps =
+          gst_type_find_guess_by_extension (typefind, pad, &probability);
+    }
+
+    if (!found_caps || probability < typefind->min_probability) {
+      GST_ELEMENT_ERROR (typefind, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
+      gst_caps_replace (&found_caps, NULL);
+      ret = GST_FLOW_ERROR;
+      goto pause;
+    }
+
+    GST_DEBUG ("Emiting found caps %" GST_PTR_FORMAT, found_caps);
+    g_signal_emit (typefind, gst_type_find_element_signals[HAVE_TYPE],
+        0, probability, found_caps);
+    typefind->mode = MODE_NORMAL;
+    gst_caps_unref (found_caps);
+  } else if (typefind->mode == MODE_NORMAL) {
+    GstBuffer *outbuf = NULL;
+
+    if (typefind->need_segment) {
+      typefind->need_segment = FALSE;
+      gst_pad_push_event (typefind->src,
+          gst_event_new_segment (&typefind->segment));
+    }
+
+    /* Pull 4k blocks and send downstream */
+    ret = gst_pad_pull_range (typefind->sink, typefind->offset, 4096, &outbuf);
+    if (ret != GST_FLOW_OK)
+      goto pause;
+
+    typefind->offset += 4096;
+
+    ret = gst_pad_push (typefind->src, outbuf);
+    if (ret != GST_FLOW_OK)
+      goto pause;
+  } else {
+    /* Error out */
+    ret = GST_FLOW_ERROR;
+    goto pause;
   }
 
-  /* the type find helpers might have triggered setcaps here (due to upstream)
-   * setting caps on buffers, which emits typefound signal and an element
-   * could have been linked and have its pads activated
-   *
-   * If we deactivate the pads in the following steps we might mess up
-   * downstream element. We should prevent that.
-   */
-  if (typefind->mode == MODE_NORMAL) {
-    /* this means we already emitted typefound */
-    GST_DEBUG ("Already managed to typefind !");
-    goto really_done;
+  return;
+
+pause:
+  {
+    const gchar *reason = gst_flow_get_name (ret);
+    gboolean push_eos = FALSE;
+
+    GST_LOG_OBJECT (typefind, "pausing task, reason %s", reason);
+    gst_pad_pause_task (typefind->sink);
+
+    if (ret == GST_FLOW_EOS) {
+      /* perform EOS logic */
+
+      if (typefind->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+        gint64 stop;
+
+        /* for segment playback we need to post when (in stream time)
+         * we stopped, this is either stop (when set) or the duration. */
+        if ((stop = typefind->segment.stop) == -1)
+          stop = typefind->offset;
+
+        GST_LOG_OBJECT (typefind, "Sending segment done, at end of segment");
+        gst_element_post_message (GST_ELEMENT (typefind),
+            gst_message_new_segment_done (GST_OBJECT (typefind),
+                GST_FORMAT_BYTES, stop));
+      } else {
+        push_eos = TRUE;
+      }
+    } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
+      /* for fatal errors we post an error message */
+      GST_ELEMENT_ERROR (typefind, STREAM, FAILED, (NULL),
+          ("stream stopped, reason %s", reason));
+      push_eos = TRUE;
+    }
+    if (push_eos) {
+      /* send EOS, and prevent hanging if no streams yet */
+      GST_LOG_OBJECT (typefind, "Sending EOS, at end of stream");
+      gst_pad_push_event (typefind->src, gst_event_new_eos ());
+    }
+    return;
+  }
+}
+
+static gboolean
+gst_type_find_element_activate_sink_mode (GstPad * pad, GstObject * parent,
+    GstPadMode mode, gboolean active)
+{
+  gboolean res;
+  GstTypeFindElement *typefind;
+
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
+
+  switch (mode) {
+    case GST_PAD_MODE_PULL:
+      if (active) {
+        gst_segment_init (&typefind->segment, GST_FORMAT_BYTES);
+        typefind->need_segment = TRUE;
+        typefind->offset = 0;
+        res = TRUE;
+      } else {
+        res = gst_pad_stop_task (pad);
+      }
+      break;
+    case GST_PAD_MODE_PUSH:
+      if (active)
+        start_typefinding (typefind);
+      else
+        stop_typefinding (typefind);
+
+      res = TRUE;
+      break;
+    default:
+      res = FALSE;
+      break;
+  }
+  return res;
+}
+
+static gboolean
+gst_type_find_element_activate_sink (GstPad * pad, GstObject * parent)
+{
+  GstTypeFindElement *typefind;
+  GstQuery *query;
+  gboolean pull_mode;
+  GstCaps *found_caps = NULL;
+  GstTypeFindProbability probability = GST_TYPE_FIND_NONE;
+
+  typefind = GST_TYPE_FIND_ELEMENT (parent);
+
+  /* if we have force caps, use those */
+  GST_OBJECT_LOCK (typefind);
+  if (typefind->force_caps) {
+    found_caps = gst_caps_ref (typefind->force_caps);
+    probability = GST_TYPE_FIND_MAXIMUM;
+    GST_OBJECT_UNLOCK (typefind);
+
+    GST_DEBUG ("Emiting found caps %" GST_PTR_FORMAT, found_caps);
+    g_signal_emit (typefind, gst_type_find_element_signals[HAVE_TYPE],
+        0, probability, found_caps);
+    typefind->mode = MODE_NORMAL;
+    goto typefind_push;
+  }
+  GST_OBJECT_UNLOCK (typefind);
+
+  query = gst_query_new_scheduling ();
+
+  if (!gst_pad_peer_query (pad, query)) {
+    gst_query_unref (query);
+    goto typefind_push;
   }
 
-  /* 3 */
-  gst_pad_activate_pull (pad, FALSE);
+  pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL);
+  gst_query_unref (query);
 
-  /* 4 */
-  gst_pad_activate_push (typefind->src, FALSE);
+  if (!pull_mode)
+    goto typefind_push;
 
-  /* 5 */
-  if (!found_caps || probability < typefind->min_probability) {
-    found_caps = gst_type_find_guess_by_extension (typefind, pad, &probability);
-  }
+  if (!gst_pad_activate_mode (pad, GST_PAD_MODE_PULL, TRUE))
+    goto typefind_push;
 
-  /* 6 */
-  if (!found_caps || probability < typefind->min_probability) {
-    GST_ELEMENT_ERROR (typefind, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
-    gst_caps_replace (&found_caps, NULL);
-    return FALSE;
-  }
+  /* only start our task if we ourselves decide to start in pull mode */
+  return gst_pad_start_task (pad, (GstTaskFunction) gst_type_find_element_loop,
+      pad);
 
-done:
-  /* 7 */
-  g_signal_emit (typefind, gst_type_find_element_signals[HAVE_TYPE],
-      0, probability, found_caps);
-  typefind->mode = MODE_NORMAL;
-really_done:
-  gst_caps_unref (found_caps);
-
-  /* 8 */
-  if (gst_pad_is_active (pad))
-    return TRUE;
-  else {
-    gboolean ret;
-
-    ret = gst_pad_activate_push (typefind->src, TRUE);
-    ret &= gst_pad_activate_push (pad, TRUE);
-    return ret;
-  }
 typefind_push:
   {
-    start_typefinding (typefind);
-    return gst_pad_activate_push (pad, TRUE);
+    return gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE);
   }
 }
 
diff --git a/plugins/elements/gsttypefindelement.h b/plugins/elements/gsttypefindelement.h
index 5c34758..0242ec2 100644
--- a/plugins/elements/gsttypefindelement.h
+++ b/plugins/elements/gsttypefindelement.h
@@ -59,6 +59,11 @@
 
   GList *               cached_events;
   GstCaps *             force_caps;
+
+  /* Only used when driving the pipeline */
+  gboolean need_segment;
+  GstSegment segment;
+  guint64 offset;
 };
 
 struct _GstTypeFindElementClass {
@@ -66,8 +71,8 @@
 
   /* signals */
   void 			(*have_type) 	(GstTypeFindElement *element,
-					 guint		probability,
-					 const GstCaps *	caps);
+					 guint		     probability,
+					 GstCaps            *caps);
 };
 
 GType gst_type_find_element_get_type (void);
diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c
index 877d51e..a69b785 100644
--- a/plugins/elements/gstvalve.c
+++ b/plugins/elements/gstvalve.c
@@ -72,9 +72,12 @@
 static void gst_valve_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static gboolean gst_valve_event (GstPad * pad, GstEvent * event);
-static GstFlowReturn gst_valve_chain (GstPad * pad, GstBuffer * buffer);
-static GstCaps *gst_valve_getcaps (GstPad * pad, GstCaps * filter);
+static GstFlowReturn gst_valve_chain (GstPad * pad, GstObject * parent,
+    GstBuffer * buffer);
+static gboolean gst_valve_event (GstPad * pad, GstObject * parent,
+    GstEvent * event);
+static gboolean gst_valve_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
 
 #define _do_init \
   GST_DEBUG_CATEGORY_INIT (valve_debug, "valve", 0, "Valve");
@@ -103,7 +106,7 @@
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&sinktemplate));
 
-  gst_element_class_set_details_simple (gstelement_class, "Valve element",
+  gst_element_class_set_static_metadata (gstelement_class, "Valve element",
       "Filter", "Drops buffers and events or lets them through",
       "Olivier Crete <olivier.crete@collabora.co.uk>");
 }
@@ -115,8 +118,10 @@
   valve->discont = FALSE;
 
   valve->srcpad = gst_pad_new_from_static_template (&srctemplate, "src");
-  gst_pad_set_getcaps_function (valve->srcpad,
-      GST_DEBUG_FUNCPTR (gst_valve_getcaps));
+  gst_pad_set_event_function (valve->srcpad,
+      GST_DEBUG_FUNCPTR (gst_valve_event));
+  gst_pad_set_query_function (valve->srcpad,
+      GST_DEBUG_FUNCPTR (gst_valve_query));
   gst_element_add_pad (GST_ELEMENT (valve), valve->srcpad);
 
   valve->sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink");
@@ -124,8 +129,9 @@
       GST_DEBUG_FUNCPTR (gst_valve_chain));
   gst_pad_set_event_function (valve->sinkpad,
       GST_DEBUG_FUNCPTR (gst_valve_event));
-  gst_pad_set_getcaps_function (valve->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_valve_getcaps));
+  gst_pad_set_query_function (valve->sinkpad,
+      GST_DEBUG_FUNCPTR (gst_valve_query));
+  GST_PAD_SET_PROXY_CAPS (valve->sinkpad);
   gst_element_add_pad (GST_ELEMENT (valve), valve->sinkpad);
 }
 
@@ -139,6 +145,7 @@
   switch (prop_id) {
     case PROP_DROP:
       g_atomic_int_set (&valve->drop, g_value_get_boolean (value));
+      gst_pad_push_event (valve->sinkpad, gst_event_new_reconfigure ());
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -162,10 +169,29 @@
   }
 }
 
-static GstFlowReturn
-gst_valve_chain (GstPad * pad, GstBuffer * buffer)
+
+static gboolean
+forward_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
 {
-  GstValve *valve = GST_VALVE (GST_OBJECT_PARENT (pad));
+  GstValve *valve = user_data;
+
+  if (!gst_pad_push_event (valve->srcpad, gst_event_ref (*event)))
+    valve->need_repush_sticky = TRUE;
+
+  return TRUE;
+}
+
+static void
+gst_valve_repush_sticky (GstValve * valve)
+{
+  valve->need_repush_sticky = FALSE;
+  gst_pad_sticky_events_foreach (valve->sinkpad, forward_sticky_events, valve);
+}
+
+static GstFlowReturn
+gst_valve_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstValve *valve = GST_VALVE (parent);
   GstFlowReturn ret = GST_FLOW_OK;
 
   if (g_atomic_int_get (&valve->drop)) {
@@ -178,6 +204,9 @@
       valve->discont = FALSE;
     }
 
+    if (valve->need_repush_sticky)
+      gst_valve_repush_sticky (valve);
+
     ret = gst_pad_push (valve->srcpad, buffer);
   }
 
@@ -193,41 +222,42 @@
 
 
 static gboolean
-gst_valve_event (GstPad * pad, GstEvent * event)
+gst_valve_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
-  GstValve *valve = GST_VALVE (gst_pad_get_parent_element (pad));
+  GstValve *valve;
   gboolean ret = TRUE;
 
-  if (g_atomic_int_get (&valve->drop))
+  valve = GST_VALVE (parent);
+
+  if (g_atomic_int_get (&valve->drop)) {
+    valve->need_repush_sticky |= GST_EVENT_IS_STICKY (event);
     gst_event_unref (event);
-  else
-    ret = gst_pad_push_event (valve->srcpad, event);
+  } else {
+    if (valve->need_repush_sticky)
+      gst_valve_repush_sticky (valve);
+    ret = gst_pad_event_default (pad, parent, event);
+  }
 
   /* Ignore errors if "drop" was changed while the thread was blocked
    * downwards.
    */
-  if (g_atomic_int_get (&valve->drop))
+  if (g_atomic_int_get (&valve->drop)) {
+    valve->need_repush_sticky |= GST_EVENT_IS_STICKY (event);
     ret = TRUE;
+  }
 
-  gst_object_unref (valve);
   return ret;
 }
 
-static GstCaps *
-gst_valve_getcaps (GstPad * pad, GstCaps * filter)
+
+
+static gboolean
+gst_valve_query (GstPad * pad, GstObject * parent, GstQuery * query)
 {
-  GstValve *valve = GST_VALVE (gst_pad_get_parent (pad));
-  GstCaps *caps;
+  GstValve *valve = GST_VALVE (parent);
 
-  if (pad == valve->sinkpad)
-    caps = gst_pad_peer_get_caps (valve->srcpad, filter);
-  else
-    caps = gst_pad_peer_get_caps (valve->sinkpad, filter);
+  if (g_atomic_int_get (&valve->drop))
+    return FALSE;
 
-  if (caps == NULL)
-    caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
-
-  gst_object_unref (valve);
-
-  return caps;
+  return gst_pad_query_default (pad, parent, query);
 }
diff --git a/plugins/elements/gstvalve.h b/plugins/elements/gstvalve.h
index 0e6757c..7318af7 100644
--- a/plugins/elements/gstvalve.h
+++ b/plugins/elements/gstvalve.h
@@ -61,6 +61,7 @@
 
   /* Protected by the stream lock */
   gboolean discont;
+  gboolean need_repush_sticky;
 
   GstPad *srcpad;
   GstPad *sinkpad;
diff --git a/plugins/indexers/Makefile.am b/plugins/indexers/Makefile.am
deleted file mode 100644
index a6615dd..0000000
--- a/plugins/indexers/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-plugin_LTLIBRARIES = libgstcoreindexers.la
-
-# FIXME 0.11: gstfileindex.c used libxml and mmap, rewrite using something else or remove
-
-noinst_HEADERS =		\
-	gstindexers.h
-
-libgstcoreindexers_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
-libgstcoreindexers_la_SOURCES = gstindexers.c gstmemindex.c
-libgstcoreindexers_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstcoreindexers_la_LIBADD = $(GST_OBJ_LIBS) $(GST_FILEINDEX_LIBS)
-libgstcoreindexers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcoreindexers_la_LIBTOOLFLAGS = --tag=disable-static
-
-%.c.gcov: .libs/libgstcoreindexers_la-%.gcda %.c
-	$(GCOV) -b -f -o $^ > $@.out
-
-gcov: $(libgstcoreindexers_la_SOURCES:=.gcov)
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcoreindexers -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcoreindexers_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstcoreindexers_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcoreindexers_la_LDFLAGS) \
-	           $(libgstcoreindexers_la_LIBADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_MAJORMINOR@ \
-	> $@
-
diff --git a/plugins/indexers/Makefile.in b/plugins/indexers/Makefile.in
deleted file mode 100644
index 8a6b245..0000000
--- a/plugins/indexers/Makefile.in
+++ /dev/null
@@ -1,765 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = plugins/indexers
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.m4 \
-	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-python.m4 \
-	$(top_srcdir)/common/m4/as-scrub-include.m4 \
-	$(top_srcdir)/common/m4/as-version.m4 \
-	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
-	$(top_srcdir)/common/m4/gst-arch.m4 \
-	$(top_srcdir)/common/m4/gst-args.m4 \
-	$(top_srcdir)/common/m4/gst-check.m4 \
-	$(top_srcdir)/common/m4/gst-doc.m4 \
-	$(top_srcdir)/common/m4/gst-error.m4 \
-	$(top_srcdir)/common/m4/gst-feature.m4 \
-	$(top_srcdir)/common/m4/gst-function.m4 \
-	$(top_srcdir)/common/m4/gst-gettext.m4 \
-	$(top_srcdir)/common/m4/gst-glib2.m4 \
-	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
-	$(top_srcdir)/common/m4/gst-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
-	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
-	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(plugindir)"
-LTLIBRARIES = $(plugin_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-am_libgstcoreindexers_la_OBJECTS =  \
-	libgstcoreindexers_la-gstindexers.lo \
-	libgstcoreindexers_la-gstmemindex.lo
-libgstcoreindexers_la_OBJECTS = $(am_libgstcoreindexers_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
-libgstcoreindexers_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstcoreindexers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(libgstcoreindexers_la_CFLAGS) $(CFLAGS) \
-	$(libgstcoreindexers_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(libgstcoreindexers_la_SOURCES)
-DIST_SOURCES = $(libgstcoreindexers_la_SOURCES)
-HEADERS = $(noinst_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-GCOV = @GCOV@
-GCOV_CFLAGS = @GCOV_CFLAGS@
-GCOV_LIBS = @GCOV_LIBS@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
-GLIB_PREFIX = @GLIB_PREFIX@
-GLIB_REQ = @GLIB_REQ@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PKG_DEPS = @GST_PKG_DEPS@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE@
-GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
-HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FIG2DEV = @HAVE_FIG2DEV@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
-PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
-PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
-PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
-PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstcoreindexers.la
-
-# FIXME 0.11: gstfileindex.c used libxml and mmap, rewrite using something else or remove
-noinst_HEADERS = \
-	gstindexers.h
-
-libgstcoreindexers_la_DEPENDENCIES = $(top_builddir)/gst/libgstreamer-@GST_MAJORMINOR@.la
-libgstcoreindexers_la_SOURCES = gstindexers.c gstmemindex.c
-libgstcoreindexers_la_CFLAGS = $(GST_OBJ_CFLAGS)
-libgstcoreindexers_la_LIBADD = $(GST_OBJ_LIBS) $(GST_FILEINDEX_LIBS)
-libgstcoreindexers_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstcoreindexers_la_LIBTOOLFLAGS = --tag=disable-static
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/indexers/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu plugins/indexers/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)"
-	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
-	}
-
-uninstall-pluginLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
-	done
-
-clean-pluginLTLIBRARIES:
-	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libgstcoreindexers.la: $(libgstcoreindexers_la_OBJECTS) $(libgstcoreindexers_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstcoreindexers_la_LINK) -rpath $(plugindir) $(libgstcoreindexers_la_OBJECTS) $(libgstcoreindexers_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreindexers_la-gstindexers.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreindexers_la-gstmemindex.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-libgstcoreindexers_la-gstindexers.lo: gstindexers.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreindexers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreindexers_la_CFLAGS) $(CFLAGS) -MT libgstcoreindexers_la-gstindexers.lo -MD -MP -MF $(DEPDIR)/libgstcoreindexers_la-gstindexers.Tpo -c -o libgstcoreindexers_la-gstindexers.lo `test -f 'gstindexers.c' || echo '$(srcdir)/'`gstindexers.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreindexers_la-gstindexers.Tpo $(DEPDIR)/libgstcoreindexers_la-gstindexers.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstindexers.c' object='libgstcoreindexers_la-gstindexers.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreindexers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreindexers_la_CFLAGS) $(CFLAGS) -c -o libgstcoreindexers_la-gstindexers.lo `test -f 'gstindexers.c' || echo '$(srcdir)/'`gstindexers.c
-
-libgstcoreindexers_la-gstmemindex.lo: gstmemindex.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreindexers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreindexers_la_CFLAGS) $(CFLAGS) -MT libgstcoreindexers_la-gstmemindex.lo -MD -MP -MF $(DEPDIR)/libgstcoreindexers_la-gstmemindex.Tpo -c -o libgstcoreindexers_la-gstmemindex.lo `test -f 'gstmemindex.c' || echo '$(srcdir)/'`gstmemindex.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreindexers_la-gstmemindex.Tpo $(DEPDIR)/libgstcoreindexers_la-gstmemindex.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gstmemindex.c' object='libgstcoreindexers_la-gstmemindex.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreindexers_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreindexers_la_CFLAGS) $(CFLAGS) -c -o libgstcoreindexers_la-gstmemindex.lo `test -f 'gstmemindex.c' || echo '$(srcdir)/'`gstmemindex.c
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(plugindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pluginLTLIBRARIES
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pluginLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pluginLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pluginLTLIBRARIES
-
-
-%.c.gcov: .libs/libgstcoreindexers_la-%.gcda %.c
-	$(GCOV) -b -f -o $^ > $@.out
-
-gcov: $(libgstcoreindexers_la_SOURCES:=.gcov)
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcoreindexers -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcoreindexers_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstcoreindexers_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcoreindexers_la_LDFLAGS) \
-	           $(libgstcoreindexers_la_LIBADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_MAJORMINOR@ \
-	> $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/plugins/indexers/gstindexers.c b/plugins/indexers/gstindexers.c
deleted file mode 100644
index f317c32..0000000
--- a/plugins/indexers/gstindexers.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <gst/gst_private.h>
-#include <gst/gstversion.h>
-#include <gst/gstplugin.h>
-
-#include "gstindexers.h"
-
-static gboolean
-plugin_init (GstPlugin * plugin)
-{
-  gboolean res = TRUE;
-
-  res &= gst_mem_index_plugin_init (plugin);
-
-  /* FIXME 0.11: fix or remove GstFileIndex, which used mmap and libxml */
-  /* res &= gst_file_index_plugin_init (plugin); */
-
-  return res;
-}
-
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-    GST_VERSION_MINOR,
-    "coreindexers",
-    "GStreamer core indexers",
-    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/plugins/indexers/gstindexers.h b/plugins/indexers/gstindexers.h
deleted file mode 100644
index 8180f8f..0000000
--- a/plugins/indexers/gstindexers.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_INDEXERS_H__
-#define __GST_INDEXERS_H__
-
-G_BEGIN_DECLS
-
-
-gboolean gst_mem_index_plugin_init (GstPlugin * plugin);
-
-/* gboolean gst_file_index_plugin_init (GstPlugin * plugin); */
-
-
-G_END_DECLS
-
-#endif /* __GST_INDEXERS_H__ */
diff --git a/po/LINGUAS b/po/LINGUAS
index c9cb5e7..2469e53 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1 +1 @@
-af az be bg ca cs da de en_GB es el eu fi fr gl hu id it ja lt nb nl pl pt_BR ro ru rw sk sl sq sr sv tr uk vi zh_CN zh_TW
+af az be bg ca cs da de en_GB eo es el eu fi fr gl hu id it ja lt nb nl pl pt_BR ro ru rw sk sl sq sr sv tr uk vi zh_CN zh_TW
diff --git a/po/af.gmo b/po/af.gmo
index eeeee47..83ece89 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 11b3308..b3003ac 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2005-12-05 11:45+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -561,9 +561,17 @@
 msgid "language code"
 msgstr "taalkode"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "taalkode vir hierdie stroom, wat voldoen aan ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "taalkode"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr ""
 
@@ -1070,6 +1078,17 @@
 msgid "FOUND TAG\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ETIKET GEVIND  : gevind by element \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETIKET GEVIND  : gevind by element \"%s\".\n"
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1112,6 +1131,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Wys etikette (ook bekend as metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Wys statusinligting en kennisgewings van eienskappe"
 
@@ -1131,9 +1153,6 @@
 msgid "Do not install a fault handler"
 msgstr "Moenie 'n fouthanteerder installeer nie"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Druk \"alloc trace\" (indien aangeskakel tydens kompilering)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1204,6 +1223,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Pyplyn word gestel na NULL ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Druk \"alloc trace\" (indien aangeskakel tydens kompilering)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Gebruik so: gst-xmllaunch <lêer.xml> [ element.eienskap=waarde ... ]\n"
diff --git a/po/az.gmo b/po/az.gmo
index 399a128..8987cc3 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index cc06347..c42c451 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2004-03-19 18:40+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -537,7 +537,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1022,6 +1028,17 @@
 msgstr ""
 
 #, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
+#, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
@@ -1060,6 +1077,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
@@ -1078,9 +1098,6 @@
 msgid "Do not install a fault handler"
 msgstr ""
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
diff --git a/po/be.gmo b/po/be.gmo
index 4d30491..9f9e3ec 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index f65565e..0270466 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2006-01-18 22:26+0200\n"
 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
 "Language-Team: Belarusian <i18n@mova.org>\n"
@@ -541,7 +541,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1031,6 +1037,17 @@
 msgstr ""
 
 #, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
+#, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
@@ -1069,6 +1086,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
@@ -1087,9 +1107,6 @@
 msgid "Do not install a fault handler"
 msgstr ""
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 35b2427..abee700 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 6199f3a..0f886e1 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-26 22:40+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -553,9 +553,17 @@
 msgid "language code"
 msgstr "езиков код"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "езиковият код на този поток според ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "езиков код"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "изображение"
 
@@ -1068,6 +1076,18 @@
 msgid "FOUND TAG\n"
 msgstr "ОТКРИТ ЕТИКЕТ\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ОТКРИТ ЕТИКЕТ      : открит около елемент „%s“.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ОТКРИТ ЕТИКЕТ      : открит около обект „%s“.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ОТКРИТ ЕТИКЕТ\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1109,6 +1129,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Изходни съобщения за етикетите (метаданните)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Да се дават изходни съобщения за състоянието и промяната на свойства"
 
@@ -1127,11 +1150,6 @@
 msgid "Do not install a fault handler"
 msgstr "Да не се инсталира модул за обработка на грешки"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-"Отпечатване на заделянето на памет (ако е било включено при компилиране на "
-"програмата)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 "Принудително извеждане на EOS за източниците преди спирането на конвейера"
@@ -1201,6 +1219,11 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Конвейерът се освобождава…\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Отпечатване на заделянето на памет (ако е било включено при компилиране "
+#~ "на програмата)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Употреба: gst-xmllaunch <файл.xml> [ елемент.свойство=стойност … ]\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index ef78323..f381aa9 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 59a99da..e08e4a9 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-04 19:41+0100\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -556,9 +556,17 @@
 msgid "language code"
 msgstr "codi de la llengua"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "codi de la llengua per a aquest flux, conformant amb ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "codi de la llengua"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "imatge"
 
@@ -1071,6 +1079,18 @@
 msgid "FOUND TAG\n"
 msgstr "MARCADOR TROBAT\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "MARCADOR TROBAT: trobat per l'element «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "MARCADOR TROBAT: trobat per l'objecte «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "MARCADOR TROBAT\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1116,6 +1136,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Mostra els marcadors (també coneguts com metadades)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Mostra la informació d'estat i notificacions de propietats"
 
@@ -1134,9 +1157,6 @@
 msgid "Do not install a fault handler"
 msgstr "No instal·les un gestor de fallades"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Imprimeix una traça d'alloc (si s'ha habilitat al compilar)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Força el final del flux abans de tancar el conducte"
 
@@ -1207,6 +1227,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "S'està alliberant el conducte…\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Imprimeix una traça d'alloc (si s'ha habilitat al compilar)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Forma d'ús: gst-xmllaunch <file.xml> [ element.propietat=valor … ]\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index dfbbbe8..00f62aa 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 9c956a6..3d13b96 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,26 +1,26 @@
 # Czech translation of gstreamer.
 # Copyright (C) 2004, 2005, 2007, 2008 gstreamer's COPYRIGHT HOLDER
-# Copyright (C) 2004, 2005, 2007, 2008 Miloslav Trmac <mitr@volny.cz>
 # This file is put in the public domain.
+#
 # Miloslav Trmac <mitr@volny.cz>, 2004, 2005, 2007, 2008.
+# Marek Černocký <marek@manet.cz>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.10.20.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: 2008-10-12 12:12+0200\n"
-"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2011-12-01 08:17+0100\n"
+"Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
 msgid "Print the GStreamer version"
-msgstr "Vypsat verzi GStreamer"
+msgstr "Vypsat verzi systému GStreamer"
 
 msgid "Make all warnings fatal"
 msgstr "Chápat všechna varování jako fatální"
@@ -31,7 +31,7 @@
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
-"Implicitní úroveň ladění od 1 (jen chyby) do 5 (vše) nebo 0 pro žádný výstup"
+"Výchozí úroveň ladění od 1 (jen chyby) do 5 (vše) nebo 0 pro žádný výstup"
 
 msgid "LEVEL"
 msgstr "ÚROVEŇ"
@@ -40,7 +40,7 @@
 "Comma-separated list of category_name:level pairs to set specific levels for "
 "the individual categories. Example: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 msgstr ""
-"Čárkami oddělený seznam dvojic název_kategorie:úroveň pro nastavení "
+"Čárkami oddělovaný seznam dvojic název_kategorie:úroveň pro nastavení "
 "konkrétních úrovní pro jednotlivé kategorie. Příklad: GST_AUTOPLUG:5,"
 "GST_ELEMENT_*:3"
 
@@ -54,10 +54,10 @@
 msgstr "Zakázat ladění"
 
 msgid "Enable verbose plugin loading diagnostics"
-msgstr "Povolit podrobnou diagnostiku načítání modulů"
+msgstr "Povolit podrobnou diagnostiku načítání zásuvných modulů"
 
 msgid "Colon-separated paths containing plugins"
-msgstr "Dvojtečkou oddělené cesty obsahující moduly"
+msgstr "Dvojtečkou oddělované cesty obsahující zásuvné moduly"
 
 msgid "PATHS"
 msgstr "CESTY"
@@ -66,164 +66,167 @@
 "Comma-separated list of plugins to preload in addition to the list stored in "
 "environment variable GST_PLUGIN_PATH"
 msgstr ""
-"Čárkami oddělený seznam modulů, které přednačíst kromě seznamu uloženém v "
-"proměnné prostředí GST_PLUGIN_PATH"
+"Čárkami oddělovaný seznam zásuvných modulů, které se mají načíst dopředu, "
+"navíc k seznamu uloženému v proměnné prostředí GST_PLUGIN_PATH"
 
 msgid "PLUGINS"
-msgstr "MODULY"
+msgstr "ZÁSUVNÉ_MODULY"
 
 msgid "Disable trapping of segmentation faults during plugin loading"
-msgstr "Zakázat zachycování porušení segmentace při načítání modulů"
+msgstr "Zakázat zachytávání porušení segmentace při načítání zásuvných modulů"
 
 msgid "Disable updating the registry"
 msgstr "Zakázat aktualizaci registru"
 
-#, fuzzy
 msgid "Disable spawning a helper process while scanning the registry"
-msgstr "Zakázat používání fork() při prohledávání registru"
+msgstr "Zakázat větvení pomocných procesů při prohledávání registru"
 
 msgid "GStreamer Options"
-msgstr "Přepínače GStreameru"
+msgstr "Přepínače GStreamer"
 
 msgid "Show GStreamer Options"
-msgstr "Zobrazit přepínače GStreameru"
+msgstr "Zobrazit přepínače GStreamer"
 
 msgid "Unknown option"
 msgstr "Neznámý přepínač"
 
 msgid "GStreamer encountered a general core library error."
-msgstr "V GStreamer došlo k obecné chybě hlavní knihovny."
+msgstr "V systému GStreamer došlo k obecné chybě základní knihovny."
 
 msgid ""
 "GStreamer developers were too lazy to assign an error code to this error."
 msgstr ""
-"Vývojáři GStreameru byli příliš líní na to, aby této chybě přiřadili kód."
+"Vývojáři systému GStreamer byli příliš líní na to, aby této chybě přiřadili "
+"kód."
 
 msgid "Internal GStreamer error: code not implemented."
-msgstr "Interní chyba GStreameru: kód neimplementován."
+msgstr "Interní chyba systému GStreamer: kód neimplementován."
 
 msgid ""
 "GStreamer error: state change failed and some element failed to post a "
 "proper error message with the reason for the failure."
 msgstr ""
+"Chyba systému GStreamer: selhala změna stavu a některý prvek selhal při "
+"posílání příslušné chybové zprávy s důvodem selhání."
 
 msgid "Internal GStreamer error: pad problem."
-msgstr "Interní chyba GStreameru: problém při vyplňování."
+msgstr "Interní chyba systému GStreamer: problém přípojného bodu."
 
 msgid "Internal GStreamer error: thread problem."
-msgstr "Interní chyba GStreameru: problém s vlákny."
+msgstr "Interní chyba systému GStreamer: problém s vlákny."
 
 msgid "Internal GStreamer error: negotiation problem."
-msgstr "Interní chyba GStreameru: problém při vyjednávání."
+msgstr "Interní chyba systému GStreamer: problém při vyjednávání."
 
 msgid "Internal GStreamer error: event problem."
-msgstr "Interní chyba GStreameru: problém s událostmi."
+msgstr "Interní chyba systému GStreamer: problém s událostmi."
 
 msgid "Internal GStreamer error: seek problem."
-msgstr "Interní chyba GStreameru: problém s posunem."
+msgstr "Interní chyba systému GStreamer: problém s posunem."
 
 msgid "Internal GStreamer error: caps problem."
-msgstr "Interní chyba GStreameru: problém se schopnostmi."
+msgstr "Interní chyba systému GStreamer: problém se schopnostmi."
 
 msgid "Internal GStreamer error: tag problem."
-msgstr "Interní chyba GStreameru: problém s tagy."
+msgstr "Interní chyba systému GStreamer: problém se štítky."
 
 msgid "Your GStreamer installation is missing a plug-in."
-msgstr "Vaší instalaci GStreameru chybí modul."
+msgstr "Vaší instalaci systému GStreamer schází zásuvný modul."
 
 msgid "Internal GStreamer error: clock problem."
-msgstr "Interní chyba GStreameru: problém s hodinami."
+msgstr "Interní chyba systému GStreamer: problém s hodinami."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
 "disabled."
 msgstr ""
-"Tato aplikace se pokouší používat funkce GStreameru, které byly zakázány."
+"Tato aplikace se pokouší používat funkce systému GStreamer, které byly "
+"zakázány."
 
 msgid "GStreamer encountered a general supporting library error."
-msgstr "V GStreamer došlo k chybě obecné podpůrné knihovny."
+msgstr "V systému GStreamer došlo k chybě obecné podpůrné knihovny."
 
 msgid "Could not initialize supporting library."
-msgstr "Nemohu inicializovat podpůrnou knihovnu."
+msgstr "Nelze inicializovat podpůrnou knihovnu."
 
 msgid "Could not close supporting library."
-msgstr "Nemohu zavřít podpůrou knihovnu."
+msgstr "Nelze zavřít podpůrnou knihovnu."
 
 msgid "Could not configure supporting library."
-msgstr "Nemohu nastavit podpůrou knihovnu."
+msgstr "Nelze nastavit podpůrnou knihovnu."
 
 msgid "Encoding error."
-msgstr ""
+msgstr "Chyba při kódování."
 
 msgid "GStreamer encountered a general resource error."
-msgstr "V GStreameru došlo k obecné chybě zdrojů."
+msgstr "V systému GStreamer došlo k obecné chybě prostředků."
 
 msgid "Resource not found."
-msgstr "Zdroj nenalezen."
+msgstr "Prostředek nebyl nalezen."
 
 msgid "Resource busy or not available."
-msgstr "Zdroj se používá nebo není k dispozici."
+msgstr "Prostředek se právě používá nebo není k dispozici."
 
 msgid "Could not open resource for reading."
-msgstr "Nemohu otevřít zdroj pro čtení."
+msgstr "Nelze otevřít prostředek pro čtení."
 
 msgid "Could not open resource for writing."
-msgstr "Nemohu otevřít zdroj pro zápis."
+msgstr "Nelze otevřít prostředek pro zápis."
 
 msgid "Could not open resource for reading and writing."
-msgstr "Nemohu otevřít zdroj pro čtení a zápis."
+msgstr "Nelze otevřít prostředek pro čtení a zápis."
 
 msgid "Could not close resource."
-msgstr "Nemohu zavřít zdroj."
+msgstr "Nelze zavřít prostředek."
 
 msgid "Could not read from resource."
-msgstr "Nemohu číst ze zdroje."
+msgstr "Nelze číst z prostředku."
 
 msgid "Could not write to resource."
-msgstr "Nemohu zapisovat do zdroje."
+msgstr "Nelze zapisovat do prostředku."
 
 msgid "Could not perform seek on resource."
-msgstr "Nemohu se posunovat ve zdroji."
+msgstr "Nelze se posouvat v prostředku."
 
 msgid "Could not synchronize on resource."
-msgstr "Nemohu se synchronizovat se zdrojem."
+msgstr "Nelze se synchronizovat s prostředkem."
 
 msgid "Could not get/set settings from/on resource."
-msgstr "Nemohu získat/změnit nastavení zdroje."
+msgstr "Nelze získat/změnit nastavení prostředku."
 
 msgid "No space left on the resource."
-msgstr "Ve zdroji nezbývá místo."
+msgstr "V prostředku nezbývá místo."
 
 msgid "GStreamer encountered a general stream error."
-msgstr "V GStreameru došlo k obecné chybě proudu."
+msgstr "V systému GStreamer došlo k obecné chybě proudu."
 
 msgid "Element doesn't implement handling of this stream. Please file a bug."
 msgstr ""
-"Element neimplementuje obsluhu tohoto proudu. Ohlaste prosím tuto chybu."
+"Prvek neimplementuje obsluhu tohoto proudu. Nahlaste to prosím jako chybu."
 
 msgid "Could not determine type of stream."
-msgstr "Nemohu zjistit typ proudu."
+msgstr "Nelze zjistit typ proudu."
 
 msgid "The stream is of a different type than handled by this element."
-msgstr "Proud je jiného typu, než který tento element obsluhuje."
+msgstr "Proud je jiného typu, než jaký tento prvek obsluhuje."
 
 msgid "There is no codec present that can handle the stream's type."
 msgstr "Není přítomen žádný kodek, který umí obsloužit typ tohoto proudu."
 
 msgid "Could not decode stream."
-msgstr "Nemohu dekódovat proud."
+msgstr "Nelze dekódovat proud."
 
 msgid "Could not encode stream."
-msgstr "Nemohu kódovat proud."
+msgstr "Nelze zakódovat proud."
 
 msgid "Could not demultiplex stream."
-msgstr "Nemohu demultiplexovat proud."
+msgstr "Nelze demultiplexovat proud."
 
 msgid "Could not multiplex stream."
-msgstr "Nemohu multiplexovat proud."
+msgstr "Nelze multiplexovat proud."
 
 msgid "The stream is in the wrong format."
-msgstr "Proud je ve špatném formátu."
+msgstr "Proud je v nesprávném formátu."
 
 msgid "The stream is encrypted and decryption is not supported."
 msgstr "Proud je zašifrován a dešifrování není podporováno."
@@ -232,15 +235,16 @@
 "The stream is encrypted and can't be decrypted because no suitable key has "
 "been supplied."
 msgstr ""
-"Proud je zašifrován a nelze jej dešifrovát, protože nebyl dodán vhodný klíč."
+"Proud je zašifrován a nelze jej dešifrovat, protože nebyl poskytnut vhodný "
+"klíč."
 
 #, c-format
 msgid "No error message for domain %s."
-msgstr "Pro doménu %s není zpráva o chybě."
+msgstr "Pro doménu %s není žádná zpráva o chybě."
 
 #, c-format
 msgid "No standard error message for domain %s and code %d."
-msgstr "Pro doménu %s a kód %d není standardní zpráva o chybě."
+msgstr "Pro doménu %s a kód %d není žádná standardní zpráva o chybě."
 
 msgid "Selected clock cannot be used in pipeline."
 msgstr "Vybrané hodiny nelze použít v rouře."
@@ -249,108 +253,104 @@
 msgstr "název"
 
 msgid "commonly used title"
-msgstr "obecně používaný název"
+msgstr "Obecně používaný název"
 
 msgid "title sortname"
-msgstr "název pro řazení"
+msgstr "název pro účel řazení"
 
 msgid "commonly used title for sorting purposes"
-msgstr "obecně používaný název pro řazení"
+msgstr "Obecně používaný název; pro účel řazení"
 
 msgid "artist"
 msgstr "umělec"
 
 msgid "person(s) responsible for the recording"
-msgstr "osoby odpovědné za nahrávku"
+msgstr "Osoba čí osoby odpovědné za nahrávku"
 
 msgid "artist sortname"
-msgstr "umělec pro řazení"
+msgstr "umělec pro účel řazení"
 
 msgid "person(s) responsible for the recording for sorting purposes"
-msgstr "osoby odpovědné za nahrávku pro řazení"
+msgstr "Osoba či osoby odpovědné za nahrávku; pro účel řazení"
 
 msgid "album"
 msgstr "album"
 
 msgid "album containing this data"
-msgstr "album obsahující tato data"
+msgstr "Album obsahující tato data"
 
 msgid "album sortname"
-msgstr "album pro řazení"
+msgstr "album pro účel řazení"
 
 msgid "album containing this data for sorting purposes"
-msgstr "album obsahující tato data pro řazení"
+msgstr "Album obsahující tato data; pro účel řazení"
 
-#, fuzzy
 msgid "album artist"
-msgstr "umělec"
+msgstr "umělec alba"
 
 msgid "The artist of the entire album, as it should be displayed"
-msgstr ""
+msgstr "Umělec daného alba v podobě, jak se má zobrazovat"
 
-#, fuzzy
 msgid "album artist sortname"
-msgstr "umělec pro řazení"
+msgstr "umělec alba pro účel řazení"
 
 msgid "The artist of the entire album, as it should be sorted"
-msgstr ""
+msgstr "Umělec alba v podobě, podle které se má řadit"
 
 msgid "date"
 msgstr "datum"
 
 msgid "date the data was created (as a GDate structure)"
-msgstr "datum, kdy byla data vytvořena (jako struktura GDate)"
+msgstr "Datum, kdy byla data vytvořena (jako struktura GDate)"
 
-#, fuzzy
 msgid "datetime"
-msgstr "datum"
+msgstr "datum a čas"
 
-#, fuzzy
 msgid "date and time the data was created (as a GstDateTime structure)"
-msgstr "datum, kdy byla data vytvořena (jako struktura GDate)"
+msgstr "Datum a čas, kdy byla data vytvořena (jako struktura GstDateTime)"
 
 msgid "genre"
 msgstr "žánr"
 
 msgid "genre this data belongs to"
-msgstr "žánr, do kterého tato data patří"
+msgstr "Žánr, do kterého tato data patří"
 
 msgid "comment"
 msgstr "poznámka"
 
 msgid "free text commenting the data"
-msgstr "volný text komentující data"
+msgstr "Volný text komentující data"
 
 msgid "extended comment"
 msgstr "rozšířená poznámka"
 
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
-"volný text komentující data ve tvaru klíč=hodnota nebo klíč[cs]=poznámka"
+"Volný text komentující data ve tvaru klíč=hodnota nebo klíč[cs]=poznámka"
 
 msgid "track number"
 msgstr "číslo stopy"
 
 msgid "track number inside a collection"
-msgstr "číslo stopy v souboru"
+msgstr "Číslo stopy v rámci sbírky"
 
 msgid "track count"
 msgstr "počet stop"
 
 msgid "count of tracks inside collection this track belongs to"
-msgstr "počet stop v souboru, do kterého tato stopa patří"
+msgstr "Počet stop v rámci sbírky, do kterého tato stopa patří"
 
 msgid "disc number"
 msgstr "číslo disku"
 
 msgid "disc number inside a collection"
-msgstr "číslo disku v souboru"
+msgstr "Číslo disku v rámci sbírky"
 
 msgid "disc count"
 msgstr "počet disků"
 
 msgid "count of discs inside collection this disc belongs to"
-msgstr "počet disků v souboru, do kterého tento disk patří"
+msgstr "Počet disků v rámci sbírky, do kterého tento disk patří"
 
 msgid "location"
 msgstr "umístění"
@@ -361,30 +361,31 @@
 msgstr ""
 "Původ média jako URI (umístění, kde je nabízen originál souboru nebo proudu)"
 
-#, fuzzy
 msgid "homepage"
-msgstr "obrázek"
+msgstr "domovská stránka"
 
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
+"Domovská stránka tohoto média (např. domovská stránka umělce nebo filmu)"
 
 msgid "description"
 msgstr "popis"
 
 msgid "short text describing the content of the data"
-msgstr "krátký text popisující obsah dat"
+msgstr "Krátký text popisující obsah dat"
 
 msgid "version"
 msgstr "verze"
 
 msgid "version of this data"
-msgstr "verze těchto dat"
+msgstr "Verze těchto dat"
 
 msgid "ISRC"
 msgstr "ISRC"
 
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
-msgstr "International Standard Recording Code - viz http://www.ifpi.org/isrc/"
+msgstr ""
+"International Standard Recording Code – http://www.intergram.cz/cs/isrc/"
 
 msgid "organization"
 msgstr "organizace"
@@ -393,209 +394,212 @@
 msgstr "copyright"
 
 msgid "copyright notice of the data"
-msgstr "oznámení o copyrightu dat"
+msgstr "Oznámení o autorských právech k datům"
 
 msgid "copyright uri"
 msgstr "uri copyrightu"
 
 msgid "URI to the copyright notice of the data"
-msgstr "URI oznámení o copyrightu dat"
+msgstr "Adresa URI oznámení o autorských právech k datům"
 
-#, fuzzy
 msgid "encoded by"
-msgstr "kodér"
+msgstr "zakódoval"
 
 msgid "name of the encoding person or organization"
-msgstr ""
+msgstr "Jméno osoby nebo název organizace odpovědných za kódování"
 
 msgid "contact"
 msgstr "kontakt"
 
 msgid "contact information"
-msgstr "kontaktní informace"
+msgstr "Kontaktní informace"
 
 msgid "license"
 msgstr "licence"
 
 msgid "license of data"
-msgstr "licence dat"
+msgstr "Licence dat"
 
 msgid "license uri"
 msgstr "uri licence"
 
 msgid "URI to the license of the data"
-msgstr "URI licence dat"
+msgstr "Adresa URI licence k datům"
 
 msgid "performer"
 msgstr "výkonný umělec"
 
 msgid "person(s) performing"
-msgstr "vystupující osoby "
+msgstr "Vystupující osoba či osoby"
 
 msgid "composer"
 msgstr "skladatel"
 
 msgid "person(s) who composed the recording"
-msgstr "osoby, které složily nahrávku"
+msgstr "Osoby či osoby, které nahrávku složily"
 
 msgid "duration"
 msgstr "trvání"
 
 msgid "length in GStreamer time units (nanoseconds)"
-msgstr "délka v jednotkách času GStreamer (nanosekundách)"
+msgstr "Délka v jednotkách času GStreamer (nanosekundách)"
 
 msgid "codec"
 msgstr "kodek"
 
 msgid "codec the data is stored in"
-msgstr "kodek, ve kterém jsou uložena data"
+msgstr "Kodek, ve kterém jsou data uchována"
 
 msgid "video codec"
 msgstr "kodek videa"
 
 msgid "codec the video data is stored in"
-msgstr "kodek, ve kterém jsou uložena data videa"
+msgstr "Kodek, ve kterém jsou uchována data videa"
 
 msgid "audio codec"
 msgstr "kodek zvuku"
 
 msgid "codec the audio data is stored in"
-msgstr "kodek, ve kterém jsou uložena data zvuku"
+msgstr "Kodek, ve kterém jsou uchována data zvuku"
 
-#, fuzzy
 msgid "subtitle codec"
-msgstr "kodek videa"
+msgstr "kodek titulků"
 
-#, fuzzy
 msgid "codec the subtitle data is stored in"
-msgstr "kodek, ve kterém jsou uložena data videa"
+msgstr "Kodek, ve kterém jsou uchována data titulků"
 
-#, fuzzy
 msgid "container format"
-msgstr "kontaktní informace"
+msgstr "formát kontejneru"
 
-#, fuzzy
 msgid "container format the data is stored in"
-msgstr "kodek, ve kterém jsou uložena data"
+msgstr "Formát kontejneru, ve kterém jdou uchována data"
 
 msgid "bitrate"
-msgstr "bitrate"
+msgstr "datový tok"
 
 msgid "exact or average bitrate in bits/s"
-msgstr "přesná nebo průměrná bitrate v bitech/s"
+msgstr "Přesný nebo průměrný datový tok v bitech/s"
 
 msgid "nominal bitrate"
-msgstr "nominální bitrate"
+msgstr "nominální datový tok"
 
 msgid "nominal bitrate in bits/s"
-msgstr "nominální bitrate v bitech/s"
+msgstr "Nominální datový tok v bitech/s"
 
 msgid "minimum bitrate"
-msgstr "minimální bitrate"
+msgstr "minimální datový tok"
 
 msgid "minimum bitrate in bits/s"
-msgstr "minimální bitrate v bitech/s"
+msgstr "Minimální datový tok v bitech/s"
 
 msgid "maximum bitrate"
-msgstr "maximální bitrate"
+msgstr "maximální datový tok"
 
 msgid "maximum bitrate in bits/s"
-msgstr "maximální bitrate v bitech/s"
+msgstr "Maximální datový tok v bitech/s"
 
 msgid "encoder"
 msgstr "kodér"
 
 msgid "encoder used to encode this stream"
-msgstr "kodér používaný pro kódování tohoto proudu"
+msgstr "Kodér používaný pro kódování tohoto proudu"
 
 msgid "encoder version"
 msgstr "verze kodéru"
 
 msgid "version of the encoder used to encode this stream"
-msgstr "verze kodéru používaného pro kódování tohoto proudu"
+msgstr "Verze kodéru používaného pro kódování tohoto proudu"
 
 msgid "serial"
-msgstr "sériové"
+msgstr "sériové číslo"
 
 msgid "serial number of track"
-msgstr "sériové číslo stopy"
+msgstr "Sériové číslo stopy"
 
 msgid "replaygain track gain"
-msgstr "replaygain zisk přehrávání stopy"
+msgstr "hlasitost přehrávání stopy"
 
 msgid "track gain in db"
-msgstr "zisk přehrávání stopy v db"
+msgstr "Zesílení stopy v db"
 
 msgid "replaygain track peak"
-msgstr "replaygain vrchol stopy"
+msgstr "špičková hlasitost přehrávání stopy"
 
 msgid "peak of the track"
-msgstr "vrchol stopy"
+msgstr "Špičkové zesílení stopy"
 
 msgid "replaygain album gain"
-msgstr "replaygain zisk alba"
+msgstr "hlasitost přehrávání alba"
 
 msgid "album gain in db"
-msgstr "zisk alba v db"
+msgstr "Zesílení alba v db"
 
 msgid "replaygain album peak"
-msgstr "replaygain vrchol alba"
+msgstr "špičková hlasitost přehrávání alba"
 
 msgid "peak of the album"
-msgstr "vrchol alba"
+msgstr "Špičkové zesílení alba"
 
 msgid "replaygain reference level"
-msgstr "referenční úroveň replaygain"
+msgstr "referenční úroveň hlasitosti"
 
 msgid "reference level of track and album gain values"
-msgstr "referenční úroveň hodnot zisku stopy a alba"
+msgstr "Hodnota referenční úrovně zesílení stopy a alba"
 
 msgid "language code"
 msgstr "kód jazyka"
 
-msgid "language code for this stream, conforming to ISO-639-1"
-msgstr "kód jazyka pro tento proud, splňující ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr "Kód jazyka pro tento proud, ve shodě s ISO-639-1"
+
+#, fuzzy
+msgid "language name"
+msgstr "kód jazyka"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
 
 msgid "image"
 msgstr "obrázek"
 
 msgid "image related to this stream"
-msgstr "obrázek související s tímto proudem"
+msgstr "Obrázek související s tímto proudem"
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
 msgid "preview image"
-msgstr "obrázek náhledu"
+msgstr "obrázek s náhledem"
 
 msgid "preview image related to this stream"
-msgstr "obrázek náhledu související s tímto proudem"
+msgstr "Obrázek s náhledem související s tímto proudem"
 
 msgid "attachment"
 msgstr "příloha"
 
 msgid "file attached to this stream"
-msgstr "soubor připojený k tomuto proudu"
+msgstr "Soubor připojený k tomuto proudu"
 
 msgid "beats per minute"
-msgstr "taktů za minutu"
+msgstr "tempo"
 
 msgid "number of beats per minute in audio"
-msgstr "počet taktů ve zvuku za minutu"
+msgstr "Tempo (v počtech úderů za minutu) zvuku"
 
 msgid "keywords"
 msgstr "klíčová slova"
 
 msgid "comma separated keywords describing the content"
-msgstr "čarkami oddělená klíčová slova popisující obsah"
+msgstr "Čárkami oddělovaná klíčová slova popisující obsah"
 
 msgid "geo location name"
 msgstr "název místa"
 
-#, fuzzy
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
 msgstr ""
-"popisné místo čitelné člověkem nebo kde bylo médium nahráno nebo vytvořeno"
+"Popisné místo v člověkem čitelné podobě, kde bylo médium nahráno nebo "
+"vytvořeno"
 
 msgid "geo location latitude"
 msgstr "zeměpisná šířka místa"
@@ -605,7 +609,7 @@
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
-"zeměpisná šířka místa, kde bylo médium nahráno nebo vytvořeno, ve stupních "
+"Zeměpisná šířka místa, kde bylo médium nahráno nebo vytvořeno, ve stupních "
 "podle WGS84 (nula na rovníku, záporné hodnoty pro jižní polokouli)"
 
 msgid "geo location longitude"
@@ -616,7 +620,7 @@
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
-"zeměpisná délka místa, kde bylo médium nahráno nebo vytvořeno, ve stupních "
+"Zeměpisná délka místa, kde bylo médium nahráno nebo vytvořeno, ve stupních "
 "podle WGS84 (nula na hlavním poledníku v Greenwichi, záporné hodnoty pro "
 "západní polokouli)"
 
@@ -627,231 +631,224 @@
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
-"zeměpisná výška místa, kde bylo médium nahráno nebo vytvořeno, v metrech "
+"Zeměpisná výška místa, kde bylo médium nahráno nebo vytvořeno, v metrech "
 "podle WGS84 (nula je průměrná hladina moře)"
 
-#, fuzzy
 msgid "geo location country"
-msgstr "zeměpisná délka místa"
+msgstr "země"
 
-#, fuzzy
 msgid "country (english name) where the media has been recorded or produced"
-msgstr ""
-"popisné místo čitelné člověkem nebo kde bylo médium nahráno nebo vytvořeno"
+msgstr "Anglický název země, kde bylo médium nahráno nebo vytvořeno"
 
-#, fuzzy
 msgid "geo location city"
-msgstr "zeměpisná šířka místa"
+msgstr "město"
 
-#, fuzzy
 msgid "city (english name) where the media has been recorded or produced"
-msgstr ""
-"popisné místo čitelné člověkem nebo kde bylo médium nahráno nebo vytvořeno"
+msgstr "Anglický název města, kde bylo médium nahráno nebo vytvořeno"
 
-#, fuzzy
 msgid "geo location sublocation"
-msgstr "zeměpisná výška místa"
+msgstr "upřesnění místa"
 
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
-msgstr ""
+msgstr "Místo v rámci města, kde bylo médium nahráno nebo vytvořeno"
 
-#, fuzzy
 msgid "geo location horizontal error"
-msgstr "název místa"
+msgstr "vodorovná chyba místa"
 
 msgid "expected error of the horizontal positioning measures (in meters)"
 msgstr ""
+"Předpokládaná chyba v udání polohy místa ve vodorovném směru (v metrech)"
 
-#, fuzzy
 msgid "geo location movement speed"
-msgstr "zeměpisná délka místa"
+msgstr "rychlost pohybu"
 
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
+"Rychlost pohybu zachytávacího zařízení, které mění svoji polohu (v m/s)"
 
-#, fuzzy
 msgid "geo location movement direction"
-msgstr "zeměpisná výška místa"
+msgstr "směr pohybu"
 
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
+"Určuje směr pohybu zařízení provádějícího zachytávání média. Je prezentováno "
+"jako stupně v podobě desetinného čísla, kdy 0 značí zeměpisný sever a jde se "
+"po směru hodinových ručiček"
 
-#, fuzzy
 msgid "geo location capture direction"
-msgstr "zeměpisná výška místa"
+msgstr "směr zachytávání"
 
 msgid ""
 "indicates the direction the device is pointing to when capturing  a media. "
 "It is represented as degrees in floating point  representation, 0 means the "
 "geographic north, and increases clockwise"
 msgstr ""
+"Určuje směr, kterým je zařízení nasměrováno během zachytávání média. Je "
+"prezentováno jako stupně v podobě desetinného čísla, kdy 0 značí zeměpisný "
+"sever a jde se po směru hodinových ručiček"
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
 msgid "show name"
-msgstr ""
+msgstr "název pořadu"
 
 msgid "Name of the tv/podcast/series show the media is from"
 msgstr ""
+"Název pořadu (televizního, podcastového apod.), ze kterého médium pochází"
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#, fuzzy
 msgid "show sortname"
-msgstr "umělec pro řazení"
+msgstr "pořad pro účely řazení"
 
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
+"Název pořadu (televizního, podcastového apod.), ze kterého médium pochází; "
+"pro účely řazení"
 
-#, fuzzy
 msgid "episode number"
-msgstr "číslo disku"
+msgstr "číslo epizody"
 
 msgid "The episode number in the season the media is part of"
-msgstr ""
+msgstr "Číslo epizody v rámci řady, které je médium součástí"
 
-#, fuzzy
 msgid "season number"
-msgstr "číslo disku"
+msgstr "číslo řady"
 
 msgid "The season number of the show the media is part of"
-msgstr ""
+msgstr "Číslo řady v rámci pořadu, jehož je médium součástí"
 
-#, fuzzy
 msgid "lyrics"
-msgstr "licence"
+msgstr "text"
 
 msgid "The lyrics of the media, commonly used for songs"
-msgstr ""
+msgstr "Text k médiu, obvykle text hudební skladby"
 
-#, fuzzy
 msgid "composer sortname"
-msgstr "název pro řazení"
+msgstr "skladatel pro účely řazení"
 
-#, fuzzy
 msgid "person(s) who composed the recording, for sorting purposes"
-msgstr "osoby odpovědné za nahrávku pro řazení"
+msgstr "Osoba či osoby, které záznam složily; pro účely řazení"
 
 msgid "grouping"
-msgstr ""
+msgstr "seskupování"
 
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
+"Skupiny vztahující se k médiu, které je rozloženo do více stop, třeba části "
+"koncertu. Jde o vyšší úroveň členění než jsou stopy, ale nižší než je album"
 
-#, fuzzy
 msgid "user rating"
-msgstr "trvání"
+msgstr "uživatelské hodnocení"
 
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
+"Hodnocení přidělené uživatelem. Čím vyšší hodnocení, tím se uživateli médium "
+"víc líbí"
 
 msgid "device manufacturer"
-msgstr ""
+msgstr "výrobce zařízení"
 
-#, fuzzy
 msgid "Manufacturer of the device used to create this media"
-msgstr "verze kodéru používaného pro kódování tohoto proudu"
+msgstr "Výrobce zařízení použitého k vytvoření tohoto média"
 
 msgid "device model"
-msgstr ""
+msgstr "model zařízení"
 
-#, fuzzy
 msgid "Model of the device used to create this media"
-msgstr "verze kodéru používaného pro kódování tohoto proudu"
+msgstr "Model zařízení použitého k vytvoření tohoto média"
 
-#, fuzzy
 msgid "application name"
-msgstr "název místa"
+msgstr "název aplikace"
 
-#, fuzzy
 msgid "Application used to create the media"
-msgstr "verze kodéru používaného pro kódování tohoto proudu"
+msgstr "Aplikace použitá k vytvoření média"
 
 msgid "application data"
-msgstr ""
+msgstr "data aplikace"
 
 msgid "Arbitrary application data to be serialized into the media"
-msgstr ""
+msgstr "Libovolná aplikační data, která jsou serializována do média"
 
 msgid "image orientation"
-msgstr ""
+msgstr "natočení obrázku"
 
 msgid "How the image should be rotated or flipped before display"
-msgstr ""
+msgstr "Jak by měl být obrázek před zobrazením otočen nebo překlopen"
 
 msgid ", "
 msgstr ", "
 
 #, c-format
 msgid "ERROR: from element %s: %s\n"
-msgstr "CHYBA: od elementu %s: %s\n"
+msgstr "CHYBA: od prvku %s: %s\n"
 
 #, c-format
 msgid ""
 "Additional debug info:\n"
 "%s\n"
 msgstr ""
-"Přídavné ladicí informace:\n"
+"Dodatečné ladicí informace:\n"
 "%s\n"
 
 #, c-format
 msgid "specified empty bin \"%s\", not allowed"
-msgstr "zadán prázdný zásobník \"%s\", nedovoleno"
+msgstr "zadán prázdný zásobník „%s“, to není dovoleno"
 
 #, c-format
 msgid "no bin \"%s\", skipping"
-msgstr "zásobník \"%s\" neexistuje, přeskakuji"
+msgstr "zásobník „%s“ neexistuje, přeskakuje se"
 
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
-msgstr "v elementu \"%2$s\" není vlastnost \"%1$s\""
+msgstr "v prvku „%2$s“ není žádná vlastnost „%1$s“"
 
 #, c-format
 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
-msgstr "nemohu nastavit vlastnost \"%s\" v elementu \"%s\" na \"%s\""
+msgstr "nelze nastavit vlastnost „%s“ v prvku „%s“ na „%s“"
 
 #, c-format
 msgid "could not link %s to %s"
-msgstr "nemohu připojit %s k %s"
+msgstr "nelze připojit prvek „%s“ k prvku „%s“"
 
 #, c-format
 msgid "no element \"%s\""
-msgstr "element \"%s\" neexistuje"
+msgstr "prvek „%s“ neexistuje"
 
 #, c-format
 msgid "could not parse caps \"%s\""
-msgstr "nemohu zpracovat schopnosti \"%s\""
+msgstr "nelze zpracovat schopnosti „%s“"
 
 msgid "link without source element"
-msgstr "propojení bez elementu zdroje"
+msgstr "propojení bez zdrojového prvku"
 
 msgid "link without sink element"
-msgstr "propojení bez elementu spotřebiče"
+msgstr "propojení bez cílového prvku"
 
 #, c-format
 msgid "no source element for URI \"%s\""
-msgstr "neexistuje element zdroje pro URI \"%s\""
+msgstr "neexistuje žádný zdrojový prvek pro adresu URI „%s“"
 
 #, c-format
 msgid "no element to link URI \"%s\" to"
-msgstr "neexistuje element, ke kterému připojit URI \"%s\""
+msgstr "neexistuje žádný prvek pro připojení adresy URI „%s“"
 
 #, c-format
 msgid "no sink element for URI \"%s\""
-msgstr "neexistuje element spotřebiče pro URI \"%s\""
+msgstr "neexistuje žádný cílový prvek pro adresu URI „%s“"
 
 #, c-format
 msgid "could not link sink element for URI \"%s\""
-msgstr "nemohu připojit element spotřebiče pro URI \"%s\""
+msgstr "nelze připojit cílový prvek pro adresu URI „%s“"
 
 msgid "empty pipeline not allowed"
 msgstr "prázdná roura není povolena"
@@ -863,7 +860,7 @@
 msgstr "Interní chyba toku dat."
 
 msgid "A lot of buffers are being dropped."
-msgstr ""
+msgstr "Většina vyrovnávacích pamětí je vyřazena."
 
 msgid "Internal data flow problem."
 msgstr "Interní problém toku dat."
@@ -879,59 +876,58 @@
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
 "Omezit povolené schopnosti (NULL znamená VŠECHNY). Nastavení této vlastnosti "
-"bere odkaz na zadaný objekt GstCaps."
+"přebírá odkaz na zadaný objekt GstCaps."
 
 msgid "No file name specified for writing."
-msgstr "Nezadán název souboru pro zápis."
+msgstr "Není zadán název souboru pro zápis."
 
 #, c-format
 msgid "Could not open file \"%s\" for writing."
-msgstr "Nemohu otevřít soubor \"%s\" pro zápis."
+msgstr "Nelze otevřít soubor „%s“ pro zápis."
 
 #, c-format
 msgid "Error closing file \"%s\"."
-msgstr "Chyba při zavírání souboru \"%s\"."
+msgstr "Chyba při zavírání souboru „%s“."
 
 #, c-format
 msgid "Error while seeking in file \"%s\"."
-msgstr "Chyba při posunu v souboru \"%s\"."
+msgstr "Chyba při posunu v souboru „%s“."
 
 #, c-format
 msgid "Error while writing to file \"%s\"."
-msgstr "Chyba při zápisu do souboru \"%s\"."
+msgstr "Chyba při zápisu do souboru „%s“."
 
 msgid "No file name specified for reading."
-msgstr "Nezadán název souboru pro čtení."
+msgstr "Není zadán název souboru pro čtení."
 
 #, c-format
 msgid "Could not open file \"%s\" for reading."
-msgstr "Nemohu otevřít soubor \"%s\" pro čtení."
+msgstr "Nelze otevřít soubor „%s“ pro čtení."
 
 #, c-format
 msgid "Could not get info on \"%s\"."
-msgstr "Nemohu získat informace o \"%s\"."
+msgstr "Nelze získat informace o „%s“."
 
 #, c-format
 msgid "\"%s\" is a directory."
-msgstr "\"%s\" je adresář."
+msgstr "„%s“ je složka."
 
 #, c-format
 msgid "File \"%s\" is a socket."
-msgstr "Soubor \"%s\" je socket."
+msgstr "Soubor „%s“ je soket."
 
 msgid "Failed after iterations as requested."
 msgstr "Selhání po iteracích podle požadavku."
 
 msgid "No Temp directory specified."
-msgstr ""
+msgstr "Není určena složka pro dočasné soubory."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not create temp file \"%s\"."
-msgstr "Nemohu získat informace o \"%s\"."
+msgstr "Nelze vytvořit dočasný soubor „%s“."
 
-#, fuzzy
 msgid "Error while writing to download file."
-msgstr "Chyba při zápisu do souboru \"%s\"."
+msgstr "Chyba při zápisu do stahovaného souboru."
 
 msgid "caps"
 msgstr "schopnosti"
@@ -967,16 +963,16 @@
 msgstr "lze ovládat"
 
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
-msgstr ""
+msgstr "lze změnit ve stavu PRÁZDNÉ, PŘIPRAVENO, POZASTAVENO nebo PŘEHRÁVÁ"
 
 msgid "changeable only in NULL, READY or PAUSED state"
-msgstr ""
+msgstr "lze měnit jen ve stavu PRÁZDNÉ, PŘIPRAVENO nebo POZASTAVENO"
 
 msgid "changeable only in NULL or READY state"
-msgstr ""
+msgstr "lze měnit jen ve stavu PRÁZDNÉ nebo PŘIPRAVENO"
 
 msgid "Blacklisted files:"
-msgstr ""
+msgstr "Soubory na černé listině:"
 
 msgid "Total count: "
 msgstr "Celkový počet: "
@@ -984,23 +980,23 @@
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d soubor na černé listině"
+msgstr[1] "%d soubory na černé listině"
+msgstr[2] "%d souborů na černé listině"
 
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
-msgstr[0] "%d modul"
-msgstr[1] "%d moduly"
-msgstr[2] "%d modulů"
+msgstr[0] "%d zásuvný modul"
+msgstr[1] "%d zásuvné moduly"
+msgstr[2] "%d zásuvných modulů"
 
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d záznam na černé listině"
+msgstr[1] "%d záznamy na černé listině"
+msgstr[2] "%d záznamů na černé listině"
 
 #, c-format
 msgid "%d feature"
@@ -1010,73 +1006,89 @@
 msgstr[2] "%d funkcí"
 
 msgid "Print all elements"
-msgstr "Vypsat všechny elementy"
+msgstr "Vypsat všechny prvky"
 
 msgid "Print list of blacklisted files"
-msgstr ""
+msgstr "Vypsat seznam souborů na černé listině"
 
-#, fuzzy
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
 "plugins provide.\n"
 "                                       Useful in connection with external "
 "automatic plugin installation mechanisms"
 msgstr ""
-"Vypsat strojem zpracovatelný seznam funkcí, které poskytuje zadaný modul.\n"
+"Vypsat strojem zpracovatelný seznam funkcí, které poskytuje zadaný nebo "
+"všechny zásuvné moduly.\n"
 "                                       Užitečné spolu s externími mechanismy "
-"pro automatickou instlaci modulů"
+"pro automatickou instalaci zásuvných modulů"
 
 msgid "List the plugin contents"
-msgstr ""
+msgstr "Vypsat obsah zásuvných modulů"
 
 msgid "Print supported URI schemes, with the elements that implement them"
-msgstr ""
+msgstr "Vypsat podporovaná schémata URI, včetně prvků, které implementují"
 
 #, c-format
 msgid "Could not load plugin file: %s\n"
-msgstr "Nemohu načíst soubor modulu: %s\n"
+msgstr "Nelze načíst soubor se zásuvným modulem: %s\n"
 
 #, c-format
 msgid "No such element or plugin '%s'\n"
-msgstr "Element nebo modul '%s' neexistuje\n"
+msgstr "Prvek nebo zásuvný modul „%s“ neexistuje\n"
 
 msgid "Index statistics"
-msgstr ""
+msgstr "Přehledové statistiky"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
-msgstr "Dostal jsem zprávu elementu \"%s\" (%s): "
+msgstr "Obdržena zpráva čís. %u od prvku „%s“ (%s): "
 
-#, fuzzy, c-format
+#, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
-msgstr "Dostal jsem zprávu elementu \"%s\" (%s): "
+msgstr "Obdržena zpráva čís. %u od přípojného bodu „%s:%s“ (%s): "
 
-#, fuzzy, c-format
+#, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
-msgstr "Dostal jsem zprávu elementu \"%s\" (%s): "
+msgstr "Obdržena zpráva čís. %u od objektu „%s“ (%s): "
 
-#, fuzzy, c-format
+#, c-format
 msgid "Got message #%u (%s): "
-msgstr "Dostal jsem zprávu elementu \"%s\" (%s): "
+msgstr "Obdržena zpráva čís. %u (%s): "
 
 #, c-format
 msgid "Got EOS from element \"%s\".\n"
-msgstr "Dostal jsem EOS od elementu \"%s\".\n"
+msgstr "Obdržen konec proudu od prvku „%s“.\n"
 
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
-msgstr "NALEZEN TAG    : nalezen elementem \"%s\".\n"
+msgstr ""
+"NALEZEN ŠTÍTEK: nalezen prvkem „%s“.\n"
+"\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
-msgstr "NALEZEN TAG    : nalezen elementem \"%s\".\n"
+msgstr "NALEZEN ŠTÍTEK: nalezen přípojným bodem „%s:%s“.\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
-msgstr "NALEZEN TAG    : nalezen elementem \"%s\".\n"
+msgstr "NALEZEN ŠTÍTEK: nalezen objektem „%s“.\n"
 
 msgid "FOUND TAG\n"
+msgstr "NALEZEN ŠTÍTEK\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
 msgstr ""
+"NALEZEN ŠTÍTEK: nalezen prvkem „%s“.\n"
+"\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "NALEZEN ŠTÍTEK: nalezen objektem „%s“.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "NALEZEN ŠTÍTEK\n"
 
 #, c-format
 msgid ""
@@ -1088,155 +1100,155 @@
 
 #, c-format
 msgid "WARNING: from element %s: %s\n"
-msgstr "VAROVÁNÍ: od elementu %s: %s\n"
+msgstr "VAROVÁNÍ: od prvku %s: %s\n"
 
 msgid "Prerolled, waiting for buffering to finish...\n"
-msgstr "Předtočeno, čekám na dokončení ukládání do vyrovnávácí paměti...\n"
+msgstr "Předvinuto, čeká se na dokončení ukládání do vyrovnávací paměti…\n"
 
-#, fuzzy
 msgid "buffering..."
-msgstr "ukládám do vyrovnávací paměti... %d  \n"
+msgstr "ukládá se do vyrovnávací paměti…"
 
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
-"Ukládání do vyrovnávací paměti hotovo, nastavuji rouru na PŘEHRÁVÁ ...\n"
+"Ukládání do vyrovnávací paměti hotovo, nastavuje se roura na PŘEHRÁVÁ…\n"
 
 msgid "Buffering, setting pipeline to PAUSED ...\n"
-msgstr ""
-"Ukládám do vyrovnávací paměti hotovo, nastavuji rouru na POZASTAVENA ...\n"
+msgstr "Ukládá se do vyrovnávací paměti, nastavuje se roura na POZASTAVENA…\n"
 
 msgid "Redistribute latency...\n"
-msgstr ""
+msgstr "Šíří se zpoždění…\n"
 
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
-msgstr ""
+msgstr "Nastavuje se stav na %s na základě požadavku od %s…\n"
 
 msgid "Interrupt: Stopping pipeline ...\n"
-msgstr "Přerušení: Zastavuji rouru ...\n"
+msgstr "Přerušení: Zastavuje se roura…\n"
 
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr "element \"%s\" neexistuje"
+msgstr "prvek „%s“ neexistuje"
 
 msgid "Output tags (also known as metadata)"
-msgstr "Vypsat tagy (také známé jako metadata)"
+msgstr "Vypsat štítky (známé také jako metadata)"
+
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
 
 msgid "Output status information and property notifications"
 msgstr "Vypsat informace o stavu a upozornění na vlastnosti"
 
-#, fuzzy
 msgid "Do not print any progress information"
-msgstr "Nevypisovat informace o stavu s TYPEM"
+msgstr "Nevypisovat žádné informace o průběhu"
 
 msgid "Output messages"
 msgstr "Zprávy výstupu"
 
 msgid "Do not output status information of TYPE"
-msgstr "Nevypisovat informace o stavu s TYPEM"
+msgstr "Pro TYP nevypisovat stavové informace"
 
 msgid "TYPE1,TYPE2,..."
-msgstr "TYP1,TYP2,..."
+msgstr "TYP1,TYP2,…"
 
 msgid "Do not install a fault handler"
 msgstr "Neinstalovat obsluhu výjimek"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Vypisovat stopu alokace (je-li povoleno při kompilaci)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
-msgstr ""
+msgstr "Vynucuje se zakončení proudu (EOS) před vypnutím roury"
 
 msgid "Gather and print index statistics"
-msgstr ""
+msgstr "Sesbírat a vypsat přehledové statistiky"
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
-msgstr "CHYBA: nelze vytvořit rouru: %s.\n"
+msgstr "CHYBA: nelze sestavit rouru: %s.\n"
 
 msgid "ERROR: pipeline could not be constructed.\n"
-msgstr "CHYBA: nelze vytvořit rouru.\n"
+msgstr "CHYBA: nelze sestavit rouru.\n"
 
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
 msgstr "VAROVÁNÍ: chybná roura: %s\n"
 
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
-msgstr "CHYBA: element 'pipeline' nebyl nalezen.\n"
+msgstr "CHYBA: prvek „pipeline“ nebyl nalezen.\n"
 
 msgid "Setting pipeline to PAUSED ...\n"
-msgstr "Nastavuji rouru na POZASTAVENA ...\n"
+msgstr "Nastavuje se rouru na POZASTAVENA…\n"
 
 # On strike?
 msgid "ERROR: Pipeline doesn't want to pause.\n"
-msgstr "CHYBA: Roura nechce pozastavit.\n"
+msgstr "CHYBA: Roura se nechce pozastavit.\n"
 
 msgid "Pipeline is live and does not need PREROLL ...\n"
-msgstr "Roura žije a nepotřebuje PŘEDTOČENÍ ...\n"
+msgstr "Roura žije a nepotřebuje PŘEDVINUTÍ…\n"
 
 msgid "Pipeline is PREROLLING ...\n"
-msgstr "Roura se PŘEDTÁČÍ ...\n"
+msgstr "Roura se PŘEDVINUJE…\n"
 
 # On strike?
 msgid "ERROR: pipeline doesn't want to preroll.\n"
-msgstr "CHYBA: roura nechce předtáčet.\n"
+msgstr "CHYBA: roura se nechce předvinout.\n"
 
 msgid "Pipeline is PREROLLED ...\n"
-msgstr "Roura je PŘEDTOČENA ...\n"
+msgstr "Roura je PŘEDVINUTA…\n"
 
 msgid "Setting pipeline to PLAYING ...\n"
-msgstr "Nastavuji rouro na PŘEHRÁVÁ ...\n"
+msgstr "Nastavuje se roura na PŘEHRÁVÁNÍ…\n"
 
 # On strike?
 msgid "ERROR: pipeline doesn't want to play.\n"
-msgstr "CHYBA: roura nechce hrát.\n"
+msgstr "CHYBA: roura nechce přehrávat.\n"
 
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
+"Zakončení proudu (EOS) při vypnutí povoleno -- Vynucuje se zakončení proudu "
+"v rouře\n"
 
 msgid "Waiting for EOS...\n"
-msgstr ""
+msgstr "Čeká se na konec proudu (EOS)…\n"
 
-#, fuzzy
 msgid "EOS received - stopping pipeline...\n"
-msgstr "Přerušení: Zastavuji rouru ...\n"
+msgstr "Obdržen konec proudu (EOS) – zastavuje se roura…\n"
 
 msgid "An error happened while waiting for EOS\n"
-msgstr ""
+msgstr "Nastala chyba při čekání na konec proudu (EOS)\n"
 
 msgid "Execution ended after %"
 msgstr "Provádění skončilo po %"
 
 msgid "Setting pipeline to READY ...\n"
-msgstr "Nastavuji rouru na PŘIPRAVENA ...\n"
+msgstr "Nastavuje se roura na PŘIPRAVENA…\n"
 
 msgid "Setting pipeline to NULL ...\n"
-msgstr "Nastavuji rouru na NULL ...\n"
+msgstr "Nastavuje se roura na PRÁZDNÁ…\n"
 
-#, fuzzy
 msgid "Freeing pipeline ...\n"
-msgstr "Nastavuji rouru na NULL ...\n"
+msgstr "Uvolňuje se roura…\n"
+
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Vypisovat sledování přidělování paměti (je-li povoleno při překladu)"
 
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
-#~ msgstr ""
-#~ "Použití: gst-xmllaunch <soubor.xml> [ element.vlastnost=hodnota ... ]\n"
+#~ msgstr "Použití: gst-xmllaunch <soubor.xml> [prvek.vlastnost=hodnota…]\n"
 
 #~ msgid "ERROR: parse of xml file '%s' failed.\n"
-#~ msgstr "CHYBA: zpracovávání xml souboru '%s' selhalo.\n"
+#~ msgstr "CHYBA: zpracovávání souboru XML „%s“ selhalo.\n"
 
 #~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
-#~ msgstr "CHYBA: v souboru '%s' není element nejvyšší úrovně pipeline.\n"
+#~ msgstr ""
+#~ "CHYBA: v souboru „%s“ není žádný prvek „pipeline“ nejvyšší úrovně.\n"
 
-#, fuzzy
 #~ msgid "WARNING: only one toplevel element is supported at this time.\n"
 #~ msgstr ""
-#~ "VAROVÁNÍ: v současné době je podporován jen jeden element nejvyšší úrovně."
+#~ "VAROVÁNÍ: v současné době je podporován jen jeden prvek nejvyšší úrovně.\n"
 
 #~ msgid "ERROR: could not parse command line argument %d: %s.\n"
-#~ msgstr "CHYBA: nemohu zpracovat argument %d na příkazovém řádku: %s.\n"
+#~ msgstr "CHYBA: nelze zpracovat argument %d na příkazovém řádku: %s.\n"
 
 #~ msgid "WARNING: element named '%s' not found.\n"
-#~ msgstr "VAROVÁNÍ: element nazvaný '%s' nenalezen.\n"
+#~ msgstr "VAROVÁNÍ: prvek s názvem „%s“ nebyl nalezen.\n"
 
 #~ msgid "Save xml representation of pipeline to FILE and exit"
 #~ msgstr "Uložit reprezentaci roury v xml do SOUBORu a skončit"
@@ -1244,82 +1256,5 @@
 #~ msgid "FILE"
 #~ msgstr "SOUBOR"
 
-#, fuzzy
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
-#~ msgstr "Neinstalovat obsluhu výjimek"
-
-#~ msgid "Error writing registry cache to %s: %s"
-#~ msgstr "Chyba při zapisování cache registru do %s: %s"
-
-#~ msgid "Error re-scanning registry %s: %s"
-#~ msgstr "Chyba při opětovném prohledávání registru %s: %s"
-
-#~ msgid "Error re-scanning registry %s"
-#~ msgstr "Chyba při opětovném prohledávání registru %s"
-
-#~ msgid "Internal GStreamer error: state change failed."
-#~ msgstr "Interní chyba GStreameru: změna stavu selhala."
-
-#~ msgid "Error while writing to file descriptor \"%d\"."
-#~ msgstr "Chyba při zápisu do deksriptoru souboru \"%d\"."
-
-#~ msgid "File descriptor \"%d\" is not valid."
-#~ msgstr "Deskriptor souboru \"%d\" není platný."
-
-#~ msgid "FREEING pipeline ...\n"
-#~ msgstr "UVOLŇUJI rouru ...\n"
-
-#~ msgid "original location of file as a URI"
-#~ msgstr "původní umístění souboru jako URI"
-
-#~ msgid "Disable accelerated CPU instructions"
-#~ msgstr "Zakázat akcelerované instrukce CPU"
-
-#~ msgid "SCHEDULER"
-#~ msgstr "PLÁNOVAČ"
-
-#~ msgid "Registry to use"
-#~ msgstr "Registr, který používat"
-
-#~ msgid "REGISTRY"
-#~ msgstr "REGISTR"
-
-#~ msgid "path list for loading plugins (separated by '%s')"
-#~ msgstr "seznam cest pro načítání modulů (oddělený '%s')"
-
-#~ msgid "Scheduler to use (default is '%s')"
-#~ msgstr "Plánovač, který používat (implicitní je '%s')"
-
-#~ msgid "There is no element present to handle the stream's mime type %s."
-#~ msgstr "Není přítomen žádý element pro obsloužení proudu s typem mime %s."
-
-#~ msgid ""
-#~ "Execution ended after %s iterations (sum %s ns, average %s ns, min %s ns, "
-#~ "max %s ns).\n"
-#~ msgstr ""
-#~ "Provádění skončilo po %s iteracích (celkem %s ns, průměr %s ns, min %s "
-#~ "ns, max %s ns).\n"
-
-#~ msgid "Number of times to iterate pipeline"
-#~ msgstr "Kolikrát iterovat rouru"
-
-#~ msgid "         Trying to run anyway.\n"
-#~ msgstr "         Přesto se ji pokouším spustit.\n"
-
-#~ msgid "Added plugin %s with %d %s.\n"
-#~ msgstr "Přidán modul %s s %d %s.\n"
-
-#~ msgid "Added path   %s to %s \n"
-#~ msgstr "Přidána cesta %s do %s \n"
-
-#~ msgid "Rebuilding %s (%s) ...\n"
-#~ msgstr "Znovu sestavuji %s (%s) ...\n"
-
-#~ msgid "Trying to load %s ...\n"
-#~ msgstr "Pokouším se načíst %s ...\n"
-
-#~ msgid "Error loading %s\n"
-#~ msgstr "Chyba při načítání %s\n"
-
-#~ msgid "Loaded %d plugins with %d %s.\n"
-#~ msgstr "Načteno %d modulů s %d %s.\n"
+#~ msgstr "Neinstalovat obsluhu signálů SIGUSR1 a SIGUSR2"
diff --git a/po/da.gmo b/po/da.gmo
index b94e424..0466b27 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 6474dac..0bf9d3b 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-06 22:52+0100\n"
 "Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -555,9 +555,17 @@
 msgid "language code"
 msgstr "sprogkode"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "sprogkode for denne mediestrøm, i overensstemmelse med ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "sprogkode"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "billede"
 
@@ -1069,6 +1077,18 @@
 msgid "FOUND TAG\n"
 msgstr "FUNDET MÆRKAT\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "FUNDET MÆRKAT       : fundet af element \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "FUNDET MÆRKAT       : fundet af objektet \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "FUNDET MÆRKAT\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1111,6 +1131,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Uddatamærkater (også kendt som metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Uddata statusinformation og egenskabsmeddelelser"
 
@@ -1129,9 +1152,6 @@
 msgid "Do not install a fault handler"
 msgstr "Installér ikke en fejlhåndterer"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Udskriv allokeringsspor (hvis tilladt på oversættelsestidspunktet)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Gennemtving medieslut på kilder før nedlukning af rørledning"
 
@@ -1201,6 +1221,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Rørledning frigøres ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Udskriv allokeringsspor (hvis tilladt på oversættelsestidspunktet)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Brug: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 
diff --git a/po/de.gmo b/po/de.gmo
index f7f602e..243b46b 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index aad792f..bcd016d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-27 23:44+0200\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -569,9 +569,17 @@
 msgid "language code"
 msgstr "Sprachcode"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "Sprachcode für diesen Datenstrom nach ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "Sprachcode"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "Bild"
 
@@ -1089,6 +1097,18 @@
 msgid "FOUND TAG\n"
 msgstr "KENNZEICHEN GEFUNDEN\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "KENNZEICHEN GEFUNDEN: Gefunden von Element »%s«.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "KENNZEICHEN GEFUNDEN: Gefunden von Objekt »%s«.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "KENNZEICHEN GEFUNDEN\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1133,6 +1153,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Kennzeichen (auch bekannt als Metadaten) ausgeben"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Zustandsinformation und Eigenschaftsmitteilungen ausgeben"
 
@@ -1151,10 +1174,6 @@
 msgid "Do not install a fault handler"
 msgstr "Keine Routine zum Abfangen von Fehlern installieren"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-"Speicherzuordnungsverfolgung ausgeben (falls zur Kompilierzeit aktiviert)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "EOS auf Quelle vor dem Beenden der Leitung erzwingen"
 
@@ -1224,6 +1243,10 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Leitung wird geleert ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Speicherzuordnungsverfolgung ausgeben (falls zur Kompilierzeit aktiviert)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Aufruf: gst-xmllaunch <file.xml> [ element.eigenschaft=wert ...]\n"
 
diff --git a/po/el.gmo b/po/el.gmo
index eff8234..e85c12f 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 0ebdd8d..746231a 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-29 11:14+0200\n"
 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -563,9 +563,17 @@
 msgid "language code"
 msgstr "κωδικός γλώσσας"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "κωδικός γλώσσας γι' αυτή τη ροή, συμμορφούμενος με το ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "κωδικός γλώσσας"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "εικόνα"
 
@@ -1083,6 +1091,18 @@
 msgid "FOUND TAG\n"
 msgstr "FOUND TAG\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "FOUND TAG      : εύρεση κατά στοιχείο «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "FOUND TAG      : εύρεση κατά αντικείμενο «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "FOUND TAG\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1124,6 +1144,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Ετικέτες εξόδου (επίσης γνωστές ως μεταδεδομένα)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Πληροφορίες κατάστασης εξόδου και ειδοποιήσεις ιδιοτήτων"
 
@@ -1142,11 +1165,6 @@
 msgid "Do not install a fault handler"
 msgstr "Να μην εγκατασταθεί χειριστής σφαλμάτων"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-"Εμφάνιση ίχνους αντιστοίχισης (αν είναι ενεργοποιημένο κατά τη μεταγλώττιση "
-"κώδικα)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Εξαναγκασμός του EOS στις πηγές πριν το κλείσιμο της διασωλήνωσης"
 
@@ -1216,6 +1234,11 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Αποδέσμευση της διασωλήνωσης …\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Εμφάνιση ίχνους αντιστοίχισης (αν είναι ενεργοποιημένο κατά τη "
+#~ "μεταγλώττιση κώδικα)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Χρήση: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 38726be..ed213d1 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index 16e0e29..3e482c7 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2004-04-26 10:36-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -569,7 +569,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1077,6 +1083,17 @@
 msgid "FOUND TAG\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "FOUND TAG      : found by element \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "FOUND TAG      : found by element \"%s\".\n"
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1116,6 +1133,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Output tags (also known as metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Output status information and property notifications"
 
@@ -1135,9 +1155,6 @@
 msgid "Do not install a fault handler"
 msgstr "Do not install a fault handler"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Print alloc trace (if enabled at compile time)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1209,6 +1226,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "RUNNING pipeline ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Print alloc trace (if enabled at compile time)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 
diff --git a/po/eo.gmo b/po/eo.gmo
new file mode 100644
index 0000000..35e2871
--- /dev/null
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/gstreamer-0.11.pot b/po/eo.po
similarity index 64%
copy from po/gstreamer-0.11.pot
copy to po/eo.po
index 4fb3434..e9759d3 100644
--- a/po/gstreamer-0.11.pot
+++ b/po/eo.po
@@ -1,844 +1,653 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Esperanto translation for gstreamer.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gstreamer package.
+# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011.
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.11.1\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2011-06-04 21:11+0100\n"
+"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: eo\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: gst/gst.c:310
 msgid "Print the GStreamer version"
-msgstr ""
+msgstr "Eligi la version de GStreamer"
 
-#: gst/gst.c:312
 msgid "Make all warnings fatal"
-msgstr ""
+msgstr "Igi ĉiujn avertojn fatalaj"
 
-#: gst/gst.c:316
 msgid "Print available debug categories and exit"
-msgstr ""
+msgstr "Eligi disponeblaj sencimig-koategorioj kaj eliri"
 
-#: gst/gst.c:320
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
 
-#: gst/gst.c:322
 msgid "LEVEL"
-msgstr ""
+msgstr "NIVELO"
 
-#: gst/gst.c:324
 msgid ""
 "Comma-separated list of category_name:level pairs to set specific levels for "
 "the individual categories. Example: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 msgstr ""
 
-#: gst/gst.c:327
 msgid "LIST"
-msgstr ""
+msgstr "LISTO"
 
-#: gst/gst.c:329
 msgid "Disable colored debugging output"
 msgstr ""
 
-#: gst/gst.c:332
 msgid "Disable debugging"
-msgstr ""
+msgstr "Elŝalti sencimigon"
 
-#: gst/gst.c:336
 msgid "Enable verbose plugin loading diagnostics"
 msgstr ""
 
-#: gst/gst.c:340
 msgid "Colon-separated paths containing plugins"
 msgstr ""
 
-#: gst/gst.c:340
 msgid "PATHS"
-msgstr ""
+msgstr "VOJOJ"
 
-#: gst/gst.c:343
 msgid ""
 "Comma-separated list of plugins to preload in addition to the list stored in "
 "environment variable GST_PLUGIN_PATH"
 msgstr ""
 
-#: gst/gst.c:345
 msgid "PLUGINS"
-msgstr ""
+msgstr "KROMPROGRAMOJ"
 
-#: gst/gst.c:348
 msgid "Disable trapping of segmentation faults during plugin loading"
 msgstr ""
 
-#: gst/gst.c:353
 msgid "Disable updating the registry"
 msgstr ""
 
-#: gst/gst.c:358
 msgid "Disable spawning a helper process while scanning the registry"
 msgstr ""
 
-#: gst/gst.c:385
 msgid "GStreamer Options"
-msgstr ""
+msgstr "Opcioj de GStreamer"
 
-#: gst/gst.c:386
 msgid "Show GStreamer Options"
-msgstr ""
+msgstr "Montri la opcijon de GStreamer"
 
-#: gst/gst.c:956
 msgid "Unknown option"
-msgstr ""
+msgstr "Nekonata opcio"
 
-#: gst/gsterror.c:148
 msgid "GStreamer encountered a general core library error."
 msgstr ""
 
-#: gst/gsterror.c:150 gst/gsterror.c:192 gst/gsterror.c:216 gst/gsterror.c:256
 msgid ""
 "GStreamer developers were too lazy to assign an error code to this error."
 msgstr ""
 
-#: gst/gsterror.c:153
 msgid "Internal GStreamer error: code not implemented."
 msgstr ""
 
-#: gst/gsterror.c:155
 msgid ""
 "GStreamer error: state change failed and some element failed to post a "
 "proper error message with the reason for the failure."
 msgstr ""
 
-#: gst/gsterror.c:158
 msgid "Internal GStreamer error: pad problem."
 msgstr ""
 
-#: gst/gsterror.c:160
 msgid "Internal GStreamer error: thread problem."
 msgstr ""
 
-#: gst/gsterror.c:162
 msgid "Internal GStreamer error: negotiation problem."
 msgstr ""
 
-#: gst/gsterror.c:164
 msgid "Internal GStreamer error: event problem."
 msgstr ""
 
-#: gst/gsterror.c:166
 msgid "Internal GStreamer error: seek problem."
 msgstr ""
 
-#: gst/gsterror.c:168
 msgid "Internal GStreamer error: caps problem."
 msgstr ""
 
-#: gst/gsterror.c:170
 msgid "Internal GStreamer error: tag problem."
 msgstr ""
 
-#: gst/gsterror.c:172
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr ""
 
-#: gst/gsterror.c:174
 msgid "Internal GStreamer error: clock problem."
 msgstr ""
 
-#: gst/gsterror.c:176
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
 "disabled."
 msgstr ""
 
-#: gst/gsterror.c:190
 msgid "GStreamer encountered a general supporting library error."
 msgstr ""
 
-#: gst/gsterror.c:195
 msgid "Could not initialize supporting library."
 msgstr ""
 
-#: gst/gsterror.c:197
 msgid "Could not close supporting library."
 msgstr ""
 
-#: gst/gsterror.c:199
 msgid "Could not configure supporting library."
 msgstr ""
 
-#: gst/gsterror.c:201
 msgid "Encoding error."
 msgstr ""
 
-#: gst/gsterror.c:214
 msgid "GStreamer encountered a general resource error."
 msgstr ""
 
-#: gst/gsterror.c:219
 msgid "Resource not found."
-msgstr ""
+msgstr "Ne trovis risurcon."
 
-#: gst/gsterror.c:221
 msgid "Resource busy or not available."
-msgstr ""
+msgstr "Risurco estas okupite aŭ ne disponeble."
 
-#: gst/gsterror.c:223
 msgid "Could not open resource for reading."
-msgstr ""
+msgstr "Ne eblas melfermi la risurcon por legado."
 
-#: gst/gsterror.c:225
 msgid "Could not open resource for writing."
-msgstr ""
+msgstr "Ne eblas melfermi la risurcon por skribado."
 
-#: gst/gsterror.c:227
 msgid "Could not open resource for reading and writing."
-msgstr ""
+msgstr "Ne eblas melfermi la risurcon por legado kaj skribado."
 
-#: gst/gsterror.c:229
 msgid "Could not close resource."
-msgstr ""
+msgstr "Ne eblas fermi la risurcon."
 
-#: gst/gsterror.c:231
 msgid "Could not read from resource."
-msgstr ""
+msgstr "Ne eblas legi de la risurco."
 
-#: gst/gsterror.c:233
 msgid "Could not write to resource."
-msgstr ""
+msgstr "Ne eblas skribi al la risurco."
 
-#: gst/gsterror.c:235
 msgid "Could not perform seek on resource."
 msgstr ""
 
-#: gst/gsterror.c:237
 msgid "Could not synchronize on resource."
 msgstr ""
 
-#: gst/gsterror.c:239
 msgid "Could not get/set settings from/on resource."
 msgstr ""
 
-#: gst/gsterror.c:241
 msgid "No space left on the resource."
 msgstr ""
 
-#: gst/gsterror.c:254
 msgid "GStreamer encountered a general stream error."
 msgstr ""
 
-#: gst/gsterror.c:259
 msgid "Element doesn't implement handling of this stream. Please file a bug."
 msgstr ""
 
-#: gst/gsterror.c:262
 msgid "Could not determine type of stream."
 msgstr ""
 
-#: gst/gsterror.c:264
 msgid "The stream is of a different type than handled by this element."
 msgstr ""
 
-#: gst/gsterror.c:267
 msgid "There is no codec present that can handle the stream's type."
 msgstr ""
 
-#: gst/gsterror.c:269
 msgid "Could not decode stream."
 msgstr ""
 
-#: gst/gsterror.c:271
 msgid "Could not encode stream."
 msgstr ""
 
-#: gst/gsterror.c:273
 msgid "Could not demultiplex stream."
 msgstr ""
 
-#: gst/gsterror.c:275
 msgid "Could not multiplex stream."
 msgstr ""
 
-#: gst/gsterror.c:277
 msgid "The stream is in the wrong format."
 msgstr ""
 
-#: gst/gsterror.c:279
 msgid "The stream is encrypted and decryption is not supported."
 msgstr ""
 
-#: gst/gsterror.c:281
 msgid ""
 "The stream is encrypted and can't be decrypted because no suitable key has "
 "been supplied."
 msgstr ""
 
-#: gst/gsterror.c:321
 #, c-format
 msgid "No error message for domain %s."
 msgstr ""
 
-#: gst/gsterror.c:329
 #, c-format
 msgid "No standard error message for domain %s and code %d."
 msgstr ""
 
-#: gst/gstpipeline.c:529
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
-#: gst/gsttaglist.c:98
 msgid "title"
-msgstr ""
+msgstr "titolo"
 
-#: gst/gsttaglist.c:98
 msgid "commonly used title"
 msgstr ""
 
-#: gst/gsttaglist.c:101
 msgid "title sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:101
 msgid "commonly used title for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:104
 msgid "artist"
-msgstr ""
+msgstr "artisto"
 
-#: gst/gsttaglist.c:105
 msgid "person(s) responsible for the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:109
 msgid "artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:110
 msgid "person(s) responsible for the recording for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:113
 msgid "album"
-msgstr ""
+msgstr "albumo"
 
-#: gst/gsttaglist.c:114
 msgid "album containing this data"
 msgstr ""
 
-#: gst/gsttaglist.c:117
 msgid "album sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:118
 msgid "album containing this data for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:121
 msgid "album artist"
-msgstr ""
+msgstr "album-artisto"
 
-#: gst/gsttaglist.c:122
 msgid "The artist of the entire album, as it should be displayed"
 msgstr ""
 
-#: gst/gsttaglist.c:126
 msgid "album artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:127
 msgid "The artist of the entire album, as it should be sorted"
 msgstr ""
 
-#: gst/gsttaglist.c:129
 msgid "date"
-msgstr ""
+msgstr "dato"
 
-#: gst/gsttaglist.c:129
 msgid "date the data was created (as a GDate structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:131
 msgid "datetime"
-msgstr ""
+msgstr "datohoro"
 
-#: gst/gsttaglist.c:132
 msgid "date and time the data was created (as a GstDateTime structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:136
 msgid "genre"
-msgstr ""
+msgstr "ĝenro"
 
-#: gst/gsttaglist.c:137
 msgid "genre this data belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:140
 msgid "comment"
-msgstr ""
+msgstr "komento"
 
-#: gst/gsttaglist.c:141
 msgid "free text commenting the data"
 msgstr ""
 
-#: gst/gsttaglist.c:144
 msgid "extended comment"
 msgstr ""
 
-#: gst/gsttaglist.c:145
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
 
-#: gst/gsttaglist.c:149
 msgid "track number"
 msgstr ""
 
-#: gst/gsttaglist.c:150
 msgid "track number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:153
 msgid "track count"
 msgstr ""
 
-#: gst/gsttaglist.c:154
 msgid "count of tracks inside collection this track belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:158
 msgid "disc number"
-msgstr ""
+msgstr "disk-numero"
 
-#: gst/gsttaglist.c:159
 msgid "disc number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:162
 msgid "disc count"
-msgstr ""
+msgstr "disk-nombro"
 
-#: gst/gsttaglist.c:163
 msgid "count of discs inside collection this disc belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:167
 msgid "location"
-msgstr ""
+msgstr "loko"
 
-#: gst/gsttaglist.c:167
 msgid ""
 "Origin of media as a URI (location, where the original of the file or stream "
 "is hosted)"
 msgstr ""
 
-#: gst/gsttaglist.c:172
 msgid "homepage"
-msgstr ""
+msgstr "hejmpaĝo"
 
-#: gst/gsttaglist.c:173
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
 
-#: gst/gsttaglist.c:176
 msgid "description"
-msgstr ""
+msgstr "priskribo"
 
-#: gst/gsttaglist.c:176
 msgid "short text describing the content of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:179
 msgid "version"
-msgstr ""
+msgstr "versio"
 
-#: gst/gsttaglist.c:179
 msgid "version of this data"
-msgstr ""
+msgstr "versi de tiu datumo"
 
-#: gst/gsttaglist.c:180
 msgid "ISRC"
 msgstr ""
 
-#: gst/gsttaglist.c:182
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
 
-#: gst/gsttaglist.c:186
 msgid "organization"
 msgstr ""
 
-#: gst/gsttaglist.c:188
 msgid "copyright"
-msgstr ""
+msgstr "kopirajto"
 
-#: gst/gsttaglist.c:188
 msgid "copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:190
 msgid "copyright uri"
 msgstr ""
 
-#: gst/gsttaglist.c:191
 msgid "URI to the copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:193
 msgid "encoded by"
 msgstr ""
 
-#: gst/gsttaglist.c:193
 msgid "name of the encoding person or organization"
 msgstr ""
 
-#: gst/gsttaglist.c:197
 msgid "contact"
-msgstr ""
+msgstr "kontakto"
 
-#: gst/gsttaglist.c:197
 msgid "contact information"
 msgstr ""
 
-#: gst/gsttaglist.c:199
 msgid "license"
-msgstr ""
+msgstr "permesilo"
 
-#: gst/gsttaglist.c:199
 msgid "license of data"
-msgstr ""
+msgstr "permesilo de la datumoj"
 
-#: gst/gsttaglist.c:201
 msgid "license uri"
 msgstr ""
 
-#: gst/gsttaglist.c:202
 msgid "URI to the license of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:205
 msgid "performer"
 msgstr ""
 
-#: gst/gsttaglist.c:206
 msgid "person(s) performing"
 msgstr ""
 
-#: gst/gsttaglist.c:209
 msgid "composer"
-msgstr ""
+msgstr "komponisto"
 
-#: gst/gsttaglist.c:210
 msgid "person(s) who composed the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:214
 msgid "duration"
-msgstr ""
+msgstr "daŭro"
 
-#: gst/gsttaglist.c:214
 msgid "length in GStreamer time units (nanoseconds)"
 msgstr ""
 
-#: gst/gsttaglist.c:217
 msgid "codec"
-msgstr ""
+msgstr "kodeko"
 
-#: gst/gsttaglist.c:218
 msgid "codec the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:221
 msgid "video codec"
-msgstr ""
+msgstr "video-kodeko"
 
-#: gst/gsttaglist.c:221
 msgid "codec the video data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:224
 msgid "audio codec"
-msgstr ""
+msgstr "son-kodeko"
 
-#: gst/gsttaglist.c:224
 msgid "codec the audio data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:227
 msgid "subtitle codec"
-msgstr ""
+msgstr "subtekst-kodeko"
 
-#: gst/gsttaglist.c:227
 msgid "codec the subtitle data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:229
 msgid "container format"
 msgstr ""
 
-#: gst/gsttaglist.c:230
 msgid "container format the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:232
 msgid "bitrate"
-msgstr ""
+msgstr "bitrapido"
 
-#: gst/gsttaglist.c:232
 msgid "exact or average bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:234
 msgid "nominal bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:234
 msgid "nominal bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:236
 msgid "minimum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:236
 msgid "minimum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:238
 msgid "maximum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:238
 msgid "maximum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:241
 msgid "encoder"
 msgstr ""
 
-#: gst/gsttaglist.c:241
 msgid "encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:244
 msgid "encoder version"
 msgstr ""
 
-#: gst/gsttaglist.c:245
 msgid "version of the encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:247
 msgid "serial"
 msgstr ""
 
-#: gst/gsttaglist.c:247
 msgid "serial number of track"
 msgstr ""
 
-#: gst/gsttaglist.c:249
 msgid "replaygain track gain"
 msgstr ""
 
-#: gst/gsttaglist.c:249
 msgid "track gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:251
 msgid "replaygain track peak"
 msgstr ""
 
-#: gst/gsttaglist.c:251
 msgid "peak of the track"
 msgstr ""
 
-#: gst/gsttaglist.c:253
 msgid "replaygain album gain"
 msgstr ""
 
-#: gst/gsttaglist.c:253
 msgid "album gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:255
 msgid "replaygain album peak"
 msgstr ""
 
-#: gst/gsttaglist.c:255
 msgid "peak of the album"
 msgstr ""
 
-#: gst/gsttaglist.c:257
 msgid "replaygain reference level"
 msgstr ""
 
-#: gst/gsttaglist.c:258
 msgid "reference level of track and album gain values"
 msgstr ""
 
-#: gst/gsttaglist.c:260
 msgid "language code"
+msgstr "Lingvokodo"
+
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr ""
 
-#: gst/gsttaglist.c:261
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language name"
+msgstr "Lingvokodo"
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
-#: gst/gsttaglist.c:263
 msgid "image"
-msgstr ""
+msgstr "bildo"
 
-#: gst/gsttaglist.c:263
 msgid "image related to this stream"
 msgstr ""
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-#: gst/gsttaglist.c:266
 msgid "preview image"
 msgstr ""
 
-#: gst/gsttaglist.c:266
 msgid "preview image related to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:268
 msgid "attachment"
-msgstr ""
+msgstr "kunsendaĵo"
 
-#: gst/gsttaglist.c:268
 msgid "file attached to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:271
 msgid "beats per minute"
 msgstr ""
 
-#: gst/gsttaglist.c:271
 msgid "number of beats per minute in audio"
 msgstr ""
 
-#: gst/gsttaglist.c:273
 msgid "keywords"
 msgstr ""
 
-#: gst/gsttaglist.c:273
 msgid "comma separated keywords describing the content"
 msgstr ""
 
-#: gst/gsttaglist.c:276
 msgid "geo location name"
 msgstr ""
 
-#: gst/gsttaglist.c:276
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
 msgstr ""
 
-#: gst/gsttaglist.c:279
 msgid "geo location latitude"
 msgstr ""
 
-#: gst/gsttaglist.c:280
 msgid ""
 "geo latitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:284
 msgid "geo location longitude"
 msgstr ""
 
-#: gst/gsttaglist.c:285
 msgid ""
 "geo longitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:289
 msgid "geo location elevation"
 msgstr ""
 
-#: gst/gsttaglist.c:290
 msgid ""
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
 
-#: gst/gsttaglist.c:293
 msgid "geo location country"
 msgstr ""
 
-#: gst/gsttaglist.c:294
 msgid "country (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:297
 msgid "geo location city"
 msgstr ""
 
-#: gst/gsttaglist.c:298
 msgid "city (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:301
 msgid "geo location sublocation"
 msgstr ""
 
-#: gst/gsttaglist.c:302
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
 
-#: gst/gsttaglist.c:305
 msgid "geo location horizontal error"
 msgstr ""
 
-#: gst/gsttaglist.c:306
 msgid "expected error of the horizontal positioning measures (in meters)"
 msgstr ""
 
-#: gst/gsttaglist.c:309
 msgid "geo location movement speed"
 msgstr ""
 
-#: gst/gsttaglist.c:310
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
 
-#: gst/gsttaglist.c:313
 msgid "geo location movement direction"
 msgstr ""
 
-#: gst/gsttaglist.c:314
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
 
-#: gst/gsttaglist.c:319
 msgid "geo location capture direction"
 msgstr ""
 
-#: gst/gsttaglist.c:320
 msgid ""
 "indicates the direction the device is pointing to when capturing  a media. "
 "It is represented as degrees in floating point  representation, 0 means the "
@@ -846,398 +655,308 @@
 msgstr ""
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-#: gst/gsttaglist.c:326
 msgid "show name"
-msgstr ""
+msgstr "montri nomon"
 
-#: gst/gsttaglist.c:327
 msgid "Name of the tv/podcast/series show the media is from"
 msgstr ""
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#: gst/gsttaglist.c:331
 msgid "show sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:332
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:335
 msgid "episode number"
 msgstr ""
 
-#: gst/gsttaglist.c:336
 msgid "The episode number in the season the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:339
 msgid "season number"
 msgstr ""
 
-#: gst/gsttaglist.c:340
 msgid "The season number of the show the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:343
 msgid "lyrics"
-msgstr ""
+msgstr "lirikoj"
 
-#: gst/gsttaglist.c:343
 msgid "The lyrics of the media, commonly used for songs"
 msgstr ""
 
-#: gst/gsttaglist.c:346
 msgid "composer sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:347
 msgid "person(s) who composed the recording, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:349
 msgid "grouping"
-msgstr ""
+msgstr "grupado"
 
-#: gst/gsttaglist.c:350
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
 
-#: gst/gsttaglist.c:354
 msgid "user rating"
 msgstr ""
 
-#: gst/gsttaglist.c:355
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
 
-#: gst/gsttaglist.c:358
 msgid "device manufacturer"
 msgstr ""
 
-#: gst/gsttaglist.c:359
 msgid "Manufacturer of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:361
 msgid "device model"
 msgstr ""
 
-#: gst/gsttaglist.c:362
 msgid "Model of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:364
 msgid "application name"
 msgstr ""
 
-#: gst/gsttaglist.c:364
 msgid "Application used to create the media"
 msgstr ""
 
-#: gst/gsttaglist.c:366
 msgid "application data"
 msgstr ""
 
-#: gst/gsttaglist.c:367
 msgid "Arbitrary application data to be serialized into the media"
 msgstr ""
 
-#: gst/gsttaglist.c:369
 msgid "image orientation"
 msgstr ""
 
-#: gst/gsttaglist.c:370
 msgid "How the image should be rotated or flipped before display"
 msgstr ""
 
-#: gst/gsttaglist.c:409
 msgid ", "
-msgstr ""
+msgstr ", "
 
-#: gst/gstutils.c:2445 tools/gst-launch.c:362
 #, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
-#: gst/gstutils.c:2447 tools/gst-launch.c:364 tools/gst-launch.c:639
 #, c-format
 msgid ""
 "Additional debug info:\n"
 "%s\n"
 msgstr ""
 
-#: gst/parse/grammar.y:229
 #, c-format
 msgid "specified empty bin \"%s\", not allowed"
 msgstr ""
 
-#: gst/parse/grammar.y:238
 #, c-format
 msgid "no bin \"%s\", skipping"
 msgstr ""
 
-#: gst/parse/grammar.y:447
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:462
 #, c-format
 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:613
 #, c-format
 msgid "could not link %s to %s"
 msgstr ""
 
-#: gst/parse/grammar.y:661
 #, c-format
 msgid "no element \"%s\""
-msgstr ""
+msgstr "neniu elemento \"%s\""
 
-#: gst/parse/grammar.y:713
 #, c-format
 msgid "could not parse caps \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:735 gst/parse/grammar.y:783 gst/parse/grammar.y:799
-#: gst/parse/grammar.y:862
 msgid "link without source element"
 msgstr ""
 
-#: gst/parse/grammar.y:741 gst/parse/grammar.y:780 gst/parse/grammar.y:871
 msgid "link without sink element"
 msgstr ""
 
-#: gst/parse/grammar.y:817
 #, c-format
 msgid "no source element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:827
 #, c-format
 msgid "no element to link URI \"%s\" to"
 msgstr ""
 
-#: gst/parse/grammar.y:835
 #, c-format
 msgid "no sink element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:842
 #, c-format
 msgid "could not link sink element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:856
 msgid "empty pipeline not allowed"
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2294
 msgid "Internal clock error."
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2616 libs/gst/base/gstbasesrc.c:2625
-#: libs/gst/base/gstbasesink.c:4054 plugins/elements/gstqueue.c:1244
-#: plugins/elements/gstqueue2.c:2343
 msgid "Internal data flow error."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:2740
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3537
 msgid "Internal data flow problem."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:4044
 msgid "Internal data stream error."
-msgstr ""
+msgstr "Interna datumflu-eraro."
 
-#: plugins/elements/gstcapsfilter.c:100
 msgid "Filter caps"
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:101
 msgid ""
 "Restrict the possible allowed capabilities (NULL means ANY). Setting this "
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:410
 msgid "No file name specified for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:416
 #, c-format
 msgid "Could not open file \"%s\" for writing."
-msgstr ""
+msgstr "Ne eblis malfermi la dosieron \"%s\" por skribi."
 
-#: plugins/elements/gstfilesink.c:441
 #, c-format
 msgid "Error closing file \"%s\"."
-msgstr ""
+msgstr "Eraro dum fermado de la dosiero \"%s\"."
 
-#: plugins/elements/gstfilesink.c:588
 #, c-format
 msgid "Error while seeking in file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:595 plugins/elements/gstfilesink.c:658
 #, c-format
 msgid "Error while writing to file \"%s\"."
-msgstr ""
+msgstr "Eraro dum skribo al la dosiero \"%s\"."
 
-#: plugins/elements/gstfilesrc.c:520
 msgid "No file name specified for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:532 plugins/elements/gstqueue2.c:1399
 #, c-format
 msgid "Could not open file \"%s\" for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:541
 #, c-format
 msgid "Could not get info on \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:548
 #, c-format
 msgid "\"%s\" is a directory."
-msgstr ""
+msgstr "\"%s\" estas dosierujo."
 
-#: plugins/elements/gstfilesrc.c:555
 #, c-format
 msgid "File \"%s\" is a socket."
 msgstr ""
 
-#: plugins/elements/gstidentity.c:687
 msgid "Failed after iterations as requested."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1385
 msgid "No Temp directory specified."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1391
 #, c-format
 msgid "Could not create temp file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1772
 msgid "Error while writing to download file."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:203
 msgid "caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:204
 msgid "detected capabilities in stream"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:207
 msgid "minimum"
-msgstr ""
+msgstr "minimumo"
 
-#: plugins/elements/gsttypefindelement.c:212
 msgid "maximum"
-msgstr ""
+msgstr "maksimumo"
 
-#: plugins/elements/gsttypefindelement.c:217
 msgid "force caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:218
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:956
 msgid "Stream contains no data."
 msgstr ""
 
-#: tools/gst-inspect.c:267
 msgid "Implemented Interfaces:\n"
 msgstr ""
 
-#: tools/gst-inspect.c:353
 msgid "readable"
-msgstr ""
+msgstr "legeble"
 
-#: tools/gst-inspect.c:357
 msgid "writable"
-msgstr ""
+msgstr "skribeble"
 
-#: tools/gst-inspect.c:361
 msgid "controllable"
-msgstr ""
+msgstr "regeble"
 
-#: tools/gst-inspect.c:365
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
 msgstr ""
 
-#: tools/gst-inspect.c:367
 msgid "changeable only in NULL, READY or PAUSED state"
 msgstr ""
 
-#: tools/gst-inspect.c:369
 msgid "changeable only in NULL or READY state"
 msgstr ""
 
-#: tools/gst-inspect.c:1010
 msgid "Blacklisted files:"
 msgstr ""
 
-#: tools/gst-inspect.c:1022 tools/gst-inspect.c:1114
 msgid "Total count: "
 msgstr ""
 
-#: tools/gst-inspect.c:1023
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1115
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d kromprogramo"
+msgstr[1] "%d kromprogramoj"
 
-#: tools/gst-inspect.c:1118
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1123
 #, c-format
 msgid "%d feature"
 msgid_plural "%d features"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d trajto"
+msgstr[1] "%d trajtoj"
 
-#: tools/gst-inspect.c:1543
 msgid "Print all elements"
-msgstr ""
+msgstr "Eligi ĉiujn elementojn"
 
-#: tools/gst-inspect.c:1545
 msgid "Print list of blacklisted files"
 msgstr ""
 
-#: tools/gst-inspect.c:1547
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
 "plugins provide.\n"
@@ -1245,236 +964,198 @@
 "automatic plugin installation mechanisms"
 msgstr ""
 
-#: tools/gst-inspect.c:1552
 msgid "List the plugin contents"
 msgstr ""
 
-#: tools/gst-inspect.c:1555
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
 
-#: tools/gst-inspect.c:1658
 #, c-format
 msgid "Could not load plugin file: %s\n"
 msgstr ""
 
-#: tools/gst-inspect.c:1663
 #, c-format
 msgid "No such element or plugin '%s'\n"
 msgstr ""
 
-#: tools/gst-launch.c:290
 msgid "Index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:543
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:547
 #, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:551
 #, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:555
 #, c-format
 msgid "Got message #%u (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:587
 #, c-format
 msgid "Got EOS from element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:596
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:599
 #, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:602
 #, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:605
 msgid "FOUND TAG\n"
 msgstr ""
 
-#: tools/gst-launch.c:620
+#, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
 msgstr ""
+"INFORMO:\n"
+"%s\n"
 
-#: tools/gst-launch.c:637
 #, c-format
 msgid "WARNING: from element %s: %s\n"
-msgstr ""
+msgstr "AVERTO: de elemento %s: %s\n"
 
-#: tools/gst-launch.c:667
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
-#: tools/gst-launch.c:684
 msgid "buffering..."
-msgstr ""
+msgstr "bufrado..."
 
-#: tools/gst-launch.c:695
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:703
 msgid "Buffering, setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:712
 msgid "Redistribute latency...\n"
 msgstr ""
 
-#: tools/gst-launch.c:723
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
 msgstr ""
 
-#: tools/gst-launch.c:739
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:750
-#, c-format
+#, fuzzy, c-format
 msgid "Missing element: %s\n"
-msgstr ""
+msgstr "neniu elemento \"%s\""
 
-#: tools/gst-launch.c:831
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-#: tools/gst-launch.c:833
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
-#: tools/gst-launch.c:835
 msgid "Do not print any progress information"
 msgstr ""
 
-#: tools/gst-launch.c:837
 msgid "Output messages"
 msgstr ""
 
-#: tools/gst-launch.c:839
 msgid "Do not output status information of TYPE"
 msgstr ""
 
-#: tools/gst-launch.c:839
 msgid "TYPE1,TYPE2,..."
-msgstr ""
+msgstr "TIPO1,TIPO2,..."
 
-#: tools/gst-launch.c:841
 msgid "Do not install a fault handler"
 msgstr ""
 
-#: tools/gst-launch.c:843
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-
-#: tools/gst-launch.c:845
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
-#: tools/gst-launch.c:847
 msgid "Gather and print index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:917
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
 msgstr ""
 
-#: tools/gst-launch.c:921
 msgid "ERROR: pipeline could not be constructed.\n"
 msgstr ""
 
-#: tools/gst-launch.c:925
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:948
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
 msgstr ""
 
-#: tools/gst-launch.c:974 tools/gst-launch.c:1050
 msgid "Setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:979
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr ""
 
-#: tools/gst-launch.c:984
 msgid "Pipeline is live and does not need PREROLL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:988
 msgid "Pipeline is PREROLLING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:991 tools/gst-launch.c:1004
 msgid "ERROR: pipeline doesn't want to preroll.\n"
 msgstr ""
 
-#: tools/gst-launch.c:997
 msgid "Pipeline is PREROLLED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1009
 msgid "Setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1016
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1030
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
-#: tools/gst-launch.c:1033
 msgid "Waiting for EOS...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1038
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1040
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
-#: tools/gst-launch.c:1047
 msgid "Execution ended after %"
 msgstr ""
 
-#: tools/gst-launch.c:1058
 msgid "Setting pipeline to READY ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1068
 msgid "Setting pipeline to NULL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1073
 msgid "Freeing pipeline ...\n"
 msgstr ""
+
+#~ msgid "FILE"
+#~ msgstr "DOSIERO"
diff --git a/po/es.gmo b/po/es.gmo
index be7d53b..0eefca6 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 2ffde89..35aad0d 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,21 +1,21 @@
-# translation of gstreamer-0.10.30.3.po to Español
+# translation of gstreamer-0.10.32.2.po to Español
 # spanish translation for gstreamer
 # This file is put in the public domain.
-# Jorge González González <aloriel@gmail.com>, 2009, 2010.
+# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.10.30.3\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: 2010-11-01 18:11+0100\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2011-10-02 15:45+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 msgid "Print the GStreamer version"
 msgstr "Imprimir la versión de GStreamer"
@@ -410,12 +410,11 @@
 msgid "URI to the copyright notice of the data"
 msgstr "URI a la nota de derechos de autor de los datos"
 
-#, fuzzy
 msgid "encoded by"
-msgstr "codificador"
+msgstr "codificado por"
 
 msgid "name of the encoding person or organization"
-msgstr ""
+msgstr "Nombre de la persona u organización que lo codificó"
 
 msgid "contact"
 msgstr "contacto"
@@ -558,9 +557,17 @@
 msgid "language code"
 msgstr "código de idioma"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "código de idioma para este flujo, ajustándose a ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "código de idioma"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "imagen"
 
@@ -1039,7 +1046,7 @@
 msgstr "No existe el elemento o complemento «%s»\n"
 
 msgid "Index statistics"
-msgstr ""
+msgstr "índice de las estadísticas"
 
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
@@ -1076,6 +1083,18 @@
 msgid "FOUND TAG\n"
 msgstr "ETIQUETA ENCONTRADA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ETIQUETA ENCONTRADA      : encontrada por el elemento «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETIQUETA ENCONTRADA      : encontrada por el objeto «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ETIQUETA ENCONTRADA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1119,6 +1138,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de salida (también conocidos como metadatos)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Información de estado de la salida y notificaciones de las propiedades"
 
@@ -1137,14 +1159,11 @@
 msgid "Do not install a fault handler"
 msgstr "No instalar un manejador predeterminado"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Imprimir la traza de asignaciones (si se activó al compilar)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Forzar EOS en las fuentes antes de cerrar la tubería"
 
 msgid "Gather and print index statistics"
-msgstr ""
+msgstr "Obtener y mostrar el índice de las estadísticas"
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
@@ -1208,6 +1227,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Liberando la tubería…\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Imprimir la traza de asignaciones (si se activó al compilar)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Uso: gst-xmllaunch <archivo.xml> [ propiedad.del.elemento=valor … ]\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index b5e28dd..f78c38f 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 5231ffc..2609086 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-03-25 13:10+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -561,9 +561,17 @@
 msgid "language code"
 msgstr "hizkuntza-kodea"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "korronte honen hizkuntza-kodea, ISO-639-1en arabera"
 
+#, fuzzy
+msgid "language name"
+msgstr "hizkuntza-kodea"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "irudia"
 
@@ -1074,6 +1082,18 @@
 msgid "FOUND TAG\n"
 msgstr "ETIKETA AURKITU DA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ETIKETA AURKITU DA: \"%s\" elementuak aurkitu du.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETIKETA AURKITU DA: \"%s\" objektuak aurkitu du.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ETIKETA AURKITU DA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1116,6 +1136,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Erakutsi etiketak (metadatu gisa ere ezagutzen direnak)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Erakutsi egoerari buruzko informazioa eta propietateen jakinarazpenak"
 
@@ -1134,9 +1157,6 @@
 msgid "Do not install a fault handler"
 msgstr "Ez instalatu akats-maneiatzailerik"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Inprimatu esleipenen segimendua (konpilatzean gaitu bada)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Derrigortu EOS iturburuetan kanalizazioa itzali aurretik"
 
@@ -1205,6 +1225,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Kanalizazioa askatzen...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Inprimatu esleipenen segimendua (konpilatzean gaitu bada)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Erabilera: gst-xmllaunch <fitxategia.xml> [ elementua."
diff --git a/po/fi.gmo b/po/fi.gmo
index 7af52a8..8e3badc 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index d6ae79e..f55c432 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-17 23:10+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -554,9 +554,17 @@
 msgid "language code"
 msgstr "kielikoodi"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "tämän virran kielikoodi ISO-639-1-standardin mukaisesti"
 
+#, fuzzy
+msgid "language name"
+msgstr "kielikoodi"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "kuva"
 
@@ -1068,6 +1076,18 @@
 msgid "FOUND TAG\n"
 msgstr "LÖYTI MERKINTÄ\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "LÖYTYI MERKINTÄ: sen löysi elementti ”%s”.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "LÖYTYI MERKINTÄ: sen löysi olio ”%s”.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "LÖYTI MERKINTÄ\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1109,6 +1129,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tulostemerkinnät (tunnetaan myös metadatana)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Tulostetilatiedot ja ominaisuushuomiot"
 
@@ -1127,9 +1150,6 @@
 msgid "Do not install a fault handler"
 msgstr "Älä asenna virheenkäsittelintä"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Tulosta varausjälki (jos valittu käännöksen yhteydessä)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Pakota virran-loppu lähteille ennen liukuhihan sammuttamista"
 
@@ -1200,6 +1220,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Vapautetaan liukuhihna...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Tulosta varausjälki (jos valittu käännöksen yhteydessä)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Käyttö: gst-xmllaunch <tiedosto.xml> [ elementti.ominaisuus=arvo ... ]\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index b578c88..d89212c 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index a53d432..955fc28 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-28 09:34+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -554,9 +554,17 @@
 msgid "language code"
 msgstr "code linguistique"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "code linguistique du flux, selon la norme ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "code linguistique"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "image"
 
@@ -1072,6 +1080,18 @@
 msgid "FOUND TAG\n"
 msgstr "BALISE TROUVÉE\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "BALISE TROUVÉE  : découverte par l'élément « %s ».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "BALISE TROUVÉE  : découverte par l'objet « %s ».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "BALISE TROUVÉE\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1113,6 +1133,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Affiche les balises (aussi connues sous le nom de métadonnées)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Affiche des informations d'état et des notifications de propriétés"
 
@@ -1131,9 +1154,6 @@
 msgid "Do not install a fault handler"
 msgstr "N'installe pas de gestionnaire de dysfonctionnement"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Affiche les traces d'allocations (si activées lors de la compilation)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Force l'EOS sur les sources avant de fermer le pipeline"
 
@@ -1202,6 +1222,10 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Libération du pipeline...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Affiche les traces d'allocations (si activées lors de la compilation)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Utilisation : gst-xmllaunch <fichier.xml> [ élément."
diff --git a/po/gl.gmo b/po/gl.gmo
index fc60820..ceb2120 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 97c4bd3..67a24e3 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-09-05 12:49+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -551,9 +551,17 @@
 msgid "language code"
 msgstr "código de idioma"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "código de idioma para este fluxo, axustándose a ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "código de idioma"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "imaxe"
 
@@ -1065,6 +1073,18 @@
 msgid "FOUND TAG\n"
 msgstr "ETIQUETA ENCONTRADA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ATOPADA ETIQUETA      : atopada polo elemento «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETIQUETA ENCONTRADA      : encontrada polo obxecto «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ETIQUETA ENCONTRADA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1108,6 +1128,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Etiquetas de saída (tamén coñecido como metadatos)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Información do estado da saída e notificacións das propiedades"
 
@@ -1126,9 +1149,6 @@
 msgid "Do not install a fault handler"
 msgstr "Non instalar un manexador predeterminado"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Imprimir a traza de asignacións (se foi activada ao compilar)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Forzar EOS nas orixes antes de pechar a canalización"
 
@@ -1197,6 +1217,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Liberando a tubería...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Imprimir a traza de asignacións (se foi activada ao compilar)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Uso: gst-xmllaunch <ficheiro.xml> [ propiedade.do.elemento=valor … ]\n"
diff --git a/po/gstreamer-0.11.pot b/po/gstreamer-1.0.pot
similarity index 75%
rename from po/gstreamer-0.11.pot
rename to po/gstreamer-1.0.pot
index 4fb3434..5c20836 100644
--- a/po/gstreamer-0.11.pot
+++ b/po/gstreamer-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.11.1\n"
+"Project-Id-Version: gstreamer 0.11.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,828 +17,836 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: gst/gst.c:310
+#: gst/gst.c:311
 msgid "Print the GStreamer version"
 msgstr ""
 
-#: gst/gst.c:312
+#: gst/gst.c:313
 msgid "Make all warnings fatal"
 msgstr ""
 
-#: gst/gst.c:316
+#: gst/gst.c:317
 msgid "Print available debug categories and exit"
 msgstr ""
 
-#: gst/gst.c:320
+#: gst/gst.c:321
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
 
-#: gst/gst.c:322
+#: gst/gst.c:323
 msgid "LEVEL"
 msgstr ""
 
-#: gst/gst.c:324
+#: gst/gst.c:325
 msgid ""
 "Comma-separated list of category_name:level pairs to set specific levels for "
 "the individual categories. Example: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 msgstr ""
 
-#: gst/gst.c:327
+#: gst/gst.c:328
 msgid "LIST"
 msgstr ""
 
-#: gst/gst.c:329
+#: gst/gst.c:330
 msgid "Disable colored debugging output"
 msgstr ""
 
-#: gst/gst.c:332
+#: gst/gst.c:333
 msgid "Disable debugging"
 msgstr ""
 
-#: gst/gst.c:336
+#: gst/gst.c:337
 msgid "Enable verbose plugin loading diagnostics"
 msgstr ""
 
-#: gst/gst.c:340
+#: gst/gst.c:341
 msgid "Colon-separated paths containing plugins"
 msgstr ""
 
-#: gst/gst.c:340
+#: gst/gst.c:341
 msgid "PATHS"
 msgstr ""
 
-#: gst/gst.c:343
+#: gst/gst.c:344
 msgid ""
 "Comma-separated list of plugins to preload in addition to the list stored in "
 "environment variable GST_PLUGIN_PATH"
 msgstr ""
 
-#: gst/gst.c:345
+#: gst/gst.c:346
 msgid "PLUGINS"
 msgstr ""
 
-#: gst/gst.c:348
+#: gst/gst.c:349
 msgid "Disable trapping of segmentation faults during plugin loading"
 msgstr ""
 
-#: gst/gst.c:353
+#: gst/gst.c:354
 msgid "Disable updating the registry"
 msgstr ""
 
-#: gst/gst.c:358
+#: gst/gst.c:359
 msgid "Disable spawning a helper process while scanning the registry"
 msgstr ""
 
-#: gst/gst.c:385
+#: gst/gst.c:364
 msgid "GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:386
+#: gst/gst.c:365
 msgid "Show GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:956
+#: gst/gst.c:925
 msgid "Unknown option"
 msgstr ""
 
-#: gst/gsterror.c:148
+#: gst/gsterror.c:132
 msgid "GStreamer encountered a general core library error."
 msgstr ""
 
-#: gst/gsterror.c:150 gst/gsterror.c:192 gst/gsterror.c:216 gst/gsterror.c:256
+#: gst/gsterror.c:134 gst/gsterror.c:176 gst/gsterror.c:200 gst/gsterror.c:240
 msgid ""
 "GStreamer developers were too lazy to assign an error code to this error."
 msgstr ""
 
-#: gst/gsterror.c:153
+#: gst/gsterror.c:137
 msgid "Internal GStreamer error: code not implemented."
 msgstr ""
 
-#: gst/gsterror.c:155
+#: gst/gsterror.c:139
 msgid ""
 "GStreamer error: state change failed and some element failed to post a "
 "proper error message with the reason for the failure."
 msgstr ""
 
-#: gst/gsterror.c:158
+#: gst/gsterror.c:142
 msgid "Internal GStreamer error: pad problem."
 msgstr ""
 
-#: gst/gsterror.c:160
+#: gst/gsterror.c:144
 msgid "Internal GStreamer error: thread problem."
 msgstr ""
 
-#: gst/gsterror.c:162
+#: gst/gsterror.c:146
 msgid "Internal GStreamer error: negotiation problem."
 msgstr ""
 
-#: gst/gsterror.c:164
+#: gst/gsterror.c:148
 msgid "Internal GStreamer error: event problem."
 msgstr ""
 
-#: gst/gsterror.c:166
+#: gst/gsterror.c:150
 msgid "Internal GStreamer error: seek problem."
 msgstr ""
 
-#: gst/gsterror.c:168
+#: gst/gsterror.c:152
 msgid "Internal GStreamer error: caps problem."
 msgstr ""
 
-#: gst/gsterror.c:170
+#: gst/gsterror.c:154
 msgid "Internal GStreamer error: tag problem."
 msgstr ""
 
-#: gst/gsterror.c:172
+#: gst/gsterror.c:156
 msgid "Your GStreamer installation is missing a plug-in."
 msgstr ""
 
-#: gst/gsterror.c:174
+#: gst/gsterror.c:158
 msgid "Internal GStreamer error: clock problem."
 msgstr ""
 
-#: gst/gsterror.c:176
+#: gst/gsterror.c:160
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
 "disabled."
 msgstr ""
 
-#: gst/gsterror.c:190
+#: gst/gsterror.c:174
 msgid "GStreamer encountered a general supporting library error."
 msgstr ""
 
-#: gst/gsterror.c:195
+#: gst/gsterror.c:179
 msgid "Could not initialize supporting library."
 msgstr ""
 
-#: gst/gsterror.c:197
+#: gst/gsterror.c:181
 msgid "Could not close supporting library."
 msgstr ""
 
-#: gst/gsterror.c:199
+#: gst/gsterror.c:183
 msgid "Could not configure supporting library."
 msgstr ""
 
-#: gst/gsterror.c:201
+#: gst/gsterror.c:185
 msgid "Encoding error."
 msgstr ""
 
-#: gst/gsterror.c:214
+#: gst/gsterror.c:198
 msgid "GStreamer encountered a general resource error."
 msgstr ""
 
-#: gst/gsterror.c:219
+#: gst/gsterror.c:203
 msgid "Resource not found."
 msgstr ""
 
-#: gst/gsterror.c:221
+#: gst/gsterror.c:205
 msgid "Resource busy or not available."
 msgstr ""
 
-#: gst/gsterror.c:223
+#: gst/gsterror.c:207
 msgid "Could not open resource for reading."
 msgstr ""
 
-#: gst/gsterror.c:225
+#: gst/gsterror.c:209
 msgid "Could not open resource for writing."
 msgstr ""
 
-#: gst/gsterror.c:227
+#: gst/gsterror.c:211
 msgid "Could not open resource for reading and writing."
 msgstr ""
 
-#: gst/gsterror.c:229
+#: gst/gsterror.c:213
 msgid "Could not close resource."
 msgstr ""
 
-#: gst/gsterror.c:231
+#: gst/gsterror.c:215
 msgid "Could not read from resource."
 msgstr ""
 
-#: gst/gsterror.c:233
+#: gst/gsterror.c:217
 msgid "Could not write to resource."
 msgstr ""
 
-#: gst/gsterror.c:235
+#: gst/gsterror.c:219
 msgid "Could not perform seek on resource."
 msgstr ""
 
-#: gst/gsterror.c:237
+#: gst/gsterror.c:221
 msgid "Could not synchronize on resource."
 msgstr ""
 
-#: gst/gsterror.c:239
+#: gst/gsterror.c:223
 msgid "Could not get/set settings from/on resource."
 msgstr ""
 
-#: gst/gsterror.c:241
+#: gst/gsterror.c:225
 msgid "No space left on the resource."
 msgstr ""
 
-#: gst/gsterror.c:254
+#: gst/gsterror.c:238
 msgid "GStreamer encountered a general stream error."
 msgstr ""
 
-#: gst/gsterror.c:259
+#: gst/gsterror.c:243
 msgid "Element doesn't implement handling of this stream. Please file a bug."
 msgstr ""
 
-#: gst/gsterror.c:262
+#: gst/gsterror.c:246
 msgid "Could not determine type of stream."
 msgstr ""
 
-#: gst/gsterror.c:264
+#: gst/gsterror.c:248
 msgid "The stream is of a different type than handled by this element."
 msgstr ""
 
-#: gst/gsterror.c:267
+#: gst/gsterror.c:251
 msgid "There is no codec present that can handle the stream's type."
 msgstr ""
 
-#: gst/gsterror.c:269
+#: gst/gsterror.c:253
 msgid "Could not decode stream."
 msgstr ""
 
-#: gst/gsterror.c:271
+#: gst/gsterror.c:255
 msgid "Could not encode stream."
 msgstr ""
 
-#: gst/gsterror.c:273
+#: gst/gsterror.c:257
 msgid "Could not demultiplex stream."
 msgstr ""
 
-#: gst/gsterror.c:275
+#: gst/gsterror.c:259
 msgid "Could not multiplex stream."
 msgstr ""
 
-#: gst/gsterror.c:277
+#: gst/gsterror.c:261
 msgid "The stream is in the wrong format."
 msgstr ""
 
-#: gst/gsterror.c:279
+#: gst/gsterror.c:263
 msgid "The stream is encrypted and decryption is not supported."
 msgstr ""
 
-#: gst/gsterror.c:281
+#: gst/gsterror.c:265
 msgid ""
 "The stream is encrypted and can't be decrypted because no suitable key has "
 "been supplied."
 msgstr ""
 
-#: gst/gsterror.c:321
+#: gst/gsterror.c:305
 #, c-format
 msgid "No error message for domain %s."
 msgstr ""
 
-#: gst/gsterror.c:329
+#: gst/gsterror.c:313
 #, c-format
 msgid "No standard error message for domain %s and code %d."
 msgstr ""
 
-#: gst/gstpipeline.c:529
+#: gst/gstpipeline.c:525
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
-#: gst/gsttaglist.c:98
+#: gst/gsttaglist.c:101
 msgid "title"
 msgstr ""
 
-#: gst/gsttaglist.c:98
+#: gst/gsttaglist.c:101
 msgid "commonly used title"
 msgstr ""
 
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:104
 msgid "title sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:104
 msgid "commonly used title for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:104
+#: gst/gsttaglist.c:107
 msgid "artist"
 msgstr ""
 
-#: gst/gsttaglist.c:105
+#: gst/gsttaglist.c:108
 msgid "person(s) responsible for the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:109
+#: gst/gsttaglist.c:112
 msgid "artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:110
+#: gst/gsttaglist.c:113
 msgid "person(s) responsible for the recording for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:113
+#: gst/gsttaglist.c:116
 msgid "album"
 msgstr ""
 
-#: gst/gsttaglist.c:114
+#: gst/gsttaglist.c:117
 msgid "album containing this data"
 msgstr ""
 
-#: gst/gsttaglist.c:117
+#: gst/gsttaglist.c:120
 msgid "album sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:118
+#: gst/gsttaglist.c:121
 msgid "album containing this data for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:121
+#: gst/gsttaglist.c:124
 msgid "album artist"
 msgstr ""
 
-#: gst/gsttaglist.c:122
+#: gst/gsttaglist.c:125
 msgid "The artist of the entire album, as it should be displayed"
 msgstr ""
 
-#: gst/gsttaglist.c:126
+#: gst/gsttaglist.c:129
 msgid "album artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:127
+#: gst/gsttaglist.c:130
 msgid "The artist of the entire album, as it should be sorted"
 msgstr ""
 
-#: gst/gsttaglist.c:129
+#: gst/gsttaglist.c:132
 msgid "date"
 msgstr ""
 
-#: gst/gsttaglist.c:129
+#: gst/gsttaglist.c:132
 msgid "date the data was created (as a GDate structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:131
+#: gst/gsttaglist.c:134
 msgid "datetime"
 msgstr ""
 
-#: gst/gsttaglist.c:132
+#: gst/gsttaglist.c:135
 msgid "date and time the data was created (as a GstDateTime structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:136
+#: gst/gsttaglist.c:139
 msgid "genre"
 msgstr ""
 
-#: gst/gsttaglist.c:137
+#: gst/gsttaglist.c:140
 msgid "genre this data belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:140
+#: gst/gsttaglist.c:143
 msgid "comment"
 msgstr ""
 
-#: gst/gsttaglist.c:141
+#: gst/gsttaglist.c:144
 msgid "free text commenting the data"
 msgstr ""
 
-#: gst/gsttaglist.c:144
+#: gst/gsttaglist.c:147
 msgid "extended comment"
 msgstr ""
 
-#: gst/gsttaglist.c:145
+#: gst/gsttaglist.c:148
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
 
-#: gst/gsttaglist.c:149
+#: gst/gsttaglist.c:152
 msgid "track number"
 msgstr ""
 
-#: gst/gsttaglist.c:150
+#: gst/gsttaglist.c:153
 msgid "track number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:153
+#: gst/gsttaglist.c:156
 msgid "track count"
 msgstr ""
 
-#: gst/gsttaglist.c:154
+#: gst/gsttaglist.c:157
 msgid "count of tracks inside collection this track belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:158
+#: gst/gsttaglist.c:161
 msgid "disc number"
 msgstr ""
 
-#: gst/gsttaglist.c:159
+#: gst/gsttaglist.c:162
 msgid "disc number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:162
+#: gst/gsttaglist.c:165
 msgid "disc count"
 msgstr ""
 
-#: gst/gsttaglist.c:163
+#: gst/gsttaglist.c:166
 msgid "count of discs inside collection this disc belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:167
+#: gst/gsttaglist.c:170
 msgid "location"
 msgstr ""
 
-#: gst/gsttaglist.c:167
+#: gst/gsttaglist.c:170
 msgid ""
 "Origin of media as a URI (location, where the original of the file or stream "
 "is hosted)"
 msgstr ""
 
-#: gst/gsttaglist.c:172
+#: gst/gsttaglist.c:175
 msgid "homepage"
 msgstr ""
 
-#: gst/gsttaglist.c:173
+#: gst/gsttaglist.c:176
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
 
-#: gst/gsttaglist.c:176
+#: gst/gsttaglist.c:179
 msgid "description"
 msgstr ""
 
-#: gst/gsttaglist.c:176
+#: gst/gsttaglist.c:179
 msgid "short text describing the content of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:182
 msgid "version"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:182
 msgid "version of this data"
 msgstr ""
 
-#: gst/gsttaglist.c:180
+#: gst/gsttaglist.c:183
 msgid "ISRC"
 msgstr ""
 
-#: gst/gsttaglist.c:182
+#: gst/gsttaglist.c:185
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
 
-#: gst/gsttaglist.c:186
+#: gst/gsttaglist.c:189
 msgid "organization"
 msgstr ""
 
-#: gst/gsttaglist.c:188
+#: gst/gsttaglist.c:191
 msgid "copyright"
 msgstr ""
 
-#: gst/gsttaglist.c:188
+#: gst/gsttaglist.c:191
 msgid "copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:190
+#: gst/gsttaglist.c:193
 msgid "copyright uri"
 msgstr ""
 
-#: gst/gsttaglist.c:191
+#: gst/gsttaglist.c:194
 msgid "URI to the copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:193
+#: gst/gsttaglist.c:196
 msgid "encoded by"
 msgstr ""
 
-#: gst/gsttaglist.c:193
+#: gst/gsttaglist.c:196
 msgid "name of the encoding person or organization"
 msgstr ""
 
-#: gst/gsttaglist.c:197
+#: gst/gsttaglist.c:200
 msgid "contact"
 msgstr ""
 
-#: gst/gsttaglist.c:197
+#: gst/gsttaglist.c:200
 msgid "contact information"
 msgstr ""
 
-#: gst/gsttaglist.c:199
+#: gst/gsttaglist.c:202
 msgid "license"
 msgstr ""
 
-#: gst/gsttaglist.c:199
+#: gst/gsttaglist.c:202
 msgid "license of data"
 msgstr ""
 
-#: gst/gsttaglist.c:201
+#: gst/gsttaglist.c:204
 msgid "license uri"
 msgstr ""
 
-#: gst/gsttaglist.c:202
+#: gst/gsttaglist.c:205
 msgid "URI to the license of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:205
+#: gst/gsttaglist.c:208
 msgid "performer"
 msgstr ""
 
-#: gst/gsttaglist.c:206
+#: gst/gsttaglist.c:209
 msgid "person(s) performing"
 msgstr ""
 
-#: gst/gsttaglist.c:209
+#: gst/gsttaglist.c:212
 msgid "composer"
 msgstr ""
 
-#: gst/gsttaglist.c:210
+#: gst/gsttaglist.c:213
 msgid "person(s) who composed the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:214
+#: gst/gsttaglist.c:217
 msgid "duration"
 msgstr ""
 
-#: gst/gsttaglist.c:214
+#: gst/gsttaglist.c:217
 msgid "length in GStreamer time units (nanoseconds)"
 msgstr ""
 
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:220
 msgid "codec"
 msgstr ""
 
-#: gst/gsttaglist.c:218
+#: gst/gsttaglist.c:221
 msgid "codec the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:221
+#: gst/gsttaglist.c:224
 msgid "video codec"
 msgstr ""
 
-#: gst/gsttaglist.c:221
+#: gst/gsttaglist.c:224
 msgid "codec the video data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:227
 msgid "audio codec"
 msgstr ""
 
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:227
 msgid "codec the audio data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:230
 msgid "subtitle codec"
 msgstr ""
 
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:230
 msgid "codec the subtitle data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:229
+#: gst/gsttaglist.c:232
 msgid "container format"
 msgstr ""
 
-#: gst/gsttaglist.c:230
+#: gst/gsttaglist.c:233
 msgid "container format the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:232
+#: gst/gsttaglist.c:235
 msgid "bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:232
+#: gst/gsttaglist.c:235
 msgid "exact or average bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:234
+#: gst/gsttaglist.c:237
 msgid "nominal bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:234
+#: gst/gsttaglist.c:237
 msgid "nominal bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:236
+#: gst/gsttaglist.c:239
 msgid "minimum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:236
+#: gst/gsttaglist.c:239
 msgid "minimum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:238
+#: gst/gsttaglist.c:241
 msgid "maximum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:238
+#: gst/gsttaglist.c:241
 msgid "maximum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:244
 msgid "encoder"
 msgstr ""
 
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:244
 msgid "encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:247
 msgid "encoder version"
 msgstr ""
 
-#: gst/gsttaglist.c:245
+#: gst/gsttaglist.c:248
 msgid "version of the encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:250
 msgid "serial"
 msgstr ""
 
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:250
 msgid "serial number of track"
 msgstr ""
 
-#: gst/gsttaglist.c:249
+#: gst/gsttaglist.c:252
 msgid "replaygain track gain"
 msgstr ""
 
-#: gst/gsttaglist.c:249
+#: gst/gsttaglist.c:252
 msgid "track gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:251
+#: gst/gsttaglist.c:254
 msgid "replaygain track peak"
 msgstr ""
 
-#: gst/gsttaglist.c:251
+#: gst/gsttaglist.c:254
 msgid "peak of the track"
 msgstr ""
 
-#: gst/gsttaglist.c:253
+#: gst/gsttaglist.c:256
 msgid "replaygain album gain"
 msgstr ""
 
-#: gst/gsttaglist.c:253
+#: gst/gsttaglist.c:256
 msgid "album gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:255
+#: gst/gsttaglist.c:258
 msgid "replaygain album peak"
 msgstr ""
 
-#: gst/gsttaglist.c:255
+#: gst/gsttaglist.c:258
 msgid "peak of the album"
 msgstr ""
 
-#: gst/gsttaglist.c:257
+#: gst/gsttaglist.c:260
 msgid "replaygain reference level"
 msgstr ""
 
-#: gst/gsttaglist.c:258
+#: gst/gsttaglist.c:261
 msgid "reference level of track and album gain values"
 msgstr ""
 
-#: gst/gsttaglist.c:260
+#: gst/gsttaglist.c:263
 msgid "language code"
 msgstr ""
 
-#: gst/gsttaglist.c:261
-msgid "language code for this stream, conforming to ISO-639-1"
+#: gst/gsttaglist.c:264
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr ""
 
-#: gst/gsttaglist.c:263
+#: gst/gsttaglist.c:267
+msgid "language name"
+msgstr ""
+
+#: gst/gsttaglist.c:268
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
+#: gst/gsttaglist.c:270
 msgid "image"
 msgstr ""
 
-#: gst/gsttaglist.c:263
+#: gst/gsttaglist.c:270
 msgid "image related to this stream"
 msgstr ""
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-#: gst/gsttaglist.c:266
+#: gst/gsttaglist.c:273
 msgid "preview image"
 msgstr ""
 
-#: gst/gsttaglist.c:266
+#: gst/gsttaglist.c:273
 msgid "preview image related to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:275
 msgid "attachment"
 msgstr ""
 
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:275
 msgid "file attached to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:271
+#: gst/gsttaglist.c:278
 msgid "beats per minute"
 msgstr ""
 
-#: gst/gsttaglist.c:271
+#: gst/gsttaglist.c:278
 msgid "number of beats per minute in audio"
 msgstr ""
 
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:280
 msgid "keywords"
 msgstr ""
 
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:280
 msgid "comma separated keywords describing the content"
 msgstr ""
 
-#: gst/gsttaglist.c:276
+#: gst/gsttaglist.c:283
 msgid "geo location name"
 msgstr ""
 
-#: gst/gsttaglist.c:276
+#: gst/gsttaglist.c:283
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
 msgstr ""
 
-#: gst/gsttaglist.c:279
+#: gst/gsttaglist.c:286
 msgid "geo location latitude"
 msgstr ""
 
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:287
 msgid ""
 "geo latitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:284
+#: gst/gsttaglist.c:291
 msgid "geo location longitude"
 msgstr ""
 
-#: gst/gsttaglist.c:285
+#: gst/gsttaglist.c:292
 msgid ""
 "geo longitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:289
+#: gst/gsttaglist.c:296
 msgid "geo location elevation"
 msgstr ""
 
-#: gst/gsttaglist.c:290
+#: gst/gsttaglist.c:297
 msgid ""
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
 
-#: gst/gsttaglist.c:293
+#: gst/gsttaglist.c:300
 msgid "geo location country"
 msgstr ""
 
-#: gst/gsttaglist.c:294
+#: gst/gsttaglist.c:301
 msgid "country (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:297
+#: gst/gsttaglist.c:304
 msgid "geo location city"
 msgstr ""
 
-#: gst/gsttaglist.c:298
+#: gst/gsttaglist.c:305
 msgid "city (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:301
+#: gst/gsttaglist.c:308
 msgid "geo location sublocation"
 msgstr ""
 
-#: gst/gsttaglist.c:302
+#: gst/gsttaglist.c:309
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
 
-#: gst/gsttaglist.c:305
+#: gst/gsttaglist.c:312
 msgid "geo location horizontal error"
 msgstr ""
 
-#: gst/gsttaglist.c:306
+#: gst/gsttaglist.c:313
 msgid "expected error of the horizontal positioning measures (in meters)"
 msgstr ""
 
-#: gst/gsttaglist.c:309
+#: gst/gsttaglist.c:316
 msgid "geo location movement speed"
 msgstr ""
 
-#: gst/gsttaglist.c:310
+#: gst/gsttaglist.c:317
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
 
-#: gst/gsttaglist.c:313
+#: gst/gsttaglist.c:320
 msgid "geo location movement direction"
 msgstr ""
 
-#: gst/gsttaglist.c:314
+#: gst/gsttaglist.c:321
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
 
-#: gst/gsttaglist.c:319
+#: gst/gsttaglist.c:326
 msgid "geo location capture direction"
 msgstr ""
 
-#: gst/gsttaglist.c:320
+#: gst/gsttaglist.c:327
 msgid ""
 "indicates the direction the device is pointing to when capturing  a media. "
 "It is represented as degrees in floating point  representation, 0 means the "
@@ -846,126 +854,126 @@
 msgstr ""
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-#: gst/gsttaglist.c:326
+#: gst/gsttaglist.c:333
 msgid "show name"
 msgstr ""
 
-#: gst/gsttaglist.c:327
+#: gst/gsttaglist.c:334
 msgid "Name of the tv/podcast/series show the media is from"
 msgstr ""
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#: gst/gsttaglist.c:331
+#: gst/gsttaglist.c:338
 msgid "show sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:332
+#: gst/gsttaglist.c:339
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:335
+#: gst/gsttaglist.c:342
 msgid "episode number"
 msgstr ""
 
-#: gst/gsttaglist.c:336
+#: gst/gsttaglist.c:343
 msgid "The episode number in the season the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:339
+#: gst/gsttaglist.c:346
 msgid "season number"
 msgstr ""
 
-#: gst/gsttaglist.c:340
+#: gst/gsttaglist.c:347
 msgid "The season number of the show the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:343
+#: gst/gsttaglist.c:350
 msgid "lyrics"
 msgstr ""
 
-#: gst/gsttaglist.c:343
+#: gst/gsttaglist.c:350
 msgid "The lyrics of the media, commonly used for songs"
 msgstr ""
 
-#: gst/gsttaglist.c:346
+#: gst/gsttaglist.c:353
 msgid "composer sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:347
+#: gst/gsttaglist.c:354
 msgid "person(s) who composed the recording, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:349
+#: gst/gsttaglist.c:356
 msgid "grouping"
 msgstr ""
 
-#: gst/gsttaglist.c:350
+#: gst/gsttaglist.c:357
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
 
-#: gst/gsttaglist.c:354
+#: gst/gsttaglist.c:361
 msgid "user rating"
 msgstr ""
 
-#: gst/gsttaglist.c:355
+#: gst/gsttaglist.c:362
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
 
-#: gst/gsttaglist.c:358
+#: gst/gsttaglist.c:365
 msgid "device manufacturer"
 msgstr ""
 
-#: gst/gsttaglist.c:359
+#: gst/gsttaglist.c:366
 msgid "Manufacturer of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:361
+#: gst/gsttaglist.c:368
 msgid "device model"
 msgstr ""
 
-#: gst/gsttaglist.c:362
+#: gst/gsttaglist.c:369
 msgid "Model of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:364
+#: gst/gsttaglist.c:371
 msgid "application name"
 msgstr ""
 
-#: gst/gsttaglist.c:364
+#: gst/gsttaglist.c:371
 msgid "Application used to create the media"
 msgstr ""
 
-#: gst/gsttaglist.c:366
+#: gst/gsttaglist.c:373
 msgid "application data"
 msgstr ""
 
-#: gst/gsttaglist.c:367
+#: gst/gsttaglist.c:374
 msgid "Arbitrary application data to be serialized into the media"
 msgstr ""
 
-#: gst/gsttaglist.c:369
+#: gst/gsttaglist.c:376
 msgid "image orientation"
 msgstr ""
 
-#: gst/gsttaglist.c:370
+#: gst/gsttaglist.c:377
 msgid "How the image should be rotated or flipped before display"
 msgstr ""
 
-#: gst/gsttaglist.c:409
+#: gst/gsttaglist.c:416
 msgid ", "
 msgstr ""
 
-#: gst/gstutils.c:2445 tools/gst-launch.c:362
+#: gst/gstutils.c:2445 tools/gst-launch.c:365
 #, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
-#: gst/gstutils.c:2447 tools/gst-launch.c:364 tools/gst-launch.c:639
+#: gst/gstutils.c:2447 tools/gst-launch.c:367 tools/gst-launch.c:694
 #, c-format
 msgid ""
 "Additional debug info:\n"
@@ -1040,25 +1048,25 @@
 msgid "empty pipeline not allowed"
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2294
+#: libs/gst/base/gstbasesrc.c:2363
 msgid "Internal clock error."
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2616 libs/gst/base/gstbasesrc.c:2625
-#: libs/gst/base/gstbasesink.c:4054 plugins/elements/gstqueue.c:1244
-#: plugins/elements/gstqueue2.c:2343
+#: libs/gst/base/gstbasesrc.c:2705 libs/gst/base/gstbasesrc.c:2714
+#: libs/gst/base/gstbasesink.c:3715 plugins/elements/gstqueue.c:1175
+#: plugins/elements/gstqueue2.c:2577
 msgid "Internal data flow error."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:2740
+#: libs/gst/base/gstbasesink.c:2697
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3537
+#: libs/gst/base/gstbasesink.c:3104
 msgid "Internal data flow problem."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:4044
+#: libs/gst/base/gstbasesink.c:3705
 msgid "Internal data stream error."
 msgstr ""
 
@@ -1072,45 +1080,45 @@
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:410
+#: plugins/elements/gstfilesink.c:414
 msgid "No file name specified for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:416
+#: plugins/elements/gstfilesink.c:420
 #, c-format
 msgid "Could not open file \"%s\" for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:441
+#: plugins/elements/gstfilesink.c:445
 #, c-format
 msgid "Error closing file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:588
+#: plugins/elements/gstfilesink.c:602
 #, c-format
 msgid "Error while seeking in file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:595 plugins/elements/gstfilesink.c:658
+#: plugins/elements/gstfilesink.c:610 plugins/elements/gstfilesink.c:673
 #, c-format
 msgid "Error while writing to file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:520
+#: plugins/elements/gstfilesrc.c:522
 msgid "No file name specified for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:532 plugins/elements/gstqueue2.c:1399
+#: plugins/elements/gstfilesrc.c:534 plugins/elements/gstqueue2.c:1443
 #, c-format
 msgid "Could not open file \"%s\" for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:541
+#: plugins/elements/gstfilesrc.c:543
 #, c-format
 msgid "Could not get info on \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:548
+#: plugins/elements/gstfilesrc.c:549
 #, c-format
 msgid "\"%s\" is a directory."
 msgstr ""
@@ -1120,124 +1128,124 @@
 msgid "File \"%s\" is a socket."
 msgstr ""
 
-#: plugins/elements/gstidentity.c:687
+#: plugins/elements/gstidentity.c:654
 msgid "Failed after iterations as requested."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1385
+#: plugins/elements/gstqueue2.c:1429
 msgid "No Temp directory specified."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1391
+#: plugins/elements/gstqueue2.c:1435
 #, c-format
 msgid "Could not create temp file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1772
+#: plugins/elements/gstqueue2.c:1817
 msgid "Error while writing to download file."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:203
+#: plugins/elements/gsttypefindelement.c:205
 msgid "caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:204
+#: plugins/elements/gsttypefindelement.c:206
 msgid "detected capabilities in stream"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:207
+#: plugins/elements/gsttypefindelement.c:209
 msgid "minimum"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:212
+#: plugins/elements/gsttypefindelement.c:214
 msgid "maximum"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:217
+#: plugins/elements/gsttypefindelement.c:219
 msgid "force caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:218
+#: plugins/elements/gsttypefindelement.c:220
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:956
+#: plugins/elements/gsttypefindelement.c:1030
 msgid "Stream contains no data."
 msgstr ""
 
-#: tools/gst-inspect.c:267
+#: tools/gst-inspect.c:250
 msgid "Implemented Interfaces:\n"
 msgstr ""
 
-#: tools/gst-inspect.c:353
+#: tools/gst-inspect.c:336
 msgid "readable"
 msgstr ""
 
-#: tools/gst-inspect.c:357
+#: tools/gst-inspect.c:345
 msgid "writable"
 msgstr ""
 
-#: tools/gst-inspect.c:361
+#: tools/gst-inspect.c:349
 msgid "controllable"
 msgstr ""
 
-#: tools/gst-inspect.c:365
+#: tools/gst-inspect.c:353
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
 msgstr ""
 
-#: tools/gst-inspect.c:367
+#: tools/gst-inspect.c:355
 msgid "changeable only in NULL, READY or PAUSED state"
 msgstr ""
 
-#: tools/gst-inspect.c:369
+#: tools/gst-inspect.c:357
 msgid "changeable only in NULL or READY state"
 msgstr ""
 
-#: tools/gst-inspect.c:1010
+#: tools/gst-inspect.c:960
 msgid "Blacklisted files:"
 msgstr ""
 
-#: tools/gst-inspect.c:1022 tools/gst-inspect.c:1114
+#: tools/gst-inspect.c:972 tools/gst-inspect.c:1066
 msgid "Total count: "
 msgstr ""
 
-#: tools/gst-inspect.c:1023
+#: tools/gst-inspect.c:973
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1115
+#: tools/gst-inspect.c:1067
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1118
+#: tools/gst-inspect.c:1070
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1123
+#: tools/gst-inspect.c:1075
 #, c-format
 msgid "%d feature"
 msgid_plural "%d features"
 msgstr[0] ""
 msgstr[1] ""
 
-#: tools/gst-inspect.c:1543
+#: tools/gst-inspect.c:1507
 msgid "Print all elements"
 msgstr ""
 
-#: tools/gst-inspect.c:1545
+#: tools/gst-inspect.c:1509
 msgid "Print list of blacklisted files"
 msgstr ""
 
-#: tools/gst-inspect.c:1547
+#: tools/gst-inspect.c:1511
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
 "plugins provide.\n"
@@ -1245,236 +1253,250 @@
 "automatic plugin installation mechanisms"
 msgstr ""
 
-#: tools/gst-inspect.c:1552
+#: tools/gst-inspect.c:1516
 msgid "List the plugin contents"
 msgstr ""
 
-#: tools/gst-inspect.c:1555
+#: tools/gst-inspect.c:1519
 msgid "Print supported URI schemes, with the elements that implement them"
 msgstr ""
 
-#: tools/gst-inspect.c:1658
+#: tools/gst-inspect.c:1620
 #, c-format
 msgid "Could not load plugin file: %s\n"
 msgstr ""
 
-#: tools/gst-inspect.c:1663
+#: tools/gst-inspect.c:1625
 #, c-format
 msgid "No such element or plugin '%s'\n"
 msgstr ""
 
-#: tools/gst-launch.c:290
+#: tools/gst-launch.c:292
 msgid "Index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:543
+#: tools/gst-launch.c:576
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:547
+#: tools/gst-launch.c:580
 #, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:551
+#: tools/gst-launch.c:584
 #, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:555
+#: tools/gst-launch.c:588
 #, c-format
 msgid "Got message #%u (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:587
+#: tools/gst-launch.c:620
 #, c-format
 msgid "Got EOS from element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:596
+#: tools/gst-launch.c:629
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:599
+#: tools/gst-launch.c:632
 #, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:602
+#: tools/gst-launch.c:635
 #, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:605
+#: tools/gst-launch.c:638
 msgid "FOUND TAG\n"
 msgstr ""
 
-#: tools/gst-launch.c:620
+#: tools/gst-launch.c:652
+#, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#: tools/gst-launch.c:655
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+#: tools/gst-launch.c:658
+msgid "FOUND TOC\n"
+msgstr ""
+
+#: tools/gst-launch.c:675
 #, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
 msgstr ""
 
-#: tools/gst-launch.c:637
+#: tools/gst-launch.c:692
 #, c-format
 msgid "WARNING: from element %s: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:667
+#: tools/gst-launch.c:722
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
-#: tools/gst-launch.c:684
+#: tools/gst-launch.c:739
 msgid "buffering..."
 msgstr ""
 
-#: tools/gst-launch.c:695
+#: tools/gst-launch.c:750
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:703
+#: tools/gst-launch.c:758
 msgid "Buffering, setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:712
+#: tools/gst-launch.c:767
 msgid "Redistribute latency...\n"
 msgstr ""
 
-#: tools/gst-launch.c:723
+#: tools/gst-launch.c:778
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
 msgstr ""
 
-#: tools/gst-launch.c:739
+#: tools/gst-launch.c:794
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:750
+#: tools/gst-launch.c:805
 #, c-format
 msgid "Missing element: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:831
+#: tools/gst-launch.c:887
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-#: tools/gst-launch.c:833
+#: tools/gst-launch.c:889
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
+#: tools/gst-launch.c:891
 msgid "Output status information and property notifications"
 msgstr ""
 
-#: tools/gst-launch.c:835
+#: tools/gst-launch.c:893
 msgid "Do not print any progress information"
 msgstr ""
 
-#: tools/gst-launch.c:837
+#: tools/gst-launch.c:895
 msgid "Output messages"
 msgstr ""
 
-#: tools/gst-launch.c:839
+#: tools/gst-launch.c:897
 msgid "Do not output status information of TYPE"
 msgstr ""
 
-#: tools/gst-launch.c:839
+#: tools/gst-launch.c:897
 msgid "TYPE1,TYPE2,..."
 msgstr ""
 
-#: tools/gst-launch.c:841
+#: tools/gst-launch.c:899
 msgid "Do not install a fault handler"
 msgstr ""
 
-#: tools/gst-launch.c:843
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-
-#: tools/gst-launch.c:845
+#: tools/gst-launch.c:901
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
-#: tools/gst-launch.c:847
+#: tools/gst-launch.c:904
 msgid "Gather and print index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:917
+#: tools/gst-launch.c:966
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
 msgstr ""
 
-#: tools/gst-launch.c:921
+#: tools/gst-launch.c:970
 msgid "ERROR: pipeline could not be constructed.\n"
 msgstr ""
 
-#: tools/gst-launch.c:925
+#: tools/gst-launch.c:974
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:948
+#: tools/gst-launch.c:997
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
 msgstr ""
 
-#: tools/gst-launch.c:974 tools/gst-launch.c:1050
+#: tools/gst-launch.c:1024 tools/gst-launch.c:1100
 msgid "Setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:979
+#: tools/gst-launch.c:1029
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr ""
 
-#: tools/gst-launch.c:984
+#: tools/gst-launch.c:1034
 msgid "Pipeline is live and does not need PREROLL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:988
+#: tools/gst-launch.c:1038
 msgid "Pipeline is PREROLLING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:991 tools/gst-launch.c:1004
+#: tools/gst-launch.c:1041 tools/gst-launch.c:1054
 msgid "ERROR: pipeline doesn't want to preroll.\n"
 msgstr ""
 
-#: tools/gst-launch.c:997
+#: tools/gst-launch.c:1047
 msgid "Pipeline is PREROLLED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1009
+#: tools/gst-launch.c:1059
 msgid "Setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1016
+#: tools/gst-launch.c:1066
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1030
+#: tools/gst-launch.c:1080
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
-#: tools/gst-launch.c:1033
+#: tools/gst-launch.c:1083
 msgid "Waiting for EOS...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1038
+#: tools/gst-launch.c:1088
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1040
+#: tools/gst-launch.c:1090
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
-#: tools/gst-launch.c:1047
+#: tools/gst-launch.c:1097
 msgid "Execution ended after %"
 msgstr ""
 
-#: tools/gst-launch.c:1058
+#: tools/gst-launch.c:1108
 msgid "Setting pipeline to READY ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1068
+#: tools/gst-launch.c:1120
 msgid "Setting pipeline to NULL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1073
+#: tools/gst-launch.c:1125
 msgid "Freeing pipeline ...\n"
 msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index b2aa570..9b56e6c 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index b557851..8d2ff87 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-01 13:39+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -550,9 +550,17 @@
 msgid "language code"
 msgstr "nyelvi kód"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "az adatfolyam ISO-639-1 szabványnak megfelelő nyelvi kódja"
 
+#, fuzzy
+msgid "language name"
+msgstr "nyelvi kód"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "kép"
 
@@ -1060,6 +1068,18 @@
 msgid "FOUND TAG\n"
 msgstr "CÍMKE MEGTALÁLVA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "CÍMKE MEGTALÁLVA: a(z) „%s” elem által.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "CÍMKE MEGTALÁLVA: a(z) „%s” objektum által.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "CÍMKE MEGTALÁLVA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1101,6 +1121,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Kimeneti címkék (metaadatok)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Kimeneti állapotinformációk és tulajdonság-értesítések"
 
@@ -1119,9 +1142,6 @@
 msgid "Do not install a fault handler"
 msgstr "Ne telepítsen hibakezelőt"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Foglalási nyomkövetés kiírása (ha fordításkor engedélyezték)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "EOS kényszerítése a forrásokra az adatcsatorna leállítása előtt"
 
@@ -1190,6 +1210,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Adatcsatorna felszabadítása…\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Foglalási nyomkövetés kiírása (ha fordításkor engedélyezték)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Használat: gst-xmllaunch <fájl.xml> [ elem.tulajdonság=érték … ]\n"
 
diff --git a/po/id.gmo b/po/id.gmo
index 8df32ba..f7f4b6a 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 38b91de..25f4916 100644
--- a/po/id.po
+++ b/po/id.po
@@ -1,13 +1,13 @@
 # Indonesian translations for gstreamer package.
 # This file is put in the public domain.
-# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010.
+# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010-2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.10.29.2\n"
+"Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: 2010-06-29 21:55+0700\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2012-01-28 11:44+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
@@ -153,7 +153,7 @@
 msgstr "Tak dapat mengatur pustaka pendukung."
 
 msgid "Encoding error."
-msgstr ""
+msgstr "Galat penyandian."
 
 msgid "GStreamer encountered a general resource error."
 msgstr "GStreamer menghadapi galat umum sumber daya."
@@ -303,13 +303,11 @@
 msgid "date the data was created (as a GDate structure)"
 msgstr "tanggal data dibuat (menurut struktur GDate)"
 
-#, fuzzy
 msgid "datetime"
-msgstr "tanggal"
+msgstr "tanggalwaktu"
 
-#, fuzzy
 msgid "date and time the data was created (as a GstDateTime structure)"
-msgstr "tanggal data dibuat (menurut struktur GDate)"
+msgstr "tanggal dan waktu data dibuat (menurut struktur GDateTime)"
 
 msgid "genre"
 msgstr "genre"
@@ -405,12 +403,11 @@
 msgid "URI to the copyright notice of the data"
 msgstr "URI ke keterangan hak cipta data"
 
-#, fuzzy
 msgid "encoded by"
-msgstr "penyandi"
+msgstr "disandikan oleh"
 
 msgid "name of the encoding person or organization"
-msgstr ""
+msgstr "nama penyandian orang atau organisasi"
 
 msgid "contact"
 msgstr "kontak"
@@ -553,9 +550,17 @@
 msgid "language code"
 msgstr "kode bahasa"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "kode bahasa arus ini, mengubahnya ke ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "kode bahasa"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "gambar"
 
@@ -653,12 +658,11 @@
 "lokasi di dalam kota tempat media dihasilkan atau dibuat (misalnya "
 "lingkungan)"
 
-#, fuzzy
 msgid "geo location horizontal error"
-msgstr "nama lokasi geografis"
+msgstr "galat horizontal lokasi geografis"
 
 msgid "expected error of the horizontal positioning measures (in meters)"
-msgstr ""
+msgstr "galat yang diharapkan dari pengukuran posisi horizontal (dalam meter)"
 
 msgid "geo location movement speed"
 msgstr "kecepatan gerak lokasi geografis"
@@ -765,19 +769,17 @@
 msgid "Model of the device used to create this media"
 msgstr "Model divais yang digunakan untuk membuat media ini"
 
-#, fuzzy
 msgid "application name"
-msgstr "nama lokasi geografis"
+msgstr "nama aplikasi"
 
-#, fuzzy
 msgid "Application used to create the media"
-msgstr "Model divais yang digunakan untuk membuat media ini"
+msgstr "Aplikasi yang digunakan untuk membuat media"
 
 msgid "application data"
-msgstr ""
+msgstr "data aplikasi"
 
 msgid "Arbitrary application data to be serialized into the media"
-msgstr ""
+msgstr "Data aplikasi wajib yang akan diurutkan dalam media"
 
 msgid "image orientation"
 msgstr "orientasi gambar"
@@ -963,13 +965,13 @@
 msgstr "dapat dikendalikan"
 
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
-msgstr ""
+msgstr "dapat diubah dalam kondisi NULL, READY, PAUSED atau PLAYING"
 
 msgid "changeable only in NULL, READY or PAUSED state"
-msgstr ""
+msgstr "hanya dapat diubah dalam kondisi NULL, READY, atau PAUSED"
 
 msgid "changeable only in NULL or READY state"
-msgstr ""
+msgstr "hanya dapat diubah dalam kondisi NULL atau READY"
 
 msgid "Blacklisted files:"
 msgstr "Berkas yang dilarang:"
@@ -1030,7 +1032,7 @@
 msgstr "Tak ada elemen atau plugin '%s'\n"
 
 msgid "Index statistics"
-msgstr ""
+msgstr "Statistik indeks"
 
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
@@ -1067,6 +1069,18 @@
 msgid "FOUND TAG\n"
 msgstr "MENEMUKAN TAG\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "MENEMUKAN TAG      : ditemukan oleh elemen \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "MENEMUKAN TAG      : ditemukan oleh objek \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "MENEMUKAN TAG\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1108,6 +1122,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tag keluaran (juga dikenal sebagai metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Informasi status keluaran dan pemberitahuan properti"
 
@@ -1126,14 +1143,11 @@
 msgid "Do not install a fault handler"
 msgstr "Jangan instal penanganan galat"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Cetak jejak alokasi (jika diaktifkan sewaktu kompilasi)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Paksa EOS pada sumber sebelum mematikan pemipaan"
 
 msgid "Gather and print index statistics"
-msgstr ""
+msgstr "Kumpulkan dan cetak statistik indeks"
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
@@ -1226,6 +1240,9 @@
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Jangan instal penanganan sinyal untuk SIGUSR1 dan SIGUSR2"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Cetak jejak alokasi (jika diaktifkan sewaktu kompilasi)"
+
 #~ msgid "Error writing registry cache to %s: %s"
 #~ msgstr "Galat menulis tembolok registry ke %s: %s"
 
diff --git a/po/it.gmo b/po/it.gmo
index 5094660..ad61ad1 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 4ac9f2f..8d47f67 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-10-25 10:03+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -681,9 +681,17 @@
 msgid "language code"
 msgstr "codice lingua"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "il codice della lingua per questo stream, conforme a ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "codice lingua"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "immagine"
 
@@ -1236,6 +1244,18 @@
 msgid "FOUND TAG\n"
 msgstr "TAG TROVATO\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "TAG TROVATO    : trovato dall'elemento \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "TAG TROVATO    : trovato dall'oggetto \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "TAG TROVATO\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1279,6 +1299,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Stampa i tag (anche noti come metadati)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 # -v, --verbose
 msgid "Output status information and property notifications"
 msgstr "Stampa informazioni di stato e notifiche delle proprietà"
@@ -1302,10 +1325,6 @@
 msgid "Do not install a fault handler"
 msgstr "Non installa un gestore di fault"
 
-# -T, --trace
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Stampa traccia di alloc (se abilitato in compilazione)"
-
 # -e, --eos-on-shutdown
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Forza EOS sulle sorgenti prima di arrestare la pipeline"
@@ -1381,6 +1400,10 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Esecuzione di free sulla pipeline...\n"
 
+# -T, --trace
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Stampa traccia di alloc (se abilitato in compilazione)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Uso: gst-xmllaunch <FILE.XML> [ ELEMENTO.PROPRIETA=VALORE ... ]\n"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index b0acbf6..2b02d79 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index b86a0e6..b3754b5 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.20.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2008-10-16 19:57+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -543,7 +543,14 @@
 msgid "language code"
 msgstr "言語コード"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+#, fuzzy
+msgid "language name"
+msgstr "言語コード"
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1042,6 +1049,17 @@
 msgstr ""
 
 #, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
+#, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
@@ -1085,6 +1103,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "タグ (メタデータ) を出力する"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
@@ -1104,9 +1125,6 @@
 msgid "Do not install a fault handler"
 msgstr "フォールトハンドラをインストールしない"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "alloc トレースを表示する (コンパイル時に有効にする必要があります)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1177,6 +1195,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "パイプラインを解放 (FREEING) しています...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "alloc トレースを表示する (コンパイル時に有効にする必要があります)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "使い方: gst-xmllaunch <file.xml> [ element.property=value ...]\n"
 
diff --git a/po/lt.gmo b/po/lt.gmo
index adf21c3..0acfe43 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index f9f5e79..412d61d 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-07-16 00:50+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -550,9 +550,17 @@
 msgid "language code"
 msgstr "kalbos kodas"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "šio srauto kalbos kodas, atitinkantis ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "kalbos kodas"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "paveikslėlis"
 
@@ -1070,6 +1078,18 @@
 msgid "FOUND TAG\n"
 msgstr "RASTA ŽYMA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "RASTA ŽYMA      : rasta elemento „%s“.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "RASTA ŽYMA      : rasta objekto „%s“.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "RASTA ŽYMA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1111,6 +1131,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Išvesti žymas (dar žinomas kaip metaduomenys)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Išvesti būsenos informaciją ir savybių pranešimus"
 
@@ -1129,9 +1152,6 @@
 msgid "Do not install a fault handler"
 msgstr "Neįdiegti klaidų apdorojimo posistemės"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Išvesti alloc sekimą (jei įjungta kompiliavimo metu)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Priverstinai naudoti EOS šaltiniuose prie išjungiant konvejerį"
 
@@ -1200,6 +1220,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Atlaisvinamas konvejeris...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Išvesti alloc sekimą (jei įjungta kompiliavimo metu)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Naudojimas: gst-xmllaunch <failas.xml> [ elementas.savybė=reikšmė ... ]\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index 0480f32..01418fa 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 1e91ff6..eb935cd 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-10-24 21:36+0200\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -536,7 +536,14 @@
 msgid "language code"
 msgstr "språkkode"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+#, fuzzy
+msgid "language name"
+msgstr "språkkode"
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1032,6 +1039,17 @@
 msgstr ""
 
 #, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
+#, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
@@ -1072,6 +1090,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
@@ -1090,9 +1111,6 @@
 msgid "Do not install a fault handler"
 msgstr ""
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 8967d48..21f9426 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index e81a293..a451d50 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-26 23:10+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -557,9 +557,17 @@
 msgid "language code"
 msgstr "taalcode"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "taalcode van deze stroom, conform ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "taalcode"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "afbeelding"
 
@@ -1075,6 +1083,18 @@
 msgid "FOUND TAG\n"
 msgstr "TAG GEVONDEN\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "TAG GEVONDEN   : gevonden door element \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "TAG GEVONDEN   : gevonden door object \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "TAG GEVONDEN\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1116,6 +1136,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tags (ook bekend als metadata) weergeven"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Statusinformatie en eigenschapswaarschuwingen weergeven"
 
@@ -1134,9 +1157,6 @@
 msgid "Do not install a fault handler"
 msgstr "Geen foutafhandelaar installeren"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Toewijzingsspoor weergeven (indien aangezet tijdens compileren)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Forceer een EOS op de bron bij het afsluiten van de pijplijn"
 
@@ -1205,6 +1225,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Pijplijn wordt vrijgemaakt ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Toewijzingsspoor weergeven (indien aangezet tijdens compileren)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Gebruik: gst-xmllaunch <bestand.xml> [ element.eigenschap=waarde ... ]\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 163ae60..d6c56ca 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index a413df6..6fa8bd0 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-26 17:54+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -550,9 +550,17 @@
 msgid "language code"
 msgstr "kod języka"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "kod języka dla tego strumienia, zgodny z ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "kod języka"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "obrazek"
 
@@ -1071,6 +1079,18 @@
 msgid "FOUND TAG\n"
 msgstr "ZNACZNIK\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ZNACZNIK       : znaleziony przez element \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ZNACZNIK       : znaleziony przez obiekt \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ZNACZNIK\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1112,6 +1132,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Wypisanie znaczników (znanych także jako metadane)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Wypisywanie informacji o stanie i powiadomień właściwości"
 
@@ -1130,9 +1153,6 @@
 msgid "Do not install a fault handler"
 msgstr "Nie instalowanie obsługi błędów"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Wypisanie śladu alokacji (jeśli został włączony w czasie kompilacji)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Wymuszanie EOS na źródłach przed zamknięciem potoku"
 
@@ -1201,6 +1221,10 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Zwalnianie potoku...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Wypisanie śladu alokacji (jeśli został włączony w czasie kompilacji)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Składnia: gst-xmllaunch <plik.xml> [ element.właściwość=wartość ... ]\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 7361dff..ebda9f7 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 70eba01..40054d4 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-01-08 01:36-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -566,9 +566,17 @@
 msgid "language code"
 msgstr "código da língua"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "código da língua deste fluxo, conforme o ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "código da língua"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "imagem"
 
@@ -1082,6 +1090,18 @@
 msgid "FOUND TAG\n"
 msgstr "ETIQUETA ENCONTRADA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ETIQ. ENCONTR. : encontrada pelo elemento \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETIQ. ENCONTR. : encontrada pelo objeto \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ETIQUETA ENCONTRADA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1126,6 +1146,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Exibir etiquetas (metadados)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Exibir informações do estado e notificações de propriedade"
 
@@ -1144,9 +1167,6 @@
 msgid "Do not install a fault handler"
 msgstr "Não instale um manipulador de falhas"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Exibir trilha de alocação (se habilitado na compilação)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 "Forçar finalização do fluxo nos elementos fonte antes de desligar a fila de "
@@ -1220,6 +1240,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Liberando a fila de processamento...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Exibir trilha de alocação (se habilitado na compilação)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Uso: gst-xmllaunch <arquivo.xml> [ elemento.propriedade=valor ... ]\n"
diff --git a/po/ro.gmo b/po/ro.gmo
index 0f2cfcf..c774fab 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 057b0cb..537b3f3 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-08-16 01:10+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -558,9 +558,17 @@
 msgid "language code"
 msgstr "cod limbă"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "codul de limbă al acestui flux, conform ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "cod limbă"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "imagine"
 
@@ -1089,6 +1097,18 @@
 msgid "FOUND TAG\n"
 msgstr "MARCAJ GĂSIT\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "MARCAJ GĂSIT: găsit de către elementul „%s”.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "MARCAJ GĂSIT   : găsit de către obiectul „%s”.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "MARCAJ GĂSIT\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1130,6 +1150,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Marcaje de ieșire (cunoscute și ca „metadata”)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Informații asupra stării de ieșire și notificări proprietăți"
 
@@ -1148,9 +1171,6 @@
 msgid "Do not install a fault handler"
 msgstr "Nu instala un gestionar de erori"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Afișează căile de alocare (dacă s-a activat la momentul compilării)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Forțează EOS pe surse înainte de a închide linia de asamblare"
 
@@ -1219,6 +1239,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Se eliberează linia de asamblare...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Afișează căile de alocare (dacă s-a activat la momentul compilării)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Utilizare: gst-xmllaunch <fișier.xml> [ element.property=valoare ... ]\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index 12b1583..d6880a9 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 155c4b4..dbd9d65 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-26 20:25+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -553,9 +553,17 @@
 msgid "language code"
 msgstr "код языка"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "код языка для этого потока согласно ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "код языка"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "изображение"
 
@@ -1070,6 +1078,18 @@
 msgid "FOUND TAG\n"
 msgstr "НАЙДЕН ТЕГ\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "НАЙДЕН ТЕГ: найден элементом «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "НАЙДЕН ТЕГ: найден объектом «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "НАЙДЕН ТЕГ\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1111,6 +1131,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Выводить теги (метаданные)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Выводить информацию о состоянии и уведомления о свойствах"
 
@@ -1129,9 +1152,6 @@
 msgid "Do not install a fault handler"
 msgstr "Не устанавливать обработчик ошибок"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Вывести трассировку выделения памяти (если включено при сборке)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Выдать EOS в источники перед закрытием конвейера"
 
@@ -1200,6 +1220,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Освобождение конвейера...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Вывести трассировку выделения памяти (если включено при сборке)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Использование: gst-xmllaunch <файл.xml> [ элемент.свойство=значение...]\n"
diff --git a/po/rw.gmo b/po/rw.gmo
index 1a5f593..d52a7b4 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index c016c1e..066c6bf 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
 "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
@@ -723,7 +723,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1247,6 +1253,17 @@
 msgid "FOUND TAG\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "Byabonetse ku Ikigize:"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "Byabonetse ku Ikigize:"
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1287,6 +1304,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Nka"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 #, fuzzy
 msgid "Output status information and property notifications"
 msgstr "Imimerere Ibisobanuro Na indangakintu Ibimenyetso"
@@ -1309,10 +1329,6 @@
 msgid "Do not install a fault handler"
 msgstr "OYA Kwinjiza porogaramu a"
 
-#, fuzzy
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "NIBA Bikora ku Gukusanya Igihe"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1387,6 +1403,10 @@
 msgstr ""
 
 #, fuzzy
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "NIBA Bikora ku Gukusanya Igihe"
+
+#, fuzzy
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "IDOSIYE xml Ikigize: indangakintu Agaciro"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 8357730..34460a9 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index e4a4cf0..123c078 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-11-08 16:13+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -568,9 +568,17 @@
 msgid "language code"
 msgstr "jazykový kód"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "jazykový kód pre tento prúd údajov, v súlade s ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "jazykový kód"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "obrázok"
 
@@ -1083,6 +1091,18 @@
 msgid "FOUND TAG\n"
 msgstr "NAŠLA SA ZNAČKA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "NAŠLA SA ZNAČKA    : našiel ju prvok \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "NAŠLA SA ZNAČKA    : našiel ju objekt \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "NAŠLA SA ZNAČKA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1124,6 +1144,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Vypísať značky (známe tiež ako metadáta)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Vypísať informácie o stave a upozornenia o vlastnostiach"
 
@@ -1142,9 +1165,6 @@
 msgid "Do not install a fault handler"
 msgstr "Neinštalovať obsluhu výnimiek"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Vypisovať stopu alokácie (ak je to povolené pri kompilácii)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Vynútiť EOS na zdrojoch pred vypnutím rúry"
 
@@ -1216,6 +1236,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Uvoľňujem rúru ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Vypisovať stopu alokácie (ak je to povolené pri kompilácii)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Použitie: gst-xmllaunch <súbor.xml> [ prvk.vlastnosť=hodnota ... ]\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index a851632..44a51b5 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 8d4ba65..df9936d 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,17 +1,17 @@
 # Slovenian translation of gstreamer.
 # This file is distributed under the same license as the gstreamer package.
-# Copyright (C) 2005 - 2011 Free Software Foundation, Inc.
+# Copyright (C) 2005 - 2012 Free Software Foundation, Inc.
 #
 # Matej Urbančič <matej.urban@gmail.com>, 2010 - 2011.
 # Martin Srebotnjak <miles@filmsi.net>, 2011.
-# Klemen Košir <klemen.kosir@gmx.com>, 2011.
+# Klemen Košir <klemen.kosir@gmx.com>, 2012.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: 2011-09-22 15:02+0100\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2012-03-01 14:05+0100\n"
 "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
 "Language: sl\n"
@@ -20,6 +20,9 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
 "%100==4 ? 3 : 0);\n"
+"X-Poedit-Language: Slovenian\n"
+"X-Poedit-Country: SLOVENIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
 msgid "Print the GStreamer version"
 msgstr "Izpiše različico programa GStreamer"
@@ -550,9 +553,16 @@
 msgid "language code"
 msgstr "jezikovna koda"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "koda jezika pretoka v skladu z ISO-639-1"
 
+msgid "language name"
+msgstr "ime jezika"
+
+msgid "freeform name of the language this stream is in"
+msgstr "prosto ime jezika tega pretoka"
+
 msgid "image"
 msgstr "slika"
 
@@ -781,7 +791,7 @@
 
 #, c-format
 msgid "ERROR: from element %s: %s\n"
-msgstr "NAPAKA: predmeta %s: %s\n"
+msgstr "NAPAKA: predmet %s: %s\n"
 
 #, c-format
 msgid ""
@@ -810,7 +820,7 @@
 
 #, c-format
 msgid "could not link %s to %s"
-msgstr "povezati %s in %s ni mogoče povezati"
+msgstr "%s in %s ni mogoče povezati"
 
 #, c-format
 msgid "no element \"%s\""
@@ -1070,6 +1080,18 @@
 msgid "FOUND TAG\n"
 msgstr "NAJDENA OZNAKA\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "NAJDENA OZNAKA      : najdeno s predmetom \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "NAJDENA OZNAKA      : najdeno s predmetom \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "NAJDENA OZNAKA\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1105,13 +1127,16 @@
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr "Prekinitev: zaustavljanje cevovoda ... \n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Missing element: %s\n"
 msgstr "Manjkajoči element: %s\n"
 
 msgid "Output tags (also known as metadata)"
 msgstr "Izhodne oznake (znane tudi kot metapodatki)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Izhodni podatki o stanju in obvestila o lastnostih"
 
@@ -1130,11 +1155,6 @@
 msgid "Do not install a fault handler"
 msgstr "Na namesti ročnika napak"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr ""
-"Izpiši zaznavanje dodeljevanja (če je možnost omogočena v trenutku kodnega "
-"prevajanja)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Viru vsili EOS pred zaustavitvijo cevovoda"
 
@@ -1230,3 +1250,8 @@
 
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
 #~ msgstr "Ne namesti ročnikov signalov za SIGUSR1 in SIGUSR2"
+
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Izpiši zaznavanje dodeljevanja (če je možnost omogočena v trenutku "
+#~ "kodnega prevajanja)"
diff --git a/po/sq.gmo b/po/sq.gmo
index 2a7d18c..fe53d7a 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 525b504..fa1ef34 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2004-08-07 23:46+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -575,7 +575,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1082,6 +1088,17 @@
 msgid "FOUND TAG\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "NDRYSHIM I GJETUR      : u gjet nga elementi \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "NDRYSHIM I GJETUR      : u gjet nga elementi \"%s\".\n"
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1121,6 +1138,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Tags e output (njohur gjithashtu si metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Njoftime të informacioneve dhe pronësisë së kondicionit të daljes"
 
@@ -1140,9 +1160,6 @@
 msgid "Do not install a fault handler"
 msgstr "Mos instalo një ushqyes të dëmtuar"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Printo shenjat e alloc (nëse aktivuar në kohën e kompilimit)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1214,6 +1231,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "DUKE ZBATUAR pipeline ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Printo shenjat e alloc (nëse aktivuar në kohën e kompilimit)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Përdorimi: gst-xmllaunch <file.xml> [ element.property=vlera ... ]\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 7ca6098..73b130d 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index f2275e0..61bd365 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,36 +1,39 @@
 # Serbian translation of gstreamer
 # Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gstreamer package.
 # Danilo Segan <dsegan@gmx.net>, 2004, 2005.
-#
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.8.8\n"
+"Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
-"PO-Revision-Date: 2005-01-27 16:58+0100\n"
-"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
+"PO-Revision-Date: 2011-12-05 10:40+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
 "Language: sr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :    n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Virtaal 0.7.0\n"
+"X-Project-Style: gnome\n"
 
 msgid "Print the GStreamer version"
-msgstr "Испиши издање Гстримера"
+msgstr "Исписује издање Гстримера"
 
 msgid "Make all warnings fatal"
-msgstr "Учини сва упозорења кобним"
+msgstr "Чини сва упозорења кобним"
 
 msgid "Print available debug categories and exit"
-msgstr "Испиши доступне категорије за налажење грешака и заврши"
+msgstr "Исписује доступне категорије за уклањање грешака и излази"
 
 msgid ""
 "Default debug level from 1 (only error) to 5 (anything) or 0 for no output"
 msgstr ""
-"Подразумевани ниво опширности од 1 (само грешке) до 5 (све) или 0 (без "
-"излаза)"
+"Подразумевани ниво за уклањање грешака од 1 (само грешке) до 5 (све) или 0 "
+"(без излаза)"
 
 msgid "LEVEL"
 msgstr "НИВО"
@@ -39,181 +42,164 @@
 "Comma-separated list of category_name:level pairs to set specific levels for "
 "the individual categories. Example: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 msgstr ""
-"Запетом раздвојени списак парова име_категорије:ниво за постављање нарочитих "
+"Зарезом одвојен списак парова назив_категорије:ниво за постављање нарочитих "
 "нивоа за појединачне категорије. Пример: GST_AUTOPLUG:5,GST_ELEMENT_*:3"
 
 msgid "LIST"
 msgstr "СПИСАК"
 
 msgid "Disable colored debugging output"
-msgstr "Искључи обојени излаз за исправљање грешака"
+msgstr "Искључује обојени излаз за уклањање грешака"
 
 msgid "Disable debugging"
-msgstr "Искључи исправљање грешака"
+msgstr "Искључује уклањање грешака"
 
 msgid "Enable verbose plugin loading diagnostics"
-msgstr "Укључи опширну дијагностику при учитавању додатка"
+msgstr "Укључује опширну дијагностику учитавања прикључка"
 
 msgid "Colon-separated paths containing plugins"
-msgstr ""
+msgstr "Двотачком раздвојене путање које садрже прикључке"
 
 msgid "PATHS"
 msgstr "ПУТАЊЕ"
 
-#, fuzzy
 msgid ""
 "Comma-separated list of plugins to preload in addition to the list stored in "
 "environment variable GST_PLUGIN_PATH"
 msgstr ""
-"Запетом раздвојен списак додатака који се предучитавају поред списка из "
-"променљиве окружења GST_PLUGIN_PATH"
+"Зарезом раздвојен списак прикључака који ће бити унапред учитани као додатак "
+"списку који се чува у променљивој окружења GST_PLUGIN_PATH"
 
 msgid "PLUGINS"
 msgstr "ДОДАЦИ"
 
 msgid "Disable trapping of segmentation faults during plugin loading"
-msgstr "Искључи пресретање погрешних приступа меморији при учитавању додатака"
+msgstr ""
+"Искључује пресретање погрешних приступа меморији приликом учитавања прикључка"
 
 msgid "Disable updating the registry"
-msgstr ""
+msgstr "Искључује ажурирање регистра"
 
 msgid "Disable spawning a helper process while scanning the registry"
-msgstr ""
+msgstr "Искључује израђање помоћниковог процеса приликом претраживања регистра"
 
 msgid "GStreamer Options"
-msgstr ""
+msgstr "Опције Гстримера"
 
-#, fuzzy
 msgid "Show GStreamer Options"
-msgstr "Испиши издање Гстримера"
+msgstr "Приказује опције Гстримера"
 
 msgid "Unknown option"
-msgstr ""
+msgstr "Непозната опција"
 
 msgid "GStreamer encountered a general core library error."
-msgstr "ГСтример је наишао на општу грешку у основној библиотеци."
+msgstr "Гстример је наишао на општу грешку у основној библиотеци."
 
-#, fuzzy
 msgid ""
 "GStreamer developers were too lazy to assign an error code to this error."
 msgstr ""
-"Програмери ГСтримера су били сувише лењи да доделе код за ову грешку. "
-"Пријавите грешку."
+"Програмери Гстримера су били сувише лењи да доделе неки кôд за ову грешку."
 
-#, fuzzy
 msgid "Internal GStreamer error: code not implemented."
-msgstr "Унутрашња грешка у ГСтримеру: код није написан.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: кôд није примењен. "
 
 msgid ""
 "GStreamer error: state change failed and some element failed to post a "
 "proper error message with the reason for the failure."
 msgstr ""
+"Грешка Гстримера: промена стања није успела и неки елемент није успео да "
+"огласи сопствену поруку грешке са разлогом неуспеха."
 
-#, fuzzy
 msgid "Internal GStreamer error: pad problem."
-msgstr "Унутрашња грешка у ГСтримеру: неприлика са попуном.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са попуном."
 
-#, fuzzy
 msgid "Internal GStreamer error: thread problem."
-msgstr "Унутрашња грешка у ГСтримеру: неприлика са нитима.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са нитима."
 
-#, fuzzy
 msgid "Internal GStreamer error: negotiation problem."
-msgstr ""
-"Унутрашња грешка у ГСтримеру: неприлика у преговарању.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика у преговарању."
 
-#, fuzzy
 msgid "Internal GStreamer error: event problem."
-msgstr ""
-"Унутрашња грешка у ГСтримеру: неприлика са догађајем.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са догађајем."
 
-#, fuzzy
 msgid "Internal GStreamer error: seek problem."
-msgstr ""
-"Унутрашња грешка у ГСтримеру: неприлика са тражењем.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са тражењем."
 
 # bug: is "caps" short for "capabilities"? if so, it should be spelled completely
-#, fuzzy
 msgid "Internal GStreamer error: caps problem."
-msgstr ""
-"Унутрашња грешка у ГСтримеру: неприлика са могућностима.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са могућностима."
 
-#, fuzzy
 msgid "Internal GStreamer error: tag problem."
-msgstr "Унутрашња грешка у ГСтримеру: неприлика са ознаком.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са ознаком."
 
 msgid "Your GStreamer installation is missing a plug-in."
-msgstr ""
+msgstr "Вашој инсталацији Гстримера недостаје прикључак."
 
-#, fuzzy
 msgid "Internal GStreamer error: clock problem."
-msgstr ""
-"Унутрашња грешка у ГСтримеру: неприлика са тражењем.  Пријавите грешку."
+msgstr "Унутрашња грешка Гстримера: неприлика са сатом."
 
 msgid ""
 "This application is trying to use GStreamer functionality that has been "
 "disabled."
 msgstr ""
+"Овај програм покушава да користи функционалност Гстримера која је искључена."
 
 msgid "GStreamer encountered a general supporting library error."
-msgstr "ГСтример је наишао на општу грешку у библиотеци за подршку."
+msgstr "Гстример је наишао на општу грешку у библиотеци подршке."
 
 msgid "Could not initialize supporting library."
-msgstr "Не могу да покренем библиотеку за подршку."
+msgstr "Не могу да покренем библиотеку подршке."
 
 msgid "Could not close supporting library."
-msgstr "Не могу да затворим библиотеку за подршку."
+msgstr "Не могу да затворим библиотеку подршке."
 
-#, fuzzy
 msgid "Could not configure supporting library."
-msgstr "Не могу да затворим библиотеку за подршку."
+msgstr "Не могу да подесим библиотеку подршке."
 
 msgid "Encoding error."
-msgstr ""
+msgstr "Грешка кодирања."
 
-#, fuzzy
 msgid "GStreamer encountered a general resource error."
-msgstr "ГСтример је наишао на општу грешку у основној библиотеци."
+msgstr "Гстример је наишао на општу грешку изворишта."
 
 msgid "Resource not found."
-msgstr "Ресурс није нађен."
+msgstr "Извориште није нађено."
 
 msgid "Resource busy or not available."
-msgstr "Ресурс је заузет или недоступан."
+msgstr "Извориште је заузето или недоступно."
 
 msgid "Could not open resource for reading."
-msgstr "Не могу отворити ресурс ради читања."
+msgstr "Не могу да отворим извориште ради читања."
 
 msgid "Could not open resource for writing."
-msgstr "Не могу отворити ресурс ради уписа."
+msgstr "Не могу да отворим извориште ради уписа."
 
 msgid "Could not open resource for reading and writing."
-msgstr "Не могу отворити ресурс ради читања и писања."
+msgstr "Не могу да отворим извориште ради читања и писања."
 
 msgid "Could not close resource."
-msgstr "Не могу затворити ресурс."
+msgstr "Не могу да затворим извориште."
 
 msgid "Could not read from resource."
-msgstr "Не могу читати из ресурса."
+msgstr "Не могу да читам из изворишта."
 
 msgid "Could not write to resource."
-msgstr "Не могу уписати у ресурс."
+msgstr "Не могу да упишем у извориште."
 
 msgid "Could not perform seek on resource."
-msgstr "Не могу да поставим положај у ресурсу."
+msgstr "Не могу да извршим постављање на изворишту."
 
 msgid "Could not synchronize on resource."
-msgstr "Не могу да ускладим са ресурсом."
+msgstr "Не могу да ускладим са извориштем."
 
 msgid "Could not get/set settings from/on resource."
-msgstr "Не могу да сазнам/поставим подешавања из/у ресурсу."
+msgstr "Не могу да добавим/поставим подешавања из/у извориште."
 
 msgid "No space left on the resource."
-msgstr ""
+msgstr "Није преостало простора у изворишту."
 
-#, fuzzy
 msgid "GStreamer encountered a general stream error."
-msgstr "ГСтример је наишао на општу грешку у основној библиотеци."
+msgstr "Гстример је наишао на општу грешку тока."
 
 msgid "Element doesn't implement handling of this stream. Please file a bug."
 msgstr "Елемент не обезбеђује баратање овим током. Пријавите грешку."
@@ -241,17 +227,18 @@
 msgid "Could not multiplex stream."
 msgstr "Не могу да изградим ток."
 
-#, fuzzy
 msgid "The stream is in the wrong format."
-msgstr "Ток је погрешног облика."
+msgstr "Ток је у погрешном облику."
 
 msgid "The stream is encrypted and decryption is not supported."
-msgstr ""
+msgstr "Ток је шифрован а дешифровање није подржано."
 
 msgid ""
 "The stream is encrypted and can't be decrypted because no suitable key has "
 "been supplied."
 msgstr ""
+"Ток је шифрован и не може бити дешифрован зато што није придодат "
+"одговарајући кључ."
 
 #, c-format
 msgid "No error message for domain %s."
@@ -259,36 +246,34 @@
 
 #, c-format
 msgid "No standard error message for domain %s and code %d."
-msgstr "Нема обичне поруке о грешци за домен %s и код %d."
+msgstr "Нема уобичајене поруке о грешци за домен %s и код %d."
 
 msgid "Selected clock cannot be used in pipeline."
-msgstr ""
+msgstr "Изабрани сат не може бити коришћен у спојци низа."
 
 msgid "title"
 msgstr "наслов"
 
 msgid "commonly used title"
-msgstr "обично коришћен наслов"
+msgstr "уобичајено коришћен наслов"
 
 msgid "title sortname"
-msgstr ""
+msgstr "назив наслова при ређању"
 
-#, fuzzy
 msgid "commonly used title for sorting purposes"
-msgstr "обично коришћен наслов"
+msgstr "уобичајено коришћен наслов за сврхе ређања"
 
 msgid "artist"
-msgstr "уметник"
+msgstr "извођач"
 
 msgid "person(s) responsible for the recording"
-msgstr "особе одговорне за снимак"
+msgstr "особе одговорне за снимање"
 
 msgid "artist sortname"
-msgstr ""
+msgstr "име извођача при ређању"
 
-#, fuzzy
 msgid "person(s) responsible for the recording for sorting purposes"
-msgstr "особе одговорне за снимак"
+msgstr "особе одговорне за снимање за сврхе ређања"
 
 msgid "album"
 msgstr "албум"
@@ -297,39 +282,34 @@
 msgstr "албум који садржи ове податке"
 
 msgid "album sortname"
-msgstr ""
+msgstr "назив албума при ређању"
 
-#, fuzzy
 msgid "album containing this data for sorting purposes"
-msgstr "албум који садржи ове податке"
+msgstr "албум који садржи ове податке за сврхе ређања"
 
-#, fuzzy
 msgid "album artist"
-msgstr "уметник"
+msgstr "извођач албума"
 
 msgid "The artist of the entire album, as it should be displayed"
-msgstr ""
+msgstr "Извођач читавог албума, онако како треба бити приказан"
 
 msgid "album artist sortname"
-msgstr ""
+msgstr "име извођача албума при ређању"
 
 msgid "The artist of the entire album, as it should be sorted"
-msgstr ""
+msgstr "Извођач читавог албума, онако како треба бити поређан"
 
 msgid "date"
 msgstr "датум"
 
-#, fuzzy
 msgid "date the data was created (as a GDate structure)"
-msgstr "датум прављења података (као број Јулијанског дана)"
+msgstr "датум стварања података (као број Јулијанског дана)"
 
-#, fuzzy
 msgid "datetime"
-msgstr "датум"
+msgstr "датум и време"
 
-#, fuzzy
 msgid "date and time the data was created (as a GstDateTime structure)"
-msgstr "датум прављења података (као број Јулијанског дана)"
+msgstr "датум и време стварања података (као број Јулијанског дана)"
 
 msgid "genre"
 msgstr "жанр"
@@ -341,40 +321,39 @@
 msgstr "напомена"
 
 msgid "free text commenting the data"
-msgstr "текст у слободном облику о овим подацима"
+msgstr "слободан текст о овим подацима"
 
-#, fuzzy
 msgid "extended comment"
-msgstr "напомена"
+msgstr "додатна напомена"
 
-#, fuzzy
 msgid "free text commenting the data in key=value or key[en]=comment form"
-msgstr "текст у слободном облику о овим подацима"
+msgstr ""
+"слободан текст о овим подацима у облику кључ=вредност или кључ[en]=напомена"
 
 # можда „нумере“ уместо „песме“, пошто можемо имати и видео снимке
 msgid "track number"
-msgstr "број песме"
+msgstr "број нумере"
 
 msgid "track number inside a collection"
-msgstr "број песме у скупу"
+msgstr "број нумере у збирци"
 
 msgid "track count"
-msgstr "укупно песама"
+msgstr "укупно нумера"
 
 msgid "count of tracks inside collection this track belongs to"
-msgstr "укупно песама у скупу којем припада ова песма"
+msgstr "укупно нумера у збирци којој припада ова нумера"
 
 msgid "disc number"
 msgstr "број диска"
 
 msgid "disc number inside a collection"
-msgstr "број диска у скупу"
+msgstr "број диска у збирци"
 
 msgid "disc count"
 msgstr "укупно дискова"
 
 msgid "count of discs inside collection this disc belongs to"
-msgstr "укупно дискова у скупу којем припада овај диск"
+msgstr "укупно дискова у збирци којој припада овај диск"
 
 msgid "location"
 msgstr "положај"
@@ -383,12 +362,15 @@
 "Origin of media as a URI (location, where the original of the file or stream "
 "is hosted)"
 msgstr ""
+"Порекло медија дато као адреса (место, где се налази оригинална датотека или "
+"ток)"
 
 msgid "homepage"
-msgstr ""
+msgstr "матична страница"
 
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
+"Матична страница за овај медиј (нпр. матична страница извођача или филма)"
 
 msgid "description"
 msgstr "опис"
@@ -408,7 +390,8 @@
 
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
-"Међународни стандардни код за снимање — видети http://www.ifpi.org/isrc/"
+"Међународни стандардни код за снимање — погледајте „http://www.ifpi.org/"
+"isrc/“"
 
 msgid "organization"
 msgstr "организација"
@@ -419,20 +402,17 @@
 msgid "copyright notice of the data"
 msgstr "порука о ауторским правима за податке"
 
-#, fuzzy
 msgid "copyright uri"
-msgstr "ауторска права"
+msgstr "адреса ауторских права"
 
-#, fuzzy
 msgid "URI to the copyright notice of the data"
-msgstr "порука о ауторским правима за податке"
+msgstr "адреса до поруке о ауторским правима за податке"
 
-#, fuzzy
 msgid "encoded by"
-msgstr "кодирати"
+msgstr "кодирао"
 
 msgid "name of the encoding person or organization"
-msgstr ""
+msgstr "име особе или назив организације кодирања"
 
 msgid "contact"
 msgstr "контакт"
@@ -446,13 +426,11 @@
 msgid "license of data"
 msgstr "дозвола за употребу података"
 
-#, fuzzy
 msgid "license uri"
-msgstr "дозвола"
+msgstr "адреса дозволе"
 
-#, fuzzy
 msgid "URI to the license of the data"
-msgstr "дозвола за употребу података"
+msgstr "адреса до дозволе за употребу података"
 
 msgid "performer"
 msgstr "извођач"
@@ -461,51 +439,46 @@
 msgstr "особе које изводе"
 
 msgid "composer"
-msgstr ""
+msgstr "састављач"
 
-#, fuzzy
 msgid "person(s) who composed the recording"
-msgstr "особе одговорне за снимак"
+msgstr "особе које су саставиле снимак"
 
 msgid "duration"
 msgstr "трајање"
 
 msgid "length in GStreamer time units (nanoseconds)"
-msgstr "дужина у временским јединицама ГСтримера (наносекундама)"
+msgstr "дужина у временским јединицама Гстримера (наносекундама)"
 
 msgid "codec"
-msgstr "кодирање"
+msgstr "кодек"
 
 msgid "codec the data is stored in"
-msgstr "на који начин су подаци кодирани"
+msgstr "кодек у коме су подаци сачувани"
 
 msgid "video codec"
-msgstr "видео кодирање"
+msgstr "видео кодек"
 
 msgid "codec the video data is stored in"
-msgstr "на који начин су видео подаци кодирани"
+msgstr "кодек у коме су видео подаци сачувани"
 
 msgid "audio codec"
-msgstr "звучно кодирање"
+msgstr "звучни кодек"
 
 msgid "codec the audio data is stored in"
-msgstr "на који начин су звучни подаци кодирани"
+msgstr "кодек у коме су звучни подаци сачувани"
 
-#, fuzzy
 msgid "subtitle codec"
-msgstr "видео кодирање"
+msgstr "кодек превода"
 
-#, fuzzy
 msgid "codec the subtitle data is stored in"
-msgstr "на који начин су видео подаци кодирани"
+msgstr "кодек у коме су подаци превода сачувани"
 
-#, fuzzy
 msgid "container format"
-msgstr "подаци за ступање у везу"
+msgstr "облик садржаоца"
 
-#, fuzzy
 msgid "container format the data is stored in"
-msgstr "на који начин су подаци кодирани"
+msgstr "облик садржаоца у коме су подаци сачувани"
 
 msgid "bitrate"
 msgstr "брзина битова"
@@ -532,281 +505,290 @@
 msgstr "највећа брзина битова у битовима по секунди"
 
 msgid "encoder"
-msgstr "кодирати"
+msgstr "кодер"
 
 msgid "encoder used to encode this stream"
-msgstr "како кодирати овај ток"
+msgstr "кодер коришћен за кодирање овог тока"
 
 msgid "encoder version"
-msgstr "издање кодирања"
+msgstr "издање кодера"
 
 msgid "version of the encoder used to encode this stream"
-msgstr "издање кодирања којим се кодира овај ток"
+msgstr "издање кодера коришћеног за кодирање овог тока"
 
 msgid "serial"
 msgstr "серија"
 
 msgid "serial number of track"
-msgstr "серијски број траке"
+msgstr "серијски број нумере"
 
 # bug: this is something strange
 msgid "replaygain track gain"
-msgstr "појачање песме при поновном пуштању"
+msgstr "појачање нумере појачања пуштања"
 
 msgid "track gain in db"
 msgstr "појачање песме у децибелима"
 
 msgid "replaygain track peak"
-msgstr "врхунац при поновном пуштању"
+msgstr "врхунац нумере појачања пуштања"
 
 msgid "peak of the track"
-msgstr "врхунац песме"
+msgstr "врхунац нумере"
 
 msgid "replaygain album gain"
-msgstr "појачање албума при поновном пуштању"
+msgstr "појачање албума појачања пуштања"
 
 msgid "album gain in db"
 msgstr "појачање албума у децибелима"
 
 msgid "replaygain album peak"
-msgstr "врхунац албума при поновном пуштању"
+msgstr "врхунац албума појачања пуштања"
 
 msgid "peak of the album"
 msgstr "врхунац албума"
 
-#, fuzzy
 msgid "replaygain reference level"
-msgstr "врхунац при поновном пуштању"
+msgstr "ниво подсетника појачања пуштања"
 
 msgid "reference level of track and album gain values"
-msgstr ""
+msgstr "подсетни ниво вредности појачања нумере и албума"
 
 msgid "language code"
-msgstr ""
+msgstr "шифра језика"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr "шифра језика за овај ток, према стандарду ИСО-639-1"
+
+#, fuzzy
+msgid "language name"
+msgstr "шифра језика"
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
-msgstr ""
+msgstr "слика"
 
-#, fuzzy
 msgid "image related to this stream"
-msgstr "како кодирати овај ток"
+msgstr "слика која се односи на овај ток"
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
 msgid "preview image"
-msgstr ""
+msgstr "слика прегледа"
 
 msgid "preview image related to this stream"
-msgstr ""
+msgstr "слика прегледа која се односи на овај ток"
 
 msgid "attachment"
-msgstr ""
+msgstr "прилог"
 
-#, fuzzy
 msgid "file attached to this stream"
-msgstr "како кодирати овај ток"
+msgstr "датотека приложена уз овај ток"
 
 msgid "beats per minute"
-msgstr ""
+msgstr "тактова у минуту"
 
 msgid "number of beats per minute in audio"
-msgstr ""
+msgstr "број тактова у минуту у звуку"
 
 msgid "keywords"
-msgstr ""
+msgstr "кључне речи"
 
-#, fuzzy
 msgid "comma separated keywords describing the content"
-msgstr "кратак текст који описује садржај података"
+msgstr "зарезом одвојене кључне речи које описују садржај"
 
-#, fuzzy
 msgid "geo location name"
-msgstr "положај"
+msgstr "назив географског места"
 
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
-msgstr ""
+msgstr "људима читљиво описно место где је медиј снимљен или произведен"
 
 msgid "geo location latitude"
-msgstr ""
+msgstr "латитуда гео положаја"
 
 msgid ""
 "geo latitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
+"географска ширина места у коме је медиј снимљен или произведен у степенима "
+"према стандарду „WGS84“ (нула на екватору, негативне вредности за јужне "
+"ширине)"
 
 msgid "geo location longitude"
-msgstr ""
+msgstr "лонгитуда гео положаја"
 
 msgid ""
 "geo longitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
+"географска дужина места у коме је медиј снимљен или произведен у степенима "
+"према стандарду „WGS84“ (нула на првом меридијану у Гринвичу/Велика "
+"Британија, негативне вредности за западне дужине)"
 
 msgid "geo location elevation"
-msgstr ""
+msgstr "издигнуће гео положаја"
 
 msgid ""
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
+"надморска висина места у коме је медиј снимљен или произведен у метрима "
+"према стандарду „WGS84“ (нула је просечни ниво мора)"
 
-#, fuzzy
 msgid "geo location country"
-msgstr "положај"
+msgstr "земља гео положаја"
 
 msgid "country (english name) where the media has been recorded or produced"
-msgstr ""
+msgstr "земља (енглески назив) у којој је медиј снимљен или произведен"
 
-#, fuzzy
 msgid "geo location city"
-msgstr "положај"
+msgstr "град гео положаја"
 
 msgid "city (english name) where the media has been recorded or produced"
-msgstr ""
+msgstr "град (енглески назив) у коме је медиј снимљен или произведен"
 
-#, fuzzy
 msgid "geo location sublocation"
-msgstr "положај"
+msgstr "потположај гео положаја"
 
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
+"место унутар града у коме је медиј произведен или створен (нпр. суседство)"
 
-#, fuzzy
 msgid "geo location horizontal error"
-msgstr "положај"
+msgstr "водоравна грешка гео положаја"
 
 msgid "expected error of the horizontal positioning measures (in meters)"
-msgstr ""
+msgstr "очекивана грешка мерења водоравног позиционирања (у метрима)"
 
-#, fuzzy
 msgid "geo location movement speed"
-msgstr "положај"
+msgstr "брзина кретања гео положаја"
 
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
+"брзина кретања уређаја за снимање приликом извршавања снимања у метрима у "
+"секунди"
 
-#, fuzzy
 msgid "geo location movement direction"
-msgstr "положај"
+msgstr "усмерење кретања гео положаја"
 
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
+"означава усмерење кретања уређаја приликом снимања медија. Представља се у "
+"степенима са покретним зарезом, 0 значи северни пол, и повећава се у смеру "
+"казаљке на сату."
 
-#, fuzzy
 msgid "geo location capture direction"
-msgstr "положај"
+msgstr "усмерење снимања гео положаја"
 
 msgid ""
 "indicates the direction the device is pointing to when capturing  a media. "
 "It is represented as degrees in floating point  representation, 0 means the "
 "geographic north, and increases clockwise"
 msgstr ""
+"означава усмерење на које уређај указује приликом снимања медија. Представља "
+"се у степенима са покретним зарезом, 0 значи северни пол, и повећава се у "
+"смеру казаљке на сату."
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
 msgid "show name"
-msgstr ""
+msgstr "назив програма"
 
 msgid "Name of the tv/podcast/series show the media is from"
-msgstr ""
+msgstr "Назив програма телевизије/подемисије/серије из ког је медиј"
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
 msgid "show sortname"
-msgstr ""
+msgstr "назив програма при ређању"
 
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
+"Назив програма телевизије/подемисије/серије из ког је медиј, за сврхе ређања"
 
-#, fuzzy
 msgid "episode number"
-msgstr "број диска"
+msgstr "број епизоде"
 
 msgid "The episode number in the season the media is part of"
-msgstr ""
+msgstr "Број епизоде сезоне којој припада медиј"
 
-#, fuzzy
 msgid "season number"
-msgstr "број диска"
+msgstr "број сезоне"
 
 msgid "The season number of the show the media is part of"
-msgstr ""
+msgstr "Број сезоне програма којој припада медиј"
 
-#, fuzzy
 msgid "lyrics"
-msgstr "дозвола"
+msgstr "стихови"
 
 msgid "The lyrics of the media, commonly used for songs"
-msgstr ""
+msgstr "Стихови медија, обично коришћени за песме"
 
 msgid "composer sortname"
-msgstr ""
+msgstr "назив састављача при ређању"
 
-#, fuzzy
 msgid "person(s) who composed the recording, for sorting purposes"
-msgstr "особе одговорне за снимак"
+msgstr "особе које су саставиле снимање, за сврхе ређања"
 
 msgid "grouping"
-msgstr ""
+msgstr "груписање"
 
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
+"Групише одговарајуће медије који обухватају више нумера, као различите "
+"делове концерта. То је виши ниво од нумере, али нижи од албума."
 
-#, fuzzy
 msgid "user rating"
-msgstr "трајање"
+msgstr "оцене корисника"
 
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
+"Оцене које су доделили корисници. Виши ли је пласман, то се већем броју "
+"корисника свиђа овај медиј."
 
 msgid "device manufacturer"
-msgstr ""
+msgstr "произвођач уређаја"
 
-#, fuzzy
 msgid "Manufacturer of the device used to create this media"
-msgstr "издање кодирања којим се кодира овај ток"
+msgstr "Произвођач уређаја који је коришћен за стварање овог медија"
 
 msgid "device model"
-msgstr ""
+msgstr "модел уређаја"
 
-#, fuzzy
 msgid "Model of the device used to create this media"
-msgstr "издање кодирања којим се кодира овај ток"
+msgstr "Модел уређаја који је коришћен за стварање овог медија"
 
-#, fuzzy
 msgid "application name"
-msgstr "положај"
+msgstr "назив апликације"
 
-#, fuzzy
 msgid "Application used to create the media"
-msgstr "издање кодирања којим се кодира овај ток"
+msgstr "Апликација која је коришћена за стварање медија"
 
 msgid "application data"
-msgstr ""
+msgstr "подаци апликације"
 
 msgid "Arbitrary application data to be serialized into the media"
-msgstr ""
+msgstr "Произвољни подаци апликације који ће бити запаковани у медиј"
 
 msgid "image orientation"
-msgstr ""
+msgstr "усмерење слике"
 
 msgid "How the image should be rotated or flipped before display"
-msgstr ""
+msgstr "Како би слика требала да буде окренута или изврнута пре приказивања"
 
 msgid ", "
 msgstr ", "
@@ -820,7 +802,7 @@
 "Additional debug info:\n"
 "%s\n"
 msgstr ""
-"Додатни подаци за исправку грешака:\n"
+"Додатни подаци за исправљање грешака:\n"
 "%s\n"
 
 #, c-format
@@ -855,7 +837,7 @@
 msgstr "веза без изворног елемента"
 
 msgid "link without sink element"
-msgstr "веза без завршног елемента"
+msgstr "веза без елемента усклађивања"
 
 #, c-format
 msgid "no source element for URI \"%s\""
@@ -867,40 +849,42 @@
 
 #, c-format
 msgid "no sink element for URI \"%s\""
-msgstr "нема завршног елемента за адресу „%s“"
+msgstr "нема елемента усклађивања за адресу „%s“"
 
 #, c-format
 msgid "could not link sink element for URI \"%s\""
-msgstr "не могу да вежем завршни елемент за адресу „%s“"
+msgstr "не могу да вежем елемент усклађивања за адресу „%s“"
 
 msgid "empty pipeline not allowed"
-msgstr "није допуштен празан цевовод"
+msgstr "није допуштена празна спојка низа"
 
 msgid "Internal clock error."
-msgstr ""
+msgstr "Унутрашња грешка сата."
 
 msgid "Internal data flow error."
-msgstr ""
+msgstr "Унутрaшња грешка протока података."
 
 msgid "A lot of buffers are being dropped."
-msgstr ""
+msgstr "Много помоћне меморије је одбачено."
 
 msgid "Internal data flow problem."
-msgstr ""
+msgstr "Унутрaшњи проблем протока података."
 
 msgid "Internal data stream error."
-msgstr ""
+msgstr "Унутрашња грешка тока података."
 
 msgid "Filter caps"
-msgstr ""
+msgstr "Филтрира могућности"
 
 msgid ""
 "Restrict the possible allowed capabilities (NULL means ANY). Setting this "
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
+"Умањује могуће допуштене могућности (НИШТА значи БИЛО КОЈА). Постављање овог "
+"својства поставља као орјентир придодати објекат Гст могућности."
 
 msgid "No file name specified for writing."
-msgstr "Није наведено име датотеке за упис."
+msgstr "Није наведен назив датотеке за упис."
 
 #, c-format
 msgid "Could not open file \"%s\" for writing."
@@ -910,53 +894,52 @@
 msgid "Error closing file \"%s\"."
 msgstr "Грешка при затварању датотеке „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error while seeking in file \"%s\"."
-msgstr "Грешка при упису у датотеку „%s“."
+msgstr "Грешка приликом премотавања у датотеци „%s“."
 
 #, c-format
 msgid "Error while writing to file \"%s\"."
 msgstr "Грешка при упису у датотеку „%s“."
 
 msgid "No file name specified for reading."
-msgstr "Није наведено име датотеке за читање."
+msgstr "Није наведен назив датотеке за читање."
 
 #, c-format
 msgid "Could not open file \"%s\" for reading."
 msgstr "Не могу да отворим датотеку „%s“ ради читања."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not get info on \"%s\"."
-msgstr "Не могу да сазнам/поставим подешавања из/у ресурсу."
+msgstr "Не могу да добавим податке на „%s“."
 
 #, c-format
 msgid "\"%s\" is a directory."
-msgstr "\"%s\" је директоријум."
+msgstr "„%s“ је директоријум."
 
 #, c-format
 msgid "File \"%s\" is a socket."
-msgstr "Датотека „%s“ је сокет."
+msgstr "Датотека „%s“ је прикључница."
 
 msgid "Failed after iterations as requested."
 msgstr "Неуспех након траженог броја покушаја."
 
 msgid "No Temp directory specified."
-msgstr ""
+msgstr "Није наведен привремени директоријум."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not create temp file \"%s\"."
-msgstr "Не могу да сазнам/поставим подешавања из/у ресурсу."
+msgstr "Не могу да створим привремену датотеку „%s“."
 
-#, fuzzy
 msgid "Error while writing to download file."
-msgstr "Грешка при упису у датотеку „%s“."
+msgstr "Грешка при упису у датотеку преузимања."
 
 # bug: this should be full word
 msgid "caps"
 msgstr "могућности"
 
 msgid "detected capabilities in stream"
-msgstr "препознате могућности у току"
+msgstr "откривене могућности у току"
 
 msgid "minimum"
 msgstr "најмање"
@@ -965,77 +948,74 @@
 msgstr "највише"
 
 msgid "force caps"
-msgstr ""
+msgstr "приморај могућности"
 
 msgid "force caps without doing a typefind"
-msgstr ""
+msgstr "приморај могућности без обављања претраге уписа"
 
-#, fuzzy
 msgid "Stream contains no data."
-msgstr "албум који садржи ове податке"
+msgstr "Овај ток не садржи податке."
 
 msgid "Implemented Interfaces:\n"
-msgstr ""
+msgstr "Примењени уређаји:\n"
 
 msgid "readable"
-msgstr ""
+msgstr "читљив"
 
-#, fuzzy
 msgid "writable"
-msgstr "наслов"
+msgstr "уписив"
 
 msgid "controllable"
-msgstr ""
+msgstr "управљив"
 
 msgid "changeable in NULL, READY, PAUSED or PLAYING state"
-msgstr ""
+msgstr "измењив у стање НИШТА, СПРЕМАН, ПАУЗИРАН или ПУШТАМ"
 
 msgid "changeable only in NULL, READY or PAUSED state"
-msgstr ""
+msgstr "измењив само у стање НИШТА, СПРЕМАН или ПАУЗИРАН"
 
 msgid "changeable only in NULL or READY state"
-msgstr ""
+msgstr "измењив само у стање НИШТА или СПРЕМАН"
 
 msgid "Blacklisted files:"
-msgstr ""
+msgstr "Забрањене датотеке:"
 
-#, fuzzy
 msgid "Total count: "
-msgstr "укупно песама"
+msgstr "Укупан број:"
 
 #, c-format
 msgid "%d blacklisted file"
 msgid_plural "%d blacklisted files"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d забрањена датотека"
+msgstr[1] "%d забрањене датотеке"
+msgstr[2] "%d забрањених датотека"
 
 #, c-format
 msgid "%d plugin"
 msgid_plural "%d plugins"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d прикључак"
+msgstr[1] "%d прикључка"
+msgstr[2] "%d прикључака"
 
 #, c-format
 msgid "%d blacklist entry"
 msgid_plural "%d blacklist entries"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "%d забрањена ставка"
+msgstr[1] "%d забрањене ставке"
+msgstr[2] "%d забрањених ставки"
 
-#, fuzzy, c-format
+#, c-format
 msgid "%d feature"
 msgid_plural "%d features"
-msgstr[0] "одлика"
-msgstr[1] "одлике"
-msgstr[2] "одлика"
+msgstr[0] "%d одлика"
+msgstr[1] "%d одлике"
+msgstr[2] "%d одлика"
 
 msgid "Print all elements"
-msgstr "Испиши све елементе"
+msgstr "Исписује све елементе"
 
 msgid "Print list of blacklisted files"
-msgstr ""
+msgstr "Штампа списак забрањених даттека"
 
 msgid ""
 "Print a machine-parsable list of features the specified plugin or all "
@@ -1043,220 +1023,236 @@
 "                                       Useful in connection with external "
 "automatic plugin installation mechanisms"
 msgstr ""
+"Штампа машинама обрадив списак одлика које наведени прикључак или прикључци "
+"обезбеђују.\n"
+"                                       Корисно у везама са спољним "
+"самосталним механизмом инсталирања прикључка."
 
 msgid "List the plugin contents"
-msgstr ""
+msgstr "Наводи садржај прикључка"
 
 msgid "Print supported URI schemes, with the elements that implement them"
-msgstr ""
+msgstr "Штампа подржане шеме адреса, са елементима који их примењују."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not load plugin file: %s\n"
-msgstr "Не могу да отворим датотеку „%s“ ради уписа."
+msgstr "Не могу да учитам датотеку прикључка: %s\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "No such element or plugin '%s'\n"
-msgstr "нема изворног елемента за адресу „%s“"
+msgstr "Нема таквог елемента или прикључка „%s“\n"
 
 msgid "Index statistics"
-msgstr ""
+msgstr "Статистике пописа"
 
 #, c-format
 msgid "Got message #%u from element \"%s\" (%s): "
-msgstr ""
+msgstr "Добих поруку #%u од елемента „%s“ (%s): "
 
 #, c-format
 msgid "Got message #%u from pad \"%s:%s\" (%s): "
-msgstr ""
+msgstr "Добих поруку #%u од попуне „%s:%s“ (%s): "
 
 #, c-format
 msgid "Got message #%u from object \"%s\" (%s): "
-msgstr ""
+msgstr "Добих поруку #%u од објекта „%s“ (%s): "
 
 #, c-format
 msgid "Got message #%u (%s): "
-msgstr ""
+msgstr "Добих поруку #%u (%s): "
 
-#, fuzzy, c-format
+#, c-format
 msgid "Got EOS from element \"%s\".\n"
-msgstr "ГРЕШКА: из елемента %s: %s\n"
+msgstr "Добих ЕОС од елемента „%s“.\n"
 
 #, c-format
 msgid "FOUND TAG      : found by element \"%s\".\n"
-msgstr "НАЂОХ ОЗНАКУ   : нашао је елемент „%s“.\n"
+msgstr "НАЂОХ ОЗНАКУ   : нађена је елементом „%s“.\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
-msgstr "НАЂОХ ОЗНАКУ   : нашао је елемент „%s“.\n"
+msgstr "НАЂОХ ОЗНАКУ   : нађена је попуном „%s:%s“.\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
-msgstr "НАЂОХ ОЗНАКУ   : нашао је елемент „%s“.\n"
+msgstr "НАЂОХ ОЗНАКУ   : нађена је објектом „%s“.\n"
 
 msgid "FOUND TAG\n"
-msgstr ""
+msgstr "НАЂОХ ОЗНАКУ\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "НАЂОХ ОЗНАКУ   : нађена је елементом „%s“.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "НАЂОХ ОЗНАКУ   : нађена је објектом „%s“.\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "НАЂОХ ОЗНАКУ\n"
 
 #, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
 msgstr ""
+"ПДАЦИ:\n"
+"%s\n"
 
-#, fuzzy, c-format
+#, c-format
 msgid "WARNING: from element %s: %s\n"
-msgstr "ГРЕШКА: из елемента %s: %s\n"
+msgstr "УПОЗРЕЊЕ: из елемента %s: %s\n"
 
 msgid "Prerolled, waiting for buffering to finish...\n"
-msgstr ""
+msgstr "Предувијено, чекам да заврши смештање у међумеморију…\n"
 
 msgid "buffering..."
-msgstr ""
+msgstr "смештам у међумеморију..."
 
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
+"Обавио сам смештање у међумеморију, постављам спојку низа на ПУШТАМ ...\n"
 
 msgid "Buffering, setting pipeline to PAUSED ...\n"
-msgstr ""
+msgstr "Смештам у међумеморију, постављам спојку низа на ПАУЗИРАН ...\n"
 
 msgid "Redistribute latency...\n"
-msgstr ""
+msgstr "Расподељујем кашњење...\n"
 
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
-msgstr ""
+msgstr "Постављам стање на %s као што је затражио %s...\n"
 
 msgid "Interrupt: Stopping pipeline ...\n"
-msgstr ""
+msgstr "Прекид: Заустављам спојку низа ...\n"
 
 #, fuzzy, c-format
 msgid "Missing element: %s\n"
 msgstr "нема елемента „%s“"
 
 msgid "Output tags (also known as metadata)"
-msgstr "Излазне ознаке (такође познато и као метаподаци)"
+msgstr "Излазне ознаке (такође познате и као метаподаци)"
 
-msgid "Output status information and property notifications"
-msgstr "Испиши податке о стању и обавештења о особинама"
-
-#, fuzzy
-msgid "Do not print any progress information"
-msgstr "Не исписуј податке о стању за ВРСТУ"
-
-msgid "Output messages"
+msgid "Ouput TOC (chapters and editions)"
 msgstr ""
 
+msgid "Output status information and property notifications"
+msgstr "Исписује податке о стању и обавештења о особинама"
+
+msgid "Do not print any progress information"
+msgstr "Не исписује податке о напредовању"
+
+msgid "Output messages"
+msgstr "Излазне поруке"
+
 msgid "Do not output status information of TYPE"
-msgstr "Не исписуј податке о стању за ВРСТУ"
+msgstr "Не исписује податке о стању за ВРСТУ"
 
 msgid "TYPE1,TYPE2,..."
 msgstr "ВРСТА1,ВРСТА2,..."
 
 msgid "Do not install a fault handler"
-msgstr "Не постављај руковаоца грешкама"
-
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Испиши траг доделе меморије (ако је укључено при превођењу)"
+msgstr "Неће инсталирати руковаоца грешкама"
 
 msgid "Force EOS on sources before shutting the pipeline down"
-msgstr ""
+msgstr "Приморај ЕОС на извору пре гашења спојке низа"
 
 msgid "Gather and print index statistics"
-msgstr ""
+msgstr "Прикупи и штампај статистике регистра"
 
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
-msgstr "ГРЕШКА: не могу да саставим цевовод: %s.\n"
+msgstr "ГРЕШКА: не могу да саставим спојку низа: %s.\n"
 
 msgid "ERROR: pipeline could not be constructed.\n"
-msgstr "ГРЕШКА: не могу да саставим цевовод.\n"
+msgstr "ГРЕШКА: не могу да саставим спојку низа.\n"
 
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
-msgstr "УПОЗОРЕЊЕ: неисправан цевовод: %s\n"
+msgstr "УПОЗОРЕЊЕ: неисправна спојка низа: %s\n"
 
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
-msgstr "ГРЕШКА: елемент „pipeline“ није нађен.\n"
+msgstr "ГРЕШКА: елемент „спојка низа“ није нађен.\n"
 
 msgid "Setting pipeline to PAUSED ...\n"
-msgstr ""
+msgstr "Постављам спојку низа на ПАУЗИРАН ...\n"
 
-#, fuzzy
 msgid "ERROR: Pipeline doesn't want to pause.\n"
-msgstr "ГРЕШКА: цевовод не жели да пусти.\n"
+msgstr "ГРЕШКА: Спојка низа не жели да иде на паузу.\n"
 
 msgid "Pipeline is live and does not need PREROLL ...\n"
-msgstr ""
+msgstr "Спојка низа је жива и не треба јој ПРЕРОЛ ...\n"
 
 msgid "Pipeline is PREROLLING ...\n"
-msgstr ""
+msgstr "Спојка низа врши ПРЕДУВИЈАЊЕ ...\n"
 
-#, fuzzy
 msgid "ERROR: pipeline doesn't want to preroll.\n"
-msgstr "ГРЕШКА: цевовод не жели да пусти.\n"
+msgstr "ГРЕШКА: спојка низа не жели да предувије.\n"
 
 msgid "Pipeline is PREROLLED ...\n"
-msgstr ""
+msgstr "Спојка низа је ПРЕДУВИЈЕНА ...\n"
 
 msgid "Setting pipeline to PLAYING ...\n"
-msgstr ""
+msgstr "Постављам спојку низа на ПУШТАМ ...\n"
 
 msgid "ERROR: pipeline doesn't want to play.\n"
-msgstr "ГРЕШКА: цевовод не жели да пусти.\n"
+msgstr "ГРЕШКА: спојка низа не жели да пусти.\n"
 
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
-msgstr ""
+msgstr "ЕОС је укључен приликом гашења —— Присиљавам ЕОС на спојци низа\n"
 
 msgid "Waiting for EOS...\n"
-msgstr ""
+msgstr "Чекам на ЕОС...\n"
 
 msgid "EOS received - stopping pipeline...\n"
-msgstr ""
+msgstr "ЕОС је примљен — заустављам спојку низа…\n"
 
 msgid "An error happened while waiting for EOS\n"
-msgstr ""
+msgstr "Дошло је до грешке док сам чекао на ЕОС\n"
 
 msgid "Execution ended after %"
-msgstr ""
+msgstr "Извршење је окончано након %"
 
 msgid "Setting pipeline to READY ...\n"
-msgstr ""
+msgstr "Постављам спојку низа на СПРЕМАН ...\n"
 
 msgid "Setting pipeline to NULL ...\n"
-msgstr ""
+msgstr "Постављам спојку низа на НИШТА ...\n"
 
-#, fuzzy
 msgid "Freeing pipeline ...\n"
-msgstr "Покрећем цевовод...\n"
+msgstr "Ослобађам спојку низа...\n"
+
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Испиши траг доделе меморије (ако је укључено при превођењу)"
 
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Употреба: gst-xmllaunch <датотека.xml> [ елемент.особина=вредност ... ]\n"
 
 #~ msgid "ERROR: parse of xml file '%s' failed.\n"
-#~ msgstr "ГРЕШКА: неуспешно рашчлањивање xml датотеке „%s“.\n"
+#~ msgstr "ГРЕШКА: није успело рашчлањивање хмл датотеке „%s“.\n"
 
 #~ msgid "ERROR: no toplevel pipeline element in file '%s'.\n"
-#~ msgstr "ГРЕШКА: нема врховног елемента цевовода у датотеци „%s“.\n"
+#~ msgstr "ГРЕШКА: нема елемента спојке низа највишег нивоа у датотеци „%s“.\n"
 
-#, fuzzy
 #~ msgid "WARNING: only one toplevel element is supported at this time.\n"
-#~ msgstr "УПОЗОРЕЊЕ: тренутно је подржан само један врховни елемент."
+#~ msgstr "УПОЗОРЕЊЕ: тренутно је подржан само један елемент највишег нивоа.\n"
 
 #~ msgid "ERROR: could not parse command line argument %d: %s.\n"
-#~ msgstr "ГРЕШКА: не могу да рашчланим %d. аргумент наредбе: %s.\n"
+#~ msgstr "ГРЕШКА: не могу да обрадим аргумент линије наредби %d.: %s.\n"
 
 #~ msgid "WARNING: element named '%s' not found.\n"
-#~ msgstr "УПОЗОРЕЊЕ: елемент са именом „%s“ није нађен.\n"
+#~ msgstr "УПОЗОРЕЊЕ: елемент под називом „%s“ није нађен.\n"
 
 #~ msgid "Save xml representation of pipeline to FILE and exit"
-#~ msgstr "Сачувај xml облик цевовода у ДАТОТЕКУ и заврши"
+#~ msgstr "Чува хмл облик спојке низа у ДАТОТЕКУ и излази"
 
 #~ msgid "FILE"
 #~ msgstr "ДАТОТЕКА"
 
-#, fuzzy
 #~ msgid "Do not install signal handlers for SIGUSR1 and SIGUSR2"
-#~ msgstr "Не постављај руковаоца грешкама"
+#~ msgstr "Неће инсталирати руковаоце сигнала за СИГУСР1 и СИГУСР2"
 
 #~ msgid "Disable accelerated CPU instructions"
 #~ msgstr "Искључи убрзане инструкције процесора"
diff --git a/po/sv.gmo b/po/sv.gmo
index 996a9f5..13271de 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 7028f8b..466dd5a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-01-09 19:46+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -559,9 +559,17 @@
 msgid "language code"
 msgstr "språkkod"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "språkkod för detta ström, enligt ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "språkkod"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "bild"
 
@@ -1079,6 +1087,18 @@
 msgid "FOUND TAG\n"
 msgstr "HITTADE TAGG\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "HITTADE TAGG   : hittat av elementet \"%s\".\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "HITTADE TAGG   : hittat av objektet \"%s\".\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "HITTADE TAGG\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1120,6 +1140,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Utmatningstaggar (även känt som metadata)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Skriv ut statusinformation och egenskapsnotifieringar"
 
@@ -1138,9 +1161,6 @@
 msgid "Do not install a fault handler"
 msgstr "Installera inte en felhanterare"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Skriv ut alloc-spår (om aktiverat vid kompileringen)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Tvinga EOS på källor innan rörledningen stängs av"
 
@@ -1212,6 +1232,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Frigör rörledning ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "Skriv ut alloc-spår (om aktiverat vid kompileringen)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Användning: gst-xmllaunch <fil.xml> [ element.egenskap=värde ... ]\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index bcb9bc0..363e321 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index bc1584c..60921b1 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2004-04-03 03:14+0300\n"
 "Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -575,7 +575,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1083,6 +1089,17 @@
 msgid "FOUND TAG\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ETİKET BULUNDU      : \"%s\" öğesi tarafından bulundu.\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ETİKET BULUNDU      : \"%s\" öğesi tarafından bulundu.\n"
+
+msgid "FOUND TOC\n"
+msgstr ""
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1122,6 +1139,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Çıktı etiketleri (metadata olarak da bilinir)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Çıktı durum bilgisi ve özellik uyarıları"
 
@@ -1141,9 +1161,6 @@
 msgid "Do not install a fault handler"
 msgstr "Hatalı işleticiyi kurma"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "'alloc' takibini yazdır (derleme sırasında etkinleştirilmişse)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1215,6 +1232,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "BORUHATTI çalıştırılıyor ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "'alloc' takibini yazdır (derleme sırasında etkinleştirilmişse)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "Kullanım: gst-xmllaunch <dosya.xml> [ öğe.özellik=değer ... ]\n"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index 474b55b..db6c1fe 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 1f83a75..644cd42 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2011-04-30 20:26+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -550,9 +550,17 @@
 msgid "language code"
 msgstr "код мови"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "код мови для потоку, код має відповідати ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "код мови"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "зображення"
 
@@ -1067,6 +1075,18 @@
 msgid "FOUND TAG\n"
 msgstr "ЗНАЙДЕНО МІТКУ\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "ЗНАЙДЕНО ТЕГ  : знайдено у елементі «%s».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "ЗНАЙДЕНО МІТКУ : знайдено об’єктом «%s».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "ЗНАЙДЕНО МІТКУ\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1108,6 +1128,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Вивести мітки (також відомі як метадані)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Вивести інформацію про стан та сповіщення щодо властивостей"
 
@@ -1126,9 +1149,6 @@
 msgid "Do not install a fault handler"
 msgstr "Не встановлювати обробник збоїв"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "Вивести трасування розподілу пам’яті (якщо ввімкнено при компіляції)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Примусово надіслати EOS до джерел до завершення роботи каналу"
 
@@ -1197,6 +1217,10 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Спорожнення каналу...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr ""
+#~ "Вивести трасування розподілу пам’яті (якщо ввімкнено при компіляції)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Використання: gst-xmllaunch <file.xml> [ елемент."
diff --git a/po/vi.gmo b/po/vi.gmo
index 47771bb..737b0bb 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index b5f98d5..be00bb9 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-10-03 19:09+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -550,9 +550,17 @@
 msgid "language code"
 msgstr "mã ngôn ngữ"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "mã ngôn ngữ cho luồng này, tùy theo tiêu chuẩn ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "mã ngôn ngữ"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "ảnh"
 
@@ -1068,6 +1076,18 @@
 msgid "FOUND TAG\n"
 msgstr "THẺ ĐÃ TÌM\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi yếu tố « %s ».\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "THẺ ĐÃ TÌM      : được tìm bởi đối tượng « %s ».\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "THẺ ĐÃ TÌM\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1109,6 +1129,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "Thể xuất (cũng được biết là siêu dữ liệu)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "Xuất thông tin trạng thái và thông báo tài sản"
 
@@ -1127,9 +1150,6 @@
 msgid "Do not install a fault handler"
 msgstr "Không cài đặt bộ quản lý lỗi"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "In ra vết cấp phát (nếu được bật khi biên dich)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "Ép buộc kết thúc luồng trên các nguồn trước khi đóng đường ống"
 
@@ -1200,6 +1220,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "Đang giải phóng đường ống...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "In ra vết cấp phát (nếu được bật khi biên dich)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr ""
 #~ "Cách sử dụng: gst-xmllaunch <tập_tin.xml> [ yếu_tố.tài_sản=giá_trị ...]\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 617c34a..10294f4 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 3483445..ad2c594 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.25.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2010-02-02 18:58+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -535,9 +535,17 @@
 msgid "language code"
 msgstr "语言代码"
 
-msgid "language code for this stream, conforming to ISO-639-1"
+#, fuzzy
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr "此流的语言代码，遵从为 ISO-639-1"
 
+#, fuzzy
+msgid "language name"
+msgstr "语言代码"
+
+msgid "freeform name of the language this stream is in"
+msgstr ""
+
 msgid "image"
 msgstr "图像"
 
@@ -1040,6 +1048,18 @@
 msgid "FOUND TAG\n"
 msgstr "找到标识\n"
 
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr "找到标识    :由组件“%s”找到。\n"
+
+#, fuzzy, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr "找到标识    :由组件“%s”找到。\n"
+
+#, fuzzy
+msgid "FOUND TOC\n"
+msgstr "找到标识\n"
+
 #, c-format
 msgid ""
 "INFO:\n"
@@ -1081,6 +1101,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr "输出标识(也可认为是元数据)"
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr "输出状态信息和属性通告"
 
@@ -1099,9 +1122,6 @@
 msgid "Do not install a fault handler"
 msgstr "不安装错误的处理程序"
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "打印分配记录(如果在编译时开启的话)"
-
 #, fuzzy
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr "关闭管道前强制对源发出 EOS 信号"
@@ -1195,6 +1215,9 @@
 #~ msgid "FILE"
 #~ msgstr "文件"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "打印分配记录(如果在编译时开启的话)"
+
 #~ msgid "Error writing registry cache to %s: %s"
 #~ msgstr "寄存器缓存写入 %s 时出错: %s"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 4f941bb..7ad6f7b 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 4cfa37f..e88944e 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-09-29 14:55+0200\n"
+"POT-Creation-Date: 2012-04-12 09:55+0200\n"
 "PO-Revision-Date: 2005-04-27 14:55+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -564,7 +564,13 @@
 msgid "language code"
 msgstr ""
 
-msgid "language code for this stream, conforming to ISO-639-1"
+msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
+msgstr ""
+
+msgid "language name"
+msgstr ""
+
+msgid "freeform name of the language this stream is in"
 msgstr ""
 
 msgid "image"
@@ -1062,6 +1068,17 @@
 msgstr ""
 
 #, c-format
+msgid "FOUND TOC      : found by element \"%s\".\n"
+msgstr ""
+
+#, c-format
+msgid "FOUND TOC      : found by object \"%s\".\n"
+msgstr ""
+
+msgid "FOUND TOC\n"
+msgstr ""
+
+#, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
@@ -1100,6 +1117,9 @@
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
+msgid "Ouput TOC (chapters and editions)"
+msgstr ""
+
 msgid "Output status information and property notifications"
 msgstr ""
 
@@ -1119,9 +1139,6 @@
 msgid "Do not install a fault handler"
 msgstr ""
 
-msgid "Print alloc trace (if enabled at compile time)"
-msgstr "印出 alloc 追蹤訊息 (如果編譯程式時有啟用這項功能)"
-
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
@@ -1193,6 +1210,9 @@
 msgid "Freeing pipeline ...\n"
 msgstr "執行管線 ...\n"
 
+#~ msgid "Print alloc trace (if enabled at compile time)"
+#~ msgstr "印出 alloc 追蹤訊息 (如果編譯程式時有啟用這項功能)"
+
 #~ msgid "Usage: gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 #~ msgstr "用法：gst-xmllaunch <file.xml> [ element.property=value ... ]\n"
 
diff --git a/scripts/gst-uninstalled b/scripts/gst-uninstalled
index 485a1c1..6cc1b37 100755
--- a/scripts/gst-uninstalled
+++ b/scripts/gst-uninstalled
@@ -59,10 +59,12 @@
 # /some/path: makes the dynamic linker look in . too, so avoid this
 LD_LIBRARY_PATH=$GST_PREFIX/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
 DYLD_LIBRARY_PATH=$GST_PREFIX/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
+GI_TYPELIB_PATH=$GST_PREFIX/share/gir-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}
 
 # GStreamer rtsp server library
 LD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$LD_LIBRARY_PATH
 DYLD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$DYLD_LIBRARY_PATH
+GI_TYPELIB_PATH=$GST/gst-rtsp-server/gst/rtsp-server:$GI_TYPELIB_PATH
 
 # GStreamer ffmpeg libraries
 for path in libavformat libavutil libavcodec libpostproc libavdevice
@@ -76,18 +78,22 @@
 do
   LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
   DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
+  GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH
 done
 
 # GStreamer core libraries
-for path in base net check controller dataprotocol
+for path in base net check controller
 do
   LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH
   DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
+  GI_TYPELIB_PATH=$GST/gstreamer/libs/gst/$path:$GI_TYPELIB_PATH
 done
 LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
 DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
+GI_TYPELIB_PATH=$GST/gstreamer/gst:$GI_TYPELIB_PATH
 export LD_LIBRARY_PATH
 export DYLD_LIBRARY_PATH
+export GI_TYPELIB_PATH
   
 export PKG_CONFIG_PATH="\
 $GST_PREFIX/lib/pkgconfig\
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ba0d7b6..9e6fc62 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,11 +94,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -92,6 +109,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -178,10 +200,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -194,10 +218,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -211,7 +235,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -228,6 +251,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -243,7 +270,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -276,6 +302,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -331,6 +358,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -364,7 +392,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -615,13 +642,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -656,10 +680,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/benchmarks/Makefile.am b/tests/benchmarks/Makefile.am
index 5d6171c..7e1cb55 100644
--- a/tests/benchmarks/Makefile.am
+++ b/tests/benchmarks/Makefile.am
@@ -13,5 +13,5 @@
 AM_CFLAGS = $(GST_OBJ_CFLAGS)
 
 controller_CFLAGS  = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
-controller_LDADD = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la $(LDADD)
+controller_LDADD = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la $(LDADD)
 
diff --git a/tests/benchmarks/Makefile.in b/tests/benchmarks/Makefile.in
index 06e6f1b..34da120 100644
--- a/tests/benchmarks/Makefile.in
+++ b/tests/benchmarks/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -88,8 +105,8 @@
 caps_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 caps_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 capsnego_SOURCES = capsnego.c
 capsnego_OBJECTS = capsnego.$(OBJEXT)
@@ -102,7 +119,7 @@
 controller_SOURCES = controller.c
 controller_OBJECTS = controller-controller.$(OBJEXT)
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
-controller_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+controller_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 controller_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(controller_CFLAGS) \
@@ -137,21 +154,21 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = caps.c capsnego.c complexity.c controller.c \
 	gstbufferstress.c gstclockstress.c gstpollstress.c init.c \
@@ -159,6 +176,11 @@
 DIST_SOURCES = caps.c capsnego.c complexity.c controller.c \
 	gstbufferstress.c gstclockstress.c gstpollstress.c init.c \
 	mass-elements.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -215,10 +237,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -231,10 +255,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -248,7 +272,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -265,6 +288,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -280,7 +307,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -313,6 +339,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -368,6 +395,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -401,7 +429,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -425,7 +452,7 @@
 LDADD = $(GST_OBJ_LIBS)
 AM_CFLAGS = $(GST_OBJ_CFLAGS)
 controller_CFLAGS = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
-controller_LDADD = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la $(LDADD)
+controller_LDADD = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la $(LDADD)
 all: all-am
 
 .SUFFIXES:
@@ -469,31 +496,31 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-caps$(EXEEXT): $(caps_OBJECTS) $(caps_DEPENDENCIES) 
+caps$(EXEEXT): $(caps_OBJECTS) $(caps_DEPENDENCIES) $(EXTRA_caps_DEPENDENCIES) 
 	@rm -f caps$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(caps_OBJECTS) $(caps_LDADD) $(LIBS)
-capsnego$(EXEEXT): $(capsnego_OBJECTS) $(capsnego_DEPENDENCIES) 
+capsnego$(EXEEXT): $(capsnego_OBJECTS) $(capsnego_DEPENDENCIES) $(EXTRA_capsnego_DEPENDENCIES) 
 	@rm -f capsnego$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(capsnego_OBJECTS) $(capsnego_LDADD) $(LIBS)
-complexity$(EXEEXT): $(complexity_OBJECTS) $(complexity_DEPENDENCIES) 
+complexity$(EXEEXT): $(complexity_OBJECTS) $(complexity_DEPENDENCIES) $(EXTRA_complexity_DEPENDENCIES) 
 	@rm -f complexity$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(complexity_OBJECTS) $(complexity_LDADD) $(LIBS)
-controller$(EXEEXT): $(controller_OBJECTS) $(controller_DEPENDENCIES) 
+controller$(EXEEXT): $(controller_OBJECTS) $(controller_DEPENDENCIES) $(EXTRA_controller_DEPENDENCIES) 
 	@rm -f controller$(EXEEXT)
 	$(AM_V_CCLD)$(controller_LINK) $(controller_OBJECTS) $(controller_LDADD) $(LIBS)
-gstbufferstress$(EXEEXT): $(gstbufferstress_OBJECTS) $(gstbufferstress_DEPENDENCIES) 
+gstbufferstress$(EXEEXT): $(gstbufferstress_OBJECTS) $(gstbufferstress_DEPENDENCIES) $(EXTRA_gstbufferstress_DEPENDENCIES) 
 	@rm -f gstbufferstress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gstbufferstress_OBJECTS) $(gstbufferstress_LDADD) $(LIBS)
-gstclockstress$(EXEEXT): $(gstclockstress_OBJECTS) $(gstclockstress_DEPENDENCIES) 
+gstclockstress$(EXEEXT): $(gstclockstress_OBJECTS) $(gstclockstress_DEPENDENCIES) $(EXTRA_gstclockstress_DEPENDENCIES) 
 	@rm -f gstclockstress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gstclockstress_OBJECTS) $(gstclockstress_LDADD) $(LIBS)
-gstpollstress$(EXEEXT): $(gstpollstress_OBJECTS) $(gstpollstress_DEPENDENCIES) 
+gstpollstress$(EXEEXT): $(gstpollstress_OBJECTS) $(gstpollstress_DEPENDENCIES) $(EXTRA_gstpollstress_DEPENDENCIES) 
 	@rm -f gstpollstress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gstpollstress_OBJECTS) $(gstpollstress_LDADD) $(LIBS)
-init$(EXEEXT): $(init_OBJECTS) $(init_DEPENDENCIES) 
+init$(EXEEXT): $(init_OBJECTS) $(init_DEPENDENCIES) $(EXTRA_init_DEPENDENCIES) 
 	@rm -f init$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(init_OBJECTS) $(init_LDADD) $(LIBS)
-mass-elements$(EXEEXT): $(mass_elements_OBJECTS) $(mass_elements_DEPENDENCIES) 
+mass-elements$(EXEEXT): $(mass_elements_OBJECTS) $(mass_elements_DEPENDENCIES) $(EXTRA_mass_elements_DEPENDENCIES) 
 	@rm -f mass-elements$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(mass_elements_OBJECTS) $(mass_elements_LDADD) $(LIBS)
 
@@ -516,42 +543,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 controller-controller.o: controller.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -MT controller-controller.o -MD -MP -MF $(DEPDIR)/controller-controller.Tpo -c -o controller-controller.o `test -f 'controller.c' || echo '$(srcdir)/'`controller.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/controller-controller.Tpo $(DEPDIR)/controller-controller.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='controller.c' object='controller-controller.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='controller.c' object='controller-controller.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -c -o controller-controller.o `test -f 'controller.c' || echo '$(srcdir)/'`controller.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -c -o controller-controller.o `test -f 'controller.c' || echo '$(srcdir)/'`controller.c
 
 controller-controller.obj: controller.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -MT controller-controller.obj -MD -MP -MF $(DEPDIR)/controller-controller.Tpo -c -o controller-controller.obj `if test -f 'controller.c'; then $(CYGPATH_W) 'controller.c'; else $(CYGPATH_W) '$(srcdir)/controller.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/controller-controller.Tpo $(DEPDIR)/controller-controller.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='controller.c' object='controller-controller.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='controller.c' object='controller-controller.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -c -o controller-controller.obj `if test -f 'controller.c'; then $(CYGPATH_W) 'controller.c'; else $(CYGPATH_W) '$(srcdir)/controller.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(controller_CFLAGS) $(CFLAGS) -c -o controller-controller.obj `if test -f 'controller.c'; then $(CYGPATH_W) 'controller.c'; else $(CYGPATH_W) '$(srcdir)/controller.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -655,10 +677,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/benchmarks/controller.c b/tests/benchmarks/controller.c
index 32eaff2..850b4c1 100644
--- a/tests/benchmarks/controller.c
+++ b/tests/benchmarks/controller.c
@@ -19,9 +19,11 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#include <stdio.h>
+
 #include <gst/gst.h>
-#include <gst/controller/gstcontroller.h>
 #include <gst/controller/gstinterpolationcontrolsource.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
 
 /* a song in buzztard can easily reach 30000 here */
 #define NUM_CP 15000
@@ -81,15 +83,13 @@
   gint i, j;
   GstElement *src, *sink;
   GstElement *bin;
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
-  GValue freq = { 0, };
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstClockTime bt, ct;
   GstClockTimeDiff elapsed;
   GstClockTime tick;
 
   gst_init (&argc, &argv);
-  gst_controller_init (&argc, &argv);
 
   /* build pipeline */
   bin = gst_pipeline_new ("pipeline");
@@ -111,20 +111,13 @@
 
   tick = BLOCK_SIZE * GST_SECOND / 44100;
 
-  /* add a controller to the source */
-  if (!(ctrl = gst_controller_new (G_OBJECT (src), "freq", NULL))) {
-    GST_WARNING ("can't control source element");
-    goto Error;
-  }
-
   /* create and configure control source */
-  csource = gst_interpolation_control_source_new ();
-  gst_controller_set_control_source (ctrl, "freq",
-      GST_CONTROL_SOURCE (csource));
-  gst_interpolation_control_source_set_interpolation_mode (csource,
-      GST_INTERPOLATE_LINEAR);
-  g_value_init (&freq, G_TYPE_DOUBLE);
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
+  gst_object_add_control_binding (GST_OBJECT (src),
+      gst_direct_control_binding_new (GST_OBJECT (src), "freq", cs));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values, we set them in a linear order as we would when loading
    * a stored project
@@ -132,8 +125,8 @@
   bt = gst_util_get_timestamp ();
 
   for (i = 0; i < NUM_CP; i++) {
-    g_value_set_double (&freq, g_random_double_range (50.0, 3000.0));
-    gst_interpolation_control_source_set (csource, i * tick, &freq);
+    gst_timed_value_control_source_set (tvcs, i * tick,
+        g_random_double_range (50.0, 3000.0));
   }
 
   ct = gst_util_get_timestamp ();
@@ -149,8 +142,8 @@
 
   for (i = 0; i < 100; i++) {
     j = g_random_int_range (0, NUM_CP - 1);
-    g_value_set_double (&freq, g_random_double_range (50.0, 3000.0));
-    gst_interpolation_control_source_set (csource, j * tick, &freq);
+    gst_timed_value_control_source_set (tvcs, j * tick,
+        g_random_double_range (50.0, 3000.0));
   }
 
   ct = gst_util_get_timestamp ();
@@ -161,17 +154,11 @@
   {
     GstClockTime sample_duration =
         gst_util_uint64_scale_int (1, GST_SECOND, 44100);
-    GstValueArray va = { "freq",
-      BLOCK_SIZE * NUM_CP,
-      sample_duration,
-      NULL
-    };
-
     gdouble *values = g_new0 (gdouble, BLOCK_SIZE * NUM_CP);
-    va.values = (gpointer *) values;
 
     bt = gst_util_get_timestamp ();
-    gst_control_source_get_value_array (GST_CONTROL_SOURCE (csource), 0, &va);
+    gst_control_source_get_value_array (cs, 0, sample_duration,
+        BLOCK_SIZE * NUM_CP, values);
     ct = gst_util_get_timestamp ();
     g_free (values);
     elapsed = GST_CLOCK_DIFF (bt, ct);
@@ -179,8 +166,6 @@
         GST_TIME_ARGS (elapsed));
   }
 
-  g_object_unref (csource);
-
   /* play, this test sequential reads */
   bt = gst_util_get_timestamp ();
 
@@ -196,8 +181,8 @@
       GST_TIME_ARGS (elapsed));
 
   /* cleanup */
-  g_object_unref (G_OBJECT (ctrl));
-  gst_object_unref (G_OBJECT (bin));
+  gst_object_unref (cs);
+  gst_object_unref (bin);
   res = 0;
 Error:
   return res;
diff --git a/tests/benchmarks/gstbufferstress.c b/tests/benchmarks/gstbufferstress.c
index e3f2912..d17191d 100644
--- a/tests/benchmarks/gstbufferstress.c
+++ b/tests/benchmarks/gstbufferstress.c
@@ -20,11 +20,12 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <gst/gst.h>
+#include "gst/glib-compat-private.h"
 
 #define MAX_THREADS  1000
 
 static guint64 nbbuffers;
-static GMutex *mutex;
+static GMutex mutex;
 
 
 static void *
@@ -35,8 +36,8 @@
   GstBuffer *buf;
   GstClockTime start, end;
 
-  g_mutex_lock (mutex);
-  g_mutex_unlock (mutex);
+  g_mutex_lock (&mutex);
+  g_mutex_unlock (&mutex);
 
   start = gst_util_get_timestamp ();
 
@@ -67,7 +68,7 @@
   GstClockTime start, end;
 
   gst_init (&argc, &argv);
-  mutex = g_mutex_new ();
+  g_mutex_init (&mutex);
 
   if (argc != 3) {
     g_print ("usage: %s <num_threads> <nbbuffers>\n", argv[0]);
@@ -87,7 +88,7 @@
     exit (-3);
   }
 
-  g_mutex_lock (mutex);
+  g_mutex_lock (&mutex);
   /* Let's just make sure the GstBufferClass is loaded ... */
   tmp = gst_buffer_new ();
 
@@ -95,7 +96,9 @@
   for (t = 0; t < num_threads; t++) {
     GError *error = NULL;
 
-    threads[t] = g_thread_create (run_test, GINT_TO_POINTER (t), TRUE, &error);
+    threads[t] = g_thread_try_new ("bufferstresstest", run_test,
+        GINT_TO_POINTER (t), &error);
+
     if (error) {
       printf ("ERROR: g_thread_create() %s\n", error->message);
       exit (-1);
@@ -104,7 +107,7 @@
 
   /* Signal all threads to start */
   start = gst_util_get_timestamp ();
-  g_mutex_unlock (mutex);
+  g_mutex_unlock (&mutex);
 
   for (t = 0; t < num_threads; t++) {
     if (threads[t])
diff --git a/tests/benchmarks/gstclockstress.c b/tests/benchmarks/gstclockstress.c
index b0f721b..47aa5cc 100644
--- a/tests/benchmarks/gstclockstress.c
+++ b/tests/benchmarks/gstclockstress.c
@@ -35,7 +35,7 @@
 
   while (running) {
     gst_clock_get_time (sysclock);
-    prev = G_ATOMIC_INT_ADD (&count, 1);
+    prev = g_atomic_int_add (&count, 1);
     if (prev == G_MAXINT)
       g_warning ("overflow");
   }
@@ -60,12 +60,19 @@
 
   num_threads = atoi (argv[1]);
 
+  if (num_threads <= 0 || num_threads > MAX_THREADS) {
+    g_print ("number of threads must be between 0 and %d\n", MAX_THREADS);
+    exit (-2);
+  }
+
   sysclock = gst_system_clock_obtain ();
 
   for (t = 0; t < num_threads; t++) {
     GError *error = NULL;
 
-    threads[t] = g_thread_create (run_test, sysclock, TRUE, &error);
+    threads[t] = g_thread_try_new ("clockstresstest", run_test,
+        sysclock, &error);
+
     if (error) {
       printf ("ERROR: g_thread_create() %s\n", error->message);
       exit (-1);
diff --git a/tests/benchmarks/gstpollstress.c b/tests/benchmarks/gstpollstress.c
index bf0d548..dfd9caf 100644
--- a/tests/benchmarks/gstpollstress.c
+++ b/tests/benchmarks/gstpollstress.c
@@ -21,10 +21,11 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <gst/gst.h>
+#include "gst/glib-compat-private.h"
 
 static GstPoll *set;
 static GList *fds = NULL;
-static GMutex *fdlock;
+static GMutex fdlock;
 static GTimer *timer;
 
 #define MAX_THREADS  100
@@ -36,7 +37,7 @@
   gint random;
   gint removed = 0;
 
-  g_mutex_lock (fdlock);
+  g_mutex_lock (&fdlock);
 
   for (walk = fds; walk;) {
     GstPollFD *fd = (GstPollFD *) walk->data;
@@ -105,7 +106,7 @@
     }
   }
 
-  g_mutex_unlock (fdlock);
+  g_mutex_unlock (&fdlock);
 }
 
 static void *
@@ -123,10 +124,10 @@
     } else {
       mess_some_more ();
       if (g_timer_elapsed (timer, NULL) > 0.5) {
-        g_mutex_lock (fdlock);
+        g_mutex_lock (&fdlock);
         g_print ("active fds :%d\n", g_list_length (fds));
         g_timer_start (timer);
-        g_mutex_unlock (fdlock);
+        g_mutex_unlock (&fdlock);
       }
       g_usleep (1);
     }
@@ -144,7 +145,7 @@
 
   gst_init (&argc, &argv);
 
-  fdlock = g_mutex_new ();
+  g_mutex_init (&fdlock);
   timer = g_timer_new ();
 
   if (argc != 2) {
@@ -159,7 +160,9 @@
   for (t = 0; t < num_threads; t++) {
     GError *error = NULL;
 
-    threads[t] = g_thread_create (run_test, GINT_TO_POINTER (t), TRUE, &error);
+    threads[t] = g_thread_try_new ("pollstresstest", run_test,
+        GINT_TO_POINTER (t), &error);
+
     if (error) {
       printf ("ERROR: g_thread_create() %s\n", error->message);
       exit (-1);
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 43aac86..fa814f8 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -14,7 +14,7 @@
         GST_PLUGIN_SYSTEM_PATH=					\
         GST_PLUGIN_PATH=$(top_builddir)/plugins
 
-plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
+plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
 
 # override to _not_ install the test plugins
 install-pluginLTLIBRARIES:
@@ -27,6 +27,9 @@
 
 clean-local: clean-local-check
 
+# These tests don't even build any longer:
+#   gst/gstindex.c
+
 if GST_DISABLE_PARSE
 PARSE_CHECKS = pipelines/parse-disabled
 else
@@ -62,11 +65,11 @@
 	gst/gst					\
 	gst/gstbin				\
 	gst/gstchildproxy			\
+	gst/gstcontroller				\
 	gst/gstelement				\
 	gst/gstelementfactory			\
 	gst/gstevent				\
 	gst/gstghostpad				\
-	gst/gstindex				\
 	gst/gstplugin				\
 	gst/gstpreset				\
 	gst/gstquery				\
@@ -92,15 +95,18 @@
 	libs/basesink				\
 	libs/controller				\
 	libs/typefindhelper			\
+	pipelines/seek				\
 	pipelines/stress			\
 	pipelines/queue-error
 endif
 
 check_PROGRAMS =				\
 	$(ABI_CHECKS)			     	\
+	gst/gstatomicqueue			\
 	gst/gstbuffer				\
 	gst/gstbufferlist			\
 	gst/gstmeta				\
+	gst/gstmemory				\
 	gst/gstbus				\
 	gst/gstcaps     			\
 	$(CXX_CHECKS)			     	\
@@ -120,12 +126,13 @@
 	gst/gsttag				\
 	gst/gsttagsetter			\
 	gst/gsttask				\
+	gst/gsttoc				\
+	gst/gsttocsetter			\
 	gst/gstvalue				\
 	generic/states				\
 	$(PARSE_CHECKS)				\
 	$(REGISTRY_CHECKS)			\
 	$(LIBSABI_CHECKS)		     	\
-	libs/gdp				\
 	libs/adapter				\
 	libs/bitreader				\
 	libs/bytereader				\
@@ -137,7 +144,7 @@
 # failing tests
 noinst_PROGRAMS =				\
 	gst/gstpipeline				\
-	libs/collectpads
+	libs/collectpads2
 
 # elements to ignore for the state tests
 # STATE_IGNORE_ELEMENTS =
@@ -166,8 +173,8 @@
 
 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
-LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 gst_gstcpp_SOURCES = gst/gstcpp.cc
@@ -176,32 +183,25 @@
 
 gst_gstutils_LDADD = $(LDADD) $(GSL_LIBS) $(GMP_LIBS)
 
-libs_gdp_SOURCES = \
-	libs/gdp.c
-libs_gdp_LDADD = \
-	$(top_builddir)/libs/gst/dataprotocol/libgstdataprotocol-@GST_MAJORMINOR@.la \
-	$(LDADD)
-
 elements_fdsrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
 	-DTESTFILE=\"$(top_srcdir)/configure.ac\"
 elements_filesrc_CFLAGS=$(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
 	-DTESTFILE=\"$(top_srcdir)/configure.ac\"
 
 libs_controller_LDADD = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(LDADD)
 libs_gstnetclientclock_LDADD = \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(LDADD)
 libs_gstnettimeprovider_LDADD = \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
-	$(LDADD)
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
+	$(GIO_LIBS) $(LDADD)
 
 # valgrind testing
 # these just need valgrind fixing, period
 VALGRIND_TO_FIX = \
 	gst/gstinfo \
-	libs/collectpads \
 	pipelines/parse-launch
 
 VALGRIND_IGNORE = \
@@ -223,7 +223,6 @@
 	libs/gst/base \
 	libs/gst/controller \
 	libs/gst/check \
-	libs/gst/dataprotocol \
 	libs/gst/net \
 	plugins/elements
 COVERAGE_FILES = $(foreach dir,$(COVERAGE_DIRS),$(wildcard $(top_builddir)/$(dir)/*.gcov))
@@ -268,7 +267,6 @@
 	      coverage/$$dir/index.xml > coverage/$$dir/index.html;	\
 	  fi; \
         done
-
 	for file in $(COVERAGE_FILES_REL); do				\
 	  echo Generating coverage/$$file.html; 			\
 	  perl $(top_srcdir)/common/coverage/coverage-report-entry.pl   \
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 5451cbc..8546a23 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,6 +17,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -37,22 +54,25 @@
 host_triplet = @host@
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
-check_PROGRAMS = gst/gstbuffer$(EXEEXT) gst/gstbufferlist$(EXEEXT) \
-	gst/gstmeta$(EXEEXT) gst/gstbus$(EXEEXT) gst/gstcaps$(EXEEXT) \
-	$(am__EXEEXT_1) gst/gstdatetime$(EXEEXT) gst/gstinfo$(EXEEXT) \
-	gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
-	gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
-	gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
-	gst/gstpoll$(EXEEXT) gst/gstsegment$(EXEEXT) \
-	gst/gstsystemclock$(EXEEXT) gst/gstclock$(EXEEXT) \
-	gst/gststructure$(EXEEXT) gst/gsttag$(EXEEXT) \
-	gst/gsttagsetter$(EXEEXT) gst/gsttask$(EXEEXT) \
-	gst/gstvalue$(EXEEXT) generic/states$(EXEEXT) $(am__EXEEXT_2) \
-	$(am__EXEEXT_3) libs/gdp$(EXEEXT) libs/adapter$(EXEEXT) \
-	libs/bitreader$(EXEEXT) libs/bytereader$(EXEEXT) \
-	libs/bytewriter$(EXEEXT) libs/gstnetclientclock$(EXEEXT) \
+check_PROGRAMS = gst/gstatomicqueue$(EXEEXT) gst/gstbuffer$(EXEEXT) \
+	gst/gstbufferlist$(EXEEXT) gst/gstmeta$(EXEEXT) \
+	gst/gstmemory$(EXEEXT) gst/gstbus$(EXEEXT) \
+	gst/gstcaps$(EXEEXT) $(am__EXEEXT_1) gst/gstdatetime$(EXEEXT) \
+	gst/gstinfo$(EXEEXT) gst/gstiterator$(EXEEXT) \
+	gst/gstmessage$(EXEEXT) gst/gstminiobject$(EXEEXT) \
+	gst/gstobject$(EXEEXT) gst/gstpad$(EXEEXT) \
+	gst/gstparamspecs$(EXEEXT) gst/gstpoll$(EXEEXT) \
+	gst/gstsegment$(EXEEXT) gst/gstsystemclock$(EXEEXT) \
+	gst/gstclock$(EXEEXT) gst/gststructure$(EXEEXT) \
+	gst/gsttag$(EXEEXT) gst/gsttagsetter$(EXEEXT) \
+	gst/gsttask$(EXEEXT) gst/gsttoc$(EXEEXT) \
+	gst/gsttocsetter$(EXEEXT) gst/gstvalue$(EXEEXT) \
+	generic/states$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \
+	libs/adapter$(EXEEXT) libs/bitreader$(EXEEXT) \
+	libs/bytereader$(EXEEXT) libs/bytewriter$(EXEEXT) \
+	libs/gstnetclientclock$(EXEEXT) \
 	libs/gstnettimeprovider$(EXEEXT) libs/transform1$(EXEEXT)
-noinst_PROGRAMS = gst/gstpipeline$(EXEEXT) libs/collectpads$(EXEEXT)
+noinst_PROGRAMS = gst/gstpipeline$(EXEEXT) libs/collectpads2$(EXEEXT)
 subdir = tests/check
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -106,11 +126,11 @@
 @GST_DISABLE_REGISTRY_FALSE@am__EXEEXT_3 = gst/gst$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstbin$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstchildproxy$(EXEEXT) \
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstcontroller$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelement$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelementfactory$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstevent$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstghostpad$(EXEEXT) \
-@GST_DISABLE_REGISTRY_FALSE@	gst/gstindex$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstplugin$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstpreset$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstquery$(EXEEXT) \
@@ -136,6 +156,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesink$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	libs/controller$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	libs/typefindhelper$(EXEEXT) \
+@GST_DISABLE_REGISTRY_FALSE@	pipelines/seek$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/stress$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/queue-error$(EXEEXT)
 PROGRAMS = $(noinst_PROGRAMS)
@@ -143,30 +164,30 @@
 elements_capsfilter_OBJECTS = capsfilter.$(OBJEXT)
 elements_capsfilter_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-elements_capsfilter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_capsfilter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__dirstamp = $(am__leading_dot)dirstamp
 elements_fakesink_SOURCES = elements/fakesink.c
 elements_fakesink_OBJECTS = fakesink.$(OBJEXT)
 elements_fakesink_LDADD = $(LDADD)
-elements_fakesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_fakesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_fakesrc_SOURCES = elements/fakesrc.c
 elements_fakesrc_OBJECTS = fakesrc.$(OBJEXT)
 elements_fakesrc_LDADD = $(LDADD)
-elements_fakesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_fakesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_fdsrc_SOURCES = elements/fdsrc.c
 elements_fdsrc_OBJECTS = elements_fdsrc-fdsrc.$(OBJEXT)
 elements_fdsrc_LDADD = $(LDADD)
-elements_fdsrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_fdsrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_fdsrc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -175,14 +196,14 @@
 elements_filesink_SOURCES = elements/filesink.c
 elements_filesink_OBJECTS = filesink.$(OBJEXT)
 elements_filesink_LDADD = $(LDADD)
-elements_filesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_filesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_filesrc_SOURCES = elements/filesrc.c
 elements_filesrc_OBJECTS = elements_filesrc-filesrc.$(OBJEXT)
 elements_filesrc_LDADD = $(LDADD)
-elements_filesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_filesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_filesrc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -191,406 +212,432 @@
 elements_funnel_SOURCES = elements/funnel.c
 elements_funnel_OBJECTS = funnel.$(OBJEXT)
 elements_funnel_LDADD = $(LDADD)
-elements_funnel_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_funnel_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_identity_SOURCES = elements/identity.c
 elements_identity_OBJECTS = identity.$(OBJEXT)
 elements_identity_LDADD = $(LDADD)
-elements_identity_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_identity_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_multiqueue_SOURCES = elements/multiqueue.c
 elements_multiqueue_OBJECTS = multiqueue.$(OBJEXT)
 elements_multiqueue_LDADD = $(LDADD)
-elements_multiqueue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_multiqueue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_queue_SOURCES = elements/queue.c
 elements_queue_OBJECTS = queue.$(OBJEXT)
 elements_queue_LDADD = $(LDADD)
-elements_queue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_queue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_queue2_SOURCES = elements/queue2.c
 elements_queue2_OBJECTS = queue2.$(OBJEXT)
 elements_queue2_LDADD = $(LDADD)
-elements_queue2_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_queue2_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_selector_SOURCES = elements/selector.c
 elements_selector_OBJECTS = selector.$(OBJEXT)
 elements_selector_LDADD = $(LDADD)
-elements_selector_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_selector_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_tee_SOURCES = elements/tee.c
 elements_tee_OBJECTS = tee.$(OBJEXT)
 elements_tee_LDADD = $(LDADD)
-elements_tee_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_tee_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elements_valve_SOURCES = elements/valve.c
 elements_valve_OBJECTS = valve.$(OBJEXT)
 elements_valve_LDADD = $(LDADD)
-elements_valve_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+elements_valve_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 generic_sinks_SOURCES = generic/sinks.c
 generic_sinks_OBJECTS = sinks.$(OBJEXT)
 generic_sinks_LDADD = $(LDADD)
-generic_sinks_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+generic_sinks_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 generic_states_SOURCES = generic/states.c
 generic_states_OBJECTS = states.$(OBJEXT)
 generic_states_LDADD = $(LDADD)
-generic_states_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+generic_states_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gst_SOURCES = gst/gst.c
 gst_gst_OBJECTS = gst.$(OBJEXT)
 gst_gst_LDADD = $(LDADD)
-gst_gst_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gst_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+gst_gstatomicqueue_SOURCES = gst/gstatomicqueue.c
+gst_gstatomicqueue_OBJECTS = gstatomicqueue.$(OBJEXT)
+gst_gstatomicqueue_LDADD = $(LDADD)
+gst_gstatomicqueue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstbin_SOURCES = gst/gstbin.c
 gst_gstbin_OBJECTS = gstbin.$(OBJEXT)
 gst_gstbin_LDADD = $(LDADD)
-gst_gstbin_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstbin_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstbuffer_SOURCES = gst/gstbuffer.c
 gst_gstbuffer_OBJECTS = gstbuffer.$(OBJEXT)
 gst_gstbuffer_LDADD = $(LDADD)
-gst_gstbuffer_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstbuffer_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstbufferlist_SOURCES = gst/gstbufferlist.c
 gst_gstbufferlist_OBJECTS = gstbufferlist.$(OBJEXT)
 gst_gstbufferlist_LDADD = $(LDADD)
-gst_gstbufferlist_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstbufferlist_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstbus_SOURCES = gst/gstbus.c
 gst_gstbus_OBJECTS = gstbus.$(OBJEXT)
 gst_gstbus_LDADD = $(LDADD)
-gst_gstbus_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstbus_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstcaps_SOURCES = gst/gstcaps.c
 gst_gstcaps_OBJECTS = gstcaps.$(OBJEXT)
 gst_gstcaps_LDADD = $(LDADD)
-gst_gstcaps_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstcaps_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstchildproxy_SOURCES = gst/gstchildproxy.c
 gst_gstchildproxy_OBJECTS = gstchildproxy.$(OBJEXT)
 gst_gstchildproxy_LDADD = $(LDADD)
-gst_gstchildproxy_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstchildproxy_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstclock_SOURCES = gst/gstclock.c
 gst_gstclock_OBJECTS = gstclock.$(OBJEXT)
 gst_gstclock_LDADD = $(LDADD)
-gst_gstclock_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstclock_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+gst_gstcontroller_SOURCES = gst/gstcontroller.c
+gst_gstcontroller_OBJECTS = gstcontroller.$(OBJEXT)
+gst_gstcontroller_LDADD = $(LDADD)
+gst_gstcontroller_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 am_gst_gstcpp_OBJECTS = gstcpp.$(OBJEXT)
 gst_gstcpp_OBJECTS = $(am_gst_gstcpp_OBJECTS)
 gst_gstcpp_LDADD = $(LDADD)
-gst_gstcpp_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstcpp_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstdatetime_SOURCES = gst/gstdatetime.c
 gst_gstdatetime_OBJECTS = gstdatetime.$(OBJEXT)
 gst_gstdatetime_LDADD = $(LDADD)
-gst_gstdatetime_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstdatetime_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstelement_SOURCES = gst/gstelement.c
 gst_gstelement_OBJECTS = gstelement.$(OBJEXT)
 gst_gstelement_LDADD = $(LDADD)
-gst_gstelement_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstelement_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstelementfactory_SOURCES = gst/gstelementfactory.c
 gst_gstelementfactory_OBJECTS = gstelementfactory.$(OBJEXT)
 gst_gstelementfactory_LDADD = $(LDADD)
-gst_gstelementfactory_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstelementfactory_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstevent_SOURCES = gst/gstevent.c
 gst_gstevent_OBJECTS = gstevent.$(OBJEXT)
 gst_gstevent_LDADD = $(LDADD)
-gst_gstevent_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstevent_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstghostpad_SOURCES = gst/gstghostpad.c
 gst_gstghostpad_OBJECTS = gstghostpad.$(OBJEXT)
 gst_gstghostpad_LDADD = $(LDADD)
-gst_gstghostpad_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
-	$(am__DEPENDENCIES_1)
-gst_gstindex_SOURCES = gst/gstindex.c
-gst_gstindex_OBJECTS = gstindex.$(OBJEXT)
-gst_gstindex_LDADD = $(LDADD)
-gst_gstindex_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstghostpad_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstinfo_SOURCES = gst/gstinfo.c
 gst_gstinfo_OBJECTS = gstinfo.$(OBJEXT)
 gst_gstinfo_LDADD = $(LDADD)
-gst_gstinfo_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstinfo_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstiterator_SOURCES = gst/gstiterator.c
 gst_gstiterator_OBJECTS = gstiterator.$(OBJEXT)
 gst_gstiterator_LDADD = $(LDADD)
-gst_gstiterator_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstiterator_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+gst_gstmemory_SOURCES = gst/gstmemory.c
+gst_gstmemory_OBJECTS = gstmemory.$(OBJEXT)
+gst_gstmemory_LDADD = $(LDADD)
+gst_gstmemory_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstmessage_SOURCES = gst/gstmessage.c
 gst_gstmessage_OBJECTS = gstmessage.$(OBJEXT)
 gst_gstmessage_LDADD = $(LDADD)
-gst_gstmessage_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstmessage_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstmeta_SOURCES = gst/gstmeta.c
 gst_gstmeta_OBJECTS = gstmeta.$(OBJEXT)
 gst_gstmeta_LDADD = $(LDADD)
-gst_gstmeta_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstmeta_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstminiobject_SOURCES = gst/gstminiobject.c
 gst_gstminiobject_OBJECTS = gstminiobject.$(OBJEXT)
 gst_gstminiobject_LDADD = $(LDADD)
-gst_gstminiobject_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstminiobject_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstobject_SOURCES = gst/gstobject.c
 gst_gstobject_OBJECTS = gstobject.$(OBJEXT)
 gst_gstobject_LDADD = $(LDADD)
-gst_gstobject_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstobject_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstpad_SOURCES = gst/gstpad.c
 gst_gstpad_OBJECTS = gstpad.$(OBJEXT)
 gst_gstpad_LDADD = $(LDADD)
-gst_gstpad_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstpad_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstparamspecs_SOURCES = gst/gstparamspecs.c
 gst_gstparamspecs_OBJECTS = gstparamspecs.$(OBJEXT)
 gst_gstparamspecs_LDADD = $(LDADD)
-gst_gstparamspecs_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstparamspecs_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstpipeline_SOURCES = gst/gstpipeline.c
 gst_gstpipeline_OBJECTS = gstpipeline.$(OBJEXT)
 gst_gstpipeline_LDADD = $(LDADD)
-gst_gstpipeline_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstpipeline_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstplugin_SOURCES = gst/gstplugin.c
 gst_gstplugin_OBJECTS = gstplugin.$(OBJEXT)
 gst_gstplugin_LDADD = $(LDADD)
-gst_gstplugin_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstplugin_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstpoll_SOURCES = gst/gstpoll.c
 gst_gstpoll_OBJECTS = gstpoll.$(OBJEXT)
 gst_gstpoll_LDADD = $(LDADD)
-gst_gstpoll_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstpoll_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstpreset_SOURCES = gst/gstpreset.c
 gst_gstpreset_OBJECTS = gstpreset.$(OBJEXT)
 gst_gstpreset_LDADD = $(LDADD)
-gst_gstpreset_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstpreset_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstquery_SOURCES = gst/gstquery.c
 gst_gstquery_OBJECTS = gstquery.$(OBJEXT)
 gst_gstquery_LDADD = $(LDADD)
-gst_gstquery_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstquery_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstregistry_SOURCES = gst/gstregistry.c
 gst_gstregistry_OBJECTS = gstregistry.$(OBJEXT)
 gst_gstregistry_LDADD = $(LDADD)
-gst_gstregistry_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstregistry_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstsegment_SOURCES = gst/gstsegment.c
 gst_gstsegment_OBJECTS = gstsegment.$(OBJEXT)
 gst_gstsegment_LDADD = $(LDADD)
-gst_gstsegment_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstsegment_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gststructure_SOURCES = gst/gststructure.c
 gst_gststructure_OBJECTS = gststructure.$(OBJEXT)
 gst_gststructure_LDADD = $(LDADD)
-gst_gststructure_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gststructure_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstsystemclock_SOURCES = gst/gstsystemclock.c
 gst_gstsystemclock_OBJECTS = gstsystemclock.$(OBJEXT)
 gst_gstsystemclock_LDADD = $(LDADD)
-gst_gstsystemclock_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstsystemclock_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gsttag_SOURCES = gst/gsttag.c
 gst_gsttag_OBJECTS = gsttag.$(OBJEXT)
 gst_gsttag_LDADD = $(LDADD)
-gst_gsttag_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gsttag_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gsttagsetter_SOURCES = gst/gsttagsetter.c
 gst_gsttagsetter_OBJECTS = gsttagsetter.$(OBJEXT)
 gst_gsttagsetter_LDADD = $(LDADD)
-gst_gsttagsetter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gsttagsetter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gsttask_SOURCES = gst/gsttask.c
 gst_gsttask_OBJECTS = gsttask.$(OBJEXT)
 gst_gsttask_LDADD = $(LDADD)
-gst_gsttask_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gsttask_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+gst_gsttoc_SOURCES = gst/gsttoc.c
+gst_gsttoc_OBJECTS = gsttoc.$(OBJEXT)
+gst_gsttoc_LDADD = $(LDADD)
+gst_gsttoc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+gst_gsttocsetter_SOURCES = gst/gsttocsetter.c
+gst_gsttocsetter_OBJECTS = gsttocsetter.$(OBJEXT)
+gst_gsttocsetter_LDADD = $(LDADD)
+gst_gsttocsetter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gsturi_SOURCES = gst/gsturi.c
 gst_gsturi_OBJECTS = gsturi.$(OBJEXT)
 gst_gsturi_LDADD = $(LDADD)
-gst_gsturi_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gsturi_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstutils_SOURCES = gst/gstutils.c
 gst_gstutils_OBJECTS = gstutils.$(OBJEXT)
-am__DEPENDENCIES_2 = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+am__DEPENDENCIES_2 = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 gst_gstutils_DEPENDENCIES = $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 gst_gstvalue_SOURCES = gst/gstvalue.c
 gst_gstvalue_OBJECTS = gstvalue.$(OBJEXT)
 gst_gstvalue_LDADD = $(LDADD)
-gst_gstvalue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+gst_gstvalue_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_adapter_SOURCES = libs/adapter.c
 libs_adapter_OBJECTS = adapter.$(OBJEXT)
 libs_adapter_LDADD = $(LDADD)
-libs_adapter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_adapter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_basesink_SOURCES = libs/basesink.c
 libs_basesink_OBJECTS = basesink.$(OBJEXT)
 libs_basesink_LDADD = $(LDADD)
-libs_basesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_basesink_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_basesrc_SOURCES = libs/basesrc.c
 libs_basesrc_OBJECTS = basesrc.$(OBJEXT)
 libs_basesrc_LDADD = $(LDADD)
-libs_basesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_basesrc_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_bitreader_SOURCES = libs/bitreader.c
 libs_bitreader_OBJECTS = bitreader.$(OBJEXT)
 libs_bitreader_LDADD = $(LDADD)
-libs_bitreader_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_bitreader_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_bytereader_SOURCES = libs/bytereader.c
 libs_bytereader_OBJECTS = bytereader.$(OBJEXT)
 libs_bytereader_LDADD = $(LDADD)
-libs_bytereader_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_bytereader_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_bytewriter_SOURCES = libs/bytewriter.c
 libs_bytewriter_OBJECTS = bytewriter.$(OBJEXT)
 libs_bytewriter_LDADD = $(LDADD)
-libs_bytewriter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_bytewriter_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
-libs_collectpads_SOURCES = libs/collectpads.c
-libs_collectpads_OBJECTS = collectpads.$(OBJEXT)
-libs_collectpads_LDADD = $(LDADD)
-libs_collectpads_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_collectpads2_SOURCES = libs/collectpads2.c
+libs_collectpads2_OBJECTS = collectpads2.$(OBJEXT)
+libs_collectpads2_LDADD = $(LDADD)
+libs_collectpads2_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_controller_SOURCES = libs/controller.c
 libs_controller_OBJECTS = controller.$(OBJEXT)
-libs_controller_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
-	$(am__DEPENDENCIES_2)
-am_libs_gdp_OBJECTS = gdp.$(OBJEXT)
-libs_gdp_OBJECTS = $(am_libs_gdp_OBJECTS)
-libs_gdp_DEPENDENCIES = $(top_builddir)/libs/gst/dataprotocol/libgstdataprotocol-@GST_MAJORMINOR@.la \
+libs_controller_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 am_libs_gstlibscpp_OBJECTS = gstlibscpp.$(OBJEXT)
 libs_gstlibscpp_OBJECTS = $(am_libs_gstlibscpp_OBJECTS)
 libs_gstlibscpp_LDADD = $(LDADD)
-libs_gstlibscpp_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_gstlibscpp_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_gstnetclientclock_SOURCES = libs/gstnetclientclock.c
 libs_gstnetclientclock_OBJECTS = gstnetclientclock.$(OBJEXT)
 libs_gstnetclientclock_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_2)
 libs_gstnettimeprovider_SOURCES = libs/gstnettimeprovider.c
 libs_gstnettimeprovider_OBJECTS = gstnettimeprovider.$(OBJEXT)
 libs_gstnettimeprovider_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
-	$(am__DEPENDENCIES_2)
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 libs_transform1_SOURCES = libs/transform1.c
 libs_transform1_OBJECTS = transform1.$(OBJEXT)
 libs_transform1_LDADD = $(LDADD)
-libs_transform1_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_transform1_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 libs_typefindhelper_SOURCES = libs/typefindhelper.c
 libs_typefindhelper_OBJECTS = typefindhelper.$(OBJEXT)
 libs_typefindhelper_LDADD = $(LDADD)
-libs_typefindhelper_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+libs_typefindhelper_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_cleanup_SOURCES = pipelines/cleanup.c
 pipelines_cleanup_OBJECTS = cleanup.$(OBJEXT)
 pipelines_cleanup_LDADD = $(LDADD)
-pipelines_cleanup_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_cleanup_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_parse_disabled_SOURCES = pipelines/parse-disabled.c
 pipelines_parse_disabled_OBJECTS = parse-disabled.$(OBJEXT)
 pipelines_parse_disabled_LDADD = $(LDADD)
-pipelines_parse_disabled_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_parse_disabled_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_parse_launch_SOURCES = pipelines/parse-launch.c
 pipelines_parse_launch_OBJECTS = parse-launch.$(OBJEXT)
 pipelines_parse_launch_LDADD = $(LDADD)
-pipelines_parse_launch_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_parse_launch_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_queue_error_SOURCES = pipelines/queue-error.c
 pipelines_queue_error_OBJECTS = queue-error.$(OBJEXT)
 pipelines_queue_error_LDADD = $(LDADD)
-pipelines_queue_error_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_queue_error_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+pipelines_seek_SOURCES = pipelines/seek.c
+pipelines_seek_OBJECTS = seek.$(OBJEXT)
+pipelines_seek_LDADD = $(LDADD)
+pipelines_seek_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_simple_launch_lines_SOURCES =  \
 	pipelines/simple-launch-lines.c
 pipelines_simple_launch_lines_OBJECTS = simple-launch-lines.$(OBJEXT)
 pipelines_simple_launch_lines_LDADD = $(LDADD)
-pipelines_simple_launch_lines_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_simple_launch_lines_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pipelines_stress_SOURCES = pipelines/stress.c
 pipelines_stress_OBJECTS = stress.$(OBJEXT)
 pipelines_stress_LDADD = $(LDADD)
-pipelines_stress_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+pipelines_stress_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -602,18 +649,18 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
@@ -621,69 +668,77 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_$(V))
-am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXX = $(am__v_CXX_@AM_V@)
+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
 am__v_CXX_0 = @echo "  CXX   " $@;
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_$(V))
-am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
 am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = elements/capsfilter.c elements/fakesink.c elements/fakesrc.c \
 	elements/fdsrc.c elements/filesink.c elements/filesrc.c \
 	elements/funnel.c elements/identity.c elements/multiqueue.c \
 	elements/queue.c elements/queue2.c elements/selector.c \
 	elements/tee.c elements/valve.c generic/sinks.c \
-	generic/states.c gst/gst.c gst/gstbin.c gst/gstbuffer.c \
-	gst/gstbufferlist.c gst/gstbus.c gst/gstcaps.c \
-	gst/gstchildproxy.c gst/gstclock.c $(gst_gstcpp_SOURCES) \
-	gst/gstdatetime.c gst/gstelement.c gst/gstelementfactory.c \
-	gst/gstevent.c gst/gstghostpad.c gst/gstindex.c gst/gstinfo.c \
-	gst/gstiterator.c gst/gstmessage.c gst/gstmeta.c \
-	gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
-	gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
-	gst/gstpoll.c gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
+	generic/states.c gst/gst.c gst/gstatomicqueue.c gst/gstbin.c \
+	gst/gstbuffer.c gst/gstbufferlist.c gst/gstbus.c gst/gstcaps.c \
+	gst/gstchildproxy.c gst/gstclock.c gst/gstcontroller.c \
+	$(gst_gstcpp_SOURCES) gst/gstdatetime.c gst/gstelement.c \
+	gst/gstelementfactory.c gst/gstevent.c gst/gstghostpad.c \
+	gst/gstinfo.c gst/gstiterator.c gst/gstmemory.c \
+	gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
+	gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
+	gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
+	gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
 	gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
-	gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsturi.c \
-	gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/basesink.c \
-	libs/basesrc.c libs/bitreader.c libs/bytereader.c \
-	libs/bytewriter.c libs/collectpads.c libs/controller.c \
-	$(libs_gdp_SOURCES) $(libs_gstlibscpp_SOURCES) \
+	gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
+	gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
+	libs/adapter.c libs/basesink.c libs/basesrc.c libs/bitreader.c \
+	libs/bytereader.c libs/bytewriter.c libs/collectpads2.c \
+	libs/controller.c $(libs_gstlibscpp_SOURCES) \
 	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
 	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
 	pipelines/parse-disabled.c pipelines/parse-launch.c \
-	pipelines/queue-error.c pipelines/simple-launch-lines.c \
-	pipelines/stress.c
+	pipelines/queue-error.c pipelines/seek.c \
+	pipelines/simple-launch-lines.c pipelines/stress.c
 DIST_SOURCES = elements/capsfilter.c elements/fakesink.c \
 	elements/fakesrc.c elements/fdsrc.c elements/filesink.c \
 	elements/filesrc.c elements/funnel.c elements/identity.c \
 	elements/multiqueue.c elements/queue.c elements/queue2.c \
 	elements/selector.c elements/tee.c elements/valve.c \
-	generic/sinks.c generic/states.c gst/gst.c gst/gstbin.c \
-	gst/gstbuffer.c gst/gstbufferlist.c gst/gstbus.c gst/gstcaps.c \
-	gst/gstchildproxy.c gst/gstclock.c $(gst_gstcpp_SOURCES) \
-	gst/gstdatetime.c gst/gstelement.c gst/gstelementfactory.c \
-	gst/gstevent.c gst/gstghostpad.c gst/gstindex.c gst/gstinfo.c \
-	gst/gstiterator.c gst/gstmessage.c gst/gstmeta.c \
-	gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
-	gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
-	gst/gstpoll.c gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
+	generic/sinks.c generic/states.c gst/gst.c \
+	gst/gstatomicqueue.c gst/gstbin.c gst/gstbuffer.c \
+	gst/gstbufferlist.c gst/gstbus.c gst/gstcaps.c \
+	gst/gstchildproxy.c gst/gstclock.c gst/gstcontroller.c \
+	$(gst_gstcpp_SOURCES) gst/gstdatetime.c gst/gstelement.c \
+	gst/gstelementfactory.c gst/gstevent.c gst/gstghostpad.c \
+	gst/gstinfo.c gst/gstiterator.c gst/gstmemory.c \
+	gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
+	gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
+	gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
+	gst/gstpreset.c gst/gstquery.c gst/gstregistry.c \
 	gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
-	gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsturi.c \
-	gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/basesink.c \
-	libs/basesrc.c libs/bitreader.c libs/bytereader.c \
-	libs/bytewriter.c libs/collectpads.c libs/controller.c \
-	$(libs_gdp_SOURCES) $(libs_gstlibscpp_SOURCES) \
+	gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
+	gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
+	libs/adapter.c libs/basesink.c libs/basesrc.c libs/bitreader.c \
+	libs/bytereader.c libs/bytewriter.c libs/collectpads2.c \
+	libs/controller.c $(libs_gstlibscpp_SOURCES) \
 	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
 	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
 	pipelines/parse-disabled.c pipelines/parse-launch.c \
-	pipelines/queue-error.c pipelines/simple-launch-lines.c \
-	pipelines/stress.c
+	pipelines/queue-error.c pipelines/seek.c \
+	pipelines/simple-launch-lines.c pipelines/stress.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -743,10 +798,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -759,10 +816,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -776,7 +833,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -793,6 +849,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -808,7 +868,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -841,6 +900,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -896,6 +956,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -929,14 +990,13 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 pkgpyexecdir = @pkgpyexecdir@
 pkgpythondir = @pkgpythondir@
-plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
+plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
@@ -953,7 +1013,7 @@
 LOOPS = 10
 
 # inspect every plugin feature
-GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_MAJORMINOR)
+GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
 CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
 GST_TOOLS_DIR = $(top_builddir)/tools
 REGISTRY_ENVIRONMENT = \
@@ -972,6 +1032,9 @@
 CLEANFILES = core core.* test-registry.* *.gcno *.gcda
 SUPPRESSIONS = $(top_srcdir)/common/gst.supp
 @GST_DISABLE_PARSE_FALSE@PARSE_CHECKS = pipelines/simple-launch-lines pipelines/cleanup pipelines/parse-launch
+
+# These tests don't even build any longer:
+#   gst/gstindex.c
 @GST_DISABLE_PARSE_TRUE@PARSE_CHECKS = pipelines/parse-disabled
 @HAVE_CXX_FALSE@CXX_CHECKS = 
 @HAVE_CXX_TRUE@CXX_CHECKS = gst/gstcpp libs/gstlibscpp
@@ -979,11 +1042,11 @@
 @GST_DISABLE_REGISTRY_FALSE@	gst/gst					\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstbin				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstchildproxy			\
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstcontroller				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelement				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstelementfactory			\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstevent				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstghostpad				\
-@GST_DISABLE_REGISTRY_FALSE@	gst/gstindex				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstplugin				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstpreset				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstquery				\
@@ -1009,6 +1072,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesink				\
 @GST_DISABLE_REGISTRY_FALSE@	libs/controller				\
 @GST_DISABLE_REGISTRY_FALSE@	libs/typefindhelper			\
+@GST_DISABLE_REGISTRY_FALSE@	pipelines/seek				\
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/stress			\
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/queue-error
 
@@ -1042,20 +1106,13 @@
 
 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
-LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_MAJORMINOR@.la \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 gst_gstcpp_SOURCES = gst/gstcpp.cc
 libs_gstlibscpp_SOURCES = libs/gstlibscpp.cc
 gst_gstutils_LDADD = $(LDADD) $(GSL_LIBS) $(GMP_LIBS)
-libs_gdp_SOURCES = \
-	libs/gdp.c
-
-libs_gdp_LDADD = \
-	$(top_builddir)/libs/gst/dataprotocol/libgstdataprotocol-@GST_MAJORMINOR@.la \
-	$(LDADD)
-
 elements_fdsrc_CFLAGS = $(GST_OBJ_CFLAGS) $(AM_CFLAGS) \
 	-DTESTFILE=\"$(top_srcdir)/configure.ac\"
 
@@ -1063,23 +1120,22 @@
 	-DTESTFILE=\"$(top_srcdir)/configure.ac\"
 
 libs_controller_LDADD = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(LDADD)
 
 libs_gstnetclientclock_LDADD = \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(LDADD)
 
 libs_gstnettimeprovider_LDADD = \
-	$(top_builddir)/libs/gst/net/libgstnet-@GST_MAJORMINOR@.la \
-	$(LDADD)
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
+	$(GIO_LIBS) $(LDADD)
 
 
 # valgrind testing
 # these just need valgrind fixing, period
 VALGRIND_TO_FIX = \
 	gst/gstinfo \
-	libs/collectpads \
 	pipelines/parse-launch
 
 VALGRIND_IGNORE = \
@@ -1103,7 +1159,6 @@
 	libs/gst/base \
 	libs/gst/controller \
 	libs/gst/check \
-	libs/gst/dataprotocol \
 	libs/gst/net \
 	plugins/elements
 
@@ -1136,6 +1191,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/check.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1166,238 +1222,250 @@
 elements/$(am__dirstamp):
 	@$(MKDIR_P) elements
 	@: > elements/$(am__dirstamp)
-elements/capsfilter$(EXEEXT): $(elements_capsfilter_OBJECTS) $(elements_capsfilter_DEPENDENCIES) elements/$(am__dirstamp)
+elements/capsfilter$(EXEEXT): $(elements_capsfilter_OBJECTS) $(elements_capsfilter_DEPENDENCIES) $(EXTRA_elements_capsfilter_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/capsfilter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_capsfilter_OBJECTS) $(elements_capsfilter_LDADD) $(LIBS)
-elements/fakesink$(EXEEXT): $(elements_fakesink_OBJECTS) $(elements_fakesink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/fakesink$(EXEEXT): $(elements_fakesink_OBJECTS) $(elements_fakesink_DEPENDENCIES) $(EXTRA_elements_fakesink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/fakesink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_fakesink_OBJECTS) $(elements_fakesink_LDADD) $(LIBS)
-elements/fakesrc$(EXEEXT): $(elements_fakesrc_OBJECTS) $(elements_fakesrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/fakesrc$(EXEEXT): $(elements_fakesrc_OBJECTS) $(elements_fakesrc_DEPENDENCIES) $(EXTRA_elements_fakesrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/fakesrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_fakesrc_OBJECTS) $(elements_fakesrc_LDADD) $(LIBS)
-elements/fdsrc$(EXEEXT): $(elements_fdsrc_OBJECTS) $(elements_fdsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/fdsrc$(EXEEXT): $(elements_fdsrc_OBJECTS) $(elements_fdsrc_DEPENDENCIES) $(EXTRA_elements_fdsrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/fdsrc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_fdsrc_LINK) $(elements_fdsrc_OBJECTS) $(elements_fdsrc_LDADD) $(LIBS)
-elements/filesink$(EXEEXT): $(elements_filesink_OBJECTS) $(elements_filesink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/filesink$(EXEEXT): $(elements_filesink_OBJECTS) $(elements_filesink_DEPENDENCIES) $(EXTRA_elements_filesink_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/filesink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_filesink_OBJECTS) $(elements_filesink_LDADD) $(LIBS)
-elements/filesrc$(EXEEXT): $(elements_filesrc_OBJECTS) $(elements_filesrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/filesrc$(EXEEXT): $(elements_filesrc_OBJECTS) $(elements_filesrc_DEPENDENCIES) $(EXTRA_elements_filesrc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/filesrc$(EXEEXT)
 	$(AM_V_CCLD)$(elements_filesrc_LINK) $(elements_filesrc_OBJECTS) $(elements_filesrc_LDADD) $(LIBS)
-elements/funnel$(EXEEXT): $(elements_funnel_OBJECTS) $(elements_funnel_DEPENDENCIES) elements/$(am__dirstamp)
+elements/funnel$(EXEEXT): $(elements_funnel_OBJECTS) $(elements_funnel_DEPENDENCIES) $(EXTRA_elements_funnel_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/funnel$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_funnel_OBJECTS) $(elements_funnel_LDADD) $(LIBS)
-elements/identity$(EXEEXT): $(elements_identity_OBJECTS) $(elements_identity_DEPENDENCIES) elements/$(am__dirstamp)
+elements/identity$(EXEEXT): $(elements_identity_OBJECTS) $(elements_identity_DEPENDENCIES) $(EXTRA_elements_identity_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/identity$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_identity_OBJECTS) $(elements_identity_LDADD) $(LIBS)
-elements/multiqueue$(EXEEXT): $(elements_multiqueue_OBJECTS) $(elements_multiqueue_DEPENDENCIES) elements/$(am__dirstamp)
+elements/multiqueue$(EXEEXT): $(elements_multiqueue_OBJECTS) $(elements_multiqueue_DEPENDENCIES) $(EXTRA_elements_multiqueue_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/multiqueue$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_multiqueue_OBJECTS) $(elements_multiqueue_LDADD) $(LIBS)
-elements/queue$(EXEEXT): $(elements_queue_OBJECTS) $(elements_queue_DEPENDENCIES) elements/$(am__dirstamp)
+elements/queue$(EXEEXT): $(elements_queue_OBJECTS) $(elements_queue_DEPENDENCIES) $(EXTRA_elements_queue_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/queue$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_queue_OBJECTS) $(elements_queue_LDADD) $(LIBS)
-elements/queue2$(EXEEXT): $(elements_queue2_OBJECTS) $(elements_queue2_DEPENDENCIES) elements/$(am__dirstamp)
+elements/queue2$(EXEEXT): $(elements_queue2_OBJECTS) $(elements_queue2_DEPENDENCIES) $(EXTRA_elements_queue2_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/queue2$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_queue2_OBJECTS) $(elements_queue2_LDADD) $(LIBS)
-elements/selector$(EXEEXT): $(elements_selector_OBJECTS) $(elements_selector_DEPENDENCIES) elements/$(am__dirstamp)
+elements/selector$(EXEEXT): $(elements_selector_OBJECTS) $(elements_selector_DEPENDENCIES) $(EXTRA_elements_selector_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/selector$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_selector_OBJECTS) $(elements_selector_LDADD) $(LIBS)
-elements/tee$(EXEEXT): $(elements_tee_OBJECTS) $(elements_tee_DEPENDENCIES) elements/$(am__dirstamp)
+elements/tee$(EXEEXT): $(elements_tee_OBJECTS) $(elements_tee_DEPENDENCIES) $(EXTRA_elements_tee_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/tee$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_tee_OBJECTS) $(elements_tee_LDADD) $(LIBS)
-elements/valve$(EXEEXT): $(elements_valve_OBJECTS) $(elements_valve_DEPENDENCIES) elements/$(am__dirstamp)
+elements/valve$(EXEEXT): $(elements_valve_OBJECTS) $(elements_valve_DEPENDENCIES) $(EXTRA_elements_valve_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/valve$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_valve_OBJECTS) $(elements_valve_LDADD) $(LIBS)
 generic/$(am__dirstamp):
 	@$(MKDIR_P) generic
 	@: > generic/$(am__dirstamp)
-generic/sinks$(EXEEXT): $(generic_sinks_OBJECTS) $(generic_sinks_DEPENDENCIES) generic/$(am__dirstamp)
+generic/sinks$(EXEEXT): $(generic_sinks_OBJECTS) $(generic_sinks_DEPENDENCIES) $(EXTRA_generic_sinks_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/sinks$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(generic_sinks_OBJECTS) $(generic_sinks_LDADD) $(LIBS)
-generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) generic/$(am__dirstamp)
+generic/states$(EXEEXT): $(generic_states_OBJECTS) $(generic_states_DEPENDENCIES) $(EXTRA_generic_states_DEPENDENCIES) generic/$(am__dirstamp)
 	@rm -f generic/states$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(generic_states_OBJECTS) $(generic_states_LDADD) $(LIBS)
 gst/$(am__dirstamp):
 	@$(MKDIR_P) gst
 	@: > gst/$(am__dirstamp)
-gst/gst$(EXEEXT): $(gst_gst_OBJECTS) $(gst_gst_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gst$(EXEEXT): $(gst_gst_OBJECTS) $(gst_gst_DEPENDENCIES) $(EXTRA_gst_gst_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gst$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gst_OBJECTS) $(gst_gst_LDADD) $(LIBS)
-gst/gstbin$(EXEEXT): $(gst_gstbin_OBJECTS) $(gst_gstbin_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstatomicqueue$(EXEEXT): $(gst_gstatomicqueue_OBJECTS) $(gst_gstatomicqueue_DEPENDENCIES) $(EXTRA_gst_gstatomicqueue_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstatomicqueue$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstatomicqueue_OBJECTS) $(gst_gstatomicqueue_LDADD) $(LIBS)
+gst/gstbin$(EXEEXT): $(gst_gstbin_OBJECTS) $(gst_gstbin_DEPENDENCIES) $(EXTRA_gst_gstbin_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstbin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstbin_OBJECTS) $(gst_gstbin_LDADD) $(LIBS)
-gst/gstbuffer$(EXEEXT): $(gst_gstbuffer_OBJECTS) $(gst_gstbuffer_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstbuffer$(EXEEXT): $(gst_gstbuffer_OBJECTS) $(gst_gstbuffer_DEPENDENCIES) $(EXTRA_gst_gstbuffer_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstbuffer$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstbuffer_OBJECTS) $(gst_gstbuffer_LDADD) $(LIBS)
-gst/gstbufferlist$(EXEEXT): $(gst_gstbufferlist_OBJECTS) $(gst_gstbufferlist_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstbufferlist$(EXEEXT): $(gst_gstbufferlist_OBJECTS) $(gst_gstbufferlist_DEPENDENCIES) $(EXTRA_gst_gstbufferlist_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstbufferlist$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstbufferlist_OBJECTS) $(gst_gstbufferlist_LDADD) $(LIBS)
-gst/gstbus$(EXEEXT): $(gst_gstbus_OBJECTS) $(gst_gstbus_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstbus$(EXEEXT): $(gst_gstbus_OBJECTS) $(gst_gstbus_DEPENDENCIES) $(EXTRA_gst_gstbus_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstbus$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstbus_OBJECTS) $(gst_gstbus_LDADD) $(LIBS)
-gst/gstcaps$(EXEEXT): $(gst_gstcaps_OBJECTS) $(gst_gstcaps_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstcaps$(EXEEXT): $(gst_gstcaps_OBJECTS) $(gst_gstcaps_DEPENDENCIES) $(EXTRA_gst_gstcaps_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstcaps$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstcaps_OBJECTS) $(gst_gstcaps_LDADD) $(LIBS)
-gst/gstchildproxy$(EXEEXT): $(gst_gstchildproxy_OBJECTS) $(gst_gstchildproxy_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstchildproxy$(EXEEXT): $(gst_gstchildproxy_OBJECTS) $(gst_gstchildproxy_DEPENDENCIES) $(EXTRA_gst_gstchildproxy_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstchildproxy$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstchildproxy_OBJECTS) $(gst_gstchildproxy_LDADD) $(LIBS)
-gst/gstclock$(EXEEXT): $(gst_gstclock_OBJECTS) $(gst_gstclock_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstclock$(EXEEXT): $(gst_gstclock_OBJECTS) $(gst_gstclock_DEPENDENCIES) $(EXTRA_gst_gstclock_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstclock$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstclock_OBJECTS) $(gst_gstclock_LDADD) $(LIBS)
-gst/gstcpp$(EXEEXT): $(gst_gstcpp_OBJECTS) $(gst_gstcpp_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstcontroller$(EXEEXT): $(gst_gstcontroller_OBJECTS) $(gst_gstcontroller_DEPENDENCIES) $(EXTRA_gst_gstcontroller_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstcontroller$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstcontroller_OBJECTS) $(gst_gstcontroller_LDADD) $(LIBS)
+gst/gstcpp$(EXEEXT): $(gst_gstcpp_OBJECTS) $(gst_gstcpp_DEPENDENCIES) $(EXTRA_gst_gstcpp_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstcpp$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(gst_gstcpp_OBJECTS) $(gst_gstcpp_LDADD) $(LIBS)
-gst/gstdatetime$(EXEEXT): $(gst_gstdatetime_OBJECTS) $(gst_gstdatetime_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstdatetime$(EXEEXT): $(gst_gstdatetime_OBJECTS) $(gst_gstdatetime_DEPENDENCIES) $(EXTRA_gst_gstdatetime_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstdatetime$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstdatetime_OBJECTS) $(gst_gstdatetime_LDADD) $(LIBS)
-gst/gstelement$(EXEEXT): $(gst_gstelement_OBJECTS) $(gst_gstelement_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstelement$(EXEEXT): $(gst_gstelement_OBJECTS) $(gst_gstelement_DEPENDENCIES) $(EXTRA_gst_gstelement_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstelement$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstelement_OBJECTS) $(gst_gstelement_LDADD) $(LIBS)
-gst/gstelementfactory$(EXEEXT): $(gst_gstelementfactory_OBJECTS) $(gst_gstelementfactory_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstelementfactory$(EXEEXT): $(gst_gstelementfactory_OBJECTS) $(gst_gstelementfactory_DEPENDENCIES) $(EXTRA_gst_gstelementfactory_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstelementfactory$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstelementfactory_OBJECTS) $(gst_gstelementfactory_LDADD) $(LIBS)
-gst/gstevent$(EXEEXT): $(gst_gstevent_OBJECTS) $(gst_gstevent_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstevent$(EXEEXT): $(gst_gstevent_OBJECTS) $(gst_gstevent_DEPENDENCIES) $(EXTRA_gst_gstevent_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstevent$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstevent_OBJECTS) $(gst_gstevent_LDADD) $(LIBS)
-gst/gstghostpad$(EXEEXT): $(gst_gstghostpad_OBJECTS) $(gst_gstghostpad_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstghostpad$(EXEEXT): $(gst_gstghostpad_OBJECTS) $(gst_gstghostpad_DEPENDENCIES) $(EXTRA_gst_gstghostpad_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstghostpad$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstghostpad_OBJECTS) $(gst_gstghostpad_LDADD) $(LIBS)
-gst/gstindex$(EXEEXT): $(gst_gstindex_OBJECTS) $(gst_gstindex_DEPENDENCIES) gst/$(am__dirstamp)
-	@rm -f gst/gstindex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(gst_gstindex_OBJECTS) $(gst_gstindex_LDADD) $(LIBS)
-gst/gstinfo$(EXEEXT): $(gst_gstinfo_OBJECTS) $(gst_gstinfo_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstinfo$(EXEEXT): $(gst_gstinfo_OBJECTS) $(gst_gstinfo_DEPENDENCIES) $(EXTRA_gst_gstinfo_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstinfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstinfo_OBJECTS) $(gst_gstinfo_LDADD) $(LIBS)
-gst/gstiterator$(EXEEXT): $(gst_gstiterator_OBJECTS) $(gst_gstiterator_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstiterator$(EXEEXT): $(gst_gstiterator_OBJECTS) $(gst_gstiterator_DEPENDENCIES) $(EXTRA_gst_gstiterator_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstiterator$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstiterator_OBJECTS) $(gst_gstiterator_LDADD) $(LIBS)
-gst/gstmessage$(EXEEXT): $(gst_gstmessage_OBJECTS) $(gst_gstmessage_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstmemory$(EXEEXT): $(gst_gstmemory_OBJECTS) $(gst_gstmemory_DEPENDENCIES) $(EXTRA_gst_gstmemory_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstmemory$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstmemory_OBJECTS) $(gst_gstmemory_LDADD) $(LIBS)
+gst/gstmessage$(EXEEXT): $(gst_gstmessage_OBJECTS) $(gst_gstmessage_DEPENDENCIES) $(EXTRA_gst_gstmessage_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstmessage$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstmessage_OBJECTS) $(gst_gstmessage_LDADD) $(LIBS)
-gst/gstmeta$(EXEEXT): $(gst_gstmeta_OBJECTS) $(gst_gstmeta_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstmeta$(EXEEXT): $(gst_gstmeta_OBJECTS) $(gst_gstmeta_DEPENDENCIES) $(EXTRA_gst_gstmeta_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstmeta$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstmeta_OBJECTS) $(gst_gstmeta_LDADD) $(LIBS)
-gst/gstminiobject$(EXEEXT): $(gst_gstminiobject_OBJECTS) $(gst_gstminiobject_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstminiobject$(EXEEXT): $(gst_gstminiobject_OBJECTS) $(gst_gstminiobject_DEPENDENCIES) $(EXTRA_gst_gstminiobject_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstminiobject$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstminiobject_OBJECTS) $(gst_gstminiobject_LDADD) $(LIBS)
-gst/gstobject$(EXEEXT): $(gst_gstobject_OBJECTS) $(gst_gstobject_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstobject$(EXEEXT): $(gst_gstobject_OBJECTS) $(gst_gstobject_DEPENDENCIES) $(EXTRA_gst_gstobject_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstobject$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstobject_OBJECTS) $(gst_gstobject_LDADD) $(LIBS)
-gst/gstpad$(EXEEXT): $(gst_gstpad_OBJECTS) $(gst_gstpad_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstpad$(EXEEXT): $(gst_gstpad_OBJECTS) $(gst_gstpad_DEPENDENCIES) $(EXTRA_gst_gstpad_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstpad$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstpad_OBJECTS) $(gst_gstpad_LDADD) $(LIBS)
-gst/gstparamspecs$(EXEEXT): $(gst_gstparamspecs_OBJECTS) $(gst_gstparamspecs_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstparamspecs$(EXEEXT): $(gst_gstparamspecs_OBJECTS) $(gst_gstparamspecs_DEPENDENCIES) $(EXTRA_gst_gstparamspecs_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstparamspecs$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstparamspecs_OBJECTS) $(gst_gstparamspecs_LDADD) $(LIBS)
-gst/gstpipeline$(EXEEXT): $(gst_gstpipeline_OBJECTS) $(gst_gstpipeline_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstpipeline$(EXEEXT): $(gst_gstpipeline_OBJECTS) $(gst_gstpipeline_DEPENDENCIES) $(EXTRA_gst_gstpipeline_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstpipeline$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstpipeline_OBJECTS) $(gst_gstpipeline_LDADD) $(LIBS)
-gst/gstplugin$(EXEEXT): $(gst_gstplugin_OBJECTS) $(gst_gstplugin_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstplugin$(EXEEXT): $(gst_gstplugin_OBJECTS) $(gst_gstplugin_DEPENDENCIES) $(EXTRA_gst_gstplugin_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstplugin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstplugin_OBJECTS) $(gst_gstplugin_LDADD) $(LIBS)
-gst/gstpoll$(EXEEXT): $(gst_gstpoll_OBJECTS) $(gst_gstpoll_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstpoll$(EXEEXT): $(gst_gstpoll_OBJECTS) $(gst_gstpoll_DEPENDENCIES) $(EXTRA_gst_gstpoll_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstpoll$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstpoll_OBJECTS) $(gst_gstpoll_LDADD) $(LIBS)
-gst/gstpreset$(EXEEXT): $(gst_gstpreset_OBJECTS) $(gst_gstpreset_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstpreset$(EXEEXT): $(gst_gstpreset_OBJECTS) $(gst_gstpreset_DEPENDENCIES) $(EXTRA_gst_gstpreset_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstpreset$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstpreset_OBJECTS) $(gst_gstpreset_LDADD) $(LIBS)
-gst/gstquery$(EXEEXT): $(gst_gstquery_OBJECTS) $(gst_gstquery_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstquery$(EXEEXT): $(gst_gstquery_OBJECTS) $(gst_gstquery_DEPENDENCIES) $(EXTRA_gst_gstquery_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstquery$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstquery_OBJECTS) $(gst_gstquery_LDADD) $(LIBS)
-gst/gstregistry$(EXEEXT): $(gst_gstregistry_OBJECTS) $(gst_gstregistry_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstregistry$(EXEEXT): $(gst_gstregistry_OBJECTS) $(gst_gstregistry_DEPENDENCIES) $(EXTRA_gst_gstregistry_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstregistry$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstregistry_OBJECTS) $(gst_gstregistry_LDADD) $(LIBS)
-gst/gstsegment$(EXEEXT): $(gst_gstsegment_OBJECTS) $(gst_gstsegment_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstsegment$(EXEEXT): $(gst_gstsegment_OBJECTS) $(gst_gstsegment_DEPENDENCIES) $(EXTRA_gst_gstsegment_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstsegment$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstsegment_OBJECTS) $(gst_gstsegment_LDADD) $(LIBS)
-gst/gststructure$(EXEEXT): $(gst_gststructure_OBJECTS) $(gst_gststructure_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gststructure$(EXEEXT): $(gst_gststructure_OBJECTS) $(gst_gststructure_DEPENDENCIES) $(EXTRA_gst_gststructure_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gststructure$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gststructure_OBJECTS) $(gst_gststructure_LDADD) $(LIBS)
-gst/gstsystemclock$(EXEEXT): $(gst_gstsystemclock_OBJECTS) $(gst_gstsystemclock_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstsystemclock$(EXEEXT): $(gst_gstsystemclock_OBJECTS) $(gst_gstsystemclock_DEPENDENCIES) $(EXTRA_gst_gstsystemclock_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstsystemclock$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstsystemclock_OBJECTS) $(gst_gstsystemclock_LDADD) $(LIBS)
-gst/gsttag$(EXEEXT): $(gst_gsttag_OBJECTS) $(gst_gsttag_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gsttag$(EXEEXT): $(gst_gsttag_OBJECTS) $(gst_gsttag_DEPENDENCIES) $(EXTRA_gst_gsttag_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gsttag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gsttag_OBJECTS) $(gst_gsttag_LDADD) $(LIBS)
-gst/gsttagsetter$(EXEEXT): $(gst_gsttagsetter_OBJECTS) $(gst_gsttagsetter_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gsttagsetter$(EXEEXT): $(gst_gsttagsetter_OBJECTS) $(gst_gsttagsetter_DEPENDENCIES) $(EXTRA_gst_gsttagsetter_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gsttagsetter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gsttagsetter_OBJECTS) $(gst_gsttagsetter_LDADD) $(LIBS)
-gst/gsttask$(EXEEXT): $(gst_gsttask_OBJECTS) $(gst_gsttask_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gsttask$(EXEEXT): $(gst_gsttask_OBJECTS) $(gst_gsttask_DEPENDENCIES) $(EXTRA_gst_gsttask_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gsttask$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gsttask_OBJECTS) $(gst_gsttask_LDADD) $(LIBS)
-gst/gsturi$(EXEEXT): $(gst_gsturi_OBJECTS) $(gst_gsturi_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gsttoc$(EXEEXT): $(gst_gsttoc_OBJECTS) $(gst_gsttoc_DEPENDENCIES) $(EXTRA_gst_gsttoc_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gsttoc$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gsttoc_OBJECTS) $(gst_gsttoc_LDADD) $(LIBS)
+gst/gsttocsetter$(EXEEXT): $(gst_gsttocsetter_OBJECTS) $(gst_gsttocsetter_DEPENDENCIES) $(EXTRA_gst_gsttocsetter_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gsttocsetter$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gsttocsetter_OBJECTS) $(gst_gsttocsetter_LDADD) $(LIBS)
+gst/gsturi$(EXEEXT): $(gst_gsturi_OBJECTS) $(gst_gsturi_DEPENDENCIES) $(EXTRA_gst_gsturi_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gsturi$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gsturi_OBJECTS) $(gst_gsturi_LDADD) $(LIBS)
-gst/gstutils$(EXEEXT): $(gst_gstutils_OBJECTS) $(gst_gstutils_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstutils$(EXEEXT): $(gst_gstutils_OBJECTS) $(gst_gstutils_DEPENDENCIES) $(EXTRA_gst_gstutils_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstutils$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstutils_OBJECTS) $(gst_gstutils_LDADD) $(LIBS)
-gst/gstvalue$(EXEEXT): $(gst_gstvalue_OBJECTS) $(gst_gstvalue_DEPENDENCIES) gst/$(am__dirstamp)
+gst/gstvalue$(EXEEXT): $(gst_gstvalue_OBJECTS) $(gst_gstvalue_DEPENDENCIES) $(EXTRA_gst_gstvalue_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstvalue$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstvalue_OBJECTS) $(gst_gstvalue_LDADD) $(LIBS)
 libs/$(am__dirstamp):
 	@$(MKDIR_P) libs
 	@: > libs/$(am__dirstamp)
-libs/adapter$(EXEEXT): $(libs_adapter_OBJECTS) $(libs_adapter_DEPENDENCIES) libs/$(am__dirstamp)
+libs/adapter$(EXEEXT): $(libs_adapter_OBJECTS) $(libs_adapter_DEPENDENCIES) $(EXTRA_libs_adapter_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/adapter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_adapter_OBJECTS) $(libs_adapter_LDADD) $(LIBS)
-libs/basesink$(EXEEXT): $(libs_basesink_OBJECTS) $(libs_basesink_DEPENDENCIES) libs/$(am__dirstamp)
+libs/basesink$(EXEEXT): $(libs_basesink_OBJECTS) $(libs_basesink_DEPENDENCIES) $(EXTRA_libs_basesink_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/basesink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_basesink_OBJECTS) $(libs_basesink_LDADD) $(LIBS)
-libs/basesrc$(EXEEXT): $(libs_basesrc_OBJECTS) $(libs_basesrc_DEPENDENCIES) libs/$(am__dirstamp)
+libs/basesrc$(EXEEXT): $(libs_basesrc_OBJECTS) $(libs_basesrc_DEPENDENCIES) $(EXTRA_libs_basesrc_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/basesrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_basesrc_OBJECTS) $(libs_basesrc_LDADD) $(LIBS)
-libs/bitreader$(EXEEXT): $(libs_bitreader_OBJECTS) $(libs_bitreader_DEPENDENCIES) libs/$(am__dirstamp)
+libs/bitreader$(EXEEXT): $(libs_bitreader_OBJECTS) $(libs_bitreader_DEPENDENCIES) $(EXTRA_libs_bitreader_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/bitreader$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_bitreader_OBJECTS) $(libs_bitreader_LDADD) $(LIBS)
-libs/bytereader$(EXEEXT): $(libs_bytereader_OBJECTS) $(libs_bytereader_DEPENDENCIES) libs/$(am__dirstamp)
+libs/bytereader$(EXEEXT): $(libs_bytereader_OBJECTS) $(libs_bytereader_DEPENDENCIES) $(EXTRA_libs_bytereader_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/bytereader$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_bytereader_OBJECTS) $(libs_bytereader_LDADD) $(LIBS)
-libs/bytewriter$(EXEEXT): $(libs_bytewriter_OBJECTS) $(libs_bytewriter_DEPENDENCIES) libs/$(am__dirstamp)
+libs/bytewriter$(EXEEXT): $(libs_bytewriter_OBJECTS) $(libs_bytewriter_DEPENDENCIES) $(EXTRA_libs_bytewriter_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/bytewriter$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_bytewriter_OBJECTS) $(libs_bytewriter_LDADD) $(LIBS)
-libs/collectpads$(EXEEXT): $(libs_collectpads_OBJECTS) $(libs_collectpads_DEPENDENCIES) libs/$(am__dirstamp)
-	@rm -f libs/collectpads$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(libs_collectpads_OBJECTS) $(libs_collectpads_LDADD) $(LIBS)
-libs/controller$(EXEEXT): $(libs_controller_OBJECTS) $(libs_controller_DEPENDENCIES) libs/$(am__dirstamp)
+libs/collectpads2$(EXEEXT): $(libs_collectpads2_OBJECTS) $(libs_collectpads2_DEPENDENCIES) $(EXTRA_libs_collectpads2_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/collectpads2$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(libs_collectpads2_OBJECTS) $(libs_collectpads2_LDADD) $(LIBS)
+libs/controller$(EXEEXT): $(libs_controller_OBJECTS) $(libs_controller_DEPENDENCIES) $(EXTRA_libs_controller_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/controller$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_controller_OBJECTS) $(libs_controller_LDADD) $(LIBS)
-libs/gdp$(EXEEXT): $(libs_gdp_OBJECTS) $(libs_gdp_DEPENDENCIES) libs/$(am__dirstamp)
-	@rm -f libs/gdp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(libs_gdp_OBJECTS) $(libs_gdp_LDADD) $(LIBS)
-libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) $(EXTRA_libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstlibscpp$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_LDADD) $(LIBS)
-libs/gstnetclientclock$(EXEEXT): $(libs_gstnetclientclock_OBJECTS) $(libs_gstnetclientclock_DEPENDENCIES) libs/$(am__dirstamp)
+libs/gstnetclientclock$(EXEEXT): $(libs_gstnetclientclock_OBJECTS) $(libs_gstnetclientclock_DEPENDENCIES) $(EXTRA_libs_gstnetclientclock_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstnetclientclock$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_gstnetclientclock_OBJECTS) $(libs_gstnetclientclock_LDADD) $(LIBS)
-libs/gstnettimeprovider$(EXEEXT): $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_DEPENDENCIES) libs/$(am__dirstamp)
+libs/gstnettimeprovider$(EXEEXT): $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_DEPENDENCIES) $(EXTRA_libs_gstnettimeprovider_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstnettimeprovider$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_LDADD) $(LIBS)
-libs/transform1$(EXEEXT): $(libs_transform1_OBJECTS) $(libs_transform1_DEPENDENCIES) libs/$(am__dirstamp)
+libs/transform1$(EXEEXT): $(libs_transform1_OBJECTS) $(libs_transform1_DEPENDENCIES) $(EXTRA_libs_transform1_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/transform1$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_transform1_OBJECTS) $(libs_transform1_LDADD) $(LIBS)
-libs/typefindhelper$(EXEEXT): $(libs_typefindhelper_OBJECTS) $(libs_typefindhelper_DEPENDENCIES) libs/$(am__dirstamp)
+libs/typefindhelper$(EXEEXT): $(libs_typefindhelper_OBJECTS) $(libs_typefindhelper_DEPENDENCIES) $(EXTRA_libs_typefindhelper_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/typefindhelper$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_typefindhelper_OBJECTS) $(libs_typefindhelper_LDADD) $(LIBS)
 pipelines/$(am__dirstamp):
 	@$(MKDIR_P) pipelines
 	@: > pipelines/$(am__dirstamp)
-pipelines/cleanup$(EXEEXT): $(pipelines_cleanup_OBJECTS) $(pipelines_cleanup_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/cleanup$(EXEEXT): $(pipelines_cleanup_OBJECTS) $(pipelines_cleanup_DEPENDENCIES) $(EXTRA_pipelines_cleanup_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/cleanup$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_cleanup_OBJECTS) $(pipelines_cleanup_LDADD) $(LIBS)
-pipelines/parse-disabled$(EXEEXT): $(pipelines_parse_disabled_OBJECTS) $(pipelines_parse_disabled_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/parse-disabled$(EXEEXT): $(pipelines_parse_disabled_OBJECTS) $(pipelines_parse_disabled_DEPENDENCIES) $(EXTRA_pipelines_parse_disabled_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/parse-disabled$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_parse_disabled_OBJECTS) $(pipelines_parse_disabled_LDADD) $(LIBS)
-pipelines/parse-launch$(EXEEXT): $(pipelines_parse_launch_OBJECTS) $(pipelines_parse_launch_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/parse-launch$(EXEEXT): $(pipelines_parse_launch_OBJECTS) $(pipelines_parse_launch_DEPENDENCIES) $(EXTRA_pipelines_parse_launch_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/parse-launch$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_parse_launch_OBJECTS) $(pipelines_parse_launch_LDADD) $(LIBS)
-pipelines/queue-error$(EXEEXT): $(pipelines_queue_error_OBJECTS) $(pipelines_queue_error_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/queue-error$(EXEEXT): $(pipelines_queue_error_OBJECTS) $(pipelines_queue_error_DEPENDENCIES) $(EXTRA_pipelines_queue_error_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/queue-error$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_queue_error_OBJECTS) $(pipelines_queue_error_LDADD) $(LIBS)
-pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/seek$(EXEEXT): $(pipelines_seek_OBJECTS) $(pipelines_seek_DEPENDENCIES) $(EXTRA_pipelines_seek_DEPENDENCIES) pipelines/$(am__dirstamp)
+	@rm -f pipelines/seek$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(pipelines_seek_OBJECTS) $(pipelines_seek_LDADD) $(LIBS)
+pipelines/simple-launch-lines$(EXEEXT): $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_DEPENDENCIES) $(EXTRA_pipelines_simple_launch_lines_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/simple-launch-lines$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
-pipelines/stress$(EXEEXT): $(pipelines_stress_OBJECTS) $(pipelines_stress_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/stress$(EXEEXT): $(pipelines_stress_OBJECTS) $(pipelines_stress_DEPENDENCIES) $(EXTRA_pipelines_stress_DEPENDENCIES) pipelines/$(am__dirstamp)
 	@rm -f pipelines/stress$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pipelines_stress_OBJECTS) $(pipelines_stress_LDADD) $(LIBS)
 
@@ -1415,7 +1483,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytewriter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capsfilter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cleanup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/collectpads.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/collectpads2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/controller.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_fdsrc-fdsrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_filesrc-filesrc.Po@am__quote@
@@ -1423,8 +1491,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fakesrc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filesink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funnel.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstatomicqueue.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbin.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbuffer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstbufferlist.Po@am__quote@
@@ -1432,16 +1500,17 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcaps.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstchildproxy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstclock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcontroller.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstcpp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstdatetime.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstelement.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstelementfactory.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstevent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstghostpad.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstindex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstinfo.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstiterator.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstlibscpp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmemory.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmessage.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstmeta.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstminiobject.Po@am__quote@
@@ -1462,6 +1531,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsttag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsttagsetter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsttask.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsttoc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsttocsetter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsturi.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstutils.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstvalue.Po@am__quote@
@@ -1472,6 +1543,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue-error.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seek.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selector.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-launch-lines.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sinks.Po@am__quote@
@@ -1485,1234 +1557,1136 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 capsfilter.o: elements/capsfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter.o -MD -MP -MF $(DEPDIR)/capsfilter.Tpo -c -o capsfilter.o `test -f 'elements/capsfilter.c' || echo '$(srcdir)/'`elements/capsfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter.Tpo $(DEPDIR)/capsfilter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/capsfilter.c' object='capsfilter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/capsfilter.c' object='capsfilter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter.o `test -f 'elements/capsfilter.c' || echo '$(srcdir)/'`elements/capsfilter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter.o `test -f 'elements/capsfilter.c' || echo '$(srcdir)/'`elements/capsfilter.c
 
 capsfilter.obj: elements/capsfilter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter.obj -MD -MP -MF $(DEPDIR)/capsfilter.Tpo -c -o capsfilter.obj `if test -f 'elements/capsfilter.c'; then $(CYGPATH_W) 'elements/capsfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capsfilter.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter.Tpo $(DEPDIR)/capsfilter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/capsfilter.c' object='capsfilter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/capsfilter.c' object='capsfilter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter.obj `if test -f 'elements/capsfilter.c'; then $(CYGPATH_W) 'elements/capsfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capsfilter.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter.obj `if test -f 'elements/capsfilter.c'; then $(CYGPATH_W) 'elements/capsfilter.c'; else $(CYGPATH_W) '$(srcdir)/elements/capsfilter.c'; fi`
 
 fakesink.o: elements/fakesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fakesink.o -MD -MP -MF $(DEPDIR)/fakesink.Tpo -c -o fakesink.o `test -f 'elements/fakesink.c' || echo '$(srcdir)/'`elements/fakesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fakesink.Tpo $(DEPDIR)/fakesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fakesink.c' object='fakesink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fakesink.c' object='fakesink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesink.o `test -f 'elements/fakesink.c' || echo '$(srcdir)/'`elements/fakesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesink.o `test -f 'elements/fakesink.c' || echo '$(srcdir)/'`elements/fakesink.c
 
 fakesink.obj: elements/fakesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fakesink.obj -MD -MP -MF $(DEPDIR)/fakesink.Tpo -c -o fakesink.obj `if test -f 'elements/fakesink.c'; then $(CYGPATH_W) 'elements/fakesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesink.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fakesink.Tpo $(DEPDIR)/fakesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fakesink.c' object='fakesink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fakesink.c' object='fakesink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesink.obj `if test -f 'elements/fakesink.c'; then $(CYGPATH_W) 'elements/fakesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesink.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesink.obj `if test -f 'elements/fakesink.c'; then $(CYGPATH_W) 'elements/fakesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesink.c'; fi`
 
 fakesrc.o: elements/fakesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fakesrc.o -MD -MP -MF $(DEPDIR)/fakesrc.Tpo -c -o fakesrc.o `test -f 'elements/fakesrc.c' || echo '$(srcdir)/'`elements/fakesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fakesrc.Tpo $(DEPDIR)/fakesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fakesrc.c' object='fakesrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fakesrc.c' object='fakesrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesrc.o `test -f 'elements/fakesrc.c' || echo '$(srcdir)/'`elements/fakesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesrc.o `test -f 'elements/fakesrc.c' || echo '$(srcdir)/'`elements/fakesrc.c
 
 fakesrc.obj: elements/fakesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fakesrc.obj -MD -MP -MF $(DEPDIR)/fakesrc.Tpo -c -o fakesrc.obj `if test -f 'elements/fakesrc.c'; then $(CYGPATH_W) 'elements/fakesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesrc.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fakesrc.Tpo $(DEPDIR)/fakesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fakesrc.c' object='fakesrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fakesrc.c' object='fakesrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesrc.obj `if test -f 'elements/fakesrc.c'; then $(CYGPATH_W) 'elements/fakesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fakesrc.obj `if test -f 'elements/fakesrc.c'; then $(CYGPATH_W) 'elements/fakesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fakesrc.c'; fi`
 
 elements_fdsrc-fdsrc.o: elements/fdsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -MT elements_fdsrc-fdsrc.o -MD -MP -MF $(DEPDIR)/elements_fdsrc-fdsrc.Tpo -c -o elements_fdsrc-fdsrc.o `test -f 'elements/fdsrc.c' || echo '$(srcdir)/'`elements/fdsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_fdsrc-fdsrc.Tpo $(DEPDIR)/elements_fdsrc-fdsrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fdsrc.c' object='elements_fdsrc-fdsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fdsrc.c' object='elements_fdsrc-fdsrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -c -o elements_fdsrc-fdsrc.o `test -f 'elements/fdsrc.c' || echo '$(srcdir)/'`elements/fdsrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -c -o elements_fdsrc-fdsrc.o `test -f 'elements/fdsrc.c' || echo '$(srcdir)/'`elements/fdsrc.c
 
 elements_fdsrc-fdsrc.obj: elements/fdsrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -MT elements_fdsrc-fdsrc.obj -MD -MP -MF $(DEPDIR)/elements_fdsrc-fdsrc.Tpo -c -o elements_fdsrc-fdsrc.obj `if test -f 'elements/fdsrc.c'; then $(CYGPATH_W) 'elements/fdsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fdsrc.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_fdsrc-fdsrc.Tpo $(DEPDIR)/elements_fdsrc-fdsrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/fdsrc.c' object='elements_fdsrc-fdsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/fdsrc.c' object='elements_fdsrc-fdsrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -c -o elements_fdsrc-fdsrc.obj `if test -f 'elements/fdsrc.c'; then $(CYGPATH_W) 'elements/fdsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fdsrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_fdsrc_CFLAGS) $(CFLAGS) -c -o elements_fdsrc-fdsrc.obj `if test -f 'elements/fdsrc.c'; then $(CYGPATH_W) 'elements/fdsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/fdsrc.c'; fi`
 
 filesink.o: elements/filesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT filesink.o -MD -MP -MF $(DEPDIR)/filesink.Tpo -c -o filesink.o `test -f 'elements/filesink.c' || echo '$(srcdir)/'`elements/filesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/filesink.Tpo $(DEPDIR)/filesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/filesink.c' object='filesink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/filesink.c' object='filesink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o filesink.o `test -f 'elements/filesink.c' || echo '$(srcdir)/'`elements/filesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o filesink.o `test -f 'elements/filesink.c' || echo '$(srcdir)/'`elements/filesink.c
 
 filesink.obj: elements/filesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT filesink.obj -MD -MP -MF $(DEPDIR)/filesink.Tpo -c -o filesink.obj `if test -f 'elements/filesink.c'; then $(CYGPATH_W) 'elements/filesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesink.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/filesink.Tpo $(DEPDIR)/filesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/filesink.c' object='filesink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/filesink.c' object='filesink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o filesink.obj `if test -f 'elements/filesink.c'; then $(CYGPATH_W) 'elements/filesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesink.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o filesink.obj `if test -f 'elements/filesink.c'; then $(CYGPATH_W) 'elements/filesink.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesink.c'; fi`
 
 elements_filesrc-filesrc.o: elements/filesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -MT elements_filesrc-filesrc.o -MD -MP -MF $(DEPDIR)/elements_filesrc-filesrc.Tpo -c -o elements_filesrc-filesrc.o `test -f 'elements/filesrc.c' || echo '$(srcdir)/'`elements/filesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_filesrc-filesrc.Tpo $(DEPDIR)/elements_filesrc-filesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/filesrc.c' object='elements_filesrc-filesrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/filesrc.c' object='elements_filesrc-filesrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -c -o elements_filesrc-filesrc.o `test -f 'elements/filesrc.c' || echo '$(srcdir)/'`elements/filesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -c -o elements_filesrc-filesrc.o `test -f 'elements/filesrc.c' || echo '$(srcdir)/'`elements/filesrc.c
 
 elements_filesrc-filesrc.obj: elements/filesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -MT elements_filesrc-filesrc.obj -MD -MP -MF $(DEPDIR)/elements_filesrc-filesrc.Tpo -c -o elements_filesrc-filesrc.obj `if test -f 'elements/filesrc.c'; then $(CYGPATH_W) 'elements/filesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesrc.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/elements_filesrc-filesrc.Tpo $(DEPDIR)/elements_filesrc-filesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/filesrc.c' object='elements_filesrc-filesrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/filesrc.c' object='elements_filesrc-filesrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -c -o elements_filesrc-filesrc.obj `if test -f 'elements/filesrc.c'; then $(CYGPATH_W) 'elements/filesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_filesrc_CFLAGS) $(CFLAGS) -c -o elements_filesrc-filesrc.obj `if test -f 'elements/filesrc.c'; then $(CYGPATH_W) 'elements/filesrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/filesrc.c'; fi`
 
 funnel.o: elements/funnel.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT funnel.o -MD -MP -MF $(DEPDIR)/funnel.Tpo -c -o funnel.o `test -f 'elements/funnel.c' || echo '$(srcdir)/'`elements/funnel.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/funnel.Tpo $(DEPDIR)/funnel.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/funnel.c' object='funnel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/funnel.c' object='funnel.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o funnel.o `test -f 'elements/funnel.c' || echo '$(srcdir)/'`elements/funnel.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o funnel.o `test -f 'elements/funnel.c' || echo '$(srcdir)/'`elements/funnel.c
 
 funnel.obj: elements/funnel.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT funnel.obj -MD -MP -MF $(DEPDIR)/funnel.Tpo -c -o funnel.obj `if test -f 'elements/funnel.c'; then $(CYGPATH_W) 'elements/funnel.c'; else $(CYGPATH_W) '$(srcdir)/elements/funnel.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/funnel.Tpo $(DEPDIR)/funnel.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/funnel.c' object='funnel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/funnel.c' object='funnel.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o funnel.obj `if test -f 'elements/funnel.c'; then $(CYGPATH_W) 'elements/funnel.c'; else $(CYGPATH_W) '$(srcdir)/elements/funnel.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o funnel.obj `if test -f 'elements/funnel.c'; then $(CYGPATH_W) 'elements/funnel.c'; else $(CYGPATH_W) '$(srcdir)/elements/funnel.c'; fi`
 
 identity.o: elements/identity.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT identity.o -MD -MP -MF $(DEPDIR)/identity.Tpo -c -o identity.o `test -f 'elements/identity.c' || echo '$(srcdir)/'`elements/identity.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/identity.Tpo $(DEPDIR)/identity.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/identity.c' object='identity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/identity.c' object='identity.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o identity.o `test -f 'elements/identity.c' || echo '$(srcdir)/'`elements/identity.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o identity.o `test -f 'elements/identity.c' || echo '$(srcdir)/'`elements/identity.c
 
 identity.obj: elements/identity.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT identity.obj -MD -MP -MF $(DEPDIR)/identity.Tpo -c -o identity.obj `if test -f 'elements/identity.c'; then $(CYGPATH_W) 'elements/identity.c'; else $(CYGPATH_W) '$(srcdir)/elements/identity.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/identity.Tpo $(DEPDIR)/identity.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/identity.c' object='identity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/identity.c' object='identity.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o identity.obj `if test -f 'elements/identity.c'; then $(CYGPATH_W) 'elements/identity.c'; else $(CYGPATH_W) '$(srcdir)/elements/identity.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o identity.obj `if test -f 'elements/identity.c'; then $(CYGPATH_W) 'elements/identity.c'; else $(CYGPATH_W) '$(srcdir)/elements/identity.c'; fi`
 
 multiqueue.o: elements/multiqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multiqueue.o -MD -MP -MF $(DEPDIR)/multiqueue.Tpo -c -o multiqueue.o `test -f 'elements/multiqueue.c' || echo '$(srcdir)/'`elements/multiqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multiqueue.Tpo $(DEPDIR)/multiqueue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/multiqueue.c' object='multiqueue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multiqueue.c' object='multiqueue.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multiqueue.o `test -f 'elements/multiqueue.c' || echo '$(srcdir)/'`elements/multiqueue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multiqueue.o `test -f 'elements/multiqueue.c' || echo '$(srcdir)/'`elements/multiqueue.c
 
 multiqueue.obj: elements/multiqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multiqueue.obj -MD -MP -MF $(DEPDIR)/multiqueue.Tpo -c -o multiqueue.obj `if test -f 'elements/multiqueue.c'; then $(CYGPATH_W) 'elements/multiqueue.c'; else $(CYGPATH_W) '$(srcdir)/elements/multiqueue.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/multiqueue.Tpo $(DEPDIR)/multiqueue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/multiqueue.c' object='multiqueue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/multiqueue.c' object='multiqueue.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multiqueue.obj `if test -f 'elements/multiqueue.c'; then $(CYGPATH_W) 'elements/multiqueue.c'; else $(CYGPATH_W) '$(srcdir)/elements/multiqueue.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multiqueue.obj `if test -f 'elements/multiqueue.c'; then $(CYGPATH_W) 'elements/multiqueue.c'; else $(CYGPATH_W) '$(srcdir)/elements/multiqueue.c'; fi`
 
 queue.o: elements/queue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue.o -MD -MP -MF $(DEPDIR)/queue.Tpo -c -o queue.o `test -f 'elements/queue.c' || echo '$(srcdir)/'`elements/queue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue.Tpo $(DEPDIR)/queue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/queue.c' object='queue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/queue.c' object='queue.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue.o `test -f 'elements/queue.c' || echo '$(srcdir)/'`elements/queue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue.o `test -f 'elements/queue.c' || echo '$(srcdir)/'`elements/queue.c
 
 queue.obj: elements/queue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue.obj -MD -MP -MF $(DEPDIR)/queue.Tpo -c -o queue.obj `if test -f 'elements/queue.c'; then $(CYGPATH_W) 'elements/queue.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue.Tpo $(DEPDIR)/queue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/queue.c' object='queue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/queue.c' object='queue.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue.obj `if test -f 'elements/queue.c'; then $(CYGPATH_W) 'elements/queue.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue.obj `if test -f 'elements/queue.c'; then $(CYGPATH_W) 'elements/queue.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue.c'; fi`
 
 queue2.o: elements/queue2.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue2.o -MD -MP -MF $(DEPDIR)/queue2.Tpo -c -o queue2.o `test -f 'elements/queue2.c' || echo '$(srcdir)/'`elements/queue2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue2.Tpo $(DEPDIR)/queue2.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/queue2.c' object='queue2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/queue2.c' object='queue2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue2.o `test -f 'elements/queue2.c' || echo '$(srcdir)/'`elements/queue2.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue2.o `test -f 'elements/queue2.c' || echo '$(srcdir)/'`elements/queue2.c
 
 queue2.obj: elements/queue2.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue2.obj -MD -MP -MF $(DEPDIR)/queue2.Tpo -c -o queue2.obj `if test -f 'elements/queue2.c'; then $(CYGPATH_W) 'elements/queue2.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue2.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue2.Tpo $(DEPDIR)/queue2.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/queue2.c' object='queue2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/queue2.c' object='queue2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue2.obj `if test -f 'elements/queue2.c'; then $(CYGPATH_W) 'elements/queue2.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue2.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue2.obj `if test -f 'elements/queue2.c'; then $(CYGPATH_W) 'elements/queue2.c'; else $(CYGPATH_W) '$(srcdir)/elements/queue2.c'; fi`
 
 selector.o: elements/selector.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT selector.o -MD -MP -MF $(DEPDIR)/selector.Tpo -c -o selector.o `test -f 'elements/selector.c' || echo '$(srcdir)/'`elements/selector.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/selector.Tpo $(DEPDIR)/selector.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/selector.c' object='selector.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/selector.c' object='selector.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o selector.o `test -f 'elements/selector.c' || echo '$(srcdir)/'`elements/selector.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o selector.o `test -f 'elements/selector.c' || echo '$(srcdir)/'`elements/selector.c
 
 selector.obj: elements/selector.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT selector.obj -MD -MP -MF $(DEPDIR)/selector.Tpo -c -o selector.obj `if test -f 'elements/selector.c'; then $(CYGPATH_W) 'elements/selector.c'; else $(CYGPATH_W) '$(srcdir)/elements/selector.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/selector.Tpo $(DEPDIR)/selector.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/selector.c' object='selector.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/selector.c' object='selector.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o selector.obj `if test -f 'elements/selector.c'; then $(CYGPATH_W) 'elements/selector.c'; else $(CYGPATH_W) '$(srcdir)/elements/selector.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o selector.obj `if test -f 'elements/selector.c'; then $(CYGPATH_W) 'elements/selector.c'; else $(CYGPATH_W) '$(srcdir)/elements/selector.c'; fi`
 
 tee.o: elements/tee.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tee.o -MD -MP -MF $(DEPDIR)/tee.Tpo -c -o tee.o `test -f 'elements/tee.c' || echo '$(srcdir)/'`elements/tee.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/tee.Tpo $(DEPDIR)/tee.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/tee.c' object='tee.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/tee.c' object='tee.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tee.o `test -f 'elements/tee.c' || echo '$(srcdir)/'`elements/tee.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tee.o `test -f 'elements/tee.c' || echo '$(srcdir)/'`elements/tee.c
 
 tee.obj: elements/tee.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tee.obj -MD -MP -MF $(DEPDIR)/tee.Tpo -c -o tee.obj `if test -f 'elements/tee.c'; then $(CYGPATH_W) 'elements/tee.c'; else $(CYGPATH_W) '$(srcdir)/elements/tee.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/tee.Tpo $(DEPDIR)/tee.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/tee.c' object='tee.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/tee.c' object='tee.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tee.obj `if test -f 'elements/tee.c'; then $(CYGPATH_W) 'elements/tee.c'; else $(CYGPATH_W) '$(srcdir)/elements/tee.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tee.obj `if test -f 'elements/tee.c'; then $(CYGPATH_W) 'elements/tee.c'; else $(CYGPATH_W) '$(srcdir)/elements/tee.c'; fi`
 
 valve.o: elements/valve.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT valve.o -MD -MP -MF $(DEPDIR)/valve.Tpo -c -o valve.o `test -f 'elements/valve.c' || echo '$(srcdir)/'`elements/valve.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/valve.Tpo $(DEPDIR)/valve.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/valve.c' object='valve.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/valve.c' object='valve.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o valve.o `test -f 'elements/valve.c' || echo '$(srcdir)/'`elements/valve.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o valve.o `test -f 'elements/valve.c' || echo '$(srcdir)/'`elements/valve.c
 
 valve.obj: elements/valve.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT valve.obj -MD -MP -MF $(DEPDIR)/valve.Tpo -c -o valve.obj `if test -f 'elements/valve.c'; then $(CYGPATH_W) 'elements/valve.c'; else $(CYGPATH_W) '$(srcdir)/elements/valve.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/valve.Tpo $(DEPDIR)/valve.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='elements/valve.c' object='valve.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/valve.c' object='valve.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o valve.obj `if test -f 'elements/valve.c'; then $(CYGPATH_W) 'elements/valve.c'; else $(CYGPATH_W) '$(srcdir)/elements/valve.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o valve.obj `if test -f 'elements/valve.c'; then $(CYGPATH_W) 'elements/valve.c'; else $(CYGPATH_W) '$(srcdir)/elements/valve.c'; fi`
 
 sinks.o: generic/sinks.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sinks.o -MD -MP -MF $(DEPDIR)/sinks.Tpo -c -o sinks.o `test -f 'generic/sinks.c' || echo '$(srcdir)/'`generic/sinks.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sinks.Tpo $(DEPDIR)/sinks.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='generic/sinks.c' object='sinks.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/sinks.c' object='sinks.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sinks.o `test -f 'generic/sinks.c' || echo '$(srcdir)/'`generic/sinks.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sinks.o `test -f 'generic/sinks.c' || echo '$(srcdir)/'`generic/sinks.c
 
 sinks.obj: generic/sinks.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sinks.obj -MD -MP -MF $(DEPDIR)/sinks.Tpo -c -o sinks.obj `if test -f 'generic/sinks.c'; then $(CYGPATH_W) 'generic/sinks.c'; else $(CYGPATH_W) '$(srcdir)/generic/sinks.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/sinks.Tpo $(DEPDIR)/sinks.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='generic/sinks.c' object='sinks.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/sinks.c' object='sinks.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sinks.obj `if test -f 'generic/sinks.c'; then $(CYGPATH_W) 'generic/sinks.c'; else $(CYGPATH_W) '$(srcdir)/generic/sinks.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sinks.obj `if test -f 'generic/sinks.c'; then $(CYGPATH_W) 'generic/sinks.c'; else $(CYGPATH_W) '$(srcdir)/generic/sinks.c'; fi`
 
 states.o: generic/states.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.o -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='states.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.o `test -f 'generic/states.c' || echo '$(srcdir)/'`generic/states.c
 
 states.obj: generic/states.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT states.obj -MD -MP -MF $(DEPDIR)/states.Tpo -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/states.Tpo $(DEPDIR)/states.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='generic/states.c' object='states.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o states.obj `if test -f 'generic/states.c'; then $(CYGPATH_W) 'generic/states.c'; else $(CYGPATH_W) '$(srcdir)/generic/states.c'; fi`
 
 gst.o: gst/gst.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gst.o -MD -MP -MF $(DEPDIR)/gst.Tpo -c -o gst.o `test -f 'gst/gst.c' || echo '$(srcdir)/'`gst/gst.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst.Tpo $(DEPDIR)/gst.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gst.c' object='gst.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gst.c' object='gst.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gst.o `test -f 'gst/gst.c' || echo '$(srcdir)/'`gst/gst.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gst.o `test -f 'gst/gst.c' || echo '$(srcdir)/'`gst/gst.c
 
 gst.obj: gst/gst.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gst.obj -MD -MP -MF $(DEPDIR)/gst.Tpo -c -o gst.obj `if test -f 'gst/gst.c'; then $(CYGPATH_W) 'gst/gst.c'; else $(CYGPATH_W) '$(srcdir)/gst/gst.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst.Tpo $(DEPDIR)/gst.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gst.c' object='gst.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gst.c' object='gst.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gst.obj `if test -f 'gst/gst.c'; then $(CYGPATH_W) 'gst/gst.c'; else $(CYGPATH_W) '$(srcdir)/gst/gst.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gst.obj `if test -f 'gst/gst.c'; then $(CYGPATH_W) 'gst/gst.c'; else $(CYGPATH_W) '$(srcdir)/gst/gst.c'; fi`
+
+gstatomicqueue.o: gst/gstatomicqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstatomicqueue.o -MD -MP -MF $(DEPDIR)/gstatomicqueue.Tpo -c -o gstatomicqueue.o `test -f 'gst/gstatomicqueue.c' || echo '$(srcdir)/'`gst/gstatomicqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstatomicqueue.Tpo $(DEPDIR)/gstatomicqueue.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstatomicqueue.c' object='gstatomicqueue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstatomicqueue.o `test -f 'gst/gstatomicqueue.c' || echo '$(srcdir)/'`gst/gstatomicqueue.c
+
+gstatomicqueue.obj: gst/gstatomicqueue.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstatomicqueue.obj -MD -MP -MF $(DEPDIR)/gstatomicqueue.Tpo -c -o gstatomicqueue.obj `if test -f 'gst/gstatomicqueue.c'; then $(CYGPATH_W) 'gst/gstatomicqueue.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstatomicqueue.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstatomicqueue.Tpo $(DEPDIR)/gstatomicqueue.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstatomicqueue.c' object='gstatomicqueue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstatomicqueue.obj `if test -f 'gst/gstatomicqueue.c'; then $(CYGPATH_W) 'gst/gstatomicqueue.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstatomicqueue.c'; fi`
 
 gstbin.o: gst/gstbin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbin.o -MD -MP -MF $(DEPDIR)/gstbin.Tpo -c -o gstbin.o `test -f 'gst/gstbin.c' || echo '$(srcdir)/'`gst/gstbin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbin.Tpo $(DEPDIR)/gstbin.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbin.c' object='gstbin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbin.c' object='gstbin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbin.o `test -f 'gst/gstbin.c' || echo '$(srcdir)/'`gst/gstbin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbin.o `test -f 'gst/gstbin.c' || echo '$(srcdir)/'`gst/gstbin.c
 
 gstbin.obj: gst/gstbin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbin.obj -MD -MP -MF $(DEPDIR)/gstbin.Tpo -c -o gstbin.obj `if test -f 'gst/gstbin.c'; then $(CYGPATH_W) 'gst/gstbin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbin.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbin.Tpo $(DEPDIR)/gstbin.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbin.c' object='gstbin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbin.c' object='gstbin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbin.obj `if test -f 'gst/gstbin.c'; then $(CYGPATH_W) 'gst/gstbin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbin.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbin.obj `if test -f 'gst/gstbin.c'; then $(CYGPATH_W) 'gst/gstbin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbin.c'; fi`
 
 gstbuffer.o: gst/gstbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbuffer.o -MD -MP -MF $(DEPDIR)/gstbuffer.Tpo -c -o gstbuffer.o `test -f 'gst/gstbuffer.c' || echo '$(srcdir)/'`gst/gstbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbuffer.Tpo $(DEPDIR)/gstbuffer.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbuffer.c' object='gstbuffer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbuffer.c' object='gstbuffer.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbuffer.o `test -f 'gst/gstbuffer.c' || echo '$(srcdir)/'`gst/gstbuffer.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbuffer.o `test -f 'gst/gstbuffer.c' || echo '$(srcdir)/'`gst/gstbuffer.c
 
 gstbuffer.obj: gst/gstbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbuffer.obj -MD -MP -MF $(DEPDIR)/gstbuffer.Tpo -c -o gstbuffer.obj `if test -f 'gst/gstbuffer.c'; then $(CYGPATH_W) 'gst/gstbuffer.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbuffer.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbuffer.Tpo $(DEPDIR)/gstbuffer.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbuffer.c' object='gstbuffer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbuffer.c' object='gstbuffer.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbuffer.obj `if test -f 'gst/gstbuffer.c'; then $(CYGPATH_W) 'gst/gstbuffer.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbuffer.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbuffer.obj `if test -f 'gst/gstbuffer.c'; then $(CYGPATH_W) 'gst/gstbuffer.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbuffer.c'; fi`
 
 gstbufferlist.o: gst/gstbufferlist.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbufferlist.o -MD -MP -MF $(DEPDIR)/gstbufferlist.Tpo -c -o gstbufferlist.o `test -f 'gst/gstbufferlist.c' || echo '$(srcdir)/'`gst/gstbufferlist.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbufferlist.Tpo $(DEPDIR)/gstbufferlist.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbufferlist.c' object='gstbufferlist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbufferlist.c' object='gstbufferlist.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbufferlist.o `test -f 'gst/gstbufferlist.c' || echo '$(srcdir)/'`gst/gstbufferlist.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbufferlist.o `test -f 'gst/gstbufferlist.c' || echo '$(srcdir)/'`gst/gstbufferlist.c
 
 gstbufferlist.obj: gst/gstbufferlist.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbufferlist.obj -MD -MP -MF $(DEPDIR)/gstbufferlist.Tpo -c -o gstbufferlist.obj `if test -f 'gst/gstbufferlist.c'; then $(CYGPATH_W) 'gst/gstbufferlist.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbufferlist.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbufferlist.Tpo $(DEPDIR)/gstbufferlist.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbufferlist.c' object='gstbufferlist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbufferlist.c' object='gstbufferlist.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbufferlist.obj `if test -f 'gst/gstbufferlist.c'; then $(CYGPATH_W) 'gst/gstbufferlist.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbufferlist.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbufferlist.obj `if test -f 'gst/gstbufferlist.c'; then $(CYGPATH_W) 'gst/gstbufferlist.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbufferlist.c'; fi`
 
 gstbus.o: gst/gstbus.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbus.o -MD -MP -MF $(DEPDIR)/gstbus.Tpo -c -o gstbus.o `test -f 'gst/gstbus.c' || echo '$(srcdir)/'`gst/gstbus.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbus.Tpo $(DEPDIR)/gstbus.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbus.c' object='gstbus.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbus.c' object='gstbus.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbus.o `test -f 'gst/gstbus.c' || echo '$(srcdir)/'`gst/gstbus.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbus.o `test -f 'gst/gstbus.c' || echo '$(srcdir)/'`gst/gstbus.c
 
 gstbus.obj: gst/gstbus.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstbus.obj -MD -MP -MF $(DEPDIR)/gstbus.Tpo -c -o gstbus.obj `if test -f 'gst/gstbus.c'; then $(CYGPATH_W) 'gst/gstbus.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbus.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstbus.Tpo $(DEPDIR)/gstbus.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstbus.c' object='gstbus.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstbus.c' object='gstbus.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbus.obj `if test -f 'gst/gstbus.c'; then $(CYGPATH_W) 'gst/gstbus.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbus.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstbus.obj `if test -f 'gst/gstbus.c'; then $(CYGPATH_W) 'gst/gstbus.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstbus.c'; fi`
 
 gstcaps.o: gst/gstcaps.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcaps.o -MD -MP -MF $(DEPDIR)/gstcaps.Tpo -c -o gstcaps.o `test -f 'gst/gstcaps.c' || echo '$(srcdir)/'`gst/gstcaps.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcaps.Tpo $(DEPDIR)/gstcaps.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstcaps.c' object='gstcaps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcaps.c' object='gstcaps.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcaps.o `test -f 'gst/gstcaps.c' || echo '$(srcdir)/'`gst/gstcaps.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcaps.o `test -f 'gst/gstcaps.c' || echo '$(srcdir)/'`gst/gstcaps.c
 
 gstcaps.obj: gst/gstcaps.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcaps.obj -MD -MP -MF $(DEPDIR)/gstcaps.Tpo -c -o gstcaps.obj `if test -f 'gst/gstcaps.c'; then $(CYGPATH_W) 'gst/gstcaps.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcaps.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcaps.Tpo $(DEPDIR)/gstcaps.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstcaps.c' object='gstcaps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcaps.c' object='gstcaps.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcaps.obj `if test -f 'gst/gstcaps.c'; then $(CYGPATH_W) 'gst/gstcaps.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcaps.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcaps.obj `if test -f 'gst/gstcaps.c'; then $(CYGPATH_W) 'gst/gstcaps.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcaps.c'; fi`
 
 gstchildproxy.o: gst/gstchildproxy.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstchildproxy.o -MD -MP -MF $(DEPDIR)/gstchildproxy.Tpo -c -o gstchildproxy.o `test -f 'gst/gstchildproxy.c' || echo '$(srcdir)/'`gst/gstchildproxy.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstchildproxy.Tpo $(DEPDIR)/gstchildproxy.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstchildproxy.c' object='gstchildproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstchildproxy.c' object='gstchildproxy.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstchildproxy.o `test -f 'gst/gstchildproxy.c' || echo '$(srcdir)/'`gst/gstchildproxy.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstchildproxy.o `test -f 'gst/gstchildproxy.c' || echo '$(srcdir)/'`gst/gstchildproxy.c
 
 gstchildproxy.obj: gst/gstchildproxy.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstchildproxy.obj -MD -MP -MF $(DEPDIR)/gstchildproxy.Tpo -c -o gstchildproxy.obj `if test -f 'gst/gstchildproxy.c'; then $(CYGPATH_W) 'gst/gstchildproxy.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstchildproxy.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstchildproxy.Tpo $(DEPDIR)/gstchildproxy.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstchildproxy.c' object='gstchildproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstchildproxy.c' object='gstchildproxy.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstchildproxy.obj `if test -f 'gst/gstchildproxy.c'; then $(CYGPATH_W) 'gst/gstchildproxy.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstchildproxy.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstchildproxy.obj `if test -f 'gst/gstchildproxy.c'; then $(CYGPATH_W) 'gst/gstchildproxy.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstchildproxy.c'; fi`
 
 gstclock.o: gst/gstclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstclock.o -MD -MP -MF $(DEPDIR)/gstclock.Tpo -c -o gstclock.o `test -f 'gst/gstclock.c' || echo '$(srcdir)/'`gst/gstclock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstclock.Tpo $(DEPDIR)/gstclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstclock.c' object='gstclock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstclock.c' object='gstclock.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstclock.o `test -f 'gst/gstclock.c' || echo '$(srcdir)/'`gst/gstclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstclock.o `test -f 'gst/gstclock.c' || echo '$(srcdir)/'`gst/gstclock.c
 
 gstclock.obj: gst/gstclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstclock.obj -MD -MP -MF $(DEPDIR)/gstclock.Tpo -c -o gstclock.obj `if test -f 'gst/gstclock.c'; then $(CYGPATH_W) 'gst/gstclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstclock.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstclock.Tpo $(DEPDIR)/gstclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstclock.c' object='gstclock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstclock.c' object='gstclock.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstclock.obj `if test -f 'gst/gstclock.c'; then $(CYGPATH_W) 'gst/gstclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstclock.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstclock.obj `if test -f 'gst/gstclock.c'; then $(CYGPATH_W) 'gst/gstclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstclock.c'; fi`
+
+gstcontroller.o: gst/gstcontroller.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcontroller.o -MD -MP -MF $(DEPDIR)/gstcontroller.Tpo -c -o gstcontroller.o `test -f 'gst/gstcontroller.c' || echo '$(srcdir)/'`gst/gstcontroller.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcontroller.Tpo $(DEPDIR)/gstcontroller.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcontroller.c' object='gstcontroller.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcontroller.o `test -f 'gst/gstcontroller.c' || echo '$(srcdir)/'`gst/gstcontroller.c
+
+gstcontroller.obj: gst/gstcontroller.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstcontroller.obj -MD -MP -MF $(DEPDIR)/gstcontroller.Tpo -c -o gstcontroller.obj `if test -f 'gst/gstcontroller.c'; then $(CYGPATH_W) 'gst/gstcontroller.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcontroller.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcontroller.Tpo $(DEPDIR)/gstcontroller.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstcontroller.c' object='gstcontroller.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstcontroller.obj `if test -f 'gst/gstcontroller.c'; then $(CYGPATH_W) 'gst/gstcontroller.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstcontroller.c'; fi`
 
 gstdatetime.o: gst/gstdatetime.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstdatetime.o -MD -MP -MF $(DEPDIR)/gstdatetime.Tpo -c -o gstdatetime.o `test -f 'gst/gstdatetime.c' || echo '$(srcdir)/'`gst/gstdatetime.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstdatetime.Tpo $(DEPDIR)/gstdatetime.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstdatetime.c' object='gstdatetime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstdatetime.c' object='gstdatetime.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstdatetime.o `test -f 'gst/gstdatetime.c' || echo '$(srcdir)/'`gst/gstdatetime.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstdatetime.o `test -f 'gst/gstdatetime.c' || echo '$(srcdir)/'`gst/gstdatetime.c
 
 gstdatetime.obj: gst/gstdatetime.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstdatetime.obj -MD -MP -MF $(DEPDIR)/gstdatetime.Tpo -c -o gstdatetime.obj `if test -f 'gst/gstdatetime.c'; then $(CYGPATH_W) 'gst/gstdatetime.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstdatetime.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstdatetime.Tpo $(DEPDIR)/gstdatetime.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstdatetime.c' object='gstdatetime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstdatetime.c' object='gstdatetime.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstdatetime.obj `if test -f 'gst/gstdatetime.c'; then $(CYGPATH_W) 'gst/gstdatetime.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstdatetime.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstdatetime.obj `if test -f 'gst/gstdatetime.c'; then $(CYGPATH_W) 'gst/gstdatetime.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstdatetime.c'; fi`
 
 gstelement.o: gst/gstelement.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstelement.o -MD -MP -MF $(DEPDIR)/gstelement.Tpo -c -o gstelement.o `test -f 'gst/gstelement.c' || echo '$(srcdir)/'`gst/gstelement.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstelement.Tpo $(DEPDIR)/gstelement.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstelement.c' object='gstelement.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstelement.c' object='gstelement.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelement.o `test -f 'gst/gstelement.c' || echo '$(srcdir)/'`gst/gstelement.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelement.o `test -f 'gst/gstelement.c' || echo '$(srcdir)/'`gst/gstelement.c
 
 gstelement.obj: gst/gstelement.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstelement.obj -MD -MP -MF $(DEPDIR)/gstelement.Tpo -c -o gstelement.obj `if test -f 'gst/gstelement.c'; then $(CYGPATH_W) 'gst/gstelement.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelement.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstelement.Tpo $(DEPDIR)/gstelement.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstelement.c' object='gstelement.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstelement.c' object='gstelement.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelement.obj `if test -f 'gst/gstelement.c'; then $(CYGPATH_W) 'gst/gstelement.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelement.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelement.obj `if test -f 'gst/gstelement.c'; then $(CYGPATH_W) 'gst/gstelement.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelement.c'; fi`
 
 gstelementfactory.o: gst/gstelementfactory.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstelementfactory.o -MD -MP -MF $(DEPDIR)/gstelementfactory.Tpo -c -o gstelementfactory.o `test -f 'gst/gstelementfactory.c' || echo '$(srcdir)/'`gst/gstelementfactory.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstelementfactory.Tpo $(DEPDIR)/gstelementfactory.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstelementfactory.c' object='gstelementfactory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstelementfactory.c' object='gstelementfactory.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelementfactory.o `test -f 'gst/gstelementfactory.c' || echo '$(srcdir)/'`gst/gstelementfactory.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelementfactory.o `test -f 'gst/gstelementfactory.c' || echo '$(srcdir)/'`gst/gstelementfactory.c
 
 gstelementfactory.obj: gst/gstelementfactory.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstelementfactory.obj -MD -MP -MF $(DEPDIR)/gstelementfactory.Tpo -c -o gstelementfactory.obj `if test -f 'gst/gstelementfactory.c'; then $(CYGPATH_W) 'gst/gstelementfactory.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelementfactory.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstelementfactory.Tpo $(DEPDIR)/gstelementfactory.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstelementfactory.c' object='gstelementfactory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstelementfactory.c' object='gstelementfactory.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelementfactory.obj `if test -f 'gst/gstelementfactory.c'; then $(CYGPATH_W) 'gst/gstelementfactory.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelementfactory.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstelementfactory.obj `if test -f 'gst/gstelementfactory.c'; then $(CYGPATH_W) 'gst/gstelementfactory.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstelementfactory.c'; fi`
 
 gstevent.o: gst/gstevent.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstevent.o -MD -MP -MF $(DEPDIR)/gstevent.Tpo -c -o gstevent.o `test -f 'gst/gstevent.c' || echo '$(srcdir)/'`gst/gstevent.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstevent.Tpo $(DEPDIR)/gstevent.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstevent.c' object='gstevent.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstevent.c' object='gstevent.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstevent.o `test -f 'gst/gstevent.c' || echo '$(srcdir)/'`gst/gstevent.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstevent.o `test -f 'gst/gstevent.c' || echo '$(srcdir)/'`gst/gstevent.c
 
 gstevent.obj: gst/gstevent.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstevent.obj -MD -MP -MF $(DEPDIR)/gstevent.Tpo -c -o gstevent.obj `if test -f 'gst/gstevent.c'; then $(CYGPATH_W) 'gst/gstevent.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstevent.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstevent.Tpo $(DEPDIR)/gstevent.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstevent.c' object='gstevent.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstevent.c' object='gstevent.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstevent.obj `if test -f 'gst/gstevent.c'; then $(CYGPATH_W) 'gst/gstevent.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstevent.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstevent.obj `if test -f 'gst/gstevent.c'; then $(CYGPATH_W) 'gst/gstevent.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstevent.c'; fi`
 
 gstghostpad.o: gst/gstghostpad.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstghostpad.o -MD -MP -MF $(DEPDIR)/gstghostpad.Tpo -c -o gstghostpad.o `test -f 'gst/gstghostpad.c' || echo '$(srcdir)/'`gst/gstghostpad.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstghostpad.Tpo $(DEPDIR)/gstghostpad.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstghostpad.c' object='gstghostpad.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstghostpad.c' object='gstghostpad.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstghostpad.o `test -f 'gst/gstghostpad.c' || echo '$(srcdir)/'`gst/gstghostpad.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstghostpad.o `test -f 'gst/gstghostpad.c' || echo '$(srcdir)/'`gst/gstghostpad.c
 
 gstghostpad.obj: gst/gstghostpad.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstghostpad.obj -MD -MP -MF $(DEPDIR)/gstghostpad.Tpo -c -o gstghostpad.obj `if test -f 'gst/gstghostpad.c'; then $(CYGPATH_W) 'gst/gstghostpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstghostpad.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstghostpad.Tpo $(DEPDIR)/gstghostpad.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstghostpad.c' object='gstghostpad.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstghostpad.c' object='gstghostpad.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstghostpad.obj `if test -f 'gst/gstghostpad.c'; then $(CYGPATH_W) 'gst/gstghostpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstghostpad.c'; fi`
-
-gstindex.o: gst/gstindex.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstindex.o -MD -MP -MF $(DEPDIR)/gstindex.Tpo -c -o gstindex.o `test -f 'gst/gstindex.c' || echo '$(srcdir)/'`gst/gstindex.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstindex.Tpo $(DEPDIR)/gstindex.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstindex.c' object='gstindex.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstindex.o `test -f 'gst/gstindex.c' || echo '$(srcdir)/'`gst/gstindex.c
-
-gstindex.obj: gst/gstindex.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstindex.obj -MD -MP -MF $(DEPDIR)/gstindex.Tpo -c -o gstindex.obj `if test -f 'gst/gstindex.c'; then $(CYGPATH_W) 'gst/gstindex.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstindex.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstindex.Tpo $(DEPDIR)/gstindex.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstindex.c' object='gstindex.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstindex.obj `if test -f 'gst/gstindex.c'; then $(CYGPATH_W) 'gst/gstindex.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstindex.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstghostpad.obj `if test -f 'gst/gstghostpad.c'; then $(CYGPATH_W) 'gst/gstghostpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstghostpad.c'; fi`
 
 gstinfo.o: gst/gstinfo.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstinfo.o -MD -MP -MF $(DEPDIR)/gstinfo.Tpo -c -o gstinfo.o `test -f 'gst/gstinfo.c' || echo '$(srcdir)/'`gst/gstinfo.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstinfo.Tpo $(DEPDIR)/gstinfo.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstinfo.c' object='gstinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstinfo.c' object='gstinfo.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstinfo.o `test -f 'gst/gstinfo.c' || echo '$(srcdir)/'`gst/gstinfo.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstinfo.o `test -f 'gst/gstinfo.c' || echo '$(srcdir)/'`gst/gstinfo.c
 
 gstinfo.obj: gst/gstinfo.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstinfo.obj -MD -MP -MF $(DEPDIR)/gstinfo.Tpo -c -o gstinfo.obj `if test -f 'gst/gstinfo.c'; then $(CYGPATH_W) 'gst/gstinfo.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstinfo.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstinfo.Tpo $(DEPDIR)/gstinfo.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstinfo.c' object='gstinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstinfo.c' object='gstinfo.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstinfo.obj `if test -f 'gst/gstinfo.c'; then $(CYGPATH_W) 'gst/gstinfo.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstinfo.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstinfo.obj `if test -f 'gst/gstinfo.c'; then $(CYGPATH_W) 'gst/gstinfo.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstinfo.c'; fi`
 
 gstiterator.o: gst/gstiterator.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstiterator.o -MD -MP -MF $(DEPDIR)/gstiterator.Tpo -c -o gstiterator.o `test -f 'gst/gstiterator.c' || echo '$(srcdir)/'`gst/gstiterator.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstiterator.Tpo $(DEPDIR)/gstiterator.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstiterator.c' object='gstiterator.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstiterator.c' object='gstiterator.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstiterator.o `test -f 'gst/gstiterator.c' || echo '$(srcdir)/'`gst/gstiterator.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstiterator.o `test -f 'gst/gstiterator.c' || echo '$(srcdir)/'`gst/gstiterator.c
 
 gstiterator.obj: gst/gstiterator.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstiterator.obj -MD -MP -MF $(DEPDIR)/gstiterator.Tpo -c -o gstiterator.obj `if test -f 'gst/gstiterator.c'; then $(CYGPATH_W) 'gst/gstiterator.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstiterator.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstiterator.Tpo $(DEPDIR)/gstiterator.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstiterator.c' object='gstiterator.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstiterator.c' object='gstiterator.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstiterator.obj `if test -f 'gst/gstiterator.c'; then $(CYGPATH_W) 'gst/gstiterator.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstiterator.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstiterator.obj `if test -f 'gst/gstiterator.c'; then $(CYGPATH_W) 'gst/gstiterator.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstiterator.c'; fi`
+
+gstmemory.o: gst/gstmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmemory.o -MD -MP -MF $(DEPDIR)/gstmemory.Tpo -c -o gstmemory.o `test -f 'gst/gstmemory.c' || echo '$(srcdir)/'`gst/gstmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmemory.Tpo $(DEPDIR)/gstmemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmemory.c' object='gstmemory.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmemory.o `test -f 'gst/gstmemory.c' || echo '$(srcdir)/'`gst/gstmemory.c
+
+gstmemory.obj: gst/gstmemory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmemory.obj -MD -MP -MF $(DEPDIR)/gstmemory.Tpo -c -o gstmemory.obj `if test -f 'gst/gstmemory.c'; then $(CYGPATH_W) 'gst/gstmemory.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmemory.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmemory.Tpo $(DEPDIR)/gstmemory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmemory.c' object='gstmemory.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmemory.obj `if test -f 'gst/gstmemory.c'; then $(CYGPATH_W) 'gst/gstmemory.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmemory.c'; fi`
 
 gstmessage.o: gst/gstmessage.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmessage.o -MD -MP -MF $(DEPDIR)/gstmessage.Tpo -c -o gstmessage.o `test -f 'gst/gstmessage.c' || echo '$(srcdir)/'`gst/gstmessage.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmessage.Tpo $(DEPDIR)/gstmessage.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstmessage.c' object='gstmessage.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmessage.c' object='gstmessage.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmessage.o `test -f 'gst/gstmessage.c' || echo '$(srcdir)/'`gst/gstmessage.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmessage.o `test -f 'gst/gstmessage.c' || echo '$(srcdir)/'`gst/gstmessage.c
 
 gstmessage.obj: gst/gstmessage.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmessage.obj -MD -MP -MF $(DEPDIR)/gstmessage.Tpo -c -o gstmessage.obj `if test -f 'gst/gstmessage.c'; then $(CYGPATH_W) 'gst/gstmessage.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmessage.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmessage.Tpo $(DEPDIR)/gstmessage.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstmessage.c' object='gstmessage.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmessage.c' object='gstmessage.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmessage.obj `if test -f 'gst/gstmessage.c'; then $(CYGPATH_W) 'gst/gstmessage.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmessage.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmessage.obj `if test -f 'gst/gstmessage.c'; then $(CYGPATH_W) 'gst/gstmessage.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmessage.c'; fi`
 
 gstmeta.o: gst/gstmeta.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmeta.o -MD -MP -MF $(DEPDIR)/gstmeta.Tpo -c -o gstmeta.o `test -f 'gst/gstmeta.c' || echo '$(srcdir)/'`gst/gstmeta.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmeta.Tpo $(DEPDIR)/gstmeta.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstmeta.c' object='gstmeta.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmeta.c' object='gstmeta.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmeta.o `test -f 'gst/gstmeta.c' || echo '$(srcdir)/'`gst/gstmeta.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmeta.o `test -f 'gst/gstmeta.c' || echo '$(srcdir)/'`gst/gstmeta.c
 
 gstmeta.obj: gst/gstmeta.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstmeta.obj -MD -MP -MF $(DEPDIR)/gstmeta.Tpo -c -o gstmeta.obj `if test -f 'gst/gstmeta.c'; then $(CYGPATH_W) 'gst/gstmeta.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmeta.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstmeta.Tpo $(DEPDIR)/gstmeta.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstmeta.c' object='gstmeta.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstmeta.c' object='gstmeta.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmeta.obj `if test -f 'gst/gstmeta.c'; then $(CYGPATH_W) 'gst/gstmeta.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmeta.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstmeta.obj `if test -f 'gst/gstmeta.c'; then $(CYGPATH_W) 'gst/gstmeta.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstmeta.c'; fi`
 
 gstminiobject.o: gst/gstminiobject.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstminiobject.o -MD -MP -MF $(DEPDIR)/gstminiobject.Tpo -c -o gstminiobject.o `test -f 'gst/gstminiobject.c' || echo '$(srcdir)/'`gst/gstminiobject.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstminiobject.Tpo $(DEPDIR)/gstminiobject.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstminiobject.c' object='gstminiobject.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstminiobject.c' object='gstminiobject.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstminiobject.o `test -f 'gst/gstminiobject.c' || echo '$(srcdir)/'`gst/gstminiobject.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstminiobject.o `test -f 'gst/gstminiobject.c' || echo '$(srcdir)/'`gst/gstminiobject.c
 
 gstminiobject.obj: gst/gstminiobject.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstminiobject.obj -MD -MP -MF $(DEPDIR)/gstminiobject.Tpo -c -o gstminiobject.obj `if test -f 'gst/gstminiobject.c'; then $(CYGPATH_W) 'gst/gstminiobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstminiobject.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstminiobject.Tpo $(DEPDIR)/gstminiobject.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstminiobject.c' object='gstminiobject.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstminiobject.c' object='gstminiobject.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstminiobject.obj `if test -f 'gst/gstminiobject.c'; then $(CYGPATH_W) 'gst/gstminiobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstminiobject.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstminiobject.obj `if test -f 'gst/gstminiobject.c'; then $(CYGPATH_W) 'gst/gstminiobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstminiobject.c'; fi`
 
 gstobject.o: gst/gstobject.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstobject.o -MD -MP -MF $(DEPDIR)/gstobject.Tpo -c -o gstobject.o `test -f 'gst/gstobject.c' || echo '$(srcdir)/'`gst/gstobject.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstobject.Tpo $(DEPDIR)/gstobject.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstobject.c' object='gstobject.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstobject.c' object='gstobject.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstobject.o `test -f 'gst/gstobject.c' || echo '$(srcdir)/'`gst/gstobject.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstobject.o `test -f 'gst/gstobject.c' || echo '$(srcdir)/'`gst/gstobject.c
 
 gstobject.obj: gst/gstobject.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstobject.obj -MD -MP -MF $(DEPDIR)/gstobject.Tpo -c -o gstobject.obj `if test -f 'gst/gstobject.c'; then $(CYGPATH_W) 'gst/gstobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstobject.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstobject.Tpo $(DEPDIR)/gstobject.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstobject.c' object='gstobject.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstobject.c' object='gstobject.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstobject.obj `if test -f 'gst/gstobject.c'; then $(CYGPATH_W) 'gst/gstobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstobject.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstobject.obj `if test -f 'gst/gstobject.c'; then $(CYGPATH_W) 'gst/gstobject.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstobject.c'; fi`
 
 gstpad.o: gst/gstpad.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpad.o -MD -MP -MF $(DEPDIR)/gstpad.Tpo -c -o gstpad.o `test -f 'gst/gstpad.c' || echo '$(srcdir)/'`gst/gstpad.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpad.Tpo $(DEPDIR)/gstpad.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpad.c' object='gstpad.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpad.c' object='gstpad.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpad.o `test -f 'gst/gstpad.c' || echo '$(srcdir)/'`gst/gstpad.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpad.o `test -f 'gst/gstpad.c' || echo '$(srcdir)/'`gst/gstpad.c
 
 gstpad.obj: gst/gstpad.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpad.obj -MD -MP -MF $(DEPDIR)/gstpad.Tpo -c -o gstpad.obj `if test -f 'gst/gstpad.c'; then $(CYGPATH_W) 'gst/gstpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpad.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpad.Tpo $(DEPDIR)/gstpad.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpad.c' object='gstpad.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpad.c' object='gstpad.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpad.obj `if test -f 'gst/gstpad.c'; then $(CYGPATH_W) 'gst/gstpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpad.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpad.obj `if test -f 'gst/gstpad.c'; then $(CYGPATH_W) 'gst/gstpad.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpad.c'; fi`
 
 gstparamspecs.o: gst/gstparamspecs.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstparamspecs.o -MD -MP -MF $(DEPDIR)/gstparamspecs.Tpo -c -o gstparamspecs.o `test -f 'gst/gstparamspecs.c' || echo '$(srcdir)/'`gst/gstparamspecs.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstparamspecs.Tpo $(DEPDIR)/gstparamspecs.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstparamspecs.c' object='gstparamspecs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstparamspecs.c' object='gstparamspecs.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstparamspecs.o `test -f 'gst/gstparamspecs.c' || echo '$(srcdir)/'`gst/gstparamspecs.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstparamspecs.o `test -f 'gst/gstparamspecs.c' || echo '$(srcdir)/'`gst/gstparamspecs.c
 
 gstparamspecs.obj: gst/gstparamspecs.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstparamspecs.obj -MD -MP -MF $(DEPDIR)/gstparamspecs.Tpo -c -o gstparamspecs.obj `if test -f 'gst/gstparamspecs.c'; then $(CYGPATH_W) 'gst/gstparamspecs.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstparamspecs.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstparamspecs.Tpo $(DEPDIR)/gstparamspecs.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstparamspecs.c' object='gstparamspecs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstparamspecs.c' object='gstparamspecs.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstparamspecs.obj `if test -f 'gst/gstparamspecs.c'; then $(CYGPATH_W) 'gst/gstparamspecs.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstparamspecs.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstparamspecs.obj `if test -f 'gst/gstparamspecs.c'; then $(CYGPATH_W) 'gst/gstparamspecs.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstparamspecs.c'; fi`
 
 gstpipeline.o: gst/gstpipeline.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpipeline.o -MD -MP -MF $(DEPDIR)/gstpipeline.Tpo -c -o gstpipeline.o `test -f 'gst/gstpipeline.c' || echo '$(srcdir)/'`gst/gstpipeline.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpipeline.Tpo $(DEPDIR)/gstpipeline.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpipeline.c' object='gstpipeline.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpipeline.c' object='gstpipeline.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpipeline.o `test -f 'gst/gstpipeline.c' || echo '$(srcdir)/'`gst/gstpipeline.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpipeline.o `test -f 'gst/gstpipeline.c' || echo '$(srcdir)/'`gst/gstpipeline.c
 
 gstpipeline.obj: gst/gstpipeline.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpipeline.obj -MD -MP -MF $(DEPDIR)/gstpipeline.Tpo -c -o gstpipeline.obj `if test -f 'gst/gstpipeline.c'; then $(CYGPATH_W) 'gst/gstpipeline.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpipeline.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpipeline.Tpo $(DEPDIR)/gstpipeline.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpipeline.c' object='gstpipeline.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpipeline.c' object='gstpipeline.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpipeline.obj `if test -f 'gst/gstpipeline.c'; then $(CYGPATH_W) 'gst/gstpipeline.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpipeline.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpipeline.obj `if test -f 'gst/gstpipeline.c'; then $(CYGPATH_W) 'gst/gstpipeline.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpipeline.c'; fi`
 
 gstplugin.o: gst/gstplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstplugin.o -MD -MP -MF $(DEPDIR)/gstplugin.Tpo -c -o gstplugin.o `test -f 'gst/gstplugin.c' || echo '$(srcdir)/'`gst/gstplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstplugin.Tpo $(DEPDIR)/gstplugin.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstplugin.c' object='gstplugin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstplugin.c' object='gstplugin.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstplugin.o `test -f 'gst/gstplugin.c' || echo '$(srcdir)/'`gst/gstplugin.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstplugin.o `test -f 'gst/gstplugin.c' || echo '$(srcdir)/'`gst/gstplugin.c
 
 gstplugin.obj: gst/gstplugin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstplugin.obj -MD -MP -MF $(DEPDIR)/gstplugin.Tpo -c -o gstplugin.obj `if test -f 'gst/gstplugin.c'; then $(CYGPATH_W) 'gst/gstplugin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstplugin.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstplugin.Tpo $(DEPDIR)/gstplugin.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstplugin.c' object='gstplugin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstplugin.c' object='gstplugin.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstplugin.obj `if test -f 'gst/gstplugin.c'; then $(CYGPATH_W) 'gst/gstplugin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstplugin.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstplugin.obj `if test -f 'gst/gstplugin.c'; then $(CYGPATH_W) 'gst/gstplugin.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstplugin.c'; fi`
 
 gstpoll.o: gst/gstpoll.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpoll.o -MD -MP -MF $(DEPDIR)/gstpoll.Tpo -c -o gstpoll.o `test -f 'gst/gstpoll.c' || echo '$(srcdir)/'`gst/gstpoll.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpoll.Tpo $(DEPDIR)/gstpoll.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpoll.c' object='gstpoll.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpoll.c' object='gstpoll.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpoll.o `test -f 'gst/gstpoll.c' || echo '$(srcdir)/'`gst/gstpoll.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpoll.o `test -f 'gst/gstpoll.c' || echo '$(srcdir)/'`gst/gstpoll.c
 
 gstpoll.obj: gst/gstpoll.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpoll.obj -MD -MP -MF $(DEPDIR)/gstpoll.Tpo -c -o gstpoll.obj `if test -f 'gst/gstpoll.c'; then $(CYGPATH_W) 'gst/gstpoll.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpoll.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpoll.Tpo $(DEPDIR)/gstpoll.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpoll.c' object='gstpoll.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpoll.c' object='gstpoll.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpoll.obj `if test -f 'gst/gstpoll.c'; then $(CYGPATH_W) 'gst/gstpoll.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpoll.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpoll.obj `if test -f 'gst/gstpoll.c'; then $(CYGPATH_W) 'gst/gstpoll.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpoll.c'; fi`
 
 gstpreset.o: gst/gstpreset.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpreset.o -MD -MP -MF $(DEPDIR)/gstpreset.Tpo -c -o gstpreset.o `test -f 'gst/gstpreset.c' || echo '$(srcdir)/'`gst/gstpreset.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpreset.Tpo $(DEPDIR)/gstpreset.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpreset.c' object='gstpreset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpreset.c' object='gstpreset.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpreset.o `test -f 'gst/gstpreset.c' || echo '$(srcdir)/'`gst/gstpreset.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpreset.o `test -f 'gst/gstpreset.c' || echo '$(srcdir)/'`gst/gstpreset.c
 
 gstpreset.obj: gst/gstpreset.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstpreset.obj -MD -MP -MF $(DEPDIR)/gstpreset.Tpo -c -o gstpreset.obj `if test -f 'gst/gstpreset.c'; then $(CYGPATH_W) 'gst/gstpreset.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpreset.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstpreset.Tpo $(DEPDIR)/gstpreset.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstpreset.c' object='gstpreset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstpreset.c' object='gstpreset.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpreset.obj `if test -f 'gst/gstpreset.c'; then $(CYGPATH_W) 'gst/gstpreset.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpreset.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstpreset.obj `if test -f 'gst/gstpreset.c'; then $(CYGPATH_W) 'gst/gstpreset.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstpreset.c'; fi`
 
 gstquery.o: gst/gstquery.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstquery.o -MD -MP -MF $(DEPDIR)/gstquery.Tpo -c -o gstquery.o `test -f 'gst/gstquery.c' || echo '$(srcdir)/'`gst/gstquery.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstquery.Tpo $(DEPDIR)/gstquery.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstquery.c' object='gstquery.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstquery.c' object='gstquery.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstquery.o `test -f 'gst/gstquery.c' || echo '$(srcdir)/'`gst/gstquery.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstquery.o `test -f 'gst/gstquery.c' || echo '$(srcdir)/'`gst/gstquery.c
 
 gstquery.obj: gst/gstquery.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstquery.obj -MD -MP -MF $(DEPDIR)/gstquery.Tpo -c -o gstquery.obj `if test -f 'gst/gstquery.c'; then $(CYGPATH_W) 'gst/gstquery.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstquery.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstquery.Tpo $(DEPDIR)/gstquery.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstquery.c' object='gstquery.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstquery.c' object='gstquery.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstquery.obj `if test -f 'gst/gstquery.c'; then $(CYGPATH_W) 'gst/gstquery.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstquery.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstquery.obj `if test -f 'gst/gstquery.c'; then $(CYGPATH_W) 'gst/gstquery.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstquery.c'; fi`
 
 gstregistry.o: gst/gstregistry.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstregistry.o -MD -MP -MF $(DEPDIR)/gstregistry.Tpo -c -o gstregistry.o `test -f 'gst/gstregistry.c' || echo '$(srcdir)/'`gst/gstregistry.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstregistry.Tpo $(DEPDIR)/gstregistry.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstregistry.c' object='gstregistry.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstregistry.c' object='gstregistry.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstregistry.o `test -f 'gst/gstregistry.c' || echo '$(srcdir)/'`gst/gstregistry.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstregistry.o `test -f 'gst/gstregistry.c' || echo '$(srcdir)/'`gst/gstregistry.c
 
 gstregistry.obj: gst/gstregistry.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstregistry.obj -MD -MP -MF $(DEPDIR)/gstregistry.Tpo -c -o gstregistry.obj `if test -f 'gst/gstregistry.c'; then $(CYGPATH_W) 'gst/gstregistry.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstregistry.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstregistry.Tpo $(DEPDIR)/gstregistry.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstregistry.c' object='gstregistry.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstregistry.c' object='gstregistry.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstregistry.obj `if test -f 'gst/gstregistry.c'; then $(CYGPATH_W) 'gst/gstregistry.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstregistry.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstregistry.obj `if test -f 'gst/gstregistry.c'; then $(CYGPATH_W) 'gst/gstregistry.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstregistry.c'; fi`
 
 gstsegment.o: gst/gstsegment.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstsegment.o -MD -MP -MF $(DEPDIR)/gstsegment.Tpo -c -o gstsegment.o `test -f 'gst/gstsegment.c' || echo '$(srcdir)/'`gst/gstsegment.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstsegment.Tpo $(DEPDIR)/gstsegment.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstsegment.c' object='gstsegment.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstsegment.c' object='gstsegment.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsegment.o `test -f 'gst/gstsegment.c' || echo '$(srcdir)/'`gst/gstsegment.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsegment.o `test -f 'gst/gstsegment.c' || echo '$(srcdir)/'`gst/gstsegment.c
 
 gstsegment.obj: gst/gstsegment.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstsegment.obj -MD -MP -MF $(DEPDIR)/gstsegment.Tpo -c -o gstsegment.obj `if test -f 'gst/gstsegment.c'; then $(CYGPATH_W) 'gst/gstsegment.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsegment.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstsegment.Tpo $(DEPDIR)/gstsegment.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstsegment.c' object='gstsegment.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstsegment.c' object='gstsegment.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsegment.obj `if test -f 'gst/gstsegment.c'; then $(CYGPATH_W) 'gst/gstsegment.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsegment.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsegment.obj `if test -f 'gst/gstsegment.c'; then $(CYGPATH_W) 'gst/gstsegment.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsegment.c'; fi`
 
 gststructure.o: gst/gststructure.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gststructure.o -MD -MP -MF $(DEPDIR)/gststructure.Tpo -c -o gststructure.o `test -f 'gst/gststructure.c' || echo '$(srcdir)/'`gst/gststructure.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gststructure.Tpo $(DEPDIR)/gststructure.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gststructure.c' object='gststructure.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gststructure.c' object='gststructure.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gststructure.o `test -f 'gst/gststructure.c' || echo '$(srcdir)/'`gst/gststructure.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gststructure.o `test -f 'gst/gststructure.c' || echo '$(srcdir)/'`gst/gststructure.c
 
 gststructure.obj: gst/gststructure.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gststructure.obj -MD -MP -MF $(DEPDIR)/gststructure.Tpo -c -o gststructure.obj `if test -f 'gst/gststructure.c'; then $(CYGPATH_W) 'gst/gststructure.c'; else $(CYGPATH_W) '$(srcdir)/gst/gststructure.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gststructure.Tpo $(DEPDIR)/gststructure.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gststructure.c' object='gststructure.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gststructure.c' object='gststructure.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gststructure.obj `if test -f 'gst/gststructure.c'; then $(CYGPATH_W) 'gst/gststructure.c'; else $(CYGPATH_W) '$(srcdir)/gst/gststructure.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gststructure.obj `if test -f 'gst/gststructure.c'; then $(CYGPATH_W) 'gst/gststructure.c'; else $(CYGPATH_W) '$(srcdir)/gst/gststructure.c'; fi`
 
 gstsystemclock.o: gst/gstsystemclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstsystemclock.o -MD -MP -MF $(DEPDIR)/gstsystemclock.Tpo -c -o gstsystemclock.o `test -f 'gst/gstsystemclock.c' || echo '$(srcdir)/'`gst/gstsystemclock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstsystemclock.Tpo $(DEPDIR)/gstsystemclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstsystemclock.c' object='gstsystemclock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstsystemclock.c' object='gstsystemclock.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsystemclock.o `test -f 'gst/gstsystemclock.c' || echo '$(srcdir)/'`gst/gstsystemclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsystemclock.o `test -f 'gst/gstsystemclock.c' || echo '$(srcdir)/'`gst/gstsystemclock.c
 
 gstsystemclock.obj: gst/gstsystemclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstsystemclock.obj -MD -MP -MF $(DEPDIR)/gstsystemclock.Tpo -c -o gstsystemclock.obj `if test -f 'gst/gstsystemclock.c'; then $(CYGPATH_W) 'gst/gstsystemclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsystemclock.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstsystemclock.Tpo $(DEPDIR)/gstsystemclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstsystemclock.c' object='gstsystemclock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstsystemclock.c' object='gstsystemclock.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsystemclock.obj `if test -f 'gst/gstsystemclock.c'; then $(CYGPATH_W) 'gst/gstsystemclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsystemclock.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstsystemclock.obj `if test -f 'gst/gstsystemclock.c'; then $(CYGPATH_W) 'gst/gstsystemclock.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstsystemclock.c'; fi`
 
 gsttag.o: gst/gsttag.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttag.o -MD -MP -MF $(DEPDIR)/gsttag.Tpo -c -o gsttag.o `test -f 'gst/gsttag.c' || echo '$(srcdir)/'`gst/gsttag.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttag.Tpo $(DEPDIR)/gsttag.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttag.c' object='gsttag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttag.c' object='gsttag.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttag.o `test -f 'gst/gsttag.c' || echo '$(srcdir)/'`gst/gsttag.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttag.o `test -f 'gst/gsttag.c' || echo '$(srcdir)/'`gst/gsttag.c
 
 gsttag.obj: gst/gsttag.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttag.obj -MD -MP -MF $(DEPDIR)/gsttag.Tpo -c -o gsttag.obj `if test -f 'gst/gsttag.c'; then $(CYGPATH_W) 'gst/gsttag.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttag.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttag.Tpo $(DEPDIR)/gsttag.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttag.c' object='gsttag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttag.c' object='gsttag.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttag.obj `if test -f 'gst/gsttag.c'; then $(CYGPATH_W) 'gst/gsttag.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttag.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttag.obj `if test -f 'gst/gsttag.c'; then $(CYGPATH_W) 'gst/gsttag.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttag.c'; fi`
 
 gsttagsetter.o: gst/gsttagsetter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttagsetter.o -MD -MP -MF $(DEPDIR)/gsttagsetter.Tpo -c -o gsttagsetter.o `test -f 'gst/gsttagsetter.c' || echo '$(srcdir)/'`gst/gsttagsetter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttagsetter.Tpo $(DEPDIR)/gsttagsetter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttagsetter.c' object='gsttagsetter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttagsetter.c' object='gsttagsetter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttagsetter.o `test -f 'gst/gsttagsetter.c' || echo '$(srcdir)/'`gst/gsttagsetter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttagsetter.o `test -f 'gst/gsttagsetter.c' || echo '$(srcdir)/'`gst/gsttagsetter.c
 
 gsttagsetter.obj: gst/gsttagsetter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttagsetter.obj -MD -MP -MF $(DEPDIR)/gsttagsetter.Tpo -c -o gsttagsetter.obj `if test -f 'gst/gsttagsetter.c'; then $(CYGPATH_W) 'gst/gsttagsetter.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttagsetter.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttagsetter.Tpo $(DEPDIR)/gsttagsetter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttagsetter.c' object='gsttagsetter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttagsetter.c' object='gsttagsetter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttagsetter.obj `if test -f 'gst/gsttagsetter.c'; then $(CYGPATH_W) 'gst/gsttagsetter.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttagsetter.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttagsetter.obj `if test -f 'gst/gsttagsetter.c'; then $(CYGPATH_W) 'gst/gsttagsetter.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttagsetter.c'; fi`
 
 gsttask.o: gst/gsttask.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttask.o -MD -MP -MF $(DEPDIR)/gsttask.Tpo -c -o gsttask.o `test -f 'gst/gsttask.c' || echo '$(srcdir)/'`gst/gsttask.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttask.Tpo $(DEPDIR)/gsttask.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttask.c' object='gsttask.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttask.c' object='gsttask.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttask.o `test -f 'gst/gsttask.c' || echo '$(srcdir)/'`gst/gsttask.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttask.o `test -f 'gst/gsttask.c' || echo '$(srcdir)/'`gst/gsttask.c
 
 gsttask.obj: gst/gsttask.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttask.obj -MD -MP -MF $(DEPDIR)/gsttask.Tpo -c -o gsttask.obj `if test -f 'gst/gsttask.c'; then $(CYGPATH_W) 'gst/gsttask.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttask.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttask.Tpo $(DEPDIR)/gsttask.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsttask.c' object='gsttask.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttask.c' object='gsttask.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttask.obj `if test -f 'gst/gsttask.c'; then $(CYGPATH_W) 'gst/gsttask.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttask.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttask.obj `if test -f 'gst/gsttask.c'; then $(CYGPATH_W) 'gst/gsttask.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttask.c'; fi`
+
+gsttoc.o: gst/gsttoc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttoc.o -MD -MP -MF $(DEPDIR)/gsttoc.Tpo -c -o gsttoc.o `test -f 'gst/gsttoc.c' || echo '$(srcdir)/'`gst/gsttoc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttoc.Tpo $(DEPDIR)/gsttoc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttoc.c' object='gsttoc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttoc.o `test -f 'gst/gsttoc.c' || echo '$(srcdir)/'`gst/gsttoc.c
+
+gsttoc.obj: gst/gsttoc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttoc.obj -MD -MP -MF $(DEPDIR)/gsttoc.Tpo -c -o gsttoc.obj `if test -f 'gst/gsttoc.c'; then $(CYGPATH_W) 'gst/gsttoc.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttoc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttoc.Tpo $(DEPDIR)/gsttoc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttoc.c' object='gsttoc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttoc.obj `if test -f 'gst/gsttoc.c'; then $(CYGPATH_W) 'gst/gsttoc.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttoc.c'; fi`
+
+gsttocsetter.o: gst/gsttocsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttocsetter.o -MD -MP -MF $(DEPDIR)/gsttocsetter.Tpo -c -o gsttocsetter.o `test -f 'gst/gsttocsetter.c' || echo '$(srcdir)/'`gst/gsttocsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttocsetter.Tpo $(DEPDIR)/gsttocsetter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttocsetter.c' object='gsttocsetter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttocsetter.o `test -f 'gst/gsttocsetter.c' || echo '$(srcdir)/'`gst/gsttocsetter.c
+
+gsttocsetter.obj: gst/gsttocsetter.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsttocsetter.obj -MD -MP -MF $(DEPDIR)/gsttocsetter.Tpo -c -o gsttocsetter.obj `if test -f 'gst/gsttocsetter.c'; then $(CYGPATH_W) 'gst/gsttocsetter.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttocsetter.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsttocsetter.Tpo $(DEPDIR)/gsttocsetter.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsttocsetter.c' object='gsttocsetter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsttocsetter.obj `if test -f 'gst/gsttocsetter.c'; then $(CYGPATH_W) 'gst/gsttocsetter.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsttocsetter.c'; fi`
 
 gsturi.o: gst/gsturi.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsturi.o -MD -MP -MF $(DEPDIR)/gsturi.Tpo -c -o gsturi.o `test -f 'gst/gsturi.c' || echo '$(srcdir)/'`gst/gsturi.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsturi.Tpo $(DEPDIR)/gsturi.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsturi.c' object='gsturi.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsturi.c' object='gsturi.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsturi.o `test -f 'gst/gsturi.c' || echo '$(srcdir)/'`gst/gsturi.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsturi.o `test -f 'gst/gsturi.c' || echo '$(srcdir)/'`gst/gsturi.c
 
 gsturi.obj: gst/gsturi.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gsturi.obj -MD -MP -MF $(DEPDIR)/gsturi.Tpo -c -o gsturi.obj `if test -f 'gst/gsturi.c'; then $(CYGPATH_W) 'gst/gsturi.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsturi.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gsturi.Tpo $(DEPDIR)/gsturi.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gsturi.c' object='gsturi.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gsturi.c' object='gsturi.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsturi.obj `if test -f 'gst/gsturi.c'; then $(CYGPATH_W) 'gst/gsturi.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsturi.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gsturi.obj `if test -f 'gst/gsturi.c'; then $(CYGPATH_W) 'gst/gsturi.c'; else $(CYGPATH_W) '$(srcdir)/gst/gsturi.c'; fi`
 
 gstutils.o: gst/gstutils.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstutils.o -MD -MP -MF $(DEPDIR)/gstutils.Tpo -c -o gstutils.o `test -f 'gst/gstutils.c' || echo '$(srcdir)/'`gst/gstutils.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstutils.Tpo $(DEPDIR)/gstutils.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstutils.c' object='gstutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstutils.c' object='gstutils.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstutils.o `test -f 'gst/gstutils.c' || echo '$(srcdir)/'`gst/gstutils.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstutils.o `test -f 'gst/gstutils.c' || echo '$(srcdir)/'`gst/gstutils.c
 
 gstutils.obj: gst/gstutils.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstutils.obj -MD -MP -MF $(DEPDIR)/gstutils.Tpo -c -o gstutils.obj `if test -f 'gst/gstutils.c'; then $(CYGPATH_W) 'gst/gstutils.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstutils.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstutils.Tpo $(DEPDIR)/gstutils.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstutils.c' object='gstutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstutils.c' object='gstutils.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstutils.obj `if test -f 'gst/gstutils.c'; then $(CYGPATH_W) 'gst/gstutils.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstutils.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstutils.obj `if test -f 'gst/gstutils.c'; then $(CYGPATH_W) 'gst/gstutils.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstutils.c'; fi`
 
 gstvalue.o: gst/gstvalue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstvalue.o -MD -MP -MF $(DEPDIR)/gstvalue.Tpo -c -o gstvalue.o `test -f 'gst/gstvalue.c' || echo '$(srcdir)/'`gst/gstvalue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstvalue.Tpo $(DEPDIR)/gstvalue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstvalue.c' object='gstvalue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstvalue.c' object='gstvalue.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstvalue.o `test -f 'gst/gstvalue.c' || echo '$(srcdir)/'`gst/gstvalue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstvalue.o `test -f 'gst/gstvalue.c' || echo '$(srcdir)/'`gst/gstvalue.c
 
 gstvalue.obj: gst/gstvalue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstvalue.obj -MD -MP -MF $(DEPDIR)/gstvalue.Tpo -c -o gstvalue.obj `if test -f 'gst/gstvalue.c'; then $(CYGPATH_W) 'gst/gstvalue.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstvalue.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstvalue.Tpo $(DEPDIR)/gstvalue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst/gstvalue.c' object='gstvalue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst/gstvalue.c' object='gstvalue.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstvalue.obj `if test -f 'gst/gstvalue.c'; then $(CYGPATH_W) 'gst/gstvalue.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstvalue.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstvalue.obj `if test -f 'gst/gstvalue.c'; then $(CYGPATH_W) 'gst/gstvalue.c'; else $(CYGPATH_W) '$(srcdir)/gst/gstvalue.c'; fi`
 
 adapter.o: libs/adapter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adapter.o -MD -MP -MF $(DEPDIR)/adapter.Tpo -c -o adapter.o `test -f 'libs/adapter.c' || echo '$(srcdir)/'`libs/adapter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/adapter.Tpo $(DEPDIR)/adapter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/adapter.c' object='adapter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/adapter.c' object='adapter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adapter.o `test -f 'libs/adapter.c' || echo '$(srcdir)/'`libs/adapter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adapter.o `test -f 'libs/adapter.c' || echo '$(srcdir)/'`libs/adapter.c
 
 adapter.obj: libs/adapter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adapter.obj -MD -MP -MF $(DEPDIR)/adapter.Tpo -c -o adapter.obj `if test -f 'libs/adapter.c'; then $(CYGPATH_W) 'libs/adapter.c'; else $(CYGPATH_W) '$(srcdir)/libs/adapter.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/adapter.Tpo $(DEPDIR)/adapter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/adapter.c' object='adapter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/adapter.c' object='adapter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adapter.obj `if test -f 'libs/adapter.c'; then $(CYGPATH_W) 'libs/adapter.c'; else $(CYGPATH_W) '$(srcdir)/libs/adapter.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adapter.obj `if test -f 'libs/adapter.c'; then $(CYGPATH_W) 'libs/adapter.c'; else $(CYGPATH_W) '$(srcdir)/libs/adapter.c'; fi`
 
 basesink.o: libs/basesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basesink.o -MD -MP -MF $(DEPDIR)/basesink.Tpo -c -o basesink.o `test -f 'libs/basesink.c' || echo '$(srcdir)/'`libs/basesink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basesink.Tpo $(DEPDIR)/basesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/basesink.c' object='basesink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/basesink.c' object='basesink.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesink.o `test -f 'libs/basesink.c' || echo '$(srcdir)/'`libs/basesink.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesink.o `test -f 'libs/basesink.c' || echo '$(srcdir)/'`libs/basesink.c
 
 basesink.obj: libs/basesink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basesink.obj -MD -MP -MF $(DEPDIR)/basesink.Tpo -c -o basesink.obj `if test -f 'libs/basesink.c'; then $(CYGPATH_W) 'libs/basesink.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesink.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basesink.Tpo $(DEPDIR)/basesink.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/basesink.c' object='basesink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/basesink.c' object='basesink.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesink.obj `if test -f 'libs/basesink.c'; then $(CYGPATH_W) 'libs/basesink.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesink.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesink.obj `if test -f 'libs/basesink.c'; then $(CYGPATH_W) 'libs/basesink.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesink.c'; fi`
 
 basesrc.o: libs/basesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basesrc.o -MD -MP -MF $(DEPDIR)/basesrc.Tpo -c -o basesrc.o `test -f 'libs/basesrc.c' || echo '$(srcdir)/'`libs/basesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basesrc.Tpo $(DEPDIR)/basesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/basesrc.c' object='basesrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/basesrc.c' object='basesrc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesrc.o `test -f 'libs/basesrc.c' || echo '$(srcdir)/'`libs/basesrc.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesrc.o `test -f 'libs/basesrc.c' || echo '$(srcdir)/'`libs/basesrc.c
 
 basesrc.obj: libs/basesrc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basesrc.obj -MD -MP -MF $(DEPDIR)/basesrc.Tpo -c -o basesrc.obj `if test -f 'libs/basesrc.c'; then $(CYGPATH_W) 'libs/basesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesrc.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/basesrc.Tpo $(DEPDIR)/basesrc.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/basesrc.c' object='basesrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/basesrc.c' object='basesrc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesrc.obj `if test -f 'libs/basesrc.c'; then $(CYGPATH_W) 'libs/basesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesrc.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basesrc.obj `if test -f 'libs/basesrc.c'; then $(CYGPATH_W) 'libs/basesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/basesrc.c'; fi`
 
 bitreader.o: libs/bitreader.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bitreader.o -MD -MP -MF $(DEPDIR)/bitreader.Tpo -c -o bitreader.o `test -f 'libs/bitreader.c' || echo '$(srcdir)/'`libs/bitreader.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bitreader.Tpo $(DEPDIR)/bitreader.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bitreader.c' object='bitreader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bitreader.c' object='bitreader.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitreader.o `test -f 'libs/bitreader.c' || echo '$(srcdir)/'`libs/bitreader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitreader.o `test -f 'libs/bitreader.c' || echo '$(srcdir)/'`libs/bitreader.c
 
 bitreader.obj: libs/bitreader.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bitreader.obj -MD -MP -MF $(DEPDIR)/bitreader.Tpo -c -o bitreader.obj `if test -f 'libs/bitreader.c'; then $(CYGPATH_W) 'libs/bitreader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bitreader.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bitreader.Tpo $(DEPDIR)/bitreader.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bitreader.c' object='bitreader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bitreader.c' object='bitreader.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitreader.obj `if test -f 'libs/bitreader.c'; then $(CYGPATH_W) 'libs/bitreader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bitreader.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitreader.obj `if test -f 'libs/bitreader.c'; then $(CYGPATH_W) 'libs/bitreader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bitreader.c'; fi`
 
 bytereader.o: libs/bytereader.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bytereader.o -MD -MP -MF $(DEPDIR)/bytereader.Tpo -c -o bytereader.o `test -f 'libs/bytereader.c' || echo '$(srcdir)/'`libs/bytereader.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bytereader.Tpo $(DEPDIR)/bytereader.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bytereader.c' object='bytereader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bytereader.c' object='bytereader.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytereader.o `test -f 'libs/bytereader.c' || echo '$(srcdir)/'`libs/bytereader.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytereader.o `test -f 'libs/bytereader.c' || echo '$(srcdir)/'`libs/bytereader.c
 
 bytereader.obj: libs/bytereader.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bytereader.obj -MD -MP -MF $(DEPDIR)/bytereader.Tpo -c -o bytereader.obj `if test -f 'libs/bytereader.c'; then $(CYGPATH_W) 'libs/bytereader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytereader.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bytereader.Tpo $(DEPDIR)/bytereader.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bytereader.c' object='bytereader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bytereader.c' object='bytereader.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytereader.obj `if test -f 'libs/bytereader.c'; then $(CYGPATH_W) 'libs/bytereader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytereader.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytereader.obj `if test -f 'libs/bytereader.c'; then $(CYGPATH_W) 'libs/bytereader.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytereader.c'; fi`
 
 bytewriter.o: libs/bytewriter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bytewriter.o -MD -MP -MF $(DEPDIR)/bytewriter.Tpo -c -o bytewriter.o `test -f 'libs/bytewriter.c' || echo '$(srcdir)/'`libs/bytewriter.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bytewriter.Tpo $(DEPDIR)/bytewriter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bytewriter.c' object='bytewriter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bytewriter.c' object='bytewriter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytewriter.o `test -f 'libs/bytewriter.c' || echo '$(srcdir)/'`libs/bytewriter.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytewriter.o `test -f 'libs/bytewriter.c' || echo '$(srcdir)/'`libs/bytewriter.c
 
 bytewriter.obj: libs/bytewriter.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bytewriter.obj -MD -MP -MF $(DEPDIR)/bytewriter.Tpo -c -o bytewriter.obj `if test -f 'libs/bytewriter.c'; then $(CYGPATH_W) 'libs/bytewriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytewriter.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/bytewriter.Tpo $(DEPDIR)/bytewriter.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/bytewriter.c' object='bytewriter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/bytewriter.c' object='bytewriter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytewriter.obj `if test -f 'libs/bytewriter.c'; then $(CYGPATH_W) 'libs/bytewriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytewriter.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bytewriter.obj `if test -f 'libs/bytewriter.c'; then $(CYGPATH_W) 'libs/bytewriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/bytewriter.c'; fi`
 
-collectpads.o: libs/collectpads.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT collectpads.o -MD -MP -MF $(DEPDIR)/collectpads.Tpo -c -o collectpads.o `test -f 'libs/collectpads.c' || echo '$(srcdir)/'`libs/collectpads.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/collectpads.Tpo $(DEPDIR)/collectpads.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/collectpads.c' object='collectpads.o' libtool=no @AMDEPBACKSLASH@
+collectpads2.o: libs/collectpads2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT collectpads2.o -MD -MP -MF $(DEPDIR)/collectpads2.Tpo -c -o collectpads2.o `test -f 'libs/collectpads2.c' || echo '$(srcdir)/'`libs/collectpads2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/collectpads2.Tpo $(DEPDIR)/collectpads2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/collectpads2.c' object='collectpads2.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o collectpads.o `test -f 'libs/collectpads.c' || echo '$(srcdir)/'`libs/collectpads.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o collectpads2.o `test -f 'libs/collectpads2.c' || echo '$(srcdir)/'`libs/collectpads2.c
 
-collectpads.obj: libs/collectpads.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT collectpads.obj -MD -MP -MF $(DEPDIR)/collectpads.Tpo -c -o collectpads.obj `if test -f 'libs/collectpads.c'; then $(CYGPATH_W) 'libs/collectpads.c'; else $(CYGPATH_W) '$(srcdir)/libs/collectpads.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/collectpads.Tpo $(DEPDIR)/collectpads.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/collectpads.c' object='collectpads.obj' libtool=no @AMDEPBACKSLASH@
+collectpads2.obj: libs/collectpads2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT collectpads2.obj -MD -MP -MF $(DEPDIR)/collectpads2.Tpo -c -o collectpads2.obj `if test -f 'libs/collectpads2.c'; then $(CYGPATH_W) 'libs/collectpads2.c'; else $(CYGPATH_W) '$(srcdir)/libs/collectpads2.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/collectpads2.Tpo $(DEPDIR)/collectpads2.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/collectpads2.c' object='collectpads2.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o collectpads.obj `if test -f 'libs/collectpads.c'; then $(CYGPATH_W) 'libs/collectpads.c'; else $(CYGPATH_W) '$(srcdir)/libs/collectpads.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o collectpads2.obj `if test -f 'libs/collectpads2.c'; then $(CYGPATH_W) 'libs/collectpads2.c'; else $(CYGPATH_W) '$(srcdir)/libs/collectpads2.c'; fi`
 
 controller.o: libs/controller.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT controller.o -MD -MP -MF $(DEPDIR)/controller.Tpo -c -o controller.o `test -f 'libs/controller.c' || echo '$(srcdir)/'`libs/controller.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/controller.Tpo $(DEPDIR)/controller.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/controller.c' object='controller.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/controller.c' object='controller.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o controller.o `test -f 'libs/controller.c' || echo '$(srcdir)/'`libs/controller.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o controller.o `test -f 'libs/controller.c' || echo '$(srcdir)/'`libs/controller.c
 
 controller.obj: libs/controller.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT controller.obj -MD -MP -MF $(DEPDIR)/controller.Tpo -c -o controller.obj `if test -f 'libs/controller.c'; then $(CYGPATH_W) 'libs/controller.c'; else $(CYGPATH_W) '$(srcdir)/libs/controller.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/controller.Tpo $(DEPDIR)/controller.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/controller.c' object='controller.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/controller.c' object='controller.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o controller.obj `if test -f 'libs/controller.c'; then $(CYGPATH_W) 'libs/controller.c'; else $(CYGPATH_W) '$(srcdir)/libs/controller.c'; fi`
-
-gdp.o: libs/gdp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdp.o -MD -MP -MF $(DEPDIR)/gdp.Tpo -c -o gdp.o `test -f 'libs/gdp.c' || echo '$(srcdir)/'`libs/gdp.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gdp.Tpo $(DEPDIR)/gdp.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gdp.c' object='gdp.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdp.o `test -f 'libs/gdp.c' || echo '$(srcdir)/'`libs/gdp.c
-
-gdp.obj: libs/gdp.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdp.obj -MD -MP -MF $(DEPDIR)/gdp.Tpo -c -o gdp.obj `if test -f 'libs/gdp.c'; then $(CYGPATH_W) 'libs/gdp.c'; else $(CYGPATH_W) '$(srcdir)/libs/gdp.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gdp.Tpo $(DEPDIR)/gdp.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gdp.c' object='gdp.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdp.obj `if test -f 'libs/gdp.c'; then $(CYGPATH_W) 'libs/gdp.c'; else $(CYGPATH_W) '$(srcdir)/libs/gdp.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o controller.obj `if test -f 'libs/controller.c'; then $(CYGPATH_W) 'libs/controller.c'; else $(CYGPATH_W) '$(srcdir)/libs/controller.c'; fi`
 
 gstnetclientclock.o: libs/gstnetclientclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstnetclientclock.o -MD -MP -MF $(DEPDIR)/gstnetclientclock.Tpo -c -o gstnetclientclock.o `test -f 'libs/gstnetclientclock.c' || echo '$(srcdir)/'`libs/gstnetclientclock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstnetclientclock.Tpo $(DEPDIR)/gstnetclientclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gstnetclientclock.c' object='gstnetclientclock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gstnetclientclock.c' object='gstnetclientclock.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnetclientclock.o `test -f 'libs/gstnetclientclock.c' || echo '$(srcdir)/'`libs/gstnetclientclock.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnetclientclock.o `test -f 'libs/gstnetclientclock.c' || echo '$(srcdir)/'`libs/gstnetclientclock.c
 
 gstnetclientclock.obj: libs/gstnetclientclock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstnetclientclock.obj -MD -MP -MF $(DEPDIR)/gstnetclientclock.Tpo -c -o gstnetclientclock.obj `if test -f 'libs/gstnetclientclock.c'; then $(CYGPATH_W) 'libs/gstnetclientclock.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnetclientclock.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstnetclientclock.Tpo $(DEPDIR)/gstnetclientclock.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gstnetclientclock.c' object='gstnetclientclock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gstnetclientclock.c' object='gstnetclientclock.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnetclientclock.obj `if test -f 'libs/gstnetclientclock.c'; then $(CYGPATH_W) 'libs/gstnetclientclock.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnetclientclock.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnetclientclock.obj `if test -f 'libs/gstnetclientclock.c'; then $(CYGPATH_W) 'libs/gstnetclientclock.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnetclientclock.c'; fi`
 
 gstnettimeprovider.o: libs/gstnettimeprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstnettimeprovider.o -MD -MP -MF $(DEPDIR)/gstnettimeprovider.Tpo -c -o gstnettimeprovider.o `test -f 'libs/gstnettimeprovider.c' || echo '$(srcdir)/'`libs/gstnettimeprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstnettimeprovider.Tpo $(DEPDIR)/gstnettimeprovider.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gstnettimeprovider.c' object='gstnettimeprovider.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gstnettimeprovider.c' object='gstnettimeprovider.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnettimeprovider.o `test -f 'libs/gstnettimeprovider.c' || echo '$(srcdir)/'`libs/gstnettimeprovider.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnettimeprovider.o `test -f 'libs/gstnettimeprovider.c' || echo '$(srcdir)/'`libs/gstnettimeprovider.c
 
 gstnettimeprovider.obj: libs/gstnettimeprovider.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gstnettimeprovider.obj -MD -MP -MF $(DEPDIR)/gstnettimeprovider.Tpo -c -o gstnettimeprovider.obj `if test -f 'libs/gstnettimeprovider.c'; then $(CYGPATH_W) 'libs/gstnettimeprovider.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnettimeprovider.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstnettimeprovider.Tpo $(DEPDIR)/gstnettimeprovider.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/gstnettimeprovider.c' object='gstnettimeprovider.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/gstnettimeprovider.c' object='gstnettimeprovider.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnettimeprovider.obj `if test -f 'libs/gstnettimeprovider.c'; then $(CYGPATH_W) 'libs/gstnettimeprovider.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnettimeprovider.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnettimeprovider.obj `if test -f 'libs/gstnettimeprovider.c'; then $(CYGPATH_W) 'libs/gstnettimeprovider.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnettimeprovider.c'; fi`
 
 transform1.o: libs/transform1.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT transform1.o -MD -MP -MF $(DEPDIR)/transform1.Tpo -c -o transform1.o `test -f 'libs/transform1.c' || echo '$(srcdir)/'`libs/transform1.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/transform1.Tpo $(DEPDIR)/transform1.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/transform1.c' object='transform1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/transform1.c' object='transform1.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o transform1.o `test -f 'libs/transform1.c' || echo '$(srcdir)/'`libs/transform1.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o transform1.o `test -f 'libs/transform1.c' || echo '$(srcdir)/'`libs/transform1.c
 
 transform1.obj: libs/transform1.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT transform1.obj -MD -MP -MF $(DEPDIR)/transform1.Tpo -c -o transform1.obj `if test -f 'libs/transform1.c'; then $(CYGPATH_W) 'libs/transform1.c'; else $(CYGPATH_W) '$(srcdir)/libs/transform1.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/transform1.Tpo $(DEPDIR)/transform1.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/transform1.c' object='transform1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/transform1.c' object='transform1.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o transform1.obj `if test -f 'libs/transform1.c'; then $(CYGPATH_W) 'libs/transform1.c'; else $(CYGPATH_W) '$(srcdir)/libs/transform1.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o transform1.obj `if test -f 'libs/transform1.c'; then $(CYGPATH_W) 'libs/transform1.c'; else $(CYGPATH_W) '$(srcdir)/libs/transform1.c'; fi`
 
 typefindhelper.o: libs/typefindhelper.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT typefindhelper.o -MD -MP -MF $(DEPDIR)/typefindhelper.Tpo -c -o typefindhelper.o `test -f 'libs/typefindhelper.c' || echo '$(srcdir)/'`libs/typefindhelper.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefindhelper.Tpo $(DEPDIR)/typefindhelper.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/typefindhelper.c' object='typefindhelper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/typefindhelper.c' object='typefindhelper.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o typefindhelper.o `test -f 'libs/typefindhelper.c' || echo '$(srcdir)/'`libs/typefindhelper.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o typefindhelper.o `test -f 'libs/typefindhelper.c' || echo '$(srcdir)/'`libs/typefindhelper.c
 
 typefindhelper.obj: libs/typefindhelper.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT typefindhelper.obj -MD -MP -MF $(DEPDIR)/typefindhelper.Tpo -c -o typefindhelper.obj `if test -f 'libs/typefindhelper.c'; then $(CYGPATH_W) 'libs/typefindhelper.c'; else $(CYGPATH_W) '$(srcdir)/libs/typefindhelper.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefindhelper.Tpo $(DEPDIR)/typefindhelper.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libs/typefindhelper.c' object='typefindhelper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/typefindhelper.c' object='typefindhelper.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o typefindhelper.obj `if test -f 'libs/typefindhelper.c'; then $(CYGPATH_W) 'libs/typefindhelper.c'; else $(CYGPATH_W) '$(srcdir)/libs/typefindhelper.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o typefindhelper.obj `if test -f 'libs/typefindhelper.c'; then $(CYGPATH_W) 'libs/typefindhelper.c'; else $(CYGPATH_W) '$(srcdir)/libs/typefindhelper.c'; fi`
 
 cleanup.o: pipelines/cleanup.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cleanup.o -MD -MP -MF $(DEPDIR)/cleanup.Tpo -c -o cleanup.o `test -f 'pipelines/cleanup.c' || echo '$(srcdir)/'`pipelines/cleanup.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cleanup.Tpo $(DEPDIR)/cleanup.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/cleanup.c' object='cleanup.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/cleanup.c' object='cleanup.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cleanup.o `test -f 'pipelines/cleanup.c' || echo '$(srcdir)/'`pipelines/cleanup.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cleanup.o `test -f 'pipelines/cleanup.c' || echo '$(srcdir)/'`pipelines/cleanup.c
 
 cleanup.obj: pipelines/cleanup.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cleanup.obj -MD -MP -MF $(DEPDIR)/cleanup.Tpo -c -o cleanup.obj `if test -f 'pipelines/cleanup.c'; then $(CYGPATH_W) 'pipelines/cleanup.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/cleanup.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/cleanup.Tpo $(DEPDIR)/cleanup.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/cleanup.c' object='cleanup.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/cleanup.c' object='cleanup.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cleanup.obj `if test -f 'pipelines/cleanup.c'; then $(CYGPATH_W) 'pipelines/cleanup.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/cleanup.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cleanup.obj `if test -f 'pipelines/cleanup.c'; then $(CYGPATH_W) 'pipelines/cleanup.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/cleanup.c'; fi`
 
 parse-disabled.o: pipelines/parse-disabled.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parse-disabled.o -MD -MP -MF $(DEPDIR)/parse-disabled.Tpo -c -o parse-disabled.o `test -f 'pipelines/parse-disabled.c' || echo '$(srcdir)/'`pipelines/parse-disabled.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parse-disabled.Tpo $(DEPDIR)/parse-disabled.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/parse-disabled.c' object='parse-disabled.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/parse-disabled.c' object='parse-disabled.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-disabled.o `test -f 'pipelines/parse-disabled.c' || echo '$(srcdir)/'`pipelines/parse-disabled.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-disabled.o `test -f 'pipelines/parse-disabled.c' || echo '$(srcdir)/'`pipelines/parse-disabled.c
 
 parse-disabled.obj: pipelines/parse-disabled.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parse-disabled.obj -MD -MP -MF $(DEPDIR)/parse-disabled.Tpo -c -o parse-disabled.obj `if test -f 'pipelines/parse-disabled.c'; then $(CYGPATH_W) 'pipelines/parse-disabled.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-disabled.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parse-disabled.Tpo $(DEPDIR)/parse-disabled.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/parse-disabled.c' object='parse-disabled.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/parse-disabled.c' object='parse-disabled.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-disabled.obj `if test -f 'pipelines/parse-disabled.c'; then $(CYGPATH_W) 'pipelines/parse-disabled.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-disabled.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-disabled.obj `if test -f 'pipelines/parse-disabled.c'; then $(CYGPATH_W) 'pipelines/parse-disabled.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-disabled.c'; fi`
 
 parse-launch.o: pipelines/parse-launch.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parse-launch.o -MD -MP -MF $(DEPDIR)/parse-launch.Tpo -c -o parse-launch.o `test -f 'pipelines/parse-launch.c' || echo '$(srcdir)/'`pipelines/parse-launch.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parse-launch.Tpo $(DEPDIR)/parse-launch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/parse-launch.c' object='parse-launch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/parse-launch.c' object='parse-launch.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-launch.o `test -f 'pipelines/parse-launch.c' || echo '$(srcdir)/'`pipelines/parse-launch.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-launch.o `test -f 'pipelines/parse-launch.c' || echo '$(srcdir)/'`pipelines/parse-launch.c
 
 parse-launch.obj: pipelines/parse-launch.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parse-launch.obj -MD -MP -MF $(DEPDIR)/parse-launch.Tpo -c -o parse-launch.obj `if test -f 'pipelines/parse-launch.c'; then $(CYGPATH_W) 'pipelines/parse-launch.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-launch.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/parse-launch.Tpo $(DEPDIR)/parse-launch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/parse-launch.c' object='parse-launch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/parse-launch.c' object='parse-launch.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-launch.obj `if test -f 'pipelines/parse-launch.c'; then $(CYGPATH_W) 'pipelines/parse-launch.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-launch.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parse-launch.obj `if test -f 'pipelines/parse-launch.c'; then $(CYGPATH_W) 'pipelines/parse-launch.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/parse-launch.c'; fi`
 
 queue-error.o: pipelines/queue-error.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue-error.o -MD -MP -MF $(DEPDIR)/queue-error.Tpo -c -o queue-error.o `test -f 'pipelines/queue-error.c' || echo '$(srcdir)/'`pipelines/queue-error.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-error.Tpo $(DEPDIR)/queue-error.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/queue-error.c' object='queue-error.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/queue-error.c' object='queue-error.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue-error.o `test -f 'pipelines/queue-error.c' || echo '$(srcdir)/'`pipelines/queue-error.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue-error.o `test -f 'pipelines/queue-error.c' || echo '$(srcdir)/'`pipelines/queue-error.c
 
 queue-error.obj: pipelines/queue-error.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queue-error.obj -MD -MP -MF $(DEPDIR)/queue-error.Tpo -c -o queue-error.obj `if test -f 'pipelines/queue-error.c'; then $(CYGPATH_W) 'pipelines/queue-error.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/queue-error.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-error.Tpo $(DEPDIR)/queue-error.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/queue-error.c' object='queue-error.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/queue-error.c' object='queue-error.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue-error.obj `if test -f 'pipelines/queue-error.c'; then $(CYGPATH_W) 'pipelines/queue-error.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/queue-error.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queue-error.obj `if test -f 'pipelines/queue-error.c'; then $(CYGPATH_W) 'pipelines/queue-error.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/queue-error.c'; fi`
+
+seek.o: pipelines/seek.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT seek.o -MD -MP -MF $(DEPDIR)/seek.Tpo -c -o seek.o `test -f 'pipelines/seek.c' || echo '$(srcdir)/'`pipelines/seek.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/seek.Tpo $(DEPDIR)/seek.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/seek.c' object='seek.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o seek.o `test -f 'pipelines/seek.c' || echo '$(srcdir)/'`pipelines/seek.c
+
+seek.obj: pipelines/seek.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT seek.obj -MD -MP -MF $(DEPDIR)/seek.Tpo -c -o seek.obj `if test -f 'pipelines/seek.c'; then $(CYGPATH_W) 'pipelines/seek.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/seek.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/seek.Tpo $(DEPDIR)/seek.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/seek.c' object='seek.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o seek.obj `if test -f 'pipelines/seek.c'; then $(CYGPATH_W) 'pipelines/seek.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/seek.c'; fi`
 
 simple-launch-lines.o: pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT simple-launch-lines.o -MD -MP -MF $(DEPDIR)/simple-launch-lines.Tpo -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/simple-launch-lines.Tpo $(DEPDIR)/simple-launch-lines.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/simple-launch-lines.c' object='simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
 
 simple-launch-lines.obj: pipelines/simple-launch-lines.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT simple-launch-lines.obj -MD -MP -MF $(DEPDIR)/simple-launch-lines.Tpo -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/simple-launch-lines.Tpo $(DEPDIR)/simple-launch-lines.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/simple-launch-lines.c' object='simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/simple-launch-lines.c' object='simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o simple-launch-lines.obj `if test -f 'pipelines/simple-launch-lines.c'; then $(CYGPATH_W) 'pipelines/simple-launch-lines.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/simple-launch-lines.c'; fi`
 
 stress.o: pipelines/stress.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stress.o -MD -MP -MF $(DEPDIR)/stress.Tpo -c -o stress.o `test -f 'pipelines/stress.c' || echo '$(srcdir)/'`pipelines/stress.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/stress.Tpo $(DEPDIR)/stress.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/stress.c' object='stress.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/stress.c' object='stress.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stress.o `test -f 'pipelines/stress.c' || echo '$(srcdir)/'`pipelines/stress.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stress.o `test -f 'pipelines/stress.c' || echo '$(srcdir)/'`pipelines/stress.c
 
 stress.obj: pipelines/stress.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stress.obj -MD -MP -MF $(DEPDIR)/stress.Tpo -c -o stress.obj `if test -f 'pipelines/stress.c'; then $(CYGPATH_W) 'pipelines/stress.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/stress.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/stress.Tpo $(DEPDIR)/stress.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pipelines/stress.c' object='stress.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pipelines/stress.c' object='stress.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stress.obj `if test -f 'pipelines/stress.c'; then $(CYGPATH_W) 'pipelines/stress.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/stress.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stress.obj `if test -f 'pipelines/stress.c'; then $(CYGPATH_W) 'pipelines/stress.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/stress.c'; fi`
 
 .cc.o:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
 
 .cc.obj:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .cc.lo:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
 gstcpp.o: gst/gstcpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstcpp.o -MD -MP -MF $(DEPDIR)/gstcpp.Tpo -c -o gstcpp.o `test -f 'gst/gstcpp.cc' || echo '$(srcdir)/'`gst/gstcpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcpp.Tpo $(DEPDIR)/gstcpp.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gst/gstcpp.cc' object='gstcpp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gst/gstcpp.cc' object='gstcpp.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstcpp.o `test -f 'gst/gstcpp.cc' || echo '$(srcdir)/'`gst/gstcpp.cc
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstcpp.o `test -f 'gst/gstcpp.cc' || echo '$(srcdir)/'`gst/gstcpp.cc
 
 gstcpp.obj: gst/gstcpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstcpp.obj -MD -MP -MF $(DEPDIR)/gstcpp.Tpo -c -o gstcpp.obj `if test -f 'gst/gstcpp.cc'; then $(CYGPATH_W) 'gst/gstcpp.cc'; else $(CYGPATH_W) '$(srcdir)/gst/gstcpp.cc'; fi`
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstcpp.Tpo $(DEPDIR)/gstcpp.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='gst/gstcpp.cc' object='gstcpp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='gst/gstcpp.cc' object='gstcpp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstcpp.obj `if test -f 'gst/gstcpp.cc'; then $(CYGPATH_W) 'gst/gstcpp.cc'; else $(CYGPATH_W) '$(srcdir)/gst/gstcpp.cc'; fi`
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstcpp.obj `if test -f 'gst/gstcpp.cc'; then $(CYGPATH_W) 'gst/gstcpp.cc'; else $(CYGPATH_W) '$(srcdir)/gst/gstcpp.cc'; fi`
 
 gstlibscpp.o: libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.o -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
 
 gstlibscpp.obj: libs/gstlibscpp.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.obj -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -2858,14 +2832,15 @@
 	  fi; \
 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
 	  if test "$$failed" -eq 0; then \
-	    echo "$$grn$$dashes"; \
+	    col="$$grn"; \
 	  else \
-	    echo "$$red$$dashes"; \
+	    col="$$red"; \
 	  fi; \
-	  echo "$$banner"; \
-	  test -z "$$skipped" || echo "$$skipped"; \
-	  test -z "$$report" || echo "$$report"; \
-	  echo "$$dashes$$std"; \
+	  echo "$${col}$$dashes$${std}"; \
+	  echo "$${col}$$banner$${std}"; \
+	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+	  test -z "$$report" || echo "$${col}$$report$${std}"; \
+	  echo "$${col}$$dashes$${std}"; \
 	  test "$$failed" -eq 0; \
 	else :; fi
 
@@ -2915,10 +2890,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -3045,6 +3025,12 @@
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
+# just like 'check', but don't run it again if it fails (useful for debugging)
+%.check-norepeat: %
+	@$(TESTS_ENVIRONMENT)					\
+	CK_DEFAULT_TIMEOUT=20					\
+	$*
+
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
@@ -3170,7 +3156,8 @@
 	@echo
 	@echo "make check                         -- run all checks"
 	@echo "make torture                       -- run all checks $(LOOPS) times"
-	@echo "make (dir)/(test).check            -- run the given check once"
+	@echo "make (dir)/(test).check            -- run the given check once, repeat with GST_DEBUG=*:2 if it fails"
+	@echo "make (dir)/(test).check-norepeat   -- run the given check once, but don't run it again if it fails"
 	@echo "make (dir)/(test).forever          -- run the given check forever"
 	@echo "make (dir)/(test).torture          -- run the given check $(LOOPS) times"
 	@echo
@@ -3236,7 +3223,6 @@
 	      coverage/$$dir/index.xml > coverage/$$dir/index.html;	\
 	  fi; \
         done
-
 	for file in $(COVERAGE_FILES_REL); do				\
 	  echo Generating coverage/$$file.html; 			\
 	  perl $(top_srcdir)/common/coverage/coverage-report-entry.pl   \
diff --git a/tests/check/elements/capsfilter.c b/tests/check/elements/capsfilter.c
index 97a6f09..cea6eac 100644
--- a/tests/check/elements/capsfilter.c
+++ b/tests/check/elements/capsfilter.c
@@ -20,7 +20,7 @@
 #include <gst/check/gstcheck.h>
 
 #define CAPS_TEMPLATE_STRING            \
-    "audio/x-raw-int, "                 \
+    "audio/x-raw, "                     \
     "channels = (int) [ 1, 2], "        \
     "rate = (int) [ 1,  MAX ]"
 
@@ -43,14 +43,14 @@
   g_object_set (src, "sizetype", 2, "sizemax", 1024, "num-buffers", 1, NULL);
 
   filter = gst_check_setup_element ("capsfilter");
-  filter_caps = gst_caps_from_string ("audio/x-raw-int, rate=(int)44100");
+  filter_caps = gst_caps_from_string ("audio/x-raw, rate=(int)44100");
   fail_unless (filter_caps != NULL);
   g_object_set (filter, "caps", filter_caps, NULL);
 
   gst_bin_add_many (GST_BIN (pipe), src, filter, NULL);
   fail_unless (gst_element_link (src, filter));
 
-  mysinkpad = gst_check_setup_sink_pad (filter, &sinktemplate, NULL);
+  mysinkpad = gst_check_setup_sink_pad (filter, &sinktemplate);
   gst_pad_set_active (mysinkpad, TRUE);
 
   fail_unless_equals_int (gst_element_set_state (pipe, GST_STATE_PLAYING),
diff --git a/tests/check/elements/fakesink.c b/tests/check/elements/fakesink.c
index ab61e10..4d5106f 100644
--- a/tests/check/elements/fakesink.c
+++ b/tests/check/elements/fakesink.c
@@ -343,7 +343,7 @@
 
     /* should be wrong state now */
     fret = chain_async_return (data);
-    fail_if (fret != GST_FLOW_WRONG_STATE);
+    fail_if (fret != GST_FLOW_FLUSHING);
   }
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
@@ -453,9 +453,9 @@
 
     GST_DEBUG ("sending buffer");
 
-    /* buffer after EOS is not UNEXPECTED */
+    /* buffer after EOS is not EOS */
     fret = gst_pad_chain (sinkpad, buffer);
-    fail_unless (fret == GST_FLOW_UNEXPECTED);
+    fail_unless (fret == GST_FLOW_EOS);
   }
 
   /* flush, EOS state is flushed again. */
@@ -556,7 +556,7 @@
     fail_if (eret == FALSE);
   }
 
-  /* send buffer that should return UNEXPECTED */
+  /* send buffer that should return EOS */
   {
     GstBuffer *buffer;
     GstFlowReturn fret;
@@ -567,12 +567,12 @@
 
     GST_DEBUG ("sending buffer");
 
-    /* this buffer will generate UNEXPECTED */
+    /* this buffer will generate EOS */
     fret = gst_pad_chain (sinkpad, buffer);
-    fail_unless (fret == GST_FLOW_UNEXPECTED);
+    fail_unless (fret == GST_FLOW_EOS);
   }
 
-  /* send buffer that should return UNEXPECTED */
+  /* send buffer that should return EOS */
   {
     GstBuffer *buffer;
     GstFlowReturn fret;
@@ -584,7 +584,7 @@
     GST_DEBUG ("sending buffer");
 
     fret = gst_pad_chain (sinkpad, buffer);
-    fail_unless (fret == GST_FLOW_UNEXPECTED);
+    fail_unless (fret == GST_FLOW_EOS);
   }
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
@@ -696,7 +696,7 @@
 
   /* preroll buffer is flushed out */
   fret = chain_async_return (data);
-  fail_unless (fret == GST_FLOW_WRONG_STATE);
+  fail_unless (fret == GST_FLOW_FLUSHING);
 
   /* do position query, this should succeed with the time value from the
    * segment before the flush. */
@@ -815,7 +815,7 @@
     fail_if (eret == FALSE);
   }
 
-  /* send buffer that should return UNEXPECTED */
+  /* send buffer that should return EOS */
   buffer = gst_buffer_new ();
   GST_BUFFER_TIMESTAMP (buffer) = 3 * GST_SECOND;
   GST_BUFFER_DURATION (buffer) = 1 * GST_SECOND;
@@ -831,7 +831,7 @@
 
   /* preroll buffer is rendered, we expect no more buffer after this one */
   fret = chain_async_return (data);
-  fail_unless (fret == GST_FLOW_UNEXPECTED);
+  fail_unless (fret == GST_FLOW_EOS);
 
   /* do position query, this should succeed with the stream time of the buffer
    * against the clock. Since the buffer is synced against the clock, the time
diff --git a/tests/check/elements/fakesrc.c b/tests/check/elements/fakesrc.c
index 4df128a..2988676 100644
--- a/tests/check/elements/fakesrc.c
+++ b/tests/check/elements/fakesrc.c
@@ -34,16 +34,13 @@
     GST_STATIC_CAPS_ANY);
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     have_eos = TRUE;
-    gst_event_unref (event);
-    return TRUE;
   }
-
   gst_event_unref (event);
-  return FALSE;
+  return TRUE;
 }
 
 static GstElement *
@@ -53,7 +50,7 @@
 
   GST_DEBUG ("setup_fakesrc");
   fakesrc = gst_check_setup_element ("fakesrc");
-  mysinkpad = gst_check_setup_sink_pad (fakesrc, &sinktemplate, NULL);
+  mysinkpad = gst_check_setup_sink_pad (fakesrc, &sinktemplate);
   gst_pad_set_event_function (mysinkpad, event_func);
   gst_pad_set_active (mysinkpad, TRUE);
   have_eos = FALSE;
diff --git a/tests/check/elements/fdsrc.c b/tests/check/elements/fdsrc.c
index 6c92f6d..06ba059 100644
--- a/tests/check/elements/fdsrc.c
+++ b/tests/check/elements/fdsrc.c
@@ -37,16 +37,14 @@
     GST_STATIC_CAPS_ANY);
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     have_eos = TRUE;
-    gst_event_unref (event);
-    return TRUE;
   }
 
   gst_event_unref (event);
-  return FALSE;
+  return TRUE;
 }
 
 static GstElement *
@@ -56,7 +54,7 @@
 
   GST_DEBUG ("setup_fdsrc");
   fdsrc = gst_check_setup_element ("fdsrc");
-  mysinkpad = gst_check_setup_sink_pad (fdsrc, &sinktemplate, NULL);
+  mysinkpad = gst_check_setup_sink_pad (fdsrc, &sinktemplate);
   gst_pad_set_event_function (mysinkpad, event_func);
   gst_pad_set_active (mysinkpad, TRUE);
   return fdsrc;
diff --git a/tests/check/elements/filesink.c b/tests/check/elements/filesink.c
index fa1d3f9..f432402 100644
--- a/tests/check/elements/filesink.c
+++ b/tests/check/elements/filesink.c
@@ -48,7 +48,7 @@
 
   GST_DEBUG ("setup_filesink");
   filesink = gst_check_setup_element ("filesink");
-  mysrcpad = gst_check_setup_src_pad (filesink, &srctemplate, NULL);
+  mysrcpad = gst_check_setup_src_pad (filesink, &srctemplate);
   gst_pad_set_active (mysrcpad, TRUE);
   return filesink;
 }
@@ -85,12 +85,12 @@
     G_STMT_START {                                                        \
       GstBuffer *buf = gst_buffer_new_and_alloc(num_bytes);               \
       GRand *rand = g_rand_new_with_seed (num_bytes);                     \
-      guint8 *data;                                                       \
+      GstMapInfo info;                                                    \
       guint i;                                                            \
-      data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);             \
+      fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));           \
       for (i = 0; i < num_bytes; ++i)                                     \
-        data[i] = (g_rand_int (rand) >> 24) & 0xff;                       \
-      gst_buffer_unmap (buf, data, num_bytes);                            \
+        ((guint8 *)info.data)[i] = (g_rand_int (rand) >> 24) & 0xff;      \
+      gst_buffer_unmap (buf, &info);                                      \
       fail_unless_equals_int (gst_pad_push (mysrcpad, buf), GST_FLOW_OK); \
       g_rand_free (rand);                                                 \
     } G_STMT_END
@@ -265,23 +265,26 @@
   fail_unless_equals_string (location, "/i/do/not/exist");
   g_free (location);
 
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
   fail_unless_equals_string (location, "file:///i/do/not/exist");
+  g_free (location);
 
   /* should accept file:///foo/bar URIs */
   fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (filesink),
-          "file:///foo/bar"));
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
+          "file:///foo/bar", NULL));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
   fail_unless_equals_string (location, "file:///foo/bar");
+  g_free (location);
   g_object_get (G_OBJECT (filesink), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/bar");
   g_free (location);
 
   /* should accept file://localhost/foo/bar URIs */
   fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (filesink),
-          "file://localhost/foo/baz"));
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
+          "file://localhost/foo/baz", NULL));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
   fail_unless_equals_string (location, "file:///foo/baz");
+  g_free (location);
   g_object_get (G_OBJECT (filesink), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/baz");
   g_free (location);
@@ -291,12 +294,13 @@
   g_object_get (G_OBJECT (filesink), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/b?r");
   g_free (location);
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (filesink));
   fail_unless_equals_string (location, "file:///foo/b%3Fr");
+  g_free (location);
 
   /* should fail with other hostnames */
   fail_if (gst_uri_handler_set_uri (GST_URI_HANDLER (filesink),
-          "file://hostname/foo/foo"));
+          "file://hostname/foo/foo", NULL));
 
   /* cleanup */
   gst_element_set_bus (filesink, NULL);
diff --git a/tests/check/elements/filesrc.c b/tests/check/elements/filesrc.c
index eddee15..8fd9bc2 100644
--- a/tests/check/elements/filesrc.c
+++ b/tests/check/elements/filesrc.c
@@ -37,7 +37,7 @@
     GST_STATIC_CAPS_ANY);
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   gboolean res = TRUE;
 
@@ -73,7 +73,7 @@
 
   GST_DEBUG ("setup_filesrc");
   filesrc = gst_check_setup_element ("filesrc");
-  mysinkpad = gst_check_setup_sink_pad (filesrc, &sinktemplate, NULL);
+  mysinkpad = gst_check_setup_sink_pad (filesrc, &sinktemplate);
   gst_pad_set_event_function (mysinkpad, event_func);
   gst_pad_set_active (mysinkpad, TRUE);
 
@@ -171,8 +171,7 @@
   GstPad *pad;
   GstFlowReturn ret;
   GstBuffer *buffer1, *buffer2;
-  guint8 *data1, *data2;
-  gsize size1, size2;
+  GstMapInfo info1, info2;
 
   src = setup_filesrc ();
 
@@ -186,7 +185,7 @@
   fail_unless (pad != NULL);
 
   /* activate the pad in pull mode */
-  res = gst_pad_activate_pull (pad, TRUE);
+  res = gst_pad_activate_mode (pad, GST_PAD_MODE_PULL, TRUE);
   fail_unless (res == TRUE);
 
   /* not start playing */
@@ -207,40 +206,44 @@
   gst_query_unref (seeking_query);
 
   /* do some pulls */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, 0, 100, &buffer1);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer1 != NULL);
   fail_unless (gst_buffer_get_size (buffer1) == 100);
 
+  buffer2 = NULL;
   ret = gst_pad_get_range (pad, 0, 50, &buffer2);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer2 != NULL);
   fail_unless (gst_buffer_get_size (buffer2) == 50);
 
   /* this should be the same */
-  data1 = gst_buffer_map (buffer1, &size1, NULL, GST_MAP_READ);
-  data2 = gst_buffer_map (buffer2, &size2, NULL, GST_MAP_READ);
-  fail_unless (memcmp (data1, data2, 50) == 0);
-  gst_buffer_unmap (buffer2, data2, size2);
+  fail_unless (gst_buffer_map (buffer1, &info1, GST_MAP_READ));
+  fail_unless (gst_buffer_map (buffer2, &info2, GST_MAP_READ));
+  fail_unless (memcmp (info1.data, info2.data, 50) == 0);
+  gst_buffer_unmap (buffer2, &info2);
 
   gst_buffer_unref (buffer2);
 
   /* read next 50 bytes */
+  buffer2 = NULL;
   ret = gst_pad_get_range (pad, 50, 50, &buffer2);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer2 != NULL);
   fail_unless (gst_buffer_get_size (buffer2) == 50);
 
   /* compare with previously read data */
-  data2 = gst_buffer_map (buffer2, &size2, NULL, GST_MAP_READ);
-  fail_unless (memcmp (data1 + 50, data2, 50) == 0);
-  gst_buffer_unmap (buffer2, data2, size2);
+  fail_unless (gst_buffer_map (buffer2, &info2, GST_MAP_READ));
+  fail_unless (memcmp ((guint8 *) info1.data + 50, info2.data, 50) == 0);
+  gst_buffer_unmap (buffer2, &info2);
 
-  gst_buffer_unmap (buffer1, data1, size1);
+  gst_buffer_unmap (buffer1, &info1);
   gst_buffer_unref (buffer1);
   gst_buffer_unref (buffer2);
 
   /* read 10 bytes at end-10 should give exactly 10 bytes */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop - 10, 10, &buffer1);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer1 != NULL);
@@ -248,6 +251,7 @@
   gst_buffer_unref (buffer1);
 
   /* read 20 bytes at end-10 should give exactly 10 bytes */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop - 10, 20, &buffer1);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer1 != NULL);
@@ -255,6 +259,7 @@
   gst_buffer_unref (buffer1);
 
   /* read 0 bytes at end-1 should return 0 bytes */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop - 1, 0, &buffer1);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer1 != NULL);
@@ -262,6 +267,7 @@
   gst_buffer_unref (buffer1);
 
   /* read 10 bytes at end-1 should return 1 byte */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop - 1, 10, &buffer1);
   fail_unless (ret == GST_FLOW_OK);
   fail_unless (buffer1 != NULL);
@@ -269,20 +275,24 @@
   gst_buffer_unref (buffer1);
 
   /* read 0 bytes at end should EOS */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop, 0, &buffer1);
-  fail_unless (ret == GST_FLOW_UNEXPECTED);
+  fail_unless (ret == GST_FLOW_EOS);
 
   /* read 10 bytes before end should EOS */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop, 10, &buffer1);
-  fail_unless (ret == GST_FLOW_UNEXPECTED);
+  fail_unless (ret == GST_FLOW_EOS);
 
   /* read 0 bytes after end should EOS */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop + 10, 0, &buffer1);
-  fail_unless (ret == GST_FLOW_UNEXPECTED);
+  fail_unless (ret == GST_FLOW_EOS);
 
   /* read 10 bytes after end should EOS too */
+  buffer1 = NULL;
   ret = gst_pad_get_range (pad, stop + 10, 10, &buffer1);
-  fail_unless (ret == GST_FLOW_UNEXPECTED);
+  fail_unless (ret == GST_FLOW_EOS);
 
   fail_unless (gst_element_set_state (src,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
@@ -349,23 +359,26 @@
   fail_unless_equals_string (location, "/i/do/not/exist");
   g_free (location);
 
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (src));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (src));
   fail_unless_equals_string (location, "file:///i/do/not/exist");
+  g_free (location);
 
   /* should accept file:///foo/bar URIs */
   fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (src),
-          "file:///foo/bar"));
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (src));
+          "file:///foo/bar", NULL));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (src));
   fail_unless_equals_string (location, "file:///foo/bar");
+  g_free (location);
   g_object_get (G_OBJECT (src), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/bar");
   g_free (location);
 
   /* should accept file://localhost/foo/bar URIs */
   fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (src),
-          "file://localhost/foo/baz"));
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (src));
+          "file://localhost/foo/baz", NULL));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (src));
   fail_unless_equals_string (location, "file:///foo/baz");
+  g_free (location);
   g_object_get (G_OBJECT (src), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/baz");
   g_free (location);
@@ -375,12 +388,13 @@
   g_object_get (G_OBJECT (src), "location", &location, NULL);
   fail_unless_equals_string (location, "/foo/b?r");
   g_free (location);
-  location = (gchar *) gst_uri_handler_get_uri (GST_URI_HANDLER (src));
+  location = gst_uri_handler_get_uri (GST_URI_HANDLER (src));
   fail_unless_equals_string (location, "file:///foo/b%3Fr");
+  g_free (location);
 
   /* should fail with other hostnames */
   fail_if (gst_uri_handler_set_uri (GST_URI_HANDLER (src),
-          "file://hostname/foo/foo"));
+          "file://hostname/foo/foo", NULL));
 
   /* cleanup */
   gst_element_set_bus (src, NULL);
@@ -396,7 +410,7 @@
   GstQuery *query;
   gchar *query_uri = NULL;
 
-  gst_uri_handler_set_uri (GST_URI_HANDLER (e), in_uri);
+  gst_uri_handler_set_uri (GST_URI_HANDLER (e), in_uri, NULL);
 
   query = gst_query_new_uri ();
   fail_unless (gst_element_query (e, query));
diff --git a/tests/check/elements/funnel.c b/tests/check/elements/funnel.c
index 5703dd3..3a4ed01 100644
--- a/tests/check/elements/funnel.c
+++ b/tests/check/elements/funnel.c
@@ -36,20 +36,20 @@
 static void
 setup_test_objects (struct TestData *td, GstPadChainFunction chain_func)
 {
-  td->mycaps = gst_caps_new_simple ("test/test", NULL);
+  td->mycaps = gst_caps_new_empty_simple ("test/test");
 
   td->funnel = gst_element_factory_make ("funnel", NULL);
 
   td->funnelsrc = gst_element_get_static_pad (td->funnel, "src");
   fail_unless (td->funnelsrc != NULL);
 
-  td->funnelsink11 = gst_element_get_request_pad (td->funnel, "sink11");
+  td->funnelsink11 = gst_element_get_request_pad (td->funnel, "sink_11");
   fail_unless (td->funnelsink11 != NULL);
-  fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink11), "sink11"));
+  fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink11), "sink_11"));
 
-  td->funnelsink22 = gst_element_get_request_pad (td->funnel, "sink22");
+  td->funnelsink22 = gst_element_get_request_pad (td->funnel, "sink_22");
   fail_unless (td->funnelsink22 != NULL);
-  fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink22), "sink22"));
+  fail_unless (!strcmp (GST_OBJECT_NAME (td->funnelsink22), "sink_22"));
 
   fail_unless (gst_element_set_state (td->funnel, GST_STATE_PLAYING) ==
       GST_STATE_CHANGE_SUCCESS);
@@ -106,7 +106,7 @@
 static gint alloccount = 0;
 
 static GstFlowReturn
-chain_ok (GstPad * pad, GstBuffer * buffer)
+chain_ok (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   bufcount++;
 
diff --git a/tests/check/elements/identity.c b/tests/check/elements/identity.c
index abf428c..270fbdd 100644
--- a/tests/check/elements/identity.c
+++ b/tests/check/elements/identity.c
@@ -42,7 +42,7 @@
     GST_STATIC_CAPS_ANY);
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     have_eos = TRUE;
@@ -62,8 +62,8 @@
   GST_DEBUG ("setup_identity");
 
   identity = gst_check_setup_element ("identity");
-  mysrcpad = gst_check_setup_src_pad (identity, &srctemplate, NULL);
-  mysinkpad = gst_check_setup_sink_pad (identity, &sinktemplate, NULL);
+  mysrcpad = gst_check_setup_src_pad (identity, &srctemplate);
+  mysinkpad = gst_check_setup_sink_pad (identity, &sinktemplate);
   gst_pad_set_event_function (mysinkpad, event_func);
   gst_pad_set_active (mysrcpad, TRUE);
   gst_pad_set_active (mysinkpad, TRUE);
@@ -87,7 +87,6 @@
 {
   GstElement *identity;
   GstBuffer *buffer;
-  gpointer data;
 
   identity = setup_identity ();
   fail_unless (gst_element_set_state (identity,
@@ -97,9 +96,7 @@
   buffer = gst_buffer_new_and_alloc (4);
   ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
 
-  data = gst_buffer_map (buffer, NULL, NULL, GST_MAP_WRITE);
-  memcpy (data, "data", 4);
-  gst_buffer_unmap (buffer, data, 4);
+  gst_buffer_fill (buffer, 0, "data", 4);
 
   /* pushing gives away my reference ... */
   fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK,
diff --git a/tests/check/elements/multiqueue.c b/tests/check/elements/multiqueue.c
index 34a3380..3969615 100644
--- a/tests/check/elements/multiqueue.c
+++ b/tests/check/elements/multiqueue.c
@@ -22,7 +22,7 @@
 
 #include <gst/check/gstcheck.h>
 
-static GStaticMutex _check_lock = G_STATIC_MUTEX_INIT;
+static GMutex _check_lock;
 
 static GstElement *
 setup_multiqueue (GstElement * pipe, GstElement * inputs[],
@@ -41,7 +41,7 @@
     GstPad *srcpad = NULL;
 
     /* create multiqueue sink (and source) pad */
-    sinkpad = gst_element_get_request_pad (mq, "sink%d");
+    sinkpad = gst_element_get_request_pad (mq, "sink_%u");
     fail_unless (sinkpad != NULL,
         "failed to create multiqueue request pad #%u", i);
 
@@ -66,10 +66,10 @@
 
       /* only the sink pads are by request, the source pads are sometimes pads,
        * so this should return NULL */
-      srcpad = gst_element_get_request_pad (mq, "src%d");
+      srcpad = gst_element_get_request_pad (mq, "src_%u");
       fail_unless (srcpad == NULL);
 
-      g_snprintf (padname, sizeof (padname), "src%d", i);
+      g_snprintf (padname, sizeof (padname), "src_%u", i);
       srcpad = gst_element_get_static_pad (mq, padname);
       fail_unless (srcpad != NULL, "failed to get multiqueue src pad #%u", i);
       fail_unless (GST_PAD_IS_SRC (srcpad),
@@ -193,21 +193,21 @@
 
   mq = gst_element_factory_make ("multiqueue", NULL);
 
-  sink1 = gst_element_get_request_pad (mq, "foo%d");
+  sink1 = gst_element_get_request_pad (mq, "foo_%u");
   fail_unless (sink1 == NULL,
-      "Expected NULL pad, as there is no request pad template for 'foo%%d'");
+      "Expected NULL pad, as there is no request pad template for 'foo_%%u'");
 
-  sink1 = gst_element_get_request_pad (mq, "src%d");
+  sink1 = gst_element_get_request_pad (mq, "src_%u");
   fail_unless (sink1 == NULL,
-      "Expected NULL pad, as there is no request pad template for 'src%%d'");
+      "Expected NULL pad, as there is no request pad template for 'src_%%u'");
 
-  sink1 = gst_element_get_request_pad (mq, "sink%d");
+  sink1 = gst_element_get_request_pad (mq, "sink_%u");
   fail_unless (sink1 != NULL);
   fail_unless (GST_IS_PAD (sink1));
   fail_unless (GST_PAD_IS_SINK (sink1));
   GST_LOG ("Got pad %s:%s", GST_DEBUG_PAD_NAME (sink1));
 
-  sink2 = gst_element_get_request_pad (mq, "sink%d");
+  sink2 = gst_element_get_request_pad (mq, "sink_%u");
   fail_unless (sink2 != NULL);
   fail_unless (GST_IS_PAD (sink2));
   fail_unless (GST_PAD_IS_SINK (sink2));
@@ -233,7 +233,7 @@
 
   mq_sinkpad_name = gst_pad_get_name (sink);
   fail_unless (g_str_has_prefix (mq_sinkpad_name, "sink"));
-  mq_srcpad_name = g_strdup_printf ("src%s", mq_sinkpad_name + 4);
+  mq_srcpad_name = g_strdup_printf ("src_%s", mq_sinkpad_name + 5);
   srcpad = gst_element_get_static_pad (mq, mq_srcpad_name);
   fail_unless (srcpad != NULL);
 
@@ -250,33 +250,33 @@
 
   mq = gst_element_factory_make ("multiqueue", NULL);
 
-  sink1 = gst_element_get_request_pad (mq, "sink1");
+  sink1 = gst_element_get_request_pad (mq, "sink_1");
   fail_unless (sink1 != NULL);
   fail_unless (GST_IS_PAD (sink1));
   fail_unless (GST_PAD_IS_SINK (sink1));
-  fail_unless_equals_string (GST_PAD_NAME (sink1), "sink1");
+  fail_unless_equals_string (GST_PAD_NAME (sink1), "sink_1");
   GST_LOG ("Got pad %s:%s", GST_DEBUG_PAD_NAME (sink1));
 
-  sink3 = gst_element_get_request_pad (mq, "sink3");
+  sink3 = gst_element_get_request_pad (mq, "sink_3");
   fail_unless (sink3 != NULL);
   fail_unless (GST_IS_PAD (sink3));
   fail_unless (GST_PAD_IS_SINK (sink3));
-  fail_unless_equals_string (GST_PAD_NAME (sink3), "sink3");
+  fail_unless_equals_string (GST_PAD_NAME (sink3), "sink_3");
   GST_LOG ("Got pad %s:%s", GST_DEBUG_PAD_NAME (sink3));
 
-  sink2 = gst_element_get_request_pad (mq, "sink2");
+  sink2 = gst_element_get_request_pad (mq, "sink_2");
   fail_unless (sink2 != NULL);
   fail_unless (GST_IS_PAD (sink2));
   fail_unless (GST_PAD_IS_SINK (sink2));
-  fail_unless_equals_string (GST_PAD_NAME (sink2), "sink2");
+  fail_unless_equals_string (GST_PAD_NAME (sink2), "sink_2");
   GST_LOG ("Got pad %s:%s", GST_DEBUG_PAD_NAME (sink2));
 
   /* This gets us the first unused id, sink0 */
-  sink4 = gst_element_get_request_pad (mq, "sink%d");
+  sink4 = gst_element_get_request_pad (mq, "sink_%u");
   fail_unless (sink4 != NULL);
   fail_unless (GST_IS_PAD (sink4));
   fail_unless (GST_PAD_IS_SINK (sink4));
-  fail_unless_equals_string (GST_PAD_NAME (sink4), "sink0");
+  fail_unless_equals_string (GST_PAD_NAME (sink4), "sink_0");
   GST_LOG ("Got pad %s:%s", GST_DEBUG_PAD_NAME (sink4));
 
   GST_LOG ("Cleaning up");
@@ -289,10 +289,27 @@
 
 GST_END_TEST;
 
-static GstCaps *
-mq_dummypad_getcaps (GstPad * sinkpad, GstCaps * filter)
+static gboolean
+mq_dummypad_query (GstPad * sinkpad, GstObject * parent, GstQuery * query)
 {
-  return (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
+  gboolean res = TRUE;
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+    {
+      GstCaps *filter, *caps;
+
+      gst_query_parse_caps (query, &filter);
+      caps = (filter ? gst_caps_ref (filter) : gst_caps_new_any ());
+      gst_query_set_caps_result (query, caps);
+      gst_caps_unref (caps);
+      break;
+    }
+    default:
+      res = gst_pad_query_default (sinkpad, parent, query);
+      break;
+  }
+  return res;
 }
 
 struct PadData
@@ -309,24 +326,23 @@
 };
 
 static GstFlowReturn
-mq_dummypad_chain (GstPad * sinkpad, GstBuffer * buf)
+mq_dummypad_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf)
 {
   guint32 cur_id;
   struct PadData *pad_data;
-  guint8 *data;
-  gsize size;
+  GstMapInfo info;
 
   pad_data = gst_pad_get_element_private (sinkpad);
 
-  g_static_mutex_lock (&_check_lock);
+  g_mutex_lock (&_check_lock);
   fail_if (pad_data == NULL);
   /* Read an ID from the first 4 bytes of the buffer data and check it's
    * what we expect */
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-  fail_unless (size >= 4);
-  g_static_mutex_unlock (&_check_lock);
-  cur_id = GST_READ_UINT32_BE (data);
-  gst_buffer_unmap (buf, data, size);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
+  fail_unless (info.size >= 4);
+  g_mutex_unlock (&_check_lock);
+  cur_id = GST_READ_UINT32_BE (info.data);
+  gst_buffer_unmap (buf, &info);
 
   g_mutex_lock (pad_data->mutex);
 
@@ -336,12 +352,12 @@
   if (!pad_data->is_linked) {
     /* If there are no linked pads, we can't track a max_id for them :) */
     if (pad_data->n_linked > 0 && !pad_data->first_buf) {
-      g_static_mutex_lock (&_check_lock);
+      g_mutex_lock (&_check_lock);
       fail_unless (cur_id <= *(pad_data->max_linked_id_ptr) + 1,
           "Got buffer %u on pad %u before buffer %u was seen on a "
           "linked pad (max: %u)", cur_id, pad_data->pad_num, cur_id - 1,
           *(pad_data->max_linked_id_ptr));
-      g_static_mutex_unlock (&_check_lock);
+      g_mutex_unlock (&_check_lock);
     }
   } else {
     /* Update the max_id value */
@@ -360,14 +376,14 @@
 }
 
 static gboolean
-mq_dummypad_event (GstPad * sinkpad, GstEvent * event)
+mq_dummypad_event (GstPad * sinkpad, GstObject * parent, GstEvent * event)
 {
   struct PadData *pad_data;
 
   pad_data = gst_pad_get_element_private (sinkpad);
-  g_static_mutex_lock (&_check_lock);
+  g_mutex_lock (&_check_lock);
   fail_if (pad_data == NULL);
-  g_static_mutex_unlock (&_check_lock);
+  g_mutex_unlock (&_check_lock);
 
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
     g_mutex_lock (pad_data->mutex);
@@ -432,11 +448,11 @@
     name = g_strdup_printf ("dummysrc%d", i);
     inputpads[i] = gst_pad_new (name, GST_PAD_SRC);
     g_free (name);
-    gst_pad_set_getcaps_function (inputpads[i], mq_dummypad_getcaps);
+    gst_pad_set_query_function (inputpads[i], mq_dummypad_query);
 
-    mq_sinkpad = gst_element_get_request_pad (mq, "sink%d");
+    mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
     fail_unless (mq_sinkpad != NULL);
-    gst_pad_link (inputpads[i], mq_sinkpad);
+    fail_unless (gst_pad_link (inputpads[i], mq_sinkpad) == GST_PAD_LINK_OK);
 
     gst_pad_set_active (inputpads[i], TRUE);
 
@@ -447,7 +463,7 @@
     g_free (name);
     gst_pad_set_chain_function (sinkpads[i], mq_dummypad_chain);
     gst_pad_set_event_function (sinkpads[i], mq_dummypad_event);
-    gst_pad_set_getcaps_function (sinkpads[i], mq_dummypad_getcaps);
+    gst_pad_set_query_function (sinkpads[i], mq_dummypad_query);
 
     pad_data[i].pad_num = i;
     pad_data[i].max_linked_id_ptr = &max_linked_id;
@@ -459,7 +475,7 @@
     pad_data[i].first_buf = TRUE;
     gst_pad_set_element_private (sinkpads[i], pad_data + i);
 
-    gst_pad_link (mq_srcpad, sinkpads[i]);
+    fail_unless (gst_pad_link (mq_srcpad, sinkpads[i]) == GST_PAD_LINK_OK);
     gst_pad_set_active (sinkpads[i], TRUE);
 
     gst_object_unref (mq_sinkpad);
@@ -479,22 +495,22 @@
     guint8 cur_pad;
     GstBuffer *buf;
     GstFlowReturn ret;
-    gpointer data;
+    GstMapInfo info;
 
     cur_pad = pad_pattern[i % n];
 
     buf = gst_buffer_new_and_alloc (4);
-    g_static_mutex_lock (&_check_lock);
+    g_mutex_lock (&_check_lock);
     fail_if (buf == NULL);
-    g_static_mutex_unlock (&_check_lock);
+    g_mutex_unlock (&_check_lock);
 
-    data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-    GST_WRITE_UINT32_BE (data, i + 1);
-    gst_buffer_unmap (buf, data, 4);
+    fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+    GST_WRITE_UINT32_BE (info.data, i + 1);
+    gst_buffer_unmap (buf, &info);
     GST_BUFFER_TIMESTAMP (buf) = (i + 1) * GST_SECOND;
 
     ret = gst_pad_push (inputpads[cur_pad], buf);
-    g_static_mutex_lock (&_check_lock);
+    g_mutex_lock (&_check_lock);
     if (pad_data[cur_pad].is_linked) {
       fail_unless (ret == GST_FLOW_OK,
           "Push on pad %d returned %d when FLOW_OK was expected", cur_pad, ret);
@@ -504,7 +520,7 @@
           "Push on pad %d returned %d when FLOW_OK or NOT_LINKED  was expected",
           cur_pad, ret);
     }
-    g_static_mutex_unlock (&_check_lock);
+    g_mutex_unlock (&_check_lock);
   }
   for (i = 0; i < NPADS; i++) {
     gst_pad_push_event (inputpads[i], gst_event_new_eos ());
@@ -588,11 +604,11 @@
     name = g_strdup_printf ("dummysrc%d", i);
     inputpads[i] = gst_pad_new (name, GST_PAD_SRC);
     g_free (name);
-    gst_pad_set_getcaps_function (inputpads[i], mq_dummypad_getcaps);
+    gst_pad_set_query_function (inputpads[i], mq_dummypad_query);
 
-    mq_sinkpad = gst_element_get_request_pad (mq, "sink%d");
+    mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
     fail_unless (mq_sinkpad != NULL);
-    gst_pad_link (inputpads[i], mq_sinkpad);
+    fail_unless (gst_pad_link (inputpads[i], mq_sinkpad) == GST_PAD_LINK_OK);
 
     gst_pad_set_active (inputpads[i], TRUE);
 
@@ -603,7 +619,7 @@
     g_free (name);
     gst_pad_set_chain_function (sinkpads[i], mq_dummypad_chain);
     gst_pad_set_event_function (sinkpads[i], mq_dummypad_event);
-    gst_pad_set_getcaps_function (sinkpads[i], mq_dummypad_getcaps);
+    gst_pad_set_query_function (sinkpads[i], mq_dummypad_query);
 
     pad_data[i].pad_num = i;
     pad_data[i].max_linked_id_ptr = &max_linked_id;
@@ -615,7 +631,7 @@
     pad_data[i].first_buf = TRUE;
     gst_pad_set_element_private (sinkpads[i], pad_data + i);
 
-    gst_pad_link (mq_srcpad, sinkpads[i]);
+    fail_unless (gst_pad_link (mq_srcpad, sinkpads[i]) == GST_PAD_LINK_OK);
     gst_pad_set_active (sinkpads[i], TRUE);
 
     gst_object_unref (mq_sinkpad);
@@ -638,18 +654,18 @@
     GstBuffer *buf;
     GstFlowReturn ret;
     GstClockTime ts;
-    gpointer data;
+    GstMapInfo info;
 
     ts = gst_util_uint64_scale_int (GST_SECOND, i, 10);
 
     buf = gst_buffer_new_and_alloc (4);
-    g_static_mutex_lock (&_check_lock);
+    g_mutex_lock (&_check_lock);
     fail_if (buf == NULL);
-    g_static_mutex_unlock (&_check_lock);
+    g_mutex_unlock (&_check_lock);
 
-    data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-    GST_WRITE_UINT32_BE (data, i + 1);
-    gst_buffer_unmap (buf, data, 4);
+    fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+    GST_WRITE_UINT32_BE (info.data, i + 1);
+    gst_buffer_unmap (buf, &info);
 
     GST_BUFFER_TIMESTAMP (buf) = gst_util_uint64_scale_int (GST_SECOND, i, 10);
 
@@ -658,10 +674,10 @@
       ret = gst_pad_push (inputpads[1], gst_buffer_ref (buf));
 
     ret = gst_pad_push (inputpads[0], buf);
-    g_static_mutex_lock (&_check_lock);
+    g_mutex_lock (&_check_lock);
     fail_unless (ret == GST_FLOW_OK,
         "Push on pad %d returned %d when FLOW_OK was expected", 0, ret);
-    g_static_mutex_unlock (&_check_lock);
+    g_mutex_unlock (&_check_lock);
 
     /* Push a new segment update on the 2nd pad */
     gst_segment_init (&segment, GST_FORMAT_TIME);
diff --git a/tests/check/elements/queue.c b/tests/check/elements/queue.c
index 7ccfec7..59f4981 100644
--- a/tests/check/elements/queue.c
+++ b/tests/check/elements/queue.c
@@ -36,6 +36,8 @@
  * get_peer, and then remove references in every test function */
 static GstPad *mysrcpad;
 static GstPad *mysinkpad;
+static GstPad *qsrcpad;
+static gulong probe_id;
 
 static gint overrun_count;
 
@@ -57,22 +59,22 @@
 static void
 queue_overrun (GstElement * queue, gpointer user_data)
 {
-  GST_DEBUG ("queue overrun");
   overrun_count++;
+  GST_DEBUG ("queue overrun %d", overrun_count);
 }
 
 static void
 queue_underrun (GstElement * queue, gpointer user_data)
 {
-  GST_DEBUG ("queue underrun");
   UNDERRUN_LOCK ();
   underrun_count++;
+  GST_DEBUG ("queue underrun %d", underrun_count);
   UNDERRUN_SIGNAL ();
   UNDERRUN_UNLOCK ();
 }
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   GST_DEBUG ("%s event", gst_event_type_get_name (GST_EVENT_TYPE (event)));
   events = g_list_append (events, event);
@@ -90,6 +92,21 @@
 }
 
 static void
+block_src (void)
+{
+  qsrcpad = gst_element_get_static_pad (queue, "src");
+  probe_id = gst_pad_add_probe (qsrcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+      NULL, NULL, NULL);
+}
+
+static void
+unblock_src (void)
+{
+  gst_pad_remove_probe (qsrcpad, probe_id);
+  gst_object_unref (qsrcpad);
+}
+
+static void
 setup (void)
 {
   GST_DEBUG ("setup_queue");
@@ -97,7 +114,7 @@
   queue = gst_check_setup_element ("queue");
   g_signal_connect (queue, "underrun", G_CALLBACK (queue_underrun), NULL);
 
-  mysrcpad = gst_check_setup_src_pad (queue, &srctemplate, NULL);
+  mysrcpad = gst_check_setup_src_pad (queue, &srctemplate);
   gst_pad_set_active (mysrcpad, TRUE);
 
   mysinkpad = NULL;
@@ -167,7 +184,7 @@
 {
   g_signal_connect (queue, "overrun", G_CALLBACK (queue_overrun), NULL);
   g_object_set (G_OBJECT (queue), "max-size-buffers", 2, NULL);
-  mysinkpad = gst_check_setup_sink_pad (queue, &sinktemplate, NULL);
+  mysinkpad = gst_check_setup_sink_pad (queue, &sinktemplate);
   gst_pad_set_active (mysinkpad, TRUE);
 
   GST_DEBUG ("starting");
@@ -197,6 +214,8 @@
 
   /* link the src pad of the queue to make it dequeue buffers */
   mysinkpad = setup_sink_pad (queue, &sinktemplate);
+
+  unblock_src ();
 }
 
 /* set queue size to 2 buffers
@@ -216,13 +235,21 @@
       G_CALLBACK (queue_overrun_link_and_activate), NULL);
   g_object_set (G_OBJECT (queue), "max-size-buffers", 2, NULL);
 
+  block_src ();
+
   GST_DEBUG ("starting");
 
+  UNDERRUN_LOCK ();
   fail_unless (gst_element_set_state (queue,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  UNDERRUN_WAIT ();
+  UNDERRUN_UNLOCK ();
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+
+  fail_unless (underrun_count == 1);
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
 
   buffer1 = gst_buffer_new_and_alloc (4);
   /* pushing gives away my reference */
@@ -230,18 +257,16 @@
 
   GST_DEBUG ("added 1st");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer2 = gst_buffer_new_and_alloc (4);
   gst_pad_push (mysrcpad, buffer2);
 
   GST_DEBUG ("added 2nd");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer3 = gst_buffer_new_and_alloc (4);
-  /* lock the check_mutex to block the first buffer pushed to mysinkpad */
-  g_mutex_lock (check_mutex);
   /* the next call to gst_pad_push will emit the overrun signal. The signal
    * handler queue_overrun_link_and_activate() (above) increases overrun_count,
    * activates and links mysinkpad. The queue task then dequeues a buffer and
@@ -250,8 +275,9 @@
 
   GST_DEBUG ("added 3rd");
   fail_unless (overrun_count == 1);
-  fail_unless (underrun_count == 0);
 
+  /* lock the check_mutex to block the first buffer pushed to mysinkpad */
+  g_mutex_lock (check_mutex);
   /* now let the queue push all buffers */
   while (g_list_length (buffers) < 3) {
     g_cond_wait (check_cond, check_mutex);
@@ -261,11 +287,15 @@
   fail_unless (overrun_count == 1);
   /* make sure we get the underrun signal before we check underrun_count */
   UNDERRUN_LOCK ();
-  while (underrun_count < 1) {
+  while (underrun_count < 2) {
     UNDERRUN_WAIT ();
   }
+  /* we can't check the underrun_count here safely because when adding the 3rd
+   * buffer, the queue lock is released to emit the overrun signal and the
+   * downstream part can then push and empty the queue and signal an additional
+   * underrun */
+  /* fail_unless_equals_int (underrun_count, 2); */
   UNDERRUN_UNLOCK ();
-  fail_unless (underrun_count == 1);
 
   buffer = g_list_nth (buffers, 0)->data;
   fail_unless (buffer == buffer1);
@@ -273,9 +303,6 @@
   buffer = g_list_nth (buffers, 1)->data;
   fail_unless (buffer == buffer2);
 
-  buffer = g_list_nth (buffers, 2)->data;
-  fail_unless (buffer == buffer3);
-
   GST_DEBUG ("stopping");
   fail_unless (gst_element_set_state (queue,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
@@ -302,11 +329,19 @@
 
   GST_DEBUG ("starting");
 
+  block_src ();
+
+  UNDERRUN_LOCK ();
   fail_unless (gst_element_set_state (queue,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  UNDERRUN_WAIT ();
+  UNDERRUN_UNLOCK ();
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer1 = gst_buffer_new_and_alloc (4);
   /* pushing gives away my reference */
@@ -314,33 +349,34 @@
 
   GST_DEBUG ("added 1st");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer2 = gst_buffer_new_and_alloc (4);
   gst_pad_push (mysrcpad, buffer2);
 
   GST_DEBUG ("added 2nd");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer3 = gst_buffer_new_and_alloc (4);
-  /* buffer3 will be leaked, keep a ref so refcount can be checked below */
+  /* buffer4 will be leaked, keep a ref so refcount can be checked below */
   gst_buffer_ref (buffer3);
   gst_pad_push (mysrcpad, buffer3);
 
-  GST_DEBUG ("added 3rd");
+  GST_DEBUG ("added 3nd");
   /* it still triggers overrun when leaking */
   fail_unless (overrun_count == 1);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   /* wait for underrun and check that we got buffer1 and buffer2 only */
   UNDERRUN_LOCK ();
   mysinkpad = setup_sink_pad (queue, &sinktemplate);
+  unblock_src ();
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
   fail_unless (overrun_count == 1);
-  fail_unless (underrun_count == 1);
+  fail_unless (underrun_count == 2);
 
   fail_unless (g_list_length (buffers) == 2);
 
@@ -379,28 +415,36 @@
 
   GST_DEBUG ("starting");
 
+  block_src ();
+
+  UNDERRUN_LOCK ();
   fail_unless (gst_element_set_state (queue,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  UNDERRUN_WAIT ();
+  UNDERRUN_UNLOCK ();
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer1 = gst_buffer_new_and_alloc (4);
+  /* pushing gives away one reference */
   /* buffer1 will be leaked, keep a ref so refcount can be checked below */
   gst_buffer_ref (buffer1);
-  /* pushing gives away one reference */
   gst_pad_push (mysrcpad, buffer1);
 
   GST_DEBUG ("added 1st");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer2 = gst_buffer_new_and_alloc (4);
   gst_pad_push (mysrcpad, buffer2);
 
   GST_DEBUG ("added 2nd");
   fail_unless (overrun_count == 0);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   buffer3 = gst_buffer_new_and_alloc (4);
   gst_pad_push (mysrcpad, buffer3);
@@ -408,16 +452,17 @@
   GST_DEBUG ("added 3rd");
   /* it still triggers overrun when leaking */
   fail_unless (overrun_count == 1);
-  fail_unless (underrun_count == 0);
+  fail_unless (underrun_count == 1);
 
   /* wait for underrun and check that we got buffer1 and buffer2 only */
   UNDERRUN_LOCK ();
   mysinkpad = setup_sink_pad (queue, &sinktemplate);
+  unblock_src ();
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
   fail_unless (overrun_count == 1);
-  fail_unless (underrun_count == 1);
+  fail_unless (underrun_count == 2);
 
   fail_unless (g_list_length (buffers) == 2);
 
@@ -453,9 +498,16 @@
 
   GST_DEBUG ("starting");
 
+  block_src ();
+
+  UNDERRUN_LOCK ();
   fail_unless (gst_element_set_state (queue,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  UNDERRUN_WAIT ();
+  UNDERRUN_UNLOCK ();
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
 
   /* push buffer without duration */
   buffer = gst_buffer_new_and_alloc (4);
@@ -545,9 +597,16 @@
 
   GST_DEBUG ("starting");
 
+  block_src ();
+
+  UNDERRUN_LOCK ();
   fail_unless (gst_element_set_state (queue,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  UNDERRUN_WAIT ();
+  UNDERRUN_UNLOCK ();
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
 
   gst_segment_init (&segment, GST_FORMAT_TIME);
   segment.start = 1 * GST_SECOND;
@@ -569,6 +628,8 @@
   GST_DEBUG ("time now %" GST_TIME_FORMAT, GST_TIME_ARGS (time));
   fail_if (time != 4 * GST_SECOND);
 
+  unblock_src ();
+
   GST_DEBUG ("stopping");
   fail_unless (gst_element_set_state (queue,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
diff --git a/tests/check/elements/queue2.c b/tests/check/elements/queue2.c
index f74b3ea..598cfef 100644
--- a/tests/check/elements/queue2.c
+++ b/tests/check/elements/queue2.c
@@ -207,6 +207,61 @@
 
 GST_END_TEST;
 
+static gpointer
+push_buffer (GstPad * sinkpad)
+{
+  GstBuffer *buffer;
+
+  buffer = gst_buffer_new_and_alloc (1 * 1024);
+
+  gst_pad_chain (sinkpad, buffer);
+
+  return NULL;
+}
+
+GST_START_TEST (test_filled_read)
+{
+  GstElement *queue2;
+  GstBuffer *buffer;
+  GstPad *sinkpad, *srcpad;
+  GThread *thread;
+
+  queue2 = gst_element_factory_make ("queue2", NULL);
+  sinkpad = gst_element_get_static_pad (queue2, "sink");
+  srcpad = gst_element_get_static_pad (queue2, "src");
+
+  g_object_set (queue2, "ring-buffer-max-size", (guint64) 5 * 1024,
+      "use-buffering", FALSE,
+      "max-size-buffers", (guint) 0, "max-size-time", (guint64) 0,
+      "max-size-bytes", (guint) 4 * 1024, NULL);
+
+  gst_pad_activate_mode (srcpad, GST_PAD_MODE_PULL, TRUE);
+  gst_element_set_state (queue2, GST_STATE_PLAYING);
+
+  /* fill up the buffer */
+  buffer = gst_buffer_new_and_alloc (4 * 1024);
+  fail_unless (gst_pad_chain (sinkpad, buffer) == GST_FLOW_OK);
+
+  thread = g_thread_create ((GThreadFunc) push_buffer, sinkpad, TRUE, NULL);
+
+  buffer = NULL;
+  fail_unless (gst_pad_get_range (srcpad, 1024, 4 * 1024,
+          &buffer) == GST_FLOW_OK);
+
+  fail_unless (gst_buffer_get_size (buffer) == 4 * 1024);
+
+  gst_element_set_state (queue2, GST_STATE_NULL);
+
+  g_thread_join (thread);
+
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
+  gst_object_unref (queue2);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 queue2_suite (void)
 {
@@ -219,6 +274,7 @@
   tcase_add_test (tc_chain, test_simple_pipeline_ringbuffer);
   tcase_add_test (tc_chain, test_simple_shutdown_while_running);
   tcase_add_test (tc_chain, test_simple_shutdown_while_running_ringbuffer);
+  tcase_add_test (tc_chain, test_filled_read);
   return s;
 }
 
diff --git a/tests/check/elements/selector.c b/tests/check/elements/selector.c
index b4fee5d..09c54b4 100644
--- a/tests/check/elements/selector.c
+++ b/tests/check/elements/selector.c
@@ -34,12 +34,12 @@
     GST_STATIC_CAPS_ANY);
 
 /* Data probe cb to drop everything but count buffers and events */
-static GstProbeReturn
-probe_cb (GstPad * pad, GstProbeType type, GstMiniObject * obj,
-    gpointer user_data)
+static GstPadProbeReturn
+probe_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   gint count = 0;
   const gchar *count_type = NULL;
+  GstMiniObject *obj = GST_PAD_PROBE_INFO_DATA (info);
 
   GST_LOG_OBJECT (pad, "got data");
 
@@ -57,7 +57,7 @@
   g_object_set_data (G_OBJECT (pad), count_type, GINT_TO_POINTER (count));
 
   /* drop everything */
-  return GST_PROBE_DROP;
+  return GST_PAD_PROBE_DROP;
 }
 
 /* Create and link output pad: selector:src%d ! output_pad */
@@ -76,13 +76,13 @@
 
   /* add probe */
   probe_id =
-      gst_pad_add_probe (output_pad, GST_PROBE_TYPE_DATA,
+      gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_DATA_BOTH,
       (GstPadProbeCallback) probe_cb, NULL, NULL);
   g_object_set_data (G_OBJECT (output_pad), "probe_id",
       GINT_TO_POINTER (probe_id));
 
   /* request src pad */
-  srcpad = gst_element_get_request_pad (element, "src%d");
+  srcpad = gst_element_get_request_pad (element, "src_%u");
   fail_if (srcpad == NULL, "Could not get source pad from %s",
       GST_ELEMENT_NAME (element));
 
@@ -198,6 +198,29 @@
   g_free (padname);
 }
 
+static void
+push_newsegment_events (GList * input_pads)
+{
+  GstSegment seg;
+  GList *l;
+
+  seg.flags = GST_SEGMENT_FLAG_NONE;
+  seg.rate = seg.applied_rate = 1.0;
+  seg.format = GST_FORMAT_BYTES;
+  seg.base = 0;
+  seg.start = 0;
+  seg.stop = -1;
+  seg.time = 0;
+  seg.position = 0;
+  seg.duration = -1;
+
+  for (l = input_pads; l; l = l->next) {
+    GstPad *pad = l->data;
+
+    gst_pad_push_event (pad, gst_event_new_segment (&seg));
+  }
+}
+
 /* Push buffers and switch for each selector pad */
 static void
 push_switched_buffers (GList * input_pads,
@@ -241,7 +264,7 @@
   gint i = 0;
   GList *output_pads = NULL, *input_pads = NULL;
   GstElement *sel = gst_check_setup_element ("output-selector");
-  GstPad *input_pad = gst_check_setup_src_pad (sel, &srctemplate, NULL);
+  GstPad *input_pad = gst_check_setup_src_pad (sel, &srctemplate);
 
   input_pads = g_list_append (input_pads, input_pad);
   gst_pad_set_active (input_pad, TRUE);
@@ -253,6 +276,7 @@
   fail_unless (gst_element_set_state (sel,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  push_newsegment_events (input_pads);
   push_switched_buffers (input_pads, sel, output_pads, num_buffers_per_output);
   count_output_buffers (output_pads, num_buffers_per_output);
   fail_unless (gst_element_set_state (sel,
@@ -278,7 +302,7 @@
   fail_if (input_pad == NULL, "Could not create a input_pad");
 
   /* request sink pad */
-  sinkpad = gst_element_get_request_pad (element, "sink%d");
+  sinkpad = gst_element_get_request_pad (element, "sink_%u");
   fail_if (sinkpad == NULL, "Could not get sink pad from %s",
       GST_ELEMENT_NAME (element));
 
@@ -308,7 +332,7 @@
   gint i = 0, probe_id = 0;
   GList *input_pads = NULL, *output_pads = NULL;
   GstElement *sel = gst_check_setup_element ("input-selector");
-  GstPad *output_pad = gst_check_setup_sink_pad (sel, &sinktemplate, NULL);
+  GstPad *output_pad = gst_check_setup_sink_pad (sel, &sinktemplate);
 
   output_pads = g_list_append (output_pads, output_pad);
   gst_pad_set_active (output_pad, TRUE);
@@ -317,7 +341,7 @@
   }
   /* add probe */
   probe_id =
-      gst_pad_add_probe (output_pad, GST_PROBE_TYPE_DATA,
+      gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_DATA_BOTH,
       (GstPadProbeCallback) probe_cb, NULL, NULL);
   g_object_set_data (G_OBJECT (output_pad), "probe_id",
       GINT_TO_POINTER (probe_id));
@@ -326,6 +350,7 @@
   fail_unless (gst_element_set_state (sel,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
       "could not set to playing");
+  push_newsegment_events (input_pads);
   push_switched_buffers (input_pads, sel, input_pads, num_buffers_per_input);
   count_output_buffers (output_pads, (num_input_pads * num_buffers_per_input));
   fail_unless (gst_element_set_state (sel,
@@ -397,12 +422,12 @@
      * setcaps should accept any caps when there are no srcpads */
     g_object_set (sel, "pad-negotiation-mode", i, NULL);
 
-    caps = gst_pad_get_caps (pad, NULL);
+    caps = gst_pad_query_caps (pad, NULL);
     fail_unless (gst_caps_is_any (caps));
 
     gst_caps_unref (caps);
 
-    caps = gst_caps_new_simple ("mymedia/mycaps", NULL);
+    caps = gst_caps_new_empty_simple ("mymedia/mycaps");
     fail_unless (gst_pad_set_caps (pad, caps));
     gst_caps_unref (caps);
   }
@@ -434,7 +459,7 @@
 setup_output_selector (void)
 {
   sel = gst_check_setup_element ("output-selector");
-  input_pad = gst_check_setup_src_pad (sel, &srctemplate, NULL);
+  input_pad = gst_check_setup_src_pad (sel, &srctemplate);
   gst_pad_set_active (input_pad, TRUE);
 
   output_pads = g_list_append (output_pads, setup_output_pad (sel,
@@ -474,7 +499,7 @@
 
     g_object_set (sel, "active-pad", pad, NULL);
 
-    caps = gst_pad_peer_get_caps (input_pad, NULL);
+    caps = gst_pad_peer_query_caps (input_pad, NULL);
 
     /* in 'none' mode, the getcaps returns the template, which is ANY */
     g_assert (gst_caps_is_any (caps));
@@ -504,7 +529,7 @@
 
   /* in 'all' mode, the intersection of the srcpad caps should be returned on
    * the sinkpad's getcaps */
-  expected = gst_caps_new_simple ("format/abc", NULL);
+  expected = gst_caps_new_empty_simple ("format/abc");
 
   for (walker = output_pads; walker; walker = g_list_next (walker)) {
     GstCaps *caps;
@@ -514,7 +539,7 @@
 
     g_object_set (sel, "active-pad", pad, NULL);
 
-    caps = gst_pad_peer_get_caps (input_pad, NULL);
+    caps = gst_pad_peer_query_caps (input_pad, NULL);
 
     g_assert (gst_caps_is_equal (caps, expected));
     gst_caps_unref (caps);
@@ -545,6 +570,7 @@
   for (walker = output_pads; walker; walker = g_list_next (walker)) {
     GstCaps *caps;
     GstPad *pad;
+    GstPadTemplate *templ;
 
     pad = gst_pad_get_peer ((GstPad *) walker->data);
 
@@ -553,13 +579,14 @@
     /* in 'active' mode, the active srcpad peer's caps should be returned on
      * the sinkpad's getcaps */
 
-    expected = gst_pad_template_get_caps (gst_pad_get_pad_template ((GstPad *)
-            walker->data));
-    caps = gst_pad_peer_get_caps (input_pad, NULL);
+    templ = gst_pad_get_pad_template ((GstPad *) walker->data);
+    expected = gst_pad_template_get_caps (templ);
+    caps = gst_pad_peer_query_caps (input_pad, NULL);
 
     g_assert (gst_caps_is_equal (caps, expected));
     gst_caps_unref (caps);
     gst_caps_unref (expected);
+    gst_object_unref (templ);
     gst_object_unref (pad);
   }
 
diff --git a/tests/check/elements/tee.c b/tests/check/elements/tee.c
index dc0847f..3f68056 100644
--- a/tests/check/elements/tee.c
+++ b/tests/check/elements/tee.c
@@ -78,7 +78,7 @@
     g_object_set (sinks[i], "signal-handoffs", TRUE, NULL);
     g_signal_connect (sinks[i], "handoff", (GCallback) handoff, &counts[i]);
 
-    req_pads[i] = gst_element_get_request_pad (tee, "src%d");
+    req_pads[i] = gst_element_get_request_pad (tee, "src_%u");
     fail_unless (req_pads[i] != NULL);
 
     qpad = gst_element_get_static_pad (queues[i], "sink");
@@ -123,7 +123,7 @@
 
   /* Pump 1000 buffers (10 bytes each) per second through tee for 5 secs */
   desc = "fakesrc datarate=10000 sizemin=10 sizemax=10 num-buffers=5000 ! "
-      "video/x-raw-rgb,framerate=25/1 ! tee name=t ! "
+      "video/x-raw,framerate=25/1 ! tee name=t ! "
       "queue max-size-buffers=2 ! fakesink sync=true";
 
   pipeline = gst_parse_launch (desc, NULL);
@@ -144,7 +144,7 @@
   for (i = 0; i < 50000; i++) {
     GstPad *pad;
 
-    pad = gst_element_get_request_pad (tee, "src%d");
+    pad = gst_element_get_request_pad (tee, "src_%u");
     gst_element_release_request_pad (tee, pad);
     gst_object_unref (pad);
 
@@ -183,6 +183,8 @@
 static void
 buffer_alloc_harness_setup (BufferAllocHarness * h, gint countdown)
 {
+  h->app_thread = NULL;
+
   h->tee = gst_check_setup_element ("tee");
   fail_if (h->tee == NULL);
 
@@ -191,7 +193,7 @@
   fail_unless_equals_int (gst_element_set_state (h->tee, GST_STATE_PLAYING),
       TRUE);
 
-  h->caps = gst_caps_new_simple ("video/x-raw-yuv", NULL);
+  h->caps = gst_caps_new_empty_simple ("video/x-raw");
 
   h->start_srcpad = gst_pad_new ("src", GST_PAD_SRC);
   fail_if (h->start_srcpad == NULL);
@@ -201,7 +203,7 @@
   h->tee_sinkpad = gst_element_get_static_pad (h->tee, "sink");
   fail_if (h->tee_sinkpad == NULL);
 
-  h->tee_srcpad = gst_element_get_request_pad (h->tee, "src%d");
+  h->tee_srcpad = gst_element_get_request_pad (h->tee, "src_%u");
   fail_if (h->tee_srcpad == NULL);
 
   h->final_sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
@@ -353,7 +355,7 @@
   fail_unless (res == GST_ITERATOR_DONE);
   fail_unless (g_value_get_object (&val1) == NULL);
 
-  srcpad1 = gst_element_get_request_pad (tee, "src%d");
+  srcpad1 = gst_element_get_request_pad (tee, "src_%u");
   fail_unless (srcpad1 != NULL);
 
   /* iterator should resync */
@@ -373,7 +375,7 @@
   fail_unless (res == GST_ITERATOR_DONE);
   fail_unless (g_value_get_object (&val1) == NULL);
 
-  srcpad2 = gst_element_get_request_pad (tee, "src%d");
+  srcpad2 = gst_element_get_request_pad (tee, "src_%u");
   fail_unless (srcpad2 != NULL);
 
   /* iterator should resync */
@@ -439,14 +441,14 @@
 GST_END_TEST;
 
 static GstFlowReturn
-_fake_chain (GstPad * pad, GstBuffer * buffer)
+_fake_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   gst_buffer_unref (buffer);
   return GST_FLOW_OK;
 }
 
 static GstFlowReturn
-_fake_chain_error (GstPad * pad, GstBuffer * buffer)
+_fake_chain_error (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   gst_buffer_unref (buffer);
   return GST_FLOW_ERROR;
@@ -460,15 +462,15 @@
   GstBuffer *buffer;
   GstCaps *caps;
 
-  caps = gst_caps_new_simple ("test/test", NULL);
+  caps = gst_caps_new_empty_simple ("test/test");
 
   tee = gst_element_factory_make ("tee", NULL);
   fail_unless (tee != NULL);
   teesink = gst_element_get_static_pad (tee, "sink");
   fail_unless (teesink != NULL);
-  teesrc1 = gst_element_get_request_pad (tee, "src%d");
+  teesrc1 = gst_element_get_request_pad (tee, "src_%u");
   fail_unless (teesrc1 != NULL);
-  teesrc2 = gst_element_get_request_pad (tee, "src%d");
+  teesrc2 = gst_element_get_request_pad (tee, "src_%u");
   fail_unless (teesrc2 != NULL);
 
   GST_DEBUG ("Creating mysink1");
@@ -509,19 +511,19 @@
   GST_DEBUG ("Trying to push with mysink2 disabled");
   gst_pad_set_active (mysink2, FALSE);
   fail_unless (gst_pad_push (mysrc,
-          gst_buffer_ref (buffer)) == GST_FLOW_WRONG_STATE);
+          gst_buffer_ref (buffer)) == GST_FLOW_FLUSHING);
 
   GST_DEBUG ("Trying to push with mysink2 disabled");
   gst_pad_set_active (mysink1, FALSE);
   gst_pad_set_active (mysink2, TRUE);
   gst_pad_set_caps (mysink2, caps);
   fail_unless (gst_pad_push (mysrc,
-          gst_buffer_ref (buffer)) == GST_FLOW_WRONG_STATE);
+          gst_buffer_ref (buffer)) == GST_FLOW_FLUSHING);
 
   GST_DEBUG ("Trying to push with mysink2 and mysink1 disabled");
   gst_pad_set_active (mysink2, FALSE);
   fail_unless (gst_pad_push (mysrc,
-          gst_buffer_ref (buffer)) == GST_FLOW_WRONG_STATE);
+          gst_buffer_ref (buffer)) == GST_FLOW_FLUSHING);
 
   /* Test if everything still works in normal state */
   GST_DEBUG ("Reactivate both pads and try pushing");
diff --git a/tests/check/elements/valve.c b/tests/check/elements/valve.c
index 24976fe..932687c 100644
--- a/tests/check/elements/valve.c
+++ b/tests/check/elements/valve.c
@@ -29,18 +29,18 @@
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int"));
+    GST_STATIC_CAPS ("audio/x-raw"));
 
 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int"));
+    GST_STATIC_CAPS ("audio/x-raw"));
 
 gboolean event_received = FALSE;
 gboolean buffer_allocated = FALSE;
 
 static gboolean
-event_func (GstPad * pad, GstEvent * event)
+event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
   event_received = TRUE;
   gst_event_unref (event);
@@ -70,7 +70,7 @@
   fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
   fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
   fail_unless (g_list_length (buffers) == 2);
-  caps = gst_pad_get_caps (src, NULL);
+  caps = gst_pad_query_caps (src, NULL);
   templ_caps = gst_pad_get_pad_template_caps (src);
   fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
   gst_caps_unref (templ_caps);
@@ -85,7 +85,7 @@
   fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
   fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
   fail_unless (buffers == NULL);
-  caps = gst_pad_get_caps (src, NULL);
+  caps = gst_pad_query_caps (src, NULL);
   templ_caps = gst_pad_get_pad_template_caps (src);
   fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
   gst_caps_unref (templ_caps);
diff --git a/tests/check/generic/sinks.c b/tests/check/generic/sinks.c
index c647441..84aafac 100644
--- a/tests/check/generic/sinks.c
+++ b/tests/check/generic/sinks.c
@@ -763,16 +763,15 @@
 static GMutex *blocked_lock;
 static GCond *blocked_cond;
 
-static GstProbeReturn
-pad_blocked_cb (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   g_mutex_lock (blocked_lock);
-  GST_DEBUG ("srcpad blocked: %d, sending signal", type);
+  GST_DEBUG ("srcpad blocked: %d, sending signal", info->type);
   g_cond_signal (blocked_cond);
   g_mutex_unlock (blocked_lock);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_add_live2)
@@ -803,8 +802,8 @@
   GST_DEBUG ("blocking srcpad");
   /* block source pad */
   srcpad = gst_element_get_static_pad (src, "src");
-  id = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_BLOCK, pad_blocked_cb, NULL,
-      NULL);
+  id = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+      pad_blocked_cb, NULL, NULL);
 
   /* set source to PAUSED without adding it to the pipeline */
   ret = gst_element_set_state (src, GST_STATE_PAUSED);
@@ -1053,7 +1052,7 @@
   GstEvent *event;
   GstStateChangeReturn ret;
   GstPad *sinkpad;
-  GstFlowReturn res;
+  gboolean res;
   GstBus *bus;
   GThread *thread;
   gint64 position;
@@ -1084,6 +1083,7 @@
 
   event = gst_event_new_segment (&segment);
   res = gst_pad_send_event (sinkpad, event);
+  fail_unless (res == TRUE);
 
   /* We have not yet received any buffers so we are still in the READY state,
    * the position is therefore still not queryable. */
@@ -1191,6 +1191,7 @@
   segment.time = 10 * GST_SECOND;
   event = gst_event_new_segment (&segment);
   res = gst_pad_send_event (sinkpad, event);
+  fail_unless (res == TRUE);
 
   /* We have not yet received any buffers so we are still in the READY state,
    * the position is therefore still not queryable. */
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 4db8a1b..3c2ad7f 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -45,7 +45,7 @@
     ignorelist = g_strsplit (STATE_IGNORE_ELEMENTS, " ", 0);
   }
 
-  plugins = gst_registry_get_plugin_list (gst_registry_get_default ());
+  plugins = gst_registry_get_plugin_list (gst_registry_get ());
 
   for (p = plugins; p; p = p->next) {
     GstPlugin *plugin = p->data;
@@ -54,17 +54,19 @@
       continue;
 
     features =
-        gst_registry_get_feature_list_by_plugin (gst_registry_get_default (),
+        gst_registry_get_feature_list_by_plugin (gst_registry_get (),
         gst_plugin_get_name (plugin));
 
     for (f = features; f; f = f->next) {
       GstPluginFeature *feature = f->data;
-      const gchar *name = gst_plugin_feature_get_name (feature);
+      const gchar *name;
       gboolean ignore = FALSE;
 
       if (!GST_IS_ELEMENT_FACTORY (feature))
         continue;
 
+      name = GST_OBJECT_NAME (feature);
+
       if (ignorelist) {
         gchar **s;
 
@@ -79,7 +81,7 @@
       }
 
       GST_DEBUG ("adding element %s", name);
-      elements = g_list_prepend (elements, (gpointer) g_strdup (name));
+      elements = g_list_prepend (elements, g_strdup (name));
     }
     gst_plugin_feature_list_free (features);
   }
diff --git a/tests/check/gst/capslist.h b/tests/check/gst/capslist.h
index ea468b3..20c1409 100644
--- a/tests/check/gst/capslist.h
+++ b/tests/check/gst/capslist.h
@@ -6,15 +6,15 @@
 
 static const gchar *caps_list[] = {
   "audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)quicktime; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)wav; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)westwood; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)smjpeg; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)microsoft; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)4xm; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)xa; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)adx; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)ea; audio/x-adpcm, layout=(string)g726; audio/x-adpcm, layout=(string)g726",
-  "video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)I420; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)YUY2; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, endianness=(int)4321; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)24, depth=(int)24, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)Y42B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)32, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, endianness=(int)4321; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)YUV9; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)Y41B; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, endianness=(int)1234; video/x-raw-rgb, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], bpp=(int)16, depth=(int)15, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, endianness=(int)1234",
+  "video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)I420; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)YUY2; video/x-raw, format=(string)RGB, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw, format=(string)BGR, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)Y42B; video/x-raw, format=(string)BGRx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)YUV9; video/x-raw, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ], format=(string)Y41B; video/x-raw, format=(string)RGB16 ,width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw, format=(string)RGB15, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
   "video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-jpeg, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-divx, divxversion=(int)[ 3, 5 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-xvid, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-3ivx, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-msmpeg, msmpegversion=(int)[ 41, 43 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/mpeg, mpegversion=(int)1, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-h263, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-dv, systemstream=(boolean)false, width=(int)720, height=(int){ 576, 480 }; video/x-huffyuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]",
   "video/x-raw, format=(string){ YUY2, I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], divxversion=(int)[ 3, 5 ]; video/x-xvid, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-3ivx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], mpegversion=(int)1, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]",
-  "video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
-  "video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
+  "video/x-raw, format=(string)BGRx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]; video/x-raw, format=(string)RGBx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
+  "video/x-raw, format=(string)BGRx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
   "video/x-raw, format=(string){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(double)[ 0, 1.7976931348623157e+308 ]",
-  "video/x-raw-rgb, bpp = (int) 32, depth = (int) 24, endianness = (int) BIG_ENDIAN, red_mask = (int) 0x000000FF, framerate = (double) [ 0, max ]",
-  "video/x-raw-rgb, bpp = (int) 32, depth = (int) 24, endianness = (int) BIG_ENDIAN, red_mask = (int) 0xFF000000, framerate = (double) [ 0, max ]",
-  "video/x-raw-rgb,\\ bpp=(int)32",
+  "video/x-raw, format=(string) xBGR, framerate = (double) [ 0, max ]",
+  "video/x-raw, format=(string) RGBx, framerate = (double) [ 0, max ]",
+  "video/x-raw,\\ format=(string) { RGBA, RGBx, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR }",
   /* Test fraction type */
   "test/gst-fraction, fraction = (fraction) 1/8",
   "test/gst-fraction, fraction = (fraction) MIN",
diff --git a/tests/check/gst/gstatomicqueue.c b/tests/check/gst/gstatomicqueue.c
new file mode 100644
index 0000000..89801b8
--- /dev/null
+++ b/tests/check/gst/gstatomicqueue.c
@@ -0,0 +1,46 @@
+/* GStreamer
+ * Copyright (C) <2011> Tim-Philipp Müller <tim centricular net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/gstatomicqueue.h>
+#include <gst/gst.h>
+
+GST_START_TEST (test_create_free)
+{
+  GstAtomicQueue *aq;
+
+  aq = gst_atomic_queue_new (20);
+  gst_atomic_queue_unref (aq);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_atomic_queue_suite (void)
+{
+  Suite *s = suite_create ("GstAtomicQueue");
+  TCase *tc_chain = tcase_create ("GstAtomicQueue tests");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_create_free);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_atomic_queue);
diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
index 598e595..b028958 100644
--- a/tests/check/gst/gstbin.c
+++ b/tests/check/gst/gstbin.c
@@ -711,7 +711,7 @@
   fail_unless (gst_element_link (identity, sink) == TRUE);
 
   /* this is not very nice but should work just fine in this case. */
-  GST_OBJECT_FLAG_UNSET (sink, GST_ELEMENT_IS_SINK);    /* <======== */
+  GST_OBJECT_FLAG_UNSET (sink, GST_ELEMENT_FLAG_SINK);  /* <======== */
 
   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   fail_if (ret != GST_STATE_CHANGE_ASYNC, "State change to PLAYING not ASYNC");
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c
index 1ac9688..1344e13 100644
--- a/tests/check/gst/gstbuffer.c
+++ b/tests/check/gst/gstbuffer.c
@@ -35,19 +35,18 @@
 GST_START_TEST (test_subbuffer)
 {
   GstBuffer *buffer, *sub;
-  gsize size, maxsize, ssize;
-  guint8 *data, *sdata;
+  GstMapInfo info, sinfo;
 
   buffer = gst_buffer_new_and_alloc (4);
 
   /* check sizes, buffer starts out empty */
-  data = gst_buffer_map (buffer, &size, &maxsize, GST_MAP_WRITE);
-  fail_unless (size == 4, "buffer has wrong size");
-  fail_unless (maxsize >= 4, "buffer has wrong size");
-  memset (data, 0, 4);
-  gst_buffer_unmap (buffer, data, 4);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+  fail_unless (info.size == 4, "buffer has wrong size");
+  fail_unless (info.maxsize >= 4, "buffer has wrong size");
+  memset (info.data, 0, 4);
+  gst_buffer_unmap (buffer, &info);
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
   /* set some metadata */
   GST_BUFFER_TIMESTAMP (buffer) = 1;
   GST_BUFFER_DURATION (buffer) = 2;
@@ -57,9 +56,9 @@
   sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 2);
   fail_if (sub == NULL, "copy region of buffer returned NULL");
 
-  sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
-  fail_unless (ssize == 2, "subbuffer has wrong size");
-  fail_unless (memcmp (data + 1, sdata, 2) == 0,
+  fail_unless (gst_buffer_map (sub, &sinfo, GST_MAP_READ));
+  fail_unless (sinfo.size == 2, "subbuffer has wrong size");
+  fail_unless (memcmp (info.data + 1, sinfo.data, 2) == 0,
       "subbuffer contains the wrong data");
   ASSERT_BUFFER_REFCOUNT (sub, "subbuffer", 1);
   fail_unless (GST_BUFFER_TIMESTAMP (sub) == -1,
@@ -68,18 +67,18 @@
   fail_unless (GST_BUFFER_OFFSET (sub) == -1, "subbuffer has wrong offset");
   fail_unless (GST_BUFFER_OFFSET_END (sub) == -1,
       "subbuffer has wrong offset end");
-  gst_buffer_unmap (sub, sdata, ssize);
+  gst_buffer_unmap (sub, &sinfo);
   gst_buffer_unref (sub);
 
   /* create a subbuffer of size 0 */
   sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 1, 0);
   fail_if (sub == NULL, "copy_region of buffer returned NULL");
-  sdata = gst_buffer_map (sub, &ssize, NULL, GST_MAP_READ);
-  fail_unless (ssize == 0, "subbuffer has wrong size");
-  fail_unless (memcmp (data + 1, sdata, 0) == 0,
+  fail_unless (gst_buffer_map (sub, &sinfo, GST_MAP_READ));
+  fail_unless (sinfo.size == 0, "subbuffer has wrong size");
+  fail_unless (memcmp (info.data + 1, sinfo.data, 0) == 0,
       "subbuffer contains the wrong data");
   ASSERT_BUFFER_REFCOUNT (sub, "subbuffer", 1);
-  gst_buffer_unmap (sub, sdata, ssize);
+  gst_buffer_unmap (sub, &sinfo);
   gst_buffer_unref (sub);
 
   /* test if metadata is coppied, not a complete buffer copy so only the
@@ -110,36 +109,7 @@
   /* clean up */
   gst_buffer_unref (sub);
 
-  gst_buffer_unmap (buffer, data, size);
-  gst_buffer_unref (buffer);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_is_span_fast)
-{
-  GstBuffer *buffer, *sub1, *sub2;
-
-  buffer = gst_buffer_new_and_alloc (4);
-
-  sub1 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 2);
-  fail_if (sub1 == NULL, "copy_region of buffer returned NULL");
-
-  sub2 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 2, 2);
-  fail_if (sub2 == NULL, "copy_region of buffer returned NULL");
-
-  fail_if (gst_buffer_is_span_fast (buffer, sub2) == TRUE,
-      "a parent buffer can't be span_fasted");
-
-  fail_if (gst_buffer_is_span_fast (sub1, buffer) == TRUE,
-      "a parent buffer can't be span_fasted");
-
-  fail_if (gst_buffer_is_span_fast (sub1, sub2) == FALSE,
-      "two subbuffers next to each other should be span_fast");
-
-  /* clean up */
-  gst_buffer_unref (sub1);
-  gst_buffer_unref (sub2);
+  gst_buffer_unmap (buffer, &info);
   gst_buffer_unref (buffer);
 }
 
@@ -148,19 +118,17 @@
 GST_START_TEST (test_span)
 {
   GstBuffer *buffer, *sub1, *sub2, *span;
-  guint8 *data;
-  gsize size;
+  GstMapInfo info;
 
   buffer = gst_buffer_new_and_alloc (4);
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_WRITE);
-  memcpy (data, "data", 4);
-  gst_buffer_unmap (buffer, data, 4);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+  memcpy (info.data, "data", 4);
+  gst_buffer_unmap (buffer, &info);
 
-  ASSERT_CRITICAL (gst_buffer_span (NULL, 1, NULL, 2));
-  ASSERT_CRITICAL (gst_buffer_span (buffer, 1, NULL, 2));
-  ASSERT_CRITICAL (gst_buffer_span (NULL, 1, buffer, 2));
-  ASSERT_CRITICAL (gst_buffer_span (buffer, 0, buffer, 10));
+  ASSERT_CRITICAL (gst_buffer_append (NULL, NULL));
+  ASSERT_CRITICAL (gst_buffer_append (buffer, NULL));
+  ASSERT_CRITICAL (gst_buffer_append (NULL, buffer));
 
   sub1 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 2);
   fail_if (sub1 == NULL, "copy_region of buffer returned NULL");
@@ -173,57 +141,34 @@
   ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
 
   /* span will create a new subbuffer from the parent */
-  span = gst_buffer_span (sub1, 0, sub2, 4);
-  data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
-  fail_unless (size == 4, "spanned buffer is wrong size");
+  gst_buffer_ref (sub1);
+  gst_buffer_ref (sub2);
+  span = gst_buffer_append (sub1, sub2);
+  fail_unless (gst_buffer_map (span, &info, GST_MAP_READ));
+  fail_unless (info.size == 4, "spanned buffer is wrong size");
   ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
   ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
   ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
   ASSERT_BUFFER_REFCOUNT (span, "span", 1);
-  fail_unless (memcmp (data, "data", 4) == 0,
+  fail_unless (memcmp (info.data, "data", 4) == 0,
       "spanned buffer contains the wrong data");
-  gst_buffer_unmap (span, data, size);
+  gst_buffer_unmap (span, &info);
   gst_buffer_unref (span);
   ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
 
   /* span from non-contiguous buffers will create new buffers */
-  span = gst_buffer_span (sub2, 0, sub1, 4);
-  data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
-  fail_unless (size == 4, "spanned buffer is wrong size");
+  gst_buffer_ref (sub1);
+  gst_buffer_ref (sub2);
+  span = gst_buffer_append (sub2, sub1);
+  fail_unless (gst_buffer_map (span, &info, GST_MAP_READ));
+  fail_unless (info.size == 4, "spanned buffer is wrong size");
   ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
   ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
   ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
   ASSERT_BUFFER_REFCOUNT (span, "span", 1);
-  fail_unless (memcmp (data, "tada", 4) == 0,
+  fail_unless (memcmp (info.data, "tada", 4) == 0,
       "spanned buffer contains the wrong data");
-  gst_buffer_unmap (span, data, size);
-  gst_buffer_unref (span);
-  ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-
-  /* span with different sizes */
-  span = gst_buffer_span (sub1, 1, sub2, 3);
-  data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
-  fail_unless (size == 3, "spanned buffer is wrong size");
-  ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-  ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
-  ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
-  ASSERT_BUFFER_REFCOUNT (span, "span", 1);
-  fail_unless (memcmp (data, "ata", 3) == 0,
-      "spanned buffer contains the wrong data");
-  gst_buffer_unmap (span, data, size);
-  gst_buffer_unref (span);
-  ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-
-  span = gst_buffer_span (sub2, 0, sub1, 3);
-  data = gst_buffer_map (span, &size, NULL, GST_MAP_READ);
-  fail_unless (size == 3, "spanned buffer is wrong size");
-  ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
-  ASSERT_BUFFER_REFCOUNT (sub1, "sub1", 1);
-  ASSERT_BUFFER_REFCOUNT (sub2, "sub2", 1);
-  ASSERT_BUFFER_REFCOUNT (span, "span", 1);
-  fail_unless (memcmp (data, "tad", 3) == 0,
-      "spanned buffer contains the wrong data");
-  gst_buffer_unmap (span, data, size);
+  gst_buffer_unmap (span, &info);
   gst_buffer_unref (span);
   ASSERT_BUFFER_REFCOUNT (buffer, "parent", 1);
 
@@ -246,10 +191,10 @@
   buf = gst_buffer_new ();
 
   /* assign some read-only data to the new buffer */
-  gst_buffer_take_memory (buf, -1,
+  gst_buffer_insert_memory (buf, -1,
       gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
-          (gpointer) ro_memory, NULL,
-          sizeof (ro_memory), 0, sizeof (ro_memory)));
+          (gpointer) ro_memory, sizeof (ro_memory),
+          0, sizeof (ro_memory), NULL, NULL));
 
   return buf;
 }
@@ -257,15 +202,14 @@
 GST_START_TEST (test_make_writable)
 {
   GstBuffer *buf, *buf2;
-  guint8 *data;
-  gsize size;
+  GstMapInfo info;
 
   /* create read-only buffer and make it writable */
   buf = create_read_only_buffer ();
 
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE);
-  data[4] = 'a';
-  gst_buffer_unmap (buf, data, size);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+  info.data[4] = 'a';
+  gst_buffer_unmap (buf, &info);
   gst_buffer_unref (buf);
 
   /* alloc'ed buffer with refcount 1 should be writable */
@@ -289,18 +233,17 @@
 GST_START_TEST (test_subbuffer_make_writable)
 {
   GstBuffer *buf, *sub_buf;
-  guint8 *data;
-  gsize size;
+  GstMapInfo info;
 
   /* create sub-buffer of read-only buffer and make it writable */
   buf = create_read_only_buffer ();
 
   sub_buf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, 0, 8);
 
-  data = gst_buffer_map (sub_buf, &size, NULL, GST_MAP_WRITE);
-  fail_if (data == NULL);
-  data[4] = 'a';
-  gst_buffer_unmap (sub_buf, data, size);
+  fail_unless (gst_buffer_map (sub_buf, &info, GST_MAP_WRITE));
+  fail_if (info.data == NULL);
+  info.data[4] = 'a';
+  gst_buffer_unmap (sub_buf, &info);
   gst_buffer_unref (sub_buf);
   gst_buffer_unref (buf);
 }
@@ -354,8 +297,7 @@
 GST_START_TEST (test_copy)
 {
   GstBuffer *buffer, *copy;
-  gsize size, ssize;
-  guint8 *data, *sdata;
+  GstMapInfo info, sinfo;
 
   buffer = gst_buffer_new_and_alloc (4);
   ASSERT_BUFFER_REFCOUNT (buffer, "buffer", 1);
@@ -366,30 +308,30 @@
   /* buffers are copied and must point to different memory */
   fail_if (buffer == copy);
 
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
-  sdata = gst_buffer_map (copy, &ssize, NULL, GST_MAP_READ);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  fail_unless (gst_buffer_map (copy, &sinfo, GST_MAP_READ));
 
   /* NOTE that data is refcounted */
-  fail_unless (size == ssize);
+  fail_unless (info.size == sinfo.size);
 
-  gst_buffer_unmap (copy, sdata, ssize);
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (copy, &sinfo);
+  gst_buffer_unmap (buffer, &info);
 
   gst_buffer_unref (copy);
   gst_buffer_unref (buffer);
 
   /* a 0-sized buffer has NULL data as per docs */
   buffer = gst_buffer_new_and_alloc (0);
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
-  fail_unless (data == NULL);
-  gst_buffer_unmap (buffer, data, size);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  fail_unless (info.data == NULL);
+  gst_buffer_unmap (buffer, &info);
 
   /* copying a 0-sized buffer should not crash and also set
    * the data member NULL. */
   copy = gst_buffer_copy (buffer);
-  data = gst_buffer_map (copy, &size, NULL, GST_MAP_READ);
-  fail_unless (data == NULL);
-  gst_buffer_unmap (copy, data, size);
+  fail_unless (gst_buffer_map (copy, &info, GST_MAP_READ));
+  fail_unless (info.data == NULL);
+  gst_buffer_unmap (copy, &info);
 
   gst_buffer_unref (copy);
   gst_buffer_unref (buffer);
@@ -400,27 +342,26 @@
 GST_START_TEST (test_try_new_and_alloc)
 {
   GstBuffer *buf;
-  gsize size;
-  guint8 *data;
+  GstMapInfo info;
 
   /* special case: alloc of 0 bytes results in new buffer with NULL data */
   buf = gst_buffer_new_and_alloc (0);
   fail_unless (buf != NULL);
   fail_unless (GST_IS_BUFFER (buf));
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-  fail_unless (data == NULL);
-  gst_buffer_unmap (buf, data, size);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
+  fail_unless (info.data == NULL);
+  gst_buffer_unmap (buf, &info);
   gst_buffer_unref (buf);
 
   /* normal alloc should still work */
   buf = gst_buffer_new_and_alloc (640 * 480 * 4);
   fail_unless (buf != NULL);
   fail_unless (GST_IS_BUFFER (buf));
-  data = gst_buffer_map (buf, &size, NULL, GST_MAP_WRITE);
-  fail_unless (data != NULL);
-  fail_unless (size == (640 * 480 * 4));
-  data[640 * 479 * 4 + 479] = 0xff;
-  gst_buffer_unmap (buf, data, size);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == (640 * 480 * 4));
+  info.data[640 * 479 * 4 + 479] = 0xff;
+  gst_buffer_unmap (buf, &info);
 
   gst_buffer_unref (buf);
 
@@ -449,15 +390,16 @@
   gsize size, maxsize, offset;
 
   /* one memory block */
-  buf = gst_buffer_new_allocate (NULL, 100, 0);
+  buf = gst_buffer_new_allocate (NULL, 100, NULL);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
   fail_unless (size == 100);
   fail_unless (offset == 0);
   fail_unless (maxalloc >= 100);
 
-  mem = gst_buffer_peek_memory (buf, 0, GST_MAP_WRITE);
+  mem = gst_buffer_get_memory (buf, 0);
   gst_memory_resize (mem, 10, 70);
+  gst_memory_unref (mem);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxsize);
   fail_unless (size == 70);
@@ -465,7 +407,7 @@
   fail_unless (maxsize == maxalloc);
 
   /* new memory */
-  mem = gst_allocator_alloc (NULL, 100, 0);
+  mem = gst_allocator_alloc (NULL, 100, NULL);
   size = gst_memory_get_sizes (mem, &offset, &maxalloc2);
   fail_unless (size == 100);
   fail_unless (offset == 0);
@@ -478,7 +420,7 @@
   fail_unless (maxsize == maxalloc2);
 
   /* append */
-  gst_buffer_take_memory (buf, -1, mem);
+  gst_buffer_insert_memory (buf, -1, mem);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
   fail_unless (size == 130);
@@ -488,10 +430,10 @@
   fail_unless (maxalloc == 80 + (maxalloc2 - 20));
 
   /* appending an empty block */
-  mem = gst_allocator_alloc (NULL, 100, 0);
+  mem = gst_allocator_alloc (NULL, 100, NULL);
   size = gst_memory_get_sizes (mem, &offset, &maxalloc3);
   gst_memory_resize (mem, 0, 0);
-  gst_buffer_take_memory (buf, -1, mem);
+  gst_buffer_insert_memory (buf, -1, mem);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
   fail_unless (size == 130);
@@ -501,10 +443,10 @@
   fail_unless (maxalloc == 80 + (maxalloc2 - 20) + maxalloc3);
 
   /* prepending an empty block */
-  mem = gst_allocator_alloc (NULL, 100, 0);
+  mem = gst_allocator_alloc (NULL, 100, NULL);
   size = gst_memory_get_sizes (mem, &offset, &maxalloc4);
   gst_memory_resize (mem, 0, 0);
-  gst_buffer_take_memory (buf, 0, mem);
+  gst_buffer_insert_memory (buf, 0, mem);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
   fail_unless (size == 130);
@@ -526,7 +468,7 @@
   gsize size, maxsize, offset;
 
   /* one memory block */
-  buf = gst_buffer_new_allocate (NULL, 100, 0);
+  buf = gst_buffer_new_allocate (NULL, 100, NULL);
 
   size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
   fail_unless (size == 100);
@@ -616,6 +558,135 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_map)
+{
+  GstBuffer *buf;
+  GstMapInfo map;
+  gsize maxalloc;
+  gsize size, offset;
+
+  buf = gst_buffer_new ();
+  gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
+  gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL));
+
+  size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxalloc >= 100);
+  fail_unless (gst_buffer_n_memory (buf) == 2);
+
+  /* make readonly */
+  gst_buffer_ref (buf);
+  /* map should merge */
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+  /* merged memory is not stored */
+  fail_unless (gst_buffer_n_memory (buf) == 2);
+  gst_buffer_unmap (buf, &map);
+
+  fail_unless (gst_buffer_n_memory (buf) == 2);
+
+  /* can't map write on readonly buffer */
+  ASSERT_CRITICAL (gst_buffer_map (buf, &map, GST_MAP_WRITE));
+  /* make writable again */
+  gst_buffer_unref (buf);
+
+  /* should merge and store */
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+  fail_unless (gst_buffer_n_memory (buf) == 1);
+  gst_buffer_unmap (buf, &map);
+
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  gst_buffer_unmap (buf, &map);
+
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_find)
+{
+  GstBuffer *buf;
+  gsize maxalloc;
+  gsize size, offset;
+  guint idx, length;
+
+  buf = gst_buffer_new ();
+  gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 0, NULL));
+  gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 10, NULL));
+  gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 15, NULL));
+  gst_buffer_append_memory (buf, gst_allocator_alloc (NULL, 0, NULL));
+
+  size = gst_buffer_get_sizes (buf, &offset, &maxalloc);
+  fail_unless (size == 25);
+  fail_unless (offset >= 0);
+  fail_unless (maxalloc >= 25);
+  fail_unless (gst_buffer_n_memory (buf) == 4);
+
+  fail_unless (gst_buffer_find_memory (buf, 0, 5, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 1);
+  fail_unless (offset == 0);
+
+  fail_unless (gst_buffer_find_memory (buf, 0, 10, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 1);
+  fail_unless (offset == 0);
+
+  fail_unless (gst_buffer_find_memory (buf, 5, 4, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 1);
+  fail_unless (offset == 5);
+
+  fail_unless (gst_buffer_find_memory (buf, 5, 5, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 1);
+  fail_unless (offset == 5);
+
+  fail_unless (gst_buffer_find_memory (buf, 5, 6, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 2);
+  fail_unless (offset == 5);
+
+  fail_unless (gst_buffer_find_memory (buf, 10, 6, &idx, &length, &offset));
+  fail_unless (idx == 2);
+  fail_unless (length == 1);
+  fail_unless (offset == 0);
+
+  fail_unless (gst_buffer_find_memory (buf, 10, 15, &idx, &length, &offset));
+  fail_unless (idx == 2);
+  fail_unless (length == 1);
+  fail_unless (offset == 0);
+
+  fail_unless (gst_buffer_find_memory (buf, 11, 14, &idx, &length, &offset));
+  fail_unless (idx == 2);
+  fail_unless (length == 1);
+  fail_unless (offset == 1);
+
+  fail_unless (gst_buffer_find_memory (buf, 0, 25, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 2);
+  fail_unless (offset == 0);
+
+  fail_unless (gst_buffer_find_memory (buf, 24, 0, &idx, &length, &offset));
+  fail_unless (idx == 2);
+  fail_unless (length == 1);
+  fail_unless (offset == 14);
+
+  fail_if (gst_buffer_find_memory (buf, 11, 15, &idx, &length, &offset));
+  fail_if (gst_buffer_find_memory (buf, 0, 26, &idx, &length, &offset));
+  fail_if (gst_buffer_find_memory (buf, 25, 0, &idx, &length, &offset));
+
+  fail_unless (gst_buffer_find_memory (buf, 1, -1, &idx, &length, &offset));
+  fail_unless (idx == 1);
+  fail_unless (length == 3);
+  fail_unless (offset == 1);
+
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 gst_buffer_suite (void)
 {
@@ -626,13 +697,14 @@
   tcase_add_test (tc_chain, test_subbuffer);
   tcase_add_test (tc_chain, test_subbuffer_make_writable);
   tcase_add_test (tc_chain, test_make_writable);
-  tcase_add_test (tc_chain, test_is_span_fast);
   tcase_add_test (tc_chain, test_span);
   tcase_add_test (tc_chain, test_metadata_writable);
   tcase_add_test (tc_chain, test_copy);
   tcase_add_test (tc_chain, test_try_new_and_alloc);
   tcase_add_test (tc_chain, test_size);
   tcase_add_test (tc_chain, test_resize);
+  tcase_add_test (tc_chain, test_map);
+  tcase_add_test (tc_chain, test_find);
 
   return s;
 }
diff --git a/tests/check/gst/gstbufferlist.c b/tests/check/gst/gstbufferlist.c
index 2e2fdcd..55ca748 100644
--- a/tests/check/gst/gstbufferlist.c
+++ b/tests/check/gst/gstbufferlist.c
@@ -34,7 +34,7 @@
 setup (void)
 {
   list = gst_buffer_list_new ();
-  caps = gst_caps_new_simple ("text/plain", NULL);
+  caps = gst_caps_new_empty_simple ("text/plain");
 }
 
 static void
@@ -85,7 +85,7 @@
   GstBuffer *buf2;
 
   /* buffer list is initially empty */
-  fail_unless (gst_buffer_list_len (list) == 0);
+  fail_unless (gst_buffer_list_length (list) == 0);
 
   ASSERT_CRITICAL (gst_buffer_list_insert (list, 0, NULL));
   ASSERT_CRITICAL (gst_buffer_list_insert (NULL, 0, NULL));
@@ -93,16 +93,16 @@
   buf1 = gst_buffer_new ();
 
   /* add a group of 2 buffers */
-  fail_unless (gst_buffer_list_len (list) == 0);
+  fail_unless (gst_buffer_list_length (list) == 0);
   ASSERT_CRITICAL (gst_buffer_list_insert (list, -1, NULL));
   ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 1);
   gst_buffer_list_add (list, buf1);
   ASSERT_BUFFER_REFCOUNT (buf1, "buf1", 1);     /* list takes ownership */
-  fail_unless (gst_buffer_list_len (list) == 1);
+  fail_unless (gst_buffer_list_length (list) == 1);
   buf2 = gst_buffer_new ();
   gst_buffer_list_add (list, buf2);
   ASSERT_BUFFER_REFCOUNT (buf2, "buf2", 1);
-  fail_unless (gst_buffer_list_len (list) == 2);
+  fail_unless (gst_buffer_list_length (list) == 2);
 }
 
 GST_END_TEST;
diff --git a/tests/check/gst/gstbus.c b/tests/check/gst/gstbus.c
index fecba75..7e8ce6d 100644
--- a/tests/check/gst/gstbus.c
+++ b/tests/check/gst/gstbus.c
@@ -617,7 +617,7 @@
   Suite *s = suite_create ("GstBus");
   TCase *tc_chain = tcase_create ("stresstest");
 
-  tcase_set_timeout (tc_chain, 20);
+  tcase_set_timeout (tc_chain, 60);
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_hammer_bus);
diff --git a/tests/check/gst/gstcaps.c b/tests/check/gst/gstcaps.c
index e5af97e..a0090a2 100644
--- a/tests/check/gst/gstcaps.c
+++ b/tests/check/gst/gstcaps.c
@@ -190,16 +190,14 @@
 GST_START_TEST (test_simplify)
 {
   GstStructure *s1;
-  gboolean did_simplify;
   GstCaps *caps;
 
   caps = gst_caps_from_string (non_simple_caps_string);
   fail_unless (caps != NULL,
       "gst_caps_from_string (non_simple_caps_string) failed");
 
-  did_simplify = gst_caps_do_simplify (caps);
-  fail_unless (did_simplify == TRUE,
-      "gst_caps_do_simplify() should have worked");
+  caps = gst_caps_simplify (caps);
+  fail_unless (caps != NULL, "gst_caps_simplify() should have worked");
 
   /* check simplified caps, should be:
    *
@@ -272,7 +270,7 @@
   fail_unless (caps != NULL,
       "gst_caps_from_string (non_simple_caps_string) failed");
   fail_unless_equals_int (gst_caps_get_size (caps), 4);
-  gst_caps_truncate (caps);
+  caps = gst_caps_truncate (caps);
   fail_unless_equals_int (gst_caps_get_size (caps), 1);
   gst_caps_unref (caps);
 }
@@ -325,7 +323,7 @@
   /* ANY + specific = ANY */
   c1 = gst_caps_from_string ("audio/x-raw,rate=44100");
   c2 = gst_caps_new_any ();
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 0, NULL);
   fail_unless (gst_caps_is_any (c2), NULL);
@@ -334,7 +332,7 @@
   /* specific + ANY = ANY */
   c2 = gst_caps_from_string ("audio/x-raw,rate=44100");
   c1 = gst_caps_new_any ();
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 0, NULL);
   fail_unless (gst_caps_is_any (c2), NULL);
@@ -343,7 +341,7 @@
   /* EMPTY + specific = specific */
   c1 = gst_caps_from_string ("audio/x-raw,rate=44100");
   c2 = gst_caps_new_empty ();
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   fail_if (gst_caps_is_empty (c2), NULL);
@@ -352,7 +350,7 @@
   /* specific + EMPTY = specific */
   c2 = gst_caps_from_string ("audio/x-raw,rate=44100");
   c1 = gst_caps_new_empty ();
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   fail_if (gst_caps_is_empty (c2), NULL);
@@ -368,7 +366,7 @@
   /* this is the same */
   c1 = gst_caps_from_string ("audio/x-raw,rate=44100,channels=1");
   c2 = gst_caps_from_string ("audio/x-raw,rate=44100,channels=1");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,rate=44100,channels=1");
@@ -379,35 +377,35 @@
   /* and so is this */
   c1 = gst_caps_from_string ("audio/x-raw,rate=44100,channels=1");
   c2 = gst_caps_from_string ("audio/x-raw,channels=1,rate=44100");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   gst_caps_unref (c2);
 
   c1 = gst_caps_from_string ("video/x-foo, data=(buffer)AA");
   c2 = gst_caps_from_string ("video/x-foo, data=(buffer)AABB");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   gst_caps_unref (c2);
 
   c1 = gst_caps_from_string ("video/x-foo, data=(buffer)AABB");
   c2 = gst_caps_from_string ("video/x-foo, data=(buffer)AA");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   gst_caps_unref (c2);
 
   c1 = gst_caps_from_string ("video/x-foo, data=(buffer)AA");
   c2 = gst_caps_from_string ("video/x-foo, data=(buffer)AA");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   gst_caps_unref (c2);
 
   c1 = gst_caps_from_string ("video/x-foo, data=(buffer)AA");
   c2 = gst_caps_from_string ("video/x-bar, data=(buffer)AA");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   gst_caps_unref (c2);
@@ -422,7 +420,7 @@
   /* the 2nd is already covered */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,2]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=1");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,2]");
@@ -433,7 +431,7 @@
   /* here it is not */
   c2 = gst_caps_from_string ("audio/x-raw,channels=1,rate=44100");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[1,2],rate=44100");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,2],rate=44100");
@@ -444,7 +442,7 @@
   /* second one was already contained in the first one */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,3]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[1,2]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,3]");
@@ -455,7 +453,7 @@
   /* second one was already contained in the first one */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[1,2]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
@@ -466,7 +464,7 @@
   /* second one was already contained in the first one */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[2,4]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
@@ -477,7 +475,7 @@
   /* second one was already contained in the first one */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[2,3]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
@@ -488,7 +486,7 @@
   /* these caps cannot be merged */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[2,3]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[1,4]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test =
@@ -501,7 +499,7 @@
   /* these caps cannot be merged */
   c2 = gst_caps_from_string ("audio/x-raw,channels=[1,2]");
   c1 = gst_caps_from_string ("audio/x-raw,channels=[1,3]");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test =
@@ -513,7 +511,7 @@
 
   c2 = gst_caps_from_string ("audio/x-raw,channels={1,2}");
   c1 = gst_caps_from_string ("audio/x-raw,channels={1,2,3,4}");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels={1,2};"
@@ -524,7 +522,7 @@
 
   c2 = gst_caps_from_string ("audio/x-raw,channels={1,2}");
   c1 = gst_caps_from_string ("audio/x-raw,channels={1,3}");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels={1,2};"
@@ -536,7 +534,7 @@
   c2 = gst_caps_from_string ("video/x-raw, framerate=(fraction){ 15/2, 5/1 }");
   c1 = gst_caps_from_string ("video/x-raw, framerate=(fraction){ 15/1, 5/1 }");
   test = gst_caps_copy (c1);
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_is_subset (test, c2));
   gst_caps_unref (test);
@@ -544,7 +542,7 @@
 
   c2 = gst_caps_from_string ("audio/x-raw");
   c1 = gst_caps_from_string ("audio/x-raw,channels=1");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 1, NULL);
   test = gst_caps_from_string ("audio/x-raw");
@@ -554,7 +552,7 @@
 
   c2 = gst_caps_from_string ("audio/x-raw,channels=1");
   c1 = gst_caps_from_string ("audio/x-raw");
-  gst_caps_merge (c2, c1);
+  c2 = gst_caps_merge (c2, c1);
   GST_DEBUG ("merged: (%d) %" GST_PTR_FORMAT, gst_caps_get_size (c2), c2);
   fail_unless (gst_caps_get_size (c2) == 2, NULL);
   test = gst_caps_from_string ("audio/x-raw,channels=1; audio/x-raw");
@@ -841,7 +839,6 @@
     fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
   }
 
-  gst_caps_unref (in);
   gst_caps_unref (out);
   gst_caps_unref (norm);
 
@@ -860,7 +857,6 @@
     fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
   }
 
-  gst_caps_unref (in);
   gst_caps_unref (out);
   gst_caps_unref (norm);
 
@@ -878,7 +874,6 @@
     fail_unless (gst_structure_foreach (st, _caps_is_fixed_foreach, NULL));
   }
 
-  gst_caps_unref (in);
   gst_caps_unref (out);
   gst_caps_unref (norm);
 }
diff --git a/tests/check/gst/gstchildproxy.c b/tests/check/gst/gstchildproxy.c
index a4249ff..68b357d 100644
--- a/tests/check/gst/gstchildproxy.c
+++ b/tests/check/gst/gstchildproxy.c
@@ -29,7 +29,7 @@
   pipeline = gst_pipeline_new ("foo");
   fail_unless (pipeline != NULL, "Could not create pipeline");
 
-  gst_child_proxy_get (GST_OBJECT (pipeline), "name", &name, NULL);
+  gst_child_proxy_get (G_OBJECT (pipeline), "name", &name, NULL);
   fail_if (g_strcmp0 ("foo", name));
   g_free (name);
 
@@ -51,7 +51,7 @@
 
   gst_bin_add (GST_BIN (pipeline), elem);
 
-  gst_child_proxy_get (GST_OBJECT (pipeline), "src::name", &name, NULL);
+  gst_child_proxy_get (G_OBJECT (pipeline), "src::name", &name, NULL);
   fail_if (g_strcmp0 ("src", name));
   g_free (name);
 
diff --git a/tests/check/gst/gstcontroller.c b/tests/check/gst/gstcontroller.c
new file mode 100644
index 0000000..1c535e2
--- /dev/null
+++ b/tests/check/gst/gstcontroller.c
@@ -0,0 +1,695 @@
+/* GStreamer
+ *
+ * unit test for the controller library
+ *
+ * Copyright (C) <2005> Stefan Kost <ensonic at users dot sf dot net>
+ * Copyright (C) <2006-2007> Sebastian Dröge <slomo@circular-chaos.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <gst/gst.h>
+#include <gst/check/gstcheck.h>
+
+
+/* local test element */
+
+enum
+{
+  PROP_INT = 1,
+  PROP_FLOAT,
+  PROP_DOUBLE,
+  PROP_BOOLEAN,
+  PROP_READONLY,
+  PROP_STATIC,
+  PROP_CONSTRUCTONLY,
+  PROP_COUNT
+};
+
+#define GST_TYPE_TEST_OBJ            (gst_test_obj_get_type ())
+#define GST_TEST_OBJ(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_OBJ, GstTestObj))
+#define GST_TEST_OBJ_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_OBJ, GstTestObjClass))
+#define GST_IS_TEST_OBJ(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_OBJ))
+#define GST_IS_TEST_OBJ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_OBJ))
+#define GST_TEST_OBJ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_OBJ, GstTestObjClass))
+
+typedef struct _GstTestObj GstTestObj;
+typedef struct _GstTestObjClass GstTestObjClass;
+
+struct _GstTestObj
+{
+  GstElement parent;
+  gint val_int;
+  gfloat val_float;
+  gdouble val_double;
+  gboolean val_boolean;
+};
+struct _GstTestObjClass
+{
+  GstElementClass parent_class;
+};
+
+static GType gst_test_obj_get_type (void);
+
+static void
+gst_test_obj_get_property (GObject * object,
+    guint property_id, GValue * value, GParamSpec * pspec)
+{
+  GstTestObj *self = GST_TEST_OBJ (object);
+
+  switch (property_id) {
+    case PROP_INT:
+      g_value_set_int (value, self->val_int);
+      break;
+    case PROP_FLOAT:
+      g_value_set_float (value, self->val_float);
+      break;
+    case PROP_DOUBLE:
+      g_value_set_double (value, self->val_double);
+      break;
+    case PROP_BOOLEAN:
+      g_value_set_boolean (value, self->val_boolean);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_obj_set_property (GObject * object,
+    guint property_id, const GValue * value, GParamSpec * pspec)
+{
+  GstTestObj *self = GST_TEST_OBJ (object);
+
+  switch (property_id) {
+    case PROP_INT:
+      self->val_int = g_value_get_int (value);
+      GST_DEBUG ("test value int=%d", self->val_int);
+      break;
+    case PROP_FLOAT:
+      self->val_float = g_value_get_float (value);
+      GST_DEBUG ("test value float=%f", self->val_float);
+      break;
+    case PROP_DOUBLE:
+      self->val_double = g_value_get_double (value);
+      GST_DEBUG ("test value double=%lf", self->val_double);
+      break;
+    case PROP_BOOLEAN:
+      self->val_boolean = g_value_get_boolean (value);
+      GST_DEBUG ("test value boolean=%d", self->val_boolean);
+      break;
+    case PROP_CONSTRUCTONLY:
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_obj_class_init (GstTestObjClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gobject_class->set_property = gst_test_obj_set_property;
+  gobject_class->get_property = gst_test_obj_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_INT,
+      g_param_spec_int ("int",
+          "int prop",
+          "int number parameter",
+          0, 100, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_FLOAT,
+      g_param_spec_float ("float",
+          "float prop",
+          "float number parameter",
+          0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_DOUBLE,
+      g_param_spec_double ("double",
+          "double prop",
+          "double number parameter",
+          0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_BOOLEAN,
+      g_param_spec_boolean ("boolean",
+          "boolean prop",
+          "boolean parameter",
+          FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_READONLY,
+      g_param_spec_int ("readonly",
+          "readonly prop",
+          "readonly parameter",
+          0, G_MAXINT, 0, G_PARAM_READABLE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_STATIC,
+      g_param_spec_int ("static",
+          "static prop",
+          "static parameter", 0, G_MAXINT, 0, G_PARAM_READWRITE));
+
+  g_object_class_install_property (gobject_class, PROP_CONSTRUCTONLY,
+      g_param_spec_int ("construct-only",
+          "construct-only prop",
+          "construct-only parameter",
+          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+}
+
+static void
+gst_test_obj_base_init (GstTestObjClass * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_set_details_simple (element_class,
+      "test object for unit tests",
+      "Test", "Use in unit tests", "Stefan Sauer <ensonic@users.sf.net>");
+}
+
+static GType
+gst_test_obj_get_type (void)
+{
+  static volatile gsize test_obj_type = 0;
+
+  if (g_once_init_enter (&test_obj_type)) {
+    GType type;
+    static const GTypeInfo info = {
+      (guint16) sizeof (GstTestObjClass),
+      (GBaseInitFunc) gst_test_obj_base_init,   // base_init
+      NULL,                     // base_finalize
+      (GClassInitFunc) gst_test_obj_class_init, // class_init
+      NULL,                     // class_finalize
+      NULL,                     // class_data
+      (guint16) sizeof (GstTestObj),
+      0,                        // n_preallocs
+      NULL,                     // instance_init
+      NULL                      // value_table
+    };
+    type = g_type_register_static (GST_TYPE_ELEMENT, "GstTestObj", &info, 0);
+    g_once_init_leave (&test_obj_type, type);
+  }
+  return test_obj_type;
+}
+
+/* test control source */
+
+#define GST_TYPE_TEST_CONTROL_SOURCE            (gst_test_control_source_get_type ())
+#define GST_TEST_CONTROL_SOURCE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_CONTROL_SOURCE, GstTestControlSource))
+#define GST_TEST_CONTROL_SOURCE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_CONTROL_SOURCE, GstTestControlSourceClass))
+#define GST_IS_TEST_CONTROL_SOURCE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_CONTROL_SOURCE))
+#define GST_IS_TEST_CONTROL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_CONTROL_SOURCE))
+#define GST_TEST_CONTROL_SOURCE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_CONTROL_SOURCE, GstTestControlSourceClass))
+
+typedef struct _GstTestControlSource GstTestControlSource;
+typedef struct _GstTestControlSourceClass GstTestControlSourceClass;
+
+struct _GstTestControlSource
+{
+  GstControlSource parent;
+
+  gdouble value;
+};
+struct _GstTestControlSourceClass
+{
+  GstControlSourceClass parent_class;
+};
+
+static GType gst_test_control_source_get_type (void);
+
+static GstTestControlSource *
+gst_test_control_source_new (void)
+{
+  return g_object_newv (GST_TYPE_TEST_CONTROL_SOURCE, 0, NULL);
+}
+
+static gboolean
+gst_test_control_source_get (GstTestControlSource * self,
+    GstClockTime timestamp, gdouble * value)
+{
+  *value = self->value;
+  return TRUE;
+}
+
+static gboolean
+gst_test_control_source_get_value_array (GstTestControlSource * self,
+    GstClockTime timestamp, GstClockTime interval, guint n_values,
+    gdouble * values)
+{
+  guint i;
+
+  for (i = 0; i < n_values; i++) {
+    *values = self->value;
+    values++;
+  }
+  return TRUE;
+}
+
+static void
+gst_test_control_source_init (GstTestControlSource * self)
+{
+  GstControlSource *cs = (GstControlSource *) self;
+
+  cs->get_value = (GstControlSourceGetValue) gst_test_control_source_get;
+  cs->get_value_array = (GstControlSourceGetValueArray)
+      gst_test_control_source_get_value_array;
+  self->value = 0.0;
+}
+
+static GType
+gst_test_control_source_get_type (void)
+{
+  static volatile gsize test_countrol_source_type = 0;
+
+  if (g_once_init_enter (&test_countrol_source_type)) {
+    GType type;
+    static const GTypeInfo info = {
+      (guint16) sizeof (GstTestControlSourceClass),
+      NULL,                     // base_init
+      NULL,                     // base_finalize
+      NULL,                     // class_init
+      NULL,                     // class_finalize
+      NULL,                     // class_data
+      (guint16) sizeof (GstTestControlSource),
+      0,                        // n_preallocs
+      (GInstanceInitFunc) gst_test_control_source_init, // instance_init
+      NULL                      // value_table
+    };
+    type =
+        g_type_register_static (GST_TYPE_CONTROL_SOURCE, "GstTestControlSource",
+        &info, 0);
+    g_once_init_leave (&test_countrol_source_type, type);
+  }
+  return test_countrol_source_type;
+}
+
+/* test control binding */
+
+#define GST_TYPE_TEST_CONTROL_BINDING            (gst_test_control_binding_get_type ())
+#define GST_TEST_CONTROL_BINDING(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_CONTROL_BINDING, GstTestControlBinding))
+#define GST_TEST_CONTROL_BINDING_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_CONTROL_BINDING, GstTestControlBindingClass))
+#define GST_IS_TEST_CONTROL_BINDING(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_CONTROL_BINDING))
+#define GST_IS_TEST_CONTROL_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_CONTROL_BINDING))
+#define GST_TEST_CONTROL_BINDING_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_CONTROL_BINDING, GstTestControlBindingClass))
+
+typedef struct _GstTestControlBinding GstTestControlBinding;
+typedef struct _GstTestControlBindingClass GstTestControlBindingClass;
+
+struct _GstTestControlBinding
+{
+  GstControlBinding parent;
+
+  GstControlSource *cs;
+};
+struct _GstTestControlBindingClass
+{
+  GstControlBindingClass parent_class;
+};
+
+static GType gst_test_control_binding_get_type (void);
+static GstControlBindingClass *gst_test_control_binding_parent_class = NULL;
+
+static GstControlBinding *
+gst_test_control_binding_new (GstObject * object, const gchar * property_name,
+    GstControlSource * cs)
+{
+  GstTestControlBinding *self;
+  self = (GstTestControlBinding *) g_object_new (GST_TYPE_TEST_CONTROL_BINDING,
+      "object", object, "name", property_name, NULL);
+
+  self->cs = gst_object_ref (cs);
+
+  return (GstControlBinding *) self;
+}
+
+static GstControlSource *
+gst_test_control_binding_get_control_source (GstTestControlBinding * self)
+{
+  g_return_val_if_fail (GST_IS_TEST_CONTROL_BINDING (self), NULL);
+
+  return self->cs ? gst_object_ref (self->cs) : NULL;
+}
+
+static void
+gst_test_control_binding_finalize (GObject * obj)
+{
+  GstTestControlBinding *self = GST_TEST_CONTROL_BINDING (obj);
+
+  gst_object_unref (self->cs);
+
+  G_OBJECT_CLASS (gst_test_control_binding_parent_class)->finalize (obj);
+}
+
+static void
+gst_test_control_binding_class_init (gpointer klass, gpointer class_data)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gst_test_control_binding_parent_class = g_type_class_peek_parent (klass);
+
+  gobject_class->finalize = gst_test_control_binding_finalize;
+}
+
+static GType
+gst_test_control_binding_get_type (void)
+{
+  static volatile gsize test_countrol_binding_type = 0;
+
+  if (g_once_init_enter (&test_countrol_binding_type)) {
+    GType type;
+    static const GTypeInfo info = {
+      (guint16) sizeof (GstTestControlBindingClass),
+      NULL,                     // base_init
+      NULL,                     // base_finalize
+      gst_test_control_binding_class_init,      // class_init
+      NULL,                     // class_finalize
+      NULL,                     // class_data
+      (guint16) sizeof (GstTestControlBinding),
+      0,                        // n_preallocs
+      NULL,                     // instance_init
+      NULL                      // value_table
+    };
+    type =
+        g_type_register_static (GST_TYPE_CONTROL_BINDING,
+        "GstTestControlBinding", &info, 0);
+    g_once_init_leave (&test_countrol_binding_type, type);
+  }
+  return test_countrol_binding_type;
+}
+
+
+static void
+setup (void)
+{
+  gst_element_register (NULL, "testobj", GST_RANK_NONE, GST_TYPE_TEST_OBJ);
+}
+
+static void
+teardown (void)
+{
+}
+
+
+/* TESTS */
+
+/* tests for an element with no controlled params */
+GST_START_TEST (controller_new_fail1)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should not exist */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "_schrompf_",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) == NULL, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests for readonly params */
+GST_START_TEST (controller_new_fail2)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should exist and but is readonly */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "readonly",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) == NULL, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests for static params */
+GST_START_TEST (controller_new_fail3)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should exist and but is not controlable */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "static",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) == NULL, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests for construct-only params */
+GST_START_TEST (controller_new_fail4)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should exist and but is construct-only */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "construct-only",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) == NULL, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+
+/* tests for an element with controlled params */
+GST_START_TEST (controller_new_okay1)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should exist and should be controllable */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "int",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) != NULL, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests for an element with several controlled params */
+GST_START_TEST (controller_new_okay2)
+{
+  GstElement *elem;
+  GstTestControlSource *cs1, *cs2;
+  GstControlBinding *cb1, *cb2;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs1 = gst_test_control_source_new ();
+  cs2 = gst_test_control_source_new ();
+
+  /* these properties should exist and should be controllable */
+  cb1 = gst_test_control_binding_new (GST_OBJECT (elem), "int",
+      GST_CONTROL_SOURCE (cs1));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb1) != NULL, NULL);
+
+  cb2 = gst_test_control_binding_new (GST_OBJECT (elem), "boolean",
+      GST_CONTROL_SOURCE (cs2));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb2) != NULL, NULL);
+
+  gst_object_unref (cb1);
+  gst_object_unref (cb2);
+  gst_object_unref (cs1);
+  gst_object_unref (cs2);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* controlling a param twice should be handled */
+GST_START_TEST (controller_param_twice)
+{
+  GstElement *elem;
+  GstTestControlSource *cs;
+  GstControlBinding *cb;
+  gboolean res;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+  cs = gst_test_control_source_new ();
+
+  /* that property should exist and should be controllable */
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "int",
+      GST_CONTROL_SOURCE (cs));
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) != NULL, NULL);
+  cb = gst_object_ref (cb);
+
+  res = gst_object_add_control_binding (GST_OBJECT (elem), cb);
+  fail_unless (res, NULL);
+
+  /* setting it again will just unset the old and set it again
+   * this might cause some trouble with binding the control source again
+   */
+  res = gst_object_add_control_binding (GST_OBJECT (elem), cb);
+  fail_unless (res, NULL);
+
+  /* it should have been added now, let remove it */
+  res = gst_object_remove_control_binding (GST_OBJECT (elem), cb);
+  fail_unless (res, NULL);
+
+  /* removing it again should not work */
+  res = gst_object_remove_control_binding (GST_OBJECT (elem), cb);
+  fail_unless (!res, NULL);
+
+  gst_object_unref (cb);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests if we can run controller methods against any GObject */
+GST_START_TEST (controller_any_gobject)
+{
+  GstElement *elem;
+  gboolean res;
+
+  elem = gst_element_factory_make ("bin", "test_elem");
+
+  /* that element is not controllable */
+  res = gst_object_sync_values (GST_OBJECT (elem), 0LL);
+  /* Syncing should still succeed as there's nothing to sync */
+  fail_unless (res == TRUE, NULL);
+
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests if we cleanup properly */
+GST_START_TEST (controller_controlsource_refcounts)
+{
+  GstElement *elem;
+  GstControlBinding *cb, *test_cb;
+  GstControlSource *cs, *test_cs;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+
+  cs = (GstControlSource *) gst_test_control_source_new ();
+  fail_unless (cs != NULL, NULL);
+
+  fail_unless_equals_int (G_OBJECT (cs)->ref_count, 1);
+
+  cb = gst_test_control_binding_new (GST_OBJECT (elem), "int", cs);
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb) != NULL, NULL);
+  fail_unless_equals_int (G_OBJECT (cs)->ref_count, 2);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem), cb));
+
+  test_cb = gst_object_get_control_binding (GST_OBJECT (elem), "int");
+  fail_unless (test_cb != NULL, NULL);
+
+  test_cs =
+      gst_test_control_binding_get_control_source (GST_TEST_CONTROL_BINDING
+      (test_cb));
+  fail_unless (test_cs != NULL, NULL);
+  fail_unless (test_cs == cs);
+  fail_unless_equals_int (G_OBJECT (cs)->ref_count, 3);
+  gst_object_unref (test_cs);
+  gst_object_unref (test_cb);
+  gst_object_unref (cs);
+
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* tests if we can bind a control source twice */
+GST_START_TEST (controller_bind_twice)
+{
+  GstElement *elem;
+  GstControlSource *cs;
+  GstControlBinding *cb1, *cb2;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+
+  cs = (GstControlSource *) gst_test_control_source_new ();
+  fail_unless (cs != NULL, NULL);
+
+  cb1 = gst_test_control_binding_new (GST_OBJECT (elem), "int", cs);
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb1) != NULL, NULL);
+  cb2 = gst_test_control_binding_new (GST_OBJECT (elem), "double", cs);
+  fail_unless (GST_CONTROL_BINDING_PSPEC (cb2) != NULL, NULL);
+
+  gst_object_unref (cb1);
+  gst_object_unref (cb2);
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+gst_controller_suite (void)
+{
+  Suite *s = suite_create ("Controller");
+  TCase *tc = tcase_create ("general");
+
+  suite_add_tcase (s, tc);
+  tcase_add_checked_fixture (tc, setup, teardown);
+  tcase_add_test (tc, controller_new_fail1);
+  tcase_add_test (tc, controller_new_fail2);
+  tcase_add_test (tc, controller_new_fail3);
+  tcase_add_test (tc, controller_new_fail4);
+  tcase_add_test (tc, controller_new_okay1);
+  tcase_add_test (tc, controller_new_okay2);
+  tcase_add_test (tc, controller_param_twice);
+  tcase_add_test (tc, controller_any_gobject);
+  tcase_add_test (tc, controller_controlsource_refcounts);
+  tcase_add_test (tc, controller_bind_twice);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_controller);
diff --git a/tests/check/gst/gstdatetime.c b/tests/check/gst/gstdatetime.c
index ccc692f..10f1c60 100644
--- a/tests/check/gst/gstdatetime.c
+++ b/tests/check/gst/gstdatetime.c
@@ -24,11 +24,13 @@
 #include <time.h>
 #include <gst/check/gstcheck.h>
 
-#define ASSERT_TIME(dt,H,M,S) G_STMT_START { \
-  assert_equals_int ((H), gst_date_time_get_hour ((dt))); \
-  assert_equals_int ((M), gst_date_time_get_minute ((dt))); \
-  assert_equals_int ((S), gst_date_time_get_second ((dt))); \
-} G_STMT_END
+#define assert_almost_equals_int(a, b)                            \
+G_STMT_START {                                                           \
+  int first = a;                                                         \
+  int second = b;                                                        \
+  fail_unless(ABS (first - second) <= 1,                                 \
+    "'" #a "' (%d) is not almost equal to '" #b"' (%d)", first, second); \
+} G_STMT_END;
 
 GST_START_TEST (test_GstDateTime_now)
 {
@@ -49,7 +51,7 @@
   assert_equals_int (gst_date_time_get_day (dt), tm.tm_mday);
   assert_equals_int (gst_date_time_get_hour (dt), tm.tm_hour);
   assert_equals_int (gst_date_time_get_minute (dt), tm.tm_min);
-  assert_equals_int (gst_date_time_get_second (dt), tm.tm_sec);
+  assert_almost_equals_int (gst_date_time_get_second (dt), tm.tm_sec);
   gst_date_time_unref (dt);
 }
 
@@ -177,7 +179,7 @@
   g_get_current_time (&tv);
   dt = gst_date_time_new (0, 2010, 7, 15, 11, 12,
       13 + (tv.tv_usec / 1000000.0));
-  assert_equals_int (tv.tv_usec, gst_date_time_get_microsecond (dt));
+  assert_almost_equals_int (tv.tv_usec, gst_date_time_get_microsecond (dt));
   gst_date_time_unref (dt);
 }
 
@@ -252,7 +254,7 @@
   assert_equals_int (tm.tm_mday, gst_date_time_get_day (dt));
   assert_equals_int (tm.tm_hour, gst_date_time_get_hour (dt));
   assert_equals_int (tm.tm_min, gst_date_time_get_minute (dt));
-  assert_equals_int (tm.tm_sec, gst_date_time_get_second (dt));
+  assert_almost_equals_int (tm.tm_sec, gst_date_time_get_second (dt));
   gst_date_time_unref (dt);
 }
 
diff --git a/tests/check/gst/gstelementfactory.c b/tests/check/gst/gstelementfactory.c
index 42bdbcf..cd57387 100644
--- a/tests/check/gst/gstelementfactory.c
+++ b/tests/check/gst/gstelementfactory.c
@@ -24,12 +24,12 @@
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int, " "channels = (int) [ 1, 6 ]")
+    GST_STATIC_CAPS ("audio/x-raw, " "channels = (int) [ 1, 6 ]")
     );
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw-int, " "channels = (int) [ 1, 6 ]")
+    GST_STATIC_CAPS ("audio/x-raw, " "channels = (int) [ 1, 6 ]")
     );
 
 static void
@@ -86,7 +86,7 @@
   factory = setup_factory ();
   fail_if (factory == NULL);
 
-  caps = gst_caps_new_simple ("audio/x-raw-int", NULL);
+  caps = gst_caps_new_empty_simple ("audio/x-raw");
   fail_if (caps == NULL);
   res = gst_element_factory_can_sink_any_caps (factory, caps);
   fail_if (!res);
@@ -107,7 +107,7 @@
   factory = setup_factory ();
   fail_if (factory == NULL);
 
-  caps = gst_caps_new_simple ("audio/x-raw-int", NULL);
+  caps = gst_caps_new_empty_simple ("audio/x-raw");
   fail_if (caps == NULL);
   res = gst_element_factory_can_sink_all_caps (factory, caps);
   fail_if (res);
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index 296ec56..173bce1 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -62,6 +62,24 @@
     fail_unless (GST_EVENT_IS_SERIALIZED (event));
     gst_event_unref (event);
   }
+  /* GAP */
+  {
+    GstClockTime ts = 0, dur = 0;
+
+    ASSERT_CRITICAL (gst_event_new_gap (GST_CLOCK_TIME_NONE, GST_SECOND));
+
+    event = gst_event_new_gap (90 * GST_SECOND, GST_SECOND);
+    fail_if (event == NULL);
+    fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_GAP);
+    fail_if (GST_EVENT_IS_UPSTREAM (event));
+    fail_unless (GST_EVENT_IS_DOWNSTREAM (event));
+    fail_unless (GST_EVENT_IS_SERIALIZED (event));
+    gst_event_parse_gap (event, &ts, NULL);
+    fail_unless_equals_int64 (ts, 90 * GST_SECOND);
+    gst_event_parse_gap (event, &ts, &dur);
+    fail_unless_equals_int64 (dur, GST_SECOND);
+    gst_event_unref (event);
+  }
   /* SEGMENT */
   {
     GstSegment segment, parsed;
@@ -91,9 +109,80 @@
     gst_event_unref (event);
   }
 
+  /* STREAM CONFIG */
+  {
+    GstStreamConfigFlags flags = 0x987654;
+    GstBuffer *buf, *cd, *sh1, *sh2;
+    gpointer dummy;
+
+    event = gst_event_new_stream_config (GST_STREAM_CONFIG_FLAG_NONE);
+
+    gst_event_parse_stream_config (event, &flags);
+    fail_unless_equals_int (flags, GST_STREAM_CONFIG_FLAG_NONE);
+
+    fail_unless_equals_int (gst_event_get_n_stream_config_headers (event), 0);
+
+    /* set buf to something random but guaranteed to be non-NULL */
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_stream_config_setup_data (event, &buf);
+    fail_unless (buf == NULL);
+
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_nth_stream_config_header (event, 0, &buf);
+    fail_unless (buf == NULL);
+
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_nth_stream_config_header (event, 98416, &buf);
+    fail_unless (buf == NULL);
+
+    ASSERT_CRITICAL (gst_event_set_stream_config_setup_data (event, NULL));
+    ASSERT_CRITICAL (gst_event_add_stream_config_header (event, NULL));
+
+    cd = gst_buffer_new_wrapped_full (0, (gpointer) "SetMeUpScottie", 14, 0, 14,
+        NULL, NULL);
+    gst_event_set_stream_config_setup_data (event, cd);
+    gst_buffer_unref (cd);
+
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_nth_stream_config_header (event, 0, &buf);
+    fail_unless (buf == NULL);
+    gst_event_parse_stream_config_setup_data (event, &buf);
+    fail_unless (buf == cd);
+    fail_unless (GST_IS_BUFFER (buf));
+
+    gst_event_unref (event);
+
+    event = gst_event_new_stream_config (GST_STREAM_CONFIG_FLAG_NONE);
+    fail_unless_equals_int (gst_event_get_n_stream_config_headers (event), 0);
+    sh1 =
+        gst_buffer_new_wrapped_full (0, (gpointer) "Strea", 5, 0, 5, NULL,
+        NULL);
+    gst_event_add_stream_config_header (event, sh1);
+    gst_buffer_unref (sh1);
+    fail_unless_equals_int (gst_event_get_n_stream_config_headers (event), 1);
+    sh2 =
+        gst_buffer_new_wrapped_full (0, (gpointer) "mHeader", 7, 0, 7, NULL,
+        NULL);
+    gst_event_add_stream_config_header (event, sh2);
+    gst_buffer_unref (sh2);
+    fail_unless_equals_int (gst_event_get_n_stream_config_headers (event), 2);
+
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_nth_stream_config_header (event, 1, &buf);
+    fail_unless (buf == sh2);
+    fail_unless (GST_IS_BUFFER (buf));
+
+    buf = (GstBuffer *) & dummy;
+    gst_event_parse_nth_stream_config_header (event, 0, &buf);
+    fail_unless (buf == sh1);
+    fail_unless (GST_IS_BUFFER (buf));
+
+    gst_event_unref (event);
+  }
+
   /* TAGS */
   {
-    GstTagList *taglist = gst_tag_list_new ();
+    GstTagList *taglist = gst_tag_list_new_empty ();
     GstTagList *tl2 = NULL;
 
     event = gst_event_new_tag (taglist);
@@ -198,7 +287,7 @@
 
   /* Custom event types */
   {
-    structure = gst_structure_empty_new ("application/x-custom");
+    structure = gst_structure_new_empty ("application/x-custom");
     fail_if (structure == NULL);
     event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
     fail_if (event == NULL);
@@ -217,7 +306,7 @@
 
   /* Event copying */
   {
-    structure = gst_structure_empty_new ("application/x-custom");
+    structure = gst_structure_new_empty ("application/x-custom");
     fail_if (structure == NULL);
     event = gst_event_new_custom (GST_EVENT_CUSTOM_BOTH, structure);
 
@@ -237,7 +326,7 @@
 
   /* Make events writable */
   {
-    structure = gst_structure_empty_new ("application/x-custom");
+    structure = gst_structure_new_empty ("application/x-custom");
     fail_if (structure == NULL);
     event = gst_event_new_custom (GST_EVENT_CUSTOM_BOTH, structure);
     /* ref the event so that it becomes non-writable */
@@ -269,11 +358,10 @@
 static GstEvent *got_event_before_q, *got_event_after_q;
 static GTimeVal got_event_time;
 
-static GstProbeReturn
-event_probe (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
-  GstMiniObject *data = type_data;
+  GstMiniObject *data = GST_PAD_PROBE_INFO_DATA (info);
   gboolean before_q = (gboolean) GPOINTER_TO_INT (user_data);
 
   GST_DEBUG ("event probe called %p", data);
@@ -311,7 +399,7 @@
     }
   }
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 
@@ -360,9 +448,8 @@
   g_mutex_unlock (data->lock);
 }
 
-static GstProbeReturn
-signal_blocked (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+signal_blocked (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   SignalData *data = (SignalData *) user_data;
 
@@ -370,7 +457,7 @@
   signal_data_signal (data);
   GST_DEBUG ("signal done %p", data);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 static void test_event
@@ -392,7 +479,7 @@
   GST_DEBUG ("test event called");
 
   event = gst_event_new_custom (type,
-      gst_structure_empty_new ("application/x-custom"));
+      gst_structure_new_empty ("application/x-custom"));
   g_get_current_time (&sent_event_time);
   got_event_time.tv_sec = 0;
   got_event_time.tv_usec = 0;
@@ -400,7 +487,7 @@
   signal_data_init (&data);
 
   /* We block the pad so the stream lock is released and we can send the event */
-  id = gst_pad_add_probe (fake_srcpad, GST_PROBE_TYPE_BLOCK,
+  id = gst_pad_add_probe (fake_srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
       signal_blocked, &data, NULL);
   fail_unless (id != 0);
 
@@ -485,11 +572,11 @@
 
   /* add pad-probes to faksrc.src and fakesink.sink */
   fail_if ((srcpad = gst_element_get_static_pad (fakesrc, "src")) == NULL);
-  gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       event_probe, GINT_TO_POINTER (TRUE), NULL);
 
   fail_if ((sinkpad = gst_element_get_static_pad (fakesink, "sink")) == NULL);
-  gst_pad_add_probe (sinkpad, GST_PROBE_TYPE_EVENT,
+  gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       event_probe, GINT_TO_POINTER (FALSE), NULL);
 
   /* Upstream events */
@@ -542,6 +629,8 @@
   gst_element_get_state (GST_ELEMENT (pipeline), NULL, NULL,
       GST_CLOCK_TIME_NONE);
 
+  gst_object_unref (sinkpad);
+  gst_object_unref (srcpad);
   gst_object_unref (pipeline);
 }
 
diff --git a/tests/check/gst/gstghostpad.c b/tests/check/gst/gstghostpad.c
index 068a6e9..3212553 100644
--- a/tests/check/gst/gstghostpad.c
+++ b/tests/check/gst/gstghostpad.c
@@ -106,9 +106,8 @@
   ret = gst_pad_link (srcpad, sinkpad);
   GST_DEBUG ("linked srcpad and sinkpad");
   fail_unless (ret == GST_PAD_LINK_OK);
-  /* the linking causes a proxypad to be created for srcpad,
-   * to which sinkpad gets linked.  This proxypad has a ref to srcpad */
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 3);
+  /* Refcount should be unchanged, targets are now decuced using peer pad */
+  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 2);
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 2);
   gst_object_unref (srcpad);
   gst_object_unref (sinkpad);
@@ -120,14 +119,14 @@
   /* pad is still linked to ghostpad */
   fail_if (!gst_pad_is_linked (srcpad));
   ASSERT_OBJECT_REFCOUNT (src, "src", 1);
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 3);
+  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 2);
   gst_object_unref (srcpad);
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 1);
 
   /* cleanup */
   /* now unlink the pads */
   gst_pad_unlink (srcpad, sinkpad);
-  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 1); /* proxy has dropped ref */
+  ASSERT_OBJECT_REFCOUNT (srcpad, "srcpad", 1); /* we dropped our ref */
   ASSERT_OBJECT_REFCOUNT (sinkpad, "sinkpad", 1);
 
   ASSERT_OBJECT_REFCOUNT (src, "src", 1);
@@ -191,7 +190,7 @@
 
   /* check caps, untargetted pad should return ANY or the padtemplate caps 
    * when it was created from a template */
-  caps = gst_pad_get_caps (srcpad, NULL);
+  caps = gst_pad_query_caps (srcpad, NULL);
   fail_unless (gst_caps_is_any (caps));
   gst_caps_unref (caps);
 
@@ -241,6 +240,7 @@
   fail_unless (target == NULL);
 
   gst_object_unref (b1);
+  gst_object_unref (ghost);
 }
 
 GST_END_TEST;
@@ -361,15 +361,15 @@
 
   /* all objects above have one refcount owned by us as well */
 
-  ASSERT_OBJECT_REFCOUNT (fsrc, "fsrc", 3);     /* parent and gisrc */
+  ASSERT_OBJECT_REFCOUNT (fsrc, "fsrc", 2);     /* parent */
   ASSERT_OBJECT_REFCOUNT (gsink, "gsink", 2);   /* parent */
   ASSERT_OBJECT_REFCOUNT (gsrc, "gsrc", 2);     /* parent */
-  ASSERT_OBJECT_REFCOUNT (fsink, "fsink", 3);   /* parent and gisink */
+  ASSERT_OBJECT_REFCOUNT (fsink, "fsink", 2);   /* parent */
 
   ASSERT_OBJECT_REFCOUNT (gisrc, "gisrc", 2);   /* parent */
-  ASSERT_OBJECT_REFCOUNT (isink, "isink", 3);   /* parent and gsink */
+  ASSERT_OBJECT_REFCOUNT (isink, "isink", 2);   /* parent */
   ASSERT_OBJECT_REFCOUNT (gisink, "gisink", 2); /* parent */
-  ASSERT_OBJECT_REFCOUNT (isrc, "isrc", 3);     /* parent and gsrc */
+  ASSERT_OBJECT_REFCOUNT (isrc, "isrc", 2);     /* parent */
 
   ret = gst_element_set_state (b1, GST_STATE_PLAYING);
   ret = gst_element_get_state (b1, NULL, NULL, GST_CLOCK_TIME_NONE);
@@ -478,9 +478,8 @@
   GCond *cond;
 } BlockData;
 
-static GstProbeReturn
-block_callback (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+block_callback (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   BlockData *block_data = (BlockData *) user_data;
 
@@ -489,7 +488,7 @@
   g_cond_signal (block_data->cond);
   g_mutex_unlock (block_data->mutex);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_ghost_pads_block)
@@ -517,7 +516,7 @@
   block_data.cond = g_cond_new ();
 
   g_mutex_lock (block_data.mutex);
-  gst_pad_add_probe (srcghost, GST_PROBE_TYPE_BLOCK, block_callback,
+  gst_pad_add_probe (srcghost, GST_PAD_PROBE_TYPE_BLOCK, block_callback,
       &block_data, NULL);
   gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
   /* and wait now */
@@ -559,7 +558,7 @@
   block_data.cond = g_cond_new ();
 
   g_mutex_lock (block_data.mutex);
-  gst_pad_add_probe (srcghost, GST_PROBE_TYPE_BLOCK, block_callback,
+  gst_pad_add_probe (srcghost, GST_PAD_PROBE_TYPE_BLOCK, block_callback,
       &block_data, NULL);
   gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
   /* and wait now */
@@ -603,7 +602,7 @@
   fail_unless (GST_PAD_PAD_TEMPLATE (ghostpad) == ghosttempl);
 
   /* check ghostpad caps are from the sinkpad */
-  newcaps = gst_pad_get_caps (ghostpad, NULL);
+  newcaps = gst_pad_query_caps (ghostpad, NULL);
   fail_unless (newcaps != NULL);
   fail_unless (gst_caps_is_equal (newcaps, padcaps));
   gst_caps_unref (newcaps);
@@ -646,7 +645,7 @@
   fail_unless (GST_PAD_PAD_TEMPLATE (ghostpad) == ghosttempl);
 
   /* check ghostpad caps are from the ghostpad template */
-  newcaps = gst_pad_get_caps (ghostpad, NULL);
+  newcaps = gst_pad_query_caps (ghostpad, NULL);
   fail_unless (newcaps != NULL);
   fail_unless (gst_caps_is_equal (newcaps, ghostcaps));
   gst_caps_unref (newcaps);
@@ -654,7 +653,7 @@
   fail_unless (gst_ghost_pad_set_target ((GstGhostPad *) ghostpad, sinkpad));
 
   /* check ghostpad caps are now from the target pad */
-  newcaps = gst_pad_get_caps (ghostpad, NULL);
+  newcaps = gst_pad_query_caps (ghostpad, NULL);
   fail_unless (newcaps != NULL);
   fail_unless (gst_caps_is_equal (newcaps, padcaps));
   gst_caps_unref (newcaps);
@@ -717,6 +716,7 @@
 
   gst_object_unref (ghost);
   gst_caps_unref (caps1);
+  gst_caps_unref (caps2);
 
   /* source 2, setting the caps on the ghostpad does not influence the caps of
    * the target */
@@ -760,6 +760,7 @@
 
   gst_object_unref (ghost);
   gst_caps_unref (caps1);
+  gst_caps_unref (caps2);
 
   /* clear caps on pads */
   gst_pad_set_active (src, FALSE);
@@ -1027,7 +1028,7 @@
   gst_bin_add (GST_BIN (b1), fmt);
   gst_bin_add (GST_BIN (b1), b2);
 
-  caps = gst_caps_from_string ("audio/x-raw-int, width=16, channels=1");
+  caps = gst_caps_from_string ("audio/x-raw, format=S16LE, channels=1");
   g_object_set (fmt, "caps", caps, NULL);
   gst_caps_unref (caps);
 
@@ -1052,6 +1053,59 @@
 
 GST_END_TEST;
 
+/* test that setting a ghostpad proxy pad as ghostpad target automatically set
+ * both ghostpad targets.
+ *
+ * fakesrc ! ( ) ! fakesink
+ */
+
+GST_START_TEST (test_ghost_pads_internal_link)
+{
+  GstElement *pipeline, *src, *bin, *sink;
+  GstPad *sinkpad, *srcpad, *target;
+  GstProxyPad *proxypad;
+
+  pipeline = gst_element_factory_make ("pipeline", NULL);
+  bin = gst_element_factory_make ("bin", NULL);
+  src = gst_element_factory_make ("fakesrc", NULL);
+  sink = gst_element_factory_make ("fakesink", NULL);
+
+  gst_bin_add (GST_BIN (pipeline), src);
+  gst_bin_add (GST_BIN (pipeline), bin);
+  gst_bin_add (GST_BIN (pipeline), sink);
+
+  /* create the sink ghostpad */
+  sinkpad = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK);
+  proxypad = gst_proxy_pad_get_internal (GST_PROXY_PAD (sinkpad));
+  gst_element_add_pad (bin, sinkpad);
+
+  /* create the src ghostpad and link it to sink proxypad */
+  srcpad = gst_ghost_pad_new ("src", GST_PAD (proxypad));
+  gst_object_unref (proxypad);
+  gst_element_add_pad (bin, srcpad);
+
+  fail_unless (gst_element_link_many (src, bin, sink, NULL));
+
+  /* Check that both targets are set, and point to each other */
+  target = gst_ghost_pad_get_target (GST_GHOST_PAD (sinkpad));
+  fail_if (target == NULL);
+  proxypad = gst_proxy_pad_get_internal (GST_PROXY_PAD (srcpad));
+  fail_unless (target == GST_PAD (proxypad));
+  gst_object_unref (target);
+  gst_object_unref (proxypad);
+
+  target = gst_ghost_pad_get_target (GST_GHOST_PAD (srcpad));
+  fail_if (target == NULL);
+  proxypad = gst_proxy_pad_get_internal (GST_PROXY_PAD (sinkpad));
+  fail_unless (target == GST_PAD (proxypad));
+  gst_object_unref (target);
+  gst_object_unref (proxypad);
+
+  /* clean up */
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_ghost_pad_suite (void)
@@ -1076,6 +1130,7 @@
   tcase_add_test (tc_chain, test_ghost_pads_sink_link_unlink);
   tcase_add_test (tc_chain, test_ghost_pads_src_link_unlink);
   tcase_add_test (tc_chain, test_ghost_pads_change_when_linked);
+  tcase_add_test (tc_chain, test_ghost_pads_internal_link);
 
   return s;
 }
diff --git a/tests/check/gst/gstindex.c b/tests/check/gst/gstindex.c
deleted file mode 100644
index f533dd0..0000000
--- a/tests/check/gst/gstindex.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* GStreamer GstIndex unit test
- * Copyright (C) 2008 Tim-Philipp Müller <tim centricular net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <gst/check/gstcheck.h>
-
-#include <gst/gst.h>
-#include <string.h>
-
-GST_START_TEST (test_index_entries)
-{
-  GstIndexEntry *entry;
-  GstElement *pipe;
-  GstIndex *index;
-  gint id = -1;
-
-  pipe = gst_pipeline_new ("pipeline");
-
-  index = gst_index_new ();
-  fail_unless (gst_index_get_writer_id (index, GST_OBJECT (pipe), &id));
-
-  entry = gst_index_add_format (index, id, GST_FORMAT_BYTES);
-  gst_index_entry_free (entry);
-
-  gst_object_unref (index);
-  gst_object_unref (pipe);
-
-}
-
-GST_END_TEST;
-
-static Suite *
-gst_index_suite (void)
-{
-  Suite *s = suite_create ("GstIndex");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  tcase_add_test (tc_chain, test_index_entries);
-
-  return s;
-}
-
-GST_CHECK_MAIN (gst_index);
diff --git a/tests/check/gst/gstiterator.c b/tests/check/gst/gstiterator.c
index e6d9389..3263d89 100644
--- a/tests/check/gst/gstiterator.c
+++ b/tests/check/gst/gstiterator.c
@@ -176,7 +176,7 @@
 GST_START_TEST (test_single)
 {
   GstIterator *it;
-  GstStructure *s = gst_structure_new ("test", NULL);
+  GstStructure *s = gst_structure_new_empty ("test");
   GValue v = { 0, };
   GstStructure *i;
 
diff --git a/tests/check/gst/gstmemory.c b/tests/check/gst/gstmemory.c
new file mode 100644
index 0000000..0cf1df7
--- /dev/null
+++ b/tests/check/gst/gstmemory.c
@@ -0,0 +1,528 @@
+/* GStreamer
+ *
+ * unit test for GstMemory
+ *
+ * Copyright (C) <2012> Wim Taymans <wim.taymans at gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_VALGRIND_H
+# include <valgrind/valgrind.h>
+#else
+# define RUNNING_ON_VALGRIND FALSE
+#endif
+
+#include <gst/check/gstcheck.h>
+
+GST_START_TEST (test_submemory)
+{
+  GstMemory *memory, *sub;
+  GstMapInfo info, sinfo;
+
+  memory = gst_allocator_alloc (NULL, 4, NULL);
+
+  /* check sizes, memory starts out empty */
+  fail_unless (gst_memory_map (memory, &info, GST_MAP_WRITE));
+  fail_unless (info.size == 4, "memory has wrong size");
+  fail_unless (info.maxsize >= 4, "memory has wrong size");
+  memset (info.data, 0, 4);
+  gst_memory_unmap (memory, &info);
+
+  fail_unless (gst_memory_map (memory, &info, GST_MAP_READ));
+
+  sub = gst_memory_share (memory, 1, 2);
+  fail_if (sub == NULL, "share of memory returned NULL");
+
+  fail_unless (gst_memory_map (sub, &sinfo, GST_MAP_READ));
+  fail_unless (sinfo.size == 2, "submemory has wrong size");
+  fail_unless (memcmp (info.data + 1, sinfo.data, 2) == 0,
+      "submemory contains the wrong data");
+  ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
+  gst_memory_unmap (sub, &sinfo);
+  gst_memory_unref (sub);
+
+  /* create a submemory of size 0 */
+  sub = gst_memory_share (memory, 1, 0);
+  fail_if (sub == NULL, "share memory returned NULL");
+  fail_unless (gst_memory_map (sub, &sinfo, GST_MAP_READ));
+  fail_unless (sinfo.size == 0, "submemory has wrong size");
+  fail_unless (memcmp (info.data + 1, sinfo.data, 0) == 0,
+      "submemory contains the wrong data");
+  ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
+  gst_memory_unmap (sub, &sinfo);
+  gst_memory_unref (sub);
+
+  /* test if metadata is coppied, not a complete memory copy so only the
+   * timestamp and offset fields are copied. */
+  sub = gst_memory_share (memory, 0, 1);
+  fail_if (sub == NULL, "share of memory returned NULL");
+  fail_unless (gst_memory_get_sizes (sub, NULL, NULL) == 1,
+      "submemory has wrong size");
+  gst_memory_unref (sub);
+
+  /* test if metadata is coppied, a complete memory is copied so all the timing
+   * fields should be copied. */
+  sub = gst_memory_share (memory, 0, 4);
+  fail_if (sub == NULL, "share of memory returned NULL");
+  fail_unless (gst_memory_get_sizes (sub, NULL, NULL) == 4,
+      "submemory has wrong size");
+
+  /* clean up */
+  gst_memory_unref (sub);
+
+  gst_memory_unmap (memory, &info);
+  gst_memory_unref (memory);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_is_span)
+{
+  GstMemory *memory, *sub1, *sub2;
+
+  memory = gst_allocator_alloc (NULL, 4, NULL);
+
+  sub1 = gst_memory_share (memory, 0, 2);
+  fail_if (sub1 == NULL, "share of memory returned NULL");
+
+  sub2 = gst_memory_share (memory, 2, 2);
+  fail_if (sub2 == NULL, "share of memory returned NULL");
+
+  fail_if (gst_memory_is_span (memory, sub2, NULL) == TRUE,
+      "a parent memory can't be span");
+
+  fail_if (gst_memory_is_span (sub1, memory, NULL) == TRUE,
+      "a parent memory can't be span");
+
+  fail_if (gst_memory_is_span (sub1, sub2, NULL) == FALSE,
+      "two submemorys next to each other should be span");
+
+  /* clean up */
+  gst_memory_unref (sub1);
+  gst_memory_unref (sub2);
+  gst_memory_unref (memory);
+}
+
+GST_END_TEST;
+
+static const char ro_memory[] = "abcdefghijklmnopqrstuvwxyz";
+
+static GstMemory *
+create_read_only_memory (void)
+{
+  GstMemory *mem;
+
+  /* assign some read-only data to the new memory */
+  mem = gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
+      (gpointer) ro_memory, sizeof (ro_memory), 0, sizeof (ro_memory), NULL,
+      NULL);
+  fail_unless (GST_MEMORY_IS_READONLY (mem));
+
+  return mem;
+}
+
+GST_START_TEST (test_writable)
+{
+  GstMemory *mem, *mem2;
+  GstMapInfo info;
+
+  /* create read-only memory and try to write */
+  mem = create_read_only_memory ();
+
+  fail_if (gst_memory_map (mem, &info, GST_MAP_WRITE));
+
+  mem2 = gst_memory_copy (mem, 0, -1);
+  fail_unless (GST_MEMORY_IS_READONLY (mem));
+  fail_if (GST_MEMORY_IS_READONLY (mem2));
+
+  fail_unless (gst_memory_map (mem2, &info, GST_MAP_WRITE));
+  info.data[4] = 'a';
+  gst_memory_unmap (mem2, &info);
+
+  gst_memory_ref (mem2);
+  fail_if (gst_memory_map (mem, &info, GST_MAP_WRITE));
+  gst_memory_unref (mem2);
+
+  fail_unless (gst_memory_map (mem2, &info, GST_MAP_WRITE));
+  info.data[4] = 'a';
+  gst_memory_unmap (mem2, &info);
+  gst_memory_unref (mem2);
+
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_submemory_writable)
+{
+  GstMemory *mem, *sub_mem;
+  GstMapInfo info;
+
+  /* create sub-memory of read-only memory and try to write */
+  mem = create_read_only_memory ();
+
+  sub_mem = gst_memory_share (mem, 0, 8);
+  fail_unless (GST_MEMORY_IS_READONLY (sub_mem));
+
+  fail_if (gst_memory_map (mem, &info, GST_MAP_WRITE));
+  fail_if (gst_memory_map (sub_mem, &info, GST_MAP_WRITE));
+
+  gst_memory_unref (sub_mem);
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_copy)
+{
+  GstMemory *memory, *copy;
+  GstMapInfo info, sinfo;
+
+  memory = gst_allocator_alloc (NULL, 4, NULL);
+  ASSERT_MEMORY_REFCOUNT (memory, "memory", 1);
+
+  copy = gst_memory_copy (memory, 0, -1);
+  ASSERT_MEMORY_REFCOUNT (memory, "memory", 1);
+  ASSERT_MEMORY_REFCOUNT (copy, "copy", 1);
+  /* memorys are copied and must point to different memory */
+  fail_if (memory == copy);
+
+  fail_unless (gst_memory_map (memory, &info, GST_MAP_READ));
+  fail_unless (gst_memory_map (copy, &sinfo, GST_MAP_READ));
+
+  /* NOTE that data is refcounted */
+  fail_unless (info.size == sinfo.size);
+
+  gst_memory_unmap (copy, &sinfo);
+  gst_memory_unmap (memory, &info);
+
+  gst_memory_unref (copy);
+  gst_memory_unref (memory);
+
+  memory = gst_allocator_alloc (NULL, 0, NULL);
+  fail_unless (gst_memory_map (memory, &info, GST_MAP_READ));
+  fail_unless (info.size == 0);
+  gst_memory_unmap (memory, &info);
+
+  /* copying a 0-sized memory should not crash */
+  copy = gst_memory_copy (memory, 0, -1);
+  fail_unless (gst_memory_map (copy, &info, GST_MAP_READ));
+  fail_unless (info.size == 0);
+  gst_memory_unmap (copy, &info);
+
+  gst_memory_unref (copy);
+  gst_memory_unref (memory);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_try_new_and_alloc)
+{
+  GstMemory *mem;
+  GstMapInfo info;
+  gsize size;
+
+  mem = gst_allocator_alloc (NULL, 0, NULL);
+  fail_unless (mem != NULL);
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  fail_unless (info.size == 0);
+  gst_memory_unmap (mem, &info);
+  gst_memory_unref (mem);
+
+  /* normal alloc should still work */
+  size = 640 * 480 * 4;
+  mem = gst_allocator_alloc (NULL, size, NULL);
+  fail_unless (mem != NULL);
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_WRITE));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == (640 * 480 * 4));
+  info.data[640 * 479 * 4 + 479] = 0xff;
+  gst_memory_unmap (mem, &info);
+
+  gst_memory_unref (mem);
+
+#if 0
+  /* Disabled this part of the test, because it happily succeeds on 64-bit
+   * machines that have enough memory+swap, because the address space is large
+   * enough. There's not really any way to test the failure case except by
+   * allocating chunks of memory until it fails, which would suck. */
+
+  /* now this better fail (don't run in valgrind, it will abort
+   * or warn when passing silly arguments to malloc) */
+  if (!RUNNING_ON_VALGRIND) {
+    mem = gst_allocator_alloc (NULL, (guint) - 1, 0);
+    fail_unless (mem == NULL);
+  }
+#endif
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_resize)
+{
+  GstMemory *mem;
+  gsize maxalloc;
+  gsize size, maxsize, offset;
+
+  /* one memory block */
+  mem = gst_allocator_alloc (NULL, 100, NULL);
+
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxalloc >= 100);
+
+  ASSERT_CRITICAL (gst_memory_resize (mem, 200, 50));
+  ASSERT_CRITICAL (gst_memory_resize (mem, 0, 150));
+  ASSERT_CRITICAL (gst_memory_resize (mem, 1, maxalloc));
+  ASSERT_CRITICAL (gst_memory_resize (mem, maxalloc, 1));
+
+  /* this does nothing */
+  gst_memory_resize (mem, 0, 100);
+
+  /* nothing should have changed */
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 0, 50);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 50);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 0, 100);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 1, 99);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 99);
+  fail_unless (offset == 1);
+  fail_unless (maxsize == maxalloc);
+
+  ASSERT_CRITICAL (gst_memory_resize (mem, 1, maxalloc - 1));
+
+  gst_memory_resize (mem, 0, 99);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 99);
+  fail_unless (offset == 1);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, -1, 100);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  /* can't set offset below 0 */
+  ASSERT_CRITICAL (gst_memory_resize (mem, -1, 100));
+
+  gst_memory_resize (mem, 50, 40);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 40);
+  fail_unless (offset == 50);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, -50, 100);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 0, 0);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 0);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 0, 100);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_resize (mem, 0, 100);
+  size = gst_memory_get_sizes (mem, &offset, &maxsize);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxsize == maxalloc);
+
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_map)
+{
+  GstMemory *mem;
+  GstMapInfo info;
+  gsize maxalloc;
+  gsize size, offset;
+
+  /* one memory block */
+  mem = gst_allocator_alloc (NULL, 100, NULL);
+
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxalloc >= 100);
+
+  /* see if simply mapping works */
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 100);
+  fail_unless (info.maxsize == maxalloc);
+
+  gst_memory_unmap (mem, &info);
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_map_nested)
+{
+  GstMemory *mem;
+  GstMapInfo info1, info2;
+
+  mem = gst_allocator_alloc (NULL, 100, NULL);
+
+  /* nested mapping */
+  fail_unless (gst_memory_map (mem, &info1, GST_MAP_READ));
+  fail_unless (info1.data != NULL);
+  fail_unless (info1.size == 100);
+
+  fail_unless (gst_memory_map (mem, &info2, GST_MAP_READ));
+  fail_unless (info2.data == info1.data);
+  fail_unless (info2.size == 100);
+
+  /* unmap */
+  gst_memory_unmap (mem, &info2);
+  gst_memory_unmap (mem, &info1);
+
+  fail_unless (gst_memory_map (mem, &info1, GST_MAP_READ));
+  /* not allowed */
+  fail_if (gst_memory_map (mem, &info2, GST_MAP_WRITE));
+  fail_if (gst_memory_map (mem, &info2, GST_MAP_READWRITE));
+  fail_unless (gst_memory_map (mem, &info2, GST_MAP_READ));
+  gst_memory_unmap (mem, &info2);
+  gst_memory_unmap (mem, &info1);
+  fail_unless (mem->state == 0);
+
+  fail_unless (gst_memory_map (mem, &info1, GST_MAP_WRITE));
+  /* not allowed */
+  fail_if (gst_memory_map (mem, &info2, GST_MAP_READ));
+  fail_if (gst_memory_map (mem, &info2, GST_MAP_READWRITE));
+  fail_unless (gst_memory_map (mem, &info2, GST_MAP_WRITE));
+  gst_memory_unmap (mem, &info1);
+  gst_memory_unmap (mem, &info2);
+  /* nothing was mapped */
+  ASSERT_CRITICAL (gst_memory_unmap (mem, &info2));
+
+  fail_unless (gst_memory_map (mem, &info1, GST_MAP_READWRITE));
+  fail_unless (gst_memory_map (mem, &info2, GST_MAP_READ));
+  gst_memory_unmap (mem, &info2);
+  fail_unless (gst_memory_map (mem, &info2, GST_MAP_WRITE));
+  gst_memory_unmap (mem, &info2);
+  gst_memory_unmap (mem, &info1);
+  /* nothing was mapped */
+  ASSERT_CRITICAL (gst_memory_unmap (mem, &info1));
+
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_map_resize)
+{
+  GstMemory *mem;
+  GstMapInfo info;
+  gsize size, maxalloc, offset;
+
+  mem = gst_allocator_alloc (NULL, 100, NULL);
+
+  /* do mapping */
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 100);
+
+  /* resize the buffer */
+  gst_memory_resize (mem, 1, info.size - 1);
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 99);
+  fail_unless (offset == 1);
+  fail_unless (maxalloc >= 100);
+  gst_memory_unmap (mem, &info);
+
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 99);
+  fail_unless (offset == 1);
+  fail_unless (maxalloc >= 100);
+
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 99);
+  fail_unless (info.maxsize >= 100);
+  gst_memory_unmap (mem, &info);
+
+  /* and larger */
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  gst_memory_resize (mem, -1, 100);
+  gst_memory_unmap (mem, &info);
+
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 100);
+  fail_unless (offset == 0);
+  fail_unless (maxalloc >= 100);
+
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  gst_memory_unmap (mem, &info);
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+gst_memory_suite (void)
+{
+  Suite *s = suite_create ("GstMemory");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_submemory);
+  tcase_add_test (tc_chain, test_submemory_writable);
+  tcase_add_test (tc_chain, test_writable);
+  tcase_add_test (tc_chain, test_is_span);
+  tcase_add_test (tc_chain, test_copy);
+  tcase_add_test (tc_chain, test_try_new_and_alloc);
+  tcase_add_test (tc_chain, test_resize);
+  tcase_add_test (tc_chain, test_map);
+  tcase_add_test (tc_chain, test_map_nested);
+  tcase_add_test (tc_chain, test_map_resize);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_memory);
diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c
index 423226a..91f4e38 100644
--- a/tests/check/gst/gstmessage.c
+++ b/tests/check/gst/gstmessage.c
@@ -102,7 +102,7 @@
     GstTagList *tag;
 
     /* FIXME, do some more tag adding */
-    tag = gst_tag_list_new ();
+    tag = gst_tag_list_new_empty ();
     fail_if (tag == NULL);
     message = gst_message_new_tag (NULL, tag);
     fail_if (message == NULL);
@@ -208,7 +208,7 @@
 
     /* create a task with some dummy function, we're not actually going to run
      * the task here */
-    task = gst_task_create ((GstTaskFunction) gst_object_unref, NULL);
+    task = gst_task_new ((GstTaskFunction) gst_object_unref, NULL);
 
     ASSERT_OBJECT_REFCOUNT (task, "task", 1);
 
diff --git a/tests/check/gst/gstmeta.c b/tests/check/gst/gstmeta.c
index 69eb370..2840196 100644
--- a/tests/check/gst/gstmeta.c
+++ b/tests/check/gst/gstmeta.c
@@ -43,10 +43,13 @@
   GstClockTime clock_rate;
 } GstMetaTest;
 
+static GType gst_meta_test_api_get_type (void);
+#define GST_META_TEST_API_TYPE (gst_meta_test_api_get_type())
+
 static const GstMetaInfo *gst_meta_test_get_info (void);
 #define GST_META_TEST_INFO (gst_meta_test_get_info())
 
-#define GST_META_TEST_GET(buf) ((GstMetaTest *)gst_buffer_get_meta(buf,GST_META_TEST_INFO))
+#define GST_META_TEST_GET(buf) ((GstMetaTest *)gst_buffer_get_meta(buf,GST_META_TEST_API_TYPE))
 #define GST_META_TEST_ADD(buf) ((GstMetaTest *)gst_buffer_add_meta(buf,GST_META_TEST_INFO,NULL))
 
 #if 0
@@ -63,49 +66,72 @@
 }
 #endif
 
-static void
-test_init_func (GstMetaTest * meta, GstBuffer * buffer)
+static gboolean
+test_init_func (GstMeta * meta, gpointer params, GstBuffer * buffer)
 {
   GST_DEBUG ("init called on buffer %p, meta %p", buffer, meta);
   /* nothing to init really, the init function is mostly for allocating
    * additional memory or doing special setup as part of adding the metadata to
    * the buffer*/
+  return TRUE;
 }
 
 static void
-test_free_func (GstMetaTest * meta, GstBuffer * buffer)
+test_free_func (GstMeta * meta, GstBuffer * buffer)
 {
   GST_DEBUG ("free called on buffer %p, meta %p", buffer, meta);
   /* nothing to free really */
 }
 
-static void
-test_copy_func (GstBuffer * copybuf, GstMetaTest * meta,
-    GstBuffer * buffer, gsize offset, gsize size)
+static gboolean
+test_transform_func (GstBuffer * transbuf, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
 {
-  GstMetaTest *test;
+  GstMetaTest *test, *tmeta = (GstMetaTest *) meta;
 
-  GST_DEBUG ("copy called from buffer %p to %p, meta %p, %u-%u", buffer,
-      copybuf, meta, offset, size);
+  GST_DEBUG ("transform %s called from buffer %p to %p, meta %p",
+      g_quark_to_string (type), buffer, transbuf, meta);
 
-  test = GST_META_TEST_ADD (copybuf);
-  if (offset == 0) {
-    /* same offset, copy timestamps */
-    test->pts = meta->pts;
-    test->dts = meta->dts;
-    if (size == gst_buffer_get_size (buffer)) {
-      /* same size, copy duration */
-      test->duration = meta->duration;
+  if (GST_META_TRANSFORM_IS_COPY (type)) {
+    GstMetaTransformCopy *copy_data = data;
+
+    test = GST_META_TEST_ADD (transbuf);
+
+    if (copy_data->offset == 0) {
+      /* same offset, copy timestamps */
+      test->pts = tmeta->pts;
+      test->dts = tmeta->dts;
+      if (!copy_data->region) {
+        fail_unless (gst_buffer_get_size (buffer) == copy_data->size);
+        /* same size, copy duration */
+        test->duration = tmeta->duration;
+      } else {
+        fail_unless (gst_buffer_get_size (buffer) > copy_data->size);
+        /* else clear */
+        test->duration = GST_CLOCK_TIME_NONE;
+      }
     } else {
-      /* else clear */
-      test->duration = GST_CLOCK_TIME_NONE;
+      fail_unless (copy_data->region == TRUE);
+      test->pts = -1;
+      test->dts = -1;
+      test->duration = -1;
     }
-  } else {
-    test->pts = -1;
-    test->dts = -1;
-    test->duration = -1;
+    test->clock_rate = tmeta->clock_rate;
   }
-  test->clock_rate = meta->clock_rate;
+  return TRUE;
+}
+
+static GType
+gst_meta_test_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] = { "timing", NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type = gst_meta_api_type_register ("GstMetaTestAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
 }
 
 static const GstMetaInfo *
@@ -114,11 +140,10 @@
   static const GstMetaInfo *meta_test_info = NULL;
 
   if (meta_test_info == NULL) {
-    meta_test_info = gst_meta_register ("GstMetaTest", "GstMetaTest",
+    meta_test_info = gst_meta_register (GST_META_TEST_API_TYPE,
+        "GstMetaTest",
         sizeof (GstMetaTest),
-        (GstMetaInitFunction) test_init_func,
-        (GstMetaFreeFunction) test_free_func,
-        (GstMetaCopyFunction) test_copy_func, (GstMetaTransformFunction) NULL);
+        test_init_func, test_free_func, test_transform_func);
   }
   return meta_test_info;
 }
@@ -127,15 +152,15 @@
 {
   GstBuffer *buffer, *copy, *subbuf;
   GstMetaTest *meta;
-  gpointer data;
+  GstMapInfo info;
 
   buffer = gst_buffer_new_and_alloc (4);
   fail_if (buffer == NULL);
 
-  data = gst_buffer_map (buffer, NULL, NULL, GST_MAP_WRITE);
-  fail_if (data == NULL);
-  memset (data, 0, 4);
-  gst_buffer_unmap (buffer, data, 4);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+  fail_if (info.data == NULL);
+  memset (info.data, 0, 4);
+  gst_buffer_unmap (buffer, &info);
 
   /* add some metadata */
   meta = GST_META_TEST_ADD (buffer);
diff --git a/tests/check/gst/gstpad.c b/tests/check/gst/gstpad.c
index 4a763e1..cb5ef36 100644
--- a/tests/check/gst/gstpad.c
+++ b/tests/check/gst/gstpad.c
@@ -41,11 +41,11 @@
   sink = gst_pad_new ("sink", GST_PAD_SINK);
   fail_if (sink == NULL);
 
-  /* linking without templates or caps should fail */
+  /* linking without templates or caps should work */
   ret = gst_pad_link (src, sink);
   ASSERT_OBJECT_REFCOUNT (src, "source pad", 1);
   ASSERT_OBJECT_REFCOUNT (sink, "sink pad", 1);
-  fail_unless (ret == GST_PAD_LINK_NOFORMAT);
+  fail_unless (ret == GST_PAD_LINK_OK);
 
   ASSERT_CRITICAL (gst_pad_get_pad_template (NULL));
 
@@ -88,6 +88,7 @@
   fail_if (sink == NULL);
 
   caps = gst_caps_from_string ("foo/bar");
+  gst_pad_set_active (src, TRUE);
   gst_pad_set_caps (src, caps);
   gst_pad_set_active (sink, TRUE);
   gst_pad_set_caps (sink, caps);
@@ -127,11 +128,15 @@
   /* one for me */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
 
-  fail_unless (gst_pad_set_caps (src, caps) == TRUE);
   /* can't set caps on flushing sinkpad */
+  fail_if (gst_pad_set_caps (src, caps) == TRUE);
   fail_if (gst_pad_set_caps (sink, caps) == TRUE);
   /* one for me and one for each set_caps */
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+
+  gst_pad_set_active (src, TRUE);
+  fail_unless (gst_pad_set_caps (src, caps) == TRUE);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   gst_pad_set_active (sink, TRUE);
   fail_unless (gst_pad_set_caps (sink, caps) == TRUE);
@@ -176,11 +181,15 @@
   caps = gst_caps_from_string ("foo/bar");
 
   sink = gst_pad_new ("sink", GST_PAD_SINK);
+  gst_pad_set_active (src, TRUE);
+  /* source pad is active and will accept the caps event */
   fail_unless (gst_pad_set_caps (src, caps) == TRUE);
+  /* sink pad is not active and will refuse the caps event */
   fail_if (gst_pad_set_caps (sink, caps) == TRUE);
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   gst_pad_set_active (sink, TRUE);
+  /* sink pad is now active and will accept the caps event */
   fail_unless (gst_pad_set_caps (sink, caps) == TRUE);
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
@@ -189,13 +198,9 @@
 
   gotcaps = gst_pad_get_allowed_caps (src);
   fail_if (gotcaps == NULL);
-#if 0
-  /* FIXME, does not work, caps events are different so the sinkpad loses caps
-   * when linking */
   fail_unless (gst_caps_is_equal (gotcaps, caps));
-#endif
 
-  ASSERT_CAPS_REFCOUNT (gotcaps, "gotcaps", 1);
+  ASSERT_CAPS_REFCOUNT (gotcaps, "gotcaps", 4);
   gst_caps_unref (gotcaps);
 
   gst_pad_unlink (src, sink);
@@ -214,13 +219,218 @@
 
 GST_END_TEST;
 
+static GstCaps *event_caps = NULL;
+
+static gboolean
+sticky_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  GstCaps *caps;
+
+  fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_CAPS);
+
+  /* Ensure we get here just once: */
+  fail_unless (event_caps == NULL);
+
+  /* The event must arrive before any buffer: */
+  fail_unless_equals_int (g_list_length (buffers), 0);
+
+  gst_event_parse_caps (event, &caps);
+  event_caps = gst_caps_ref (caps);
+
+  gst_event_unref (event);
+
+  return TRUE;
+}
+
+/* Tests whether caps get properly forwarded when pads
+   are initially unlinked */
+GST_START_TEST (test_sticky_caps_unlinked)
+{
+  GstCaps *caps;
+  GstPadTemplate *src_template, *sink_template;
+  GstPad *src, *sink;
+  GstEvent *event;
+
+  caps = gst_caps_from_string ("foo/bar, dummy=(int){1, 2}");
+  src_template = gst_pad_template_new ("src", GST_PAD_SRC,
+      GST_PAD_ALWAYS, caps);
+  sink_template = gst_pad_template_new ("sink", GST_PAD_SINK,
+      GST_PAD_ALWAYS, caps);
+  gst_caps_unref (caps);
+
+  src = gst_pad_new_from_template (src_template, "src");
+  fail_if (src == NULL);
+  sink = gst_pad_new_from_template (sink_template, "sink");
+  fail_if (sink == NULL);
+  gst_pad_set_event_function (sink, sticky_event);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+
+  gst_object_unref (src_template);
+  gst_object_unref (sink_template);
+
+  caps = gst_caps_from_string ("foo/bar, dummy=(int)1");
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+
+  event = gst_event_new_caps (caps);
+  gst_pad_set_active (src, TRUE);
+  fail_unless (gst_pad_push_event (src, event) == TRUE);
+  fail_unless (event_caps == NULL);
+
+  /* Linking and activating will not forward the sticky event yet... */
+  fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (src, sink)));
+  gst_pad_set_active (sink, TRUE);
+  fail_unless (event_caps == NULL);
+
+  /* ...but the first buffer will: */
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
+  fail_unless (event_caps == caps);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+
+  gst_caps_replace (&caps, NULL);
+  gst_caps_replace (&event_caps, NULL);
+
+  ASSERT_OBJECT_REFCOUNT (src, "src", 1);
+  ASSERT_OBJECT_REFCOUNT (sink, "sink", 1);
+  gst_object_unref (src);
+  gst_object_unref (sink);
+}
+
+GST_END_TEST;
+
+/* Same as test_sticky_caps_unlinked except that the source pad
+ * has a template of ANY and we will attempt to push
+ * incompatible caps */
+GST_START_TEST (test_sticky_caps_unlinked_incompatible)
+{
+  GstCaps *caps, *failcaps;
+  GstPadTemplate *src_template, *sink_template;
+  GstPad *src, *sink;
+  GstEvent *event;
+
+  /* Source pad has ANY caps
+   * Sink pad has foobar caps
+   * We will push the pony express caps (which should fail)
+   */
+  caps = gst_caps_new_any ();
+  src_template = gst_pad_template_new ("src", GST_PAD_SRC,
+      GST_PAD_ALWAYS, caps);
+  gst_caps_unref (caps);
+  caps = gst_caps_from_string ("foo/bar, dummy=(int){1, 2}");
+  sink_template = gst_pad_template_new ("sink", GST_PAD_SINK,
+      GST_PAD_ALWAYS, caps);
+  gst_caps_unref (caps);
+
+  src = gst_pad_new_from_template (src_template, "src");
+  fail_if (src == NULL);
+  sink = gst_pad_new_from_template (sink_template, "sink");
+  fail_if (sink == NULL);
+  gst_pad_set_event_function (sink, sticky_event);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+
+  gst_object_unref (src_template);
+  gst_object_unref (sink_template);
+
+  failcaps = gst_caps_from_string ("pony/express, failure=(boolean)true");
+  ASSERT_CAPS_REFCOUNT (failcaps, "caps", 1);
+
+  event = gst_event_new_caps (failcaps);
+  gst_caps_unref (failcaps);
+  gst_pad_set_active (src, TRUE);
+  /* The pad isn't linked yet, and anything matches the source pad template
+   * (which is ANY) */
+  fail_unless (gst_pad_push_event (src, event) == TRUE);
+  fail_unless (event_caps == NULL);
+
+  /* Linking and activating will not forward the sticky event yet... */
+  fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (src, sink)));
+  gst_pad_set_active (sink, TRUE);
+  fail_unless (event_caps == NULL);
+
+  /* ...but the first buffer will and should FAIL since the caps 
+   * are not compatible */
+  fail_unless (gst_pad_push (src,
+          gst_buffer_new ()) == GST_FLOW_NOT_NEGOTIATED);
+  /* We shouldn't have received the caps event since it's incompatible */
+  fail_unless (event_caps == NULL);
+  /* We shouldn't have received any buffers since caps are incompatible */
+  fail_unless_equals_int (g_list_length (buffers), 0);
+
+  gst_caps_replace (&event_caps, NULL);
+
+  ASSERT_OBJECT_REFCOUNT (src, "src", 1);
+  ASSERT_OBJECT_REFCOUNT (sink, "sink", 1);
+  gst_object_unref (src);
+  gst_object_unref (sink);
+}
+
+GST_END_TEST;
+
+/* Like test_sticky_caps_unlinked, but link before caps: */
+
+GST_START_TEST (test_sticky_caps_flushing)
+{
+  GstCaps *caps;
+  GstPadTemplate *src_template, *sink_template;
+  GstPad *src, *sink;
+  GstEvent *event;
+
+  caps = gst_caps_from_string ("foo/bar, dummy=(int){1, 2}");
+  src_template = gst_pad_template_new ("src", GST_PAD_SRC,
+      GST_PAD_ALWAYS, caps);
+  sink_template = gst_pad_template_new ("sink", GST_PAD_SINK,
+      GST_PAD_ALWAYS, caps);
+  gst_caps_unref (caps);
+
+  src = gst_pad_new_from_template (src_template, "src");
+  fail_if (src == NULL);
+  sink = gst_pad_new_from_template (sink_template, "sink");
+  fail_if (sink == NULL);
+  gst_pad_set_event_function (sink, sticky_event);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+
+  gst_object_unref (src_template);
+  gst_object_unref (sink_template);
+
+  fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (src, sink)));
+
+  caps = gst_caps_from_string ("foo/bar, dummy=(int)1");
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+
+  event = gst_event_new_caps (caps);
+  gst_pad_set_active (src, TRUE);
+  /* The caps event gets accepted by the source pad (and stored) */
+  fail_unless (gst_pad_push_event (src, event) == TRUE);
+  /* But wasn't forwarded since the sink pad is flushing (not activated) */
+  fail_unless (event_caps == NULL);
+
+  /* Activating will not forward the sticky event yet... */
+  gst_pad_set_active (sink, TRUE);
+  fail_unless (event_caps == NULL);
+
+  /* ...but the first buffer will: */
+  fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
+  fail_unless (event_caps == caps);
+  fail_unless_equals_int (g_list_length (buffers), 1);
+
+  gst_caps_replace (&caps, NULL);
+  gst_caps_replace (&event_caps, NULL);
+
+  ASSERT_OBJECT_REFCOUNT (src, "src", 1);
+  ASSERT_OBJECT_REFCOUNT (sink, "sink", 1);
+  gst_object_unref (src);
+  gst_object_unref (sink);
+}
+
+GST_END_TEST;
+
 static gboolean
 name_is_valid (const gchar * name, GstPadPresence presence)
 {
   GstPadTemplate *new;
-  GstCaps *any = GST_CAPS_ANY;
+  GstCaps *any = gst_caps_new_any ();
 
   new = gst_pad_template_new (name, GST_PAD_SRC, presence, any);
+  gst_caps_unref (any);
   if (new) {
     gst_object_unref (GST_OBJECT (new));
     return TRUE;
@@ -249,16 +459,15 @@
 
 GST_END_TEST;
 
-static GstProbeReturn
-_probe_handler (GstPad * pad, GstProbeType type, GstBuffer * buffer,
-    gpointer userdata)
+static GstPadProbeReturn
+_probe_handler (GstPad * pad, GstPadProbeInfo * info, gpointer userdata)
 {
   gint ret = GPOINTER_TO_INT (userdata);
 
   if (ret == 1)
-    return GST_PROBE_OK;
+    return GST_PAD_PROBE_OK;
 
-  return GST_PROBE_DROP;
+  return GST_PAD_PROBE_DROP;
 }
 
 GST_START_TEST (test_push_unlinked)
@@ -275,29 +484,32 @@
 
   caps = gst_caps_from_string ("foo/bar");
 
-  gst_pad_set_caps (src, caps);
-  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
-
   /* pushing on an inactive pad will return wrong state */
+  GST_DEBUG ("push buffer inactive");
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
-  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_WRONG_STATE);
+  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_FLUSHING);
   ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
   gst_buffer_unref (buffer);
 
   gst_pad_set_active (src, TRUE);
+  GST_DEBUG ("push caps event inactive");
+  gst_pad_set_caps (src, caps);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 2);
 
   /* pushing on an unlinked pad will drop the buffer */
+  GST_DEBUG ("push buffer unlinked");
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
   fail_unless (gst_pad_push (src, buffer) == GST_FLOW_NOT_LINKED);
   ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
   gst_buffer_unref (buffer);
 
-  /* adding a probe that returns FALSE will drop the buffer without trying
+  /* adding a probe that returns _DROP will drop the buffer without trying
    * to chain */
-  id = gst_pad_add_probe (src, GST_PROBE_TYPE_BUFFER,
-      (GstPadProbeCallback) _probe_handler, GINT_TO_POINTER (0), NULL);
+  GST_DEBUG ("push buffer drop");
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER,
+      _probe_handler, GINT_TO_POINTER (0), NULL);
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
   fail_unless (gst_pad_push (src, buffer) == GST_FLOW_OK);
@@ -305,10 +517,11 @@
   gst_buffer_unref (buffer);
   gst_pad_remove_probe (src, id);
 
-  /* adding a probe that returns TRUE will still chain the buffer,
+  /* adding a probe that returns _OK will still chain the buffer,
    * and hence drop because pad is unlinked */
-  id = gst_pad_add_probe (src, GST_PROBE_TYPE_BUFFER,
-      (GstPadProbeCallback) _probe_handler, GINT_TO_POINTER (1), NULL);
+  GST_DEBUG ("push buffer ok");
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER,
+      _probe_handler, GINT_TO_POINTER (1), NULL);
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
   fail_unless (gst_pad_push (src, buffer) == GST_FLOW_NOT_LINKED);
@@ -349,6 +562,7 @@
   /* one for me */
   ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
 
+  gst_pad_set_active (src, TRUE);
   gst_pad_set_caps (src, caps);
   gst_pad_set_active (sink, TRUE);
   gst_pad_set_caps (sink, caps);
@@ -360,17 +574,6 @@
   ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
 
   buffer = gst_buffer_new ();
-#if 0
-  /* FIXME, new pad should be flushing */
-  gst_buffer_ref (buffer);
-  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_WRONG_STATE);
-  gst_buffer_ref (buffer);
-  fail_unless (gst_pad_chain (sink, buffer) == GST_FLOW_WRONG_STATE);
-#endif
-
-  /* activate pads */
-  gst_pad_set_active (src, TRUE);
-  gst_pad_set_active (sink, TRUE);
 
   /* test */
   /* pushing on a linked pad will drop the ref to the buffer */
@@ -387,8 +590,8 @@
 
   /* adding a probe that returns FALSE will drop the buffer without trying
    * to chain */
-  id = gst_pad_add_probe (src, GST_PROBE_TYPE_BUFFER,
-      (GstPadProbeCallback) _probe_handler, GINT_TO_POINTER (0), NULL);
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER,
+      _probe_handler, GINT_TO_POINTER (0), NULL);
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
   fail_unless (gst_pad_push (src, buffer) == GST_FLOW_OK);
@@ -398,8 +601,8 @@
   fail_unless_equals_int (g_list_length (buffers), 0);
 
   /* adding a probe that returns TRUE will still chain the buffer */
-  id = gst_pad_add_probe (src, GST_PROBE_TYPE_BUFFER,
-      (GstPadProbeCallback) _probe_handler, GINT_TO_POINTER (1), NULL);
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER,
+      _probe_handler, GINT_TO_POINTER (1), NULL);
   buffer = gst_buffer_new ();
   gst_buffer_ref (buffer);
   fail_unless (gst_pad_push (src, buffer) == GST_FLOW_OK);
@@ -426,19 +629,103 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_push_linked_flushing)
+{
+  GstPad *src, *sink;
+  GstCaps *caps;
+  GstPadLinkReturn plr;
+  GstBuffer *buffer;
+  gulong id;
+
+  /* setup */
+  src = gst_pad_new ("src", GST_PAD_SRC);
+  fail_if (src == NULL);
+  sink = gst_pad_new ("sink", GST_PAD_SINK);
+  fail_if (sink == NULL);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+
+  caps = gst_pad_get_allowed_caps (src);
+  fail_unless (caps == NULL);
+  caps = gst_pad_get_allowed_caps (sink);
+  fail_unless (caps == NULL);
+
+  caps = gst_caps_from_string ("foo/bar");
+  /* one for me */
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+
+  gst_pad_set_active (src, TRUE);
+  gst_pad_set_caps (src, caps);
+  /* need to activate to make it accept the caps */
+  gst_pad_set_active (sink, TRUE);
+  gst_pad_set_caps (sink, caps);
+  /* one for me and one for each set_caps */
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+
+  plr = gst_pad_link (src, sink);
+  fail_unless (GST_PAD_LINK_SUCCESSFUL (plr));
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 3);
+
+  /* not activating the pads here, which keeps them flushing */
+  gst_pad_set_active (src, FALSE);
+  gst_pad_set_active (sink, FALSE);
+
+  /* pushing on a flushing pad will drop the buffer */
+  buffer = gst_buffer_new ();
+  gst_buffer_ref (buffer);
+  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_FLUSHING);
+  ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 0);
+  gst_buffer_unref (buffer);
+
+  gst_pad_set_active (src, TRUE);
+  gst_pad_set_active (sink, FALSE);
+
+  /* adding a probe that returns FALSE will drop the buffer without trying
+   * to chain */
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER, _probe_handler,
+      GINT_TO_POINTER (0), NULL);
+  buffer = gst_buffer_new ();
+  gst_buffer_ref (buffer);
+  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_OK);
+  ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 0);
+  gst_buffer_unref (buffer);
+  gst_pad_remove_probe (src, id);
+
+  /* adding a probe that returns TRUE will still chain the buffer,
+   * and hence drop because pad is flushing */
+  id = gst_pad_add_probe (src, GST_PAD_PROBE_TYPE_BUFFER, _probe_handler,
+      GINT_TO_POINTER (1), NULL);
+  buffer = gst_buffer_new ();
+  gst_buffer_ref (buffer);
+  fail_unless (gst_pad_push (src, buffer) == GST_FLOW_FLUSHING);
+  ASSERT_MINI_OBJECT_REFCOUNT (buffer, "buffer", 1);
+  fail_unless_equals_int (g_list_length (buffers), 0);
+  gst_buffer_unref (buffer);
+  gst_pad_remove_probe (src, id);
+
+  /* cleanup */
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+  ASSERT_OBJECT_REFCOUNT (src, "src", 1);
+  gst_pad_link (src, sink);
+  gst_object_unref (src);
+  gst_object_unref (sink);
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+  gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
 static GstBuffer *
 buffer_from_string (const gchar * str)
 {
   guint size;
   GstBuffer *buf;
-  gpointer data;
 
   size = strlen (str);
   buf = gst_buffer_new_and_alloc (size);
 
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-  memcpy (data, str, size);
-  gst_buffer_unmap (buf, data, size);
+  gst_buffer_fill (buf, 0, str, size);
 
   return buf;
 }
@@ -447,12 +734,12 @@
 buffer_compare (GstBuffer * buf, const gchar * str, gsize size)
 {
   gboolean res;
-  gpointer data;
+  GstMapInfo info;
 
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_READ);
-  res = memcmp (data, str, size) == 0;
-  GST_DEBUG ("%s <-> %s: %d", (gchar *) data, str, res);
-  gst_buffer_unmap (buf, data, size);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
+  res = memcmp (info.data, str, size) == 0;
+  GST_DEBUG ("%s <-> %s: %d", (gchar *) info.data, str, res);
+  gst_buffer_unmap (buf, &info);
 
   return res;
 }
@@ -476,6 +763,7 @@
 
   caps = gst_caps_from_string ("foo/bar");
 
+  gst_pad_set_active (src, TRUE);
   gst_pad_set_caps (src, caps);
   gst_pad_set_active (sink, TRUE);
   gst_pad_set_caps (sink, caps);
@@ -485,10 +773,6 @@
 
   list = gst_buffer_list_new ();
 
-  /* activate pads */
-  gst_pad_set_active (src, TRUE);
-  gst_pad_set_active (sink, TRUE);
-
   /* test */
   /* adding to a buffer list will drop the ref to the buffer */
   gst_buffer_list_add (list, buffer_from_string ("ListGroup"));
@@ -524,15 +808,10 @@
   GQuark quark;
 
   /* test some of the macros */
-  ret = GST_FLOW_UNEXPECTED;
-  fail_if (strcmp (gst_flow_get_name (ret), "unexpected"));
+  ret = GST_FLOW_EOS;
+  fail_if (strcmp (gst_flow_get_name (ret), "eos"));
   quark = gst_flow_to_quark (ret);
-  fail_if (strcmp (g_quark_to_string (quark), "unexpected"));
-
-  ret = GST_FLOW_RESEND;
-  fail_if (strcmp (gst_flow_get_name (ret), "resend"));
-  quark = gst_flow_to_quark (ret);
-  fail_if (strcmp (g_quark_to_string (quark), "resend"));
+  fail_if (strcmp (g_quark_to_string (quark), "eos"));
 
   /* custom returns */
   ret = GST_FLOW_CUSTOM_SUCCESS;
@@ -570,9 +849,9 @@
   GstPad *src, *sink;
   GstPadLinkReturn plr;
   GstCaps *srccaps =
-      gst_caps_from_string ("audio/x-raw-int,width={16,32},depth={16,32}");
+      gst_caps_from_string ("audio/x-raw,width={16,32},depth={16,32}");
   GstCaps *sinkcaps =
-      gst_caps_from_string ("audio/x-raw-int,width=32,depth={16,32}");
+      gst_caps_from_string ("audio/x-raw,width=32,depth={16,32}");
   GstPadTemplate *src_template;
   GstPadTemplate *sink_template;
   GstCaps *caps;
@@ -599,7 +878,7 @@
   gst_pad_set_active (src, TRUE);
   gst_pad_set_active (sink, TRUE);
 
-  caps = gst_caps_from_string ("audio/x-raw-int,width=16,depth=16");
+  caps = gst_caps_from_string ("audio/x-raw,width=16,depth=16");
 
   /* Should fail if src pad caps are incompatible with sink pad caps */
   gst_pad_set_caps (src, caps);
@@ -631,6 +910,7 @@
 
   caps = gst_caps_from_string ("foo/bar");
 
+  gst_pad_set_active (src, TRUE);
   gst_pad_set_caps (src, caps);
   gst_pad_set_active (sink, TRUE);
   gst_pad_set_caps (sink, caps);
@@ -666,6 +946,7 @@
 
   caps = gst_caps_from_string ("foo/bar");
 
+  gst_pad_set_active (src, TRUE);
   gst_pad_set_caps (src, caps);
   gst_pad_set_active (sink, TRUE);
   gst_pad_set_caps (sink, caps);
@@ -688,13 +969,12 @@
 
 static gulong id;
 
-static GstProbeReturn
-block_async_cb (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+block_async_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   gboolean *bool_user_data = (gboolean *) user_data;
 
-  fail_unless ((type & GST_PROBE_TYPE_BLOCK) != 0);
+  fail_unless ((info->type & GST_PAD_PROBE_TYPE_BLOCK) != 0);
 
   /* here we should have blocked == 0 unblocked == 0 */
   fail_unless (bool_user_data[0] == FALSE);
@@ -705,7 +985,7 @@
   gst_pad_remove_probe (pad, id);
   bool_user_data[1] = TRUE;
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_block_async)
@@ -719,7 +999,7 @@
   fail_unless (pad != NULL);
 
   gst_pad_set_active (pad, TRUE);
-  id = gst_pad_add_probe (pad, GST_PROBE_TYPE_BLOCK, block_async_cb, &data,
+  id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_cb, &data,
       NULL);
 
   fail_unless (data[0] == FALSE);
@@ -731,6 +1011,137 @@
 
 GST_END_TEST;
 
+static GstPadProbeReturn
+block_async_cb_return_ok (GstPad * pad, GstPadProbeInfo * info,
+    gpointer user_data)
+{
+  return GST_PAD_PROBE_OK;
+}
+
+static gpointer
+push_buffer_async (GstPad * pad)
+{
+  return GINT_TO_POINTER (gst_pad_push (pad, gst_buffer_new ()));
+}
+
+static void
+test_pad_blocking_with_type (GstPadProbeType type)
+{
+  GstPad *pad;
+  GThread *thread;
+  GstFlowReturn ret;
+
+  pad = gst_pad_new ("src", GST_PAD_SRC);
+  fail_unless (pad != NULL);
+
+  gst_pad_set_active (pad, TRUE);
+  id = gst_pad_add_probe (pad, type, block_async_cb_return_ok, NULL, NULL);
+
+
+  thread = g_thread_create ((GThreadFunc) push_buffer_async, pad, TRUE, NULL);
+
+  /* wait for the block */
+  while (!gst_pad_is_blocking (pad)) {
+    g_usleep (100000);
+  }
+
+  /* stop with flushing */
+  gst_pad_push_event (pad, gst_event_new_flush_start ());
+
+  /* get return value from push */
+  ret = GPOINTER_TO_INT (g_thread_join (thread));
+  /* unflush now */
+  gst_pad_push_event (pad, gst_event_new_flush_stop (FALSE));
+  /* must be wrong state */
+  fail_unless (ret == GST_FLOW_FLUSHING);
+
+  gst_object_unref (pad);
+}
+
+GST_START_TEST (test_pad_blocking_with_probe_type_block)
+{
+  test_pad_blocking_with_type (GST_PAD_PROBE_TYPE_BLOCK);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_pad_blocking_with_probe_type_blocking)
+{
+  test_pad_blocking_with_type (GST_PAD_PROBE_TYPE_BLOCKING);
+}
+
+GST_END_TEST;
+
+static gboolean got_notify;
+
+static void
+caps_notify (GstPad * pad, GParamSpec * spec, gpointer data)
+{
+  got_notify = TRUE;
+}
+
+static void
+test_queue_src_caps_notify (gboolean link_queue)
+{
+  GstElement *queue;
+  GstPad *src, *sink, *another_pad;
+
+  queue = gst_element_factory_make ("queue", NULL);
+  fail_unless (queue != NULL);
+
+  src = gst_element_get_static_pad (queue, "src");
+  fail_unless (src != NULL);
+
+  sink = gst_element_get_static_pad (queue, "sink");
+  fail_unless (sink != NULL);
+
+  if (link_queue) {
+    another_pad = gst_pad_new ("sink", GST_PAD_SINK);
+    fail_unless (another_pad != NULL);
+    gst_pad_set_active (another_pad, TRUE);
+
+    gst_pad_link_full (src, another_pad, GST_PAD_LINK_CHECK_NOTHING);
+  } else {
+    another_pad = NULL;
+  }
+
+  gst_element_set_state (queue, GST_STATE_PLAYING);
+
+  got_notify = FALSE;
+
+  g_signal_connect (src, "notify::caps", G_CALLBACK (caps_notify), NULL);
+
+  gst_pad_send_event (sink, gst_event_new_caps (gst_caps_from_string ("caps")));
+
+  g_usleep (10000);
+
+  fail_unless (got_notify == TRUE);
+
+  gst_element_set_state (queue, GST_STATE_NULL);
+
+  gst_object_unref (src);
+  gst_object_unref (sink);
+  gst_object_unref (queue);
+  if (another_pad) {
+    gst_object_unref (another_pad);
+  }
+}
+
+GST_START_TEST (test_queue_src_caps_notify_linked)
+{
+  test_queue_src_caps_notify (TRUE);
+}
+
+GST_END_TEST
+GST_START_TEST (test_queue_src_caps_notify_not_linked)
+{
+  /* This test will fail because queue doesn't set the caps
+     on src pad unless it is linked */
+  test_queue_src_caps_notify (FALSE);
+}
+
+GST_END_TEST;
+
 #if 0
 static void
 block_async_second (GstPad * pad, gboolean blocked, gpointer user_data)
@@ -797,16 +1208,15 @@
   *state = 2;
 }
 
-static GstProbeReturn
-block_async_full_cb (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer user_data)
+static GstPadProbeReturn
+block_async_full_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
   *(gint *) user_data = (gint) TRUE;
 
   gst_pad_push_event (pad, gst_event_new_flush_start ());
   GST_DEBUG ("setting state to 1");
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_block_async_full_destroy)
@@ -820,7 +1230,7 @@
   fail_unless (pad != NULL);
   gst_pad_set_active (pad, TRUE);
 
-  id = gst_pad_add_probe (pad, GST_PROBE_TYPE_BLOCK, block_async_full_cb,
+  id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_full_cb,
       &state, block_async_full_destroy);
   fail_unless (state == 0);
 
@@ -849,7 +1259,7 @@
   fail_unless (pad != NULL);
   gst_pad_set_active (pad, TRUE);
 
-  (void) gst_pad_add_probe (pad, GST_PROBE_TYPE_BLOCK, block_async_full_cb,
+  (void) gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK, block_async_full_cb,
       &state, block_async_full_destroy);
 
   gst_pad_push (pad, gst_buffer_new ());
@@ -894,15 +1304,15 @@
 }
 #endif
 
-static GstProbeReturn
-block_async_second_no_flush (GstPad * pad, GstProbeType type,
-    gpointer type_data, gpointer user_data)
+static GstPadProbeReturn
+block_async_second_no_flush (GstPad * pad, GstPadProbeInfo * info,
+    gpointer user_data)
 {
   gboolean *bool_user_data = (gboolean *) user_data;
 
   GST_DEBUG ("second probe called");
 
-  fail_unless (type & GST_PROBE_TYPE_BLOCK);
+  fail_unless (info->type & GST_PAD_PROBE_TYPE_BLOCK);
 
   fail_unless (bool_user_data[0] == TRUE);
   fail_unless (bool_user_data[1] == FALSE);
@@ -913,17 +1323,17 @@
   GST_DEBUG ("removing second probe with id %lu", id);
   gst_pad_remove_probe (pad, id);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-block_async_first_no_flush (GstPad * pad, GstProbeType type, gpointer type_data,
+static GstPadProbeReturn
+block_async_first_no_flush (GstPad * pad, GstPadProbeInfo * info,
     gpointer user_data)
 {
   static int n_calls = 0;
   gboolean *bool_user_data = (gboolean *) user_data;
 
-  fail_unless (type & GST_PROBE_TYPE_BLOCK);
+  fail_unless (info->type & GST_PAD_PROBE_TYPE_BLOCK);
 
   GST_DEBUG ("first probe called");
 
@@ -943,11 +1353,11 @@
   GST_DEBUG ("adding second probe");
   /* replace block_async_first with block_async_second so next time the pad is
    * blocked the latter should be called */
-  id = gst_pad_add_probe (pad, GST_PROBE_TYPE_BLOCK,
+  id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK,
       block_async_second_no_flush, user_data, NULL);
   GST_DEBUG ("added probe with id %lu", id);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_block_async_replace_callback_no_flush)
@@ -960,7 +1370,7 @@
   gst_pad_set_active (pad, TRUE);
 
   GST_DEBUG ("adding probe");
-  id = gst_pad_add_probe (pad, GST_PROBE_TYPE_BLOCK,
+  id = gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK,
       block_async_first_no_flush, bool_user_data, NULL);
   GST_DEBUG ("added probe with id %lu", id);
   fail_if (id == 0);
@@ -976,6 +1386,94 @@
 
 GST_END_TEST;
 
+static gint sticky_count;
+
+static gboolean
+test_sticky_events_handler (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+  GST_DEBUG_OBJECT (pad, "received event %" GST_PTR_FORMAT, event);
+
+  switch (sticky_count) {
+    case 0:
+      fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
+      break;
+    case 1:
+    {
+      GstCaps *caps;
+      GstStructure *s;
+
+      fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_CAPS);
+
+      gst_event_parse_caps (event, &caps);
+      fail_unless (gst_caps_get_size (caps) == 1);
+      s = gst_caps_get_structure (caps, 0);
+      fail_unless (gst_structure_has_name (s, "foo/baz"));
+      break;
+    }
+    case 2:
+      fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT);
+      break;
+    default:
+      fail_unless (FALSE);
+      break;
+  }
+
+  gst_event_unref (event);
+  sticky_count++;
+
+  return TRUE;
+}
+
+GST_START_TEST (test_sticky_events)
+{
+  GstPad *srcpad, *sinkpad;
+  GstCaps *caps;
+  GstSegment seg;
+
+  /* make unlinked srcpad */
+  srcpad = gst_pad_new ("src", GST_PAD_SRC);
+  fail_unless (srcpad != NULL);
+  gst_pad_set_active (srcpad, TRUE);
+
+  /* push an event, it should be sticky on the srcpad */
+  gst_pad_push_event (srcpad, gst_event_new_stream_start ());
+
+  /* make a caps event */
+  caps = gst_caps_new_empty_simple ("foo/bar");
+  gst_pad_push_event (srcpad, gst_event_new_caps (caps));
+  gst_caps_unref (caps);
+
+  /* make segment event */
+  gst_segment_init (&seg, GST_FORMAT_TIME);
+  gst_pad_push_event (srcpad, gst_event_new_segment (&seg));
+
+  /* now make a sinkpad */
+  sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
+  fail_unless (sinkpad != NULL);
+  sticky_count = 0;
+  gst_pad_set_event_function (sinkpad, test_sticky_events_handler);
+  fail_unless (sticky_count == 0);
+  gst_pad_set_active (sinkpad, TRUE);
+
+  /* link the pads */
+  gst_pad_link (srcpad, sinkpad);
+  /* should not trigger events */
+  fail_unless (sticky_count == 0);
+
+  /* caps replaces old caps event at position 2, the pushes all
+   * pending events */
+  caps = gst_caps_new_empty_simple ("foo/baz");
+  gst_pad_push_event (srcpad, gst_event_new_caps (caps));
+  gst_caps_unref (caps);
+
+  /* should have triggered 2 events */
+  fail_unless (sticky_count == 3);
+
+  gst_object_unref (srcpad);
+  gst_object_unref (sinkpad);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_pad_suite (void)
@@ -990,22 +1488,31 @@
   tcase_add_test (tc_chain, test_link);
   tcase_add_test (tc_chain, test_refcount);
   tcase_add_test (tc_chain, test_get_allowed_caps);
+  tcase_add_test (tc_chain, test_sticky_caps_unlinked);
+  tcase_add_test (tc_chain, test_sticky_caps_unlinked_incompatible);
+  tcase_add_test (tc_chain, test_sticky_caps_flushing);
   tcase_add_test (tc_chain, test_link_unlink_threaded);
   tcase_add_test (tc_chain, test_name_is_valid);
   tcase_add_test (tc_chain, test_push_unlinked);
   tcase_add_test (tc_chain, test_push_linked);
+  tcase_add_test (tc_chain, test_push_linked_flushing);
   tcase_add_test (tc_chain, test_push_buffer_list_compat);
   tcase_add_test (tc_chain, test_flowreturn);
   tcase_add_test (tc_chain, test_push_negotiation);
   tcase_add_test (tc_chain, test_src_unref_unlink);
   tcase_add_test (tc_chain, test_sink_unref_unlink);
   tcase_add_test (tc_chain, test_block_async);
+  tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_block);
+  tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_blocking);
+  tcase_add_test (tc_chain, test_queue_src_caps_notify_linked);
+  tcase_add_test (tc_chain, test_queue_src_caps_notify_not_linked);
 #if 0
   tcase_add_test (tc_chain, test_block_async_replace_callback);
 #endif
   tcase_add_test (tc_chain, test_block_async_full_destroy);
   tcase_add_test (tc_chain, test_block_async_full_destroy_dispose);
   tcase_add_test (tc_chain, test_block_async_replace_callback_no_flush);
+  tcase_add_test (tc_chain, test_sticky_events);
 
   return s;
 }
diff --git a/tests/check/gst/gstpipeline.c b/tests/check/gst/gstpipeline.c
index 97de541..899c017 100644
--- a/tests/check/gst/gstpipeline.c
+++ b/tests/check/gst/gstpipeline.c
@@ -238,7 +238,7 @@
 static GCond *probe_cond;
 
 static gboolean
-sink_pad_probe (GstPad * pad, GstProbeType type, GstBuffer * buffer,
+sink_pad_probe (GstPad * pad, GstPadProbeType type, GstBuffer * buffer,
     GstClockTime * first_timestamp)
 {
   fail_if (GST_BUFFER_TIMESTAMP (buffer) == GST_CLOCK_TIME_NONE,
@@ -274,7 +274,7 @@
   gst_element_link (fakesrc, fakesink);
 
   sink = gst_element_get_static_pad (fakesink, "sink");
-  gst_pad_add_probe (sink, GST_PROBE_TYPE_BUFFER,
+  gst_pad_add_probe (sink, GST_PAD_PROBE_TYPE_BUFFER,
       (GstPadProbeCallback) sink_pad_probe, &observed, NULL);
 
   fail_unless (gst_element_set_state (pipeline, GST_STATE_PAUSED)
diff --git a/tests/check/gst/gstplugin.c b/tests/check/gst/gstplugin.c
index 772a1b4..3db1150 100644
--- a/tests/check/gst/gstplugin.c
+++ b/tests/check/gst/gstplugin.c
@@ -50,26 +50,35 @@
 
 GST_START_TEST (test_registry)
 {
-  GList *g;
+  GList *list, *g;
   GstRegistry *registry;
 
-  registry = gst_registry_get_default ();
+  registry = gst_registry_get ();
 
-  for (g = registry->plugins; g; g = g->next) {
+  list = gst_registry_get_plugin_list (registry);
+  for (g = list; g; g = g->next) {
     GstPlugin *plugin = GST_PLUGIN (g->data);
 
-    ASSERT_OBJECT_REFCOUNT (plugin, "plugin in registry", 1);
+    /* one for the registry, one for the list */
     GST_DEBUG ("refcount %d %s", GST_OBJECT_REFCOUNT_VALUE (plugin),
         plugin->desc.name);
+    ASSERT_OBJECT_REFCOUNT (plugin, "plugin in registry", 2);
+
+    gst_object_unref (plugin);
   }
-  for (g = registry->features; g; g = g->next) {
+  g_list_free (list);
+
+  list = gst_registry_feature_filter (registry, NULL, FALSE, NULL);
+  for (g = list; g; g = g->next) {
     GstPluginFeature *feature = GST_PLUGIN_FEATURE (g->data);
 
-    fail_if (GST_OBJECT_REFCOUNT_VALUE (feature) != 1,
-        "Feature in registry should have refcount of 1");
+    /* one for the registry, one for the list */
     GST_DEBUG ("refcount %d %s", GST_OBJECT_REFCOUNT_VALUE (feature),
         GST_OBJECT_NAME (feature));
+    ASSERT_OBJECT_REFCOUNT (feature, "feature in registry", 2);
+    gst_object_unref (feature);
   }
+  g_list_free (list);
 }
 
 GST_END_TEST;
@@ -79,7 +88,8 @@
   GstPlugin *unloaded_plugin;
   GstPlugin *loaded_plugin;
 
-  unloaded_plugin = gst_default_registry_find_plugin ("coreelements");
+  unloaded_plugin = gst_registry_find_plugin (gst_registry_get (),
+      "coreelements");
   fail_if (unloaded_plugin == NULL, "Failed to find coreelements plugin");
   fail_if (GST_OBJECT_REFCOUNT_VALUE (unloaded_plugin) != 2,
       "Refcount of unloaded plugin in registry initially should be 2");
@@ -108,11 +118,11 @@
   GList *list;
   GstPlugin *plugin;
 
-  plugin = gst_default_registry_find_plugin ("coreelements");
+  plugin = gst_registry_find_plugin (gst_registry_get (), "coreelements");
   fail_if (GST_OBJECT_REFCOUNT_VALUE (plugin) != 2,
       "Refcount of plugin in registry should be 2");
 
-  list = gst_registry_get_plugin_list (gst_registry_get_default ());
+  list = gst_registry_get_plugin_list (gst_registry_get ());
 
   fail_if (GST_OBJECT_REFCOUNT_VALUE (plugin) != 3,
       "Refcount of plugin in registry+list should be 3");
@@ -131,8 +141,7 @@
 {
   GstPlugin *plugin;
 
-  plugin = gst_registry_find_plugin (gst_registry_get_default (),
-      "coreelements");
+  plugin = gst_registry_find_plugin (gst_registry_get (), "coreelements");
   fail_if (plugin == NULL, "Failed to find coreelements plugin");
   ASSERT_OBJECT_REFCOUNT (plugin, "plugin", 2);
 
@@ -152,7 +161,7 @@
 {
   GstPluginFeature *feature;
 
-  feature = gst_registry_find_feature (gst_registry_get_default (),
+  feature = gst_registry_find_feature (gst_registry_get (),
       "identity", GST_TYPE_ELEMENT_FACTORY);
   fail_if (feature == NULL, "Failed to find identity element factory");
   fail_if (strcmp (feature->plugin_name, "coreelements"),
@@ -213,7 +222,7 @@
       "Refcount of plugin in registry should be 2");
   fail_if (gst_plugin_is_loaded (plugin), "Expected plugin to be unloaded");
 
-  feature = gst_registry_find_feature (gst_registry_get_default (),
+  feature = gst_registry_find_feature (gst_registry_get (),
       "audio/x-au", GST_TYPE_TYPE_FIND_FACTORY);
   fail_if (feature == NULL, "Failed to find audio/x-aw typefind factory");
   fail_if (feature->plugin != plugin,
@@ -236,6 +245,9 @@
 GST_END_TEST;
 #endif
 
+#define gst_default_registry_check_feature_version(name,a,b,c) \
+    gst_registry_check_feature_version(gst_registry_get(),(name),(a),(b),(c))
+
 GST_START_TEST (test_version_checks)
 {
   fail_if (gst_default_registry_check_feature_version ("identity",
diff --git a/tests/check/gst/gstpreset.c b/tests/check/gst/gstpreset.c
index 3e624a0..6e4f545 100644
--- a/tests/check/gst/gstpreset.c
+++ b/tests/check/gst/gstpreset.c
@@ -249,7 +249,7 @@
   gchar *preset_file_name;
 
   preset_file_name = g_build_filename (g_get_user_data_dir (),
-      "gstreamer-" GST_MAJORMINOR, "presets", "GstPresetTest.prs", NULL);
+      "gstreamer-" GST_API_VERSION, "presets", "GstPresetTest.prs", NULL);
   g_unlink (preset_file_name);
   g_free (preset_file_name);
 }
@@ -283,7 +283,7 @@
 
   /* check if we can create presets */
   gst_dir = g_build_filename (g_get_user_data_dir (),
-      "gstreamer-" GST_MAJORMINOR, NULL);
+      "gstreamer-" GST_API_VERSION, NULL);
   can_write = (g_access (gst_dir, R_OK | W_OK | X_OK) == 0);
   g_free (gst_dir);
 
diff --git a/tests/check/gst/gstregistry.c b/tests/check/gst/gstregistry.c
index 91190cc..13d9772 100644
--- a/tests/check/gst/gstregistry.c
+++ b/tests/check/gst/gstregistry.c
@@ -59,7 +59,7 @@
     feature = GST_PLUGIN_FEATURE (f->data);
 
     GST_LOG ("%s:    feature: %p %s", marker, feature,
-        gst_plugin_feature_get_name (feature));
+        GST_OBJECT_NAME (feature));
   }
   gst_plugin_feature_list_free (features);
 }
@@ -71,12 +71,12 @@
   GstRegistry *registry;
   GList *plugins_before, *plugins_after, *l;
 
-  registry = gst_registry_get_default ();
+  registry = gst_registry_get ();
   fail_unless (registry != NULL);
   ASSERT_OBJECT_REFCOUNT (registry, "default registry", 1);
 
   /* refcount should still be 1 the second time */
-  registry = gst_registry_get_default ();
+  registry = gst_registry_get ();
   fail_unless (registry != NULL);
   ASSERT_OBJECT_REFCOUNT (registry, "default registry", 1);
 
diff --git a/tests/check/gst/gstsegment.c b/tests/check/gst/gstsegment.c
index ca78aa0..ecd8b06 100644
--- a/tests/check/gst/gstsegment.c
+++ b/tests/check/gst/gstsegment.c
@@ -41,6 +41,7 @@
   fail_unless (segment.stop == -1);
   fail_unless (update == TRUE);
 
+#if 0
   /* configure segment to stop relative, should not do anything since 
    * size is unknown. */
   gst_segment_do_seek (&segment, 1.0,
@@ -50,6 +51,7 @@
   fail_unless (segment.start == 100);
   fail_unless (segment.stop == -1);
   fail_unless (update == FALSE);
+#endif
 
   /* do some clipping on the open range */
   /* completely outside */
@@ -124,7 +126,7 @@
   gst_segment_do_seek (&segment, 1.0,
       GST_FORMAT_BYTES,
       GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 100, GST_SEEK_TYPE_SET, 300, &update);
+      GST_SEEK_TYPE_SET, 100 + 100, GST_SEEK_TYPE_SET, 300, &update);
   fail_unless (segment.start == 200);
   fail_unless (segment.stop == 300);
   fail_unless (update == TRUE);
@@ -136,7 +138,7 @@
   ASSERT_CRITICAL (gst_segment_do_seek (&segment, 1.0,
           GST_FORMAT_BYTES,
           GST_SEEK_FLAG_NONE,
-          GST_SEEK_TYPE_CUR, 100, GST_SEEK_TYPE_SET, 200, &update));
+          GST_SEEK_TYPE_SET, 200 + 100, GST_SEEK_TYPE_SET, 200, &update));
   fail_unless (segment.start == 200);
   fail_unless (segment.stop == 300);
   /* update didn't change */
@@ -241,16 +243,6 @@
   fail_unless (segment.stop == -1);
   fail_unless (update == TRUE);
 
-  /* configure segment to stop relative, does not update stop
-   * since we did not set it before. */
-  gst_segment_do_seek (&segment, 1.0,
-      GST_FORMAT_BYTES,
-      GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, 200, GST_SEEK_TYPE_CUR, -100, &update);
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == -1);
-  fail_unless (update == FALSE);
-
   /* do some clipping on the open range */
   /* completely outside */
   res = gst_segment_clip (&segment, GST_FORMAT_BYTES, 0, 50, &cstart, &cstop);
@@ -280,13 +272,6 @@
   fail_unless (cstart == 150);
   fail_unless (cstop == 200);
 
-  /* partially inside, clip to size */
-  res = gst_segment_clip (&segment, GST_FORMAT_BYTES,
-      150, 300, &cstart, &cstop);
-  fail_unless (res == TRUE);
-  fail_unless (cstart == 150);
-  fail_unless (cstop == 200);
-
   /* invalid start */
   res = gst_segment_clip (&segment, GST_FORMAT_BYTES, -1, 100, &cstart, &cstop);
   fail_unless (res == FALSE);
@@ -313,7 +298,7 @@
   gst_segment_do_seek (&segment, 1.0,
       GST_FORMAT_BYTES,
       GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 100, GST_SEEK_TYPE_SET, 300, &update);
+      GST_SEEK_TYPE_SET, 100 + 100, GST_SEEK_TYPE_SET, 300, &update);
   fail_unless (segment.start == 200);
   fail_unless (segment.stop == 200);
 
@@ -322,7 +307,7 @@
   gst_segment_do_seek (&segment, 1.0,
       GST_FORMAT_BYTES,
       GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 100, GST_SEEK_TYPE_SET, 200, &update);
+      GST_SEEK_TYPE_SET, 200 + 100, GST_SEEK_TYPE_SET, 200, &update);
   fail_unless (segment.start == 200);
   fail_unless (segment.stop == 200);
   fail_unless (update == FALSE);
@@ -427,7 +412,7 @@
   gst_segment_do_seek (&segment, -1.0,
       GST_FORMAT_BYTES,
       GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_SET, 10, GST_SEEK_TYPE_CUR, -20, &update);
+      GST_SEEK_TYPE_SET, 10, GST_SEEK_TYPE_SET, 100 - 20, &update);
   fail_unless (segment.start == 10);
   fail_unless (segment.stop == 80);
   fail_unless (segment.time == 10);
@@ -561,6 +546,7 @@
   fail_unless (segment.stop == 200);
   fail_unless (segment.duration == 200);
 
+#if 0
   /* add 300 to the start, this should be clamped to the duration */
   gst_segment_do_seek (&segment, 2.0,
       GST_FORMAT_BYTES, GST_SEEK_FLAG_NONE,
@@ -577,6 +563,7 @@
   fail_unless (segment.start == 0);
   fail_unless (segment.stop == 200);
   fail_unless (segment.duration == 200);
+#endif
 }
 
 GST_END_TEST;
diff --git a/tests/check/gst/gststructure.c b/tests/check/gst/gststructure.c
index 4608ec8..3428d17 100644
--- a/tests/check/gst/gststructure.c
+++ b/tests/check/gst/gststructure.c
@@ -27,16 +27,16 @@
 GST_START_TEST (test_from_string_int)
 {
   const char *strings[] = {
-    "video/x-raw-rgb, width = (int) 123456",
-    "video/x-raw-rgb, stride = (int) -123456",
-    "video/x-raw-rgb, red_mask = (int) 0xFFFF",
-    "video/x-raw-rgb, red_mask = (int) 0x0000FFFF",
-    "video/x-raw-rgb, red_mask = (int) 0x7FFFFFFF",
-    "video/x-raw-rgb, red_mask = (int) 0x80000000",
-    "video/x-raw-rgb, red_mask = (int) 0xFF000000",
+    "video/x-raw, width = (int) 123456",
+    "video/x-raw, stride = (int) -123456",
+    "video/x-raw, red_mask = (int) 0xFFFF",
+    "video/x-raw, red_mask = (int) 0x0000FFFF",
+    "video/x-raw, red_mask = (int) 0x7FFFFFFF",
+    "video/x-raw, red_mask = (int) 0x80000000",
+    "video/x-raw, red_mask = (int) 0xFF000000",
     /* result from
      * gst-launch ... ! "video/x-raw-rgb, red_mask=(int)0xFF000000" ! ... */
-    "video/x-raw-rgb,\\ red_mask=(int)0xFF000000",
+    "video/x-raw,\\ red_mask=(int)0xFF000000",
   };
   gint results[] = {
     123456,
@@ -183,12 +183,12 @@
 {
   GstStructure *st1;
 
-  ASSERT_CRITICAL (st1 = gst_structure_new ("Foo\nwith-newline", NULL));
+  ASSERT_CRITICAL (st1 = gst_structure_new_empty ("Foo\nwith-newline"));
   fail_unless (st1 == NULL);
 
-  ASSERT_CRITICAL (st1 = gst_structure_new ("Foo with whitespace", NULL));
+  ASSERT_CRITICAL (st1 = gst_structure_new_empty ("Foo with whitespace"));
   fail_unless (st1 == NULL);
-  ASSERT_CRITICAL (st1 = gst_structure_new ("1st", NULL));
+  ASSERT_CRITICAL (st1 = gst_structure_new_empty ("1st"));
   fail_unless (st1 == NULL);
 }
 
@@ -317,12 +317,12 @@
 
   domain = g_quark_from_static_string ("test");
   e = g_error_new (domain, 0, "a test error");
-  s = gst_structure_new ("name", "key", GST_TYPE_G_ERROR, e, NULL);
+  s = gst_structure_new ("name", "key", G_TYPE_ERROR, e, NULL);
   g_error_free (e);
   gst_structure_free (s);
 
-  ASSERT_CRITICAL (gst_structure_free (gst_structure_new
-          ("0.10:decoder-video/mpeg", NULL)));
+  ASSERT_CRITICAL (gst_structure_free (gst_structure_new_empty
+          ("0.10:decoder-video/mpeg")));
 
   /* make sure we bail out correctly in case of an error or if parsing fails */
   ASSERT_CRITICAL (s = gst_structure_new ("^joo\nba\ndoo^",
@@ -369,7 +369,7 @@
   gst_value_set_fraction (&frac, 10, 1);
   gst_value_list_append_value (&list, &frac);
 
-  s = gst_structure_new ("name", NULL);
+  s = gst_structure_new_empty ("name");
   gst_structure_set_value (s, "frac", &list);
   g_value_unset (&frac);
   g_value_unset (&list);
@@ -403,6 +403,24 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_is_subset)
+{
+  GstStructure *s1, *s2;
+
+  s1 = gst_structure_from_string ("test/test, channels=(int){ 1, 2 }", NULL);
+  fail_if (s1 == NULL);
+  s2 = gst_structure_from_string ("test/test, channels=(int)[ 1, 2 ]", NULL);
+  fail_if (s2 == NULL);
+
+  fail_unless (gst_structure_is_subset (s1, s2));
+
+  gst_structure_free (s1);
+  gst_structure_free (s2);
+}
+
+GST_END_TEST;
+
+
 GST_START_TEST (test_structure_nested)
 {
   GstStructure *sp, *sc1, *sc2;
@@ -487,6 +505,7 @@
   GstBuffer *buf, *buf2;
   gboolean ret;
   GstCaps *caps, *caps2;
+  GstMapInfo info;
   gdouble d;
   gint64 i64;
   gchar *c;
@@ -495,13 +514,14 @@
 
   buf = gst_buffer_new_and_alloc (3);
 
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
+  fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+  data = info.data;
   data[0] = 0xf0;
   data[1] = 0x66;
   data[2] = 0x0d;
-  gst_buffer_unmap (buf, data, 3);
+  gst_buffer_unmap (buf, &info);
 
-  caps = gst_caps_new_simple ("video/x-foo", NULL);
+  caps = gst_caps_new_empty_simple ("video/x-foo");
 
   s = gst_structure_new ("test", "int", G_TYPE_INT, 12345678, "string",
       G_TYPE_STRING, "Hello World!", "buf", GST_TYPE_BUFFER, buf, "caps",
@@ -604,6 +624,7 @@
   tcase_add_test (tc_chain, test_structure_new);
   tcase_add_test (tc_chain, test_fixate);
   tcase_add_test (tc_chain, test_fixate_frac_list);
+  tcase_add_test (tc_chain, test_is_subset);
   tcase_add_test (tc_chain, test_structure_nested);
   tcase_add_test (tc_chain, test_structure_nested_from_and_to_string);
   tcase_add_test (tc_chain, test_vararg_getters);
diff --git a/tests/check/gst/gstsystemclock.c b/tests/check/gst/gstsystemclock.c
index 2207667..5c9304c 100644
--- a/tests/check/gst/gstsystemclock.c
+++ b/tests/check/gst/gstsystemclock.c
@@ -608,7 +608,7 @@
   /* register a periodic shot on the master to calibrate the slave */
   g_mutex_lock (af_lock);
   clockid = gst_clock_new_periodic_id (master,
-      gst_clock_get_time (master), slave->timeout);
+      gst_clock_get_time (master), gst_clock_get_timeout (slave));
   gst_clock_id_wait_async_full (clockid,
       (GstClockCallback) test_async_full_slave_callback,
       gst_object_ref (slave), (GDestroyNotify) gst_object_unref);
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index 11249df..b690e2d 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -67,7 +67,7 @@
 #define NEW_LIST_FIXED(mode)                                    \
 G_STMT_START {                                                  \
   if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new ();                                   \
+  list = gst_tag_list_new_empty ();                                   \
   gst_tag_list_add (list, mode, FTAG, FIXED1, FTAG, FIXED2,     \
                     FTAG, FIXED3, FTAG, FIXED4, NULL);          \
   mark_point();                                                 \
@@ -76,7 +76,7 @@
 #define NEW_LIST_UNFIXED(mode)                                  \
 G_STMT_START {                                                  \
   if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new ();                                   \
+  list = gst_tag_list_new_empty ();                                   \
   gst_tag_list_add (list, mode, UTAG, UNFIXED1, UTAG, UNFIXED2, \
                     UTAG, UNFIXED3, UTAG, UNFIXED4, NULL);      \
   mark_point();                                                 \
@@ -85,11 +85,11 @@
 #define NEW_LISTS_FIXED(mode)                                   \
 G_STMT_START {                                                  \
   if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new ();                                   \
+  list = gst_tag_list_new_empty ();                                   \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1,   \
                     FTAG, FIXED2, NULL);                        \
   if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new ();                                  \
+  list2 = gst_tag_list_new_empty ();                                  \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3,  \
                     FTAG, FIXED4, NULL);                        \
   if (merge) gst_tag_list_free (merge);                         \
@@ -100,11 +100,11 @@
 #define NEW_LISTS_UNFIXED(mode)                                 \
 G_STMT_START {                                                  \
   if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new ();                                   \
+  list = gst_tag_list_new_empty ();                                   \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, UTAG, UNFIXED1, \
                     UTAG, UNFIXED2, NULL);                      \
   if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new ();                                  \
+  list2 = gst_tag_list_new_empty ();                                  \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, UTAG, UNFIXED3,\
                     UTAG, UNFIXED4, NULL);                      \
   if (merge) gst_tag_list_free (merge);                         \
@@ -117,7 +117,7 @@
   if (list) gst_tag_list_free (list);                           \
   list = NULL;                                                  \
   if (list2) gst_tag_list_free (list2);                         \
-  list2 = gst_tag_list_new ();                                  \
+  list2 = gst_tag_list_new_empty ();                                  \
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3,  \
                     FTAG, FIXED4, NULL);                        \
   if (merge) gst_tag_list_free (merge);                         \
@@ -128,7 +128,7 @@
 #define NEW_LISTS_EMPTY2(mode)                                   \
 G_STMT_START {                                                  \
   if (list) gst_tag_list_free (list);                           \
-  list = gst_tag_list_new ();                                   \
+  list = gst_tag_list_new_empty ();                                   \
   gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1,   \
                     FTAG, FIXED2, NULL);                        \
   if (list2) gst_tag_list_free (list2);                         \
@@ -271,16 +271,17 @@
   gchar *str;
 
   date = g_date_new_dmy (14, 10, 2005);
-  tag_list = gst_tag_list_new ();
+  tag_list = gst_tag_list_new_empty ();
   gst_tag_list_add (tag_list, GST_TAG_MERGE_APPEND, GST_TAG_DATE, date, NULL);
 
-  str = gst_structure_to_string (tag_list);
+  str = gst_tag_list_to_string (tag_list);
   fail_if (str == NULL);
   fail_if (strstr (str, "2005-10-14") == NULL);
 
-  tag_list2 = gst_structure_from_string (str, NULL);
+  tag_list2 = gst_tag_list_new_from_string (str);
   fail_if (tag_list2 == NULL);
   fail_if (!gst_tag_list_get_date (tag_list2, GST_TAG_DATE, &date2));
+  fail_unless (gst_tag_list_is_equal (tag_list2, tag_list));
   gst_tag_list_free (tag_list2);
   g_free (str);
 
@@ -303,7 +304,7 @@
 {
   GstTagList *taglist;
 
-  taglist = gst_tag_list_new ();
+  taglist = gst_tag_list_new_empty ();
   fail_unless (GST_IS_TAG_LIST (taglist));
   fail_unless (gst_is_tag_list (taglist));
   gst_tag_list_free (taglist);
@@ -316,7 +317,7 @@
 
   /* check gst_tag_list_is_empty */
   ASSERT_CRITICAL (gst_tag_list_is_empty (NULL));
-  taglist = gst_tag_list_new ();
+  taglist = gst_tag_list_new_empty ();
   fail_unless (gst_tag_list_is_empty (taglist));
   gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "JD", NULL);
   fail_if (gst_tag_list_is_empty (taglist));
@@ -330,7 +331,7 @@
   GstTagList *taglist;
   guint8 foobar[2] = { 0xff, 0x00 };    /* not UTF-8 */
 
-  taglist = gst_tag_list_new ();
+  taglist = gst_tag_list_new_empty ();
   fail_unless (taglist != NULL);
 
   ASSERT_WARNING (gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND,
@@ -349,7 +350,7 @@
   GstTagList *tags;
   GstBuffer *buf1, *buf2;
 
-  tags = gst_tag_list_new ();
+  tags = gst_tag_list_new_empty ();
   buf1 = gst_buffer_new_and_alloc (222);
   buf2 = gst_buffer_new_and_alloc (100);
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, buf1,
@@ -392,7 +393,7 @@
   if (GST_VERSION_NANO != 1)
     return;
 
-  tags = gst_tag_list_new ();
+  tags = gst_tag_list_new_empty ();
   ASSERT_WARNING (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
           GST_TAG_ARTIST, NULL, NULL));
   ASSERT_WARNING (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
@@ -410,7 +411,7 @@
   gdouble track_gain;
   guint track_num;
 
-  tags = gst_tag_list_new_full (GST_TAG_ARTIST, "Arty Ist",
+  tags = gst_tag_list_new (GST_TAG_ARTIST, "Arty Ist",
       GST_TAG_TRACK_NUMBER, 9, GST_TAG_TRACK_GAIN, 4.242, GST_TAG_TITLE,
       "Title!", NULL);
 
@@ -436,7 +437,7 @@
   GstTagList *tags;
   gchar *artists = NULL;
 
-  tags = gst_tag_list_new ();
+  tags = gst_tag_list_new_empty ();
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Yay", NULL);
@@ -452,6 +453,43 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_equal)
+{
+  GstTagList *tags, *tags2;
+
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Yay", NULL);
+
+  tags2 = gst_tag_list_new_empty ();
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Yay", NULL);
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
+  fail_unless (gst_tag_list_is_equal (tags2, tags));
+
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_REFERENCE_LEVEL,
+      9.87654321, NULL);
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_REFERENCE_LEVEL,
+      9.87654320, NULL);
+  /* want these two double values to be equal despite minor differences */
+  fail_unless (gst_tag_list_is_equal (tags2, tags));
+
+  /* want this to be unequal though, difference too large */
+  gst_tag_list_add (tags2, GST_TAG_MERGE_REPLACE, GST_TAG_REFERENCE_LEVEL,
+      9.87654310, NULL);
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+
+  gst_tag_list_free (tags);
+  gst_tag_list_free (tags2);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_tag_suite (void)
 {
@@ -469,6 +507,7 @@
   tcase_add_test (tc_chain, test_buffer_tags);
   tcase_add_test (tc_chain, test_empty_tags);
   tcase_add_test (tc_chain, test_new_full);
+  tcase_add_test (tc_chain, test_equal);
 
   return s;
 }
diff --git a/tests/check/gst/gsttagsetter.c b/tests/check/gst/gsttagsetter.c
index b25ea8d..6acdbd3 100644
--- a/tests/check/gst/gsttagsetter.c
+++ b/tests/check/gst/gsttagsetter.c
@@ -90,13 +90,13 @@
 
   setter = GST_TAG_SETTER (enc);
 
-  list1 = gst_tag_list_new ();
+  list1 = gst_tag_list_new_empty ();
   gst_tag_list_add (list1, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "artist1",
       NULL);
   gst_tag_setter_merge_tags (setter, list1, GST_TAG_MERGE_APPEND);
   assert_tag_setter_list_length (setter, 1);
 
-  list2 = gst_tag_list_new ();
+  list2 = gst_tag_list_new_empty ();
   gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "artist2",
       GST_TAG_TITLE, "title1", NULL);
   gst_tag_setter_merge_tags (setter, list2, GST_TAG_MERGE_APPEND);
@@ -135,8 +135,8 @@
       fail_unless (enc != NULL);
 
       setter = GST_TAG_SETTER (enc);
-      list1 = gst_tag_list_new ();
-      list2 = gst_tag_list_new ();
+      list1 = gst_tag_list_new_empty ();
+      list2 = gst_tag_list_new_empty ();
 
       /* i = 0: -     -
        * i = 1: list1 -
@@ -185,8 +185,8 @@
       fail_unless (enc != NULL);
 
       setter = GST_TAG_SETTER (enc);
-      list1 = gst_tag_list_new ();
-      list2 = gst_tag_list_new ();
+      list1 = gst_tag_list_new_empty ();
+      list2 = gst_tag_list_new_empty ();
 
       if (i == 1) {
         gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST,
diff --git a/tests/check/gst/gsttask.c b/tests/check/gst/gsttask.c
index e7b169a..824f926 100644
--- a/tests/check/gst/gsttask.c
+++ b/tests/check/gst/gsttask.c
@@ -21,10 +21,10 @@
 
 #include <gst/check/gstcheck.h>
 
-static GMutex *task_lock;
-static GCond *task_cond;
+static GMutex task_lock;
+static GCond task_cond;
 
-static GStaticRecMutex task_mutex = G_STATIC_REC_MUTEX_INIT;
+static GRecMutex task_mutex;
 
 static void
 task_func2 (void *data)
@@ -32,10 +32,10 @@
   gboolean ret;
   GstTask *t = *((GstTask **) data);
 
-  g_mutex_lock (task_lock);
+  g_mutex_lock (&task_lock);
   GST_DEBUG ("signal");
-  g_cond_signal (task_cond);
-  g_mutex_unlock (task_lock);
+  g_cond_signal (&task_cond);
+  g_mutex_unlock (&task_lock);
 
   ASSERT_WARNING (ret = gst_task_join (t));
   fail_unless (ret == FALSE);
@@ -46,23 +46,24 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_create (task_func2, &t);
+  t = gst_task_new (task_func2, &t);
   fail_if (t == NULL);
 
+  g_rec_mutex_init (&task_mutex);
   gst_task_set_lock (t, &task_mutex);
 
-  task_cond = g_cond_new ();
-  task_lock = g_mutex_new ();
+  g_cond_init (&task_cond);
+  g_mutex_init (&task_lock);
 
-  g_mutex_lock (task_lock);
+  g_mutex_lock (&task_lock);
   GST_DEBUG ("starting");
   ret = gst_task_start (t);
   fail_unless (ret == TRUE);
   /* wait for it to spin up */
   GST_DEBUG ("waiting");
-  g_cond_wait (task_cond, task_lock);
+  g_cond_wait (&task_cond, &task_lock);
   GST_DEBUG ("done waiting");
-  g_mutex_unlock (task_lock);
+  g_mutex_unlock (&task_lock);
 
   GST_DEBUG ("joining");
   ret = gst_task_join (t);
@@ -78,10 +79,10 @@
 static void
 task_func (void *data)
 {
-  g_mutex_lock (task_lock);
+  g_mutex_lock (&task_lock);
   GST_DEBUG ("signal");
-  g_cond_signal (task_cond);
-  g_mutex_unlock (task_lock);
+  g_cond_signal (&task_cond);
+  g_mutex_unlock (&task_lock);
 }
 
 GST_START_TEST (test_lock_start)
@@ -89,23 +90,24 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_create (task_func, NULL);
+  t = gst_task_new (task_func, NULL);
   fail_if (t == NULL);
 
+  g_rec_mutex_init (&task_mutex);
   gst_task_set_lock (t, &task_mutex);
 
-  task_cond = g_cond_new ();
-  task_lock = g_mutex_new ();
+  g_cond_init (&task_cond);
+  g_mutex_init (&task_lock);
 
-  g_mutex_lock (task_lock);
+  g_mutex_lock (&task_lock);
   GST_DEBUG ("starting");
   ret = gst_task_start (t);
   fail_unless (ret == TRUE);
   /* wait for it to spin up */
   GST_DEBUG ("waiting");
-  g_cond_wait (task_cond, task_lock);
+  g_cond_wait (&task_cond, &task_lock);
   GST_DEBUG ("done waiting");
-  g_mutex_unlock (task_lock);
+  g_mutex_unlock (&task_lock);
 
   /* cannot set mutex now */
   ASSERT_WARNING (gst_task_set_lock (t, &task_mutex));
@@ -126,9 +128,10 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_create (task_func, NULL);
+  t = gst_task_new (task_func, NULL);
   fail_if (t == NULL);
 
+  g_rec_mutex_init (&task_mutex);
   gst_task_set_lock (t, &task_mutex);
 
   GST_DEBUG ("pause");
@@ -153,7 +156,7 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_create (task_func, NULL);
+  t = gst_task_new (task_func, NULL);
   fail_if (t == NULL);
 
   /* stop should be possible without lock */
@@ -179,7 +182,7 @@
 {
   GstTask *t;
 
-  t = gst_task_create (task_func, NULL);
+  t = gst_task_new (task_func, NULL);
   fail_if (t == NULL);
 
   gst_object_unref (t);
diff --git a/tests/check/gst/gsttoc.c b/tests/check/gst/gsttoc.c
new file mode 100644
index 0000000..5e936db
--- /dev/null
+++ b/tests/check/gst/gsttoc.c
@@ -0,0 +1,365 @@
+/* GStreamer
+ *
+ * unit test for GstToc
+ *
+ * Copyright (C) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/*  -------  TOC  -------
+ *           /  \
+ *   edition1    edition2
+ *   |           |
+ *   -chapter1   -chapter3
+ *   -chapter2    |
+ *                -subchapter1
+ */
+
+#include <gst/check/gstcheck.h>
+
+#define ENTRY_ED1       "/edition1"
+#define ENTRY_ED2       "/edition2"
+#define ENTRY_ED3       "test-edition"
+
+#define ENTRY_CH1       "/edition1/chapter1"
+#define ENTRY_CH2       "/edition1/chapter2"
+#define ENTRY_CH3       "/edition2/chapter3"
+#define ENTRY_CH4       "/test-chapter"
+
+#define ENTRY_SUB1      "/edition2/chapter3/subchapter1"
+
+#define ENTRY_TAG       "EntryTag"
+#define TOC_TAG         "TocTag"
+
+#define TEST_UID        "129537542"
+#define INFO_NAME	"gst-toc-check"
+#define INFO_FIELD      "info-test"
+#define INFO_TEXT_EN    "info-text-entry"
+#define INFO_TEXT_TOC   "info-text-toc"
+
+#define CHECK_TOC_ENTRY(entry_c,type_c,uid_c)                            \
+{                                                                        \
+  gchar *tag_c;                                                          \
+  const GValue *val;                                                     \
+  GstStructure *struct_c;                                                \
+                                                                         \
+  fail_unless_equals_string (entry_c->uid, uid_c);                       \
+  fail_unless (entry_c->type == type_c);                                 \
+  fail_unless (entry_c->tags != NULL);                                   \
+  fail_unless (entry_c->pads == NULL);                                   \
+                                                                         \
+  fail_unless (entry_c->info != NULL);                                   \
+  gst_structure_get (entry_c->info, INFO_NAME, GST_TYPE_STRUCTURE,       \
+      &struct_c, NULL);                                                  \
+  fail_unless (struct_c != NULL);                                        \
+  val = gst_structure_get_value (struct_c, INFO_FIELD);                  \
+  fail_unless (val != NULL);                                             \
+  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_EN);    \
+                                                                         \
+  fail_unless (gst_tag_list_get_string (entry_c->tags,                   \
+      GST_TAG_TITLE, &tag_c));                                           \
+  fail_unless_equals_string (tag_c, ENTRY_TAG);                          \
+  g_free (tag_c);                                                        \
+  gst_structure_free (struct_c);                                         \
+}
+
+#define CHECK_TOC(toc_t)                                                 \
+{                                                                        \
+  GstTocEntry *entry_t, *subentry_t;                                     \
+  gchar *tag_t;                                                          \
+  const GValue *val;                                                     \
+  GstStructure *struct_toc;                                              \
+                                                                         \
+  /* check TOC */                                                        \
+  fail_unless (g_list_length (toc_t->entries) == 2);                     \
+  fail_unless (toc_t->tags != NULL);                                     \
+  fail_unless (gst_tag_list_get_string (toc_t->tags,                     \
+      GST_TAG_TITLE, &tag_t));                                           \
+  fail_unless_equals_string (tag_t, TOC_TAG);                            \
+  g_free (tag_t);                                                        \
+                                                                         \
+  fail_unless (toc_t->info != NULL);                                     \
+  gst_structure_get (toc_t->info, INFO_NAME, GST_TYPE_STRUCTURE,         \
+      &struct_toc, NULL);                                                \
+  fail_unless (struct_toc != NULL);                                      \
+  val = gst_structure_get_value (struct_toc, INFO_FIELD);                \
+  fail_unless (val != NULL);                                             \
+  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_TOC);   \
+  gst_structure_free (struct_toc);                                       \
+                                                                         \
+  /* check edition1 */                                                   \
+  entry_t = g_list_nth_data (toc_t->entries, 0);                         \
+  fail_if (entry_t == NULL);                                             \
+  fail_unless (g_list_length (entry_t->subentries) == 2);                \
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);      \
+  /* check chapter1 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);   \
+  /* check chapter2 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 1);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);   \
+  /* check edition2 */                                                   \
+  entry_t = g_list_nth_data (toc_t->entries, 1);                         \
+  fail_if (entry_t == NULL);                                             \
+  fail_unless (g_list_length (entry_t->subentries) == 1);                \
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);      \
+  /* check chapter3 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 1);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);   \
+  /* check subchapter1 */                                                \
+  subentry_t = g_list_nth_data (subentry_t->subentries, 0);              \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);  \
+}
+
+GST_START_TEST (test_serializing)
+{
+  GstStructure *structure;
+  GstToc *toc, *test_toc = NULL;
+  GstTocEntry *ed, *ch, *subch;
+  GstEvent *event;
+  GstMessage *message;
+  GstQuery *query;
+  gboolean updated;
+  gchar *uid;
+  gint64 start = -1, stop = -1;
+
+  toc = gst_toc_new ();
+  fail_if (toc == NULL);
+  gst_tag_list_add (toc->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      TOC_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_TOC,
+      NULL);
+  gst_structure_set (toc->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  /* create edition1 */
+  ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+  fail_if (ed == NULL);
+  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+
+  /* append chapter1 to edition1 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
+  fail_if (ch == NULL);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
+
+  ed->subentries = g_list_append (ed->subentries, ch);
+  fail_unless (g_list_length (ed->subentries) == 1);
+
+  /* append chapter2 to edition1 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
+  fail_if (ch == NULL);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
+
+  ed->subentries = g_list_append (ed->subentries, ch);
+  fail_unless (g_list_length (ed->subentries) == 2);
+
+  /* append edition1 to the TOC */
+  toc->entries = g_list_append (toc->entries, ed);
+  fail_unless (g_list_length (toc->entries) == 1);
+
+  /* test gst_toc_entry_find() */
+  ed = NULL;
+  ed = gst_toc_find_entry (toc, ENTRY_ED1);
+
+  fail_if (ed == NULL);
+
+  CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+
+  /* test info GstStructure */
+  gst_toc_entry_set_start_stop (ch, 100, 1000);
+  fail_if (!gst_toc_entry_get_start_stop (ch, &start, &stop));
+  fail_unless (start == 100);
+  fail_unless (stop == 1000);
+
+  /* create edition2 */
+  ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
+  fail_if (ed == NULL);
+  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
+
+  /* create chapter3 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
+  fail_if (ch == NULL);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
+
+  /* create subchapter1 */
+  subch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
+  fail_if (subch == NULL);
+  gst_tag_list_add (subch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (subch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure,
+      NULL);
+  gst_structure_free (structure);
+
+  CHECK_TOC_ENTRY (subch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
+
+  /* append subchapter1 to chapter3 */
+  ch->subentries = g_list_append (ch->subentries, subch);
+  fail_unless (g_list_length (ch->subentries) == 1);
+
+  /* append chapter3 to edition2 */
+  ed->subentries = g_list_append (ed->subentries, ch);
+  fail_unless (g_list_length (ed->subentries) == 1);
+
+  /* finally append edition2 to the TOC */
+  toc->entries = g_list_append (toc->entries, ed);
+  fail_unless (g_list_length (toc->entries) == 2);
+
+  /* test gst_toc_copy() */
+  test_toc = gst_toc_copy (toc);
+  fail_if (test_toc == NULL);
+  CHECK_TOC (test_toc);
+  gst_toc_free (test_toc);
+  test_toc = NULL;
+
+  /* check TOC event handling */
+  event = gst_event_new_toc (toc, TRUE);
+  fail_if (event == NULL);
+  fail_unless (event->type == GST_EVENT_TOC);
+  ASSERT_MINI_OBJECT_REFCOUNT (GST_MINI_OBJECT (event), "GstEvent", 1);
+
+  gst_event_parse_toc (event, &test_toc, &updated);
+  fail_unless (updated == TRUE);
+  fail_if (test_toc == NULL);
+  CHECK_TOC (test_toc);
+  gst_toc_free (test_toc);
+  gst_event_unref (event);
+  updated = FALSE;
+  test_toc = NULL;
+
+  /* check TOC message handling */
+  message = gst_message_new_toc (NULL, toc, TRUE);
+  fail_if (message == NULL);
+  fail_unless (message->type == GST_MESSAGE_TOC);
+  ASSERT_MINI_OBJECT_REFCOUNT (GST_MINI_OBJECT (message), "GstMessage", 1);
+
+  gst_message_parse_toc (message, &test_toc, &updated);
+  fail_unless (updated == TRUE);
+  fail_if (test_toc == NULL);
+  CHECK_TOC (test_toc);
+  gst_toc_free (test_toc);
+  gst_message_unref (message);
+  test_toc = NULL;
+
+  /* check TOC select event handling */
+  event = gst_event_new_toc_select (TEST_UID);
+  fail_if (event == NULL);
+  fail_unless (event->type == GST_EVENT_TOC_SELECT);
+  ASSERT_MINI_OBJECT_REFCOUNT (GST_MINI_OBJECT (event), "GstEvent", 1);
+
+  gst_event_parse_toc_select (event, &uid);
+  fail_unless_equals_string (uid, TEST_UID);
+  gst_event_unref (event);
+  g_free (uid);
+
+  /* check TOC query handling */
+  query = gst_query_new_toc ();
+  fail_if (query == NULL);
+  gst_query_set_toc (query, toc, TEST_UID);
+  fail_unless (query->type == GST_QUERY_TOC);
+  ASSERT_MINI_OBJECT_REFCOUNT (GST_MINI_OBJECT (query), "GstQuery", 1);
+
+  gst_query_parse_toc (query, &test_toc, &uid);
+  fail_unless_equals_string (uid, TEST_UID);
+  fail_if (test_toc == NULL);
+  CHECK_TOC (test_toc);
+  gst_toc_free (test_toc);
+  gst_query_unref (query);
+  g_free (uid);
+
+  /* that's wrong code, we should fail */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH4);
+  toc->entries = g_list_prepend (toc->entries, ch);
+  ASSERT_CRITICAL (message = gst_message_new_toc (NULL, toc, TRUE));
+
+  /* and yet another one */
+  toc->entries = g_list_remove (toc->entries, ch);
+  gst_toc_entry_free (ch);
+  ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED3);
+  ch = (GstTocEntry *) (toc->entries->data);
+  ch->subentries = g_list_prepend (ch->subentries, ed);
+  ASSERT_WARNING (message = gst_message_new_toc (NULL, toc, TRUE));
+
+  gst_toc_free (toc);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_toc_suite (void)
+{
+  Suite *s = suite_create ("GstToc");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_serializing);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_toc);
diff --git a/tests/check/gst/gsttocsetter.c b/tests/check/gst/gsttocsetter.c
new file mode 100644
index 0000000..3fefcdc
--- /dev/null
+++ b/tests/check/gst/gsttocsetter.c
@@ -0,0 +1,416 @@
+/* GStreamer GstTocSetter interface unit tests
+ * Copyright (C) 2010, 2012 Alexander Saprykin <xelfium@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/gst.h>
+#include <string.h>
+
+#define ENTRY_ED1       "/edition1"
+#define ENTRY_ED2       "/edition2"
+#define ENTRY_ED3       "test-edition"
+
+#define ENTRY_CH1       "/edition1/chapter1"
+#define ENTRY_CH2       "/edition1/chapter2"
+#define ENTRY_CH3       "/edition2/chapter3"
+#define ENTRY_CH4       "/test-chapter"
+
+#define ENTRY_SUB1      "/edition2/chapter3/subchapter1"
+
+#define ENTRY_TAG       "EntryTag"
+#define TOC_TAG         "TocTag"
+#define INFO_NAME       "gst-toc-setter-check"
+#define INFO_FIELD      "info-test"
+#define INFO_TEXT_EN    "info-text-entry"
+#define INFO_TEXT_TOC   "info-text-toc"
+
+#define CHECK_TOC_ENTRY(entry_c,type_c,uid_c)                            \
+{                                                                        \
+  gchar *tag_c;                                                          \
+  const GValue *val;                                                     \
+  GstStructure *struct_c;                                                \
+                                                                         \
+  fail_unless_equals_string (entry_c->uid, uid_c);                       \
+  fail_unless (entry_c->type == type_c);                                 \
+  fail_unless (entry_c->tags != NULL);                                   \
+  fail_unless (entry_c->pads == NULL);                                   \
+                                                                         \
+  fail_unless (entry_c->info != NULL);                                   \
+  gst_structure_get (entry_c->info, INFO_NAME, GST_TYPE_STRUCTURE,       \
+      &struct_c, NULL);                                                  \
+  fail_unless (struct_c != NULL);                                        \
+  val = gst_structure_get_value (struct_c, INFO_FIELD);             \
+  fail_unless (val != NULL);                                             \
+  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_EN);    \
+                                                                         \
+  fail_unless (gst_tag_list_get_string (entry_c->tags,                   \
+               GST_TAG_TITLE, &tag_c));                                  \
+  fail_unless_equals_string (tag_c, ENTRY_TAG);                          \
+  g_free (tag_c);                                                        \
+  gst_structure_free (struct_c);                                         \
+}
+
+#define CHECK_TOC(toc_t)                                                 \
+{                                                                        \
+  GstTocEntry *entry_t, *subentry_t;                                     \
+  gchar *tag_t;                                                          \
+  const GValue *val;                                                     \
+  GstStructure *struct_toc;                                              \
+                                                                         \
+  /* check TOC */                                                        \
+  fail_unless (g_list_length (toc_t->entries) == 2);                     \
+  fail_unless (toc_t->tags != NULL);                                     \
+  fail_unless (gst_tag_list_get_string (toc_t->tags,                     \
+               GST_TAG_TITLE, &tag_t));                                  \
+  fail_unless_equals_string (tag_t, TOC_TAG);                            \
+  g_free (tag_t);                                                        \
+                                                                         \
+  fail_unless (toc_t->info != NULL);                                     \
+  gst_structure_get (toc_t->info, INFO_NAME, GST_TYPE_STRUCTURE,         \
+      &struct_toc, NULL);                                                \
+  fail_unless (struct_toc != NULL);                                      \
+  val = gst_structure_get_value (struct_toc, INFO_FIELD);                \
+  fail_unless (val != NULL);                                             \
+  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_TOC);   \
+  gst_structure_free (struct_toc);                                       \
+                                                                         \
+  /* check edition1 */                                                   \
+  entry_t = g_list_nth_data (toc_t->entries, 0);                         \
+  fail_if (entry_t == NULL);                                             \
+  fail_unless (g_list_length (entry_t->subentries) == 2);                \
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);      \
+  /* check chapter1 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);   \
+  /* check chapter2 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 1);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);   \
+  /* check edition2 */                                                   \
+  entry_t = g_list_nth_data (toc_t->entries, 1);                         \
+  fail_if (entry_t == NULL);                                             \
+  fail_unless (g_list_length (entry_t->subentries) == 1);                \
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);      \
+  /* check chapter3 */                                                   \
+  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 1);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);   \
+  /* check subchapter1 */                                                \
+  subentry_t = g_list_nth_data (subentry_t->subentries, 0);              \
+  fail_if (subentry_t == NULL);                                          \
+  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);  \
+}
+
+/* some minimal GstTocSetter object */
+#define GST_TYPE_DUMMY_ENC gst_dummy_enc_get_type()
+
+typedef GstElement GstDummyEnc;
+typedef GstElementClass GstDummyEncClass;
+
+GType gst_dummy_enc_get_type (void);
+G_DEFINE_TYPE_WITH_CODE (GstDummyEnc, gst_dummy_enc,
+    GST_TYPE_ELEMENT, G_IMPLEMENT_INTERFACE (GST_TYPE_TOC_SETTER, NULL));
+
+static void
+gst_dummy_enc_class_init (GstDummyEncClass * klass)
+{
+}
+
+static void
+gst_dummy_enc_init (GstDummyEnc * enc)
+{
+}
+
+static GstToc *
+create_toc (void)
+{
+  GstStructure *structure;
+  GstToc *toc;
+  GstTocEntry *ed, *ch, *subch;
+
+  toc = gst_toc_new ();
+  gst_tag_list_add (toc->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      TOC_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_TOC,
+      NULL);
+  gst_structure_set (toc->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  /* create edition1 */
+  ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  /* append chapter1 to edition1 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  ed->subentries = g_list_append (ed->subentries, ch);
+
+  /* append chapter2 to edition1 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  ed->subentries = g_list_append (ed->subentries, ch);
+
+  /* append edition1 to the TOC */
+  toc->entries = g_list_append (toc->entries, ed);
+
+  /* create edition2 */
+  ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
+  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  /* create chapter3 */
+  ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
+  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
+  gst_structure_free (structure);
+
+  /* create subchapter1 */
+  subch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
+  gst_tag_list_add (subch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
+      ENTRY_TAG, NULL);
+  structure =
+      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
+      NULL);
+  gst_structure_set (subch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure,
+      NULL);
+  gst_structure_free (structure);
+
+  /* append subchapter1 to chapter3 */
+  ch->subentries = g_list_append (ch->subentries, subch);
+
+  /* append chapter3 to edition2 */
+  ed->subentries = g_list_append (ed->subentries, ch);
+
+  /* finally append edition2 to the TOC */
+  toc->entries = g_list_append (toc->entries, ed);
+
+  return toc;
+}
+
+GST_START_TEST (test_set)
+{
+  GstToc *toc;
+  GstTocEntry *entry, *ed;
+  GstTocSetter *setter;
+  GstElement *enc;
+
+  enc = g_object_new (GST_TYPE_DUMMY_ENC, NULL);
+  fail_unless (enc != NULL);
+
+  setter = GST_TOC_SETTER (enc);
+
+  toc = create_toc ();
+  fail_unless (toc != NULL);
+
+  gst_toc_setter_set_toc (setter, toc);
+
+  gst_toc_free (toc);
+  toc = gst_toc_setter_get_toc_copy (setter);
+
+  CHECK_TOC (toc);
+
+  /* test entry adding into the root TOC */
+  entry = g_list_last (toc->entries)->data;
+  toc->entries = g_list_remove (toc->entries, entry);
+
+  gst_toc_setter_set_toc (setter, toc);
+  gst_toc_setter_add_toc_entry (setter, "0", entry);
+
+  gst_toc_free (toc);
+  gst_toc_entry_free (entry);
+  toc = gst_toc_setter_get_toc_copy (setter);
+
+  CHECK_TOC (toc);
+
+  /* test entry adding into the arbitrary entry */
+  entry = gst_toc_find_entry (toc, ENTRY_CH2);
+  fail_if (entry == NULL);
+
+  ed = toc->entries->data;
+  ed->subentries = g_list_remove (ed->subentries, entry);
+
+  gst_toc_setter_add_toc_entry (setter, ed->uid, entry);
+
+  CHECK_TOC (toc);
+
+  gst_toc_free (toc);
+  gst_toc_setter_reset_toc (setter);
+  toc = gst_toc_setter_get_toc_copy (setter);
+
+  fail_unless (toc == NULL);
+
+  g_object_unref (enc);
+}
+
+GST_END_TEST static int spin_and_wait = 1;
+static int threads_running = 0;
+
+#define THREADS_TEST_SECONDS 1.5
+
+static gpointer
+test_threads_thread_func1 (gpointer data)
+{
+  GstToc *toc;
+  GstTocSetter *setter = GST_TOC_SETTER (data);
+  GTimer *timer;
+
+  toc = create_toc ();
+  timer = g_timer_new ();
+
+  g_atomic_int_inc (&threads_running);
+  while (g_atomic_int_get (&spin_and_wait))
+    g_usleep (0);
+
+  GST_INFO ("Go!");
+  g_timer_start (timer);
+
+  while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS)
+    gst_toc_setter_set_toc (setter, toc);
+
+  gst_toc_free (toc);
+  g_timer_destroy (timer);
+  GST_INFO ("Done");
+
+  return NULL;
+}
+
+static gpointer
+test_threads_thread_func2 (gpointer data)
+{
+  GstToc *toc;
+  GstTocSetter *setter = GST_TOC_SETTER (data);
+  GTimer *timer;
+
+  toc = create_toc ();
+  timer = g_timer_new ();
+
+  g_atomic_int_inc (&threads_running);
+  while (g_atomic_int_get (&spin_and_wait))
+    g_usleep (0);
+
+  GST_INFO ("Go!");
+  g_timer_start (timer);
+
+  while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS)
+    gst_toc_setter_set_toc (setter, toc);
+
+  gst_toc_free (toc);
+  g_timer_destroy (timer);
+  GST_INFO ("Done");
+
+  return NULL;
+}
+
+static gpointer
+test_threads_thread_func3 (gpointer data)
+{
+  GstTocSetter *setter = GST_TOC_SETTER (data);
+  GTimer *timer;
+
+  timer = g_timer_new ();
+
+  g_atomic_int_inc (&threads_running);
+  while (g_atomic_int_get (&spin_and_wait))
+    g_usleep (0);
+
+  GST_INFO ("Go!");
+  g_timer_start (timer);
+
+  while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS) {
+    gst_toc_setter_reset_toc (setter);
+  }
+
+  g_timer_destroy (timer);
+  GST_INFO ("Done");
+
+  return NULL;
+}
+
+GST_START_TEST (test_threads)
+{
+  GstTocSetter *setter;
+  GThread *threads[3];
+
+  setter = GST_TOC_SETTER (g_object_new (GST_TYPE_DUMMY_ENC, NULL));
+
+  spin_and_wait = TRUE;
+  threads[0] = g_thread_create (test_threads_thread_func1, setter, TRUE, NULL);
+  threads[1] = g_thread_create (test_threads_thread_func2, setter, TRUE, NULL);
+  threads[2] = g_thread_create (test_threads_thread_func3, setter, TRUE, NULL);
+
+  while (g_atomic_int_get (&threads_running) < 3)
+    g_usleep (10);
+
+  g_atomic_int_set (&spin_and_wait, FALSE);
+
+  g_thread_join (threads[0]);
+  g_thread_join (threads[1]);
+  g_thread_join (threads[2]);
+
+  g_object_unref (G_OBJECT (setter));
+}
+
+GST_END_TEST static Suite *
+gst_toc_setter_suite (void)
+{
+  Suite *s = suite_create ("GstTocSetter");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_set);
+  tcase_add_test (tc_chain, test_threads);
+
+  return s;
+}
+
+GST_CHECK_MAIN (gst_toc_setter);
diff --git a/tests/check/gst/gstutils.c b/tests/check/gst/gstutils.c
index 9498c04..d16341e 100644
--- a/tests/check/gst/gstutils.c
+++ b/tests/check/gst/gstutils.c
@@ -32,48 +32,46 @@
 static int n_buffer_probes = 0;
 static int n_event_probes = 0;
 
-static GstProbeReturn
-probe_do_nothing (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer data)
+static GstPadProbeReturn
+probe_do_nothing (GstPad * pad, GstPadProbeInfo * info, gpointer data)
 {
-  GstMiniObject *obj = type_data;
+  GstMiniObject *obj = GST_PAD_PROBE_INFO_DATA (info);
   GST_DEBUG_OBJECT (pad, "is buffer:%d", GST_IS_BUFFER (obj));
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-data_probe (GstPad * pad, GstProbeType type, gpointer type_data, gpointer data)
+static GstPadProbeReturn
+data_probe (GstPad * pad, GstPadProbeInfo * info, gpointer data)
 {
-  GstMiniObject *obj = type_data;
+  GstMiniObject *obj = GST_PAD_PROBE_INFO_DATA (info);
   n_data_probes++;
   GST_DEBUG_OBJECT (pad, "data probe %d", n_data_probes);
   g_assert (GST_IS_BUFFER (obj) || GST_IS_EVENT (obj));
   g_assert (data == SPECIAL_POINTER (0));
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-buffer_probe (GstPad * pad, GstProbeType type, gpointer type_data,
-    gpointer data)
+static GstPadProbeReturn
+buffer_probe (GstPad * pad, GstPadProbeInfo * info, gpointer data)
 {
-  GstBuffer *obj = type_data;
+  GstBuffer *obj = GST_PAD_PROBE_INFO_BUFFER (info);
   n_buffer_probes++;
   GST_DEBUG_OBJECT (pad, "buffer probe %d", n_buffer_probes);
   g_assert (GST_IS_BUFFER (obj));
   g_assert (data == SPECIAL_POINTER (1));
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-event_probe (GstPad * pad, GstProbeType type, gpointer type_data, gpointer data)
+static GstPadProbeReturn
+event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer data)
 {
-  GstEvent *obj = type_data;
+  GstEvent *obj = GST_PAD_PROBE_INFO_EVENT (info);
   n_event_probes++;
   GST_DEBUG_OBJECT (pad, "event probe %d [%s]",
       n_event_probes, GST_EVENT_TYPE_NAME (obj));
   g_assert (GST_IS_EVENT (obj));
   g_assert (data == SPECIAL_POINTER (2));
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_buffer_probe_n_times)
@@ -95,20 +93,20 @@
   pad = gst_element_get_static_pad (fakesink, "sink");
 
   /* add the probes we need for the test */
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_DATA, data_probe, SPECIAL_POINTER (0),
-      NULL);
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_BUFFER, buffer_probe,
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_BOTH, data_probe,
+      SPECIAL_POINTER (0), NULL);
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, buffer_probe,
       SPECIAL_POINTER (1), NULL);
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_EVENT, event_probe,
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_BOTH, event_probe,
       SPECIAL_POINTER (2), NULL);
 
   /* add some string probes just to test that the data is free'd
    * properly as it should be */
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_DATA, probe_do_nothing,
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_BOTH, probe_do_nothing,
       g_strdup ("data probe string"), (GDestroyNotify) g_free);
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_BUFFER, probe_do_nothing,
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER, probe_do_nothing,
       g_strdup ("buffer probe string"), (GDestroyNotify) g_free);
-  gst_pad_add_probe (pad, GST_PROBE_TYPE_EVENT, probe_do_nothing,
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_BOTH, probe_do_nothing,
       g_strdup ("event probe string"), (GDestroyNotify) g_free);
 
   gst_object_unref (pad);
@@ -121,55 +119,59 @@
   gst_object_unref (bus);
 
   g_assert (n_buffer_probes == 10);     /* one for every buffer */
-  g_assert (n_event_probes == 3);       /* new segment, latency and eos */
-  g_assert (n_data_probes == 13);       /* duh */
+  g_assert (n_event_probes == 4);       /* stream-start, new segment, latency and eos */
+  g_assert (n_data_probes == 14);       /* duh */
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_object_unref (pipeline);
 
   /* make sure nothing was sent in addition to the above when shutting down */
   g_assert (n_buffer_probes == 10);     /* one for every buffer */
-  g_assert (n_event_probes == 3);       /* new segment, latency and eos */
-  g_assert (n_data_probes == 13);       /* duh */
+  g_assert (n_event_probes == 4);       /* stream-start, new segment, latency and eos */
+  g_assert (n_data_probes == 14);       /* duh */
 } GST_END_TEST;
 
 static int n_data_probes_once = 0;
 static int n_buffer_probes_once = 0;
 static int n_event_probes_once = 0;
 
-static GstProbeReturn
-data_probe_once (GstPad * pad, GstProbeType type, GstMiniObject * obj,
-    guint * data)
+static GstPadProbeReturn
+data_probe_once (GstPad * pad, GstPadProbeInfo * info, guint * data)
 {
+  GstMiniObject *obj = GST_PAD_PROBE_INFO_DATA (info);
+
   n_data_probes_once++;
   g_assert (GST_IS_BUFFER (obj) || GST_IS_EVENT (obj));
 
   gst_pad_remove_probe (pad, *data);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-buffer_probe_once (GstPad * pad, GstProbeType type, GstBuffer * obj,
-    guint * data)
+static GstPadProbeReturn
+buffer_probe_once (GstPad * pad, GstPadProbeInfo * info, guint * data)
 {
+  GstBuffer *obj = GST_PAD_PROBE_INFO_BUFFER (info);
+
   n_buffer_probes_once++;
   g_assert (GST_IS_BUFFER (obj));
 
   gst_pad_remove_probe (pad, *data);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
-static GstProbeReturn
-event_probe_once (GstPad * pad, GstProbeType type, GstEvent * obj, guint * data)
+static GstPadProbeReturn
+event_probe_once (GstPad * pad, GstPadProbeInfo * info, guint * data)
 {
+  GstEvent *obj = GST_PAD_PROBE_INFO_EVENT (info);
+
   n_event_probes_once++;
   g_assert (GST_IS_EVENT (obj));
 
   gst_pad_remove_probe (pad, *data);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_buffer_probe_once)
@@ -191,13 +193,13 @@
 
   pad = gst_element_get_static_pad (fakesink, "sink");
   id1 =
-      gst_pad_add_probe (pad, GST_PROBE_TYPE_DATA,
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_DATA_BOTH,
       (GstPadProbeCallback) data_probe_once, &id1, NULL);
   id2 =
-      gst_pad_add_probe (pad, GST_PROBE_TYPE_BUFFER,
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER,
       (GstPadProbeCallback) buffer_probe_once, &id2, NULL);
   id3 =
-      gst_pad_add_probe (pad, GST_PROBE_TYPE_EVENT,
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) event_probe_once, &id3, NULL);
   gst_object_unref (pad);
 
@@ -487,11 +489,12 @@
   GstTagList *list;
   GstBus *bus;
   GstMessage *message;
+  GstPad *srcpad;
 
   pipeline = gst_element_factory_make ("pipeline", NULL);
   fakesrc = gst_element_factory_make ("fakesrc", NULL);
   fakesink = gst_element_factory_make ("fakesink", NULL);
-  list = gst_tag_list_new ();
+  list = gst_tag_list_new_empty ();
 
   g_object_set (fakesrc, "num-buffers", (int) 10, NULL);
 
@@ -500,7 +503,9 @@
 
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
-  gst_element_found_tags (GST_ELEMENT (fakesrc), list);
+  srcpad = gst_element_get_static_pad (fakesrc, "src");
+  gst_pad_push_event (srcpad, gst_event_new_tag (list));
+  gst_object_unref (srcpad);
 
   bus = gst_element_get_bus (pipeline);
   message = gst_bus_poll (bus, GST_MESSAGE_EOS, -1);
@@ -970,7 +975,7 @@
 #endif
 #endif
 
-GST_START_TEST (test_pad_proxy_getcaps_aggregation)
+GST_START_TEST (test_pad_proxy_query_caps_aggregation)
 {
   GstElement *tee, *sink1, *sink2;
   GstCaps *caps;
@@ -979,12 +984,12 @@
   tee = gst_element_factory_make ("tee", "tee");
 
   sink1 = gst_element_factory_make ("fakesink", "sink1");
-  tee_src1 = gst_element_get_request_pad (tee, "src%d");
+  tee_src1 = gst_element_get_request_pad (tee, "src_%u");
   sink1_sink = gst_element_get_static_pad (sink1, "sink");
   fail_unless_equals_int (gst_pad_link (tee_src1, sink1_sink), GST_PAD_LINK_OK);
 
   sink2 = gst_element_factory_make ("fakesink", "sink2");
-  tee_src2 = gst_element_get_request_pad (tee, "src%d");
+  tee_src2 = gst_element_get_request_pad (tee, "src_%u");
   sink2_sink = gst_element_get_static_pad (sink2, "sink");
   fail_unless_equals_int (gst_pad_link (tee_src2, sink2_sink), GST_PAD_LINK_OK);
 
@@ -995,24 +1000,24 @@
   gst_element_set_state (tee, GST_STATE_PAUSED);
 
   /* by default, ANY caps should intersect to ANY */
-  caps = gst_pad_get_caps (tee_sink, NULL);
+  caps = gst_pad_query_caps (tee_sink, NULL);
   GST_INFO ("got caps: %" GST_PTR_FORMAT, caps);
   fail_unless (caps != NULL);
   fail_unless (gst_caps_is_any (caps));
   gst_caps_unref (caps);
 
   /* these don't intersect we should get empty caps */
-  caps = gst_caps_new_simple ("foo/bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/bar");
   fail_unless (gst_pad_set_caps (sink1_sink, caps));
   gst_pad_use_fixed_caps (sink1_sink);
   gst_caps_unref (caps);
 
-  caps = gst_caps_new_simple ("bar/ter", NULL);
+  caps = gst_caps_new_empty_simple ("bar/ter");
   fail_unless (gst_pad_set_caps (sink2_sink, caps));
   gst_pad_use_fixed_caps (sink2_sink);
   gst_caps_unref (caps);
 
-  caps = gst_pad_get_caps (tee_sink, NULL);
+  caps = gst_pad_query_caps (tee_sink, NULL);
   GST_INFO ("got caps: %" GST_PTR_FORMAT, caps);
   fail_unless (caps != NULL);
   fail_unless (gst_caps_is_empty (caps));
@@ -1024,7 +1029,7 @@
   gst_pad_use_fixed_caps (sink2_sink);
   gst_caps_unref (caps);
 
-  caps = gst_pad_get_caps (tee_sink, NULL);
+  caps = gst_pad_query_caps (tee_sink, NULL);
   GST_INFO ("got caps: %" GST_PTR_FORMAT, caps);
   fail_unless (caps != NULL);
   fail_if (gst_caps_is_empty (caps));
@@ -1108,7 +1113,7 @@
   tcase_add_test (tc_chain, test_set_value_from_string);
   tcase_add_test (tc_chain, test_binary_search);
 
-  tcase_add_test (tc_chain, test_pad_proxy_getcaps_aggregation);
+  tcase_add_test (tc_chain, test_pad_proxy_query_caps_aggregation);
   tcase_add_test (tc_chain, test_greatest_common_divisor);
   return s;
 }
diff --git a/tests/check/gst/gstvalue.c b/tests/check/gst/gstvalue.c
index 11a5584..4de03c0 100644
--- a/tests/check/gst/gstvalue.c
+++ b/tests/check/gst/gstvalue.c
@@ -53,14 +53,11 @@
   gchar *serialized;
   static const char *buf_data = "1234567890abcdef";
   gint len;
-  gpointer data;
 
   len = strlen (buf_data);
   buf = gst_buffer_new_and_alloc (len);
 
-  data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-  memcpy (data, buf_data, len);
-  gst_buffer_unmap (buf, data, len);
+  gst_buffer_fill (buf, 0, buf_data, len);
 
   ASSERT_MINI_OBJECT_REFCOUNT (buf, "buffer", 1);
 
@@ -473,6 +470,33 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_deserialize_bitmask)
+{
+  GValue value = { 0 };
+  const char *strings[] = {
+    "0xffffffffffffffff",
+    "0x1234567890ABCDEF",
+  };
+  guint64 results[] = {
+    0xffffffffffffffffULL,
+    0x1234567890ABCDEFULL,
+  };
+  int i;
+
+  g_value_init (&value, GST_TYPE_BITMASK);
+
+  for (i = 0; i < G_N_ELEMENTS (strings); ++i) {
+    fail_unless (gst_value_deserialize (&value, strings[i]),
+        "could not deserialize %s (%d)", strings[i], i);
+    fail_unless (gst_value_get_bitmask (&value) == results[i],
+        "resulting value is 0x%016" G_GINT64_MODIFIER "x, not 0x%016"
+        G_GINT64_MODIFIER "x, for string %s (%d)",
+        gst_value_get_bitmask (&value), results[i], strings[i], i);
+  }
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_string)
 {
   const gchar *try[] = {
@@ -737,6 +761,16 @@
   g_value_unset (&value1);
   g_value_unset (&value2);
   g_value_unset (&tmp);
+
+  g_value_init (&value1, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (&value1, 0x123);
+  g_value_init (&value2, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (&value2, 0x321);
+  fail_unless (gst_value_compare (&value1, &value2) == GST_VALUE_UNORDERED);
+  fail_unless (gst_value_compare (&value2, &value1) == GST_VALUE_UNORDERED);
+  fail_unless (gst_value_compare (&value1, &value1) == GST_VALUE_EQUAL);
+  g_value_unset (&value1);
+  g_value_unset (&value2);
 }
 
 GST_END_TEST;
@@ -759,14 +793,14 @@
   g_value_unset (&src2);
 
   g_value_init (&src1, G_TYPE_STRING);
-  g_value_set_string (&src1, "YUY2");
+  g_value_set_static_string (&src1, "YUY2");
   g_value_init (&src2, GST_TYPE_LIST);
   g_value_init (&item, G_TYPE_STRING);
-  g_value_set_string (&item, "YUY2");
+  g_value_set_static_string (&item, "YUY2");
   gst_value_list_append_value (&src2, &item);
-  g_value_set_string (&item, "I420");
+  g_value_set_static_string (&item, "I420");
   gst_value_list_append_value (&src2, &item);
-  g_value_set_string (&item, "ABCD");
+  g_value_set_static_string (&item, "ABCD");
   gst_value_list_append_value (&src2, &item);
 
   fail_unless (gst_value_intersect (&dest, &src1, &src2));
@@ -775,6 +809,17 @@
 
   g_value_unset (&src1);
   g_value_unset (&src2);
+  g_value_unset (&dest);
+
+  g_value_init (&src1, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (&src1, 0xf00f);
+  g_value_init (&src2, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (&src2, 0xff00);
+  ret = gst_value_intersect (&dest, &src1, &src2);
+  fail_unless (ret == TRUE);
+  fail_unless_equals_uint64 (0xf000, gst_value_get_bitmask (&dest));
+  g_value_unset (&src1);
+  g_value_unset (&src2);
 }
 
 GST_END_TEST;
@@ -1874,6 +1919,26 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_value_subtract_bitmask)
+{
+  GValue result = { 0 };
+  GValue src1 = { 0 };
+  GValue src2 = { 0 };
+
+  /* Subtract 1/4 from 1/2 */
+  g_value_init (&src1, GST_TYPE_BITMASK);
+  g_value_init (&src2, GST_TYPE_BITMASK);
+  gst_value_set_bitmask (&src1, 0xffff);
+  gst_value_set_bitmask (&src2, 0xff00);
+  fail_unless (gst_value_subtract (&result, &src1, &src2) == TRUE);
+  fail_unless_equals_uint64 (0x00ff, gst_value_get_bitmask (&result));
+
+  g_value_unset (&src1);
+  g_value_unset (&src2);
+  g_value_unset (&result);
+}
+
+GST_END_TEST;
 
 GST_START_TEST (test_date)
 {
@@ -1883,11 +1948,10 @@
 
   date = g_date_new_dmy (22, 9, 2005);
 
-  s = gst_structure_new ("media/x-type", "SOME_DATE_TAG", GST_TYPE_DATE,
+  s = gst_structure_new ("media/x-type", "SOME_DATE_TAG", G_TYPE_DATE,
       date, NULL);
 
-  fail_unless (gst_structure_has_field_typed (s, "SOME_DATE_TAG",
-          GST_TYPE_DATE));
+  fail_unless (gst_structure_has_field_typed (s, "SOME_DATE_TAG", G_TYPE_DATE));
   fail_unless (gst_structure_get_date (s, "SOME_DATE_TAG", &date2));
   fail_unless (date2 != NULL);
   fail_unless (g_date_valid (date2));
@@ -1911,8 +1975,7 @@
 
   fail_unless (s != NULL);
   fail_unless (gst_structure_has_name (s, "media/x-type"));
-  fail_unless (gst_structure_has_field_typed (s, "SOME_DATE_TAG",
-          GST_TYPE_DATE));
+  fail_unless (gst_structure_has_field_typed (s, "SOME_DATE_TAG", G_TYPE_DATE));
   fail_unless (gst_structure_get_date (s, "SOME_DATE_TAG", &date));
   fail_unless (date != NULL);
   fail_unless (g_date_valid (date));
@@ -2399,6 +2462,7 @@
       str = gst_value_serialize (&value);
       fail_unless (strcmp (str, int64_range_strings[idx]) == 0);
       g_free (int64_range_strings[idx]);
+      g_value_unset (&value);
 
       /* now deserialize again to an int64 range */
       s = gst_structure_new ("foo/bar", "range", GST_TYPE_INT64_RANGE,
@@ -2500,7 +2564,164 @@
   g_free (str);
 }
 
-GST_END_TEST static Suite *
+GST_END_TEST;
+
+GST_START_TEST (test_stepped_range_collection)
+{
+  GstStructure *s;
+  const GValue *v;
+
+  s = gst_structure_new ("foo/bar", "range", GST_TYPE_INT_RANGE, 8, 12, NULL);
+  fail_unless (s != NULL);
+  v = gst_structure_get_value (s, "range");
+  fail_unless (v != NULL);
+  fail_unless (gst_value_get_int_range_min (v) == 8);
+  fail_unless (gst_value_get_int_range_max (v) == 12);
+  fail_unless (gst_value_get_int_range_step (v) == 1);
+  gst_structure_free (s);
+
+  s = gst_structure_new ("foo/bar", "range", GST_TYPE_INT64_RANGE, (gint64) 8,
+      (gint64) 12, NULL);
+  fail_unless (s != NULL);
+  v = gst_structure_get_value (s, "range");
+  fail_unless (v != NULL);
+  fail_unless (gst_value_get_int64_range_min (v) == 8);
+  fail_unless (gst_value_get_int64_range_max (v) == 12);
+  fail_unless (gst_value_get_int64_range_step (v) == 1);
+  gst_structure_free (s);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_stepped_int_range_parsing)
+{
+  gchar *str;
+  guint n;
+  gchar *end = NULL;
+  GstStructure *s;
+
+  static const gchar *good_ranges[] = {
+    "[0, 1, 1]",
+    "[-2, 2, 2]",
+    "[16, 4096, 16]",
+  };
+
+  static const gchar *bad_ranges[] = {
+    "[0, 1, -1]",
+    "[1, 2, 2]",
+    "[2, 3, 2]",
+    "[0, 0, 0]",
+  };
+
+  /* check we can parse good ranges */
+  for (n = 0; n < G_N_ELEMENTS (good_ranges); ++n) {
+    str = g_strdup_printf ("foo/bar, range=%s", good_ranges[n]);
+    s = gst_structure_from_string (str, &end);
+    fail_unless (s != NULL);
+    fail_unless (*end == '\0');
+    gst_structure_free (s);
+    g_free (str);
+  }
+
+  /* check we cannot parse bad ranges */
+  for (n = 0; n < G_N_ELEMENTS (bad_ranges); ++n) {
+    str = g_strdup_printf ("foo/bar, range=%s", bad_ranges[n]);
+    ASSERT_CRITICAL (s = gst_structure_from_string (str, &end));
+    gst_structure_free (s);
+    g_free (str);
+  }
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_stepped_int_range_ops)
+{
+  gchar *str1, *str2, *str3;
+  guint n;
+  GstStructure *s1, *s2, *s3;
+  const GValue *v1, *v2, *v3;
+
+  static const struct
+  {
+    const gchar *set1;
+    const gchar *op;
+    const gchar *set2;
+    const gchar *result;
+  } ranges[] = {
+    {
+    "[16, 4096, 16]", "inter", "[100, 200, 10]", "160"}, {
+    "[16, 4096, 16]", "inter", "[100, 200, 100]", NULL}, {
+    "[16, 4096, 16]", "inter", "[0, 512, 256]", "[256, 512, 256]"}, {
+    "[16, 32, 16]", "union", "[32, 96, 16]", "[16, 96, 16]"}, {
+    "[16, 32, 16]", "union", "[48, 96, 16]", "[16, 96, 16]"}, {
+    "[112, 192, 16]", "union", "[48, 96, 16]", "[48, 192, 16]"}, {
+    "[16, 32, 16]", "union", "[64, 96, 16]", NULL}, {
+  "[112, 192, 16]", "union", "[48, 96, 8]", NULL},};
+
+  for (n = 0; n < G_N_ELEMENTS (ranges); ++n) {
+    gchar *end = NULL;
+    GValue dest = { 0 };
+    gboolean ret;
+
+    str1 = g_strdup_printf ("foo/bar, range=%s", ranges[n].set1);
+    s1 = gst_structure_from_string (str1, &end);
+    fail_unless (s1 != NULL);
+    fail_unless (*end == '\0');
+    v1 = gst_structure_get_value (s1, "range");
+    fail_unless (v1 != NULL);
+
+    str2 = g_strdup_printf ("foo/bar, range=%s", ranges[n].set2);
+    s2 = gst_structure_from_string (str2, &end);
+    fail_unless (s2 != NULL);
+    fail_unless (*end == '\0');
+    v2 = gst_structure_get_value (s2, "range");
+    fail_unless (v2 != NULL);
+
+    if (!strcmp (ranges[n].op, "inter")) {
+      ret = gst_value_intersect (&dest, v1, v2);
+    } else if (!strcmp (ranges[n].op, "union")) {
+      ret = gst_value_union (&dest, v1, v2);
+    } else {
+      fail_unless (FALSE);
+      ret = FALSE;
+    }
+
+    if (ranges[n].result) {
+      fail_unless (ret);
+    } else {
+      fail_unless (!ret);
+    }
+
+    if (ret) {
+      str3 = g_strdup_printf ("foo/bar, range=%s", ranges[n].result);
+      s3 = gst_structure_from_string (str3, &end);
+      fail_unless (s3 != NULL);
+      fail_unless (*end == '\0');
+      v3 = gst_structure_get_value (s3, "range");
+      fail_unless (v3 != NULL);
+
+      if (gst_value_compare (&dest, v3) != GST_VALUE_EQUAL) {
+        GST_ERROR ("%s %s %s yielded %s, expected %s", str1, ranges[n].op, str2,
+            gst_value_serialize (&dest), gst_value_serialize (v3));
+        fail_unless (FALSE);
+      }
+
+      gst_structure_free (s3);
+      g_free (str3);
+
+      g_value_unset (&dest);
+    }
+
+    gst_structure_free (s2);
+    g_free (str2);
+    gst_structure_free (s1);
+    g_free (str1);
+  }
+}
+
+GST_END_TEST;
+
+static Suite *
 gst_value_suite (void)
 {
   Suite *s = suite_create ("GstValue");
@@ -2517,6 +2738,7 @@
   tcase_add_test (tc_chain, test_deserialize_guint64);
   tcase_add_test (tc_chain, test_deserialize_guchar);
   tcase_add_test (tc_chain, test_deserialize_gstfraction);
+  tcase_add_test (tc_chain, test_deserialize_bitmask);
   tcase_add_test (tc_chain, test_serialize_flags);
   tcase_add_test (tc_chain, test_deserialize_flags);
   tcase_add_test (tc_chain, test_serialize_deserialize_format_enum);
@@ -2530,6 +2752,7 @@
   tcase_add_test (tc_chain, test_value_subtract_fraction);
   tcase_add_test (tc_chain, test_value_subtract_fraction_range);
   tcase_add_test (tc_chain, test_value_subtract_fraction_list);
+  tcase_add_test (tc_chain, test_value_subtract_bitmask);
   tcase_add_test (tc_chain, test_date);
   tcase_add_test (tc_chain, test_date_time);
   tcase_add_test (tc_chain, test_fraction_range);
@@ -2538,6 +2761,9 @@
   tcase_add_test (tc_chain, test_int64_range);
   tcase_add_test (tc_chain, test_serialize_int64_range);
   tcase_add_test (tc_chain, test_deserialize_int_range);
+  tcase_add_test (tc_chain, test_stepped_range_collection);
+  tcase_add_test (tc_chain, test_stepped_int_range_parsing);
+  tcase_add_test (tc_chain, test_stepped_int_range_ops);
 
   return s;
 }
diff --git a/tests/check/gst/struct_arm.h b/tests/check/gst/struct_arm.h
index 73764c9..3f28d86 100644
--- a/tests/check/gst/struct_arm.h
+++ b/tests/check/gst/struct_arm.h
@@ -55,7 +55,7 @@
   {"GstStructure", sizeof (GstStructure), 20},
   {"GstSystemClock", sizeof (GstSystemClock), 200},
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 176},
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 8},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 8},
   {"GstTask", sizeof (GstTask), 80},
   {"GstTaskClass", sizeof (GstTaskClass), 140},
   {"GstTrace", sizeof (GstTrace), 20},
diff --git a/tests/check/gst/struct_hppa.h b/tests/check/gst/struct_hppa.h
index 7f325f3..08df6b3 100644
--- a/tests/check/gst/struct_hppa.h
+++ b/tests/check/gst/struct_hppa.h
@@ -54,7 +54,7 @@
   {"GstStructure", sizeof (GstStructure), 20},
   {"GstSystemClock", sizeof (GstSystemClock), 200},
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 176},
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 8},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 8},
   {"GstTask", sizeof (GstTask), 80},
   {"GstTaskClass", sizeof (GstTaskClass), 140},
   {"GstTrace", sizeof (GstTrace), 20},
diff --git a/tests/check/gst/struct_i386.h b/tests/check/gst/struct_i386.h
index 87868b9..7aba5ae 100644
--- a/tests/check/gst/struct_i386.h
+++ b/tests/check/gst/struct_i386.h
@@ -54,7 +54,7 @@
  {"GstStructure", sizeof(GstStructure), 20},
  {"GstSystemClock", sizeof(GstSystemClock), 196},
  {"GstSystemClockClass", sizeof(GstSystemClockClass), 176},
- {"GstTagSetterIFace", sizeof(GstTagSetterIFace), 8},
+ {"GstTagSetterInterface", sizeof(GstTagSetterInterface), 8},
  {"GstTask", sizeof(GstTask), 80},
  {"GstTaskClass", sizeof(GstTaskClass), 140},
  {"GstTrace", sizeof(GstTrace), 20},
diff --git a/tests/check/gst/struct_ppc32.h b/tests/check/gst/struct_ppc32.h
index 7f325f3..08df6b3 100644
--- a/tests/check/gst/struct_ppc32.h
+++ b/tests/check/gst/struct_ppc32.h
@@ -54,7 +54,7 @@
   {"GstStructure", sizeof (GstStructure), 20},
   {"GstSystemClock", sizeof (GstSystemClock), 200},
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 176},
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 8},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 8},
   {"GstTask", sizeof (GstTask), 80},
   {"GstTaskClass", sizeof (GstTaskClass), 140},
   {"GstTrace", sizeof (GstTrace), 20},
diff --git a/tests/check/gst/struct_ppc64.h b/tests/check/gst/struct_ppc64.h
index 3c3dbcd..7b77248 100644
--- a/tests/check/gst/struct_ppc64.h
+++ b/tests/check/gst/struct_ppc64.h
@@ -54,7 +54,7 @@
   {"GstStructure", sizeof (GstStructure), 40} ,
   {"GstSystemClock", sizeof (GstSystemClock), 288} ,
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 352} ,
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 16} ,
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 16} ,
   {"GstTask", sizeof (GstTask), 160} ,
   {"GstTaskClass", sizeof (GstTaskClass), 280} ,
   {"GstTrace", sizeof (GstTrace), 32} ,
diff --git a/tests/check/gst/struct_sparc.h b/tests/check/gst/struct_sparc.h
index 73764c9..3f28d86 100644
--- a/tests/check/gst/struct_sparc.h
+++ b/tests/check/gst/struct_sparc.h
@@ -55,7 +55,7 @@
   {"GstStructure", sizeof (GstStructure), 20},
   {"GstSystemClock", sizeof (GstSystemClock), 200},
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 176},
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 8},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 8},
   {"GstTask", sizeof (GstTask), 80},
   {"GstTaskClass", sizeof (GstTaskClass), 140},
   {"GstTrace", sizeof (GstTrace), 20},
diff --git a/tests/check/gst/struct_x86_64.h b/tests/check/gst/struct_x86_64.h
index 91cdcf5..469d749 100644
--- a/tests/check/gst/struct_x86_64.h
+++ b/tests/check/gst/struct_x86_64.h
@@ -65,7 +65,7 @@
   {"GstSystemClockClass", sizeof (GstSystemClockClass), 352},
   {"GstSystemClock", sizeof (GstSystemClock), 288},
   {"GstTagList", sizeof (GstTagList), 40},
-  {"GstTagSetterIFace", sizeof (GstTagSetterIFace), 16},
+  {"GstTagSetterInterface", sizeof (GstTagSetterInterface), 16},
   {"GstTaskClass", sizeof (GstTaskClass), 280},
   {"GstTask", sizeof (GstTask), 160},
   {"GstTaskPoolClass", sizeof (GstTaskPoolClass), 304},
@@ -76,7 +76,9 @@
   {"GstTypeFindFactoryClass", sizeof (GstTypeFindFactoryClass), 304},
   {"GstTypeFindFactory", sizeof (GstTypeFindFactory), 216},
   {"GstTypeFind", sizeof (GstTypeFind), 64},
+#if !defined(GST_DISABLE_DEPRECATED) && !defined(GST_REMOVE_DEPRECATED)
   {"GstTypeNameData", sizeof (GstTypeNameData), 16},
+#endif
   {"GstURIHandlerInterface", sizeof (GstURIHandlerInterface), 88},
   {"GstValueTable", sizeof (GstValueTable), 64},
   {NULL, 0, 0}
diff --git a/tests/check/libs/adapter.c b/tests/check/libs/adapter.c
index b456473..bf356b9 100644
--- a/tests/check/libs/adapter.c
+++ b/tests/check/libs/adapter.c
@@ -36,7 +36,8 @@
   GstAdapter *adapter;
   GstBuffer *buffer;
   guint avail;
-  const guint8 *bufdata, *data1, *data2;
+  GstMapInfo info;
+  const guint8 *data1, *data2, *idata;
 
   adapter = gst_adapter_new ();
   fail_if (adapter == NULL);
@@ -44,7 +45,9 @@
   /* push single buffer in adapter */
   buffer = gst_buffer_new_and_alloc (512);
 
-  bufdata = gst_buffer_map (buffer, NULL, NULL, GST_MAP_READ);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  idata = info.data;
+  gst_buffer_unmap (buffer, &info);
 
   fail_if (buffer == NULL);
   gst_adapter_push (adapter, buffer);
@@ -68,14 +71,14 @@
   data1 = gst_adapter_map (adapter, 512);
   fail_if (data1 == NULL);
   /* it should point to the buffer data as well */
-  fail_if (data1 != bufdata);
-  gst_adapter_unmap (adapter, 0);
+  fail_if (data1 != idata);
+  gst_adapter_unmap (adapter);
 
   data2 = gst_adapter_map (adapter, 512);
   fail_if (data2 == NULL);
   /* second peek should return the same pointer */
   fail_if (data2 != data1);
-  gst_adapter_unmap (adapter, 0);
+  gst_adapter_unmap (adapter);
 
   /* this should fail since we don't have that many bytes */
   ASSERT_CRITICAL (gst_adapter_flush (adapter, 513));
@@ -98,8 +101,8 @@
   fail_if (data2 == NULL);
   /* peek should return the same old pointer + 10 */
   fail_if (data2 != data1 + 10);
-  fail_if (data2 != bufdata + 10);
-  gst_adapter_unmap (adapter, 0);
+  fail_if (data2 != (guint8 *) idata + 10);
+  gst_adapter_unmap (adapter);
 
   /* flush some more */
   gst_adapter_flush (adapter, 500);
@@ -113,8 +116,8 @@
   data2 = gst_adapter_map (adapter, 2);
   fail_if (data2 == NULL);
   fail_if (data2 != data1 + 510);
-  fail_if (data2 != bufdata + 510);
-  gst_adapter_unmap (adapter, 0);
+  fail_if (data2 != (guint8 *) idata + 510);
+  gst_adapter_unmap (adapter);
 
   /* flush some more */
   gst_adapter_flush (adapter, 2);
@@ -158,17 +161,16 @@
   GstAdapter *adapter;
   GstBuffer *buffer, *buffer2;
   guint avail;
-  guint8 *data, *data2;
-  gsize size, size2;
+  GstMapInfo info, info2;
 
   adapter = gst_adapter_new ();
   fail_unless (adapter != NULL);
 
   buffer = gst_buffer_new_and_alloc (100);
   fail_unless (buffer != NULL);
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
-  fail_unless (data != NULL);
-  fail_unless (size == 100);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 100);
 
   /* push in the adapter */
   gst_adapter_push (adapter, buffer);
@@ -180,19 +182,19 @@
   buffer2 = gst_adapter_take_buffer (adapter, 100);
   fail_unless (buffer2 != NULL);
 
-  data2 = gst_buffer_map (buffer2, &size2, NULL, GST_MAP_READ);
-  fail_unless (data2 != NULL);
-  fail_unless (size2 == 100);
+  fail_unless (gst_buffer_map (buffer2, &info2, GST_MAP_READ));
+  fail_unless (info2.data != NULL);
+  fail_unless (info2.size == 100);
 
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
 
   /* the buffer should be the same */
   fail_unless (buffer == buffer2);
-  fail_unless (data == data2);
+  fail_unless (info.data == info2.data);
 
-  gst_buffer_unmap (buffer, data, size);
-  gst_buffer_unmap (buffer2, data2, size2);
+  gst_buffer_unmap (buffer, &info);
+  gst_buffer_unmap (buffer2, &info2);
 
   gst_buffer_unref (buffer2);
 
@@ -218,17 +220,17 @@
   GstAdapter *adapter;
   GstBuffer *buffer, *buffer2;
   guint avail;
-  guint8 *data, *data2;
-  gsize size, size2;
+  GstMapInfo info, info2;
 
   adapter = gst_adapter_new ();
   fail_unless (adapter != NULL);
 
   buffer = gst_buffer_new_and_alloc (100);
   fail_unless (buffer != NULL);
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_READ);
-  fail_unless (data != NULL);
-  fail_unless (size == 100);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 100);
+  gst_buffer_unmap (buffer, &info);
 
   /* set up and push subbuffers */
   buffer2 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 25);
@@ -248,16 +250,17 @@
   /* take out buffer */
   buffer2 = gst_adapter_take_buffer (adapter, 100);
   fail_unless (buffer2 != NULL);
-  data2 = gst_buffer_map (buffer2, &size2, NULL, GST_MAP_READ);
-  fail_unless (data2 != NULL);
-  fail_unless (size2 == 100);
+  fail_unless (gst_buffer_map (buffer2, &info2, GST_MAP_READ));
+  fail_unless (info2.data != NULL);
+  fail_unless (info2.size == 100);
 
   avail = gst_adapter_available (adapter);
   fail_unless (avail == 0);
 
   /* the data should be the same */
-  fail_unless (data == data2);
+  fail_unless (info.data == info2.data);
 
+  gst_buffer_unmap (buffer2, &info2);
   gst_buffer_unref (buffer2);
 
   g_object_unref (adapter);
@@ -276,18 +279,20 @@
 
   for (i = 0; i < 10000; i += 4) {
     GstBuffer *buf;
-    guint8 *data, *ptr;
+    GstMapInfo info;
+    guint8 *ptr;
 
     buf = gst_buffer_new_and_alloc (sizeof (guint32) * 4);
     fail_unless (buf != NULL);
 
-    ptr = data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
+    fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));
+    ptr = info.data;
 
     for (j = 0; j < 4; j++) {
       GST_WRITE_UINT32_LE (ptr, i + j);
       ptr += sizeof (guint32);
     }
-    gst_buffer_unmap (buf, data, sizeof (guint32) * 4);
+    gst_buffer_unmap (buf, &info);
 
     gst_adapter_push (adapter, buf);
   }
@@ -330,12 +335,11 @@
   adapter = create_and_fill_adapter ();
   while (gst_adapter_available (adapter) >= sizeof (guint32)) {
     GstBuffer *buf = gst_adapter_take_buffer (adapter, sizeof (guint32));
-    gpointer data;
-    gsize size;
+    GstMapInfo info;
 
-    data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
-    fail_unless (GST_READ_UINT32_LE (data) == i);
-    gst_buffer_unmap (buf, data, size);
+    fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
+    fail_unless (GST_READ_UINT32_LE (info.data) == i);
+    gst_buffer_unmap (buf, &info);
 
     i++;
 
@@ -541,7 +545,7 @@
   /* remove empty buffer, timestamp still visible */
   cdata = gst_adapter_map (adapter, 50);
   fail_unless (cdata != NULL);
-  gst_adapter_unmap (adapter, 0);
+  gst_adapter_unmap (adapter);
 
   data = gst_adapter_take (adapter, 50);
   fail_unless (data != NULL);
@@ -561,7 +565,7 @@
 {
   GstAdapter *adapter;
   GstBuffer *buffer;
-  guint8 *data;
+  GstMapInfo info;
   guint offset;
   guint i;
 
@@ -570,11 +574,11 @@
 
   buffer = gst_buffer_new_and_alloc (100);
 
-  data = gst_buffer_map (buffer, NULL, NULL, GST_MAP_WRITE);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
   /* fill with pattern */
   for (i = 0; i < 100; i++)
-    data[i] = i;
-  gst_buffer_unmap (buffer, data, 100);
+    ((guint8 *) info.data)[i] = i;
+  gst_buffer_unmap (buffer, &info);
 
   gst_adapter_push (adapter, buffer);
 
@@ -634,11 +638,11 @@
   /* add another buffer */
   buffer = gst_buffer_new_and_alloc (100);
 
-  data = gst_buffer_map (buffer, NULL, NULL, GST_MAP_WRITE);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
   /* fill with pattern */
   for (i = 0; i < 100; i++)
-    data[i] = i + 100;
-  gst_buffer_unmap (buffer, data, 100);
+    ((guint8 *) info.data)[i] = i + 100;
+  gst_buffer_unmap (buffer, &info);
 
   gst_adapter_push (adapter, buffer);
 
@@ -766,8 +770,9 @@
   while (gst_adapter_available (adapter) >= sizeof (guint32)) {
     GList *list, *walk;
     GstBuffer *buf;
-    gsize size, left;
-    guint8 *data, *ptr;
+    gsize left;
+    GstMapInfo info;
+    guint8 *ptr;
 
     list = gst_adapter_take_list (adapter, sizeof (guint32) * 5);
     fail_unless (list != NULL);
@@ -775,16 +780,18 @@
     for (walk = list; walk; walk = g_list_next (walk)) {
       buf = walk->data;
 
-      ptr = data = gst_buffer_map (buf, &size, NULL, GST_MAP_READ);
+      fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
 
-      left = size;
+      ptr = info.data;
+      left = info.size;
+
       while (left > 0) {
         fail_unless (GST_READ_UINT32_LE (ptr) == i);
         i++;
         ptr += sizeof (guint32);
         left -= sizeof (guint32);
       }
-      gst_buffer_unmap (buf, data, size);
+      gst_buffer_unmap (buf, &info);
 
       gst_buffer_unref (buf);
     }
diff --git a/tests/check/libs/basesink.c b/tests/check/libs/basesink.c
index f2a2fce..18842b3 100644
--- a/tests/check/libs/basesink.c
+++ b/tests/check/libs/basesink.c
@@ -25,12 +25,12 @@
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstbasesink.h>
 
-GST_START_TEST (basesink_last_buffer_enabled)
+GST_START_TEST (basesink_last_sample_enabled)
 {
   GstElement *src, *sink, *pipeline;
   GstBus *bus;
   GstMessage *msg;
-  GstBuffer *last_buffer;
+  GstSample *last_sample;
 
   pipeline = gst_pipeline_new ("pipeline");
   sink = gst_element_factory_make ("fakesink", "sink");
@@ -42,7 +42,7 @@
 
   bus = gst_element_get_bus (pipeline);
 
-  /* try with enable-last-buffer set to TRUE */
+  /* try with enable-last-sample set to TRUE */
   g_object_set (src, "num-buffers", 1, NULL);
   fail_unless (gst_element_set_state (pipeline, GST_STATE_PLAYING)
       != GST_STATE_CHANGE_FAILURE);
@@ -52,19 +52,19 @@
   fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
   gst_message_unref (msg);
 
-  /* last-buffer should be != NULL */
-  fail_unless (gst_base_sink_is_last_buffer_enabled (GST_BASE_SINK (sink))
+  /* last-sample should be != NULL */
+  fail_unless (gst_base_sink_is_last_sample_enabled (GST_BASE_SINK (sink))
       == TRUE);
-  g_object_get (sink, "last-buffer", &last_buffer, NULL);
-  fail_unless (last_buffer != NULL);
-  gst_buffer_unref (last_buffer);
+  g_object_get (sink, "last-sample", &last_sample, NULL);
+  fail_unless (last_sample != NULL);
+  gst_sample_unref (last_sample);
 
-  /* set enable-last-buffer to FALSE now, this should set last-buffer to NULL */
-  g_object_set (sink, "enable-last-buffer", FALSE, NULL);
-  fail_unless (gst_base_sink_is_last_buffer_enabled (GST_BASE_SINK (sink))
+  /* set enable-last-sample to FALSE now, this should set last-sample to NULL */
+  g_object_set (sink, "enable-last-sample", FALSE, NULL);
+  fail_unless (gst_base_sink_is_last_sample_enabled (GST_BASE_SINK (sink))
       == FALSE);
-  g_object_get (sink, "last-buffer", &last_buffer, NULL);
-  fail_unless (last_buffer == NULL);
+  g_object_get (sink, "last-sample", &last_sample, NULL);
+  fail_unless (last_sample == NULL);
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
@@ -76,12 +76,12 @@
 
 GST_END_TEST;
 
-GST_START_TEST (basesink_last_buffer_disabled)
+GST_START_TEST (basesink_last_sample_disabled)
 {
   GstElement *src, *sink, *pipeline;
   GstBus *bus;
   GstMessage *msg;
-  GstBuffer *last_buffer;
+  GstSample *last_sample;
 
   pipeline = gst_pipeline_new ("pipeline");
   sink = gst_element_factory_make ("fakesink", "sink");
@@ -93,9 +93,9 @@
 
   bus = gst_element_get_bus (pipeline);
 
-  /* set enable-last-buffer to FALSE */
+  /* set enable-last-sample to FALSE */
   g_object_set (src, "num-buffers", 1, NULL);
-  gst_base_sink_set_last_buffer_enabled (GST_BASE_SINK (sink), FALSE);
+  gst_base_sink_set_last_sample_enabled (GST_BASE_SINK (sink), FALSE);
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
   msg = gst_bus_poll (bus, GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
   fail_unless (msg != NULL);
@@ -103,9 +103,9 @@
   fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
   gst_message_unref (msg);
 
-  /* last-buffer should be NULL */
-  g_object_get (sink, "last-buffer", &last_buffer, NULL);
-  fail_unless (last_buffer == NULL);
+  /* last-sample should be NULL */
+  g_object_get (sink, "last-sample", &last_sample, NULL);
+  fail_unless (last_sample == NULL);
 
   gst_element_set_state (pipeline, GST_STATE_NULL);
 
@@ -124,8 +124,8 @@
   TCase *tc = tcase_create ("general");
 
   suite_add_tcase (s, tc);
-  tcase_add_test (tc, basesink_last_buffer_enabled);
-  tcase_add_test (tc, basesink_last_buffer_disabled);
+  tcase_add_test (tc, basesink_last_sample_enabled);
+  tcase_add_test (tc, basesink_last_sample_disabled);
 
   return s;
 }
diff --git a/tests/check/libs/basesrc.c b/tests/check/libs/basesrc.c
index 8853ee9..7e09488 100644
--- a/tests/check/libs/basesrc.c
+++ b/tests/check/libs/basesrc.c
@@ -27,17 +27,18 @@
 #include <gst/check/gstcheck.h>
 #include <gst/base/gstbasesrc.h>
 
-static GstProbeReturn
-eos_event_counter (GstObject * pad, GstProbeType type, GstEvent * event,
-    guint * p_num_eos)
+static GstPadProbeReturn
+eos_event_counter (GstObject * pad, GstPadProbeInfo * info, guint * p_num_eos)
 {
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+
   fail_unless (event != NULL);
   fail_unless (GST_IS_EVENT (event));
 
   if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
     *p_num_eos += 1;
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 /* basesrc_eos_events_push_live_op:
@@ -77,7 +78,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   bus = gst_element_get_bus (pipe);
@@ -155,7 +156,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   bus = gst_element_get_bus (pipe);
@@ -222,7 +223,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   gst_element_set_state (pipe, GST_STATE_PLAYING);
@@ -294,7 +295,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   bus = gst_element_get_bus (pipe);
@@ -364,7 +365,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   bus = gst_element_get_bus (pipe);
@@ -441,7 +442,7 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
-  probe = gst_pad_add_probe (srcpad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
   bus = gst_element_get_bus (pipe);
@@ -482,10 +483,11 @@
 GST_END_TEST;
 
 
-static GstProbeReturn
-segment_event_catcher (GstObject * pad, GstProbeType type, GstEvent * event,
+static GstPadProbeReturn
+segment_event_catcher (GstObject * pad, GstPadProbeInfo * info,
     gpointer * user_data)
 {
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
   GstEvent **last_event = (GstEvent **) user_data;
   fail_unless (event != NULL);
   fail_unless (GST_IS_EVENT (event));
@@ -497,7 +499,7 @@
     *last_event = gst_event_copy (event);
   }
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 /* basesrc_seek_events_rate_update:
@@ -535,7 +537,7 @@
   probe_pad = gst_element_get_static_pad (sink, "sink");
   fail_unless (probe_pad != NULL);
 
-  probe = gst_pad_add_probe (probe_pad, GST_PROBE_TYPE_EVENT,
+  probe = gst_pad_add_probe (probe_pad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) segment_event_catcher, &seg_event, NULL);
 
   /* prepare the seek */
diff --git a/tests/check/libs/bitreader.c b/tests/check/libs/bitreader.c
index 346b00e..1cdb55d 100644
--- a/tests/check/libs/bitreader.c
+++ b/tests/check/libs/bitreader.c
@@ -46,11 +46,11 @@
   GstBitReader reader = GST_BIT_READER_INIT (data, 4);
   GstBitReader *reader2;
   guint8 x = 0;
-  guint8 *bdata;
-  gsize bsize;
+  GstMapInfo info;
 
-  gst_buffer_take_memory (buffer, -1,
-      gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, NULL, 4, 0, 4));
+  gst_buffer_insert_memory (buffer, -1,
+      gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, 4, 0, 4, NULL,
+          NULL));
 
   fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &x, 8));
   fail_unless_equals_int (x, 0x01);
@@ -65,13 +65,13 @@
   fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &x, 8));
   fail_unless_equals_int (x, 0x02);
 
-  bdata = gst_buffer_map (buffer, &bsize, NULL, GST_MAP_READ);
-  gst_bit_reader_init (&reader, bdata, bsize);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  gst_bit_reader_init (&reader, info.data, info.size);
   fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &x, 8));
   fail_unless_equals_int (x, 0x01);
   fail_unless (gst_bit_reader_get_bits_uint8 (&reader, &x, 8));
   fail_unless_equals_int (x, 0x02);
-  gst_buffer_unmap (buffer, bdata, bsize);
+  gst_buffer_unmap (buffer, &info);
 
   reader2 = gst_bit_reader_new (data, 4);
   fail_unless (gst_bit_reader_get_bits_uint8 (reader2, &x, 8));
@@ -80,14 +80,14 @@
   fail_unless_equals_int (x, 0x02);
   gst_bit_reader_free (reader2);
 
-  bdata = gst_buffer_map (buffer, &bsize, NULL, GST_MAP_READ);
-  reader2 = gst_bit_reader_new (bdata, bsize);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  reader2 = gst_bit_reader_new (info.data, info.size);
   fail_unless (gst_bit_reader_get_bits_uint8 (reader2, &x, 8));
   fail_unless_equals_int (x, 0x01);
   fail_unless (gst_bit_reader_get_bits_uint8 (reader2, &x, 8));
   fail_unless_equals_int (x, 0x02);
   gst_bit_reader_free (reader2);
-  gst_buffer_unmap (buffer, bdata, bsize);
+  gst_buffer_unmap (buffer, &info);
 
   gst_buffer_unref (buffer);
 }
diff --git a/tests/check/libs/bytereader.c b/tests/check/libs/bytereader.c
index dfb7ef4..0aa41c5 100644
--- a/tests/check/libs/bytereader.c
+++ b/tests/check/libs/bytereader.c
@@ -46,11 +46,11 @@
   GstByteReader reader = GST_BYTE_READER_INIT (data, 4);
   GstByteReader *reader2;
   guint8 x = 0;
-  guint8 *bdata;
-  gsize bsize;
+  GstMapInfo info;
 
-  gst_buffer_take_memory (buffer, -1,
-      gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, NULL, 4, 0, 4));
+  gst_buffer_insert_memory (buffer, -1,
+      gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, 4, 0, 4, NULL,
+          NULL));
 
   fail_unless (gst_byte_reader_get_uint8 (&reader, &x));
   fail_unless_equals_int (x, 0x01);
@@ -65,13 +65,13 @@
   fail_unless (gst_byte_reader_get_uint8 (&reader, &x));
   fail_unless_equals_int (x, 0x02);
 
-  bdata = gst_buffer_map (buffer, &bsize, NULL, GST_MAP_READ);
-  gst_byte_reader_init (&reader, bdata, bsize);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  gst_byte_reader_init (&reader, info.data, info.size);
   fail_unless (gst_byte_reader_get_uint8 (&reader, &x));
   fail_unless_equals_int (x, 0x01);
   fail_unless (gst_byte_reader_get_uint8 (&reader, &x));
   fail_unless_equals_int (x, 0x02);
-  gst_buffer_unmap (buffer, bdata, bsize);
+  gst_buffer_unmap (buffer, &info);
 
   reader2 = gst_byte_reader_new (data, 4);
   fail_unless (gst_byte_reader_get_uint8 (reader2, &x));
@@ -80,14 +80,14 @@
   fail_unless_equals_int (x, 0x02);
   gst_byte_reader_free (reader2);
 
-  bdata = gst_buffer_map (buffer, &bsize, NULL, GST_MAP_READ);
-  reader2 = gst_byte_reader_new (bdata, bsize);
+  fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+  reader2 = gst_byte_reader_new (info.data, info.size);
   fail_unless (gst_byte_reader_get_uint8 (reader2, &x));
   fail_unless_equals_int (x, 0x01);
   fail_unless (gst_byte_reader_get_uint8 (reader2, &x));
   fail_unless_equals_int (x, 0x02);
   gst_byte_reader_free (reader2);
-  gst_buffer_unmap (buffer, bdata, bsize);
+  gst_buffer_unmap (buffer, &info);
 
   gst_buffer_unref (buffer);
 }
diff --git a/tests/check/libs/collectpads.c b/tests/check/libs/collectpads2.c
similarity index 78%
rename from tests/check/libs/collectpads.c
rename to tests/check/libs/collectpads2.c
index 4a66101..2a04aa2 100644
--- a/tests/check/libs/collectpads.c
+++ b/tests/check/libs/collectpads2.c
@@ -1,5 +1,5 @@
 /*
- * collectpads.c - GstCollectPads testsuite
+ * collectpads.c - GstCollectPads2 testsuite
  * Copyright (C) 2006 Alessandro Decina <alessandro@nnva.org>
  *
  * Authors:
@@ -22,7 +22,7 @@
  */
 
 #include <gst/check/gstcheck.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstcollectpads2.h>
 
 #define fail_unless_collected(expected)           \
 G_STMT_START {                                    \
@@ -36,11 +36,11 @@
 typedef struct
 {
   char foo;
-} BadCollectData;
+} BadCollectData2;
 
 typedef struct
 {
-  GstCollectData data;
+  GstCollectData2 data;
   GstPad *pad;
   GstBuffer *buffer;
   GstEvent *event;
@@ -56,7 +56,7 @@
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS_ANY);
 
-static GstCollectPads *collect;
+static GstCollectPads2 *collect;
 static gboolean collected;
 static GstPad *srcpad1, *srcpad2;
 static GstPad *sinkpad1, *sinkpad2;
@@ -66,7 +66,7 @@
 static GCond *cond;
 
 static GstFlowReturn
-collected_cb (GstCollectPads * pads, gpointer user_data)
+collected_cb (GstCollectPads2 * pads, gpointer user_data)
 {
   g_mutex_lock (lock);
   collected = TRUE;
@@ -100,8 +100,8 @@
 static void
 setup (void)
 {
-  collect = gst_collect_pads_new ();
-  gst_collect_pads_set_function (collect, collected_cb, NULL);
+  collect = gst_collect_pads2_new ();
+  gst_collect_pads2_set_function (collect, collected_cb, NULL);
 
   srcpad1 = gst_pad_new_from_static_template (&srctemplate, "src1");
   srcpad2 = gst_pad_new_from_static_template (&srctemplate, "src2");
@@ -110,6 +110,11 @@
   fail_unless (gst_pad_link (srcpad1, sinkpad1) == GST_PAD_LINK_OK);
   fail_unless (gst_pad_link (srcpad2, sinkpad2) == GST_PAD_LINK_OK);
 
+  gst_pad_set_active (sinkpad1, TRUE);
+  gst_pad_set_active (sinkpad2, TRUE);
+  gst_pad_set_active (srcpad1, TRUE);
+  gst_pad_set_active (srcpad2, TRUE);
+
   cond = g_cond_new ();
   lock = g_mutex_new ();
   data1 = NULL;
@@ -129,15 +134,15 @@
 
 GST_START_TEST (test_pad_add_remove)
 {
-  ASSERT_CRITICAL (gst_collect_pads_add_pad (collect, sinkpad1,
-          sizeof (BadCollectData)));
+  ASSERT_CRITICAL (gst_collect_pads2_add_pad (collect, sinkpad1,
+          sizeof (BadCollectData2)));
 
-  data1 = (TestData *) gst_collect_pads_add_pad (collect,
+  data1 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad1, sizeof (TestData));
   fail_unless (data1 != NULL);
 
-  fail_unless (gst_collect_pads_remove_pad (collect, sinkpad2) == FALSE);
-  fail_unless (gst_collect_pads_remove_pad (collect, sinkpad1) == TRUE);
+  fail_unless (gst_collect_pads2_remove_pad (collect, sinkpad2) == FALSE);
+  fail_unless (gst_collect_pads2_remove_pad (collect, sinkpad1) == TRUE);
 }
 
 GST_END_TEST;
@@ -147,11 +152,11 @@
   GstBuffer *buf1, *buf2, *tmp;
   GThread *thread1, *thread2;
 
-  data1 = (TestData *) gst_collect_pads_add_pad (collect,
+  data1 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad1, sizeof (TestData));
   fail_unless (data1 != NULL);
 
-  data2 = (TestData *) gst_collect_pads_add_pad (collect,
+  data2 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad2, sizeof (TestData));
   fail_unless (data2 != NULL);
 
@@ -159,7 +164,7 @@
   buf2 = gst_buffer_new ();
 
   /* start collect pads */
-  gst_collect_pads_start (collect);
+  gst_collect_pads2_start (collect);
 
   /* push buffers on the pads */
   data1->pad = srcpad1;
@@ -175,9 +180,9 @@
   /* now both pads have a buffer */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data1);
   fail_unless (tmp == buf1);
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data2);
   fail_unless (tmp == buf2);
 
   /* these will return immediately as at this point the threads have been
@@ -185,7 +190,7 @@
   g_thread_join (thread1);
   g_thread_join (thread2);
 
-  gst_collect_pads_stop (collect);
+  gst_collect_pads2_stop (collect);
 
   gst_buffer_unref (buf1);
   gst_buffer_unref (buf2);
@@ -198,18 +203,18 @@
   GstBuffer *buf1, *tmp;
   GThread *thread1, *thread2;
 
-  data1 = (TestData *) gst_collect_pads_add_pad (collect,
+  data1 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad1, sizeof (TestData));
   fail_unless (data1 != NULL);
 
-  data2 = (TestData *) gst_collect_pads_add_pad (collect,
+  data2 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad2, sizeof (TestData));
   fail_unless (data2 != NULL);
 
   buf1 = gst_buffer_new ();
 
   /* start collect pads */
-  gst_collect_pads_start (collect);
+  gst_collect_pads2_start (collect);
 
   /* push a buffer on srcpad1 and EOS on srcpad2 */
   data1->pad = srcpad1;
@@ -224,10 +229,10 @@
   /* now sinkpad1 has a buffer and sinkpad2 has EOS */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data1);
   fail_unless (tmp == buf1);
   /* sinkpad2 has EOS so a NULL buffer is returned */
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data2);
   fail_unless (tmp == NULL);
 
   /* these will return immediately as when the data is popped the threads are
@@ -235,7 +240,7 @@
   g_thread_join (thread1);
   g_thread_join (thread2);
 
-  gst_collect_pads_stop (collect);
+  gst_collect_pads2_stop (collect);
 
   gst_buffer_unref (buf1);
 }
@@ -247,18 +252,18 @@
   GstBuffer *buf1, *buf2, *tmp;
   GThread *thread1, *thread2;
 
-  data1 = (TestData *) gst_collect_pads_add_pad (collect,
+  data1 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad1, sizeof (TestData));
   fail_unless (data1 != NULL);
 
-  data2 = (TestData *) gst_collect_pads_add_pad (collect,
+  data2 = (TestData *) gst_collect_pads2_add_pad (collect,
       sinkpad2, sizeof (TestData));
   fail_unless (data2 != NULL);
 
   buf1 = gst_buffer_new ();
 
   /* start collect pads */
-  gst_collect_pads_start (collect);
+  gst_collect_pads2_start (collect);
 
   /* queue a buffer */
   data1->pad = srcpad1;
@@ -275,10 +280,10 @@
   /* one of the pads has a buffer, the other has EOS */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data1);
   fail_unless (tmp == buf1);
   /* there's nothing to pop from the one which received EOS */
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data2);
   fail_unless (tmp == NULL);
 
   /* these will return immediately as at this point the threads have been
@@ -286,13 +291,13 @@
   g_thread_join (thread1);
   g_thread_join (thread2);
 
-  gst_collect_pads_stop (collect);
+  gst_collect_pads2_stop (collect);
   collected = FALSE;
 
   buf2 = gst_buffer_new ();
 
   /* start collect pads */
-  gst_collect_pads_start (collect);
+  gst_collect_pads2_start (collect);
 
   /* push buffers on the pads */
   data1->pad = srcpad1;
@@ -308,9 +313,9 @@
   /* now both pads have a buffer */
   fail_unless_collected (TRUE);
 
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data1);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data1);
   fail_unless (tmp == buf1);
-  tmp = gst_collect_pads_pop (collect, (GstCollectData *) data2);
+  tmp = gst_collect_pads2_pop (collect, (GstCollectData2 *) data2);
   fail_unless (tmp == buf2);
 
   /* these will return immediately as at this point the threads have been
@@ -318,7 +323,7 @@
   g_thread_join (thread1);
   g_thread_join (thread2);
 
-  gst_collect_pads_stop (collect);
+  gst_collect_pads2_stop (collect);
 
   gst_buffer_unref (buf1);
   gst_buffer_unref (buf2);
@@ -328,12 +333,12 @@
 GST_END_TEST;
 
 static Suite *
-gst_collect_pads_suite (void)
+gst_collect_pads2_suite (void)
 {
   Suite *suite;
   TCase *general;
 
-  suite = suite_create ("GstCollectPads");
+  suite = suite_create ("GstCollectPads2");
   general = tcase_create ("general");
   suite_add_tcase (suite, general);
   tcase_add_checked_fixture (general, setup, teardown);
@@ -345,4 +350,4 @@
   return suite;
 }
 
-GST_CHECK_MAIN (gst_collect_pads);
+GST_CHECK_MAIN (gst_collect_pads2);
diff --git a/tests/check/libs/controller.c b/tests/check/libs/controller.c
index 05cd432..68388c7 100644
--- a/tests/check/libs/controller.c
+++ b/tests/check/libs/controller.c
@@ -26,69 +26,108 @@
 #endif
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
-#include <gst/controller/gstcontroller.h>
-#include <gst/controller/gstcontrolsource.h>
 #include <gst/controller/gstinterpolationcontrolsource.h>
 #include <gst/controller/gstlfocontrolsource.h>
+#include <gst/controller/gsttriggercontrolsource.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
 
-/* LOCAL TEST ELEMENT */
+/* enum for text element */
+
+#define GST_TYPE_TEST_ENUM (gst_test_enum_get_type ())
+
+typedef enum
+{
+  ENUM_V0 = 0,
+  ENUM_V10 = 10,
+  ENUM_V11,
+  ENUM_V12,
+  ENUM_V255 = 255
+} GstTestEnum;
+
+static GType
+gst_test_enum_get_type (void)
+{
+  static gsize gtype = 0;
+  static const GEnumValue values[] = {
+    {ENUM_V0, "ENUM_V0", "0"},
+    {ENUM_V10, "ENUM_V10", "10"},
+    {ENUM_V11, "ENUM_V11", "11"},
+    {ENUM_V12, "ENUM_V12", "12"},
+    {ENUM_V255, "ENUM_V255", "255"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&gtype)) {
+    GType tmp = g_enum_register_static ("GstTestEnum", values);
+    g_once_init_leave (&gtype, tmp);
+  }
+
+  return (GType) gtype;
+}
+
+/* local test element */
 
 enum
 {
-  ARG_ULONG = 1,
-  ARG_FLOAT,
-  ARG_DOUBLE,
-  ARG_BOOLEAN,
-  ARG_READONLY,
-  ARG_STATIC,
-  ARG_CONSTRUCTONLY,
-  ARG_COUNT
+  PROP_INT = 1,
+  PROP_FLOAT,
+  PROP_DOUBLE,
+  PROP_BOOLEAN,
+  PROP_ENUM,
+  PROP_READONLY,
+  PROP_STATIC,
+  PROP_CONSTRUCTONLY,
+  PROP_COUNT
 };
 
-#define GST_TYPE_TEST_MONO_SOURCE            (gst_test_mono_source_get_type ())
-#define GST_TEST_MONO_SOURCE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_MONO_SOURCE, GstTestMonoSource))
-#define GST_TEST_MONO_SOURCE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_MONO_SOURCE, GstTestMonoSourceClass))
-#define GST_IS_TEST_MONO_SOURCE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_MONO_SOURCE))
-#define GST_IS_TEST_MONO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_MONO_SOURCE))
-#define GST_TEST_MONO_SOURCE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_MONO_SOURCE, GstTestMonoSourceClass))
+#define GST_TYPE_TEST_OBJ            (gst_test_obj_get_type ())
+#define GST_TEST_OBJ(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_OBJ, GstTestObj))
+#define GST_TEST_OBJ_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_OBJ, GstTestObjClass))
+#define GST_IS_TEST_OBJ(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_OBJ))
+#define GST_IS_TEST_OBJ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_OBJ))
+#define GST_TEST_OBJ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_OBJ, GstTestObjClass))
 
-typedef struct _GstTestMonoSource GstTestMonoSource;
-typedef struct _GstTestMonoSourceClass GstTestMonoSourceClass;
+typedef struct _GstTestObj GstTestObj;
+typedef struct _GstTestObjClass GstTestObjClass;
 
-struct _GstTestMonoSource
+struct _GstTestObj
 {
   GstElement parent;
-  gulong val_ulong;
+  gint val_int;
   gfloat val_float;
   gdouble val_double;
   gboolean val_boolean;
+  GstTestEnum val_enum;
 };
-struct _GstTestMonoSourceClass
+struct _GstTestObjClass
 {
   GstElementClass parent_class;
 };
 
-static GType gst_test_mono_source_get_type (void);
+static GType gst_test_obj_get_type (void);
 
 static void
-gst_test_mono_source_get_property (GObject * object,
+gst_test_obj_get_property (GObject * object,
     guint property_id, GValue * value, GParamSpec * pspec)
 {
-  GstTestMonoSource *self = GST_TEST_MONO_SOURCE (object);
+  GstTestObj *self = GST_TEST_OBJ (object);
 
   switch (property_id) {
-    case ARG_ULONG:
-      g_value_set_ulong (value, self->val_ulong);
+    case PROP_INT:
+      g_value_set_int (value, self->val_int);
       break;
-    case ARG_FLOAT:
+    case PROP_FLOAT:
       g_value_set_float (value, self->val_float);
       break;
-    case ARG_DOUBLE:
+    case PROP_DOUBLE:
       g_value_set_double (value, self->val_double);
       break;
-    case ARG_BOOLEAN:
+    case PROP_BOOLEAN:
       g_value_set_boolean (value, self->val_boolean);
       break;
+    case PROP_ENUM:
+      g_value_set_enum (value, self->val_enum);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
       break;
@@ -96,29 +135,33 @@
 }
 
 static void
-gst_test_mono_source_set_property (GObject * object,
+gst_test_obj_set_property (GObject * object,
     guint property_id, const GValue * value, GParamSpec * pspec)
 {
-  GstTestMonoSource *self = GST_TEST_MONO_SOURCE (object);
+  GstTestObj *self = GST_TEST_OBJ (object);
 
   switch (property_id) {
-    case ARG_ULONG:
-      self->val_ulong = g_value_get_ulong (value);
-      GST_DEBUG ("test value ulong=%lu", self->val_ulong);
+    case PROP_INT:
+      self->val_int = g_value_get_int (value);
+      GST_DEBUG ("test value int=%d", self->val_int);
       break;
-    case ARG_FLOAT:
+    case PROP_FLOAT:
       self->val_float = g_value_get_float (value);
       GST_DEBUG ("test value float=%f", self->val_float);
       break;
-    case ARG_DOUBLE:
+    case PROP_DOUBLE:
       self->val_double = g_value_get_double (value);
-      GST_DEBUG ("test value double=%f", self->val_double);
+      GST_DEBUG ("test value double=%lf", self->val_double);
       break;
-    case ARG_BOOLEAN:
+    case PROP_BOOLEAN:
       self->val_boolean = g_value_get_boolean (value);
       GST_DEBUG ("test value boolean=%d", self->val_boolean);
       break;
-    case ARG_CONSTRUCTONLY:
+    case PROP_ENUM:
+      self->val_enum = g_value_get_enum (value);
+      GST_DEBUG ("test value enum=%d", self->val_enum);
+      break;
+    case PROP_CONSTRUCTONLY:
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -127,837 +170,332 @@
 }
 
 static void
-gst_test_mono_source_class_init (GstTestMonoSourceClass * klass)
+gst_test_obj_class_init (GstTestObjClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  gobject_class->set_property = gst_test_mono_source_set_property;
-  gobject_class->get_property = gst_test_mono_source_get_property;
+  gobject_class->set_property = gst_test_obj_set_property;
+  gobject_class->get_property = gst_test_obj_get_property;
 
-  g_object_class_install_property (gobject_class, ARG_ULONG,
-      g_param_spec_ulong ("ulong",
-          "ulong prop",
-          "ulong number parameter for the test_mono_source",
-          0, G_MAXULONG, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+  g_object_class_install_property (gobject_class, PROP_INT,
+      g_param_spec_int ("int",
+          "int prop",
+          "int number parameter",
+          0, 100, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
 
-  g_object_class_install_property (gobject_class, ARG_FLOAT,
+  g_object_class_install_property (gobject_class, PROP_FLOAT,
       g_param_spec_float ("float",
           "float prop",
-          "float number parameter for the test_mono_source",
+          "float number parameter",
           0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
 
-  g_object_class_install_property (gobject_class, ARG_DOUBLE,
+  g_object_class_install_property (gobject_class, PROP_DOUBLE,
       g_param_spec_double ("double",
           "double prop",
-          "double number parameter for the test_mono_source",
+          "double number parameter",
           0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
 
-  g_object_class_install_property (gobject_class, ARG_BOOLEAN,
+  g_object_class_install_property (gobject_class, PROP_BOOLEAN,
       g_param_spec_boolean ("boolean",
           "boolean prop",
-          "boolean parameter for the test_mono_source",
+          "boolean parameter",
           FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
 
-  g_object_class_install_property (gobject_class, ARG_READONLY,
-      g_param_spec_ulong ("readonly",
+  g_object_class_install_property (gobject_class, PROP_ENUM,
+      g_param_spec_enum ("enum",
+          "enum prop",
+          "enum parameter",
+          GST_TYPE_TEST_ENUM, ENUM_V0,
+          G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_READONLY,
+      g_param_spec_int ("readonly",
           "readonly prop",
-          "readonly parameter for the test_mono_source",
-          0, G_MAXULONG, 0, G_PARAM_READABLE | GST_PARAM_CONTROLLABLE));
+          "readonly parameter",
+          0, G_MAXINT, 0, G_PARAM_READABLE | GST_PARAM_CONTROLLABLE));
 
-  g_object_class_install_property (gobject_class, ARG_STATIC,
-      g_param_spec_ulong ("static",
+  g_object_class_install_property (gobject_class, PROP_STATIC,
+      g_param_spec_int ("static",
           "static prop",
-          "static parameter for the test_mono_source",
-          0, G_MAXULONG, 0, G_PARAM_READWRITE));
+          "static parameter", 0, G_MAXINT, 0, G_PARAM_READWRITE));
 
-  g_object_class_install_property (gobject_class, ARG_CONSTRUCTONLY,
-      g_param_spec_ulong ("construct-only",
+  g_object_class_install_property (gobject_class, PROP_CONSTRUCTONLY,
+      g_param_spec_int ("construct-only",
           "construct-only prop",
-          "construct-only parameter for the test_mono_source",
-          0, G_MAXULONG, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+          "construct-only parameter",
+          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 }
 
 static void
-gst_test_mono_source_base_init (GstTestMonoSourceClass * klass)
+gst_test_obj_base_init (GstTestObjClass * klass)
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
   gst_element_class_set_details_simple (element_class,
-      "Monophonic source for unit tests",
-      "Source/Audio/MonoSource",
-      "Use in unit tests", "Stefan Kost <ensonic@users.sf.net>");
+      "test object for unit tests",
+      "Test", "Use in unit tests", "Stefan Sauer <ensonic@users.sf.net>");
 }
 
 static GType
-gst_test_mono_source_get_type (void)
+gst_test_obj_get_type (void)
 {
-  static volatile gsize test_mono_source_type = 0;
+  static volatile gsize test_obj_type = 0;
 
-  if (g_once_init_enter (&test_mono_source_type)) {
+  if (g_once_init_enter (&test_obj_type)) {
     GType type;
     static const GTypeInfo info = {
-      (guint16) sizeof (GstTestMonoSourceClass),
-      (GBaseInitFunc) gst_test_mono_source_base_init,   // base_init
+      (guint16) sizeof (GstTestObjClass),
+      (GBaseInitFunc) gst_test_obj_base_init,   // base_init
       NULL,                     // base_finalize
-      (GClassInitFunc) gst_test_mono_source_class_init, // class_init
+      (GClassInitFunc) gst_test_obj_class_init, // class_init
       NULL,                     // class_finalize
       NULL,                     // class_data
-      (guint16) sizeof (GstTestMonoSource),
+      (guint16) sizeof (GstTestObj),
       0,                        // n_preallocs
       NULL,                     // instance_init
       NULL                      // value_table
     };
-    type =
-        g_type_register_static (GST_TYPE_ELEMENT, "GstTestMonoSource", &info,
-        0);
-    g_once_init_leave (&test_mono_source_type, type);
+    type = g_type_register_static (GST_TYPE_ELEMENT, "GstTestObj", &info, 0);
+    g_once_init_leave (&test_obj_type, type);
   }
-  return test_mono_source_type;
+  return test_obj_type;
 }
 
-/* so we don't have to paste the gst_element_register into 50 places below */
-static gboolean
-local_gst_controller_init (int *argc, char ***argv)
+static void
+setup (void)
 {
-  fail_unless (gst_controller_init (argc, argv));
-
-  fail_unless (gst_element_register (NULL, "testmonosource", GST_RANK_NONE,
-          GST_TYPE_TEST_MONO_SOURCE));
-
-  return TRUE;
+  gst_element_register (NULL, "testobj", GST_RANK_NONE, GST_TYPE_TEST_OBJ);
 }
 
-#define gst_controller_init(a,b) local_gst_controller_init(a,b)
+static void
+teardown (void)
+{
+}
+
 
 /* TESTS */
-/* double init should not harm */
-GST_START_TEST (controller_init)
-{
-  gst_controller_init (NULL, NULL);
-  gst_controller_init (NULL, NULL);
-  gst_controller_init (NULL, NULL);
-  gst_controller_init (NULL, NULL);
-}
 
-GST_END_TEST;
-
-/* tests for an element with no controlled params */
-GST_START_TEST (controller_new_fail1)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("fakesrc", "test_source");
-
-  /* that property should not exist */
-  ctrl = gst_controller_new (G_OBJECT (elem), "_schrompf_", NULL);
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests for an element with controlled params, but none given */
-GST_START_TEST (controller_new_fail2)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* no property given */
-  ctrl = gst_controller_new (G_OBJECT (elem), NULL);
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests for readonly params */
-GST_START_TEST (controller_new_fail3)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and but is readonly */
-  ASSERT_CRITICAL (ctrl =
-      gst_controller_new (G_OBJECT (elem), "readonly", NULL));
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests for static params */
-GST_START_TEST (controller_new_fail4)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and but is not controlable */
-  ASSERT_CRITICAL (ctrl = gst_controller_new (G_OBJECT (elem), "static", NULL));
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests for construct-only params */
-GST_START_TEST (controller_new_fail5)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and but is construct-only */
-  ASSERT_CRITICAL (ctrl =
-      gst_controller_new (G_OBJECT (elem), "construct-only", NULL));
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-
-/* tests for an element with controlled params */
-GST_START_TEST (controller_new_okay1)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests for an element with several controlled params */
-GST_START_TEST (controller_new_okay2)
-{
-  GstController *ctrl, *ctrl2, *ctrl3;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", "double", "float", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 1);
-
-  ctrl2 = gst_controller_new (G_OBJECT (elem), "boolean", NULL);
-  fail_unless (ctrl2 != NULL, NULL);
-  fail_unless (ctrl2 == ctrl, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 2);
-
-  /* trying to control the same properties again should correctly
-   * increase the refcount of the object returned as well */
-  ctrl3 =
-      gst_controller_new (G_OBJECT (elem), "ulong", "double", "float", NULL);
-  fail_unless (ctrl3 != NULL, NULL);
-  fail_unless (ctrl3 == ctrl, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 3);
-
-  g_object_unref (ctrl);
-  g_object_unref (ctrl2);
-  g_object_unref (ctrl3);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* controlling several params should return the same controller */
-GST_START_TEST (controller_new_okay3)
-{
-  GstController *ctrl1, *ctrl2, *ctrl3;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl1 = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl1 != NULL, NULL);
-
-  /* that property should exist and should be controllable */
-  ctrl2 = gst_controller_new (G_OBJECT (elem), "double", NULL);
-  fail_unless (ctrl2 != NULL, NULL);
-  fail_unless (ctrl1 == ctrl2, NULL);
-
-  /* that property should exist and should be controllable */
-  ctrl3 = gst_controller_new (G_OBJECT (elem), "float", NULL);
-  fail_unless (ctrl3 != NULL, NULL);
-  fail_unless (ctrl1 == ctrl3, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl1)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl1)->ref_count, 3);
-  g_object_unref (ctrl1);
-  g_object_unref (ctrl2);
-  g_object_unref (ctrl3);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* controlling a params twice should be handled */
-GST_START_TEST (controller_param_twice)
-{
-  GstController *ctrl;
-  GstElement *elem;
-  gboolean res;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* it should have been added at least once, let remove it */
-  res = gst_controller_remove_properties (ctrl, "ulong", NULL);
-  fail_unless (res, NULL);
-
-  /* removing it again should not work */
-  res = gst_controller_remove_properties (ctrl, "ulong", NULL);
-  fail_unless (!res, NULL);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests if we cleanup properly */
-GST_START_TEST (controller_finalize)
-{
-  GstController *ctrl;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* free the controller */
-  g_object_unref (ctrl);
-
-  /* object shouldn't have a controller anymore */
-  ctrl = gst_object_get_controller (G_OBJECT (elem));
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests if we cleanup properly */
-GST_START_TEST (controller_controlsource_refcounts)
-{
-  GstController *ctrl;
-  GstElement *elem;
-  GstControlSource *csource, *test_csource;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  csource = (GstControlSource *) gst_interpolation_control_source_new ();
-  fail_unless (csource != NULL, NULL);
-
-  fail_unless_equals_int (G_OBJECT (csource)->ref_count, 1);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong", csource));
-  fail_unless_equals_int (G_OBJECT (csource)->ref_count, 2);
-
-  g_object_unref (G_OBJECT (csource));
-
-  test_csource = gst_controller_get_control_source (ctrl, "ulong");
-  fail_unless (test_csource != NULL, NULL);
-  fail_unless (test_csource == csource);
-  fail_unless_equals_int (G_OBJECT (csource)->ref_count, 2);
-  g_object_unref (csource);
-
-  /* free the controller */
-  g_object_unref (ctrl);
-
-  /* object shouldn't have a controller anymore */
-  ctrl = gst_object_get_controller (G_OBJECT (elem));
-  fail_unless (ctrl == NULL, NULL);
-
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* tests if we don't fail on empty controllers */
+/* tests if we don't fail on empty interpolation controlsources */
 GST_START_TEST (controller_controlsource_empty1)
 {
-  GstController *ctrl;
   GstElement *elem;
-  GstControlSource *csource;
+  GstControlSource *cs;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  cs = gst_interpolation_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  csource = (GstControlSource *) gst_interpolation_control_source_new ();
-  fail_unless (csource != NULL, NULL);
-
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong", csource));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* don't fail on empty control point lists */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
 
   /* unref objects */
-  g_object_unref (csource);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
-/* tests if we don't fail on controllers that are empty again */
+/* tests if we don't fail on interpolation controlsources that are empty again */
 GST_START_TEST (controller_controlsource_empty2)
 {
-  GstController *ctrl;
   GstElement *elem;
-  GstInterpolationControlSource *csource;
-  GValue val = { 0, };
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  cs = gst_interpolation_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  csource = gst_interpolation_control_source_new ();
-  fail_unless (csource != NULL, NULL);
-
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          (GstControlSource *) csource));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set control values */
-  g_value_init (&val, G_TYPE_ULONG);
-  g_value_set_ulong (&val, 0);
-  gst_interpolation_control_source_set (csource, 0 * GST_SECOND, &val);
+  tvcs = (GstTimedValueControlSource *) cs;
+  gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0);
 
   /* ... and unset the value */
-  gst_interpolation_control_source_unset (csource, 0 * GST_SECOND);
+  gst_timed_value_control_source_unset (tvcs, 0 * GST_SECOND);
 
   /* don't fail on empty control point lists */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
 
   /* unref objects */
-  g_object_unref (csource);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
 /* test timed value handling without interpolation */
-GST_START_TEST (controller_interpolate_none)
+GST_START_TEST (controller_interpolation_none)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
+  gdouble v;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_NONE));
-
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 0);
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 1);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 2);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
 
-  g_object_unref (G_OBJECT (csource));
+  /* check values on control source directly */
+  fail_unless (gst_control_source_get_value (cs, 0 * GST_SECOND, &v));
+  fail_unless_equals_float (v, 0.0);
+  fail_unless (gst_control_source_get_value (cs, 1 * GST_SECOND, &v));
+  fail_unless_equals_float (v, 0.0);
+  fail_unless (gst_control_source_get_value (cs, 2 * GST_SECOND, &v));
+  fail_unless_equals_float (v, 1.0);
+  fail_unless (gst_control_source_get_value (cs, 3 * GST_SECOND, &v));
+  fail_unless_equals_float (v, 1.0);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* test timed value handling in trigger mode */
-GST_START_TEST (controller_interpolate_trigger)
-{
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
-  GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_TRIGGER));
-
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  fail_if (gst_control_source_get_value (GST_CONTROL_SOURCE (csource),
-          0 * GST_SECOND, &val_ulong));
-
-  /* set control values */
-  g_value_set_ulong (&val_ulong, 50);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-
-
-  /* now pull in values for some timestamps */
-  fail_unless (gst_control_source_get_value (GST_CONTROL_SOURCE (csource),
-          0 * GST_SECOND, &val_ulong));
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  fail_unless (gst_control_source_get_value (GST_CONTROL_SOURCE (csource),
-          1 * GST_SECOND, &val_ulong));
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (gst_control_source_get_value (GST_CONTROL_SOURCE (csource),
-          2 * GST_SECOND, &val_ulong));
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (G_OBJECT (csource));
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
 /* test timed value handling with linear interpolation */
-GST_START_TEST (controller_interpolate_linear)
+GST_START_TEST (controller_interpolation_linear)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
 /* test timed value handling with cubic interpolation */
-GST_START_TEST (controller_interpolate_cubic)
+GST_START_TEST (controller_interpolation_cubic)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_double = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "double", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "double",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "double", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_CUBIC));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
 
   /* set control values */
-  g_value_init (&val_double, G_TYPE_DOUBLE);
-  g_value_set_double (&val_double, 0.0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-  g_value_set_double (&val_double, 5.0);
-  res =
-      gst_interpolation_control_source_set (csource, 1 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-  g_value_set_double (&val_double, 2.0);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-  g_value_set_double (&val_double, 8.0);
-  res =
-      gst_interpolation_control_source_set (csource, 4 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 0.5));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.2));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, 0.8));
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 0.0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 5.0);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 2.0);
-  gst_controller_sync_values (ctrl, 3 * GST_SECOND);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double > 2.0 &&
-      GST_TEST_MONO_SOURCE (elem)->val_double < 8.0, NULL);
-  gst_controller_sync_values (ctrl, 4 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 8.0);
-  gst_controller_sync_values (ctrl, 5 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 8.0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 50.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless (GST_TEST_OBJ (elem)->val_double > 20.0 &&
+      GST_TEST_OBJ (elem)->val_double < 80.0, NULL);
+  gst_object_sync_values (GST_OBJECT (elem), 4 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 80.0);
+  gst_object_sync_values (GST_OBJECT (elem), 5 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 80.0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
 /* test timed value handling with cubic interpolation */
-GST_START_TEST (controller_interpolate_cubic_too_few_cp)
+GST_START_TEST (controller_interpolation_cubic_too_few_cp)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_double = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "double", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "double",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "double", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_CUBIC));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
 
   /* set 2 control values */
-  g_value_init (&val_double, G_TYPE_DOUBLE);
-  g_value_set_double (&val_double, 0.0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-  g_value_set_double (&val_double, 4.0);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.4));
 
   /* now pull in values for some timestamps and verify that it used linear
    * interpolation as we don't gave enough control points
    */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 0.0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 2.0);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_double, 4.0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* make sure we don't crash when someone sets an unsupported interpolation
- * mode */
-GST_START_TEST (controller_interpolate_unimplemented)
-{
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
-  GstElement *elem;
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set completely bogus interpolation mode */
-  fail_if (gst_interpolation_control_source_set_interpolation_mode (csource,
-          (GstInterpolateMode) 93871));
-
-  g_object_unref (G_OBJECT (csource));
-
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -966,79 +504,51 @@
 /* test _unset() */
 GST_START_TEST (controller_interpolation_unset)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_NONE));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 1 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 50);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.5));
 
   /* verify values */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
 
   /* unset second */
-  res = gst_interpolation_control_source_unset (csource, 1 * GST_SECOND);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 1 * GST_SECOND));
 
   /* verify value again */
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
 
   /* unset all values, reset and try to unset again */
-  fail_unless (gst_interpolation_control_source_unset (csource,
-          0 * GST_SECOND));
-  fail_unless (gst_interpolation_control_source_unset (csource,
-          2 * GST_SECOND));
-  gst_interpolation_control_source_unset_all (csource);
-  fail_if (gst_interpolation_control_source_unset (csource, 2 * GST_SECOND));
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 0 * GST_SECOND));
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
+  gst_timed_value_control_source_unset_all (tvcs);
+  fail_if (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
 
-  g_object_unref (csource);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1047,61 +557,41 @@
 /* test _unset_all() */
 GST_START_TEST (controller_interpolation_unset_all)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_NONE));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 1 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
 
   /* verify values */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
   /* unset all */
-  gst_interpolation_control_source_unset_all (csource);
-
-  g_object_unref (csource);
+  gst_timed_value_control_source_unset_all (tvcs);
+  GST_TEST_OBJ (elem)->val_int = 0;
 
   /* verify value again */
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1110,62 +600,51 @@
 /* test retrieval of an array of values with get_value_array() */
 GST_START_TEST (controller_interpolation_linear_value_array)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
-  GstValueArray values = { NULL, };
+  gdouble *raw_values;
+  GValue *g_values;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
 
-  /* now pull in values for some timestamps */
-  values.property_name = (char *) "ulong";
-  values.nbsamples = 3;
-  values.sample_interval = GST_SECOND;
-  values.values = (gpointer) g_new (gulong, 3);
+  /* now pull in raw-values for some timestamps */
+  raw_values = g_new (gdouble, 3);
 
-  fail_unless (gst_control_source_get_value_array (GST_CONTROL_SOURCE (csource),
-          0, &values));
-  fail_unless_equals_int (((gulong *) values.values)[0], 0);
-  fail_unless_equals_int (((gulong *) values.values)[1], 50);
-  fail_unless_equals_int (((gulong *) values.values)[2], 100);
+  fail_unless (gst_control_source_get_value_array (cs,
+          0, GST_SECOND / 2, 3, raw_values));
+  fail_unless_equals_float ((raw_values)[0], 0.0);
+  fail_unless_equals_float ((raw_values)[1], 0.5);
+  fail_unless_equals_float ((raw_values)[2], 1.0);
 
-  g_object_unref (csource);
+  g_free (raw_values);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_free (values.values);
-  g_object_unref (ctrl);
+  /* now pull in mapped values for some timestamps */
+  g_values = g_new0 (GValue, 3);
+
+  fail_unless (gst_object_get_value_array (GST_OBJECT (elem), "int",
+          0, GST_SECOND / 2, 3, g_values));
+  fail_unless_equals_int (g_value_get_int (&g_values[0]), 0);
+  fail_unless_equals_int (g_value_get_int (&g_values[1]), 50);
+  fail_unless_equals_int (g_value_get_int (&g_values[2]), 100);
+
+  g_free (g_values);
+
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1174,68 +653,48 @@
 /* test if values below minimum and above maximum are clipped */
 GST_START_TEST (controller_interpolation_linear_invalid_values)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_float = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "float", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "float",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "float", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values */
-  g_value_init (&val_float, G_TYPE_FLOAT);
-  g_value_set_float (&val_float, 200.0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_float);
-  fail_unless (res, NULL);
-  g_value_set_float (&val_float, -200.0);
-  res =
-      gst_interpolation_control_source_set (csource, 4 * GST_SECOND,
-      &val_float);
-  fail_unless (res, NULL);
-
-  g_object_unref (csource);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 2.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, -2.0));
 
   /* now pull in values for some timestamps and see if clipping works */
   /* 200.0 */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 100.0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 100.0);
   /* 100.0 */
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 100.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 100.0);
   /* 50.0 */
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND + 500 * GST_MSECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 50.0);
+  gst_object_sync_values (GST_OBJECT (elem),
+      1 * GST_SECOND + 500 * GST_MSECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 50.0);
   /* 0.0 */
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 0.0);
   /* -100.0 */
-  gst_controller_sync_values (ctrl, 3 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 0.0);
   /* -200.0 */
-  gst_controller_sync_values (ctrl, 4 * GST_SECOND);
-  fail_unless_equals_float (GST_TEST_MONO_SOURCE (elem)->val_float, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 4 * GST_SECOND);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 0.0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1243,248 +702,182 @@
 
 GST_START_TEST (controller_interpolation_linear_default_values)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
-
-  g_value_init (&val_ulong, G_TYPE_ULONG);
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* Should fail if no value was set yet
    * FIXME: will not fail, as interpolation assumes val[0]=default_value if
    * nothing else is set.
-   fail_if (gst_control_source_get_value (GST_CONTROL_SOURCE (csource),
-   1 * GST_SECOND, &val_ulong));
+   fail_if (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, &val_int));
    */
 
   /* set control values */
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 1 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 3 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 3 * GST_SECOND, 1.0));
 
   /* now pull in values for some timestamps */
   /* should give the value of the first control point for timestamps before it */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 3 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
   /* set control values */
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
 
   /* unset the old ones */
-  res = gst_interpolation_control_source_unset (csource, 1 * GST_SECOND);
-  fail_unless (res, NULL);
-  res = gst_interpolation_control_source_unset (csource, 3 * GST_SECOND);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 1 * GST_SECOND));
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 3 * GST_SECOND));
 
   /* now pull in values for some timestamps */
   /* should now give our value for timestamp 0 */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
-  g_object_unref (G_OBJECT (csource));
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
 /* test gst_controller_set_disabled() with linear interpolation */
-GST_START_TEST (controller_interpolate_linear_disabled)
+GST_START_TEST (controller_interpolation_linear_disabled)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource, *csource2;
+  GstControlSource *cs1, *cs2;
+  GstTimedValueControlSource *tvcs1, *tvcs2;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, }
-  , val_double = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs1 = gst_interpolation_control_source_new ();
+  tvcs1 = (GstTimedValueControlSource *) cs1;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", "double", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  cs2 = gst_interpolation_control_source_new ();
+  tvcs2 = (GstTimedValueControlSource *) cs2;
 
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-  csource2 = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-  fail_unless (csource2 != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "double",
-          GST_CONTROL_SOURCE (csource2)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs1)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "double", cs2)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode
-      (csource2, GST_INTERPOLATE_LINEAR));
+  g_object_set (cs1, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+  g_object_set (cs2, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs1, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs1, 2 * GST_SECOND, 1.0));
 
-  g_object_unref (G_OBJECT (csource));
-
-/* set control values */
-  g_value_init (&val_double, G_TYPE_DOUBLE);
-  g_value_set_double (&val_double, 2.0);
-  res =
-      gst_interpolation_control_source_set (csource2, 0 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-  g_value_set_double (&val_double, 4.0);
-  res =
-      gst_interpolation_control_source_set (csource2, 2 * GST_SECOND,
-      &val_double);
-  fail_unless (res, NULL);
-
-  g_object_unref (G_OBJECT (csource2));
+  /* set control values */
+  fail_unless (gst_timed_value_control_source_set (tvcs2, 0 * GST_SECOND, 0.2));
+  fail_unless (gst_timed_value_control_source_set (tvcs2, 2 * GST_SECOND, 0.4));
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 2.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 3.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 4.0, NULL);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 30.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
 
   /* now pull in values for some timestamps, prop double disabled */
-  GST_TEST_MONO_SOURCE (elem)->val_ulong = 0;
-  GST_TEST_MONO_SOURCE (elem)->val_double = 0.0;
-  gst_controller_set_property_disabled (ctrl, "double", TRUE);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  GST_TEST_OBJ (elem)->val_double = 0.0;
+  gst_object_set_control_binding_disabled (GST_OBJECT (elem), "double", TRUE);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
 
   /* now pull in values for some timestamps, after enabling double again */
-  GST_TEST_MONO_SOURCE (elem)->val_ulong = 0;
-  GST_TEST_MONO_SOURCE (elem)->val_double = 0.0;
-  gst_controller_set_property_disabled (ctrl, "double", FALSE);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 2.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 3.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 4.0, NULL);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  GST_TEST_OBJ (elem)->val_double = 0.0;
+  gst_object_set_control_binding_disabled (GST_OBJECT (elem), "double", FALSE);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 30.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
 
   /* now pull in values for some timestamps, after disabling all props */
-  GST_TEST_MONO_SOURCE (elem)->val_ulong = 0;
-  GST_TEST_MONO_SOURCE (elem)->val_double = 0.0;
-  gst_controller_set_disabled (ctrl, TRUE);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 0.0, NULL);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  GST_TEST_OBJ (elem)->val_double = 0.0;
+  gst_object_set_control_bindings_disabled (GST_OBJECT (elem), TRUE);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 0.0);
 
   /* now pull in values for some timestamps, enabling double again */
-  GST_TEST_MONO_SOURCE (elem)->val_ulong = 0;
-  GST_TEST_MONO_SOURCE (elem)->val_double = 0.0;
-  gst_controller_set_property_disabled (ctrl, "double", FALSE);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 2.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 3.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 4.0, NULL);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  GST_TEST_OBJ (elem)->val_double = 0.0;
+  gst_object_set_control_binding_disabled (GST_OBJECT (elem), "double", FALSE);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 30.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
 
   /* now pull in values for some timestamps, enabling all */
-  GST_TEST_MONO_SOURCE (elem)->val_ulong = 0;
-  GST_TEST_MONO_SOURCE (elem)->val_double = 0.0;
-  gst_controller_set_disabled (ctrl, FALSE);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 2.0, NULL);
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 3.0, NULL);
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  fail_unless (GST_TEST_MONO_SOURCE (elem)->val_double == 4.0, NULL);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  GST_TEST_OBJ (elem)->val_double = 0.0;
+  gst_object_set_control_bindings_disabled (GST_OBJECT (elem), FALSE);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 20.0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 30.0);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs1);
+  gst_object_unref (cs2);
   gst_object_unref (elem);
 }
 
@@ -1493,124 +886,219 @@
 
 GST_START_TEST (controller_interpolation_set_from_list)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstTimedValue *tval;
   GstElement *elem;
   GSList *list = NULL;
 
-  gst_controller_init (NULL, NULL);
-
   /* test that an invalid timestamp throws a warning of some sort */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control value */
   tval = g_new0 (GstTimedValue, 1);
   tval->timestamp = GST_CLOCK_TIME_NONE;
-  g_value_init (&tval->value, G_TYPE_ULONG);
-  g_value_set_ulong (&tval->value, 0);
+  tval->value = 0.0;
 
   list = g_slist_append (list, tval);
 
-  fail_if (gst_interpolation_control_source_set_from_list (csource, list));
+  fail_if (gst_timed_value_control_source_set_from_list (tvcs, list));
 
   /* try again with a valid stamp, should work now */
   tval->timestamp = 0;
-  fail_unless (gst_interpolation_control_source_set_from_list (csource, list));
-
-  g_object_unref (csource);
+  fail_unless (gst_timed_value_control_source_set_from_list (tvcs, list));
 
   /* allocated GstTimedValue now belongs to the controller, but list not */
-  g_value_unset (&tval->value);
   g_free (tval);
   g_slist_free (list);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
+
+/* test linear interpolation for ts < first control point */
+GST_START_TEST (controller_interpolation_linear_before_ts0)
+{
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
+  GstElement *elem;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
+
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
+
+  /* set interpolation mode */
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+
+  /* set control values */
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, 0.0));
+
+  /* now pull in values for some timestamps after first control point */
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 4 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+
+  /* now pull in values for some timestamps before first control point */
+  GST_TEST_OBJ (elem)->val_int = 25;
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* test linear interpolation of enums */
+GST_START_TEST (controller_interpolation_linear_enums)
+{
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
+  GstElement *elem;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
+
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "enum", cs)));
+
+  /* set interpolation mode */
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+
+  /* set control values */
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, 1.0));
+
+  /* now pull in values going over the enum values */
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_enum, ENUM_V0);
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_enum, ENUM_V10);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_enum, ENUM_V11);
+  gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_enum, ENUM_V12);
+  gst_object_sync_values (GST_OBJECT (elem), 4 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_enum, ENUM_V255);
+
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+/* test timed value counts */
+GST_START_TEST (controller_timed_value_count)
+{
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
+  GstElement *elem;
+
+  elem = gst_element_factory_make ("testobj", NULL);
+
+  /* new interpolation control source */
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
+
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
+
+  /* set interpolation mode */
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
+
+  fail_unless (gst_timed_value_control_source_get_count (tvcs) == 0);
+
+  /* set control values */
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
+  fail_unless (gst_timed_value_control_source_get_count (tvcs) == 1);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
+  fail_unless (gst_timed_value_control_source_get_count (tvcs) == 2);
+
+  /* unset control values */
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
+  fail_unless (gst_timed_value_control_source_get_count (tvcs) == 1);
+  fail_unless (gst_timed_value_control_source_unset (tvcs, 0 * GST_SECOND));
+  fail_unless (gst_timed_value_control_source_get_count (tvcs) == 0);
+
+  gst_object_unref (cs);
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+
 /* test lfo control source with sine waveform */
 GST_START_TEST (controller_lfo_sine)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SINE,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SINE,
       "frequency", 1.0, "timeshift", (GstClockTime) 0,
-      "amplitude", &amp, "offset", &off, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1619,69 +1107,49 @@
 /* test lfo control source with sine waveform and timeshift */
 GST_START_TEST (controller_lfo_sine_timeshift)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SINE,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SINE,
       "frequency", 1.0, "timeshift", 250 * GST_MSECOND,
-      "amplitude", &amp, "offset", &off, NULL);
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
-  g_object_unref (G_OBJECT (csource));
+  /* now pull in values for some timestamps */
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
 
-/* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1690,69 +1158,49 @@
 /* test lfo control source with square waveform */
 GST_START_TEST (controller_lfo_square)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SQUARE,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SQUARE,
       "frequency", 1.0, "timeshift", (GstClockTime) 0,
-      "amplitude", &amp, "offset", &off, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1761,69 +1209,49 @@
 /* test lfo control source with saw waveform */
 GST_START_TEST (controller_lfo_saw)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SAW,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SAW,
       "frequency", 1.0, "timeshift", (GstClockTime) 0,
-      "amplitude", &amp, "offset", &off, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1832,69 +1260,49 @@
 /* test lfo control source with reverse saw waveform */
 GST_START_TEST (controller_lfo_rsaw)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW,
       "frequency", 1.0, "timeshift", (GstClockTime) 0,
-      "amplitude", &amp, "offset", &off, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1903,69 +1311,49 @@
 /* test lfo control source with saw waveform */
 GST_START_TEST (controller_lfo_triangle)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
-  GValue amp = { 0, }
-  , off = {
-  0,};
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set amplitude and offset values */
-  g_value_init (&amp, G_TYPE_ULONG);
-  g_value_init (&off, G_TYPE_ULONG);
-  g_value_set_ulong (&amp, 100);
-  g_value_set_ulong (&off, 100);
-
-  /* set waveform mode */
-  g_object_set (csource, "waveform", GST_LFO_WAVEFORM_TRIANGLE,
+  /* configure lfo */
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_TRIANGLE,
       "frequency", 1.0, "timeshift", (GstClockTime) 0,
-      "amplitude", &amp, "offset", &off, NULL);
-
-  g_object_unref (G_OBJECT (csource));
+      "amplitude", 0.5, "offset", 0.5, NULL);
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -1974,280 +1362,133 @@
 /* test lfo control source with nothing set */
 GST_START_TEST (controller_lfo_none)
 {
-  GstController *ctrl;
-  GstLFOControlSource *csource;
+  GstControlSource *cs;
   GstElement *elem;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new lfo control source */
+  cs = gst_lfo_control_source_new ();
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_lfo_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  g_object_unref (G_OBJECT (csource));
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
   /* now pull in values for some timestamps */
-  gst_controller_sync_values (ctrl, 0 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 2000 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1250 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1500 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
-  gst_controller_sync_values (ctrl, 1750 * GST_MSECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 2000 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1250 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1500 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
-/* tests if we can run helper methods against any GObject */
-GST_START_TEST (controller_helper_any_gobject)
+/* test timed value handling in trigger mode */
+GST_START_TEST (controller_trigger_exact)
 {
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
+  gdouble raw_val;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("bin", "test_elem");
+  /* new interpolation control source */
+  cs = gst_trigger_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that element is not controllable */
-  res = gst_object_sync_values (G_OBJECT (elem), 0LL);
-  /* Syncing should still succeed as there's nothing to sync */
-  fail_unless (res == TRUE, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (controller_refcount_new_list)
-{
-  GstController *ctrl, *ctrl2;
-  GstElement *elem;
-  GList *list = NULL;
-
-  gst_controller_init (NULL, NULL);
-
-  /* that property should exist and should be controllable */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-  list = g_list_append (NULL, (char *) "ulong");
-  ctrl = gst_controller_new_list (G_OBJECT (elem), list);
-  fail_unless (ctrl != NULL, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 1);
-  g_list_free (list);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-
-  /* try the same property twice, make sure the refcount is still 1 */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-  list = g_list_append (NULL, (char *) "ulong");
-  list = g_list_append (list, (char *) "ulong");
-  ctrl = gst_controller_new_list (G_OBJECT (elem), list);
-  fail_unless (ctrl != NULL, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 1);
-  g_list_free (list);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-
-  /* try two properties, make sure the refcount is still 1 */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-  list = g_list_append (NULL, (char *) "ulong");
-  list = g_list_append (list, (char *) "boolean");
-  ctrl = gst_controller_new_list (G_OBJECT (elem), list);
-  fail_unless (ctrl != NULL, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 1);
-  g_list_free (list);
-  g_object_unref (ctrl);
-  gst_object_unref (elem);
-
-  /* try _new_list with existing controller */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  list = g_list_append (NULL, (char *) "ulong");
-  ctrl2 = gst_controller_new_list (G_OBJECT (elem), list);
-  fail_unless (ctrl2 != NULL, NULL);
-  fail_unless (ctrl == ctrl2, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 2);
-  g_list_free (list);
-  g_object_unref (ctrl);
-  g_object_unref (ctrl2);
-  gst_object_unref (elem);
-
-  /* try _new_list first and then _new */
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-  list = g_list_append (NULL, (char *) "ulong");
-  ctrl = gst_controller_new_list (G_OBJECT (elem), list);
-  fail_unless (ctrl != NULL, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  ctrl2 = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl2 != NULL, NULL);
-  fail_unless (ctrl == ctrl2, NULL);
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  fail_unless_equals_int (G_OBJECT (ctrl)->ref_count, 2);
-  g_list_free (list);
-  g_object_unref (ctrl);
-  g_object_unref (ctrl2);
-  gst_object_unref (elem);
-}
-
-GST_END_TEST;
-
-/* test linear interpolation for ts < first control point */
-GST_START_TEST (controller_interpolate_linear_before_ts0)
-{
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
-  GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
-
-  gst_controller_init (NULL, NULL);
-
-  elem = gst_element_factory_make ("testmonosource", "test_source");
-
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
-
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
-
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_LINEAR));
+  fail_if (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 4 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
 
-  g_object_unref (G_OBJECT (csource));
+  /* now pull in values for some timestamps */
+  fail_unless (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
 
-  /* now pull in values for some timestamps after first control point */
-  gst_controller_sync_values (ctrl, 2 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);
-  gst_controller_sync_values (ctrl, 3 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 4 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
 
-  /* now pull in values for some timestamps before first control point */
-  gst_controller_sync_values (ctrl, 1 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);
-  gst_controller_sync_values (ctrl, 0 * GST_SECOND);
-  fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  fail_if (gst_control_source_get_value (cs, 1 * GST_SECOND, &raw_val));
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  fail_unless (gst_control_source_get_value (cs, 2 * GST_SECOND, &raw_val));
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
 GST_END_TEST;
 
-/* test control-point handling in interpolation control source */
-GST_START_TEST (controller_interpolation_cp_count)
+GST_START_TEST (controller_trigger_tolerance)
 {
-  GstController *ctrl;
-  GstInterpolationControlSource *csource;
+  GstControlSource *cs;
+  GstTimedValueControlSource *tvcs;
   GstElement *elem;
-  gboolean res;
-  GValue val_ulong = { 0, };
+  gdouble raw_val;
 
-  gst_controller_init (NULL, NULL);
+  elem = gst_element_factory_make ("testobj", NULL);
 
-  elem = gst_element_factory_make ("testmonosource", "test_source");
+  /* new interpolation control source */
+  cs = gst_trigger_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
 
-  /* that property should exist and should be controllable */
-  ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL);
-  fail_unless (ctrl != NULL, NULL);
+  fail_unless (gst_object_add_control_binding (GST_OBJECT (elem),
+          gst_direct_control_binding_new (GST_OBJECT (elem), "int", cs)));
 
-  /* Get interpolation control source */
-  csource = gst_interpolation_control_source_new ();
+  g_object_set (cs, "tolerance", G_GINT64_CONSTANT (10), NULL);
 
-  fail_unless (csource != NULL);
-  fail_unless (gst_controller_set_control_source (ctrl, "ulong",
-          GST_CONTROL_SOURCE (csource)));
-
-  /* set interpolation mode */
-  fail_unless (gst_interpolation_control_source_set_interpolation_mode (csource,
-          GST_INTERPOLATE_NONE));
-
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 0);
+  fail_if (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
 
   /* set control values */
-  g_value_init (&val_ulong, G_TYPE_ULONG);
-  g_value_set_ulong (&val_ulong, 0);
-  res =
-      gst_interpolation_control_source_set (csource, 0 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 1);
-  g_value_set_ulong (&val_ulong, 100);
-  res =
-      gst_interpolation_control_source_set (csource, 2 * GST_SECOND,
-      &val_ulong);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 2);
+  fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5));
+  fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
 
-  /* now unset control values */
-  res = gst_interpolation_control_source_unset (csource, 2 * GST_SECOND);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 1);
+  /* now pull in values for some timestamps */
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
+  gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND + 5);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
 
-  res = gst_interpolation_control_source_unset (csource, 0 * GST_SECOND);
-  fail_unless (res, NULL);
-  fail_unless (gst_interpolation_control_source_get_count (csource) == 0);
+  GST_TEST_OBJ (elem)->val_int = 0;
+  gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
 
-  g_object_unref (G_OBJECT (csource));
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND - 5);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
+  gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
+  fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
 
-  GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count);
-  g_object_unref (ctrl);
+  gst_object_unref (cs);
   gst_object_unref (elem);
 }
 
@@ -2261,34 +1502,23 @@
   TCase *tc = tcase_create ("general");
 
   suite_add_tcase (s, tc);
-  tcase_add_test (tc, controller_init);
-  tcase_add_test (tc, controller_refcount_new_list);
-  tcase_add_test (tc, controller_new_fail1);
-  tcase_add_test (tc, controller_new_fail2);
-  tcase_add_test (tc, controller_new_fail3);
-  tcase_add_test (tc, controller_new_fail4);
-  tcase_add_test (tc, controller_new_fail5);
-  tcase_add_test (tc, controller_new_okay1);
-  tcase_add_test (tc, controller_new_okay2);
-  tcase_add_test (tc, controller_new_okay3);
-  tcase_add_test (tc, controller_param_twice);
-  tcase_add_test (tc, controller_finalize);
-  tcase_add_test (tc, controller_controlsource_refcounts);
+  tcase_add_checked_fixture (tc, setup, teardown);
   tcase_add_test (tc, controller_controlsource_empty1);
   tcase_add_test (tc, controller_controlsource_empty2);
-  tcase_add_test (tc, controller_interpolate_none);
-  tcase_add_test (tc, controller_interpolate_trigger);
-  tcase_add_test (tc, controller_interpolate_linear);
-  tcase_add_test (tc, controller_interpolate_cubic);
-  tcase_add_test (tc, controller_interpolate_cubic_too_few_cp);
-  tcase_add_test (tc, controller_interpolate_unimplemented);
+  tcase_add_test (tc, controller_interpolation_none);
+  tcase_add_test (tc, controller_interpolation_linear);
+  tcase_add_test (tc, controller_interpolation_cubic);
+  tcase_add_test (tc, controller_interpolation_cubic_too_few_cp);
   tcase_add_test (tc, controller_interpolation_unset);
   tcase_add_test (tc, controller_interpolation_unset_all);
   tcase_add_test (tc, controller_interpolation_linear_value_array);
   tcase_add_test (tc, controller_interpolation_linear_invalid_values);
   tcase_add_test (tc, controller_interpolation_linear_default_values);
-  tcase_add_test (tc, controller_interpolate_linear_disabled);
+  tcase_add_test (tc, controller_interpolation_linear_disabled);
   tcase_add_test (tc, controller_interpolation_set_from_list);
+  tcase_add_test (tc, controller_interpolation_linear_before_ts0);
+  tcase_add_test (tc, controller_interpolation_linear_enums);
+  tcase_add_test (tc, controller_timed_value_count);
   tcase_add_test (tc, controller_lfo_sine);
   tcase_add_test (tc, controller_lfo_sine_timeshift);
   tcase_add_test (tc, controller_lfo_square);
@@ -2296,9 +1526,8 @@
   tcase_add_test (tc, controller_lfo_rsaw);
   tcase_add_test (tc, controller_lfo_triangle);
   tcase_add_test (tc, controller_lfo_none);
-  tcase_add_test (tc, controller_helper_any_gobject);
-  tcase_add_test (tc, controller_interpolate_linear_before_ts0);
-  tcase_add_test (tc, controller_interpolation_cp_count);
+  tcase_add_test (tc, controller_trigger_exact);
+  tcase_add_test (tc, controller_trigger_tolerance);
 
   return s;
 }
diff --git a/tests/check/libs/gdp.c b/tests/check/libs/gdp.c
deleted file mode 100644
index fff4ed4..0000000
--- a/tests/check/libs/gdp.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* GStreamer
- *
- * unit test for data protocol
- *
- * Copyright (C) <2004> Thomas Vander Stichele <thomas at apestaart dot org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gst/check/gstcheck.h>
-
-#ifndef GST_REMOVE_DEPRECATED
-#undef GST_DISABLE_DEPRECATED
-#endif
-
-#include <gst/dataprotocol/dataprotocol.h>
-#include "libs/gst/dataprotocol/dp-private.h"   /* private header */
-
-/* test our method of reading and writing headers using TO/FROM_BE */
-GST_START_TEST (test_conversion)
-{
-  guint8 array[9];
-  guint8 write_array[9];
-  guint16 read_two, expect_two;
-  guint32 read_four, expect_four;
-  guint64 read_eight, expect_eight;
-  int i;
-
-  for (i = 0; i < 9; ++i) {
-    array[i] = i * 0x10;
-  }
-
-  /* read 8 16 bits */
-  for (i = 0; i < 8; ++i) {
-    read_two = GST_READ_UINT16_BE (array + i);
-    expect_two = array[i] * (1 << 8) + array[i + 1];
-    fail_unless (read_two == expect_two,
-        "GST_READ_UINT16_BE %d: read %d != %d", i, read_two, expect_two);
-  }
-
-  /* write 8 16 bits */
-  for (i = 0; i < 8; ++i) {
-    GST_WRITE_UINT16_BE (&write_array[i], read_two);
-    fail_unless (memcmp (array + 7, write_array + i, 2) == 0,
-        "GST_WRITE_UINT16_BE %d: memcmp failed", i);
-  }
-
-  /* read 5 32 bits */
-  for (i = 0; i < 5; ++i) {
-    read_four = GST_READ_UINT32_BE (array + i);
-    expect_four = array[i] * (1 << 24) + array[i + 1] * (1 << 16)
-        + array[i + 2] * (1 << 8) + array[i + 3];
-    fail_unless (read_four == expect_four,
-        "GST_READ_UINT32_BE %d: read %d != %d", i, read_four, expect_four);
-  }
-
-  /* read 2 64 bits */
-  for (i = 0; i < 2; ++i) {
-    read_eight = GST_READ_UINT64_BE (array + i);
-    expect_eight = array[i] * (1LL << 56) + array[i + 1] * (1LL << 48)
-        + array[i + 2] * (1LL << 40) + array[i + 3] * (1LL << 32)
-        + array[i + 4] * (1 << 24) + array[i + 5] * (1 << 16)
-        + array[i + 6] * (1 << 8) + array[i + 7];
-    fail_unless (read_eight == expect_eight,
-        "GST_READ_UINT64_BE %d: read %" G_GUINT64_FORMAT
-        " != %" G_GUINT64_FORMAT, i, read_eight, expect_eight);
-  }
-
-  /* write 1 64 bit */
-  GST_WRITE_UINT64_BE (&write_array[0], read_eight);
-  fail_unless (memcmp (array + 1, write_array, 8) == 0,
-      "GST_WRITE_UINT64_BE: memcmp failed");
-}
-
-GST_END_TEST;
-
-static Suite *
-gst_dp_suite (void)
-{
-  Suite *s = suite_create ("data protocol");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  tcase_add_checked_fixture (tc_chain, gst_dp_init, NULL);
-  tcase_add_test (tc_chain, test_conversion);
-
-  return s;
-}
-
-GST_CHECK_MAIN (gst_dp);
diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc
index 23079e8..29939a3 100644
--- a/tests/check/libs/gstlibscpp.cc
+++ b/tests/check/libs/gstlibscpp.cc
@@ -31,20 +31,13 @@
 #include <gst/base/gstbitreader.h>
 #include <gst/base/gstbytereader.h>
 #include <gst/base/gstbytewriter.h>
-#include <gst/base/gstcollectpads.h>
-#include <gst/base/gstdataqueue.h>
+#include <gst/base/gstcollectpads2.h>
 #include <gst/base/gstpushsrc.h>
 #include <gst/base/gsttypefindhelper.h>
 
-#include <gst/controller/gstcontroller.h>
-#include <gst/controller/gstcontrollerprivate.h>
-#include <gst/controller/gstcontrolsource.h>
 #include <gst/controller/gstinterpolationcontrolsource.h>
-#include <gst/controller/gstinterpolationcontrolsourceprivate.h>
 #include <gst/controller/gstlfocontrolsource.h>
-#include <gst/controller/gstlfocontrolsourceprivate.h>
-
-#include <gst/dataprotocol/dataprotocol.h>
+#include <gst/controller/gsttriggercontrolsource.h>
 
 #include <gst/net/gstnetclientclock.h>
 #include <gst/net/gstnet.h>
diff --git a/tests/check/libs/gstnettimeprovider.c b/tests/check/libs/gstnettimeprovider.c
index 1e63270..49bfee0 100644
--- a/tests/check/libs/gstnettimeprovider.c
+++ b/tests/check/libs/gstnettimeprovider.c
@@ -57,9 +57,10 @@
   GstNetTimePacket *packet;
   GstClock *clock;
   GstClockTime local;
-  struct sockaddr_in servaddr;
-  gint port = -1, sockfd, ret;
-  socklen_t len;
+  GSocketAddress *server_addr;
+  GInetAddress *addr;
+  GSocket *socket;
+  gint port = -1;
 
   clock = gst_system_clock_obtain ();
   fail_unless (clock != NULL, "failed to get system clock");
@@ -69,33 +70,24 @@
   g_object_get (ntp, "port", &port, NULL);
   fail_unless (port > 0);
 
-  sockfd = socket (AF_INET, SOCK_DGRAM, 0);
-  fail_if (sockfd < 0, "socket failed");
+  socket = g_socket_new (G_SOCKET_FAMILY_IPV4, G_SOCKET_TYPE_DATAGRAM,
+      G_SOCKET_PROTOCOL_UDP, NULL);
+  fail_unless (socket != NULL, "could not create socket");
 
-  memset (&servaddr, 0, sizeof (servaddr));
-  servaddr.sin_family = AF_INET;
-  servaddr.sin_port = htons (port);
-#ifndef G_OS_WIN32
-  inet_aton ("127.0.0.1", &servaddr.sin_addr);
-#else
-  servaddr.sin_addr.s_addr = inet_addr ("127.0.0.1");
-#endif
+  addr = g_inet_address_new_from_string ("127.0.0.1");
+  server_addr = g_inet_socket_address_new (addr, port);
+  g_object_unref (addr);
 
   packet = gst_net_time_packet_new (NULL);
   fail_unless (packet != NULL, "failed to create packet");
 
   packet->local_time = local = gst_clock_get_time (clock);
 
-  len = sizeof (servaddr);
-  ret = gst_net_time_packet_send (packet, sockfd,
-      (struct sockaddr *) &servaddr, len);
-
-  fail_unless (ret == GST_NET_TIME_PACKET_SIZE, "failed to send packet");
+  fail_unless (gst_net_time_packet_send (packet, socket, server_addr, NULL));
 
   g_free (packet);
 
-  packet = gst_net_time_packet_receive (sockfd, (struct sockaddr *) &servaddr,
-      &len);
+  packet = gst_net_time_packet_receive (socket, NULL, NULL);
 
   fail_unless (packet != NULL, "failed to receive packet");
   fail_unless (packet->local_time == local, "local time is not the same");
@@ -105,7 +97,8 @@
 
   g_free (packet);
 
-  close (sockfd);
+  g_object_unref (socket);
+  g_object_unref (server_addr);
 
   gst_object_unref (ntp);
   gst_object_unref (clock);
diff --git a/tests/check/libs/test_transform.c b/tests/check/libs/test_transform.c
index 22229d2..5921c26 100644
--- a/tests/check/libs/test_transform.c
+++ b/tests/check/libs/test_transform.c
@@ -91,11 +91,16 @@
       gst_static_pad_template_get (src_template));
 
   trans_class->passthrough_on_same_caps = klass_passthrough_on_same_caps;
-  trans_class->transform_ip = klass_transform_ip;
-  trans_class->transform = klass_transform;
-  trans_class->transform_caps = klass_transform_caps;
-  trans_class->transform_size = klass_transform_size;
-  trans_class->set_caps = klass_set_caps;
+  if (klass_transform_ip != NULL)
+    trans_class->transform_ip = klass_transform_ip;
+  if (klass_transform != NULL)
+    trans_class->transform = klass_transform;
+  if (klass_transform_caps != NULL)
+    trans_class->transform_caps = klass_transform_caps;
+  if (klass_transform_size != NULL)
+    trans_class->transform_size = klass_transform_size;
+  if (klass_set_caps != NULL)
+    trans_class->set_caps = klass_set_caps;
 }
 
 static void
@@ -110,7 +115,7 @@
 }
 
 static GstFlowReturn
-result_sink_chain (GstPad * pad, GstBuffer * buffer)
+result_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
   TestTransData *data;
 
diff --git a/tests/check/libs/transform1.c b/tests/check/libs/transform1.c
index 26aa52e..8a04a45 100644
--- a/tests/check/libs/transform1.c
+++ b/tests/check/libs/transform1.c
@@ -119,7 +119,7 @@
   /* with caps buffer */
   GST_DEBUG_OBJECT (trans, "alloc with caps, size 10");
 
-  caps = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
   buffer_alloc_pt1_called = FALSE;
   set_caps_pt1_called = FALSE;
   res = gst_pad_alloc_buffer (trans->srcpad, 0, 10, caps, &buffer);
@@ -172,7 +172,7 @@
   trans = gst_test_trans_new ();
 
   /* first buffer */
-  caps = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
 
   GST_DEBUG_OBJECT (trans, "buffer with caps, size 20");
 
@@ -256,7 +256,7 @@
   gst_caps_unref (caps);
 
   /* with caps that is a superset */
-  caps = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
 
 #if 0
   GST_DEBUG_OBJECT (trans, "alloc with superset caps, size 20");
@@ -378,7 +378,7 @@
 
   set_caps_1_called = TRUE;
 
-  caps = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
 
   fail_unless (gst_caps_is_equal (incaps, caps));
   fail_unless (gst_caps_is_equal (outcaps, caps));
@@ -415,7 +415,7 @@
   gst_buffer_unref (buffer);
 #endif
 
-  caps = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
 
 #if 0
   /* with caps buffer */
@@ -551,8 +551,8 @@
 
   GST_DEBUG_OBJECT (trans, "set_caps called");
 
-  caps1 = gst_caps_new_simple ("baz/x-foo", NULL);
-  caps2 = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps1 = gst_caps_new_empty_simple ("baz/x-foo");
+  caps2 = gst_caps_new_empty_simple ("foo/x-bar");
 
   fail_unless (gst_caps_is_equal (incaps, caps1));
   fail_unless (gst_caps_is_equal (outcaps, caps2));
@@ -586,9 +586,9 @@
   GstCaps *res;
 
   if (dir == GST_PAD_SINK) {
-    res = gst_caps_new_simple ("foo/x-bar", NULL);
+    res = gst_caps_new_empty_simple ("foo/x-bar");
   } else {
-    res = gst_caps_new_simple ("baz/x-foo", NULL);
+    res = gst_caps_new_empty_simple ("baz/x-foo");
   }
 
   if (filter) {
@@ -628,7 +628,7 @@
 
   buffer_alloc_ct1_called = TRUE;
 
-  outcaps = gst_caps_new_simple ("foo/x-bar", NULL);
+  outcaps = gst_caps_new_empty_simple ("foo/x-bar");
   fail_unless (gst_caps_is_equal (outcaps, caps));
   gst_caps_unref (outcaps);
 
@@ -657,8 +657,8 @@
 
   trans = gst_test_trans_new ();
 
-  incaps = gst_caps_new_simple ("baz/x-foo", NULL);
-  outcaps = gst_caps_new_simple ("foo/x-bar", NULL);
+  incaps = gst_caps_new_empty_simple ("baz/x-foo");
+  outcaps = gst_caps_new_empty_simple ("foo/x-bar");
 
 #if 0
   /* without caps buffer, I think this should fail */
@@ -823,12 +823,12 @@
 
   GST_DEBUG_OBJECT (trans, "set_caps called");
 
-  caps1 = gst_caps_new_simple ("foo/x-bar", NULL);
+  caps1 = gst_caps_new_empty_simple ("foo/x-bar");
 
   if (set_caps_ct2_case == 1)
     caps2 = gst_caps_copy (caps1);
   else
-    caps2 = gst_caps_new_simple ("baz/x-foo", NULL);
+    caps2 = gst_caps_new_empty_simple ("baz/x-foo");
 
   fail_unless (gst_caps_is_equal (incaps, caps1));
   fail_unless (gst_caps_is_equal (outcaps, caps2));
@@ -866,7 +866,7 @@
     res = gst_caps_from_string ("foo/x-bar;baz/x-foo");
   } else {
     /* all on the srcpad can be transformed to the format of the sinkpad */
-    res = gst_caps_new_simple ("foo/x-bar", NULL);
+    res = gst_caps_new_empty_simple ("foo/x-bar");
   }
 
   if (filter) {
@@ -913,16 +913,16 @@
   buffer_alloc_ct2_called = TRUE;
 
   if (buffer_alloc_ct2_case == 1) {
-    incaps = gst_caps_new_simple ("foo/x-bar", NULL);
+    incaps = gst_caps_new_empty_simple ("foo/x-bar");
     if (buffer_alloc_ct2_suggest) {
-      outcaps = gst_caps_new_simple ("baz/x-foo", NULL);
+      outcaps = gst_caps_new_empty_simple ("baz/x-foo");
       size *= 2;
     } else
       outcaps = gst_caps_ref (incaps);
   } else {
-    incaps = gst_caps_new_simple ("baz/x-foo", NULL);
+    incaps = gst_caps_new_empty_simple ("baz/x-foo");
     if (buffer_alloc_ct2_suggest) {
-      outcaps = gst_caps_new_simple ("foo/x-bar", NULL);
+      outcaps = gst_caps_new_empty_simple ("foo/x-bar");
       size /= 2;
     } else
       outcaps = gst_caps_ref (incaps);
@@ -962,8 +962,8 @@
 
   trans = gst_test_trans_new ();
 
-  incaps = gst_caps_new_simple ("foo/x-bar", NULL);
-  outcaps = gst_caps_new_simple ("baz/x-foo", NULL);
+  incaps = gst_caps_new_empty_simple ("foo/x-bar");
+  outcaps = gst_caps_new_empty_simple ("baz/x-foo");
 
 #if 0
   /* without caps buffer, I think this should fail */
@@ -1132,8 +1132,8 @@
 
   trans = gst_test_trans_new ();
 
-  incaps = gst_caps_new_simple ("foo/x-bar", NULL);
-  outcaps = gst_caps_new_simple ("baz/x-foo", NULL);
+  incaps = gst_caps_new_empty_simple ("foo/x-bar");
+  outcaps = gst_caps_new_empty_simple ("baz/x-foo");
 
 #if 0
   /* without caps buffer, I think this should fail */
diff --git a/tests/check/libs/typefindhelper.c b/tests/check/libs/typefindhelper.c
index 8a55f84..346539b 100644
--- a/tests/check/libs/typefindhelper.c
+++ b/tests/check/libs/typefindhelper.c
@@ -42,22 +42,20 @@
 /* make sure the entire data in the buffer is available for peeking */
 GST_START_TEST (test_buffer_range)
 {
-  static gchar *foobar_exts[] = { (char *) "foobar", NULL };
-
   GstStructure *s;
   GstBuffer *buf;
   GstCaps *caps;
 
   fail_unless (gst_type_find_register (NULL, "foo/x-bar",
-          GST_RANK_PRIMARY + 50, foobar_typefind, (gchar **) foobar_exts,
+          GST_RANK_PRIMARY + 50, foobar_typefind, "foobar",
           FOOBAR_CAPS, NULL, NULL));
 
   buf = gst_buffer_new ();
   fail_unless (buf != NULL);
 
-  gst_buffer_take_memory (buf, -1,
+  gst_buffer_insert_memory (buf, -1,
       gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY,
-          (gpointer) vorbisid, NULL, 30, 0, 30));
+          (gpointer) vorbisid, 30, 0, 30, NULL, NULL));
 
   caps = gst_type_find_helper_for_buffer (NULL, buf, NULL);
   fail_unless (caps != NULL);
diff --git a/tests/check/pipelines/parse-launch.c b/tests/check/pipelines/parse-launch.c
index 6c894f9..32ad9cf 100644
--- a/tests/check/pipelines/parse-launch.c
+++ b/tests/check/pipelines/parse-launch.c
@@ -95,9 +95,9 @@
   "filesrc location=music.ogg ! tee ! identity silent=true ! identity silent=true ! fakesink silent=true",
   "filesrc location=http://domain.com/music.mp3 ! identity silent=true ! fakesink silent=true",
   "filesrc location=movie.avi ! tee name=demuxer ! ( queue ! identity silent=true ! fakesink silent=true ) ( demuxer. ! queue ! identity silent=true ! fakesink silent=true )",
-  "fakesrc ! video/x-raw-yuv ! fakesink silent=true",
+  "fakesrc ! video/x-raw ! fakesink silent=true",
   "fakesrc !   video/raw,  format=(string)YUY2; video/raw, format=(string)YV12 ! fakesink silent=true",
-  "fakesrc ! audio/x-raw-int, width=[16,  32], depth={16, 24, 32}, signed=TRUE ! fakesink silent=true",
+  "fakesrc ! audio/x-raw, width=[16,  32], depth={16, 24, 32}, signed=TRUE ! fakesink silent=true",
   "fakesrc ! identity silent=true ! identity silent=true ! identity silent=true ! fakesink silent=true",
   "fakesrc name=100 fakesink name=101 silent=true 100. ! 101.",
   "fakesrc ! 1dentity ! fakesink silent=true",
@@ -135,7 +135,7 @@
 #define PIPELINE4  "fakesrc num-buffers=4 .src ! identity silent=true !.sink identity silent=true .src ! .sink fakesink silent=true"
 #define PIPELINE5  "fakesrc num-buffers=4 name=src identity silent=true name=id1 identity silent=true name = id2 fakesink silent=true name =sink src. ! id1. id1.! id2.sink id2.src!sink.sink"
 #define PIPELINE6  "pipeline.(name=\"john\" fakesrc num-buffers=4 ( bin. ( ! queue ! identity silent=true !( queue ! fakesink silent=true )) ))"
-#define PIPELINE7  "fakesrc num-buffers=4 ! tee name=tee .src%d! queue ! fakesink silent=true tee.src%d ! queue ! fakesink silent=true queue name =\"foo\" ! fakesink silent=true tee.src%d ! foo."
+#define PIPELINE7  "fakesrc num-buffers=4 ! tee name=tee .src_%u! queue ! fakesink silent=true tee.src_%u ! queue ! fakesink silent=true queue name =\"foo\" ! fakesink silent=true tee.src_%u ! foo."
 /* aggregator is borked
  * #define PIPELINE8  "fakesrc num-buffers=4 ! tee name=tee1 .src0,src1 ! .sink0, sink1 aggregator ! fakesink silent=true"
  * */
diff --git a/tests/check/pipelines/queue-error.c b/tests/check/pipelines/queue-error.c
index 3ac43a9..50f9104 100644
--- a/tests/check/pipelines/queue-error.c
+++ b/tests/check/pipelines/queue-error.c
@@ -23,10 +23,10 @@
 
 #include <gst/gst.h>
 
-static GstProbeReturn
-modify_caps (GstObject * pad, GstProbeType type, GstEvent * event,
-    gpointer data)
+static GstPadProbeReturn
+modify_caps (GstObject * pad, GstPadProbeInfo * info, gpointer data)
 {
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
   GstElement *filter = GST_ELEMENT (data);
   GstCaps *caps;
 
@@ -34,14 +34,14 @@
   fail_unless (GST_IS_EVENT (event));
 
   if (GST_EVENT_TYPE (event) != GST_EVENT_EOS)
-    return GST_PROBE_OK;
+    return GST_PAD_PROBE_OK;
 
   /* trigger caps negotiation error */
-  caps = gst_caps_new_simple ("video/x-raw-rgb", NULL);
+  caps = gst_caps_new_empty_simple ("video/x-raw");
   g_object_set (filter, "caps", caps, NULL);
   gst_caps_unref (caps);
 
-  return GST_PROBE_OK;
+  return GST_PAD_PROBE_OK;
 }
 
 GST_START_TEST (test_queue)
@@ -53,7 +53,7 @@
   GstPad *pad;
   guint probe;
   gchar *pipe_desc =
-      g_strdup_printf ("fakesrc num-buffers=1 ! video/x-raw-yuv ! "
+      g_strdup_printf ("fakesrc num-buffers=1 ! video/x-raw ! "
       "queue min-threshold-buffers=2 name=queue ! "
       "capsfilter name=nasty ! fakesink");
 
@@ -71,7 +71,7 @@
   pad = gst_element_get_static_pad (queue, "sink");
   fail_unless (pad != NULL);
   probe =
-      gst_pad_add_probe (pad, GST_PROBE_TYPE_EVENT,
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
       (GstPadProbeCallback) modify_caps, filter, NULL);
 
   bus = gst_element_get_bus (pipeline);
diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c
new file mode 100644
index 0000000..35f2fb9
--- /dev/null
+++ b/tests/check/pipelines/seek.c
@@ -0,0 +1,211 @@
+/* GStreamer simple seek unit test
+ * Copyright (C) 2012 Collabora Ltd.
+ *   Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+
+#include <gst/check/gstcheck.h>
+#include <gst/check/gstconsistencychecker.h>
+
+/* ========================================================================
+ *  Dummy source, like a stripped down audio test source
+ * ======================================================================== */
+
+#define SAMPLERATE 44100
+#define CHUNKS_PER_SEC 10
+
+typedef struct
+{
+  GstBaseSrc parent;
+  GstClockTime next_time;
+} TimedTestSrc;
+
+typedef struct
+{
+  GstBaseSrcClass parent_class;
+} TimedTestSrcClass;
+
+static GstStaticPadTemplate timed_test_src_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("timed/audio"));
+
+static GType timed_test_src_get_type (void);
+
+G_DEFINE_TYPE (TimedTestSrc, timed_test_src, GST_TYPE_BASE_SRC);
+
+static gboolean timed_test_src_is_seekable (GstBaseSrc * basesrc);
+static gboolean timed_test_src_do_seek (GstBaseSrc * basesrc,
+    GstSegment * segment);
+static gboolean timed_test_src_start (GstBaseSrc * basesrc);
+static gboolean timed_test_src_stop (GstBaseSrc * basesrc);
+static GstFlowReturn timed_test_src_create (GstBaseSrc * basesrc,
+    guint64 offset, guint length, GstBuffer ** buffer);
+
+static void
+timed_test_src_class_init (TimedTestSrcClass * klass)
+{
+  GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *) klass;
+
+  gstbasesrc_class->is_seekable = timed_test_src_is_seekable;
+  gstbasesrc_class->do_seek = timed_test_src_do_seek;
+  gstbasesrc_class->start = timed_test_src_start;
+  gstbasesrc_class->stop = timed_test_src_stop;
+  gstbasesrc_class->create = timed_test_src_create;
+
+  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
+      gst_static_pad_template_get (&timed_test_src_src_template));
+}
+
+static void
+timed_test_src_init (TimedTestSrc * src)
+{
+  gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
+  gst_base_src_set_live (GST_BASE_SRC (src), FALSE);
+}
+
+static gboolean
+timed_test_src_start (GstBaseSrc * basesrc)
+{
+  TimedTestSrc *src = (TimedTestSrc *) basesrc;
+
+  src->next_time = 0;
+  return TRUE;
+}
+
+static gboolean
+timed_test_src_stop (GstBaseSrc * basesrc)
+{
+  return TRUE;
+}
+
+static gboolean
+timed_test_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment)
+{
+  TimedTestSrc *src = (TimedTestSrc *) basesrc;
+
+  src->next_time = segment->position;
+  return TRUE;
+}
+
+static gboolean
+timed_test_src_is_seekable (GstBaseSrc * basesrc)
+{
+  return TRUE;
+}
+
+static GstFlowReturn
+timed_test_src_create (GstBaseSrc * basesrc, guint64 offset, guint length,
+    GstBuffer ** buf)
+{
+  TimedTestSrc *src = (TimedTestSrc *) basesrc;
+
+  *buf = gst_buffer_new_and_alloc (SAMPLERATE / CHUNKS_PER_SEC);
+  GST_BUFFER_TIMESTAMP (*buf) = src->next_time;
+  GST_BUFFER_DURATION (*buf) = GST_SECOND / CHUNKS_PER_SEC;
+  src->next_time += GST_BUFFER_DURATION (*buf);
+  return GST_FLOW_OK;
+}
+
+/* ======================================================================== */
+
+GST_START_TEST (test_seek)
+{
+  GstMessage *msg;
+  GstElement *bin, *src1, *sink;
+  gboolean res;
+  GstPad *srcpad;
+  GstBus *bus;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+
+  src1 = g_object_new (timed_test_src_get_type (), "name", "testsrc", NULL);
+
+  sink = gst_element_factory_make ("fakesink", "sink");
+  gst_bin_add_many (GST_BIN (bin), src1, sink, NULL);
+
+  res = gst_element_link (src1, sink);
+  fail_unless (res == TRUE, NULL);
+
+  srcpad = gst_element_get_static_pad (src1, "src");
+  gst_object_unref (srcpad);
+
+  GST_INFO ("starting test");
+
+  /* prepare playing */
+  res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* wait for completion */
+  res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  res = gst_element_send_event (bin,
+      gst_event_new_seek (1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
+          GST_SEEK_TYPE_SET, (GstClockTime) 0,
+          GST_SEEK_TYPE_SET, (GstClockTime) 2 * GST_SECOND));
+  fail_unless (res == TRUE, NULL);
+
+  GST_INFO ("seeked");
+
+  /* run pipeline */
+  res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR);
+  fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "eos");
+  gst_message_unref (msg);
+
+  res = gst_element_set_state (bin, GST_STATE_NULL);
+  fail_unless (res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* cleanup */
+  gst_object_unref (bus);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+static Suite *
+pipelines_seek_suite (void)
+{
+  Suite *s = suite_create ("pipelines-seek");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_seek);
+
+  return s;
+}
+
+GST_CHECK_MAIN (pipelines_seek);
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index dd85b7a..fb72a2f 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -239,26 +239,8 @@
 got_handoff (GstElement * sink, GstBuffer * buf, GstPad * pad, gpointer unused)
 {
   gst_element_post_message
-      (sink, gst_message_new_application (NULL, gst_structure_new ("foo",
-              NULL)));
-}
-
-static void
-assert_live_count (GType type, gint live)
-{
-  GstAllocTrace *trace;
-  const gchar *name;
-
-  if (gst_alloc_trace_available ()) {
-    name = g_type_name (type);
-    fail_if (name == NULL);
-    trace = gst_alloc_trace_get (name);
-    if (trace) {
-      g_return_if_fail (trace->live == live);
-    }
-  } else {
-    g_print ("\nSkipping live count tests; recompile with traces to enable\n");
-  }
+      (sink, gst_message_new_application (NULL,
+          gst_structure_new_empty ("foo")));
 }
 
 GST_START_TEST (test_stop_from_app)
@@ -269,8 +251,6 @@
   GstMessageType rmessage;
   GstMessage *message;
 
-  assert_live_count (GST_TYPE_BUFFER, 0);
-
   fakesrc = gst_element_factory_make ("fakesrc", NULL);
   fakesink = gst_element_factory_make ("fakesink", NULL);
   pipeline = gst_element_factory_make ("pipeline", NULL);
@@ -316,8 +296,6 @@
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_object_unref (pipeline);
   gst_object_unref (bus);
-
-  assert_live_count (GST_TYPE_BUFFER, 0);
 }
 
 GST_END_TEST;
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index c68857a..1be1810 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -20,6 +20,23 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -83,11 +100,11 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
@@ -98,6 +115,11 @@
 	install-pdf-recursive install-ps-recursive install-recursive \
 	installcheck-recursive installdirs-recursive pdf-recursive \
 	ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -184,10 +206,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -200,10 +224,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -217,7 +241,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -234,6 +257,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -249,7 +276,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -282,6 +308,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -337,6 +364,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -370,7 +398,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -453,6 +480,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
+$(top_srcdir)/common/parallel-subdirs.mak:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -636,13 +664,10 @@
 	done
 	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
 	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
 	    $(am__relativize); \
 	    new_distdir=$$reldir; \
@@ -677,10 +702,15 @@
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/adapter/Makefile.am b/tests/examples/adapter/Makefile.am
index 6e4a4f4..cbd2987 100644
--- a/tests/examples/adapter/Makefile.am
+++ b/tests/examples/adapter/Makefile.am
@@ -1,4 +1,4 @@
 noinst_PROGRAMS = adapter_test
 
-adapter_test_LDADD = $(GST_OBJ_LIBS) $(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la
+adapter_test_LDADD = $(GST_OBJ_LIBS) $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la
 adapter_test_CFLAGS = $(GST_OBJ_CFLAGS)
diff --git a/tests/examples/adapter/Makefile.in b/tests/examples/adapter/Makefile.in
index e20aa6b..2855e15 100644
--- a/tests/examples/adapter/Makefile.in
+++ b/tests/examples/adapter/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,9 +101,9 @@
 adapter_test_OBJECTS = adapter_test-adapter_test.$(OBJEXT)
 am__DEPENDENCIES_1 =
 adapter_test_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 adapter_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(adapter_test_CFLAGS) \
@@ -101,24 +118,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = adapter_test.c
 DIST_SOURCES = adapter_test.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -175,10 +197,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -191,10 +215,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -208,7 +232,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -225,6 +248,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -240,7 +267,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -273,6 +299,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -328,6 +355,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -361,7 +389,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -382,7 +409,7 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-adapter_test_LDADD = $(GST_OBJ_LIBS) $(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la
+adapter_test_LDADD = $(GST_OBJ_LIBS) $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la
 adapter_test_CFLAGS = $(GST_OBJ_CFLAGS)
 all: all-am
 
@@ -427,7 +454,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-adapter_test$(EXEEXT): $(adapter_test_OBJECTS) $(adapter_test_DEPENDENCIES) 
+adapter_test$(EXEEXT): $(adapter_test_OBJECTS) $(adapter_test_DEPENDENCIES) $(EXTRA_adapter_test_DEPENDENCIES) 
 	@rm -f adapter_test$(EXEEXT)
 	$(AM_V_CCLD)$(adapter_test_LINK) $(adapter_test_OBJECTS) $(adapter_test_LDADD) $(LIBS)
 
@@ -442,42 +469,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 adapter_test-adapter_test.o: adapter_test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -MT adapter_test-adapter_test.o -MD -MP -MF $(DEPDIR)/adapter_test-adapter_test.Tpo -c -o adapter_test-adapter_test.o `test -f 'adapter_test.c' || echo '$(srcdir)/'`adapter_test.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/adapter_test-adapter_test.Tpo $(DEPDIR)/adapter_test-adapter_test.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='adapter_test.c' object='adapter_test-adapter_test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='adapter_test.c' object='adapter_test-adapter_test.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -c -o adapter_test-adapter_test.o `test -f 'adapter_test.c' || echo '$(srcdir)/'`adapter_test.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -c -o adapter_test-adapter_test.o `test -f 'adapter_test.c' || echo '$(srcdir)/'`adapter_test.c
 
 adapter_test-adapter_test.obj: adapter_test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -MT adapter_test-adapter_test.obj -MD -MP -MF $(DEPDIR)/adapter_test-adapter_test.Tpo -c -o adapter_test-adapter_test.obj `if test -f 'adapter_test.c'; then $(CYGPATH_W) 'adapter_test.c'; else $(CYGPATH_W) '$(srcdir)/adapter_test.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/adapter_test-adapter_test.Tpo $(DEPDIR)/adapter_test-adapter_test.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='adapter_test.c' object='adapter_test-adapter_test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='adapter_test.c' object='adapter_test-adapter_test.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -c -o adapter_test-adapter_test.obj `if test -f 'adapter_test.c'; then $(CYGPATH_W) 'adapter_test.c'; else $(CYGPATH_W) '$(srcdir)/adapter_test.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(adapter_test_CFLAGS) $(CFLAGS) -c -o adapter_test-adapter_test.obj `if test -f 'adapter_test.c'; then $(CYGPATH_W) 'adapter_test.c'; else $(CYGPATH_W) '$(srcdir)/adapter_test.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -581,10 +603,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/adapter/adapter_test.c b/tests/examples/adapter/adapter_test.c
index 3bb5b4b..489a06f 100644
--- a/tests/examples/adapter/adapter_test.c
+++ b/tests/examples/adapter/adapter_test.c
@@ -47,9 +47,7 @@
   for (i = 0; i < ntimes; i++) {
     buf = gst_buffer_new_and_alloc (params->write_size);
 
-    data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-    memset (data, 0, params->write_size);
-    gst_buffer_unmap (buf, data, params->write_size);
+    gst_buffer_memset (buf, 0, 0, params->write_size);
 
     gst_adapter_push (adapter, buf);
   }
@@ -74,14 +72,11 @@
   GstBuffer *buf;
   int i;
   gint ntimes = params->tot_size / params->write_size;
-  guint8 *data;
 
   for (i = 0; i < ntimes; i++) {
     buf = gst_buffer_new_and_alloc (params->write_size);
 
-    data = gst_buffer_map (buf, NULL, NULL, GST_MAP_WRITE);
-    memset (data, 0, params->write_size);
-    gst_buffer_unmap (buf, data, params->write_size);
+    gst_buffer_memset (buf, 0, 0, params->write_size);
 
     gst_adapter_push (adapter, buf);
   }
diff --git a/tests/examples/controller/Makefile.am b/tests/examples/controller/Makefile.am
index 0255ea7..4eded37 100644
--- a/tests/examples/controller/Makefile.am
+++ b/tests/examples/controller/Makefile.am
@@ -1,6 +1,19 @@
-noinst_PROGRAMS = audio-example
+noinst_PROGRAMS = audio-example control-sources text-color-example
 
-audio_example_CFLAGS  = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
-audio_example_LDADD = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+AM_CFLAGS  = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
+
+LDADD = \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
+
+Android.mk: Makefile.am audio-example.c
+	androgenizer \
+	-:PROJECT audio-example -:EXECUTABLE audio-example \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES audio-example.c \
+	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(audio_example_CFLAGS) \
+	 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
+	     $(GST_OBJ_LIBS) -ldl \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+	> $@
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index ea3fae3..263defe 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -34,7 +51,8 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = audio-example$(EXEEXT)
+noinst_PROGRAMS = audio-example$(EXEEXT) control-sources$(EXEEXT) \
+	text-color-example$(EXEEXT)
 subdir = tests/examples/controller
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -81,16 +99,24 @@
 CONFIG_CLEAN_VPATH_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
 audio_example_SOURCES = audio-example.c
-audio_example_OBJECTS = audio_example-audio-example.$(OBJEXT)
+audio_example_OBJECTS = audio-example.$(OBJEXT)
+audio_example_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-audio_example_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+audio_example_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-audio_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(audio_example_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+control_sources_SOURCES = control-sources.c
+control_sources_OBJECTS = control-sources.$(OBJEXT)
+control_sources_LDADD = $(LDADD)
+control_sources_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
+text_color_example_SOURCES = text-color-example.c
+text_color_example_OBJECTS = text-color-example.$(OBJEXT)
+text_color_example_LDADD = $(LDADD)
+text_color_example_DEPENDENCIES = $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -101,24 +127,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = audio-example.c
-DIST_SOURCES = audio-example.c
+SOURCES = audio-example.c control-sources.c text-color-example.c
+DIST_SOURCES = audio-example.c control-sources.c text-color-example.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -175,10 +206,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -191,10 +224,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -208,7 +241,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -225,6 +257,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -240,7 +276,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -273,6 +308,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -328,6 +364,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -361,7 +398,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -382,9 +418,9 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-audio_example_CFLAGS = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
-audio_example_LDADD = \
-	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_MAJORMINOR@.la \
+AM_CFLAGS = $(GST_OBJ_CFLAGS) -I$(top_builddir)/libs
+LDADD = \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 all: all-am
@@ -430,9 +466,15 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-audio-example$(EXEEXT): $(audio_example_OBJECTS) $(audio_example_DEPENDENCIES) 
+audio-example$(EXEEXT): $(audio_example_OBJECTS) $(audio_example_DEPENDENCIES) $(EXTRA_audio_example_DEPENDENCIES) 
 	@rm -f audio-example$(EXEEXT)
-	$(AM_V_CCLD)$(audio_example_LINK) $(audio_example_OBJECTS) $(audio_example_LDADD) $(LIBS)
+	$(AM_V_CCLD)$(LINK) $(audio_example_OBJECTS) $(audio_example_LDADD) $(LIBS)
+control-sources$(EXEEXT): $(control_sources_OBJECTS) $(control_sources_DEPENDENCIES) $(EXTRA_control_sources_DEPENDENCIES) 
+	@rm -f control-sources$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(control_sources_OBJECTS) $(control_sources_LDADD) $(LIBS)
+text-color-example$(EXEEXT): $(text_color_example_OBJECTS) $(text_color_example_DEPENDENCIES) $(EXTRA_text_color_example_DEPENDENCIES) 
+	@rm -f text-color-example$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(text_color_example_OBJECTS) $(text_color_example_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -440,47 +482,30 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audio_example-audio-example.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audio-example.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/control-sources.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text-color-example.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-audio_example-audio-example.o: audio-example.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_example_CFLAGS) $(CFLAGS) -MT audio_example-audio-example.o -MD -MP -MF $(DEPDIR)/audio_example-audio-example.Tpo -c -o audio_example-audio-example.o `test -f 'audio-example.c' || echo '$(srcdir)/'`audio-example.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audio_example-audio-example.Tpo $(DEPDIR)/audio_example-audio-example.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='audio-example.c' object='audio_example-audio-example.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_example_CFLAGS) $(CFLAGS) -c -o audio_example-audio-example.o `test -f 'audio-example.c' || echo '$(srcdir)/'`audio-example.c
-
-audio_example-audio-example.obj: audio-example.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_example_CFLAGS) $(CFLAGS) -MT audio_example-audio-example.obj -MD -MP -MF $(DEPDIR)/audio_example-audio-example.Tpo -c -o audio_example-audio-example.obj `if test -f 'audio-example.c'; then $(CYGPATH_W) 'audio-example.c'; else $(CYGPATH_W) '$(srcdir)/audio-example.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/audio_example-audio-example.Tpo $(DEPDIR)/audio_example-audio-example.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='audio-example.c' object='audio_example-audio-example.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_example_CFLAGS) $(CFLAGS) -c -o audio_example-audio-example.obj `if test -f 'audio-example.c'; then $(CYGPATH_W) 'audio-example.c'; else $(CYGPATH_W) '$(srcdir)/audio-example.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -584,10 +609,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -686,6 +716,18 @@
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
 
+Android.mk: Makefile.am audio-example.c
+	androgenizer \
+	-:PROJECT audio-example -:EXECUTABLE audio-example \
+	 -:TAGS eng debug \
+         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
+	 -:SOURCES audio-example.c \
+	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(audio_example_CFLAGS) \
+	 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
+	     $(GST_OBJ_LIBS) -ldl \
+	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
+	> $@
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/tests/examples/controller/audio-example.c b/tests/examples/controller/audio-example.c
index f5b2774..6494498 100644
--- a/tests/examples/controller/audio-example.c
+++ b/tests/examples/controller/audio-example.c
@@ -1,15 +1,15 @@
 /*
  * audio-example.c
  *
- * Builds a pipeline with audiotestsource->alsasink and sweeps frequency and
- * volume.
+ * Builds a pipeline with [ audiotestsource ! autoaudiosink ] and sweeps
+ * frequency and volume.
  *
- * Needs gst-plugin-base installed.
+ * Needs gst-plugin-base + gst-plugins-good installed.
  */
 
 #include <gst/gst.h>
-#include <gst/controller/gstcontroller.h>
 #include <gst/controller/gstinterpolationcontrolsource.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
 
 gint
 main (gint argc, gchar ** argv)
@@ -17,27 +17,25 @@
   gint res = 1;
   GstElement *src, *sink;
   GstElement *bin;
-  GstController *ctrl;
-  GstInterpolationControlSource *csource1, *csource2;
+  GstControlSource *cs1, *cs2;
+  GstTimedValueControlSource *tvcs;
   GstClock *clock;
   GstClockID clock_id;
   GstClockReturn wait_ret;
-  GValue vol = { 0, };
 
   gst_init (&argc, &argv);
-  gst_controller_init (&argc, &argv);
 
   /* build pipeline */
   bin = gst_pipeline_new ("pipeline");
   clock = gst_pipeline_get_clock (GST_PIPELINE (bin));
-  src = gst_element_factory_make ("audiotestsrc", "gen_audio");
+  src = gst_element_factory_make ("audiotestsrc", NULL);
   if (!src) {
     GST_WARNING ("need audiotestsrc from gst-plugins-base");
     goto Error;
   }
-  sink = gst_element_factory_make ("autoaudiosink", "play_audio");
+  sink = gst_element_factory_make ("autoaudiosink", NULL);
   if (!sink) {
-    GST_WARNING ("need autoaudiosink from gst-plugins-base");
+    GST_WARNING ("need autoaudiosink from gst-plugins-good");
     goto Error;
   }
 
@@ -47,54 +45,39 @@
     goto Error;
   }
 
-  /* square wave
-     g_object_set (G_OBJECT(src), "wave", 1, NULL);
-   */
+  /* setup control sources */
+  cs1 = gst_interpolation_control_source_new ();
+  cs2 = gst_interpolation_control_source_new ();
 
-  /* add a controller to the source */
-  if (!(ctrl = gst_controller_new (G_OBJECT (src), "freq", "volume", NULL))) {
-    GST_WARNING ("can't control source element");
-    goto Error;
-  }
+  gst_object_add_control_binding (GST_OBJECT_CAST (src),
+      gst_direct_control_binding_new (GST_OBJECT_CAST (src), "volume", cs1));
+  gst_object_add_control_binding (GST_OBJECT_CAST (src),
+      gst_direct_control_binding_new (GST_OBJECT_CAST (src), "freq", cs2));
 
-  csource1 = gst_interpolation_control_source_new ();
-  csource2 = gst_interpolation_control_source_new ();
+  /* set interpolation mode */
 
-  gst_controller_set_control_source (ctrl, "volume",
-      GST_CONTROL_SOURCE (csource1));
-  gst_controller_set_control_source (ctrl, "freq",
-      GST_CONTROL_SOURCE (csource2));
-
-  /* Set interpolation mode */
-
-  gst_interpolation_control_source_set_interpolation_mode (csource1,
-      GST_INTERPOLATE_LINEAR);
-  gst_interpolation_control_source_set_interpolation_mode (csource2,
-      GST_INTERPOLATE_LINEAR);
+  g_object_set (cs1, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+  g_object_set (cs2, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
 
   /* set control values */
-  g_value_init (&vol, G_TYPE_DOUBLE);
-  g_value_set_double (&vol, 0.0);
-  gst_interpolation_control_source_set (csource1, 0 * GST_SECOND, &vol);
-  g_value_set_double (&vol, 1.0);
-  gst_interpolation_control_source_set (csource1, 5 * GST_SECOND, &vol);
+  tvcs = (GstTimedValueControlSource *) cs1;
+  gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0);
+  gst_timed_value_control_source_set (tvcs, 5 * GST_SECOND, 1.0);
 
-  g_object_unref (csource1);
+  gst_object_unref (cs1);
 
-  g_value_set_double (&vol, 220.0);
-  gst_interpolation_control_source_set (csource2, 0 * GST_SECOND, &vol);
-  g_value_set_double (&vol, 3520.0);
-  gst_interpolation_control_source_set (csource2, 3 * GST_SECOND, &vol);
-  g_value_set_double (&vol, 440.0);
-  gst_interpolation_control_source_set (csource2, 6 * GST_SECOND, &vol);
+  tvcs = (GstTimedValueControlSource *) cs2;
+  gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 220.0 / 20000.0);
+  gst_timed_value_control_source_set (tvcs, 3 * GST_SECOND, 3520.0 / 20000.0);
+  gst_timed_value_control_source_set (tvcs, 6 * GST_SECOND, 440.0 / 20000.0);
 
-  g_object_unref (csource2);
+  gst_object_unref (cs2);
 
+  /* run for 7 seconds */
   clock_id =
       gst_clock_new_single_shot_id (clock,
       gst_clock_get_time (clock) + (7 * GST_SECOND));
 
-  /* run for 7 seconds */
   if (gst_element_set_state (bin, GST_STATE_PLAYING)) {
     if ((wait_ret = gst_clock_id_wait (clock_id, NULL)) != GST_CLOCK_OK) {
       GST_WARNING ("clock_id_wait returned: %d", wait_ret);
@@ -103,10 +86,9 @@
   }
 
   /* cleanup */
-  g_object_unref (G_OBJECT (ctrl));
   gst_clock_id_unref (clock_id);
-  gst_object_unref (G_OBJECT (clock));
-  gst_object_unref (G_OBJECT (bin));
+  gst_object_unref (clock);
+  gst_object_unref (bin);
   res = 0;
 Error:
   return (res);
diff --git a/tests/examples/controller/control-sources.c b/tests/examples/controller/control-sources.c
new file mode 100644
index 0000000..950cee2
--- /dev/null
+++ b/tests/examples/controller/control-sources.c
@@ -0,0 +1,450 @@
+/* 
+ * control-sources.c
+ *
+ * Generates a datafile for various control sources.
+ *
+ * Needs gnuplot for plotting.
+ * plot "ctrl_i1.dat" using 1:2 with points title 'none', "" using 1:3 with points title 'linear', "" using 1:4 with points title 'cubic', "ctrl_i2.dat" using 1:2 with lines title 'none', "" using 1:3 with lines title 'linear', "" using 1:4 with lines title 'cubic'
+ * plot "ctrl_l1.dat" using 1:2 with points title 'sine', "" using 1:3 with points title 'square', "" using 1:4 with points title 'saw', "" using 1:5 with points title 'revsaw', "" using 1:6 with points title 'triangle', "ctrl_l2.dat" using 1:2 with lines title 'sine', "" using 1:3 with lines title 'square', "" using 1:4 with lines title 'saw', "" using 1:5 with lines title 'revsaw', "" using 1:6 with lines title 'triangle'
+ * plot "ctrl_cl1.dat" using 1:2 with points title 'sine', "ctrl_cl2.dat" using 1:2 with lines title 'sine'
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <gst/gst.h>
+#include <gst/controller/gstinterpolationcontrolsource.h>
+#include <gst/controller/gstlfocontrolsource.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
+
+/* local test element */
+
+enum
+{
+  PROP_INT = 1,
+  PROP_FLOAT,
+  PROP_DOUBLE,
+  PROP_BOOLEAN,
+  PROP_COUNT
+};
+
+#define GST_TYPE_TEST_OBJ            (gst_test_obj_get_type ())
+#define GST_TEST_OBJ(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_OBJ, GstTestObj))
+#define GST_TEST_OBJ_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_OBJ, GstTestObjClass))
+#define GST_IS_TEST_OBJ(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_OBJ))
+#define GST_IS_TEST_OBJ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_OBJ))
+#define GST_TEST_OBJ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_OBJ, GstTestObjClass))
+
+typedef struct _GstTestObj GstTestObj;
+typedef struct _GstTestObjClass GstTestObjClass;
+
+struct _GstTestObj
+{
+  GstElement parent;
+  gint val_int;
+  gfloat val_float;
+  gdouble val_double;
+  gboolean val_boolean;
+};
+struct _GstTestObjClass
+{
+  GstElementClass parent_class;
+};
+
+static GType gst_test_obj_get_type (void);
+
+static void
+gst_test_obj_get_property (GObject * object,
+    guint property_id, GValue * value, GParamSpec * pspec)
+{
+  GstTestObj *self = GST_TEST_OBJ (object);
+
+  switch (property_id) {
+    case PROP_INT:
+      g_value_set_int (value, self->val_int);
+      break;
+    case PROP_FLOAT:
+      g_value_set_float (value, self->val_float);
+      break;
+    case PROP_DOUBLE:
+      g_value_set_double (value, self->val_double);
+      break;
+    case PROP_BOOLEAN:
+      g_value_set_boolean (value, self->val_boolean);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_obj_set_property (GObject * object,
+    guint property_id, const GValue * value, GParamSpec * pspec)
+{
+  GstTestObj *self = GST_TEST_OBJ (object);
+
+  switch (property_id) {
+    case PROP_INT:
+      self->val_int = g_value_get_int (value);
+      GST_DEBUG ("test value int=%d", self->val_int);
+      break;
+    case PROP_FLOAT:
+      self->val_float = g_value_get_float (value);
+      GST_DEBUG ("test value float=%f", self->val_float);
+      break;
+    case PROP_DOUBLE:
+      self->val_double = g_value_get_double (value);
+      GST_DEBUG ("test value double=%f", self->val_double);
+      break;
+    case PROP_BOOLEAN:
+      self->val_boolean = g_value_get_boolean (value);
+      GST_DEBUG ("test value boolean=%d", self->val_boolean);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_test_obj_class_init (GstTestObjClass * klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  gobject_class->set_property = gst_test_obj_set_property;
+  gobject_class->get_property = gst_test_obj_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_INT,
+      g_param_spec_int ("int",
+          "int prop",
+          "int number parameter",
+          0, 100, 0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_FLOAT,
+      g_param_spec_float ("float",
+          "float prop",
+          "float number parameter",
+          0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_DOUBLE,
+      g_param_spec_double ("double",
+          "double prop",
+          "double number parameter",
+          0.0, 100.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+
+  g_object_class_install_property (gobject_class, PROP_BOOLEAN,
+      g_param_spec_boolean ("boolean",
+          "boolean prop",
+          "boolean parameter",
+          FALSE, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
+}
+
+static void
+gst_test_obj_base_init (GstTestObjClass * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_set_details_simple (element_class,
+      "test object for unit tests",
+      "Test", "Use in unit tests", "Stefan Sauer <ensonic@users.sf.net>");
+}
+
+static GType
+gst_test_obj_get_type (void)
+{
+  static volatile gsize TEST_OBJ_type = 0;
+
+  if (g_once_init_enter (&TEST_OBJ_type)) {
+    GType type;
+    static const GTypeInfo info = {
+      (guint16) sizeof (GstTestObjClass),
+      (GBaseInitFunc) gst_test_obj_base_init,   // base_init
+      NULL,                     // base_finalize
+      (GClassInitFunc) gst_test_obj_class_init, // class_init
+      NULL,                     // class_finalize
+      NULL,                     // class_data
+      (guint16) sizeof (GstTestObj),
+      0,                        // n_preallocs
+      NULL,                     // instance_init
+      NULL                      // value_table
+    };
+    type = g_type_register_static (GST_TYPE_ELEMENT, "GstTestObj", &info, 0);
+    g_once_init_leave (&TEST_OBJ_type, type);
+  }
+  return TEST_OBJ_type;
+}
+
+static void
+test_interpolation (void)
+{
+  GstObject *e;
+  GstTimedValueControlSource *tvcs;
+  GstControlSource *cs;
+  gint t, i1, i2, i3;
+  GValue *v1, *v2, *v3;
+  gint n_values;
+  FILE *f;
+
+  e = (GstObject *) gst_element_factory_make ("testobj", NULL);
+
+  cs = gst_interpolation_control_source_new ();
+  tvcs = (GstTimedValueControlSource *) cs;
+
+  gst_object_add_control_binding (e, gst_direct_control_binding_new (e, "int",
+          cs));
+
+  gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0);
+  gst_timed_value_control_source_set (tvcs, 10 * GST_SECOND, 1.0);
+  gst_timed_value_control_source_set (tvcs, 20 * GST_SECOND, 0.5);
+  gst_timed_value_control_source_set (tvcs, 30 * GST_SECOND, 0.2);
+
+  /* test single values */
+  if (!(f = fopen ("ctrl_i1.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time None Linear Cubic\n");
+
+  for (t = 0; t < 40; t++) {
+    g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i1 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i2 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i3 = GST_TEST_OBJ (e)->val_int;
+
+    fprintf (f, "%4.1f %d %d %d\n", (gfloat) t, i1, i2, i3);
+  }
+
+  fclose (f);
+
+  /* test value arrays */
+  if (!(f = fopen ("ctrl_i2.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time None Linear Cubic\n");
+  n_values = 40 * 10;
+
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
+  v1 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v1);
+
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
+  v2 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v2);
+
+  g_object_set (cs, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
+  v3 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v3);
+
+  for (t = 0; t < n_values; t++) {
+    i1 = g_value_get_int (&v1[t]);
+    i2 = g_value_get_int (&v2[t]);
+    i3 = g_value_get_int (&v3[t]);
+    fprintf (f, "%4.1f %d %d %d\n", (gfloat) t / 10.0, i1, i2, i3);
+    g_value_unset (&v1[t]);
+    g_value_unset (&v2[t]);
+    g_value_unset (&v3[t]);
+  }
+  g_free (v1);
+  g_free (v2);
+  g_free (v3);
+
+  fclose (f);
+
+  gst_object_unref (cs);
+  gst_object_unref (e);
+}
+
+static void
+test_lfo (void)
+{
+  GstObject *e;
+  GstControlSource *cs;
+  gint t, i1, i2, i3, i4, i5;
+  GValue *v1, *v2, *v3, *v4, *v5;
+  gint n_values;
+  FILE *f;
+
+  e = (GstObject *) gst_element_factory_make ("testobj", NULL);
+
+  cs = gst_lfo_control_source_new ();
+
+  gst_object_add_control_binding (e, gst_direct_control_binding_new (e, "int",
+          cs));
+
+  g_object_set (cs,
+      "frequency", (gdouble) 0.05,
+      "timeshift", (GstClockTime) 0,
+      "amplitude", (gdouble) 0.5, "offset", (gdouble) 0.5, NULL);
+
+  /* test single values */
+  if (!(f = fopen ("ctrl_l1.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time Sine Square Saw RevSaw Triangle\n");
+
+  for (t = 0; t < 40; t++) {
+    g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SINE, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i1 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SQUARE, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i2 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SAW, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i3 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i4 = GST_TEST_OBJ (e)->val_int;
+
+    g_object_set (cs, "waveform", GST_LFO_WAVEFORM_TRIANGLE, NULL);
+    gst_object_sync_values (e, t * GST_SECOND);
+    i5 = GST_TEST_OBJ (e)->val_int;
+
+    fprintf (f, "%4.1f %d %d %d %d %d\n", (gfloat) t, i1, i2, i3, i4, i5);
+  }
+
+  fclose (f);
+
+  /* test value arrays */
+  if (!(f = fopen ("ctrl_l2.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time Sine Square Saw RevSaw Triangle\n");
+  n_values = 40 * 10;
+
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SINE, NULL);
+  v1 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v1);
+
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SQUARE, NULL);
+  v2 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v2);
+
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_SAW, NULL);
+  v3 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v3);
+
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW, NULL);
+  v4 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v4);
+
+  g_object_set (cs, "waveform", GST_LFO_WAVEFORM_TRIANGLE, NULL);
+  v5 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v5);
+
+  for (t = 0; t < n_values; t++) {
+    i1 = g_value_get_int (&v1[t]);
+    i2 = g_value_get_int (&v2[t]);
+    i3 = g_value_get_int (&v3[t]);
+    i4 = g_value_get_int (&v4[t]);
+    i5 = g_value_get_int (&v5[t]);
+    fprintf (f, "%4.1f %d %d %d %d %d\n", (gfloat) t / 10.0, i1, i2, i3, i4,
+        i5);
+    g_value_unset (&v1[t]);
+    g_value_unset (&v2[t]);
+    g_value_unset (&v3[t]);
+    g_value_unset (&v4[t]);
+    g_value_unset (&v5[t]);
+  }
+  g_free (v1);
+  g_free (v2);
+  g_free (v3);
+  g_free (v4);
+  g_free (v5);
+
+  fclose (f);
+
+  gst_object_unref (cs);
+  gst_object_unref (e);
+}
+
+static void
+test_chained_lfo (void)
+{
+  GstObject *e;
+  GstControlSource *cs1, *cs2;
+  gint t, i1;
+  GValue *v1;
+  gint n_values;
+  FILE *f;
+
+  e = (GstObject *) gst_element_factory_make ("testobj", NULL);
+
+  cs1 = gst_lfo_control_source_new ();
+
+  gst_object_add_control_binding (e, gst_direct_control_binding_new (e, "int",
+          cs1));
+
+  g_object_set (cs1,
+      "waveform", GST_LFO_WAVEFORM_SINE,
+      "frequency", (gdouble) 0.05,
+      "timeshift", (GstClockTime) 0, "offset", (gdouble) 0.5, NULL);
+
+  cs2 = gst_lfo_control_source_new ();
+
+  gst_object_add_control_binding ((GstObject *) cs1,
+      gst_direct_control_binding_new ((GstObject *) cs1, "amplitude", cs2));
+
+  g_object_set (cs2,
+      "waveform", GST_LFO_WAVEFORM_SINE,
+      "frequency", (gdouble) 0.05,
+      "timeshift", (GstClockTime) 0,
+      "amplitude", (gdouble) 0.5, "offset", (gdouble) 0.5, NULL);
+
+  /* test single values */
+  if (!(f = fopen ("ctrl_cl1.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time Sine\n");
+
+  for (t = 0; t < 40; t++) {
+    gst_object_sync_values (e, t * GST_SECOND);
+    i1 = GST_TEST_OBJ (e)->val_int;
+
+    fprintf (f, "%4.1f %d\n", (gfloat) t, i1);
+  }
+
+  fclose (f);
+
+  /* test value arrays */
+  if (!(f = fopen ("ctrl_cl2.dat", "w")))
+    exit (-1);
+  fprintf (f, "# Time Sine\n");
+  n_values = 40 * 10;
+
+  v1 = g_new0 (GValue, n_values);
+  gst_object_get_value_array (e, "int", 0, GST_SECOND / 10, n_values, v1);
+
+  for (t = 0; t < n_values; t++) {
+    i1 = g_value_get_int (&v1[t]);
+    fprintf (f, "%4.1f %d\n", (gfloat) t / 10.0, i1);
+    g_value_unset (&v1[t]);
+  }
+  g_free (v1);
+
+  fclose (f);
+
+  gst_object_unref (cs1);
+  gst_object_unref (cs2);
+  gst_object_unref (e);
+}
+
+gint
+main (gint argc, gchar ** argv)
+{
+  gst_init (&argc, &argv);
+
+  gst_element_register (NULL, "testobj", GST_RANK_NONE, GST_TYPE_TEST_OBJ);
+
+  test_interpolation ();
+  test_lfo ();
+
+  test_chained_lfo ();
+
+  return 0;
+}
diff --git a/tests/examples/controller/text-color-example.c b/tests/examples/controller/text-color-example.c
new file mode 100644
index 0000000..00b3c9f
--- /dev/null
+++ b/tests/examples/controller/text-color-example.c
@@ -0,0 +1,117 @@
+/*
+ * text-color-example.c
+ *
+ * Builds a pipeline with [videotestsrc ! textoverlay ! ximagesink] and
+ * modulates color, text and text pos.
+ *
+ * Needs gst-plugin-base installed.
+ */
+
+#include <gst/gst.h>
+#include <gst/controller/gstinterpolationcontrolsource.h>
+#include <gst/controller/gstlfocontrolsource.h>
+#include <gst/controller/gstargbcontrolbinding.h>
+#include <gst/controller/gstdirectcontrolbinding.h>
+
+gint
+main (gint argc, gchar ** argv)
+{
+  gint res = 1;
+  GstElement *src, *text, *sink;
+  GstElement *bin;
+  GstControlSource *cs;
+  GstControlSource *cs_r, *cs_g, *cs_b;
+  GstClock *clock;
+  GstClockID clock_id;
+  GstClockReturn wait_ret;
+
+  gst_init (&argc, &argv);
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+  clock = gst_pipeline_get_clock (GST_PIPELINE (bin));
+  src = gst_element_factory_make ("videotestsrc", NULL);
+  if (!src) {
+    GST_WARNING ("need videotestsrc from gst-plugins-base");
+    goto Error;
+  }
+  g_object_set (src, "pattern", /* checkers-8 */ 10,
+      NULL);
+  text = gst_element_factory_make ("textoverlay", NULL);
+  if (!text) {
+    GST_WARNING ("need textoverlay from gst-plugins-base");
+    goto Error;
+  }
+  g_object_set (text,
+      "text", "GStreamer rocks!",
+      "font-desc", "Sans, 30", "halignment", /* position */ 4,
+      "valignment", /* position */ 3,
+      NULL);
+  sink = gst_element_factory_make ("ximagesink", NULL);
+  if (!sink) {
+    GST_WARNING ("need ximagesink from gst-plugins-base");
+    goto Error;
+  }
+
+  gst_bin_add_many (GST_BIN (bin), src, text, sink, NULL);
+  if (!gst_element_link_many (src, text, sink, NULL)) {
+    GST_WARNING ("can't link elements");
+    goto Error;
+  }
+
+  /* setup control sources */
+  cs = gst_lfo_control_source_new ();
+  g_object_set (cs,
+      "frequency", (gdouble) 0.11,
+      "amplitude", (gdouble) 0.2, "offset", (gdouble) 0.5, NULL);
+  gst_object_add_control_binding (GST_OBJECT_CAST (text),
+      gst_direct_control_binding_new (GST_OBJECT_CAST (text), "xpos", cs));
+  gst_object_unref (cs);
+
+  cs = gst_lfo_control_source_new ();
+  g_object_set (cs,
+      "frequency", (gdouble) 0.04,
+      "amplitude", (gdouble) 0.4, "offset", (gdouble) 0.5, NULL);
+  gst_object_add_control_binding (GST_OBJECT_CAST (text),
+      gst_direct_control_binding_new (GST_OBJECT_CAST (text), "ypos", cs));
+  gst_object_unref (cs);
+
+  cs_r = gst_lfo_control_source_new ();
+  g_object_set (cs_r,
+      "frequency", (gdouble) 0.19,
+      "amplitude", (gdouble) 0.5, "offset", (gdouble) 0.5, NULL);
+  cs_g = gst_lfo_control_source_new ();
+  g_object_set (cs_g,
+      "frequency", (gdouble) 0.27,
+      "amplitude", (gdouble) 0.5, "offset", (gdouble) 0.5, NULL);
+  cs_b = gst_lfo_control_source_new ();
+  g_object_set (cs_b,
+      "frequency", (gdouble) 0.13,
+      "amplitude", (gdouble) 0.5, "offset", (gdouble) 0.5, NULL);
+  gst_object_add_control_binding (GST_OBJECT_CAST (text),
+      gst_argb_control_binding_new (GST_OBJECT_CAST (text), "color", NULL,
+          cs_r, cs_g, cs_b));
+  gst_object_unref (cs_r);
+  gst_object_unref (cs_g);
+  gst_object_unref (cs_b);
+
+  /* run for 10 seconds */
+  clock_id =
+      gst_clock_new_single_shot_id (clock,
+      gst_clock_get_time (clock) + (30 * GST_SECOND));
+
+  if (gst_element_set_state (bin, GST_STATE_PLAYING)) {
+    if ((wait_ret = gst_clock_id_wait (clock_id, NULL)) != GST_CLOCK_OK) {
+      GST_WARNING ("clock_id_wait returned: %d", wait_ret);
+    }
+    gst_element_set_state (bin, GST_STATE_NULL);
+  }
+
+  /* cleanup */
+  gst_clock_id_unref (clock_id);
+  gst_object_unref (G_OBJECT (clock));
+  gst_object_unref (G_OBJECT (bin));
+  res = 0;
+Error:
+  return (res);
+}
diff --git a/tests/examples/helloworld/Makefile.in b/tests/examples/helloworld/Makefile.in
index c86a9d1..3d6b019 100644
--- a/tests/examples/helloworld/Makefile.in
+++ b/tests/examples/helloworld/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 helloworld_OBJECTS = helloworld-helloworld.$(OBJEXT)
 am__DEPENDENCIES_1 =
 helloworld_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 helloworld_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(helloworld_CFLAGS) \
@@ -100,24 +117,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = helloworld.c
 DIST_SOURCES = helloworld.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -174,10 +196,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -190,10 +214,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -207,7 +231,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -224,6 +247,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -239,7 +266,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -272,6 +298,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -327,6 +354,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -360,7 +388,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -426,7 +453,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-helloworld$(EXEEXT): $(helloworld_OBJECTS) $(helloworld_DEPENDENCIES) 
+helloworld$(EXEEXT): $(helloworld_OBJECTS) $(helloworld_DEPENDENCIES) $(EXTRA_helloworld_DEPENDENCIES) 
 	@rm -f helloworld$(EXEEXT)
 	$(AM_V_CCLD)$(helloworld_LINK) $(helloworld_OBJECTS) $(helloworld_LDADD) $(LIBS)
 
@@ -441,42 +468,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 helloworld-helloworld.o: helloworld.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -MT helloworld-helloworld.o -MD -MP -MF $(DEPDIR)/helloworld-helloworld.Tpo -c -o helloworld-helloworld.o `test -f 'helloworld.c' || echo '$(srcdir)/'`helloworld.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helloworld-helloworld.Tpo $(DEPDIR)/helloworld-helloworld.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helloworld.c' object='helloworld-helloworld.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='helloworld.c' object='helloworld-helloworld.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -c -o helloworld-helloworld.o `test -f 'helloworld.c' || echo '$(srcdir)/'`helloworld.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -c -o helloworld-helloworld.o `test -f 'helloworld.c' || echo '$(srcdir)/'`helloworld.c
 
 helloworld-helloworld.obj: helloworld.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -MT helloworld-helloworld.obj -MD -MP -MF $(DEPDIR)/helloworld-helloworld.Tpo -c -o helloworld-helloworld.obj `if test -f 'helloworld.c'; then $(CYGPATH_W) 'helloworld.c'; else $(CYGPATH_W) '$(srcdir)/helloworld.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/helloworld-helloworld.Tpo $(DEPDIR)/helloworld-helloworld.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helloworld.c' object='helloworld-helloworld.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='helloworld.c' object='helloworld-helloworld.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -c -o helloworld-helloworld.obj `if test -f 'helloworld.c'; then $(CYGPATH_W) 'helloworld.c'; else $(CYGPATH_W) '$(srcdir)/helloworld.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helloworld_CFLAGS) $(CFLAGS) -c -o helloworld-helloworld.obj `if test -f 'helloworld.c'; then $(CYGPATH_W) 'helloworld.c'; else $(CYGPATH_W) '$(srcdir)/helloworld.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -580,10 +602,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
index 8c68194..254433f 100644
--- a/tests/examples/launch/Makefile.in
+++ b/tests/examples/launch/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 mp3parselaunch_OBJECTS = mp3parselaunch-mp3parselaunch.$(OBJEXT)
 am__DEPENDENCIES_1 =
 mp3parselaunch_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 mp3parselaunch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -101,24 +118,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = mp3parselaunch.c
 DIST_SOURCES = mp3parselaunch.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -175,10 +197,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -191,10 +215,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -208,7 +232,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -225,6 +248,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -240,7 +267,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -273,6 +299,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -328,6 +355,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -361,7 +389,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -427,7 +454,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-mp3parselaunch$(EXEEXT): $(mp3parselaunch_OBJECTS) $(mp3parselaunch_DEPENDENCIES) 
+mp3parselaunch$(EXEEXT): $(mp3parselaunch_OBJECTS) $(mp3parselaunch_DEPENDENCIES) $(EXTRA_mp3parselaunch_DEPENDENCIES) 
 	@rm -f mp3parselaunch$(EXEEXT)
 	$(AM_V_CCLD)$(mp3parselaunch_LINK) $(mp3parselaunch_OBJECTS) $(mp3parselaunch_LDADD) $(LIBS)
 
@@ -442,42 +469,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mp3parselaunch-mp3parselaunch.o: mp3parselaunch.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.o -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
 
 mp3parselaunch-mp3parselaunch.obj: mp3parselaunch.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.obj -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -581,10 +603,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/manual/Makefile.am b/tests/examples/manual/Makefile.am
index d180a94..7d87111 100644
--- a/tests/examples/manual/Makefile.am
+++ b/tests/examples/manual/Makefile.am
@@ -54,7 +54,7 @@
 CLEANFILES = core core.* test-registry.* *.gcno *.gcda $(BUILT_SOURCES)
 
 AM_CFLAGS = $(GST_OBJ_CFLAGS)
-LDADD = $(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+LDADD = $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 elementmake.c elementcreate.c elementget.c elementlink.c elementfactory.c: $(top_srcdir)/docs/manual/basics-elements.xml
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index 4b323f5..4b86cef 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -95,100 +112,100 @@
 bin_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
 bin_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 decodebin_SOURCES = decodebin.c
 decodebin_OBJECTS = decodebin.$(OBJEXT)
 decodebin_LDADD = $(LDADD)
 decodebin_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 dynamic_SOURCES = dynamic.c
 dynamic_OBJECTS = dynamic.$(OBJEXT)
 dynamic_LDADD = $(LDADD)
 dynamic_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elementcreate_SOURCES = elementcreate.c
 elementcreate_OBJECTS = elementcreate.$(OBJEXT)
 elementcreate_LDADD = $(LDADD)
 elementcreate_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elementfactory_SOURCES = elementfactory.c
 elementfactory_OBJECTS = elementfactory.$(OBJEXT)
 elementfactory_LDADD = $(LDADD)
 elementfactory_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elementget_SOURCES = elementget.c
 elementget_OBJECTS = elementget.$(OBJEXT)
 elementget_LDADD = $(LDADD)
 elementget_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elementlink_SOURCES = elementlink.c
 elementlink_OBJECTS = elementlink.$(OBJEXT)
 elementlink_LDADD = $(LDADD)
 elementlink_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 elementmake_SOURCES = elementmake.c
 elementmake_OBJECTS = elementmake.$(OBJEXT)
 elementmake_LDADD = $(LDADD)
 elementmake_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 fakesrc_SOURCES = fakesrc.c
 fakesrc_OBJECTS = fakesrc.$(OBJEXT)
 fakesrc_LDADD = $(LDADD)
 fakesrc_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 ghostpad_SOURCES = ghostpad.c
 ghostpad_OBJECTS = ghostpad.$(OBJEXT)
 ghostpad_LDADD = $(LDADD)
 ghostpad_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 helloworld_SOURCES = helloworld.c
 helloworld_OBJECTS = helloworld.$(OBJEXT)
 helloworld_LDADD = $(LDADD)
 helloworld_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 init_SOURCES = init.c
 init_OBJECTS = init.$(OBJEXT)
 init_LDADD = $(LDADD)
 init_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 pad_SOURCES = pad.c
 pad_OBJECTS = pad.$(OBJEXT)
 pad_LDADD = $(LDADD)
 pad_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 playbin_SOURCES = playbin.c
 playbin_OBJECTS = playbin.$(OBJEXT)
 playbin_LDADD = $(LDADD)
 playbin_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 query_SOURCES = query.c
 query_OBJECTS = query.$(OBJEXT)
 query_LDADD = $(LDADD)
 query_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 typefind_SOURCES = typefind.c
 typefind_OBJECTS = typefind.$(OBJEXT)
 typefind_LDADD = $(LDADD)
 typefind_DEPENDENCIES =  \
-	$(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
@@ -200,21 +217,21 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = bin.c decodebin.c dynamic.c elementcreate.c elementfactory.c \
 	elementget.c elementlink.c elementmake.c fakesrc.c ghostpad.c \
@@ -223,6 +240,11 @@
 	elementfactory.c elementget.c elementlink.c elementmake.c \
 	fakesrc.c ghostpad.c helloworld.c init.c pad.c playbin.c \
 	query.c typefind.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -281,10 +303,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -297,10 +321,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -314,7 +338,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -331,6 +354,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -346,7 +373,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -379,6 +405,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -434,6 +461,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -467,7 +495,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -541,7 +568,7 @@
 
 CLEANFILES = core core.* test-registry.* *.gcno *.gcda $(BUILT_SOURCES)
 AM_CFLAGS = $(GST_OBJ_CFLAGS)
-LDADD = $(top_builddir)/libs/gst/base/libgstbase-@GST_MAJORMINOR@.la \
+LDADD = $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
 
 all: $(BUILT_SOURCES)
@@ -588,52 +615,52 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-bin$(EXEEXT): $(bin_OBJECTS) $(bin_DEPENDENCIES) 
+bin$(EXEEXT): $(bin_OBJECTS) $(bin_DEPENDENCIES) $(EXTRA_bin_DEPENDENCIES) 
 	@rm -f bin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bin_OBJECTS) $(bin_LDADD) $(LIBS)
-decodebin$(EXEEXT): $(decodebin_OBJECTS) $(decodebin_DEPENDENCIES) 
+decodebin$(EXEEXT): $(decodebin_OBJECTS) $(decodebin_DEPENDENCIES) $(EXTRA_decodebin_DEPENDENCIES) 
 	@rm -f decodebin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(decodebin_OBJECTS) $(decodebin_LDADD) $(LIBS)
-dynamic$(EXEEXT): $(dynamic_OBJECTS) $(dynamic_DEPENDENCIES) 
+dynamic$(EXEEXT): $(dynamic_OBJECTS) $(dynamic_DEPENDENCIES) $(EXTRA_dynamic_DEPENDENCIES) 
 	@rm -f dynamic$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(dynamic_OBJECTS) $(dynamic_LDADD) $(LIBS)
-elementcreate$(EXEEXT): $(elementcreate_OBJECTS) $(elementcreate_DEPENDENCIES) 
+elementcreate$(EXEEXT): $(elementcreate_OBJECTS) $(elementcreate_DEPENDENCIES) $(EXTRA_elementcreate_DEPENDENCIES) 
 	@rm -f elementcreate$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementcreate_OBJECTS) $(elementcreate_LDADD) $(LIBS)
-elementfactory$(EXEEXT): $(elementfactory_OBJECTS) $(elementfactory_DEPENDENCIES) 
+elementfactory$(EXEEXT): $(elementfactory_OBJECTS) $(elementfactory_DEPENDENCIES) $(EXTRA_elementfactory_DEPENDENCIES) 
 	@rm -f elementfactory$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementfactory_OBJECTS) $(elementfactory_LDADD) $(LIBS)
-elementget$(EXEEXT): $(elementget_OBJECTS) $(elementget_DEPENDENCIES) 
+elementget$(EXEEXT): $(elementget_OBJECTS) $(elementget_DEPENDENCIES) $(EXTRA_elementget_DEPENDENCIES) 
 	@rm -f elementget$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementget_OBJECTS) $(elementget_LDADD) $(LIBS)
-elementlink$(EXEEXT): $(elementlink_OBJECTS) $(elementlink_DEPENDENCIES) 
+elementlink$(EXEEXT): $(elementlink_OBJECTS) $(elementlink_DEPENDENCIES) $(EXTRA_elementlink_DEPENDENCIES) 
 	@rm -f elementlink$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementlink_OBJECTS) $(elementlink_LDADD) $(LIBS)
-elementmake$(EXEEXT): $(elementmake_OBJECTS) $(elementmake_DEPENDENCIES) 
+elementmake$(EXEEXT): $(elementmake_OBJECTS) $(elementmake_DEPENDENCIES) $(EXTRA_elementmake_DEPENDENCIES) 
 	@rm -f elementmake$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elementmake_OBJECTS) $(elementmake_LDADD) $(LIBS)
-fakesrc$(EXEEXT): $(fakesrc_OBJECTS) $(fakesrc_DEPENDENCIES) 
+fakesrc$(EXEEXT): $(fakesrc_OBJECTS) $(fakesrc_DEPENDENCIES) $(EXTRA_fakesrc_DEPENDENCIES) 
 	@rm -f fakesrc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(fakesrc_OBJECTS) $(fakesrc_LDADD) $(LIBS)
-ghostpad$(EXEEXT): $(ghostpad_OBJECTS) $(ghostpad_DEPENDENCIES) 
+ghostpad$(EXEEXT): $(ghostpad_OBJECTS) $(ghostpad_DEPENDENCIES) $(EXTRA_ghostpad_DEPENDENCIES) 
 	@rm -f ghostpad$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(ghostpad_OBJECTS) $(ghostpad_LDADD) $(LIBS)
-helloworld$(EXEEXT): $(helloworld_OBJECTS) $(helloworld_DEPENDENCIES) 
+helloworld$(EXEEXT): $(helloworld_OBJECTS) $(helloworld_DEPENDENCIES) $(EXTRA_helloworld_DEPENDENCIES) 
 	@rm -f helloworld$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(helloworld_OBJECTS) $(helloworld_LDADD) $(LIBS)
-init$(EXEEXT): $(init_OBJECTS) $(init_DEPENDENCIES) 
+init$(EXEEXT): $(init_OBJECTS) $(init_DEPENDENCIES) $(EXTRA_init_DEPENDENCIES) 
 	@rm -f init$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(init_OBJECTS) $(init_LDADD) $(LIBS)
-pad$(EXEEXT): $(pad_OBJECTS) $(pad_DEPENDENCIES) 
+pad$(EXEEXT): $(pad_OBJECTS) $(pad_DEPENDENCIES) $(EXTRA_pad_DEPENDENCIES) 
 	@rm -f pad$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pad_OBJECTS) $(pad_LDADD) $(LIBS)
-playbin$(EXEEXT): $(playbin_OBJECTS) $(playbin_DEPENDENCIES) 
+playbin$(EXEEXT): $(playbin_OBJECTS) $(playbin_DEPENDENCIES) $(EXTRA_playbin_DEPENDENCIES) 
 	@rm -f playbin$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(playbin_OBJECTS) $(playbin_LDADD) $(LIBS)
-query$(EXEEXT): $(query_OBJECTS) $(query_DEPENDENCIES) 
+query$(EXEEXT): $(query_OBJECTS) $(query_DEPENDENCIES) $(EXTRA_query_DEPENDENCIES) 
 	@rm -f query$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(query_OBJECTS) $(query_LDADD) $(LIBS)
-typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) 
+typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) $(EXTRA_typefind_DEPENDENCIES) 
 	@rm -f typefind$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
 
@@ -663,26 +690,23 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -823,14 +847,15 @@
 	  fi; \
 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
 	  if test "$$failed" -eq 0; then \
-	    echo "$$grn$$dashes"; \
+	    col="$$grn"; \
 	  else \
-	    echo "$$red$$dashes"; \
+	    col="$$red"; \
 	  fi; \
-	  echo "$$banner"; \
-	  test -z "$$skipped" || echo "$$skipped"; \
-	  test -z "$$report" || echo "$$report"; \
-	  echo "$$dashes$$std"; \
+	  echo "$${col}$$dashes$${std}"; \
+	  echo "$${col}$$banner$${std}"; \
+	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+	  test -z "$$report" || echo "$${col}$$report$${std}"; \
+	  echo "$${col}$$dashes$${std}"; \
 	  test "$$failed" -eq 0; \
 	else :; fi
 
@@ -881,10 +906,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/manual/decodebin.c b/tests/examples/manual/decodebin.c
index cfbbb5f..960f554 100644
--- a/tests/examples/manual/decodebin.c
+++ b/tests/examples/manual/decodebin.c
@@ -57,7 +57,7 @@
   }
 
   /* check media type */
-  caps = gst_pad_get_caps (pad, NULL);
+  caps = gst_pad_query_caps (pad, NULL);
   str = gst_caps_get_structure (caps, 0);
   if (!g_strrstr (gst_structure_get_name (str), "audio")) {
     gst_caps_unref (caps);
diff --git a/tests/examples/manual/dynamic.c b/tests/examples/manual/dynamic.c
index e133ef6..a592046 100644
--- a/tests/examples/manual/dynamic.c
+++ b/tests/examples/manual/dynamic.c
@@ -55,7 +55,7 @@
 {
   /* first filter out the interesting element factories */
   factories = gst_registry_feature_filter (
-      gst_registry_get_default (),
+      gst_registry_get (),
       (GstPluginFeatureFilter) cb_feature_filter, FALSE, NULL);
 
   /* sort them according to their ranks */
@@ -63,7 +63,7 @@
 }
 
 /*** block c  from ../../../docs/manual/advanced-autoplugging.xml ***/
-static void try_to_plug (GstPad *pad, const GstCaps *caps);
+static void try_to_plug (GstPad *pad, GstCaps *caps);
 
 static GstElement *audiosink;
 
@@ -74,7 +74,7 @@
 {
   GstCaps *caps;
 
-  caps = gst_pad_get_caps (pad, NULL);
+  caps = gst_pad_query_caps (pad, NULL);
   try_to_plug (pad, caps);
   gst_caps_unref (caps);
 }
@@ -119,7 +119,7 @@
     switch (templ->presence) {
       case GST_PAD_ALWAYS: {
         GstPad *pad = gst_element_get_static_pad (sinkelement, templ->name_template);
-        GstCaps *caps = gst_pad_get_caps (pad, NULL);
+        GstCaps *caps = gst_pad_query_caps (pad, NULL);
 
         /* link */
         try_to_plug (pad, caps);
@@ -143,7 +143,7 @@
 
 static void
 try_to_plug (GstPad        *pad,
-	     const GstCaps *caps)
+	     GstCaps       *caps)
 {
   GstObject *parent = GST_OBJECT (GST_OBJECT_PARENT (pad));
   const gchar *mime;
@@ -166,7 +166,7 @@
   }
 
   /* can it link to the audiopad? */
-  audiocaps = gst_pad_get_caps (gst_element_get_static_pad (audiosink, "sink"),
+  audiocaps = gst_pad_query_caps (gst_element_get_static_pad (audiosink, "sink"),
   NULL);
   res = gst_caps_intersect (caps, audiocaps);
   if (res && !gst_caps_is_empty (res)) {
diff --git a/tests/examples/manual/fakesrc.c b/tests/examples/manual/fakesrc.c
index eedbe04..58a8458 100644
--- a/tests/examples/manual/fakesrc.c
+++ b/tests/examples/manual/fakesrc.c
@@ -10,16 +10,15 @@
 	    gpointer    user_data)
 {
   static gboolean white = FALSE;
-  gpointer data;
-  gsize size;
+  GstMapInfo info;
   
-  data = gst_buffer_map (buffer, &size, NULL, GST_MAP_WRITE);
+  gst_buffer_map (buffer, &info, GST_MAP_WRITE);
 
   /* this makes the image black/white */
-  memset (data, white ? 0xff : 0x0, size);
+  memset (info.data, white ? 0xff : 0x0, info.size);
   white = !white;
 
-  gst_buffer_unmap (buffer, data, size);
+  gst_buffer_unmap (buffer, &info);
 }
 
 gint
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
index 578d95f..9b2f4fb 100644
--- a/tests/examples/metadata/Makefile.in
+++ b/tests/examples/metadata/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 read_metadata_OBJECTS = read_metadata-read-metadata.$(OBJEXT)
 am__DEPENDENCIES_1 =
 read_metadata_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 read_metadata_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(read_metadata_CFLAGS) \
@@ -100,24 +117,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = read-metadata.c
 DIST_SOURCES = read-metadata.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -174,10 +196,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -190,10 +214,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -207,7 +231,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -224,6 +247,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -239,7 +266,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -272,6 +298,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -327,6 +354,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -360,7 +388,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -426,7 +453,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-read-metadata$(EXEEXT): $(read_metadata_OBJECTS) $(read_metadata_DEPENDENCIES) 
+read-metadata$(EXEEXT): $(read_metadata_OBJECTS) $(read_metadata_DEPENDENCIES) $(EXTRA_read_metadata_DEPENDENCIES) 
 	@rm -f read-metadata$(EXEEXT)
 	$(AM_V_CCLD)$(read_metadata_LINK) $(read_metadata_OBJECTS) $(read_metadata_LDADD) $(LIBS)
 
@@ -441,42 +468,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 read_metadata-read-metadata.o: read-metadata.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.o -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='read-metadata.c' object='read_metadata-read-metadata.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
 
 read_metadata-read-metadata.obj: read-metadata.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.obj -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='read-metadata.c' object='read_metadata-read-metadata.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -580,10 +602,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
index 1558ce7..7bd50f3 100644
--- a/tests/examples/queue/Makefile.in
+++ b/tests/examples/queue/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 queue_OBJECTS = queue-queue.$(OBJEXT)
 am__DEPENDENCIES_1 =
 queue_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 queue_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(queue_CFLAGS) $(CFLAGS) \
@@ -100,24 +117,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = queue.c
 DIST_SOURCES = queue.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -174,10 +196,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -190,10 +214,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -207,7 +231,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -224,6 +247,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -239,7 +266,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -272,6 +298,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -327,6 +354,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -360,7 +388,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -426,7 +453,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-queue$(EXEEXT): $(queue_OBJECTS) $(queue_DEPENDENCIES) 
+queue$(EXEEXT): $(queue_OBJECTS) $(queue_DEPENDENCIES) $(EXTRA_queue_DEPENDENCIES) 
 	@rm -f queue$(EXEEXT)
 	$(AM_V_CCLD)$(queue_LINK) $(queue_OBJECTS) $(queue_LDADD) $(LIBS)
 
@@ -441,42 +468,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 queue-queue.o: queue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.o -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='queue.c' object='queue-queue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='queue.c' object='queue-queue.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
 
 queue-queue.obj: queue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.obj -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='queue.c' object='queue-queue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='queue.c' object='queue-queue.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -580,10 +602,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/stepping/Makefile.in b/tests/examples/stepping/Makefile.in
index 0ab3d3e..2f29500 100644
--- a/tests/examples/stepping/Makefile.in
+++ b/tests/examples/stepping/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 framestep1_OBJECTS = framestep1-framestep1.$(OBJEXT)
 am__DEPENDENCIES_1 =
 framestep1_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 framestep1_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(framestep1_CFLAGS) \
@@ -100,24 +117,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = framestep1.c
 DIST_SOURCES = framestep1.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -174,10 +196,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -190,10 +214,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -207,7 +231,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -224,6 +247,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -239,7 +266,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -272,6 +298,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -327,6 +354,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -360,7 +388,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -426,7 +453,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-framestep1$(EXEEXT): $(framestep1_OBJECTS) $(framestep1_DEPENDENCIES) 
+framestep1$(EXEEXT): $(framestep1_OBJECTS) $(framestep1_DEPENDENCIES) $(EXTRA_framestep1_DEPENDENCIES) 
 	@rm -f framestep1$(EXEEXT)
 	$(AM_V_CCLD)$(framestep1_LINK) $(framestep1_OBJECTS) $(framestep1_LDADD) $(LIBS)
 
@@ -441,42 +468,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 framestep1-framestep1.o: framestep1.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -MT framestep1-framestep1.o -MD -MP -MF $(DEPDIR)/framestep1-framestep1.Tpo -c -o framestep1-framestep1.o `test -f 'framestep1.c' || echo '$(srcdir)/'`framestep1.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/framestep1-framestep1.Tpo $(DEPDIR)/framestep1-framestep1.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='framestep1.c' object='framestep1-framestep1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='framestep1.c' object='framestep1-framestep1.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -c -o framestep1-framestep1.o `test -f 'framestep1.c' || echo '$(srcdir)/'`framestep1.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -c -o framestep1-framestep1.o `test -f 'framestep1.c' || echo '$(srcdir)/'`framestep1.c
 
 framestep1-framestep1.obj: framestep1.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -MT framestep1-framestep1.obj -MD -MP -MF $(DEPDIR)/framestep1-framestep1.Tpo -c -o framestep1-framestep1.obj `if test -f 'framestep1.c'; then $(CYGPATH_W) 'framestep1.c'; else $(CYGPATH_W) '$(srcdir)/framestep1.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/framestep1-framestep1.Tpo $(DEPDIR)/framestep1-framestep1.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='framestep1.c' object='framestep1-framestep1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='framestep1.c' object='framestep1-framestep1.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -c -o framestep1-framestep1.obj `if test -f 'framestep1.c'; then $(CYGPATH_W) 'framestep1.c'; else $(CYGPATH_W) '$(srcdir)/framestep1.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(framestep1_CFLAGS) $(CFLAGS) -c -o framestep1-framestep1.obj `if test -f 'framestep1.c'; then $(CYGPATH_W) 'framestep1.c'; else $(CYGPATH_W) '$(srcdir)/framestep1.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -580,10 +602,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/streams/Makefile.in b/tests/examples/streams/Makefile.in
index 5a57a73..fcdcb2d 100644
--- a/tests/examples/streams/Makefile.in
+++ b/tests/examples/streams/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -87,8 +104,8 @@
 rtpool_test_OBJECTS = $(am_rtpool_test_OBJECTS)
 am__DEPENDENCIES_1 =
 rtpool_test_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 rtpool_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rtpool_test_CFLAGS) \
@@ -109,24 +126,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(rtpool_test_SOURCES) $(stream_status_SOURCES)
 DIST_SOURCES = $(rtpool_test_SOURCES) $(stream_status_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -183,10 +205,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -199,10 +223,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -216,7 +240,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -233,6 +256,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -248,7 +275,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -281,6 +307,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -336,6 +363,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -369,7 +397,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -440,10 +467,10 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-rtpool-test$(EXEEXT): $(rtpool_test_OBJECTS) $(rtpool_test_DEPENDENCIES) 
+rtpool-test$(EXEEXT): $(rtpool_test_OBJECTS) $(rtpool_test_DEPENDENCIES) $(EXTRA_rtpool_test_DEPENDENCIES) 
 	@rm -f rtpool-test$(EXEEXT)
 	$(AM_V_CCLD)$(rtpool_test_LINK) $(rtpool_test_OBJECTS) $(rtpool_test_LDADD) $(LIBS)
-stream-status$(EXEEXT): $(stream_status_OBJECTS) $(stream_status_DEPENDENCIES) 
+stream-status$(EXEEXT): $(stream_status_OBJECTS) $(stream_status_DEPENDENCIES) $(EXTRA_stream_status_DEPENDENCIES) 
 	@rm -f stream-status$(EXEEXT)
 	$(AM_V_CCLD)$(stream_status_LINK) $(stream_status_OBJECTS) $(stream_status_LDADD) $(LIBS)
 
@@ -460,74 +487,65 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 rtpool_test-rtpool-test.o: rtpool-test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -MT rtpool_test-rtpool-test.o -MD -MP -MF $(DEPDIR)/rtpool_test-rtpool-test.Tpo -c -o rtpool_test-rtpool-test.o `test -f 'rtpool-test.c' || echo '$(srcdir)/'`rtpool-test.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/rtpool_test-rtpool-test.Tpo $(DEPDIR)/rtpool_test-rtpool-test.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rtpool-test.c' object='rtpool_test-rtpool-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpool-test.c' object='rtpool_test-rtpool-test.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-rtpool-test.o `test -f 'rtpool-test.c' || echo '$(srcdir)/'`rtpool-test.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-rtpool-test.o `test -f 'rtpool-test.c' || echo '$(srcdir)/'`rtpool-test.c
 
 rtpool_test-rtpool-test.obj: rtpool-test.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -MT rtpool_test-rtpool-test.obj -MD -MP -MF $(DEPDIR)/rtpool_test-rtpool-test.Tpo -c -o rtpool_test-rtpool-test.obj `if test -f 'rtpool-test.c'; then $(CYGPATH_W) 'rtpool-test.c'; else $(CYGPATH_W) '$(srcdir)/rtpool-test.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/rtpool_test-rtpool-test.Tpo $(DEPDIR)/rtpool_test-rtpool-test.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='rtpool-test.c' object='rtpool_test-rtpool-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rtpool-test.c' object='rtpool_test-rtpool-test.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-rtpool-test.obj `if test -f 'rtpool-test.c'; then $(CYGPATH_W) 'rtpool-test.c'; else $(CYGPATH_W) '$(srcdir)/rtpool-test.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-rtpool-test.obj `if test -f 'rtpool-test.c'; then $(CYGPATH_W) 'rtpool-test.c'; else $(CYGPATH_W) '$(srcdir)/rtpool-test.c'; fi`
 
 rtpool_test-testrtpool.o: testrtpool.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -MT rtpool_test-testrtpool.o -MD -MP -MF $(DEPDIR)/rtpool_test-testrtpool.Tpo -c -o rtpool_test-testrtpool.o `test -f 'testrtpool.c' || echo '$(srcdir)/'`testrtpool.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/rtpool_test-testrtpool.Tpo $(DEPDIR)/rtpool_test-testrtpool.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='testrtpool.c' object='rtpool_test-testrtpool.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testrtpool.c' object='rtpool_test-testrtpool.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-testrtpool.o `test -f 'testrtpool.c' || echo '$(srcdir)/'`testrtpool.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-testrtpool.o `test -f 'testrtpool.c' || echo '$(srcdir)/'`testrtpool.c
 
 rtpool_test-testrtpool.obj: testrtpool.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -MT rtpool_test-testrtpool.obj -MD -MP -MF $(DEPDIR)/rtpool_test-testrtpool.Tpo -c -o rtpool_test-testrtpool.obj `if test -f 'testrtpool.c'; then $(CYGPATH_W) 'testrtpool.c'; else $(CYGPATH_W) '$(srcdir)/testrtpool.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/rtpool_test-testrtpool.Tpo $(DEPDIR)/rtpool_test-testrtpool.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='testrtpool.c' object='rtpool_test-testrtpool.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testrtpool.c' object='rtpool_test-testrtpool.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-testrtpool.obj `if test -f 'testrtpool.c'; then $(CYGPATH_W) 'testrtpool.c'; else $(CYGPATH_W) '$(srcdir)/testrtpool.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(rtpool_test_CFLAGS) $(CFLAGS) -c -o rtpool_test-testrtpool.obj `if test -f 'testrtpool.c'; then $(CYGPATH_W) 'testrtpool.c'; else $(CYGPATH_W) '$(srcdir)/testrtpool.c'; fi`
 
 stream_status-stream-status.o: stream-status.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -MT stream_status-stream-status.o -MD -MP -MF $(DEPDIR)/stream_status-stream-status.Tpo -c -o stream_status-stream-status.o `test -f 'stream-status.c' || echo '$(srcdir)/'`stream-status.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/stream_status-stream-status.Tpo $(DEPDIR)/stream_status-stream-status.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stream-status.c' object='stream_status-stream-status.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stream-status.c' object='stream_status-stream-status.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -c -o stream_status-stream-status.o `test -f 'stream-status.c' || echo '$(srcdir)/'`stream-status.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -c -o stream_status-stream-status.o `test -f 'stream-status.c' || echo '$(srcdir)/'`stream-status.c
 
 stream_status-stream-status.obj: stream-status.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -MT stream_status-stream-status.obj -MD -MP -MF $(DEPDIR)/stream_status-stream-status.Tpo -c -o stream_status-stream-status.obj `if test -f 'stream-status.c'; then $(CYGPATH_W) 'stream-status.c'; else $(CYGPATH_W) '$(srcdir)/stream-status.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/stream_status-stream-status.Tpo $(DEPDIR)/stream_status-stream-status.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='stream-status.c' object='stream_status-stream-status.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stream-status.c' object='stream_status-stream-status.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -c -o stream_status-stream-status.obj `if test -f 'stream-status.c'; then $(CYGPATH_W) 'stream-status.c'; else $(CYGPATH_W) '$(srcdir)/stream-status.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stream_status_CFLAGS) $(CFLAGS) -c -o stream_status-stream-status.obj `if test -f 'stream-status.c'; then $(CYGPATH_W) 'stream-status.c'; else $(CYGPATH_W) '$(srcdir)/stream-status.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -631,10 +649,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/examples/streams/stream-status.c b/tests/examples/streams/stream-status.c
index f667468..0494ebd 100644
--- a/tests/examples/streams/stream-status.c
+++ b/tests/examples/streams/stream-status.c
@@ -83,8 +83,8 @@
           break;
         case GST_STREAM_STATUS_TYPE_ENTER:
           if (task) {
-            g_message ("raising task priority for %p", task);
-            gst_task_set_priority (task, G_THREAD_PRIORITY_HIGH);
+            /* g_message ("raising task priority for %p", task); */
+            /* FIXME: do something here */
           }
           break;
         case GST_STREAM_STATUS_TYPE_LEAVE:
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
index f1dad62..62589cd 100644
--- a/tests/examples/typefind/Makefile.in
+++ b/tests/examples/typefind/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,6 +16,23 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -84,8 +101,8 @@
 typefind_OBJECTS = typefind-typefind.$(OBJEXT)
 am__DEPENDENCIES_1 =
 typefind_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 typefind_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(typefind_CFLAGS) \
@@ -100,24 +117,29 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = typefind.c
 DIST_SOURCES = typefind.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -174,10 +196,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -190,10 +214,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -207,7 +231,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -224,6 +247,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -239,7 +266,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -272,6 +298,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -327,6 +354,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -360,7 +388,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -426,7 +453,7 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) 
+typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) $(EXTRA_typefind_DEPENDENCIES) 
 	@rm -f typefind$(EXEEXT)
 	$(AM_V_CCLD)$(typefind_LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
 
@@ -441,42 +468,37 @@
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 typefind-typefind.o: typefind.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.o -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='typefind.c' object='typefind-typefind.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='typefind.c' object='typefind-typefind.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
 
 typefind-typefind.obj: typefind.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.obj -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='typefind.c' object='typefind-typefind.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='typefind.c' object='typefind-typefind.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -580,10 +602,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tests/misc/Makefile.in b/tests/misc/Makefile.in
index ca89e33..75c9826 100644
--- a/tests/misc/Makefile.in
+++ b/tests/misc/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,14 +94,19 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -139,10 +161,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -155,10 +179,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -172,7 +196,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -189,6 +212,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -204,7 +231,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -237,6 +263,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -292,6 +319,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -325,7 +353,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -441,10 +468,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 8fe194c..1c60b73 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -1,45 +1,45 @@
 
 bin_PROGRAMS = \
-	gst-inspect-@GST_MAJORMINOR@ \
-	gst-typefind-@GST_MAJORMINOR@
+	gst-inspect-@GST_API_VERSION@ \
+	gst-typefind-@GST_API_VERSION@
 
-gst_inspect_@GST_MAJORMINOR@_SOURCES = gst-inspect.c tools.h
-gst_inspect_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-gst_inspect_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
+gst_inspect_@GST_API_VERSION@_SOURCES = gst-inspect.c tools.h
+gst_inspect_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+gst_inspect_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
 
-gst_typefind_@GST_MAJORMINOR@_SOURCES = gst-typefind.c tools.h
-gst_typefind_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-gst_typefind_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
+gst_typefind_@GST_API_VERSION@_SOURCES = gst-typefind.c tools.h
+gst_typefind_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+gst_typefind_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
 
 if !GST_DISABLE_PARSE
-bin_PROGRAMS += gst-launch-@GST_MAJORMINOR@
+bin_PROGRAMS += gst-launch-@GST_API_VERSION@
 
-gst_launch_@GST_MAJORMINOR@_SOURCES = gst-launch.c tools.h
-gst_launch_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-gst_launch_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
+gst_launch_@GST_API_VERSION@_SOURCES = gst-launch.c tools.h
+gst_launch_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+gst_launch_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
 endif
 
 Android.mk: Makefile.am
 	androgenizer -:PROJECT gstreamer \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:EXECUTABLE gst-inspect-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:SOURCES $(gst_inspect_@GST_MAJORMINOR@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) \
-	 -:LDFLAGS $(gst_inspect_@GST_MAJORMINOR@_LDADD) \
+	 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
+	 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
+	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
+	 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	 -:EXECUTABLE gst-launch-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:SOURCES $(gst_launch_@GST_MAJORMINOR@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) \
-	 -:LDFLAGS $(gst_launch_@GST_MAJORMINOR@_LDADD) \
+	 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
+	 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
+	 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
+	 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
 manpages = \
-	gst-inspect-@GST_MAJORMINOR@.1 \
-	gst-typefind-@GST_MAJORMINOR@.1
+	gst-inspect-@GST_API_VERSION@.1 \
+	gst-typefind-@GST_API_VERSION@.1
 
 if !GST_DISABLE_PARSE
-manpages += gst-launch-@GST_MAJORMINOR@.1
+manpages += gst-launch-@GST_API_VERSION@.1
 endif
 
 CLEANFILES = $(manpages) *.gcno *.gcda
@@ -57,11 +57,11 @@
 	gst-typefind.1.in \
 	gst-plot-timeline.py
 
-%-@GST_MAJORMINOR@.1: %.1.in
+%-@GST_API_VERSION@.1: %.1.in
 	$(AM_V_GEN)sed \
-		-e s,gst-inspect,gst-inspect-@GST_MAJORMINOR@,g \
-		-e s,gst-launch,gst-launch-@GST_MAJORMINOR@,g \
-		-e s,gst-typefind,gst-typefind-@GST_MAJORMINOR@,g \
-		-e s,GST_MAJORMINOR,@GST_MAJORMINOR@,g \
+		-e s,gst-inspect,gst-inspect-@GST_API_VERSION@,g \
+		-e s,gst-launch,gst-launch-@GST_API_VERSION@,g \
+		-e s,gst-typefind,gst-typefind-@GST_API_VERSION@,g \
+		-e s,GST_API_VERSION,@GST_API_VERSION@,g \
 		$< >$@
 
diff --git a/tools/Makefile.in b/tools/Makefile.in
index b5d2f0b..830f756 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.4 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,23 @@
 
 
 VPATH = @srcdir@
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -36,10 +53,10 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = gst-inspect-@GST_MAJORMINOR@$(EXEEXT) \
-	gst-typefind-@GST_MAJORMINOR@$(EXEEXT) $(am__EXEEXT_1)
-@GST_DISABLE_PARSE_FALSE@am__append_1 = gst-launch-@GST_MAJORMINOR@
-@GST_DISABLE_PARSE_FALSE@am__append_2 = gst-launch-@GST_MAJORMINOR@.1
+bin_PROGRAMS = gst-inspect-@GST_API_VERSION@$(EXEEXT) \
+	gst-typefind-@GST_API_VERSION@$(EXEEXT) $(am__EXEEXT_1)
+@GST_DISABLE_PARSE_FALSE@am__append_1 = gst-launch-@GST_API_VERSION@
+@GST_DISABLE_PARSE_FALSE@am__append_2 = gst-launch-@GST_API_VERSION@.1
 subdir = tools
 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
@@ -85,41 +102,40 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-@GST_DISABLE_PARSE_FALSE@am__EXEEXT_1 =  \
-@GST_DISABLE_PARSE_FALSE@	gst-launch-@GST_MAJORMINOR@$(EXEEXT)
+@GST_DISABLE_PARSE_FALSE@am__EXEEXT_1 = gst-launch-@GST_API_VERSION@$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
 PROGRAMS = $(bin_PROGRAMS)
-am_gst_inspect_@GST_MAJORMINOR@_OBJECTS =  \
-	gst_inspect_@GST_MAJORMINOR@-gst-inspect.$(OBJEXT)
-gst_inspect_@GST_MAJORMINOR@_OBJECTS =  \
-	$(am_gst_inspect_@GST_MAJORMINOR@_OBJECTS)
+am_gst_inspect_@GST_API_VERSION@_OBJECTS =  \
+	gst_inspect_@GST_API_VERSION@-gst-inspect.$(OBJEXT)
+gst_inspect_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_inspect_@GST_API_VERSION@_OBJECTS)
 am__DEPENDENCIES_1 =
-gst_inspect_@GST_MAJORMINOR@_DEPENDENCIES = $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+gst_inspect_@GST_API_VERSION@_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
-gst_inspect_@GST_MAJORMINOR@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+gst_inspect_@GST_API_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(gst_inspect_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-am__gst_launch_@GST_MAJORMINOR@_SOURCES_DIST = gst-launch.c tools.h
-@GST_DISABLE_PARSE_FALSE@am_gst_launch_@GST_MAJORMINOR@_OBJECTS = gst_launch_@GST_MAJORMINOR@-gst-launch.$(OBJEXT)
-gst_launch_@GST_MAJORMINOR@_OBJECTS =  \
-	$(am_gst_launch_@GST_MAJORMINOR@_OBJECTS)
-@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_MAJORMINOR@_DEPENDENCIES =  \
+	$(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__gst_launch_@GST_API_VERSION@_SOURCES_DIST = gst-launch.c tools.h
+@GST_DISABLE_PARSE_FALSE@am_gst_launch_@GST_API_VERSION@_OBJECTS = gst_launch_@GST_API_VERSION@-gst-launch.$(OBJEXT)
+gst_launch_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_launch_@GST_API_VERSION@_OBJECTS)
+@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_API_VERSION@_DEPENDENCIES =  \
 @GST_DISABLE_PARSE_FALSE@	$(am__DEPENDENCIES_1)
-gst_launch_@GST_MAJORMINOR@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+gst_launch_@GST_API_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(gst_launch_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(gst_launch_@GST_API_VERSION@_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-am_gst_typefind_@GST_MAJORMINOR@_OBJECTS =  \
-	gst_typefind_@GST_MAJORMINOR@-gst-typefind.$(OBJEXT)
-gst_typefind_@GST_MAJORMINOR@_OBJECTS =  \
-	$(am_gst_typefind_@GST_MAJORMINOR@_OBJECTS)
-gst_typefind_@GST_MAJORMINOR@_DEPENDENCIES = $(am__DEPENDENCIES_1)
-gst_typefind_@GST_MAJORMINOR@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+am_gst_typefind_@GST_API_VERSION@_OBJECTS =  \
+	gst_typefind_@GST_API_VERSION@-gst-typefind.$(OBJEXT)
+gst_typefind_@GST_API_VERSION@_OBJECTS =  \
+	$(am_gst_typefind_@GST_API_VERSION@_OBJECTS)
+gst_typefind_@GST_API_VERSION@_DEPENDENCIES = $(am__DEPENDENCIES_1)
+gst_typefind_@GST_API_VERSION@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(gst_typefind_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) \
+	$(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SCRIPTS = $(noinst_SCRIPTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -132,28 +148,33 @@
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(gst_inspect_@GST_MAJORMINOR@_SOURCES) \
-	$(gst_launch_@GST_MAJORMINOR@_SOURCES) \
-	$(gst_typefind_@GST_MAJORMINOR@_SOURCES)
-DIST_SOURCES = $(gst_inspect_@GST_MAJORMINOR@_SOURCES) \
-	$(am__gst_launch_@GST_MAJORMINOR@_SOURCES_DIST) \
-	$(gst_typefind_@GST_MAJORMINOR@_SOURCES)
+SOURCES = $(gst_inspect_@GST_API_VERSION@_SOURCES) \
+	$(gst_launch_@GST_API_VERSION@_SOURCES) \
+	$(gst_typefind_@GST_API_VERSION@_SOURCES)
+DIST_SOURCES = $(gst_inspect_@GST_API_VERSION@_SOURCES) \
+	$(am__gst_launch_@GST_API_VERSION@_SOURCES_DIST) \
+	$(gst_typefind_@GST_API_VERSION@_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -175,6 +196,12 @@
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -235,10 +262,12 @@
 GCOV_LIBS = @GCOV_LIBS@
 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
 GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
-GLIB_ONLY_CFLAGS = @GLIB_ONLY_CFLAGS@
-GLIB_ONLY_LIBS = @GLIB_ONLY_LIBS@
 GLIB_PREFIX = @GLIB_PREFIX@
 GLIB_REQ = @GLIB_REQ@
 GMP_LIBS = @GMP_LIBS@
@@ -251,10 +280,10 @@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
 GST_ALL_LIBS = @GST_ALL_LIBS@
+GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_NET_DEFINE = @GST_DISABLE_NET_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
@@ -268,7 +297,6 @@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
 GST_LICENSE = @GST_LICENSE@
 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_MAJORMINOR = @GST_MAJORMINOR@
 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
 GST_OBJ_LIBS = @GST_OBJ_LIBS@
@@ -285,6 +313,10 @@
 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
 GST_REVISION = @GST_REVISION@
 GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
+GST_VERSION_MICRO = @GST_VERSION_MICRO@
+GST_VERSION_MINOR = @GST_VERSION_MINOR@
+GST_VERSION_NANO = @GST_VERSION_NANO@
 GTKDOC_CHECK = @GTKDOC_CHECK@
 HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
@@ -300,7 +332,6 @@
 HAVE_XMLLINT = @HAVE_XMLLINT@
 HOST_CPU = @HOST_CPU@
 HTML_DIR = @HTML_DIR@
-INET_ATON_LIBS = @INET_ATON_LIBS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -333,6 +364,7 @@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
@@ -388,6 +420,7 @@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_CXX = @ac_ct_CXX@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
@@ -421,7 +454,6 @@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -442,17 +474,17 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-gst_inspect_@GST_MAJORMINOR@_SOURCES = gst-inspect.c tools.h
-gst_inspect_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-gst_inspect_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
-gst_typefind_@GST_MAJORMINOR@_SOURCES = gst-typefind.c tools.h
-gst_typefind_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-gst_typefind_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
-@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_MAJORMINOR@_SOURCES = gst-launch.c tools.h
-@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_MAJORMINOR@_CFLAGS = $(GST_OBJ_CFLAGS)
-@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_MAJORMINOR@_LDADD = $(GST_OBJ_LIBS)
-manpages = gst-inspect-@GST_MAJORMINOR@.1 \
-	gst-typefind-@GST_MAJORMINOR@.1 $(am__append_2)
+gst_inspect_@GST_API_VERSION@_SOURCES = gst-inspect.c tools.h
+gst_inspect_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+gst_inspect_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
+gst_typefind_@GST_API_VERSION@_SOURCES = gst-typefind.c tools.h
+gst_typefind_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+gst_typefind_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
+@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_API_VERSION@_SOURCES = gst-launch.c tools.h
+@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
+@GST_DISABLE_PARSE_FALSE@gst_launch_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
+manpages = gst-inspect-@GST_API_VERSION@.1 \
+	gst-typefind-@GST_API_VERSION@.1 $(am__append_2)
 CLEANFILES = $(manpages) *.gcno *.gcda
 man_MANS = $(manpages)
 
@@ -502,8 +534,11 @@
 $(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
 	while read p p1; do if test -f $$p || test -f $$p1; \
@@ -543,15 +578,15 @@
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-gst-inspect-@GST_MAJORMINOR@$(EXEEXT): $(gst_inspect_@GST_MAJORMINOR@_OBJECTS) $(gst_inspect_@GST_MAJORMINOR@_DEPENDENCIES) 
-	@rm -f gst-inspect-@GST_MAJORMINOR@$(EXEEXT)
-	$(AM_V_CCLD)$(gst_inspect_@GST_MAJORMINOR@_LINK) $(gst_inspect_@GST_MAJORMINOR@_OBJECTS) $(gst_inspect_@GST_MAJORMINOR@_LDADD) $(LIBS)
-gst-launch-@GST_MAJORMINOR@$(EXEEXT): $(gst_launch_@GST_MAJORMINOR@_OBJECTS) $(gst_launch_@GST_MAJORMINOR@_DEPENDENCIES) 
-	@rm -f gst-launch-@GST_MAJORMINOR@$(EXEEXT)
-	$(AM_V_CCLD)$(gst_launch_@GST_MAJORMINOR@_LINK) $(gst_launch_@GST_MAJORMINOR@_OBJECTS) $(gst_launch_@GST_MAJORMINOR@_LDADD) $(LIBS)
-gst-typefind-@GST_MAJORMINOR@$(EXEEXT): $(gst_typefind_@GST_MAJORMINOR@_OBJECTS) $(gst_typefind_@GST_MAJORMINOR@_DEPENDENCIES) 
-	@rm -f gst-typefind-@GST_MAJORMINOR@$(EXEEXT)
-	$(AM_V_CCLD)$(gst_typefind_@GST_MAJORMINOR@_LINK) $(gst_typefind_@GST_MAJORMINOR@_OBJECTS) $(gst_typefind_@GST_MAJORMINOR@_LDADD) $(LIBS)
+gst-inspect-@GST_API_VERSION@$(EXEEXT): $(gst_inspect_@GST_API_VERSION@_OBJECTS) $(gst_inspect_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_inspect_@GST_API_VERSION@_DEPENDENCIES) 
+	@rm -f gst-inspect-@GST_API_VERSION@$(EXEEXT)
+	$(AM_V_CCLD)$(gst_inspect_@GST_API_VERSION@_LINK) $(gst_inspect_@GST_API_VERSION@_OBJECTS) $(gst_inspect_@GST_API_VERSION@_LDADD) $(LIBS)
+gst-launch-@GST_API_VERSION@$(EXEEXT): $(gst_launch_@GST_API_VERSION@_OBJECTS) $(gst_launch_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_launch_@GST_API_VERSION@_DEPENDENCIES) 
+	@rm -f gst-launch-@GST_API_VERSION@$(EXEEXT)
+	$(AM_V_CCLD)$(gst_launch_@GST_API_VERSION@_LINK) $(gst_launch_@GST_API_VERSION@_OBJECTS) $(gst_launch_@GST_API_VERSION@_LDADD) $(LIBS)
+gst-typefind-@GST_API_VERSION@$(EXEEXT): $(gst_typefind_@GST_API_VERSION@_OBJECTS) $(gst_typefind_@GST_API_VERSION@_DEPENDENCIES) $(EXTRA_gst_typefind_@GST_API_VERSION@_DEPENDENCIES) 
+	@rm -f gst-typefind-@GST_API_VERSION@$(EXEEXT)
+	$(AM_V_CCLD)$(gst_typefind_@GST_API_VERSION@_LINK) $(gst_typefind_@GST_API_VERSION@_OBJECTS) $(gst_typefind_@GST_API_VERSION@_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -559,81 +594,72 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
-gst_inspect_@GST_MAJORMINOR@-gst-inspect.o: gst-inspect.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_inspect_@GST_MAJORMINOR@-gst-inspect.o -MD -MP -MF $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Tpo -c -o gst_inspect_@GST_MAJORMINOR@-gst-inspect.o `test -f 'gst-inspect.c' || echo '$(srcdir)/'`gst-inspect.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Tpo $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-inspect.c' object='gst_inspect_@GST_MAJORMINOR@-gst-inspect.o' libtool=no @AMDEPBACKSLASH@
+gst_inspect_@GST_API_VERSION@-gst-inspect.o: gst-inspect.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_inspect_@GST_API_VERSION@-gst-inspect.o -MD -MP -MF $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Tpo -c -o gst_inspect_@GST_API_VERSION@-gst-inspect.o `test -f 'gst-inspect.c' || echo '$(srcdir)/'`gst-inspect.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Tpo $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-inspect.c' object='gst_inspect_@GST_API_VERSION@-gst-inspect.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_inspect_@GST_MAJORMINOR@-gst-inspect.o `test -f 'gst-inspect.c' || echo '$(srcdir)/'`gst-inspect.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_inspect_@GST_API_VERSION@-gst-inspect.o `test -f 'gst-inspect.c' || echo '$(srcdir)/'`gst-inspect.c
 
-gst_inspect_@GST_MAJORMINOR@-gst-inspect.obj: gst-inspect.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_inspect_@GST_MAJORMINOR@-gst-inspect.obj -MD -MP -MF $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Tpo -c -o gst_inspect_@GST_MAJORMINOR@-gst-inspect.obj `if test -f 'gst-inspect.c'; then $(CYGPATH_W) 'gst-inspect.c'; else $(CYGPATH_W) '$(srcdir)/gst-inspect.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Tpo $(DEPDIR)/gst_inspect_@GST_MAJORMINOR@-gst-inspect.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-inspect.c' object='gst_inspect_@GST_MAJORMINOR@-gst-inspect.obj' libtool=no @AMDEPBACKSLASH@
+gst_inspect_@GST_API_VERSION@-gst-inspect.obj: gst-inspect.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_inspect_@GST_API_VERSION@-gst-inspect.obj -MD -MP -MF $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Tpo -c -o gst_inspect_@GST_API_VERSION@-gst-inspect.obj `if test -f 'gst-inspect.c'; then $(CYGPATH_W) 'gst-inspect.c'; else $(CYGPATH_W) '$(srcdir)/gst-inspect.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Tpo $(DEPDIR)/gst_inspect_@GST_API_VERSION@-gst-inspect.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-inspect.c' object='gst_inspect_@GST_API_VERSION@-gst-inspect.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_inspect_@GST_MAJORMINOR@-gst-inspect.obj `if test -f 'gst-inspect.c'; then $(CYGPATH_W) 'gst-inspect.c'; else $(CYGPATH_W) '$(srcdir)/gst-inspect.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_inspect_@GST_API_VERSION@-gst-inspect.obj `if test -f 'gst-inspect.c'; then $(CYGPATH_W) 'gst-inspect.c'; else $(CYGPATH_W) '$(srcdir)/gst-inspect.c'; fi`
 
-gst_launch_@GST_MAJORMINOR@-gst-launch.o: gst-launch.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_launch_@GST_MAJORMINOR@-gst-launch.o -MD -MP -MF $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Tpo -c -o gst_launch_@GST_MAJORMINOR@-gst-launch.o `test -f 'gst-launch.c' || echo '$(srcdir)/'`gst-launch.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Tpo $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-launch.c' object='gst_launch_@GST_MAJORMINOR@-gst-launch.o' libtool=no @AMDEPBACKSLASH@
+gst_launch_@GST_API_VERSION@-gst-launch.o: gst-launch.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_launch_@GST_API_VERSION@-gst-launch.o -MD -MP -MF $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Tpo -c -o gst_launch_@GST_API_VERSION@-gst-launch.o `test -f 'gst-launch.c' || echo '$(srcdir)/'`gst-launch.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Tpo $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-launch.c' object='gst_launch_@GST_API_VERSION@-gst-launch.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_launch_@GST_MAJORMINOR@-gst-launch.o `test -f 'gst-launch.c' || echo '$(srcdir)/'`gst-launch.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_launch_@GST_API_VERSION@-gst-launch.o `test -f 'gst-launch.c' || echo '$(srcdir)/'`gst-launch.c
 
-gst_launch_@GST_MAJORMINOR@-gst-launch.obj: gst-launch.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_launch_@GST_MAJORMINOR@-gst-launch.obj -MD -MP -MF $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Tpo -c -o gst_launch_@GST_MAJORMINOR@-gst-launch.obj `if test -f 'gst-launch.c'; then $(CYGPATH_W) 'gst-launch.c'; else $(CYGPATH_W) '$(srcdir)/gst-launch.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Tpo $(DEPDIR)/gst_launch_@GST_MAJORMINOR@-gst-launch.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-launch.c' object='gst_launch_@GST_MAJORMINOR@-gst-launch.obj' libtool=no @AMDEPBACKSLASH@
+gst_launch_@GST_API_VERSION@-gst-launch.obj: gst-launch.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_launch_@GST_API_VERSION@-gst-launch.obj -MD -MP -MF $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Tpo -c -o gst_launch_@GST_API_VERSION@-gst-launch.obj `if test -f 'gst-launch.c'; then $(CYGPATH_W) 'gst-launch.c'; else $(CYGPATH_W) '$(srcdir)/gst-launch.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Tpo $(DEPDIR)/gst_launch_@GST_API_VERSION@-gst-launch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-launch.c' object='gst_launch_@GST_API_VERSION@-gst-launch.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_launch_@GST_MAJORMINOR@-gst-launch.obj `if test -f 'gst-launch.c'; then $(CYGPATH_W) 'gst-launch.c'; else $(CYGPATH_W) '$(srcdir)/gst-launch.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_launch_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_launch_@GST_API_VERSION@-gst-launch.obj `if test -f 'gst-launch.c'; then $(CYGPATH_W) 'gst-launch.c'; else $(CYGPATH_W) '$(srcdir)/gst-launch.c'; fi`
 
-gst_typefind_@GST_MAJORMINOR@-gst-typefind.o: gst-typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_typefind_@GST_MAJORMINOR@-gst-typefind.o -MD -MP -MF $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Tpo -c -o gst_typefind_@GST_MAJORMINOR@-gst-typefind.o `test -f 'gst-typefind.c' || echo '$(srcdir)/'`gst-typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Tpo $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-typefind.c' object='gst_typefind_@GST_MAJORMINOR@-gst-typefind.o' libtool=no @AMDEPBACKSLASH@
+gst_typefind_@GST_API_VERSION@-gst-typefind.o: gst-typefind.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_typefind_@GST_API_VERSION@-gst-typefind.o -MD -MP -MF $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Tpo -c -o gst_typefind_@GST_API_VERSION@-gst-typefind.o `test -f 'gst-typefind.c' || echo '$(srcdir)/'`gst-typefind.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Tpo $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-typefind.c' object='gst_typefind_@GST_API_VERSION@-gst-typefind.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_typefind_@GST_MAJORMINOR@-gst-typefind.o `test -f 'gst-typefind.c' || echo '$(srcdir)/'`gst-typefind.c
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_typefind_@GST_API_VERSION@-gst-typefind.o `test -f 'gst-typefind.c' || echo '$(srcdir)/'`gst-typefind.c
 
-gst_typefind_@GST_MAJORMINOR@-gst-typefind.obj: gst-typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -MT gst_typefind_@GST_MAJORMINOR@-gst-typefind.obj -MD -MP -MF $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Tpo -c -o gst_typefind_@GST_MAJORMINOR@-gst-typefind.obj `if test -f 'gst-typefind.c'; then $(CYGPATH_W) 'gst-typefind.c'; else $(CYGPATH_W) '$(srcdir)/gst-typefind.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Tpo $(DEPDIR)/gst_typefind_@GST_MAJORMINOR@-gst-typefind.Po
-@am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='gst-typefind.c' object='gst_typefind_@GST_MAJORMINOR@-gst-typefind.obj' libtool=no @AMDEPBACKSLASH@
+gst_typefind_@GST_API_VERSION@-gst-typefind.obj: gst-typefind.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -MT gst_typefind_@GST_API_VERSION@-gst-typefind.obj -MD -MP -MF $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Tpo -c -o gst_typefind_@GST_API_VERSION@-gst-typefind.obj `if test -f 'gst-typefind.c'; then $(CYGPATH_W) 'gst-typefind.c'; else $(CYGPATH_W) '$(srcdir)/gst-typefind.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Tpo $(DEPDIR)/gst_typefind_@GST_API_VERSION@-gst-typefind.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gst-typefind.c' object='gst_typefind_@GST_API_VERSION@-gst-typefind.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_MAJORMINOR@_CFLAGS) $(CFLAGS) -c -o gst_typefind_@GST_MAJORMINOR@-gst-typefind.obj `if test -f 'gst-typefind.c'; then $(CYGPATH_W) 'gst-typefind.c'; else $(CYGPATH_W) '$(srcdir)/gst-typefind.c'; fi`
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefind_@GST_API_VERSION@_CFLAGS) $(CFLAGS) -c -o gst_typefind_@GST_API_VERSION@-gst-typefind.obj `if test -f 'gst-typefind.c'; then $(CYGPATH_W) 'gst-typefind.c'; else $(CYGPATH_W) '$(srcdir)/gst-typefind.c'; fi`
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -642,11 +668,18 @@
 	-rm -rf .libs _libs
 install-man1: $(man_MANS)
 	@$(NORMAL_INSTALL)
-	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-	@list=''; test -n "$(man1dir)" || exit 0; \
-	{ for i in $$list; do echo "$$i"; done; \
-	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-	  sed -n '/\.1[a-z]*$$/p'; \
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
 	} | while read p; do \
 	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
 	  echo "$$d$$p"; echo "$$p"; \
@@ -675,9 +708,7 @@
 	  sed -n '/\.1[a-z]*$$/p'; \
 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-	test -z "$$files" || { \
-	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -791,10 +822,15 @@
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -900,24 +936,24 @@
 Android.mk: Makefile.am
 	androgenizer -:PROJECT gstreamer \
 	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:EXECUTABLE gst-inspect-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:SOURCES $(gst_inspect_@GST_MAJORMINOR@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_MAJORMINOR@_CFLAGS) \
-	 -:LDFLAGS $(gst_inspect_@GST_MAJORMINOR@_LDADD) \
+	 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
+	 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
+	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
+	 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	 -:EXECUTABLE gst-launch-@GST_MAJORMINOR@ -:TAGS eng debug \
-	 -:SOURCES $(gst_launch_@GST_MAJORMINOR@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_launch_@GST_MAJORMINOR@_CFLAGS) \
-	 -:LDFLAGS $(gst_launch_@GST_MAJORMINOR@_LDADD) \
+	 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
+	 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
+	 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
+	 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
 	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
 	> $@
 
-%-@GST_MAJORMINOR@.1: %.1.in
+%-@GST_API_VERSION@.1: %.1.in
 	$(AM_V_GEN)sed \
-		-e s,gst-inspect,gst-inspect-@GST_MAJORMINOR@,g \
-		-e s,gst-launch,gst-launch-@GST_MAJORMINOR@,g \
-		-e s,gst-typefind,gst-typefind-@GST_MAJORMINOR@,g \
-		-e s,GST_MAJORMINOR,@GST_MAJORMINOR@,g \
+		-e s,gst-inspect,gst-inspect-@GST_API_VERSION@,g \
+		-e s,gst-launch,gst-launch-@GST_API_VERSION@,g \
+		-e s,gst-typefind,gst-typefind-@GST_API_VERSION@,g \
+		-e s,GST_API_VERSION,@GST_API_VERSION@,g \
 		$< >$@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index bf947ed..fe5b98d 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -21,12 +21,14 @@
  * Boston, MA 02111-1307, USA.
  */
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
 
-#include <gst/controller/gstcontroller.h>
-
 #include "tools.h"
 
 #include <string.h>
@@ -102,27 +104,8 @@
     formats++;
   }
 }
-#endif
 
 static void
-print_query_types (const GstQueryType * types)
-{
-  while (types && *types) {
-    const GstQueryTypeDefinition *definition;
-
-    definition = gst_query_type_get_details (*types);
-    if (definition)
-      n_print ("\t\t(%d):\t%s (%s)\n", *types,
-          definition->nick, definition->description);
-    else
-      n_print ("\t\t(%d):\tUnknown query format\n", *types);
-
-    types++;
-  }
-}
-
-#if 0
-static void
 print_event_masks (const GstEventMask * masks)
 {
   GType event_type;
@@ -352,6 +335,11 @@
       readable = TRUE;
       g_print ("%s%s", (first_flag) ? "" : ", ", _("readable"));
       first_flag = FALSE;
+    } else {
+      /* if we can't read the property value, assume it's set to the default
+       * (which might not be entirely true for sub-classes, but that's an
+       * unlikely corner-case anyway) */
+      g_param_value_set_default (param, &value);
     }
     if (param->flags & G_PARAM_WRITABLE) {
       g_print ("%s%s", (first_flag) ? "" : ", ", _("writable"));
@@ -377,34 +365,23 @@
     switch (G_VALUE_TYPE (&value)) {
       case G_TYPE_STRING:
       {
-        GParamSpecString *pstring = G_PARAM_SPEC_STRING (param);
+        const char *string_val = g_value_get_string (&value);
 
         n_print ("%-23.23s String. ", "");
 
-        if (pstring->default_value == NULL)
-          g_print ("Default: null ");
+        if (string_val == NULL)
+          g_print ("Default: null");
         else
-          g_print ("Default: \"%s\" ", pstring->default_value);
-
-        if (readable) {
-          const char *string_val = g_value_get_string (&value);
-
-          if (string_val == NULL)
-            g_print ("Current: null");
-          else
-            g_print ("Current: \"%s\"", string_val);
-        }
+          g_print ("Default: \"%s\"", string_val);
         break;
       }
       case G_TYPE_BOOLEAN:
       {
-        GParamSpecBoolean *pboolean = G_PARAM_SPEC_BOOLEAN (param);
+        gboolean bool_val = g_value_get_boolean (&value);
 
         n_print ("%-23.23s Boolean. ", "");
-        g_print ("Default: %s ", (pboolean->default_value ? "true" : "false"));
-        if (readable)
-          g_print ("Current: %s",
-              (g_value_get_boolean (&value) ? "true" : "false"));
+
+        g_print ("Default: %s", bool_val ? "true" : "false");
         break;
       }
       case G_TYPE_ULONG:
@@ -413,9 +390,11 @@
 
         n_print ("%-23.23s Unsigned Long. ", "");
         g_print ("Range: %lu - %lu Default: %lu ",
-            pulong->minimum, pulong->maximum, pulong->default_value);
-        if (readable)
-          g_print ("Current: %lu", g_value_get_ulong (&value));
+            pulong->minimum, pulong->maximum, g_value_get_ulong (&value));
+
+        GST_ERROR ("%s: property '%s' of type ulong: consider changing to "
+            "uint/uint64", GST_OBJECT_NAME (element),
+            g_param_spec_get_name (param));
         break;
       }
       case G_TYPE_LONG:
@@ -424,9 +403,11 @@
 
         n_print ("%-23.23s Long. ", "");
         g_print ("Range: %ld - %ld Default: %ld ",
-            plong->minimum, plong->maximum, plong->default_value);
-        if (readable)
-          g_print ("Current: %ld", g_value_get_long (&value));
+            plong->minimum, plong->maximum, g_value_get_long (&value));
+
+        GST_ERROR ("%s: property '%s' of type long: consider changing to "
+            "int/int64", GST_OBJECT_NAME (element),
+            g_param_spec_get_name (param));
         break;
       }
       case G_TYPE_UINT:
@@ -435,9 +416,7 @@
 
         n_print ("%-23.23s Unsigned Integer. ", "");
         g_print ("Range: %u - %u Default: %u ",
-            puint->minimum, puint->maximum, puint->default_value);
-        if (readable)
-          g_print ("Current: %u", g_value_get_uint (&value));
+            puint->minimum, puint->maximum, g_value_get_uint (&value));
         break;
       }
       case G_TYPE_INT:
@@ -446,9 +425,7 @@
 
         n_print ("%-23.23s Integer. ", "");
         g_print ("Range: %d - %d Default: %d ",
-            pint->minimum, pint->maximum, pint->default_value);
-        if (readable)
-          g_print ("Current: %d", g_value_get_int (&value));
+            pint->minimum, pint->maximum, g_value_get_int (&value));
         break;
       }
       case G_TYPE_UINT64:
@@ -458,9 +435,7 @@
         n_print ("%-23.23s Unsigned Integer64. ", "");
         g_print ("Range: %" G_GUINT64_FORMAT " - %" G_GUINT64_FORMAT
             " Default: %" G_GUINT64_FORMAT " ",
-            puint64->minimum, puint64->maximum, puint64->default_value);
-        if (readable)
-          g_print ("Current: %" G_GUINT64_FORMAT, g_value_get_uint64 (&value));
+            puint64->minimum, puint64->maximum, g_value_get_uint64 (&value));
         break;
       }
       case G_TYPE_INT64:
@@ -470,9 +445,7 @@
         n_print ("%-23.23s Integer64. ", "");
         g_print ("Range: %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT
             " Default: %" G_GINT64_FORMAT " ",
-            pint64->minimum, pint64->maximum, pint64->default_value);
-        if (readable)
-          g_print ("Current: %" G_GINT64_FORMAT, g_value_get_int64 (&value));
+            pint64->minimum, pint64->maximum, g_value_get_int64 (&value));
         break;
       }
       case G_TYPE_FLOAT:
@@ -481,9 +454,7 @@
 
         n_print ("%-23.23s Float. ", "");
         g_print ("Range: %15.7g - %15.7g Default: %15.7g ",
-            pfloat->minimum, pfloat->maximum, pfloat->default_value);
-        if (readable)
-          g_print ("Current: %15.7g", g_value_get_float (&value));
+            pfloat->minimum, pfloat->maximum, g_value_get_float (&value));
         break;
       }
       case G_TYPE_DOUBLE:
@@ -492,11 +463,15 @@
 
         n_print ("%-23.23s Double. ", "");
         g_print ("Range: %15.7g - %15.7g Default: %15.7g ",
-            pdouble->minimum, pdouble->maximum, pdouble->default_value);
-        if (readable)
-          g_print ("Current: %15.7g", g_value_get_double (&value));
+            pdouble->minimum, pdouble->maximum, g_value_get_double (&value));
         break;
       }
+      case G_TYPE_CHAR:
+      case G_TYPE_UCHAR:
+        GST_ERROR ("%s: property '%s' of type char: consider changing to "
+            "int/string", GST_OBJECT_NAME (element),
+            g_param_spec_get_name (param));
+        /* fall through */
       default:
         if (param->value_type == GST_TYPE_CAPS) {
           const GstCaps *caps = gst_value_get_caps (&value);
@@ -507,27 +482,22 @@
             print_caps (caps, "                           ");
           }
         } else if (G_IS_PARAM_SPEC_ENUM (param)) {
-          GParamSpecEnum *penum = G_PARAM_SPEC_ENUM (param);
           GEnumValue *values;
           guint j = 0;
           gint enum_value;
-          const gchar *def_val_nick = "", *cur_val_nick = "";
+          const gchar *value_nick = "";
 
           values = G_ENUM_CLASS (g_type_class_ref (param->value_type))->values;
           enum_value = g_value_get_enum (&value);
 
           while (values[j].value_name) {
             if (values[j].value == enum_value)
-              cur_val_nick = values[j].value_nick;
-            if (values[j].value == penum->default_value)
-              def_val_nick = values[j].value_nick;
+              value_nick = values[j].value_nick;
             j++;
           }
 
-          n_print
-              ("%-23.23s Enum \"%s\" Default: %d, \"%s\" Current: %d, \"%s\"",
-              "", g_type_name (G_VALUE_TYPE (&value)), penum->default_value,
-              def_val_nick, enum_value, cur_val_nick);
+          n_print ("%-23.23s Enum \"%s\" Default: %d, \"%s\"", "",
+              g_type_name (G_VALUE_TYPE (&value)), enum_value, value_nick);
 
           j = 0;
           while (values[j].value_name) {
@@ -542,17 +512,15 @@
         } else if (G_IS_PARAM_SPEC_FLAGS (param)) {
           GParamSpecFlags *pflags = G_PARAM_SPEC_FLAGS (param);
           GFlagsValue *vals;
-          gchar *cur, *def;
+          gchar *cur;
 
           vals = pflags->flags_class->values;
 
           cur = flags_to_string (vals, g_value_get_flags (&value));
-          def = flags_to_string (vals, pflags->default_value);
 
-          n_print
-              ("%-23.23s Flags \"%s\" Default: 0x%08x, \"%s\" Current: 0x%08x, \"%s\"",
-              "", g_type_name (G_VALUE_TYPE (&value)), pflags->default_value,
-              def, g_value_get_flags (&value), cur);
+          n_print ("%-23.23s Flags \"%s\" Default: 0x%08x, \"%s\"", "",
+              g_type_name (G_VALUE_TYPE (&value)),
+              g_value_get_flags (&value), cur);
 
           while (vals[0].value_name) {
             g_print ("\n");
@@ -564,7 +532,6 @@
           }
 
           g_free (cur);
-          g_free (def);
         } else if (G_IS_PARAM_SPEC_OBJECT (param)) {
           n_print ("%-23.23s Object of type \"%s\"", "",
               g_type_name (param->value_type));
@@ -595,12 +562,8 @@
           g_print ("Range: %d/%d - %d/%d Default: %d/%d ",
               pfraction->min_num, pfraction->min_den,
               pfraction->max_num, pfraction->max_den,
-              pfraction->def_num, pfraction->def_den);
-          if (readable)
-            g_print ("Current: %d/%d",
-                gst_value_get_fraction_numerator (&value),
-                gst_value_get_fraction_denominator (&value));
-
+              gst_value_get_fraction_numerator (&value),
+              gst_value_get_fraction_denominator (&value));
         } else {
           n_print ("%-23.23s Unknown type %ld \"%s\"", "", param->value_type,
               g_type_name (param->value_type));
@@ -703,9 +666,14 @@
 static void
 print_clocking_info (GstElement * element)
 {
-  if (!gst_element_requires_clock (element) &&
-      !(gst_element_provides_clock (element) &&
-          gst_element_get_clock (element))) {
+  gboolean requires_clock, provides_clock;
+
+  requires_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
+  provides_clock =
+      GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+
+  if (!requires_clock && !provides_clock) {
     n_print ("\n");
     n_print ("Element has no clocking capabilities.");
     return;
@@ -713,17 +681,18 @@
 
   n_print ("\n");
   n_print ("Clocking Interaction:\n");
-  if (gst_element_requires_clock (element)) {
+  if (requires_clock) {
     n_print ("  element requires a clock\n");
   }
 
-  if (gst_element_provides_clock (element)) {
+  if (provides_clock) {
     GstClock *clock;
 
     clock = gst_element_get_clock (element);
-    if (clock)
+    if (clock) {
       n_print ("  element provides a clock: %s\n", GST_OBJECT_NAME (clock));
-    else
+      gst_object_unref (clock);
+    } else
       n_print ("  element is supposed to provide a clock but returned NULL\n");
   }
 }
@@ -731,7 +700,7 @@
 static void
 print_index_info (GstElement * element)
 {
-  if (gst_element_is_indexable (element)) {
+  if (GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_INDEXABLE)) {
     n_print ("\n");
     n_print ("Indexing capabilities:\n");
     n_print ("  element can do indexing\n");
@@ -745,8 +714,8 @@
 print_uri_handler_info (GstElement * element)
 {
   if (GST_IS_URI_HANDLER (element)) {
+    const gchar *const *uri_protocols;
     const gchar *uri_type;
-    gchar **uri_protocols;
 
     if (gst_uri_handler_get_uri_type (GST_URI_HANDLER (element)) == GST_URI_SRC)
       uri_type = "source";
@@ -823,30 +792,11 @@
     if (pad->queryfunc != gst_pad_query_default)
       n_print ("      Has custom queryfunc(): %s\n",
           GST_DEBUG_FUNCPTR_NAME (pad->queryfunc));
-    if (pad->querytypefunc != gst_pad_get_query_types_default) {
-      const GstQueryType *query_types = gst_pad_get_query_types (pad);
-      if (query_types) {
-        n_print ("        Provides query types:\n");
-        print_query_types (query_types);
-      }
-    }
 
     if (pad->iterintlinkfunc != gst_pad_iterate_internal_links_default)
       n_print ("      Has custom iterintlinkfunc(): %s\n",
           GST_DEBUG_FUNCPTR_NAME (pad->iterintlinkfunc));
 
-    if (pad->getcapsfunc)
-      n_print ("      Has getcapsfunc(): %s\n",
-          GST_DEBUG_FUNCPTR_NAME (pad->getcapsfunc));
-    /* gst_pad_acceptcaps_default is static :/ */
-    if (pad->acceptcapsfunc)
-      n_print ("      Has acceptcapsfunc(): %s\n",
-          GST_DEBUG_FUNCPTR_NAME (pad->acceptcapsfunc));
-    if (pad->fixatecapsfunc)
-      n_print ("      Has fixatecapsfunc(): %s\n",
-          GST_DEBUG_FUNCPTR_NAME (pad->fixatecapsfunc));
-
-
     if (pad->padtemplate)
       n_print ("    Pad Template: '%s'\n", pad->padtemplate->name_template);
 
@@ -1009,7 +959,7 @@
 
   g_print ("%s\n", _("Blacklisted files:"));
 
-  plugins = gst_default_registry_get_plugin_list ();
+  plugins = gst_registry_get_plugin_list (gst_registry_get ());
   for (cur = plugins; cur != NULL; cur = g_list_next (cur)) {
     GstPlugin *plugin = (GstPlugin *) (cur->data);
     if (plugin->flags & GST_PLUGIN_FLAG_BLACKLISTED) {
@@ -1032,7 +982,7 @@
   int plugincount = 0, featurecount = 0, blacklistcount = 0;
   GList *plugins, *orig_plugins;
 
-  orig_plugins = plugins = gst_default_registry_get_plugin_list ();
+  orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get ());
   while (plugins) {
     GList *features, *orig_features;
     GstPlugin *plugin;
@@ -1047,7 +997,7 @@
     }
 
     orig_features = features =
-        gst_registry_get_feature_list_by_plugin (gst_registry_get_default (),
+        gst_registry_get_feature_list_by_plugin (gst_registry_get (),
         plugin->desc.name);
     while (features) {
       GstPluginFeature *feature;
@@ -1067,6 +1017,7 @@
           g_print ("%s:  %s: %s\n", plugin->desc.name,
               GST_OBJECT_NAME (factory),
               gst_element_factory_get_longname (factory));
+#if 0
       } else if (GST_IS_INDEX_FACTORY (feature)) {
         GstIndexFactory *factory;
 
@@ -1074,6 +1025,7 @@
         if (!print_all)
           g_print ("%s:  %s: %s\n", plugin->desc.name,
               GST_OBJECT_NAME (factory), factory->longdesc);
+#endif
       } else if (GST_IS_TYPE_FIND_FACTORY (feature)) {
         GstTypeFindFactory *factory;
 
@@ -1129,13 +1081,13 @@
 {
   GList *plugins, *p, *features, *f;
 
-  plugins = gst_default_registry_get_plugin_list ();
+  plugins = gst_registry_get_plugin_list (gst_registry_get ());
 
   for (p = plugins; p; p = p->next) {
     GstPlugin *plugin = (GstPlugin *) (p->data);
 
     features =
-        gst_registry_get_feature_list_by_plugin (gst_registry_get_default (),
+        gst_registry_get_feature_list_by_plugin (gst_registry_get (),
         plugin->desc.name);
 
     for (f = features; f; f = f->next) {
@@ -1160,8 +1112,9 @@
         }
 
         if (GST_IS_URI_HANDLER (element)) {
+          const gchar *const *uri_protocols;
           const gchar *dir;
-          gchar **uri_protocols, *joined;
+          gchar *joined;
 
           switch (gst_uri_handler_get_uri_type (GST_URI_HANDLER (element))) {
             case GST_URI_SRC:
@@ -1177,7 +1130,7 @@
 
           uri_protocols =
               gst_uri_handler_get_protocols (GST_URI_HANDLER (element));
-          joined = g_strjoinv (", ", uri_protocols);
+          joined = g_strjoinv (", ", (gchar **) uri_protocols);
 
           g_print ("%s (%s, rank %u): %s\n",
               gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)), dir,
@@ -1236,15 +1189,15 @@
 static void
 print_plugin_features (GstPlugin * plugin)
 {
-  GList *features;
+  GList *features, *origlist;
   gint num_features = 0;
   gint num_elements = 0;
   gint num_typefinders = 0;
   gint num_indexes = 0;
   gint num_other = 0;
 
-  features =
-      gst_registry_get_feature_list_by_plugin (gst_registry_get_default (),
+  origlist = features =
+      gst_registry_get_feature_list_by_plugin (gst_registry_get (),
       plugin->desc.name);
 
   while (features) {
@@ -1259,12 +1212,14 @@
       n_print ("  %s: %s\n", GST_OBJECT_NAME (factory),
           gst_element_factory_get_longname (factory));
       num_elements++;
+#if 0
     } else if (GST_IS_INDEX_FACTORY (feature)) {
       GstIndexFactory *factory;
 
       factory = GST_INDEX_FACTORY (feature);
       n_print ("  %s: %s\n", GST_OBJECT_NAME (factory), factory->longdesc);
       num_indexes++;
+#endif
     } else if (GST_IS_TYPE_FIND_FACTORY (feature)) {
       GstTypeFindFactory *factory;
 
@@ -1292,6 +1247,9 @@
     num_features++;
     features = g_list_next (features);
   }
+
+  gst_plugin_feature_list_free (origlist);
+
   n_print ("\n");
   n_print ("  %d features:\n", num_features);
   if (num_elements > 0)
@@ -1312,13 +1270,15 @@
   GstPluginFeature *feature;
 
   /* FIXME implement other pretty print function for these */
+#if 0
   feature = gst_default_registry_find_feature (element_name,
       GST_TYPE_INDEX_FACTORY);
   if (feature) {
     n_print ("%s: an index\n", element_name);
     return 0;
   }
-  feature = gst_default_registry_find_feature (element_name,
+#endif
+  feature = gst_registry_find_feature (gst_registry_get (), element_name,
       GST_TYPE_TYPE_FIND_FACTORY);
   if (feature) {
     n_print ("%s: a typefind function\n", element_name);
@@ -1345,6 +1305,7 @@
 
   element = gst_element_factory_create (factory, NULL);
   if (!element) {
+    gst_object_unref (factory);
     g_print ("couldn't construct element for some reason\n");
     return -1;
   }
@@ -1358,7 +1319,7 @@
   if (GST_PLUGIN_FEATURE (factory)->plugin_name) {
     GstPlugin *plugin;
 
-    plugin = gst_registry_find_plugin (gst_registry_get_default (),
+    plugin = gst_registry_find_plugin (gst_registry_get (),
         GST_PLUGIN_FEATURE (factory)->plugin_name);
     if (plugin) {
       print_plugin_info (plugin);
@@ -1459,23 +1420,26 @@
 static void
 print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
 {
-  gchar **protocols, **p;
+  const gchar *const *protocols;
 
   protocols = gst_element_factory_get_uri_protocols (factory);
   if (protocols != NULL && *protocols != NULL) {
     switch (gst_element_factory_get_uri_type (factory)) {
       case GST_URI_SINK:
-        for (p = protocols; *p != NULL; ++p)
-          g_print ("urisink-%s\n", *p);
+        while (*protocols != NULL) {
+          g_print ("urisink-%s\n", *protocols);
+          ++protocols;
+        }
         break;
       case GST_URI_SRC:
-        for (p = protocols; *p != NULL; ++p)
-          g_print ("urisource-%s\n", *p);
+        while (*protocols != NULL) {
+          g_print ("urisource-%s\n", *protocols);
+          ++protocols;
+        }
         break;
       default:
         break;
     }
-    g_strfreev (protocols);
   }
 }
 
@@ -1488,7 +1452,7 @@
   plugin_name = gst_plugin_get_name (plugin);
 
   /* not interested in typefind factories, only element factories */
-  features = gst_registry_get_feature_list (gst_registry_get_default (),
+  features = gst_registry_get_feature_list (gst_registry_get (),
       GST_TYPE_ELEMENT_FACTORY);
 
   for (l = features; l != NULL; l = l->next) {
@@ -1517,7 +1481,7 @@
 {
   GList *plugins, *orig_plugins;
 
-  orig_plugins = plugins = gst_default_registry_get_plugin_list ();
+  orig_plugins = plugins = gst_registry_get_plugin_list (gst_registry_get ());
   while (plugins) {
     GstPlugin *plugin;
 
@@ -1567,8 +1531,6 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  g_thread_init (NULL);
-
   gst_tools_set_prgname ("gst-inspect");
 
 #ifndef GST_DISABLE_OPTION_PARSING
@@ -1631,7 +1593,7 @@
 
     /* otherwise check if it's a plugin */
     if (retval) {
-      plugin = gst_default_registry_find_plugin (arg);
+      plugin = gst_registry_find_plugin (gst_registry_get (), arg);
 
       /* if there is such a plugin, print out info */
       if (plugin) {
diff --git a/tools/gst-launch.1.in b/tools/gst-launch.1.in
index e6702f4..156fd9f 100644
--- a/tools/gst-launch.1.in
+++ b/tools/gst-launch.1.in
@@ -411,7 +411,7 @@
 .TP
 \fBGST_REGISTRY\fR
 Path of the plugin registry file. Default is
-~/.gstreamer-GST_MAJORMINOR/registry-CPU.bin where CPU is the machine/cpu type
+~/.gstreamer-GST_API_VERSION/registry-CPU.bin where CPU is the machine/cpu type
 GStreamer was compiled for, e.g. 'i486', 'i686', 'x86-64', 'ppc', etc. (check
 the output of "uname -i" and "uname -m" for details).
 .TP
@@ -448,7 +448,7 @@
 .
 .SH FILES
 .TP 8
-~/.gstreamer-GST_MAJORMINOR/registry-*.bin
+~/.gstreamer-GST_API_VERSION/registry-*.bin
 The plugin cache; can be deleted at any time, will be re-created
 automatically when it does not exist yet or plugins change.
 .
diff --git a/tools/gst-launch.c b/tools/gst-launch.c
index 2687dfd..2113bf4 100644
--- a/tools/gst-launch.c
+++ b/tools/gst-launch.c
@@ -69,6 +69,7 @@
 static EventLoopResult caught_error = ELR_NO_ERROR;
 static gboolean quiet = FALSE;
 static gboolean tags = FALSE;
+static gboolean toc = FALSE;
 static gboolean messages = FALSE;
 static gboolean is_live = FALSE;
 static gboolean waiting_eos = FALSE;
@@ -177,6 +178,7 @@
 }
 #endif /* DISABLE_FAULT_HANDLER */
 
+#if 0
 typedef struct _GstIndexStats
 {
   gint id;
@@ -329,6 +331,7 @@
     }
   }
 }
+#endif
 
 /* Kids, use the functions from libgstpbutils in gst-plugins-base in your
  * own code (we can't do that here because it would introduce a circular
@@ -435,6 +438,36 @@
   }
 }
 
+#define MAX_INDENT 40
+
+static void
+print_toc_entry (gpointer data, gpointer user_data)
+{
+  GstTocEntry *entry = (GstTocEntry *) data;
+  const gchar spc[MAX_INDENT + 1] = "                                        ";
+  const gchar *entry_types[] = { "chapter", "edition" };
+  guint indent = MIN (GPOINTER_TO_UINT (user_data), MAX_INDENT);
+  gint64 start, stop;
+
+  gst_toc_entry_get_start_stop (entry, &start, &stop);
+
+  PRINT ("%s%s:", &spc[MAX_INDENT - indent], entry_types[entry->type]);
+  if (GST_CLOCK_TIME_IS_VALID (start)) {
+    PRINT (" start: %" GST_TIME_FORMAT, GST_TIME_ARGS (start));
+  }
+  if (GST_CLOCK_TIME_IS_VALID (stop)) {
+    PRINT (" stop: %" GST_TIME_FORMAT, GST_TIME_ARGS (stop));
+  }
+  PRINT ("\n");
+  indent += 2;
+
+  /* TODO: print tags */
+
+  /* loop over sub-toc entries */
+  g_list_foreach (entry->subentries, print_toc_entry,
+      GUINT_TO_POINTER (indent));
+}
+
 #ifndef DISABLE_FAULT_HANDLER
 /* we only use sighandler here because the registers are not important */
 static void
@@ -590,7 +623,7 @@
       }
       case GST_MESSAGE_TAG:
         if (tags) {
-          GstTagList *tags;
+          GstTagList *tag_list;
 
           if (GST_IS_ELEMENT (GST_MESSAGE_SRC (message))) {
             PRINT (_("FOUND TAG      : found by element \"%s\".\n"),
@@ -605,9 +638,31 @@
             PRINT (_("FOUND TAG\n"));
           }
 
-          gst_message_parse_tag (message, &tags);
-          gst_tag_list_foreach (tags, print_tag, NULL);
-          gst_tag_list_free (tags);
+          gst_message_parse_tag (message, &tag_list);
+          gst_tag_list_foreach (tag_list, print_tag, NULL);
+          gst_tag_list_free (tag_list);
+        }
+        break;
+      case GST_MESSAGE_TOC:
+        if (toc) {
+          GstToc *toc_msg;
+          gboolean updated;
+
+          if (GST_IS_ELEMENT (GST_MESSAGE_SRC (message))) {
+            PRINT (_("FOUND TOC      : found by element \"%s\".\n"),
+                GST_MESSAGE_SRC_NAME (message));
+          } else if (GST_IS_OBJECT (GST_MESSAGE_SRC (message))) {
+            PRINT (_("FOUND TOC      : found by object \"%s\".\n"),
+                GST_MESSAGE_SRC_NAME (message));
+          } else {
+            PRINT (_("FOUND TOC\n"));
+          }
+
+          gst_message_parse_toc (message, &toc_msg, &updated);
+          /* recursively loop over toc entries */
+          g_list_foreach (toc_msg->entries, print_toc_entry,
+              GUINT_TO_POINTER (0));
+          gst_toc_free (toc_msg);
         }
         break;
       case GST_MESSAGE_INFO:{
@@ -820,15 +875,18 @@
   /* options */
   gboolean verbose = FALSE;
   gboolean no_fault = FALSE;
-  gboolean trace = FALSE;
   gboolean eos_on_shutdown = FALSE;
+#if 0
   gboolean check_index = FALSE;
+#endif
   gchar *savefile = NULL;
   gchar *exclude_args = NULL;
 #ifndef GST_DISABLE_OPTION_PARSING
   GOptionEntry options[] = {
     {"tags", 't', 0, G_OPTION_ARG_NONE, &tags,
         N_("Output tags (also known as metadata)"), NULL},
+    {"toc", 'c', 0, G_OPTION_ARG_NONE, &toc,
+        N_("Ouput TOC (chapters and editions)"), NULL},
     {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
         N_("Output status information and property notifications"), NULL},
     {"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
@@ -839,20 +897,22 @@
         N_("Do not output status information of TYPE"), N_("TYPE1,TYPE2,...")},
     {"no-fault", 'f', 0, G_OPTION_ARG_NONE, &no_fault,
         N_("Do not install a fault handler"), NULL},
-    {"trace", 'T', 0, G_OPTION_ARG_NONE, &trace,
-        N_("Print alloc trace (if enabled at compile time)"), NULL},
     {"eos-on-shutdown", 'e', 0, G_OPTION_ARG_NONE, &eos_on_shutdown,
         N_("Force EOS on sources before shutting the pipeline down"), NULL},
+#if 0
     {"index", 'i', 0, G_OPTION_ARG_NONE, &check_index,
         N_("Gather and print index statistics"), NULL},
+#endif
     GST_TOOLS_GOPTION_VERSION,
     {NULL}
   };
   GOptionContext *ctx;
   GError *err = NULL;
 #endif
+#if 0
   GstIndex *index;
   GPtrArray *index_stats = NULL;
+#endif
   gchar **argvn;
   GError *error = NULL;
   gint res = 0;
@@ -865,8 +925,6 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  g_thread_init (NULL);
-
   gst_tools_set_prgname ("gst-launch");
 
 #ifndef GST_DISABLE_OPTION_PARSING
@@ -894,15 +952,6 @@
   sigint_setup ();
 #endif
 
-  if (trace) {
-    if (!gst_alloc_trace_available ()) {
-      g_warning ("Trace not available (recompile with trace enabled).");
-    }
-    gst_alloc_trace_set_flags_all (GST_ALLOC_TRACE_LIVE |
-        GST_ALLOC_TRACE_MEM_LIVE);
-    gst_alloc_trace_print_live ();
-  }
-
   /* make a null-terminated version of argv */
   argvn = g_new0 (char *, argc);
   memcpy (argvn, argv + 1, sizeof (char *) * (argc - 1));
@@ -951,7 +1000,7 @@
       gst_bin_add (GST_BIN (real_pipeline), pipeline);
       pipeline = real_pipeline;
     }
-
+#if 0
     if (check_index) {
       /* gst_index_new() creates a null-index, it does not store anything, but
        * the entry-added signal works and this is what we use to build the
@@ -966,6 +1015,7 @@
         gst_element_set_index (pipeline, index);
       }
     }
+#endif
 
     bus = gst_element_get_bus (pipeline);
     gst_bus_set_sync_handler (bus, bus_sync_handler, (gpointer) pipeline);
@@ -1059,10 +1109,12 @@
     gst_element_set_state (pipeline, GST_STATE_READY);
     gst_element_get_state (pipeline, &state, &pending, GST_CLOCK_TIME_NONE);
 
+#if 0
     if (check_index) {
       print_index_stats (index_stats);
       g_ptr_array_free (index_stats, TRUE);
     }
+#endif
 
   end:
     PRINT (_("Setting pipeline to NULL ...\n"));
@@ -1074,8 +1126,6 @@
   gst_object_unref (pipeline);
 
   gst_deinit ();
-  if (trace)
-    gst_alloc_trace_print_live ();
 
   return res;
 }
diff --git a/tools/gst-typefind.c b/tools/gst-typefind.c
index 53635d6..a466859 100644
--- a/tools/gst-typefind.c
+++ b/tools/gst-typefind.c
@@ -153,8 +153,6 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  g_thread_init (NULL);
-
   gst_tools_set_prgname ("gst-typefind");
 
   ctx = g_option_context_new ("FILES");
diff --git a/win32/MANIFEST b/win32/MANIFEST
index baf886e..f5d7fb9 100644
--- a/win32/MANIFEST
+++ b/win32/MANIFEST
@@ -10,7 +10,6 @@
 win32/common/gtchar.h
 win32/common/libgstbase.def
 win32/common/libgstcontroller.def
-win32/common/libgstdataprotocol.def
 win32/common/libgstnet.def
 win32/common/libgstreamer.def
 win32/vs6/gstreamer.dsw
@@ -20,7 +19,6 @@
 win32/vs6/libgstbase.dsp
 win32/vs6/libgstcontroller.dsp
 win32/vs6/libgstcoreelements.dsp
-win32/vs6/libgstdataprotocol.dsp
 win32/vs6/libgstnet.dsp
 win32/vs6/libgstreamer.dsp
 win32/vs7/gstreamer.sln
@@ -38,4 +36,4 @@
 win32/vs8/libgstbase.vcproj
 win32/vs8/libgstcontroller.vcproj
 win32/vs8/libgstcoreelements.vcproj
-win32/vs8/libgstreamer.vcproj
\ No newline at end of file
+win32/vs8/libgstreamer.vcproj
diff --git a/win32/common/config.h b/win32/common/config.h
index 0054cfe..2681569 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -17,7 +17,16 @@
 #undef ENABLE_SUBUNIT
 
 /* gettext package name */
-#define GETTEXT_PACKAGE "gstreamer-0.11"
+#define GETTEXT_PACKAGE "gstreamer-1.0"
+
+/* The GIO library directory. */
+#undef GIO_LIBDIR
+
+/* The GIO modules directory. */
+#undef GIO_MODULE_DIR
+
+/* GStreamer API Version */
+#define GST_API_VERSION "1.0"
 
 /* data dir */
 #define GST_DATADIR PREFIX "\\share"
@@ -46,9 +55,6 @@
 /* GStreamer license */
 #define GST_LICENSE "LGPL"
 
-/* library major.minor version */
-#define GST_MAJORMINOR "0.11"
-
 /* package name in plugins */
 #define GST_PACKAGE_NAME "GStreamer source release"
 
@@ -56,7 +62,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2011-09-29"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-04-12"
 
 /* location of the installed gst-plugin-scanner */
 #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner"
@@ -163,15 +169,6 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
@@ -244,6 +241,9 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#undef HAVE_SYS_POLL_H
+
 /* Define to 1 if you have the <sys/prctl.h> header file. */
 #undef HAVE_SYS_PRCTL_H
 
@@ -321,9 +321,6 @@
 /* Memory alignment by pagesize */
 #undef MEMORY_ALIGNMENT_PAGESIZE
 
-/* Define if you have no native inet_aton() function. */
-#undef NO_INET_ATON
-
 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
 #undef NO_MINUS_C_MINUS_O
 
@@ -337,7 +334,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 0.11.1"
+#define PACKAGE_STRING "GStreamer 0.11.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -346,13 +343,13 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.11.1"
+#define PACKAGE_VERSION "0.11.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
-#  define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-0.11"
+#  define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-1.0"
 #else
-#  define PLUGINDIR PREFIX "\\lib\\gstreamer-0.11"
+#  define PLUGINDIR PREFIX "\\lib\\gstreamer-1.0"
 #endif
 
 /* The size of `char', as computed by sizeof. */
@@ -377,7 +374,7 @@
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "0.11.1"
+#define VERSION "0.11.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstenumtypes.c b/win32/common/gstenumtypes.c
index a11bb56..92103ec 100644
--- a/win32/common/gstenumtypes.c
+++ b/win32/common/gstenumtypes.c
@@ -63,7 +63,6 @@
         "droppable"},
     {C_FLAGS (GST_BUFFER_FLAG_DELTA_UNIT), "GST_BUFFER_FLAG_DELTA_UNIT",
         "delta-unit"},
-    {C_FLAGS (GST_BUFFER_FLAG_IN_CAPS), "GST_BUFFER_FLAG_IN_CAPS", "in-caps"},
     {C_FLAGS (GST_BUFFER_FLAG_LAST), "GST_BUFFER_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
@@ -85,6 +84,7 @@
     {C_FLAGS (GST_BUFFER_COPY_FLAGS), "GST_BUFFER_COPY_FLAGS", "flags"},
     {C_FLAGS (GST_BUFFER_COPY_TIMESTAMPS), "GST_BUFFER_COPY_TIMESTAMPS",
         "timestamps"},
+    {C_FLAGS (GST_BUFFER_COPY_META), "GST_BUFFER_COPY_META", "meta"},
     {C_FLAGS (GST_BUFFER_COPY_MEMORY), "GST_BUFFER_COPY_MEMORY", "memory"},
     {C_FLAGS (GST_BUFFER_COPY_MERGE), "GST_BUFFER_COPY_MERGE", "merge"},
     {0, NULL, NULL}
@@ -100,23 +100,25 @@
 
 /* enumerations from "gstbufferpool.h" */
 GType
-gst_buffer_pool_flags_get_type (void)
+gst_buffer_pool_acquire_flags_get_type (void)
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_BUFFER_POOL_FLAG_NONE), "GST_BUFFER_POOL_FLAG_NONE", "none"},
-    {C_FLAGS (GST_BUFFER_POOL_FLAG_KEY_UNIT), "GST_BUFFER_POOL_FLAG_KEY_UNIT",
-        "key-unit"},
-    {C_FLAGS (GST_BUFFER_POOL_FLAG_DONTWAIT), "GST_BUFFER_POOL_FLAG_DONTWAIT",
-        "dontwait"},
-    {C_FLAGS (GST_BUFFER_POOL_FLAG_DISCONT), "GST_BUFFER_POOL_FLAG_DISCONT",
-        "discont"},
-    {C_FLAGS (GST_BUFFER_POOL_FLAG_LAST), "GST_BUFFER_POOL_FLAG_LAST", "last"},
+    {C_FLAGS (GST_BUFFER_POOL_ACQUIRE_FLAG_NONE),
+        "GST_BUFFER_POOL_ACQUIRE_FLAG_NONE", "none"},
+    {C_FLAGS (GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT),
+        "GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT", "key-unit"},
+    {C_FLAGS (GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT),
+        "GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT", "dontwait"},
+    {C_FLAGS (GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT),
+        "GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT", "discont"},
+    {C_FLAGS (GST_BUFFER_POOL_ACQUIRE_FLAG_LAST),
+        "GST_BUFFER_POOL_ACQUIRE_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
 
   if (g_once_init_enter (&id)) {
-    GType tmp = g_flags_register_static ("GstBufferPoolFlags", values);
+    GType tmp = g_flags_register_static ("GstBufferPoolAcquireFlags", values);
     g_once_init_leave (&id, tmp);
   }
 
@@ -167,7 +169,7 @@
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_CAPS_FLAGS_ANY), "GST_CAPS_FLAGS_ANY", "any"},
+    {C_FLAGS (GST_CAPS_FLAG_ANY), "GST_CAPS_FLAG_ANY", "any"},
     {0, NULL, NULL}
   };
 
@@ -372,13 +374,19 @@
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_ELEMENT_LOCKED_STATE), "GST_ELEMENT_LOCKED_STATE",
-        "locked-state"},
-    {C_FLAGS (GST_ELEMENT_IS_SINK), "GST_ELEMENT_IS_SINK", "is-sink"},
-    {C_FLAGS (GST_ELEMENT_UNPARENTING), "GST_ELEMENT_UNPARENTING",
+    {C_FLAGS (GST_ELEMENT_FLAG_UNPARENTING), "GST_ELEMENT_FLAG_UNPARENTING",
         "unparenting"},
-    {C_FLAGS (GST_ELEMENT_IS_SOURCE), "GST_ELEMENT_IS_SOURCE", "is-source"},
-    {C_FLAGS (GST_ELEMENT_FLAG_LAST), "GST_ELEMENT_FLAG_LAST", "flag-last"},
+    {C_FLAGS (GST_ELEMENT_FLAG_LOCKED_STATE), "GST_ELEMENT_FLAG_LOCKED_STATE",
+        "locked-state"},
+    {C_FLAGS (GST_ELEMENT_FLAG_SINK), "GST_ELEMENT_FLAG_SINK", "sink"},
+    {C_FLAGS (GST_ELEMENT_FLAG_SOURCE), "GST_ELEMENT_FLAG_SOURCE", "source"},
+    {C_FLAGS (GST_ELEMENT_FLAG_PROVIDE_CLOCK), "GST_ELEMENT_FLAG_PROVIDE_CLOCK",
+        "provide-clock"},
+    {C_FLAGS (GST_ELEMENT_FLAG_REQUIRE_CLOCK), "GST_ELEMENT_FLAG_REQUIRE_CLOCK",
+        "require-clock"},
+    {C_FLAGS (GST_ELEMENT_FLAG_INDEXABLE), "GST_ELEMENT_FLAG_INDEXABLE",
+        "indexable"},
+    {C_FLAGS (GST_ELEMENT_FLAG_LAST), "GST_ELEMENT_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
 
@@ -542,6 +550,8 @@
     {C_FLAGS (GST_EVENT_TYPE_SERIALIZED), "GST_EVENT_TYPE_SERIALIZED",
         "serialized"},
     {C_FLAGS (GST_EVENT_TYPE_STICKY), "GST_EVENT_TYPE_STICKY", "sticky"},
+    {C_FLAGS (GST_EVENT_TYPE_STICKY_MULTI), "GST_EVENT_TYPE_STICKY_MULTI",
+        "sticky-multi"},
     {0, NULL, NULL}
   };
 
@@ -561,24 +571,33 @@
     {C_ENUM (GST_EVENT_UNKNOWN), "GST_EVENT_UNKNOWN", "unknown"},
     {C_ENUM (GST_EVENT_FLUSH_START), "GST_EVENT_FLUSH_START", "flush-start"},
     {C_ENUM (GST_EVENT_FLUSH_STOP), "GST_EVENT_FLUSH_STOP", "flush-stop"},
+    {C_ENUM (GST_EVENT_STREAM_START), "GST_EVENT_STREAM_START", "stream-start"},
     {C_ENUM (GST_EVENT_CAPS), "GST_EVENT_CAPS", "caps"},
+    {C_ENUM (GST_EVENT_STREAM_CONFIG), "GST_EVENT_STREAM_CONFIG",
+        "stream-config"},
     {C_ENUM (GST_EVENT_SEGMENT), "GST_EVENT_SEGMENT", "segment"},
     {C_ENUM (GST_EVENT_TAG), "GST_EVENT_TAG", "tag"},
     {C_ENUM (GST_EVENT_BUFFERSIZE), "GST_EVENT_BUFFERSIZE", "buffersize"},
     {C_ENUM (GST_EVENT_SINK_MESSAGE), "GST_EVENT_SINK_MESSAGE", "sink-message"},
     {C_ENUM (GST_EVENT_EOS), "GST_EVENT_EOS", "eos"},
+    {C_ENUM (GST_EVENT_TOC), "GST_EVENT_TOC", "toc"},
+    {C_ENUM (GST_EVENT_SEGMENT_DONE), "GST_EVENT_SEGMENT_DONE", "segment-done"},
+    {C_ENUM (GST_EVENT_GAP), "GST_EVENT_GAP", "gap"},
     {C_ENUM (GST_EVENT_QOS), "GST_EVENT_QOS", "qos"},
     {C_ENUM (GST_EVENT_SEEK), "GST_EVENT_SEEK", "seek"},
     {C_ENUM (GST_EVENT_NAVIGATION), "GST_EVENT_NAVIGATION", "navigation"},
     {C_ENUM (GST_EVENT_LATENCY), "GST_EVENT_LATENCY", "latency"},
     {C_ENUM (GST_EVENT_STEP), "GST_EVENT_STEP", "step"},
     {C_ENUM (GST_EVENT_RECONFIGURE), "GST_EVENT_RECONFIGURE", "reconfigure"},
+    {C_ENUM (GST_EVENT_TOC_SELECT), "GST_EVENT_TOC_SELECT", "toc-select"},
     {C_ENUM (GST_EVENT_CUSTOM_UPSTREAM), "GST_EVENT_CUSTOM_UPSTREAM",
         "custom-upstream"},
     {C_ENUM (GST_EVENT_CUSTOM_DOWNSTREAM), "GST_EVENT_CUSTOM_DOWNSTREAM",
         "custom-downstream"},
     {C_ENUM (GST_EVENT_CUSTOM_DOWNSTREAM_OOB),
         "GST_EVENT_CUSTOM_DOWNSTREAM_OOB", "custom-downstream-oob"},
+    {C_ENUM (GST_EVENT_CUSTOM_DOWNSTREAM_STICKY),
+        "GST_EVENT_CUSTOM_DOWNSTREAM_STICKY", "custom-downstream-sticky"},
     {C_ENUM (GST_EVENT_CUSTOM_BOTH), "GST_EVENT_CUSTOM_BOTH", "custom-both"},
     {C_ENUM (GST_EVENT_CUSTOM_BOTH_OOB), "GST_EVENT_CUSTOM_BOTH_OOB",
         "custom-both-oob"},
@@ -612,6 +631,24 @@
   return (GType) id;
 }
 
+GType
+gst_stream_config_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_STREAM_CONFIG_FLAG_NONE), "GST_STREAM_CONFIG_FLAG_NONE",
+        "none"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_enum_register_static ("GstStreamConfigFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstformat.h" */
 GType
 gst_format_get_type (void)
@@ -635,126 +672,6 @@
   return (GType) id;
 }
 
-/* enumerations from "gstindex.h" */
-GType
-gst_index_certainty_get_type (void)
-{
-  static gsize id = 0;
-  static const GEnumValue values[] = {
-    {C_ENUM (GST_INDEX_UNKNOWN), "GST_INDEX_UNKNOWN", "unknown"},
-    {C_ENUM (GST_INDEX_CERTAIN), "GST_INDEX_CERTAIN", "certain"},
-    {C_ENUM (GST_INDEX_FUZZY), "GST_INDEX_FUZZY", "fuzzy"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstIndexCertainty", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_index_entry_type_get_type (void)
-{
-  static gsize id = 0;
-  static const GEnumValue values[] = {
-    {C_ENUM (GST_INDEX_ENTRY_ID), "GST_INDEX_ENTRY_ID", "id"},
-    {C_ENUM (GST_INDEX_ENTRY_ASSOCIATION), "GST_INDEX_ENTRY_ASSOCIATION",
-        "association"},
-    {C_ENUM (GST_INDEX_ENTRY_OBJECT), "GST_INDEX_ENTRY_OBJECT", "object"},
-    {C_ENUM (GST_INDEX_ENTRY_FORMAT), "GST_INDEX_ENTRY_FORMAT", "format"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstIndexEntryType", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_index_lookup_method_get_type (void)
-{
-  static gsize id = 0;
-  static const GEnumValue values[] = {
-    {C_ENUM (GST_INDEX_LOOKUP_EXACT), "GST_INDEX_LOOKUP_EXACT", "exact"},
-    {C_ENUM (GST_INDEX_LOOKUP_BEFORE), "GST_INDEX_LOOKUP_BEFORE", "before"},
-    {C_ENUM (GST_INDEX_LOOKUP_AFTER), "GST_INDEX_LOOKUP_AFTER", "after"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstIndexLookupMethod", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_assoc_flags_get_type (void)
-{
-  static gsize id = 0;
-  static const GFlagsValue values[] = {
-    {C_FLAGS (GST_ASSOCIATION_FLAG_NONE), "GST_ASSOCIATION_FLAG_NONE", "none"},
-    {C_FLAGS (GST_ASSOCIATION_FLAG_KEY_UNIT), "GST_ASSOCIATION_FLAG_KEY_UNIT",
-        "key-unit"},
-    {C_FLAGS (GST_ASSOCIATION_FLAG_DELTA_UNIT),
-        "GST_ASSOCIATION_FLAG_DELTA_UNIT", "delta-unit"},
-    {C_FLAGS (GST_ASSOCIATION_FLAG_LAST), "GST_ASSOCIATION_FLAG_LAST", "last"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_flags_register_static ("GstAssocFlags", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_index_resolver_method_get_type (void)
-{
-  static gsize id = 0;
-  static const GEnumValue values[] = {
-    {C_ENUM (GST_INDEX_RESOLVER_CUSTOM), "GST_INDEX_RESOLVER_CUSTOM", "custom"},
-    {C_ENUM (GST_INDEX_RESOLVER_GTYPE), "GST_INDEX_RESOLVER_GTYPE", "gtype"},
-    {C_ENUM (GST_INDEX_RESOLVER_PATH), "GST_INDEX_RESOLVER_PATH", "path"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstIndexResolverMethod", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_index_flags_get_type (void)
-{
-  static gsize id = 0;
-  static const GFlagsValue values[] = {
-    {C_FLAGS (GST_INDEX_WRITABLE), "GST_INDEX_WRITABLE", "writable"},
-    {C_FLAGS (GST_INDEX_READABLE), "GST_INDEX_READABLE", "readable"},
-    {C_FLAGS (GST_INDEX_FLAG_LAST), "GST_INDEX_FLAG_LAST", "flag-last"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_flags_register_static ("GstIndexFlags", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
 /* enumerations from "gstinfo.h" */
 GType
 gst_debug_level_get_type (void)
@@ -764,10 +681,10 @@
     {C_ENUM (GST_LEVEL_NONE), "GST_LEVEL_NONE", "none"},
     {C_ENUM (GST_LEVEL_ERROR), "GST_LEVEL_ERROR", "error"},
     {C_ENUM (GST_LEVEL_WARNING), "GST_LEVEL_WARNING", "warning"},
+    {C_ENUM (GST_LEVEL_FIXME), "GST_LEVEL_FIXME", "fixme"},
     {C_ENUM (GST_LEVEL_INFO), "GST_LEVEL_INFO", "info"},
     {C_ENUM (GST_LEVEL_DEBUG), "GST_LEVEL_DEBUG", "debug"},
     {C_ENUM (GST_LEVEL_LOG), "GST_LEVEL_LOG", "log"},
-    {C_ENUM (GST_LEVEL_FIXME), "GST_LEVEL_FIXME", "fixme"},
     {C_ENUM (GST_LEVEL_TRACE), "GST_LEVEL_TRACE", "trace"},
     {C_ENUM (GST_LEVEL_MEMDUMP), "GST_LEVEL_MEMDUMP", "memdump"},
     {C_ENUM (GST_LEVEL_COUNT), "GST_LEVEL_COUNT", "count"},
@@ -899,6 +816,7 @@
     {C_FLAGS (GST_MESSAGE_STEP_START), "GST_MESSAGE_STEP_START", "step-start"},
     {C_FLAGS (GST_MESSAGE_QOS), "GST_MESSAGE_QOS", "qos"},
     {C_FLAGS (GST_MESSAGE_PROGRESS), "GST_MESSAGE_PROGRESS", "progress"},
+    {C_FLAGS (GST_MESSAGE_TOC), "GST_MESSAGE_TOC", "toc"},
     {C_FLAGS (GST_MESSAGE_ANY), "GST_MESSAGE_ANY", "any"},
     {0, NULL, NULL}
   };
@@ -985,6 +903,27 @@
   return (GType) id;
 }
 
+/* enumerations from "gstmeta.h" */
+GType
+gst_meta_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_META_FLAG_NONE), "GST_META_FLAG_NONE", "none"},
+    {C_FLAGS (GST_META_FLAG_READONLY), "GST_META_FLAG_READONLY", "readonly"},
+    {C_FLAGS (GST_META_FLAG_POOLED), "GST_META_FLAG_POOLED", "pooled"},
+    {C_FLAGS (GST_META_FLAG_LAST), "GST_META_FLAG_LAST", "last"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstMetaFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstmemory.h" */
 GType
 gst_memory_flags_get_type (void)
@@ -995,6 +934,10 @@
         "readonly"},
     {C_FLAGS (GST_MEMORY_FLAG_NO_SHARE), "GST_MEMORY_FLAG_NO_SHARE",
         "no-share"},
+    {C_FLAGS (GST_MEMORY_FLAG_ZERO_PREFIXED), "GST_MEMORY_FLAG_ZERO_PREFIXED",
+        "zero-prefixed"},
+    {C_FLAGS (GST_MEMORY_FLAG_ZERO_PADDED), "GST_MEMORY_FLAG_ZERO_PADDED",
+        "zero-padded"},
     {C_FLAGS (GST_MEMORY_FLAG_LAST), "GST_MEMORY_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
@@ -1014,6 +957,7 @@
   static const GFlagsValue values[] = {
     {C_FLAGS (GST_MAP_READ), "GST_MAP_READ", "read"},
     {C_FLAGS (GST_MAP_WRITE), "GST_MAP_WRITE", "write"},
+    {C_FLAGS (GST_MAP_FLAG_LAST), "GST_MAP_FLAG_LAST", "flag-last"},
     {0, NULL, NULL}
   };
 
@@ -1064,6 +1008,25 @@
 }
 
 GType
+gst_pad_mode_get_type (void)
+{
+  static gsize id = 0;
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_PAD_MODE_NONE), "GST_PAD_MODE_NONE", "none"},
+    {C_ENUM (GST_PAD_MODE_PUSH), "GST_PAD_MODE_PUSH", "push"},
+    {C_ENUM (GST_PAD_MODE_PULL), "GST_PAD_MODE_PULL", "pull"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_enum_register_static ("GstPadMode", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
+GType
 gst_pad_link_return_get_type (void)
 {
   static gsize id = 0;
@@ -1099,11 +1062,10 @@
         "custom-success-1"},
     {C_ENUM (GST_FLOW_CUSTOM_SUCCESS), "GST_FLOW_CUSTOM_SUCCESS",
         "custom-success"},
-    {C_ENUM (GST_FLOW_RESEND), "GST_FLOW_RESEND", "resend"},
     {C_ENUM (GST_FLOW_OK), "GST_FLOW_OK", "ok"},
     {C_ENUM (GST_FLOW_NOT_LINKED), "GST_FLOW_NOT_LINKED", "not-linked"},
-    {C_ENUM (GST_FLOW_WRONG_STATE), "GST_FLOW_WRONG_STATE", "wrong-state"},
-    {C_ENUM (GST_FLOW_UNEXPECTED), "GST_FLOW_UNEXPECTED", "unexpected"},
+    {C_ENUM (GST_FLOW_FLUSHING), "GST_FLOW_FLUSHING", "flushing"},
+    {C_ENUM (GST_FLOW_EOS), "GST_FLOW_EOS", "eos"},
     {C_ENUM (GST_FLOW_NOT_NEGOTIATED), "GST_FLOW_NOT_NEGOTIATED",
         "not-negotiated"},
     {C_ENUM (GST_FLOW_ERROR), "GST_FLOW_ERROR", "error"},
@@ -1149,43 +1111,35 @@
 }
 
 GType
-gst_activate_mode_get_type (void)
-{
-  static gsize id = 0;
-  static const GEnumValue values[] = {
-    {C_ENUM (GST_ACTIVATE_NONE), "GST_ACTIVATE_NONE", "none"},
-    {C_ENUM (GST_ACTIVATE_PUSH), "GST_ACTIVATE_PUSH", "push"},
-    {C_ENUM (GST_ACTIVATE_PULL), "GST_ACTIVATE_PULL", "pull"},
-    {0, NULL, NULL}
-  };
-
-  if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstActivateMode", values);
-    g_once_init_leave (&id, tmp);
-  }
-
-  return (GType) id;
-}
-
-GType
-gst_probe_type_get_type (void)
+gst_pad_probe_type_get_type (void)
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_PROBE_TYPE_INVALID), "GST_PROBE_TYPE_INVALID", "invalid"},
-    {C_FLAGS (GST_PROBE_TYPE_IDLE), "GST_PROBE_TYPE_IDLE", "idle"},
-    {C_FLAGS (GST_PROBE_TYPE_BLOCK), "GST_PROBE_TYPE_BLOCK", "block"},
-    {C_FLAGS (GST_PROBE_TYPE_BUFFER), "GST_PROBE_TYPE_BUFFER", "buffer"},
-    {C_FLAGS (GST_PROBE_TYPE_BUFFER_LIST), "GST_PROBE_TYPE_BUFFER_LIST",
+    {C_FLAGS (GST_PAD_PROBE_TYPE_INVALID), "GST_PAD_PROBE_TYPE_INVALID",
+        "invalid"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_IDLE), "GST_PAD_PROBE_TYPE_IDLE", "idle"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_BLOCK), "GST_PAD_PROBE_TYPE_BLOCK", "block"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_BUFFER), "GST_PAD_PROBE_TYPE_BUFFER",
+        "buffer"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_BUFFER_LIST), "GST_PAD_PROBE_TYPE_BUFFER_LIST",
         "buffer-list"},
-    {C_FLAGS (GST_PROBE_TYPE_EVENT), "GST_PROBE_TYPE_EVENT", "event"},
-    {C_FLAGS (GST_PROBE_TYPE_PUSH), "GST_PROBE_TYPE_PUSH", "push"},
-    {C_FLAGS (GST_PROBE_TYPE_PULL), "GST_PROBE_TYPE_PULL", "pull"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM),
+        "GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM", "event-downstream"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_EVENT_UPSTREAM),
+        "GST_PAD_PROBE_TYPE_EVENT_UPSTREAM", "event-upstream"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_EVENT_FLUSH), "GST_PAD_PROBE_TYPE_EVENT_FLUSH",
+        "event-flush"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM),
+        "GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM", "query-downstream"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_QUERY_UPSTREAM),
+        "GST_PAD_PROBE_TYPE_QUERY_UPSTREAM", "query-upstream"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_PUSH), "GST_PAD_PROBE_TYPE_PUSH", "push"},
+    {C_FLAGS (GST_PAD_PROBE_TYPE_PULL), "GST_PAD_PROBE_TYPE_PULL", "pull"},
     {0, NULL, NULL}
   };
 
   if (g_once_init_enter (&id)) {
-    GType tmp = g_flags_register_static ("GstProbeType", values);
+    GType tmp = g_flags_register_static ("GstPadProbeType", values);
     g_once_init_leave (&id, tmp);
   }
 
@@ -1193,19 +1147,19 @@
 }
 
 GType
-gst_probe_return_get_type (void)
+gst_pad_probe_return_get_type (void)
 {
   static gsize id = 0;
   static const GEnumValue values[] = {
-    {C_ENUM (GST_PROBE_DROP), "GST_PROBE_DROP", "drop"},
-    {C_ENUM (GST_PROBE_OK), "GST_PROBE_OK", "ok"},
-    {C_ENUM (GST_PROBE_REMOVE), "GST_PROBE_REMOVE", "remove"},
-    {C_ENUM (GST_PROBE_PASS), "GST_PROBE_PASS", "pass"},
+    {C_ENUM (GST_PAD_PROBE_DROP), "GST_PAD_PROBE_DROP", "drop"},
+    {C_ENUM (GST_PAD_PROBE_OK), "GST_PAD_PROBE_OK", "ok"},
+    {C_ENUM (GST_PAD_PROBE_REMOVE), "GST_PAD_PROBE_REMOVE", "remove"},
+    {C_ENUM (GST_PAD_PROBE_PASS), "GST_PAD_PROBE_PASS", "pass"},
     {0, NULL, NULL}
   };
 
   if (g_once_init_enter (&id)) {
-    GType tmp = g_enum_register_static ("GstProbeReturn", values);
+    GType tmp = g_enum_register_static ("GstPadProbeReturn", values);
     g_once_init_leave (&id, tmp);
   }
 
@@ -1217,15 +1171,22 @@
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_PAD_BLOCKED), "GST_PAD_BLOCKED", "blocked"},
-    {C_FLAGS (GST_PAD_FLUSHING), "GST_PAD_FLUSHING", "flushing"},
-    {C_FLAGS (GST_PAD_IN_GETCAPS), "GST_PAD_IN_GETCAPS", "in-getcaps"},
-    {C_FLAGS (GST_PAD_BLOCKING), "GST_PAD_BLOCKING", "blocking"},
-    {C_FLAGS (GST_PAD_NEED_RECONFIGURE), "GST_PAD_NEED_RECONFIGURE",
+    {C_FLAGS (GST_PAD_FLAG_BLOCKED), "GST_PAD_FLAG_BLOCKED", "blocked"},
+    {C_FLAGS (GST_PAD_FLAG_FLUSHING), "GST_PAD_FLAG_FLUSHING", "flushing"},
+    {C_FLAGS (GST_PAD_FLAG_BLOCKING), "GST_PAD_FLAG_BLOCKING", "blocking"},
+    {C_FLAGS (GST_PAD_FLAG_NEED_PARENT), "GST_PAD_FLAG_NEED_PARENT",
+        "need-parent"},
+    {C_FLAGS (GST_PAD_FLAG_NEED_RECONFIGURE), "GST_PAD_FLAG_NEED_RECONFIGURE",
         "need-reconfigure"},
-    {C_FLAGS (GST_PAD_NEED_EVENTS), "GST_PAD_NEED_EVENTS", "need-events"},
-    {C_FLAGS (GST_PAD_FIXED_CAPS), "GST_PAD_FIXED_CAPS", "fixed-caps"},
-    {C_FLAGS (GST_PAD_FLAG_LAST), "GST_PAD_FLAG_LAST", "flag-last"},
+    {C_FLAGS (GST_PAD_FLAG_PENDING_EVENTS), "GST_PAD_FLAG_PENDING_EVENTS",
+        "pending-events"},
+    {C_FLAGS (GST_PAD_FLAG_FIXED_CAPS), "GST_PAD_FLAG_FIXED_CAPS",
+        "fixed-caps"},
+    {C_FLAGS (GST_PAD_FLAG_PROXY_CAPS), "GST_PAD_FLAG_PROXY_CAPS",
+        "proxy-caps"},
+    {C_FLAGS (GST_PAD_FLAG_PROXY_ALLOCATION), "GST_PAD_FLAG_PROXY_ALLOCATION",
+        "proxy-allocation"},
+    {C_FLAGS (GST_PAD_FLAG_LAST), "GST_PAD_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
 
@@ -1385,11 +1346,32 @@
 
 /* enumerations from "gstquery.h" */
 GType
+gst_query_type_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_QUERY_TYPE_UPSTREAM), "GST_QUERY_TYPE_UPSTREAM", "upstream"},
+    {C_FLAGS (GST_QUERY_TYPE_DOWNSTREAM), "GST_QUERY_TYPE_DOWNSTREAM",
+        "downstream"},
+    {C_FLAGS (GST_QUERY_TYPE_SERIALIZED), "GST_QUERY_TYPE_SERIALIZED",
+        "serialized"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstQueryTypeFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
+GType
 gst_query_type_get_type (void)
 {
   static gsize id = 0;
   static const GEnumValue values[] = {
-    {C_ENUM (GST_QUERY_NONE), "GST_QUERY_NONE", "none"},
+    {C_ENUM (GST_QUERY_UNKNOWN), "GST_QUERY_UNKNOWN", "unknown"},
     {C_ENUM (GST_QUERY_POSITION), "GST_QUERY_POSITION", "position"},
     {C_ENUM (GST_QUERY_DURATION), "GST_QUERY_DURATION", "duration"},
     {C_ENUM (GST_QUERY_LATENCY), "GST_QUERY_LATENCY", "latency"},
@@ -1404,6 +1386,10 @@
     {C_ENUM (GST_QUERY_URI), "GST_QUERY_URI", "uri"},
     {C_ENUM (GST_QUERY_ALLOCATION), "GST_QUERY_ALLOCATION", "allocation"},
     {C_ENUM (GST_QUERY_SCHEDULING), "GST_QUERY_SCHEDULING", "scheduling"},
+    {C_ENUM (GST_QUERY_ACCEPT_CAPS), "GST_QUERY_ACCEPT_CAPS", "accept-caps"},
+    {C_ENUM (GST_QUERY_CAPS), "GST_QUERY_CAPS", "caps"},
+    {C_ENUM (GST_QUERY_DRAIN), "GST_QUERY_DRAIN", "drain"},
+    {C_ENUM (GST_QUERY_TOC), "GST_QUERY_TOC", "toc"},
     {0, NULL, NULL}
   };
 
@@ -1435,6 +1421,26 @@
   return (GType) id;
 }
 
+GType
+gst_scheduling_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_SCHEDULING_FLAG_SEEKABLE), "GST_SCHEDULING_FLAG_SEEKABLE",
+        "seekable"},
+    {C_FLAGS (GST_SCHEDULING_FLAG_SEQUENTIAL), "GST_SCHEDULING_FLAG_SEQUENTIAL",
+        "sequential"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstSchedulingFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstsegment.h" */
 GType
 gst_seek_type_get_type (void)
@@ -1442,7 +1448,6 @@
   static gsize id = 0;
   static const GEnumValue values[] = {
     {C_ENUM (GST_SEEK_TYPE_NONE), "GST_SEEK_TYPE_NONE", "none"},
-    {C_ENUM (GST_SEEK_TYPE_CUR), "GST_SEEK_TYPE_CUR", "cur"},
     {C_ENUM (GST_SEEK_TYPE_SET), "GST_SEEK_TYPE_SET", "set"},
     {C_ENUM (GST_SEEK_TYPE_END), "GST_SEEK_TYPE_END", "end"},
     {0, NULL, NULL}
@@ -1584,21 +1589,21 @@
   return (GType) id;
 }
 
-/* enumerations from "gsttrace.h" */
+/* enumerations from "gsttoc.h" */
 GType
-gst_alloc_trace_flags_get_type (void)
+gst_toc_entry_type_get_type (void)
 {
   static gsize id = 0;
-  static const GFlagsValue values[] = {
-    {C_FLAGS (GST_ALLOC_TRACE_NONE), "GST_ALLOC_TRACE_NONE", "none"},
-    {C_FLAGS (GST_ALLOC_TRACE_LIVE), "GST_ALLOC_TRACE_LIVE", "live"},
-    {C_FLAGS (GST_ALLOC_TRACE_MEM_LIVE), "GST_ALLOC_TRACE_MEM_LIVE",
-        "mem-live"},
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_TOC_ENTRY_TYPE_CHAPTER), "GST_TOC_ENTRY_TYPE_CHAPTER",
+        "chapter"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_EDITION), "GST_TOC_ENTRY_TYPE_EDITION",
+        "edition"},
     {0, NULL, NULL}
   };
 
   if (g_once_init_enter (&id)) {
-    GType tmp = g_flags_register_static ("GstAllocTraceFlags", values);
+    GType tmp = g_enum_register_static ("GstTocEntryType", values);
     g_once_init_leave (&id, tmp);
   }
 
@@ -1631,6 +1636,28 @@
 
 /* enumerations from "gsturi.h" */
 GType
+gst_uri_error_get_type (void)
+{
+  static gsize id = 0;
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_URI_ERROR_BAD_PROTOCOL), "GST_URI_ERROR_BAD_PROTOCOL",
+        "protocol"},
+    {C_ENUM (GST_URI_ERROR_BAD_URI), "GST_URI_ERROR_BAD_URI", "uri"},
+    {C_ENUM (GST_URI_ERROR_BAD_STATE), "GST_URI_ERROR_BAD_STATE", "state"},
+    {C_ENUM (GST_URI_ERROR_BAD_REFERENCE), "GST_URI_ERROR_BAD_REFERENCE",
+        "reference"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_enum_register_static ("GstURIError", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
+GType
 gst_uri_type_get_type (void)
 {
   static gsize id = 0;
diff --git a/win32/common/gstenumtypes.h b/win32/common/gstenumtypes.h
index bce8b6f..d8dcca4 100644
--- a/win32/common/gstenumtypes.h
+++ b/win32/common/gstenumtypes.h
@@ -23,8 +23,8 @@
 #define GST_TYPE_BUFFER_COPY_FLAGS (gst_buffer_copy_flags_get_type())
 
 /* enumerations from "gstbufferpool.h" */
-GType gst_buffer_pool_flags_get_type (void);
-#define GST_TYPE_BUFFER_POOL_FLAGS (gst_buffer_pool_flags_get_type())
+GType gst_buffer_pool_acquire_flags_get_type (void);
+#define GST_TYPE_BUFFER_POOL_ACQUIRE_FLAGS (gst_buffer_pool_acquire_flags_get_type())
 
 /* enumerations from "gstbus.h" */
 GType gst_bus_flags_get_type (void);
@@ -77,25 +77,13 @@
 #define GST_TYPE_EVENT_TYPE (gst_event_type_get_type())
 GType gst_qos_type_get_type (void);
 #define GST_TYPE_QOS_TYPE (gst_qos_type_get_type())
+GType gst_stream_config_flags_get_type (void);
+#define GST_TYPE_STREAM_CONFIG_FLAGS (gst_stream_config_flags_get_type())
 
 /* enumerations from "gstformat.h" */
 GType gst_format_get_type (void);
 #define GST_TYPE_FORMAT (gst_format_get_type())
 
-/* enumerations from "gstindex.h" */
-GType gst_index_certainty_get_type (void);
-#define GST_TYPE_INDEX_CERTAINTY (gst_index_certainty_get_type())
-GType gst_index_entry_type_get_type (void);
-#define GST_TYPE_INDEX_ENTRY_TYPE (gst_index_entry_type_get_type())
-GType gst_index_lookup_method_get_type (void);
-#define GST_TYPE_INDEX_LOOKUP_METHOD (gst_index_lookup_method_get_type())
-GType gst_assoc_flags_get_type (void);
-#define GST_TYPE_ASSOC_FLAGS (gst_assoc_flags_get_type())
-GType gst_index_resolver_method_get_type (void);
-#define GST_TYPE_INDEX_RESOLVER_METHOD (gst_index_resolver_method_get_type())
-GType gst_index_flags_get_type (void);
-#define GST_TYPE_INDEX_FLAGS (gst_index_flags_get_type())
-
 /* enumerations from "gstinfo.h" */
 GType gst_debug_level_get_type (void);
 #define GST_TYPE_DEBUG_LEVEL (gst_debug_level_get_type())
@@ -118,6 +106,10 @@
 GType gst_progress_type_get_type (void);
 #define GST_TYPE_PROGRESS_TYPE (gst_progress_type_get_type())
 
+/* enumerations from "gstmeta.h" */
+GType gst_meta_flags_get_type (void);
+#define GST_TYPE_META_FLAGS (gst_meta_flags_get_type())
+
 /* enumerations from "gstmemory.h" */
 GType gst_memory_flags_get_type (void);
 #define GST_TYPE_MEMORY_FLAGS (gst_memory_flags_get_type())
@@ -131,18 +123,18 @@
 /* enumerations from "gstpad.h" */
 GType gst_pad_direction_get_type (void);
 #define GST_TYPE_PAD_DIRECTION (gst_pad_direction_get_type())
+GType gst_pad_mode_get_type (void);
+#define GST_TYPE_PAD_MODE (gst_pad_mode_get_type())
 GType gst_pad_link_return_get_type (void);
 #define GST_TYPE_PAD_LINK_RETURN (gst_pad_link_return_get_type())
 GType gst_flow_return_get_type (void);
 #define GST_TYPE_FLOW_RETURN (gst_flow_return_get_type())
 GType gst_pad_link_check_get_type (void);
 #define GST_TYPE_PAD_LINK_CHECK (gst_pad_link_check_get_type())
-GType gst_activate_mode_get_type (void);
-#define GST_TYPE_ACTIVATE_MODE (gst_activate_mode_get_type())
-GType gst_probe_type_get_type (void);
-#define GST_TYPE_PROBE_TYPE (gst_probe_type_get_type())
-GType gst_probe_return_get_type (void);
-#define GST_TYPE_PROBE_RETURN (gst_probe_return_get_type())
+GType gst_pad_probe_type_get_type (void);
+#define GST_TYPE_PAD_PROBE_TYPE (gst_pad_probe_type_get_type())
+GType gst_pad_probe_return_get_type (void);
+#define GST_TYPE_PAD_PROBE_RETURN (gst_pad_probe_return_get_type())
 GType gst_pad_flags_get_type (void);
 #define GST_TYPE_PAD_FLAGS (gst_pad_flags_get_type())
 
@@ -169,10 +161,14 @@
 #define GST_TYPE_RANK (gst_rank_get_type())
 
 /* enumerations from "gstquery.h" */
+GType gst_query_type_flags_get_type (void);
+#define GST_TYPE_QUERY_TYPE_FLAGS (gst_query_type_flags_get_type())
 GType gst_query_type_get_type (void);
 #define GST_TYPE_QUERY_TYPE (gst_query_type_get_type())
 GType gst_buffering_mode_get_type (void);
 #define GST_TYPE_BUFFERING_MODE (gst_buffering_mode_get_type())
+GType gst_scheduling_flags_get_type (void);
+#define GST_TYPE_SCHEDULING_FLAGS (gst_scheduling_flags_get_type())
 
 /* enumerations from "gstsegment.h" */
 GType gst_seek_type_get_type (void);
@@ -196,15 +192,17 @@
 GType gst_task_state_get_type (void);
 #define GST_TYPE_TASK_STATE (gst_task_state_get_type())
 
-/* enumerations from "gsttrace.h" */
-GType gst_alloc_trace_flags_get_type (void);
-#define GST_TYPE_ALLOC_TRACE_FLAGS (gst_alloc_trace_flags_get_type())
+/* enumerations from "gsttoc.h" */
+GType gst_toc_entry_type_get_type (void);
+#define GST_TYPE_TOC_ENTRY_TYPE (gst_toc_entry_type_get_type())
 
 /* enumerations from "gsttypefind.h" */
 GType gst_type_find_probability_get_type (void);
 #define GST_TYPE_TYPE_FIND_PROBABILITY (gst_type_find_probability_get_type())
 
 /* enumerations from "gsturi.h" */
+GType gst_uri_error_get_type (void);
+#define GST_TYPE_URI_ERROR (gst_uri_error_get_type())
 GType gst_uri_type_get_type (void);
 #define GST_TYPE_URI_TYPE (gst_uri_type_get_type())
 
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index 32c5bb0..312fa11 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -45,19 +45,19 @@
  *
  * The major version of GStreamer at compile time:
  */
-#define GST_VERSION_MAJOR (0)
+#define GST_VERSION_MAJOR (1)
 /**
  * GST_VERSION_MINOR:
  *
  * The minor version of GStreamer at compile time:
  */
-#define GST_VERSION_MINOR (11)
+#define GST_VERSION_MINOR (0)
 /**
  * GST_VERSION_MICRO:
  *
  * The micro version of GStreamer at compile time:
  */
-#define GST_VERSION_MICRO (1)
+#define GST_VERSION_MICRO (0)
 /**
  * GST_VERSION_NANO:
  *
diff --git a/win32/common/libgstbase.def b/win32/common/libgstbase.def
index 3415da2..fcd4666 100644
--- a/win32/common/libgstbase.def
+++ b/win32/common/libgstbase.def
@@ -9,7 +9,8 @@
 	gst_adapter_masked_scan_uint32
 	gst_adapter_masked_scan_uint32_peek
 	gst_adapter_new
-	gst_adapter_prev_timestamp
+	gst_adapter_prev_dts
+	gst_adapter_prev_pts
 	gst_adapter_push
 	gst_adapter_take
 	gst_adapter_take_buffer
@@ -17,6 +18,7 @@
 	gst_adapter_unmap
 	gst_base_parse_add_index_entry
 	gst_base_parse_convert_default
+	gst_base_parse_finish_frame
 	gst_base_parse_frame_free
 	gst_base_parse_frame_get_type
 	gst_base_parse_frame_init
@@ -33,7 +35,7 @@
 	gst_base_parse_set_syncable
 	gst_base_sink_do_preroll
 	gst_base_sink_get_blocksize
-	gst_base_sink_get_last_buffer
+	gst_base_sink_get_last_sample
 	gst_base_sink_get_latency
 	gst_base_sink_get_max_lateness
 	gst_base_sink_get_render_delay
@@ -42,12 +44,12 @@
 	gst_base_sink_get_ts_offset
 	gst_base_sink_get_type
 	gst_base_sink_is_async_enabled
-	gst_base_sink_is_last_buffer_enabled
+	gst_base_sink_is_last_sample_enabled
 	gst_base_sink_is_qos_enabled
 	gst_base_sink_query_latency
 	gst_base_sink_set_async_enabled
 	gst_base_sink_set_blocksize
-	gst_base_sink_set_last_buffer_enabled
+	gst_base_sink_set_last_sample_enabled
 	gst_base_sink_set_max_lateness
 	gst_base_sink_set_qos_enabled
 	gst_base_sink_set_render_delay
@@ -60,26 +62,30 @@
 	gst_base_src_get_blocksize
 	gst_base_src_get_do_timestamp
 	gst_base_src_get_type
+	gst_base_src_is_async
 	gst_base_src_is_live
 	gst_base_src_new_seamless_segment
 	gst_base_src_query_latency
+	gst_base_src_set_async
 	gst_base_src_set_blocksize
 	gst_base_src_set_caps
 	gst_base_src_set_do_timestamp
 	gst_base_src_set_dynamic_size
 	gst_base_src_set_format
 	gst_base_src_set_live
+	gst_base_src_start_complete
+	gst_base_src_start_wait
 	gst_base_src_wait_playing
 	gst_base_transform_get_type
 	gst_base_transform_is_in_place
 	gst_base_transform_is_passthrough
 	gst_base_transform_is_qos_enabled
-	gst_base_transform_reconfigure
+	gst_base_transform_reconfigure_sink
+	gst_base_transform_reconfigure_src
 	gst_base_transform_set_gap_aware
 	gst_base_transform_set_in_place
 	gst_base_transform_set_passthrough
 	gst_base_transform_set_qos_enabled
-	gst_base_transform_suggest
 	gst_base_transform_update_qos
 	gst_bit_reader_free
 	gst_bit_reader_get_bits_uint16
@@ -203,41 +209,33 @@
 	gst_byte_writer_reset
 	gst_byte_writer_reset_and_get_buffer
 	gst_byte_writer_reset_and_get_data
-	gst_collect_pads_add_pad
-	gst_collect_pads_add_pad_full
-	gst_collect_pads_available
-	gst_collect_pads_collect
-	gst_collect_pads_collect_range
-	gst_collect_pads_flush
-	gst_collect_pads_get_type
-	gst_collect_pads_is_active
-	gst_collect_pads_new
-	gst_collect_pads_peek
-	gst_collect_pads_pop
-	gst_collect_pads_read_buffer
-	gst_collect_pads_remove_pad
-	gst_collect_pads_set_clip_function
-	gst_collect_pads_set_flushing
-	gst_collect_pads_set_function
-	gst_collect_pads_start
-	gst_collect_pads_stop
-	gst_collect_pads_take_buffer
-	gst_data_queue_drop_head
-	gst_data_queue_flush
-	gst_data_queue_get_level
-	gst_data_queue_get_type
-	gst_data_queue_is_empty
-	gst_data_queue_is_full
-	gst_data_queue_limits_changed
-	gst_data_queue_new
-	gst_data_queue_new_full
-	gst_data_queue_pop
-	gst_data_queue_push
-	gst_data_queue_set_flushing
+	gst_collect_pads2_add_pad
+	gst_collect_pads2_add_pad_full
+	gst_collect_pads2_available
+	gst_collect_pads2_clip_running_time
+	gst_collect_pads2_collect
+	gst_collect_pads2_collect_range
+	gst_collect_pads2_flush
+	gst_collect_pads2_get_type
+	gst_collect_pads2_is_active
+	gst_collect_pads2_new
+	gst_collect_pads2_peek
+	gst_collect_pads2_pop
+	gst_collect_pads2_read_buffer
+	gst_collect_pads2_remove_pad
+	gst_collect_pads2_set_buffer_function
+	gst_collect_pads2_set_clip_function
+	gst_collect_pads2_set_compare_function
+	gst_collect_pads2_set_event_function
+	gst_collect_pads2_set_flushing
+	gst_collect_pads2_set_function
+	gst_collect_pads2_set_waiting
+	gst_collect_pads2_start
+	gst_collect_pads2_stop
+	gst_collect_pads2_take_buffer
 	gst_push_src_get_type
 	gst_type_find_helper
 	gst_type_find_helper_for_buffer
 	gst_type_find_helper_for_data
 	gst_type_find_helper_for_extension
 	gst_type_find_helper_get_range
-	gst_type_find_helper_get_range_ext
diff --git a/win32/common/libgstcontroller.def b/win32/common/libgstcontroller.def
index 1a5f76f..92d5abb 100644
--- a/win32/common/libgstcontroller.def
+++ b/win32/common/libgstcontroller.def
@@ -1,46 +1,22 @@
 EXPORTS
-	gst_control_source_bind
-	gst_control_source_get_type
-	gst_control_source_get_value
-	gst_control_source_get_value_array
-	gst_controller_get
-	gst_controller_get_control_source
-	gst_controller_get_type
-	gst_controller_get_value_array
-	gst_controller_get_value_arrays
-	gst_controller_init
-	gst_controller_new
-	gst_controller_new_list
-	gst_controller_new_valist
-	gst_controller_remove_properties
-	gst_controller_remove_properties_list
-	gst_controller_remove_properties_valist
-	gst_controller_set_control_source
-	gst_controller_set_disabled
-	gst_controller_set_property_disabled
-	gst_controller_suggest_next_sync
-	gst_controller_sync_values
-	gst_interpolation_control_source_get_all
-	gst_interpolation_control_source_get_count
+	gst_argb_control_binding_get_type
+	gst_argb_control_binding_new
+	gst_direct_control_binding_get_type
+	gst_direct_control_binding_new
 	gst_interpolation_control_source_get_type
 	gst_interpolation_control_source_new
-	gst_interpolation_control_source_set
-	gst_interpolation_control_source_set_from_list
-	gst_interpolation_control_source_set_interpolation_mode
-	gst_interpolation_control_source_unset
-	gst_interpolation_control_source_unset_all
+	gst_interpolation_mode_get_type
 	gst_lfo_control_source_get_type
 	gst_lfo_control_source_new
 	gst_lfo_waveform_get_type
-	gst_object_control_properties
-	gst_object_get_control_rate
-	gst_object_get_control_source
-	gst_object_get_controller
-	gst_object_get_value_array
-	gst_object_get_value_arrays
-	gst_object_set_control_rate
-	gst_object_set_control_source
-	gst_object_set_controller
-	gst_object_suggest_next_sync
-	gst_object_sync_values
-	gst_object_uncontrol_properties
+	gst_timed_value_control_invalidate_cache
+	gst_timed_value_control_source_find_control_point_iter
+	gst_timed_value_control_source_get_all
+	gst_timed_value_control_source_get_count
+	gst_timed_value_control_source_get_type
+	gst_timed_value_control_source_set
+	gst_timed_value_control_source_set_from_list
+	gst_timed_value_control_source_unset
+	gst_timed_value_control_source_unset_all
+	gst_trigger_control_source_get_type
+	gst_trigger_control_source_new
diff --git a/win32/common/libgstdataprotocol.def b/win32/common/libgstdataprotocol.def
deleted file mode 100644
index e098a25..0000000
--- a/win32/common/libgstdataprotocol.def
+++ /dev/null
@@ -1,15 +0,0 @@
-EXPORTS
-	gst_dp_buffer_from_header
-	gst_dp_caps_from_packet
-	gst_dp_crc
-	gst_dp_dump_byte_array
-	gst_dp_event_from_packet
-	gst_dp_header_payload_length
-	gst_dp_header_payload_type
-	gst_dp_init
-	gst_dp_packetizer_free
-	gst_dp_packetizer_new
-	gst_dp_validate_header
-	gst_dp_validate_packet
-	gst_dp_validate_payload
-	gst_dp_version_get_type
diff --git a/win32/common/libgstnet.def b/win32/common/libgstnet.def
index 859ffeb..42c28ba 100644
--- a/win32/common/libgstnet.def
+++ b/win32/common/libgstnet.def
@@ -1,4 +1,7 @@
 EXPORTS
+	gst_buffer_add_net_address_meta
+	gst_net_address_meta_api_get_type
+	gst_net_address_meta_get_info
 	gst_net_client_clock_get_type
 	gst_net_client_clock_new
 	gst_net_time_packet_new
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index aceee7e..f7fba34 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -1,6 +1,4 @@
 EXPORTS
-	GST_CAT_AUTOPLUG DATA
-	GST_CAT_AUTOPLUG_ATTEMPT DATA
 	GST_CAT_BUFFER DATA
 	GST_CAT_BUFFER_LIST DATA
 	GST_CAT_BUS DATA
@@ -12,7 +10,9 @@
 	GST_CAT_ERROR_SYSTEM DATA
 	GST_CAT_EVENT DATA
 	GST_CAT_GST_INIT DATA
+	GST_CAT_MEMORY DATA
 	GST_CAT_MESSAGE DATA
+	GST_CAT_META DATA
 	GST_CAT_NEGOTIATION DATA
 	GST_CAT_PADS DATA
 	GST_CAT_PARAMS DATA
@@ -29,45 +29,40 @@
 	GST_CAT_SCHEDULING DATA
 	GST_CAT_SIGNAL DATA
 	GST_CAT_STATES DATA
-	GST_CAT_TYPES DATA
-	__gst_debug_enabled DATA
-	__gst_debug_min DATA
-	_gst_alloc_trace_register
 	_gst_buffer_list_type DATA
 	_gst_buffer_type DATA
+	_gst_caps_any DATA
+	_gst_caps_none DATA
 	_gst_caps_type DATA
-	_gst_debug_bin_to_dot_file
-	_gst_debug_bin_to_dot_file_with_ts
 	_gst_debug_category_new
 	_gst_debug_dump_mem
+	_gst_debug_enabled DATA
 	_gst_debug_get_category
+	_gst_debug_min DATA
 	_gst_debug_nameof_funcptr
 	_gst_debug_register_funcptr
 	_gst_disable_registry_cache DATA
 	_gst_element_error_printf
-	_gst_elementclass_factory DATA
 	_gst_event_type DATA
+	_gst_meta_tag_memory DATA
+	_gst_meta_transform_copy DATA
 	_gst_plugin_loader_client_run
+	_gst_sample_type DATA
 	_gst_structure_type DATA
-	_gst_trace_add_entry
 	_gst_trace_mutex DATA
-	_gst_trace_on DATA
-	gst_activate_mode_get_type
-	gst_alloc_trace_available
-	gst_alloc_trace_flags_get_type
-	gst_alloc_trace_get
-	gst_alloc_trace_list
-	gst_alloc_trace_live_all
-	gst_alloc_trace_print
-	gst_alloc_trace_print_all
-	gst_alloc_trace_print_live
-	gst_alloc_trace_set_flags
-	gst_alloc_trace_set_flags_all
+	gst_allocation_params_copy
+	gst_allocation_params_free
+	gst_allocation_params_get_type
+	gst_allocation_params_init
 	gst_allocator_alloc
 	gst_allocator_find
+	gst_allocator_get_memory_type
+	gst_allocator_get_type
+	gst_allocator_new
+	gst_allocator_ref
 	gst_allocator_register
 	gst_allocator_set_default
-	gst_assoc_flags_get_type
+	gst_allocator_unref
 	gst_atomic_queue_length
 	gst_atomic_queue_new
 	gst_atomic_queue_peek
@@ -93,31 +88,34 @@
 	gst_bin_recalculate_latency
 	gst_bin_remove
 	gst_bin_remove_many
+	gst_bitmask_get_type
 	gst_buffer_add_meta
+	gst_buffer_append
 	gst_buffer_copy_flags_get_type
 	gst_buffer_copy_into
 	gst_buffer_copy_region
 	gst_buffer_extract
 	gst_buffer_fill
+	gst_buffer_find_memory
 	gst_buffer_flags_get_type
+	gst_buffer_foreach_meta
+	gst_buffer_get_memory_range
 	gst_buffer_get_meta
-	gst_buffer_get_sizes
+	gst_buffer_get_sizes_range
 	gst_buffer_get_type
-	gst_buffer_is_span_fast
+	gst_buffer_insert_memory
 	gst_buffer_iterate_meta
-	gst_buffer_join
 	gst_buffer_list_foreach
 	gst_buffer_list_get
 	gst_buffer_list_get_type
 	gst_buffer_list_insert
-	gst_buffer_list_len
+	gst_buffer_list_length
 	gst_buffer_list_new
+	gst_buffer_list_new_sized
 	gst_buffer_list_remove
-	gst_buffer_list_sized_new
-	gst_buffer_map
+	gst_buffer_map_range
 	gst_buffer_memcmp
 	gst_buffer_memset
-	gst_buffer_merge
 	gst_buffer_n_memory
 	gst_buffer_new
 	gst_buffer_new_allocate
@@ -125,13 +123,15 @@
 	gst_buffer_new_wrapped_full
 	gst_buffer_peek_memory
 	gst_buffer_pool_acquire_buffer
+	gst_buffer_pool_acquire_flags_get_type
 	gst_buffer_pool_config_add_option
-	gst_buffer_pool_config_get
+	gst_buffer_pool_config_get_allocator
 	gst_buffer_pool_config_get_option
+	gst_buffer_pool_config_get_params
 	gst_buffer_pool_config_has_option
 	gst_buffer_pool_config_n_options
-	gst_buffer_pool_config_set
-	gst_buffer_pool_flags_get_type
+	gst_buffer_pool_config_set_allocator
+	gst_buffer_pool_config_set_params
 	gst_buffer_pool_get_config
 	gst_buffer_pool_get_options
 	gst_buffer_pool_get_type
@@ -143,9 +143,8 @@
 	gst_buffer_pool_set_config
 	gst_buffer_remove_memory_range
 	gst_buffer_remove_meta
-	gst_buffer_resize
-	gst_buffer_span
-	gst_buffer_take_memory
+	gst_buffer_replace_memory_range
+	gst_buffer_resize_range
 	gst_buffer_unmap
 	gst_buffering_mode_get_type
 	gst_bus_add_signal_watch
@@ -176,7 +175,6 @@
 	gst_caps_append_structure
 	gst_caps_can_intersect
 	gst_caps_copy_nth
-	gst_caps_do_simplify
 	gst_caps_fixate
 	gst_caps_flags_get_type
 	gst_caps_from_string
@@ -192,12 +190,14 @@
 	gst_caps_is_equal
 	gst_caps_is_equal_fixed
 	gst_caps_is_fixed
+	gst_caps_is_strictly_equal
 	gst_caps_is_subset
 	gst_caps_is_subset_structure
 	gst_caps_merge
 	gst_caps_merge_structure
 	gst_caps_new_any
 	gst_caps_new_empty
+	gst_caps_new_empty_simple
 	gst_caps_new_full
 	gst_caps_new_full_valist
 	gst_caps_new_simple
@@ -206,11 +206,11 @@
 	gst_caps_set_simple
 	gst_caps_set_simple_valist
 	gst_caps_set_value
+	gst_caps_simplify
 	gst_caps_steal_structure
 	gst_caps_subtract
 	gst_caps_to_string
 	gst_caps_truncate
-	gst_caps_union
 	gst_child_proxy_child_added
 	gst_child_proxy_child_removed
 	gst_child_proxy_get
@@ -233,6 +233,7 @@
 	gst_clock_get_master
 	gst_clock_get_resolution
 	gst_clock_get_time
+	gst_clock_get_timeout
 	gst_clock_get_type
 	gst_clock_id_compare_func
 	gst_clock_id_get_time
@@ -249,12 +250,21 @@
 	gst_clock_set_calibration
 	gst_clock_set_master
 	gst_clock_set_resolution
+	gst_clock_set_timeout
 	gst_clock_single_shot_id_reinit
 	gst_clock_type_get_type
 	gst_clock_unadjust_unlocked
+	gst_control_binding_get_type
+	gst_control_binding_get_value
+	gst_control_binding_get_value_array
+	gst_control_binding_is_disabled
+	gst_control_binding_set_disabled
+	gst_control_binding_sync_values
+	gst_control_source_get_type
+	gst_control_source_get_value
+	gst_control_source_get_value_array
 	gst_core_error_get_type
 	gst_core_error_quark
-	gst_date_get_type
 	gst_date_time_get_day
 	gst_date_time_get_hour
 	gst_date_time_get_microsecond
@@ -273,6 +283,8 @@
 	gst_date_time_ref
 	gst_date_time_unref
 	gst_debug_add_log_function
+	gst_debug_bin_to_dot_file
+	gst_debug_bin_to_dot_file_with_ts
 	gst_debug_category_free
 	gst_debug_category_get_color
 	gst_debug_category_get_description
@@ -302,7 +314,6 @@
 	gst_debug_set_default_threshold
 	gst_debug_set_threshold_for_name
 	gst_debug_unset_threshold_for_name
-	gst_default_registry_check_feature_version
 	gst_deinit
 	gst_double_range_get_type
 	gst_element_abort_state
@@ -310,11 +321,12 @@
 	gst_element_change_state
 	gst_element_class_add_metadata
 	gst_element_class_add_pad_template
+	gst_element_class_add_static_metadata
 	gst_element_class_get_metadata
 	gst_element_class_get_pad_template
 	gst_element_class_get_pad_template_list
-	gst_element_class_install_std_props
 	gst_element_class_set_metadata
+	gst_element_class_set_static_metadata
 	gst_element_continue_state
 	gst_element_create_all_pads
 	gst_element_factory_can_sink_all_caps
@@ -336,22 +348,17 @@
 	gst_element_factory_list_is_type
 	gst_element_factory_make
 	gst_element_flags_get_type
-	gst_element_found_tags
-	gst_element_found_tags_for_pad
 	gst_element_get_base_time
 	gst_element_get_bus
 	gst_element_get_clock
 	gst_element_get_compatible_pad
 	gst_element_get_compatible_pad_template
 	gst_element_get_factory
-	gst_element_get_index
-	gst_element_get_query_types
 	gst_element_get_request_pad
 	gst_element_get_start_time
 	gst_element_get_state
 	gst_element_get_static_pad
 	gst_element_get_type
-	gst_element_is_indexable
 	gst_element_is_locked_state
 	gst_element_iterate_pads
 	gst_element_iterate_sink_pads
@@ -368,7 +375,6 @@
 	gst_element_no_more_pads
 	gst_element_post_message
 	gst_element_provide_clock
-	gst_element_provides_clock
 	gst_element_query
 	gst_element_query_convert
 	gst_element_query_duration
@@ -377,14 +383,12 @@
 	gst_element_release_request_pad
 	gst_element_remove_pad
 	gst_element_request_pad
-	gst_element_requires_clock
 	gst_element_seek
 	gst_element_seek_simple
 	gst_element_send_event
 	gst_element_set_base_time
 	gst_element_set_bus
 	gst_element_set_clock
-	gst_element_set_index
 	gst_element_set_locked_state
 	gst_element_set_start_time
 	gst_element_set_state
@@ -395,7 +399,9 @@
 	gst_element_unlink_many
 	gst_element_unlink_pads
 	gst_error_get_message
+	gst_event_add_stream_config_header
 	gst_event_copy_segment
+	gst_event_get_n_stream_config_headers
 	gst_event_get_seqnum
 	gst_event_get_structure
 	gst_event_get_type
@@ -406,6 +412,7 @@
 	gst_event_new_eos
 	gst_event_new_flush_start
 	gst_event_new_flush_stop
+	gst_event_new_gap
 	gst_event_new_latency
 	gst_event_new_navigation
 	gst_event_new_qos
@@ -414,18 +421,29 @@
 	gst_event_new_segment
 	gst_event_new_sink_message
 	gst_event_new_step
+	gst_event_new_stream_config
+	gst_event_new_stream_start
 	gst_event_new_tag
+	gst_event_new_toc
+	gst_event_new_toc_select
 	gst_event_parse_buffer_size
 	gst_event_parse_caps
 	gst_event_parse_flush_stop
+	gst_event_parse_gap
 	gst_event_parse_latency
+	gst_event_parse_nth_stream_config_header
 	gst_event_parse_qos
 	gst_event_parse_seek
 	gst_event_parse_segment
 	gst_event_parse_sink_message
 	gst_event_parse_step
+	gst_event_parse_stream_config
+	gst_event_parse_stream_config_setup_data
 	gst_event_parse_tag
+	gst_event_parse_toc
+	gst_event_parse_toc_select
 	gst_event_set_seqnum
+	gst_event_set_stream_config_setup_data
 	gst_event_type_flags_get_type
 	gst_event_type_get_flags
 	gst_event_type_get_name
@@ -433,7 +451,6 @@
 	gst_event_type_to_quark
 	gst_event_writable_structure
 	gst_filename_to_uri
-	gst_filter_run
 	gst_flow_get_name
 	gst_flow_return_get_type
 	gst_flow_to_quark
@@ -447,14 +464,11 @@
 	gst_formats_contains
 	gst_fraction_get_type
 	gst_fraction_range_get_type
-	gst_g_error_get_type
-	gst_ghost_pad_activate_pull_default
-	gst_ghost_pad_activate_push_default
+	gst_ghost_pad_activate_mode_default
 	gst_ghost_pad_construct
 	gst_ghost_pad_get_target
 	gst_ghost_pad_get_type
-	gst_ghost_pad_internal_activate_pull_default
-	gst_ghost_pad_internal_activate_push_default
+	gst_ghost_pad_internal_activate_mode_default
 	gst_ghost_pad_link_default
 	gst_ghost_pad_new
 	gst_ghost_pad_new_from_template
@@ -462,41 +476,6 @@
 	gst_ghost_pad_new_no_target_from_template
 	gst_ghost_pad_set_target
 	gst_ghost_pad_unlink_default
-	gst_index_add_association
-	gst_index_add_associationv
-	gst_index_add_format
-	gst_index_add_id
-	gst_index_add_object
-	gst_index_certainty_get_type
-	gst_index_commit
-	gst_index_entry_assoc_map
-	gst_index_entry_copy
-	gst_index_entry_free
-	gst_index_entry_get_type
-	gst_index_entry_type_get_type
-	gst_index_factory_create
-	gst_index_factory_destroy
-	gst_index_factory_find
-	gst_index_factory_get_type
-	gst_index_factory_make
-	gst_index_factory_new
-	gst_index_flags_get_type
-	gst_index_get_assoc_entry
-	gst_index_get_assoc_entry_full
-	gst_index_get_certainty
-	gst_index_get_group
-	gst_index_get_type
-	gst_index_get_writer_id
-	gst_index_lookup_method_get_type
-	gst_index_new
-	gst_index_new_group
-	gst_index_resolver_method_get_type
-	gst_index_set_certainty
-	gst_index_set_filter
-	gst_index_set_filter_full
-	gst_index_set_group
-	gst_index_set_resolver
-	gst_index_set_resolver_full
 	gst_init
 	gst_init_check
 	gst_init_get_option_group
@@ -522,28 +501,14 @@
 	gst_library_error_get_type
 	gst_library_error_quark
 	gst_map_flags_get_type
-	gst_marshal_BOOLEAN__BOXED
-	gst_marshal_BOOLEAN__POINTER
-	gst_marshal_BOOLEAN__VOID
-	gst_marshal_BOXED__BOXED
-	gst_marshal_POINTER__POINTER
-	gst_marshal_VOID__BOXED_OBJECT
-	gst_marshal_VOID__INT64
-	gst_marshal_VOID__INT_INT
-	gst_marshal_VOID__OBJECT_BOXED
-	gst_marshal_VOID__OBJECT_BOXED_STRING
-	gst_marshal_VOID__OBJECT_OBJECT
-	gst_marshal_VOID__OBJECT_OBJECT_STRING
-	gst_marshal_VOID__OBJECT_PARAM
-	gst_marshal_VOID__OBJECT_POINTER
-	gst_marshal_VOID__OBJECT_STRING
-	gst_marshal_VOID__POINTER_OBJECT
-	gst_marshal_VOID__UINT_BOXED
 	gst_memory_alignment DATA
 	gst_memory_copy
 	gst_memory_flags_get_type
 	gst_memory_get_sizes
+	gst_memory_get_type
+	gst_memory_is_exclusive
 	gst_memory_is_span
+	gst_memory_make_mapped
 	gst_memory_map
 	gst_memory_new_wrapped
 	gst_memory_ref
@@ -582,6 +547,7 @@
 	gst_message_new_stream_status
 	gst_message_new_structure_change
 	gst_message_new_tag
+	gst_message_new_toc
 	gst_message_new_warning
 	gst_message_parse_async_done
 	gst_message_parse_buffering
@@ -605,6 +571,7 @@
 	gst_message_parse_stream_status
 	gst_message_parse_structure_change
 	gst_message_parse_tag
+	gst_message_parse_toc
 	gst_message_parse_warning
 	gst_message_set_buffering_stats
 	gst_message_set_qos_stats
@@ -614,9 +581,11 @@
 	gst_message_type_get_name
 	gst_message_type_get_type
 	gst_message_type_to_quark
+	gst_meta_api_type_has_tag
+	gst_meta_api_type_register
+	gst_meta_flags_get_type
 	gst_meta_get_info
 	gst_meta_register
-	gst_meta_timing_get_info
 	gst_mini_object_copy
 	gst_mini_object_flags_get_type
 	gst_mini_object_init
@@ -629,25 +598,35 @@
 	gst_mini_object_unref
 	gst_mini_object_weak_ref
 	gst_mini_object_weak_unref
+	gst_object_add_control_binding
 	gst_object_check_uniqueness
 	gst_object_default_deep_notify
 	gst_object_default_error
 	gst_object_flags_get_type
+	gst_object_get_control_binding
+	gst_object_get_control_rate
 	gst_object_get_name
 	gst_object_get_parent
 	gst_object_get_path_string
 	gst_object_get_type
+	gst_object_get_value
+	gst_object_get_value_array
+	gst_object_has_active_control_bindings
 	gst_object_has_ancestor
 	gst_object_ref
 	gst_object_ref_sink
+	gst_object_remove_control_binding
 	gst_object_replace
+	gst_object_set_control_binding_disabled
+	gst_object_set_control_bindings_disabled
+	gst_object_set_control_rate
 	gst_object_set_name
 	gst_object_set_parent
+	gst_object_suggest_next_sync
+	gst_object_sync_values
 	gst_object_unparent
 	gst_object_unref
-	gst_pad_accept_caps
-	gst_pad_activate_pull
-	gst_pad_activate_push
+	gst_pad_activate_mode
 	gst_pad_add_probe
 	gst_pad_can_link
 	gst_pad_chain
@@ -655,11 +634,9 @@
 	gst_pad_check_reconfigure
 	gst_pad_direction_get_type
 	gst_pad_event_default
-	gst_pad_fixate_caps
 	gst_pad_flags_get_type
 	gst_pad_forward
 	gst_pad_get_allowed_caps
-	gst_pad_get_caps
 	gst_pad_get_current_caps
 	gst_pad_get_direction
 	gst_pad_get_element_private
@@ -668,8 +645,6 @@
 	gst_pad_get_pad_template_caps
 	gst_pad_get_parent_element
 	gst_pad_get_peer
-	gst_pad_get_query_types
-	gst_pad_get_query_types_default
 	gst_pad_get_range
 	gst_pad_get_sticky_event
 	gst_pad_get_type
@@ -685,48 +660,49 @@
 	gst_pad_link_full
 	gst_pad_link_return_get_type
 	gst_pad_mark_reconfigure
+	gst_pad_mode_get_type
 	gst_pad_new
 	gst_pad_new_from_static_template
 	gst_pad_new_from_template
 	gst_pad_pause_task
-	gst_pad_peer_accept_caps
-	gst_pad_peer_get_caps
 	gst_pad_peer_query
+	gst_pad_peer_query_accept_caps
+	gst_pad_peer_query_caps
+	gst_pad_peer_query_convert
+	gst_pad_peer_query_duration
+	gst_pad_peer_query_position
 	gst_pad_presence_get_type
-	gst_pad_proxy_getcaps
+	gst_pad_probe_return_get_type
+	gst_pad_probe_type_get_type
+	gst_pad_proxy_query_accept_caps
+	gst_pad_proxy_query_caps
 	gst_pad_pull_range
 	gst_pad_push
 	gst_pad_push_event
 	gst_pad_push_list
 	gst_pad_query
+	gst_pad_query_accept_caps
+	gst_pad_query_caps
 	gst_pad_query_convert
 	gst_pad_query_default
 	gst_pad_query_duration
-	gst_pad_query_peer_convert
-	gst_pad_query_peer_duration
-	gst_pad_query_peer_position
 	gst_pad_query_position
 	gst_pad_remove_probe
 	gst_pad_send_event
-	gst_pad_set_acceptcaps_function
-	gst_pad_set_activate_function
-	gst_pad_set_activatepull_function
-	gst_pad_set_activatepush_function
+	gst_pad_set_activate_function_full
+	gst_pad_set_activatemode_function_full
 	gst_pad_set_active
 	gst_pad_set_caps
-	gst_pad_set_chain_function
-	gst_pad_set_chain_list_function
+	gst_pad_set_chain_function_full
+	gst_pad_set_chain_list_function_full
 	gst_pad_set_element_private
-	gst_pad_set_event_function
-	gst_pad_set_fixatecaps_function
-	gst_pad_set_getcaps_function
-	gst_pad_set_getrange_function
-	gst_pad_set_iterate_internal_links_function
-	gst_pad_set_link_function
+	gst_pad_set_event_function_full
+	gst_pad_set_getrange_function_full
+	gst_pad_set_iterate_internal_links_function_full
+	gst_pad_set_link_function_full
 	gst_pad_set_offset
-	gst_pad_set_query_function
-	gst_pad_set_query_type_function
-	gst_pad_set_unlink_function
+	gst_pad_set_query_function_full
+	gst_pad_set_unlink_function_full
 	gst_pad_start_task
 	gst_pad_sticky_events_foreach
 	gst_pad_stop_task
@@ -778,7 +754,6 @@
 	gst_plugin_feature_load
 	gst_plugin_feature_rank_compare_func
 	gst_plugin_feature_set_rank
-	gst_plugin_feature_type_name_filter
 	gst_plugin_flags_get_type
 	gst_plugin_get_cache_data
 	gst_plugin_get_description
@@ -821,6 +796,7 @@
 	gst_poll_wait
 	gst_poll_write_control
 	gst_preset_delete_preset
+	gst_preset_get_app_dir
 	gst_preset_get_meta
 	gst_preset_get_preset_names
 	gst_preset_get_property_names
@@ -828,39 +804,43 @@
 	gst_preset_load_preset
 	gst_preset_rename_preset
 	gst_preset_save_preset
+	gst_preset_set_app_dir
 	gst_preset_set_meta
 	gst_print_element_args
 	gst_print_pad_caps
-	gst_probe_return_get_type
-	gst_probe_type_get_type
 	gst_progress_type_get_type
-	gst_proxy_pad_acceptcaps_default
 	gst_proxy_pad_chain_default
 	gst_proxy_pad_chain_list_default
 	gst_proxy_pad_event_default
-	gst_proxy_pad_fixatecaps_default
 	gst_proxy_pad_get_internal
 	gst_proxy_pad_get_type
-	gst_proxy_pad_getcaps_default
 	gst_proxy_pad_getrange_default
 	gst_proxy_pad_iterate_internal_links_default
 	gst_proxy_pad_query_default
-	gst_proxy_pad_query_type_default
 	gst_proxy_pad_unlink_default
 	gst_qos_type_get_type
-	gst_query_add_allocation_memory
 	gst_query_add_allocation_meta
+	gst_query_add_allocation_param
+	gst_query_add_allocation_pool
 	gst_query_add_buffering_range
-	gst_query_get_n_allocation_memories
+	gst_query_add_scheduling_mode
 	gst_query_get_n_allocation_metas
+	gst_query_get_n_allocation_params
+	gst_query_get_n_allocation_pools
 	gst_query_get_n_buffering_ranges
+	gst_query_get_n_scheduling_modes
 	gst_query_get_structure
 	gst_query_get_type
 	gst_query_has_allocation_meta
+	gst_query_has_scheduling_mode
+	gst_query_intersect_caps_result
+	gst_query_new_accept_caps
 	gst_query_new_allocation
 	gst_query_new_buffering
+	gst_query_new_caps
 	gst_query_new_convert
 	gst_query_new_custom
+	gst_query_new_drain
 	gst_query_new_duration
 	gst_query_new_formats
 	gst_query_new_latency
@@ -868,58 +848,68 @@
 	gst_query_new_scheduling
 	gst_query_new_seeking
 	gst_query_new_segment
+	gst_query_new_toc
 	gst_query_new_uri
+	gst_query_parse_accept_caps
+	gst_query_parse_accept_caps_result
 	gst_query_parse_allocation
-	gst_query_parse_allocation_params
 	gst_query_parse_buffering_percent
 	gst_query_parse_buffering_range
 	gst_query_parse_buffering_stats
+	gst_query_parse_caps
+	gst_query_parse_caps_result
 	gst_query_parse_convert
 	gst_query_parse_duration
 	gst_query_parse_latency
 	gst_query_parse_n_formats
-	gst_query_parse_nth_allocation_memory
 	gst_query_parse_nth_allocation_meta
+	gst_query_parse_nth_allocation_param
+	gst_query_parse_nth_allocation_pool
 	gst_query_parse_nth_buffering_range
 	gst_query_parse_nth_format
+	gst_query_parse_nth_scheduling_mode
 	gst_query_parse_position
 	gst_query_parse_scheduling
 	gst_query_parse_seeking
 	gst_query_parse_segment
+	gst_query_parse_toc
 	gst_query_parse_uri
-	gst_query_set_allocation_params
+	gst_query_remove_nth_allocation_meta
+	gst_query_set_accept_caps_result
 	gst_query_set_buffering_percent
 	gst_query_set_buffering_range
 	gst_query_set_buffering_stats
+	gst_query_set_caps_result
 	gst_query_set_convert
 	gst_query_set_duration
 	gst_query_set_formats
 	gst_query_set_formatsv
 	gst_query_set_latency
+	gst_query_set_nth_allocation_param
+	gst_query_set_nth_allocation_pool
 	gst_query_set_position
 	gst_query_set_scheduling
 	gst_query_set_seeking
 	gst_query_set_segment
+	gst_query_set_toc
 	gst_query_set_uri
-	gst_query_type_get_by_nick
-	gst_query_type_get_details
+	gst_query_type_flags_get_type
+	gst_query_type_get_flags
 	gst_query_type_get_name
 	gst_query_type_get_type
-	gst_query_type_iterate_definitions
-	gst_query_type_register
 	gst_query_type_to_quark
-	gst_query_types_contains
 	gst_query_writable_structure
 	gst_rank_get_type
 	gst_registry_add_feature
 	gst_registry_add_path
 	gst_registry_add_plugin
+	gst_registry_check_feature_version
 	gst_registry_feature_filter
 	gst_registry_find_feature
 	gst_registry_find_plugin
 	gst_registry_fork_is_enabled
 	gst_registry_fork_set_enabled
-	gst_registry_get_default
+	gst_registry_get
 	gst_registry_get_feature_list
 	gst_registry_get_feature_list_by_plugin
 	gst_registry_get_feature_list_cookie
@@ -934,6 +924,13 @@
 	gst_registry_scan_path
 	gst_resource_error_get_type
 	gst_resource_error_quark
+	gst_sample_get_buffer
+	gst_sample_get_caps
+	gst_sample_get_info
+	gst_sample_get_segment
+	gst_sample_get_type
+	gst_sample_new
+	gst_scheduling_flags_get_type
 	gst_search_mode_get_type
 	gst_seek_flags_get_type
 	gst_seek_type_get_type
@@ -961,13 +958,13 @@
 	gst_static_pad_template_get
 	gst_static_pad_template_get_caps
 	gst_static_pad_template_get_type
+	gst_stream_config_flags_get_type
 	gst_stream_error_get_type
 	gst_stream_error_quark
 	gst_stream_status_type_get_type
 	gst_structure_can_intersect
 	gst_structure_change_type_get_type
 	gst_structure_copy
-	gst_structure_empty_new
 	gst_structure_fixate
 	gst_structure_fixate_field
 	gst_structure_fixate_field_boolean
@@ -991,19 +988,18 @@
 	gst_structure_get_name
 	gst_structure_get_name_id
 	gst_structure_get_string
+	gst_structure_get_type
 	gst_structure_get_uint
 	gst_structure_get_valist
 	gst_structure_get_value
 	gst_structure_has_field
 	gst_structure_has_field_typed
 	gst_structure_has_name
-	gst_structure_id_empty_new
 	gst_structure_id_get
 	gst_structure_id_get_valist
 	gst_structure_id_get_value
 	gst_structure_id_has_field
 	gst_structure_id_has_field_typed
-	gst_structure_id_new
 	gst_structure_id_set
 	gst_structure_id_set_valist
 	gst_structure_id_set_value
@@ -1014,6 +1010,9 @@
 	gst_structure_map_in_place
 	gst_structure_n_fields
 	gst_structure_new
+	gst_structure_new_empty
+	gst_structure_new_id
+	gst_structure_new_id_empty
 	gst_structure_new_valist
 	gst_structure_nth_field_name
 	gst_structure_remove_all_fields
@@ -1049,8 +1048,6 @@
 	gst_tag_list_get_boolean_index
 	gst_tag_list_get_buffer
 	gst_tag_list_get_buffer_index
-	gst_tag_list_get_char
-	gst_tag_list_get_char_index
 	gst_tag_list_get_date
 	gst_tag_list_get_date_index
 	gst_tag_list_get_date_time
@@ -1063,31 +1060,30 @@
 	gst_tag_list_get_int64
 	gst_tag_list_get_int64_index
 	gst_tag_list_get_int_index
-	gst_tag_list_get_long
-	gst_tag_list_get_long_index
 	gst_tag_list_get_pointer
 	gst_tag_list_get_pointer_index
 	gst_tag_list_get_string
 	gst_tag_list_get_string_index
 	gst_tag_list_get_tag_size
 	gst_tag_list_get_type
-	gst_tag_list_get_uchar
-	gst_tag_list_get_uchar_index
 	gst_tag_list_get_uint
 	gst_tag_list_get_uint64
 	gst_tag_list_get_uint64_index
 	gst_tag_list_get_uint_index
-	gst_tag_list_get_ulong
-	gst_tag_list_get_ulong_index
 	gst_tag_list_get_value_index
 	gst_tag_list_insert
 	gst_tag_list_is_empty
+	gst_tag_list_is_equal
 	gst_tag_list_merge
+	gst_tag_list_n_tags
 	gst_tag_list_new
-	gst_tag_list_new_full
-	gst_tag_list_new_full_valist
+	gst_tag_list_new_empty
+	gst_tag_list_new_from_string
+	gst_tag_list_new_valist
+	gst_tag_list_nth_tag_name
 	gst_tag_list_peek_string_index
 	gst_tag_list_remove_tag
+	gst_tag_list_to_string
 	gst_tag_merge_mode_get_type
 	gst_tag_merge_strings_with_comma
 	gst_tag_merge_use_first
@@ -1104,11 +1100,11 @@
 	gst_tag_setter_reset_tags
 	gst_tag_setter_set_tag_merge_mode
 	gst_task_cleanup_all
-	gst_task_create
 	gst_task_get_pool
 	gst_task_get_state
 	gst_task_get_type
 	gst_task_join
+	gst_task_new
 	gst_task_pause
 	gst_task_pool_cleanup
 	gst_task_pool_get_type
@@ -1118,18 +1114,30 @@
 	gst_task_pool_push
 	gst_task_set_lock
 	gst_task_set_pool
-	gst_task_set_priority
 	gst_task_set_state
 	gst_task_set_thread_callbacks
 	gst_task_start
 	gst_task_state_get_type
 	gst_task_stop
-	gst_trace_destroy
-	gst_trace_flush
-	gst_trace_new
-	gst_trace_read_tsc
-	gst_trace_set_default
-	gst_trace_text_flush
+	gst_toc_copy
+	gst_toc_entry_copy
+	gst_toc_entry_free
+	gst_toc_entry_get_start_stop
+	gst_toc_entry_new
+	gst_toc_entry_new_with_pad
+	gst_toc_entry_set_start_stop
+	gst_toc_entry_type_get_type
+	gst_toc_find_entry
+	gst_toc_free
+	gst_toc_new
+	gst_toc_setter_add_toc_entry
+	gst_toc_setter_get_toc
+	gst_toc_setter_get_toc_copy
+	gst_toc_setter_get_toc_entry
+	gst_toc_setter_get_toc_entry_copy
+	gst_toc_setter_get_type
+	gst_toc_setter_reset_toc
+	gst_toc_setter_set_toc
 	gst_type_find_factory_call_function
 	gst_type_find_factory_get_caps
 	gst_type_find_factory_get_extensions
@@ -1142,16 +1150,16 @@
 	gst_type_find_register
 	gst_type_find_suggest
 	gst_type_find_suggest_simple
-	gst_type_register_static_full
 	gst_update_registry
 	gst_uri_construct
+	gst_uri_error_get_type
+	gst_uri_error_quark
 	gst_uri_get_location
 	gst_uri_get_protocol
 	gst_uri_handler_get_protocols
 	gst_uri_handler_get_type
 	gst_uri_handler_get_uri
 	gst_uri_handler_get_uri_type
-	gst_uri_handler_new_uri
 	gst_uri_handler_set_uri
 	gst_uri_has_protocol
 	gst_uri_is_valid
@@ -1168,6 +1176,7 @@
 	gst_util_gdouble_to_guint64
 	gst_util_get_timestamp
 	gst_util_greatest_common_divisor
+	gst_util_greatest_common_divisor_int64
 	gst_util_guint64_to_gdouble
 	gst_util_seqnum_compare
 	gst_util_seqnum_next
@@ -1193,8 +1202,8 @@
 	gst_value_fixate
 	gst_value_fraction_multiply
 	gst_value_fraction_subtract
+	gst_value_get_bitmask
 	gst_value_get_caps
-	gst_value_get_date
 	gst_value_get_double_range_max
 	gst_value_get_double_range_min
 	gst_value_get_fraction_denominator
@@ -1203,12 +1212,15 @@
 	gst_value_get_fraction_range_min
 	gst_value_get_int64_range_max
 	gst_value_get_int64_range_min
+	gst_value_get_int64_range_step
 	gst_value_get_int_range_max
 	gst_value_get_int_range_min
+	gst_value_get_int_range_step
 	gst_value_get_structure
 	gst_value_init_and_copy
 	gst_value_intersect
 	gst_value_is_fixed
+	gst_value_is_subset
 	gst_value_list_append_value
 	gst_value_list_concat
 	gst_value_list_get_size
@@ -1217,18 +1229,17 @@
 	gst_value_list_merge
 	gst_value_list_prepend_value
 	gst_value_register
-	gst_value_register_intersect_func
-	gst_value_register_subtract_func
-	gst_value_register_union_func
 	gst_value_serialize
+	gst_value_set_bitmask
 	gst_value_set_caps
-	gst_value_set_date
 	gst_value_set_double_range
 	gst_value_set_fraction
 	gst_value_set_fraction_range
 	gst_value_set_fraction_range_full
 	gst_value_set_int64_range
+	gst_value_set_int64_range_step
 	gst_value_set_int_range
+	gst_value_set_int_range_step
 	gst_value_set_structure
 	gst_value_subtract
 	gst_value_union
diff --git a/win32/vs6/gstreamer.dsw b/win32/vs6/gstreamer.dsw
index a0bbd74..ae40f73 100644
--- a/win32/vs6/gstreamer.dsw
+++ b/win32/vs6/gstreamer.dsw
@@ -93,21 +93,6 @@
 
 ###############################################################################
 
-Project: "libgstdataprotocol"=".\libgstdataprotocol.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libgstreamer
-    End Project Dependency
-}}}
-
-###############################################################################
-
 Project: "libgstnet"=".\libgstnet.dsp" - Package Owner=<4>
 
 Package=<5>
diff --git a/win32/vs6/libgstdataprotocol.dsp b/win32/vs6/libgstdataprotocol.dsp
deleted file mode 100644
index 445849a..0000000
--- a/win32/vs6/libgstdataprotocol.dsp
+++ /dev/null
@@ -1,127 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libgstdataprotocol" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=libgstdataprotocol - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libgstdataprotocol.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libgstdataprotocol.mak" CFG="libgstdataprotocol - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libgstdataprotocol - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libgstdataprotocol - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libgstdataprotocol - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDATAPROTOCOL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../.." /I "../../libs" /I "../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDATAPROTOCOL_EXPORTS" /D "HAVE_CONFIG_H" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 glib-2.0.lib gobject-2.0.lib gthread-2.0.lib gmodule-2.0.lib /nologo /dll /machine:I386 /out:"Release/libgstdataprotocol-0.10.dll"
-# Begin Special Build Tool
-TargetPath=.\Release\libgstdataprotocol-0.10.dll
-SOURCE="$(InputPath)"
-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\bin
-# End Special Build Tool
-
-!ELSEIF  "$(CFG)" == "libgstdataprotocol - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDATAPROTOCOL_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../.." /I "../../libs" /I "../common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBGSTDATAPROTOCOL_EXPORTS" /D "HAVE_CONFIG_H" /FD /GZ /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 glib-2.0D.lib gobject-2.0D.lib gthread-2.0D.lib gmodule-2.0D.lib /nologo /dll /debug /machine:I386 /out:"Debug/libgstdataprotocol-0.10.dll" /pdbtype:sept
-# Begin Special Build Tool
-TargetPath=.\Debug\libgstdataprotocol-0.10.dll
-SOURCE="$(InputPath)"
-PostBuild_Cmds=copy /Y $(TargetPath) c:\gstreamer\debug\bin
-# End Special Build Tool
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libgstdataprotocol - Win32 Release"
-# Name "libgstdataprotocol - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\libs\gst\dataprotocol\dataprotocol.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\libgstdataprotocol.def
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\libs\gst\dataprotocol\dataprotocol.h
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\libs\gst\dataprotocol\dp-private.h"
-# End Source File
-# End Group
-# End Target
-# End Project
